From 26a4d506b635b0b59ecd9e232e2dfd4dd8e04df7 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Sat, 15 May 2021 22:55:44 +0200
Subject: [PATCH] Filter date and subject of personal notes

---
 aleksis/apps/alsijil/filters.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/aleksis/apps/alsijil/filters.py b/aleksis/apps/alsijil/filters.py
index c6bda959e..ca793aa5a 100644
--- a/aleksis/apps/alsijil/filters.py
+++ b/aleksis/apps/alsijil/filters.py
@@ -1,18 +1,25 @@
 from django.utils.translation import gettext as _
 
-from django_filters import FilterSet, CharFilter, ModelMultipleChoiceFilter
+from django_filters import FilterSet, CharFilter, ModelMultipleChoiceFilter, DateFilter
 from material import Layout, Row
 
 from .models import ExcuseType, PersonalNote
 
 
 class PersonalNoteFilter(FilterSet):
+    day_start = DateFilter(lookup_expr="gte", label=_("After"))
+    day_end = DateFilter(lookup_expr="lte", label=_("Before"))
+    subject = CharFilter(lookup_expr="icontains", label=_("Subject"))
+
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
+        self.form.fields["late__lt"].label = _("Tardiness is lower than")
+        self.form.fields["late__gt"].label = _("Tardiness is bigger than")
         self.form.layout = Layout(
-            # TODO: Row with day (lt and gt) and subject (char search),
+            Row("subject"),
+            Row("day_start", "day_end"),
             Row("absent", "excused", "excuse_type"),
-            Row("late__lt", "late__gt", "extra_marks")
+            Row("late__gt", "late__lt", "extra_marks")
         )
 
     class Meta:
@@ -23,6 +30,4 @@ class PersonalNoteFilter(FilterSet):
             "absent": ['exact'],
             "excuse_type": ["exact"],
             "extra_marks": ["exact"],
-            # TODO: "date??": ['lt', 'gt'],
-            # TODO: "subject??": "exact",
         }
-- 
GitLab