Skip to content

Commit 910d9d0

Browse files
committed
feat: added reverse sorting to commitfest form
1 parent f1329ab commit 910d9d0

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

media/commitfest/js/commitfest.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,19 @@ function flagCommitted(committer) {
257257
}
258258

259259
function sortpatches(sortby) {
260-
if ($("#id_sortkey").val() === sortby) {
261-
$("#id_sortkey").val(0);
262-
} else {
263-
$("#id_sortkey").val(sortby);
264-
}
265-
$("#filterform").submit();
260+
if ($('#id_sortkey').val() == sortby) {
261+
if($('#id_sortorder').val() == 1){
262+
$('#id_sortkey').val(0);
263+
$('#id_sortorder').val(0); // reset order
264+
}else if($('#id_sortorder').val() == -1){
265+
$('#id_sortkey').val(sortby);
266+
$('#id_sortorder').val(1); // ascending order -> oldest first
267+
}
268+
} else {
269+
$('#id_sortkey').val(sortby);
270+
$('#id_sortorder').val(-1); // descending order -> latest first
271+
}
272+
$('#filterform').submit();
266273

267274
return false;
268275
}

pgcommitfest/commitfest/forms.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ class CommitFestFilterForm(forms.Form):
1717
author = forms.ChoiceField(required=False)
1818
reviewer = forms.ChoiceField(required=False)
1919
sortkey = forms.IntegerField(required=False)
20+
sortorder = forms.IntegerField(required=False) # 0 -> no order, 1 -> asc, -1 -> desc
2021

2122
def __init__(self, cf, *args, **kwargs):
2223
super(CommitFestFilterForm, self).__init__(*args, **kwargs)
2324

2425
self.fields["sortkey"].widget = forms.HiddenInput()
26+
self.fields["sortorder"].widget = forms.HiddenInput()
2527

2628
c = [(-1, "* All")] + list(PatchOnCommitFest._STATUS_CHOICES)
2729
self.fields["status"] = forms.ChoiceField(choices=c, required=False)

pgcommitfest/commitfest/views.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ def commitfest(request, cfid):
233233
has_filter = len(whereclauses) > 0
234234

235235
# Figure out custom ordering
236+
236237
if request.GET.get("sortkey", "") != "":
237238
try:
238239
sortkey = int(request.GET["sortkey"])
@@ -260,6 +261,12 @@ def commitfest(request, cfid):
260261
orderby_str = "topic, created"
261262
sortkey = 0
262263

264+
sortorder = int(request.GET.get("sortorder", "0"))
265+
if sortorder == 1:
266+
orderby_str += " ASC"
267+
elif sortorder == -1:
268+
orderby_str += " DESC"
269+
263270
if not has_filter and sortkey == 0 and request.GET:
264271
# Redirect to get rid of the ugly url
265272
return HttpResponseRedirect("/%s/" % cf.id)
@@ -346,6 +353,7 @@ def commitfest(request, cfid):
346353
"title": cf.title,
347354
"grouping": sortkey == 0,
348355
"sortkey": sortkey,
356+
"sortorder": sortorder,
349357
"openpatchids": [p["id"] for p in patches if p["is_open"]],
350358
"header_activity": "Activity log",
351359
"header_activity_link": "activity/",

0 commit comments

Comments
 (0)