diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 80278186b6ee782952e38c54905497ed1370a57f..af61871922959c027e7224c8f7ee202141e04bd0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Changed +~~~~~~~ + +* Use start date of current SchoolTerm as default value for PersonalNote filter in overview. + `2.0rc7` - 2021-12-25 --------------------- diff --git a/aleksis/apps/alsijil/filters.py b/aleksis/apps/alsijil/filters.py index 4033e36e5500e3c440b73950fb96741761c46acf..0149a337bcd74775f1ba01ffad2b3668f0b0f16a 100644 --- a/aleksis/apps/alsijil/filters.py +++ b/aleksis/apps/alsijil/filters.py @@ -3,16 +3,27 @@ from django.utils.translation import gettext as _ from django_filters import CharFilter, DateFilter, FilterSet from material import Layout, Row +from aleksis.core.models import SchoolTerm + from .models import PersonalNote class PersonalNoteFilter(FilterSet): - day_start = DateFilter(lookup_expr="gte", label=_("After")) + day_start = DateFilter( + lookup_expr="gte", label=_("After"), initial=SchoolTerm.current.date_start + ) day_end = DateFilter(lookup_expr="lte", label=_("Before")) subject = CharFilter(lookup_expr="icontains", label=_("Subject")) - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, data=None, *args, **kwargs): + if data is not None: + data = data.copy() + for name, f in self.base_filters.items(): + initial = f.extra.get("initial") + if not data.get(name) and initial: + data[name] = initial + + super().__init__(data, *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(