From ff7f6a086d75668b7ef256eb54257423a27511be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org>
Date: Fri, 18 Nov 2022 16:25:05 +0100
Subject: [PATCH] Add ordering field to `SubmissionPoolSearchForm`

---
 scipost_django/submissions/forms.py | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/scipost_django/submissions/forms.py b/scipost_django/submissions/forms.py
index 452180514..8605dc2cc 100644
--- a/scipost_django/submissions/forms.py
+++ b/scipost_django/submissions/forms.py
@@ -276,6 +276,18 @@ class SubmissionPoolSearchForm(forms.Form):
         ),
         initial="current",
     )
+    ordering = forms.ChoiceField(
+        widget=forms.RadioSelect,
+        choices=(
+            (
+                "Submission date", (
+                    ("recent", "most recent first"),
+                    ("oldest", "oldest first"),
+                ),
+            ),
+        ),
+        initial="recent",
+    )
 
     def __init__(self, *args, **kwargs):
         user = kwargs.pop("user")
@@ -322,7 +334,11 @@ class SubmissionPoolSearchForm(forms.Form):
                 ),
                 css_class="row mb-0",
             ),
-            Div(Div(InlineRadios("search_set"), css_class="col"), css_class="row mb-0"),
+            Div(
+                Div(InlineRadios("search_set"), css_class="col"),
+                Div(InlineRadios("ordering"), css_class="col"),
+                css_class="row mb-0",
+            ),
         )
 
     def search_results(self, user):
@@ -437,6 +453,10 @@ class SubmissionPoolSearchForm(forms.Form):
             submissions = submissions.filter(
                 editor_in_charge=self.cleaned_data.get("editor_in_charge").contributor
             )
+
+        if self.cleaned_data.get("ordering") == "oldest":
+            submissions = submissions.order_by("submission_date")
+
         return submissions
 
 
-- 
GitLab