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

Reformat and fix lint

parent 29413587
No related branches found
No related tags found
1 merge request!343Update tox.ini
Pipeline #163687 passed with warnings
import logging
from typing import TYPE_CHECKING
from django.db.models import F
from django.db.models.query_utils import Q
......@@ -6,6 +7,9 @@ from django.utils.translation import gettext as _
from aleksis.core.data_checks import DataCheck, IgnoreSolveOption, SolveOption
if TYPE_CHECKING:
from aleksis.core.models import DataCheckResult
class DeleteRelatedObjectSolveOption(SolveOption):
name = "delete"
......
......@@ -56,7 +56,7 @@ class LessonDocumentationForm(forms.ModelForm):
)
def save(self, **kwargs):
lesson_documentation = super(LessonDocumentationForm, self).save(commit=True)
lesson_documentation = super().save(commit=True)
if (
get_site_preferences()["alsijil__allow_carry_over_same_week"]
and self.cleaned_data["carry_over_week"]
......@@ -396,7 +396,7 @@ class FilterRegisterObjectForm(forms.Form):
for_person: bool = True,
default_documentation: Optional[bool] = None,
groups: Optional[Sequence[Group]] = None,
**kwargs
**kwargs,
):
self.request = request
person = self.request.user.person
......
from datetime import date, datetime
from typing import Optional, Sequence, Union
from typing import TYPE_CHECKING, Optional, Sequence, Union
from django.db.models import Case, ExpressionWrapper, F, Func, QuerySet, Value, When
from django.db.models.fields import DateField
......@@ -13,6 +13,9 @@ from calendarweek import CalendarWeek
from aleksis.apps.chronos.managers import DateRangeQuerySetMixin
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
if TYPE_CHECKING:
from aleksis.core.models import Group
class RegisterObjectRelatedQuerySet(QuerySet):
"""Common queryset for personal notes and lesson documentations with shared API."""
......
......@@ -110,7 +110,7 @@ class RegisterObjectRelatedMixin(WeekRelatedMixin):
@property
def register_object(
self: Union["LessonDocumentation", "PersonalNote"]
self: Union["LessonDocumentation", "PersonalNote"],
) -> Union[LessonPeriod, Event, ExtraLesson]:
"""Get the object related to this lesson documentation or personal note."""
if self.lesson_period:
......
......@@ -52,8 +52,10 @@
transition: all 0.5s;
margin: 0.5rem 0 1rem 0;
background-color: #fff !important;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
box-shadow:
0 2px 2px 0 rgba(0, 0, 0, 0.14),
0 3px 1px -2px rgba(0, 0, 0, 0.12),
0 1px 5px 0 rgba(0, 0, 0, 0.2);
padding: 24px;
}
table.alsijil-table.horizontal-on-small tr:first-of-type {
......
......@@ -82,9 +82,8 @@ def is_group_owner(user: User, obj: Union[Group, Person]) -> bool:
Checks whether the person linked to the user is the owner of the given group.
If there isn't provided a group, it will return `False`.
"""
if isinstance(obj, Group):
if user.person in obj.owners.all():
return True
if isinstance(obj, Group) and user.person in obj.owners.all():
return True
return False
......@@ -135,10 +134,7 @@ def has_person_group_object_perm(perm: str):
@predicate(name)
def fn(user: User, obj: Person) -> bool:
groups = use_prefetched(obj, "member_of")
for group in groups:
if check_object_permission(user, perm, group, checker_obj=obj):
return True
return False
return any(check_object_permission(user, perm, group, checker_obj=obj) for group in groups)
return fn
......@@ -150,9 +146,8 @@ def is_group_member(user: User, obj: Union[Group, Person]) -> bool:
Checks whether the person linked to the user is a member of the given group.
If there isn't provided a group, it will return `False`.
"""
if isinstance(obj, Group):
if user.person in obj.members.all():
return True
if isinstance(obj, Group) and user.person in obj.members.all():
return True
return False
......
......@@ -339,10 +339,7 @@ def week_view(
) -> HttpResponse:
context = {}
if year and week:
wanted_week = CalendarWeek(year=year, week=week)
else:
wanted_week = CalendarWeek()
wanted_week = CalendarWeek(year=year, week=week) if year and week else CalendarWeek()
instance = get_timetable_instance_by_pk(request, year, week, type_, id_)
......@@ -416,23 +413,19 @@ def week_view(
context["back_url"] = back_url
select_form = SelectForm(request, request.POST or None, initial=initial)
if request.method == "POST":
if select_form.is_valid():
if "type_" not in select_form.cleaned_data:
return redirect("week_view_by_week", wanted_week.year, wanted_week.week)
else:
return redirect(
"week_view_by_week",
wanted_week.year,
wanted_week.week,
select_form.cleaned_data["type_"].value,
select_form.cleaned_data["instance"].pk,
)
if request.method == "POST" and select_form.is_valid():
if "type_" not in select_form.cleaned_data:
return redirect("week_view_by_week", wanted_week.year, wanted_week.week)
else:
return redirect(
"week_view_by_week",
wanted_week.year,
wanted_week.week,
select_form.cleaned_data["type_"].value,
select_form.cleaned_data["instance"].pk,
)
if type_ == TimetableType.GROUP:
group = instance
else:
group = None
group = instance if type_ == TimetableType.GROUP else None
# Group roles
show_group_roles = (
......@@ -608,7 +601,7 @@ def week_view(
regrouped_objects[weekday].append(event_copy)
# Sort register objects
for weekday in regrouped_objects.keys():
for weekday in regrouped_objects:
to_sort = regrouped_objects[weekday]
regrouped_objects[weekday] = sorted(to_sort, key=register_objects_sorter)
context["regrouped_objects"] = regrouped_objects
......@@ -865,14 +858,15 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
context["excuse_types_not_absent"] = ExcuseType.objects.filter(count_as_absent=False)
form = PersonOverviewForm(request, request.POST or None, queryset=allowed_personal_notes)
if request.method == "POST" and request.user.has_perm(
"alsijil.edit_person_overview_personalnote_rule", person
if (
request.method == "POST"
and request.user.has_perm("alsijil.edit_person_overview_personalnote_rule", person)
and form.is_valid()
):
if form.is_valid():
with reversion.create_revision():
reversion.set_user(request.user)
form.execute()
person.refresh_from_db()
with reversion.create_revision():
reversion.set_user(request.user)
form.execute()
person.refresh_from_db()
context["action_form"] = form
table = PersonalNoteTable(filtered_personal_notes)
......@@ -886,7 +880,9 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
stats = []
for school_term in school_terms:
stat = {}
personal_notes = PersonalNote.objects.filter(person=person,).filter(
personal_notes = PersonalNote.objects.filter(
person=person,
).filter(
Q(lesson_period__lesson__validity__school_term=school_term)
| Q(extra_lesson__school_term=school_term)
| Q(event__school_term=school_term)
......@@ -972,10 +968,7 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp
def register_absence(request: HttpRequest, id_: int = None) -> HttpResponse:
context = {}
if id_:
person = get_object_or_404(Person, pk=id_)
else:
person = None
person = get_object_or_404(Person, pk=id_) if id_ else None
register_absence_form = RegisterAbsenceForm(
request, request.POST or None, initial={"person": person}
......
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