Skip to content
3 changes: 2 additions & 1 deletion front_end/messages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -417,10 +417,11 @@
"bestScores": "Nejlepší skóre",
"worstScores": "Nejhorší skóre",
"resolvingSoon": "Brzy se vyřeší",
"recentlyRevealed": "Nedávno odhalené",
"unreadComments": "Nepřečtené komentáře",
"oldestPredictions": "Moje nejstarší předpovědi",
"newestPredictions": "Moje nejnovější předpovědi",
"recentPredictions": "Nedávné předpovědi",
"recentPredictions": "Nedávno predikované",
"myDivergence": "Moje odchylka",
"profile": "Profil",
"changeUsernameButton": "změnit",
Expand Down
3 changes: 2 additions & 1 deletion front_end/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -582,10 +582,11 @@
"bestScores": "Best Scores",
"worstScores": "Worst Scores",
"resolvingSoon": "Resolving Soon",
"recentlyRevealed": "Recently revealed",
"unreadComments": "Unread Comments",
"oldestPredictions": "My Oldest Predictions",
"newestPredictions": "My Newest Predictions",
"recentPredictions": "Recent predictions",
"recentPredictions": "Recently predicted",
"myDivergence": "My Divergence",
"profile": "Profile",
"changeUsernameButton": "change username",
Expand Down
3 changes: 2 additions & 1 deletion front_end/messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -424,10 +424,11 @@
"bestScores": "Mejores Puntuaciones",
"worstScores": "Peores Puntuaciones",
"resolvingSoon": "Resolviéndose Pronto",
"recentlyRevealed": "Reveladas recientemente",
"unreadComments": "Comentarios No Leídos",
"oldestPredictions": "Mis Predicciones Más Antiguas",
"newestPredictions": "Mis Predicciones Más Recientes",
"recentPredictions": "Predicciones recientes",
"recentPredictions": "Predichas recientemente",
"myDivergence": "Mi Divergencia",
"profile": "Perfil",
"changeUsernameButton": "cambiar",
Expand Down
3 changes: 2 additions & 1 deletion front_end/messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,10 +452,11 @@
"bestScores": "Melhores Pontuações",
"worstScores": "Piores Pontuações",
"resolvingSoon": "Resolvendo em breve",
"recentlyRevealed": "Reveladas recentemente",
"unreadComments": "Comentários Não Lidos",
"oldestPredictions": "Minhas Previsões Mais Antigas",
"newestPredictions": "Minhas Previsões Mais Recentes",
"recentPredictions": "Previsões Recentes",
"recentPredictions": "Previstas recentemente",
"myDivergence": "Minha Divergência",
"profile": "Perfil",
"changeUsernameButton": "Alterar",
Expand Down
1 change: 1 addition & 0 deletions front_end/messages/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,7 @@
"bestScores": "最佳分數",
"worstScores": "最差分數",
"resolvingSoon": "即將解析",
"recentlyRevealed": "最近揭示",
"unreadComments": "未讀評論",
"oldestPredictions": "我最早的預測",
"newestPredictions": "我最新的預測",
Expand Down
3 changes: 2 additions & 1 deletion front_end/messages/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -420,10 +420,11 @@
"bestScores": "最佳分數",
"worstScores": "最差分數",
"resolvingSoon": "即將解決",
"recentlyRevealed": "最近揭示",
"unreadComments": "未讀評論",
"oldestPredictions": "我的最早預測",
"newestPredictions": "我的最新預測",
"recentPredictions": "最近預測",
"recentPredictions": "最近预测",
"myDivergence": "我的分歧",
"profile": "個人資料",
"changeUsernameButton": "更改",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ const MainFeedFilters: FC<Props> = ({
},
{ value: QuestionOrder.CloseTimeAsc, label: t("closingSoon") },
{ value: QuestionOrder.ResolveTimeAsc, label: t("resolvingSoon") },
{ value: QuestionOrder.CpRevealTimeDesc, label: t("recentlyRevealed") },
...(!mainSortNewVisible
? [{ value: QuestionOrder.OpenTimeDesc, label: t("new") }]
: []),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ const MyPredictionsFilters: FC<Props> = ({ panelClassname }) => {
label: t("movers"),
},
{
value: QuestionOrder.DivergenceDesc,
label: t("divergence"),
value: QuestionOrder.UserNextWithdrawTimeAsc,
label: t("withdrawingSoon"),
},
{
value: QuestionOrder.UnreadCommentCountDesc,
Expand All @@ -67,10 +67,11 @@ const MyPredictionsFilters: FC<Props> = ({ panelClassname }) => {
label: t("recentPredictions"),
},
{
value: QuestionOrder.UserNextWithdrawTimeAsc,
label: t("withdrawingSoon"),
value: QuestionOrder.DivergenceDesc,
label: t("divergence"),
},
{ value: QuestionOrder.CloseTimeAsc, label: t("closingSoon") },
{ value: QuestionOrder.CpRevealTimeDesc, label: t("recentlyRevealed") },
{ value: QuestionOrder.ScoreDesc, label: t("bestScores") },
{ value: QuestionOrder.ScoreAsc, label: t("worstScores") },
{ value: QuestionOrder.LastPredictionTimeAsc, label: t("stale") },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ const MyQuestionsAndPostsFilters: FC<Props> = ({ panelClassname }) => {
value: QuestionOrder.OpenTimeDesc,
label: t("newest"),
},
{ value: QuestionOrder.CpRevealTimeDesc, label: t("recentlyRevealed") },
{ value: QuestionOrder.NewsHotness, label: t("inTheNews") },
],
[t]
Expand Down
1 change: 1 addition & 0 deletions front_end/src/components/tournament_filters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ const TournamentFilters: FC = () => {
},
{ value: QuestionOrder.CloseTimeAsc, label: t("closingSoon") },
{ value: QuestionOrder.ResolveTimeAsc, label: t("resolvingSoon") },
{ value: QuestionOrder.CpRevealTimeDesc, label: t("recentlyRevealed") },
...(!!user
? [
{
Expand Down
1 change: 1 addition & 0 deletions front_end/src/types/question.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ export enum QuestionOrder {
PredictionCountDesc = "-forecasts_count",
ForecastersCountDesc = "-forecasters_count",
CloseTimeAsc = "scheduled_close_time",
CpRevealTimeDesc = "-cp_reveal_time",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
ScoreDesc = "-score",
ScoreAsc = "score",
ResolveTimeAsc = "scheduled_resolve_time",
Expand Down
1 change: 1 addition & 0 deletions posts/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ class Order(models.TextChoices):
FORECASTERS_COUNT = "forecasters_count"
SCHEDULED_CLOSE_TIME = "scheduled_close_time"
SCHEDULED_RESOLVE_TIME = "scheduled_resolve_time"
CP_REVEAL_TIME = "cp_reveal_time"
USER_LAST_FORECASTS_DATE = "user_last_forecasts_date"
USER_NEXT_WITHDRAW_TIME = "user_next_withdraw_time"
UNREAD_COMMENT_COUNT = "unread_comment_count"
Expand Down
15 changes: 14 additions & 1 deletion posts/services/feed.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from datetime import timedelta
from typing import Iterable

from django.db.models import Q, QuerySet, Exists, OuterRef
from django.db.models import Q, QuerySet, Exists, Max, OuterRef
from django.utils import timezone
from rest_framework.exceptions import ValidationError, PermissionDenied

Expand Down Expand Up @@ -312,6 +312,19 @@ def get_posts_feed(
Q(actual_close_time__isnull=True)
| Q(actual_close_time__gte=timezone.now() - timedelta(days=7))
)
if order_type == PostFilterSerializer.Order.CP_REVEAL_TIME:
qs = qs.annotate(
latest_cp_reveal_time=Max(
"questions__cp_reveal_time",
filter=Q(questions__cp_reveal_time__lt=now),
)
).filter(latest_cp_reveal_time__isnull=False)

return (
qs.order_by(build_order_by("latest_cp_reveal_time", order_desc))
.distinct()
.only("pk")
)

qs = qs.order_by(build_order_by(order_type, order_desc))

Expand Down
Loading