Skip to content
Snippets Groups Projects
Verified Commit b79e2401 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Remove global requests everywhere

parent 73b464c6
No related branches found
No related tags found
1 merge request!135Remove global requests everywhere
Pipeline #5440 passed
......@@ -5,7 +5,6 @@ from django.core.exceptions import ValidationError
from django.db.models import Count, Q
from django.utils.translation import gettext_lazy as _
from django_global_request.middleware import get_request
from django_select2.forms import Select2Widget
from guardian.shortcuts import get_objects_for_user
from material import Fieldset, Layout, Row
......@@ -75,8 +74,8 @@ class SelectForm(forms.Form):
data["instance"] = instance
return data
def __init__(self, *args, **kwargs):
self.request = get_request()
def __init__(self, request, *args, **kwargs):
self.request = request
super().__init__(*args, **kwargs)
person = self.request.user.person
......@@ -138,7 +137,6 @@ class RegisterAbsenceForm(forms.Form):
remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False)
def __init__(self, *args, **kwargs):
self.request = get_request()
super().__init__(*args, **kwargs)
period_choices = TimePeriod.period_choices
......
......@@ -5,10 +5,7 @@ from django.db.models import Exists, OuterRef, Q, QuerySet
from django.db.models.aggregates import Count, Sum
from django.utils.translation import gettext as _
import reversion
from calendarweek import CalendarWeek
from django_global_request.middleware import get_request
from reversion import set_user
from aleksis.apps.chronos.models import LessonPeriod
from aleksis.core.models import Group, Person
......@@ -63,31 +60,25 @@ def mark_absent(
if sub and sub.cancelled:
continue
with reversion.create_revision():
set_user(get_request().user)
personal_note, created = (
PersonalNote.objects.select_related(None)
.prefetch_related(None)
.update_or_create(
person=self,
lesson_period=lesson_period,
week=wanted_week.week,
year=wanted_week.year,
defaults={
"absent": absent,
"excused": excused,
"excuse_type": excuse_type,
},
)
personal_note, created = (
PersonalNote.objects.select_related(None)
.prefetch_related(None)
.update_or_create(
person=self,
lesson_period=lesson_period,
week=wanted_week.week,
year=wanted_week.year,
defaults={"absent": absent, "excused": excused, "excuse_type": excuse_type,},
)
personal_note.groups_of_person.set(self.member_of.all())
if remarks:
if personal_note.remarks:
personal_note.remarks += "; %s" % remarks
else:
personal_note.remarks = remarks
personal_note.save()
)
personal_note.groups_of_person.set(self.member_of.all())
if remarks:
if personal_note.remarks:
personal_note.remarks += "; %s" % remarks
else:
personal_note.remarks = remarks
personal_note.save()
return lesson_periods.count()
......
from contextlib import nullcontext
from datetime import date, datetime, timedelta
from typing import Optional
......@@ -153,14 +154,16 @@ def lesson(
instances = personal_note_formset.save()
# Iterate over personal notes and carry changed absences to following lessons
for instance in instances:
instance.person.mark_absent(
wanted_week[lesson_period.period.weekday],
lesson_period.period.period + 1,
instance.absent,
instance.excused,
instance.excuse_type,
)
with reversion.create_revision():
reversion.set_user(request.user)
for instance in instances:
instance.person.mark_absent(
wanted_week[lesson_period.period.weekday],
lesson_period.period.period + 1,
instance.absent,
instance.excused,
instance.excuse_type,
)
messages.success(request, _("The personal notes have been saved."))
......@@ -223,7 +226,7 @@ def week_view(
initial = {type_.value: instance}
else:
initial = {}
select_form = SelectForm(request.POST or None, initial=initial)
select_form = SelectForm(request, request.POST or None, initial=initial)
if request.method == "POST":
if select_form.is_valid():
......@@ -724,16 +727,17 @@ def register_absence(request: HttpRequest, id_: int) -> HttpResponse:
if holiday:
continue
affected_count += person.mark_absent(
day,
from_period_on_day,
absent,
excused,
excuse_type,
remarks,
to_period_on_day,
dry_run=not confirmed,
)
with reversion.create_revision() if confirmed else nullcontext():
affected_count += person.mark_absent(
day,
from_period_on_day,
absent,
excused,
excuse_type,
remarks,
to_period_on_day,
dry_run=not confirmed,
)
if not confirmed:
# Show confirmation page
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment