Skip to content
Snippets Groups Projects
Verified Commit d2331821 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Simplify queryset in SelectForm

parent 0cab5ee3
No related branches found
No related tags found
1 merge request!49Resolve "Add rules and permissions"
...@@ -99,7 +99,7 @@ class SelectForm(forms.Form): ...@@ -99,7 +99,7 @@ class SelectForm(forms.Form):
).values_list("pk", flat=True) ).values_list("pk", flat=True)
) )
).union(group_qs.filter(Q(members=person) | Q(owners=person))) ).union(group_qs.filter(Q(members=person) | Q(owners=person)))
self.fields["group"].queryset = group_qs.distinct() self.fields["group"].queryset = Group.objects.filter(pk__in=list(group_qs.values_list("pk", flat=True)))
teacher_qs = Person.objects.annotate( teacher_qs = Person.objects.annotate(
lessons_count=Count("lessons_as_teacher") lessons_count=Count("lessons_as_teacher")
...@@ -123,7 +123,9 @@ class RegisterAbsenceForm(forms.Form): ...@@ -123,7 +123,9 @@ class RegisterAbsenceForm(forms.Form):
) )
date_start = forms.DateField(label=_("Start date"), initial=datetime.today) date_start = forms.DateField(label=_("Start date"), initial=datetime.today)
date_end = forms.DateField(label=_("End date"), initial=datetime.today) date_end = forms.DateField(label=_("End date"), initial=datetime.today)
person = forms.ModelChoiceField(label=_("Person"), queryset=None, widget=Select2Widget) person = forms.ModelChoiceField(
label=_("Person"), queryset=None, widget=Select2Widget
)
from_period = forms.ChoiceField(label=_("Start period")) from_period = forms.ChoiceField(label=_("Start period"))
to_period = forms.ChoiceField(label=_("End period")) to_period = forms.ChoiceField(label=_("End period"))
absent = forms.BooleanField(label=_("Absent"), initial=True, required=False) absent = forms.BooleanField(label=_("Absent"), initial=True, required=False)
...@@ -144,8 +146,12 @@ class RegisterAbsenceForm(forms.Form): ...@@ -144,8 +146,12 @@ class RegisterAbsenceForm(forms.Form):
self.fields["person"].queryset = Person.objects.all() self.fields["person"].queryset = Person.objects.all()
else: else:
self.fields["person"].queryset = ( self.fields["person"].queryset = (
get_objects_for_user(self.request.user, "core.register_absence_person", Person) get_objects_for_user(
.union(Person.objects.filter(member_of__owners=self.request.user.person)) self.request.user, "core.register_absence_person", Person
)
.union(
Person.objects.filter(member_of__owners=self.request.user.person)
)
.union( .union(
Person.objects.filter( Person.objects.filter(
member_of__in=get_objects_for_user( member_of__in=get_objects_for_user(
......
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