diff --git a/biscuit/apps/alsijil/forms.py b/biscuit/apps/alsijil/forms.py index 1a0602b312c16feee86015c8a394d9876573826a..91fa15ac1d820bc2e84c81066d5e40e1c656e90e 100644 --- a/biscuit/apps/alsijil/forms.py +++ b/biscuit/apps/alsijil/forms.py @@ -37,17 +37,15 @@ class PersonalNoteForm(forms.ModelForm): class SelectForm(forms.Form): group = forms.ModelChoiceField( - queryset=Group.objects.annotate(lessons_count=Count("lessons")).filter( - lessons_count__gt=0 - ), + queryset=Group.objects.annotate(lessons_count=Count("lessons")).filter(lessons_count__gt=0), label=_("Group"), required=False, widget=Select2Widget, ) teacher = forms.ModelChoiceField( - queryset=Person.objects.annotate( - lessons_count=Count("lessons_as_teacher") - ).filter(lessons_count__gt=0), + queryset=Person.objects.annotate(lessons_count=Count("lessons_as_teacher")).filter( + lessons_count__gt=0 + ), label=_("Teacher"), required=False, widget=Select2Widget, diff --git a/biscuit/apps/alsijil/models.py b/biscuit/apps/alsijil/models.py index 304fdb772ef8b5f6e56558b7fbd77ec3925b7c99..6f5d91f26cf09da0cdec20b28ab321619202db15 100644 --- a/biscuit/apps/alsijil/models.py +++ b/biscuit/apps/alsijil/models.py @@ -13,9 +13,7 @@ class PersonalNote(models.Model): absences, excuses and remarks about a student in a single lesson period. """ - person = models.ForeignKey( - "core.Person", models.CASCADE, related_name="personal_notes" - ) + person = models.ForeignKey("core.Person", models.CASCADE, related_name="personal_notes") week = models.IntegerField() lesson_period = models.ForeignKey( @@ -67,18 +65,13 @@ class PersonalNoteFilter(models.Model): """ A filter definition that can generate statistics on personal note texts. """ identifier = models.CharField( - verbose_name=_("Identifier"), - max_length=30, - validators=[isidentifier], - unique=True, + verbose_name=_("Identifier"), max_length=30, validators=[isidentifier], unique=True, ) description = models.CharField( verbose_name=_("Description"), max_length=60, blank=True, unique=True ) - regex = models.CharField( - verbose_name=_("Match expression"), max_length=100, unique=True - ) + regex = models.CharField(verbose_name=_("Match expression"), max_length=100, unique=True) class Meta: ordering = ["identifier"] diff --git a/biscuit/apps/alsijil/tables.py b/biscuit/apps/alsijil/tables.py index 38c7402f68f310f516b9d503a51da34ab6496601..098f3ee1e9ecd4e5a04ce50b6ea3c6e0cc3cb100 100644 --- a/biscuit/apps/alsijil/tables.py +++ b/biscuit/apps/alsijil/tables.py @@ -6,13 +6,9 @@ from django_tables2.utils import A class PersonalNoteFilterTable(tables.Table): class Meta: - attrs = { - "class": "table table-striped table-bordered table-hover table-responsive-xl" - } + attrs = {"class": "table table-striped table-bordered table-hover table-responsive-xl"} identifier = tables.Column() description = tables.Column() regex = tables.Column() - edit_filter = tables.LinkColumn( - "edit_personal_note_filter", args=[A("id")], text=_("Edit") - ) + edit_filter = tables.LinkColumn("edit_personal_note_filter", args=[A("id")], text=_("Edit")) diff --git a/biscuit/apps/alsijil/urls.py b/biscuit/apps/alsijil/urls.py index 85c9c25d4e9a4ffc450ea9e683b14ae0aeee1fe5..20519ad4d60020a5ed717c00a54baf4c8e21abc9 100644 --- a/biscuit/apps/alsijil/urls.py +++ b/biscuit/apps/alsijil/urls.py @@ -11,24 +11,12 @@ urlpatterns = [ ), path("week", views.week_view, name="week_view"), path("week/<int:year>/<int:week>", views.week_view, name="week_view_by_week"), - path( - "print/group/<int:id_>", views.full_register_group, name="full_register_group" - ), + path("print/group/<int:id_>", views.full_register_group, name="full_register_group"), path("absence/new", views.register_absence, name="register_absence"), + path("filters/list", views.list_personal_note_filters, name="list_personal_note_filters",), + path("filters/create", views.edit_personal_note_filter, name="create_personal_note_filter",), path( - "filters/list", - views.list_personal_note_filters, - name="list_personal_note_filters", - ), - path( - "filters/create", - views.edit_personal_note_filter, - name="create_personal_note_filter", - ), - path( - "filters/edit/<int:id>", - views.edit_personal_note_filter, - name="edit_personal_note_filter", + "filters/edit/<int:id>", views.edit_personal_note_filter, name="edit_personal_note_filter", ), path( "filters/delete/<int:id_>", diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index 837205238c1f87d4fe605012fe7bd4a8617af0f5..391116903df209f222a3b55e5f16cf0191983d22 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -43,17 +43,12 @@ def lesson( wanted_week = CalendarWeek(year=year, week=week) else: # Determine current lesson by current date and time - lesson_period = ( - LessonPeriod.objects.at_time().filter_teacher(request.user.person).first() - ) + lesson_period = LessonPeriod.objects.at_time().filter_teacher(request.user.person).first() wanted_week = CalendarWeek() if lesson_period: return redirect( - "lesson_by_week_and_period", - wanted_week.year, - wanted_week.week, - lesson_period.pk, + "lesson_by_week_and_period", wanted_week.year, wanted_week.week, lesson_period.pk, ) else: raise Http404( @@ -64,16 +59,13 @@ def lesson( if ( datetime.combine( - wanted_week[lesson_period.period.weekday - 1], - lesson_period.period.time_start, + wanted_week[lesson_period.period.weekday - 1], lesson_period.period.time_start, ) > datetime.now() and not request.user.is_superuser ): raise PermissionDenied( - _( - "You are not allowed to create a lesson documentation for a lesson in the future." - ) + _("You are not allowed to create a lesson documentation for a lesson in the future.") ) context["lesson_period"] = lesson_period @@ -85,9 +77,7 @@ def lesson( lesson_period=lesson_period, week=wanted_week.week ) lesson_documentation_form = LessonDocumentationForm( - request.POST or None, - instance=lesson_documentation, - prefix="leson_documentation", + request.POST or None, instance=lesson_documentation, prefix="leson_documentation", ) # Create a formset that holds all personal notes for all persons in this lesson @@ -243,21 +233,12 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: for week in weeks: day = week[lesson_period.period.weekday - 1] - if ( - lesson_period.lesson.date_start <= day - and lesson_period.lesson.date_end >= day - ): + if lesson_period.lesson.date_start <= day and lesson_period.lesson.date_end >= day: documentations = list( - filter( - lambda d: d.week == week.week, - lesson_period.documentations.all(), - ) + filter(lambda d: d.week == week.week, lesson_period.documentations.all(),) ) notes = list( - filter( - lambda d: d.week == week.week, - lesson_period.personal_notes.all(), - ) + filter(lambda d: d.week == week.week, lesson_period.personal_notes.all(),) ) substitution = lesson_period.get_substitution(week.week) @@ -282,9 +263,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: "_personal_notes_with_%s" % personal_note_filter.identifier: Count( "personal_notes__remarks", - filter=Q( - personal_notes__remarks__iregex=personal_note_filter.regex - ), + filter=Q(personal_notes__remarks__iregex=personal_note_filter.regex), ) } ) @@ -346,9 +325,7 @@ def list_personal_note_filters(request: HttpRequest) -> HttpResponse: return render(request, "alsijil/personal_note_filters.html", context) -def edit_personal_note_filter( - request: HttpRequest, id: Optional["int"] = None -) -> HttpResponse: +def edit_personal_note_filter(request: HttpRequest, id: Optional["int"] = None) -> HttpResponse: context = {} if id: