From a5951b81c3c3729cc16517c4c551e78f35066401 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Tue, 14 May 2024 12:58:47 +0200 Subject: [PATCH] Reformat --- .../absences/ManageStudentsDialog.vue | 2 +- .../coursebook/documentation/LessonNotes.vue | 6 +- aleksis/apps/alsijil/models.py | 88 ++++++++----------- aleksis/apps/alsijil/schema/__init__.py | 11 +-- 4 files changed, 46 insertions(+), 61 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue index 0de1aa832..824f3da29 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue @@ -6,7 +6,7 @@ import MobileFullscreenDialog from "aleksis.core/components/generic/dialogs/Mobi import mutateMixin from "aleksis.core/mixins/mutateMixin.js"; import documentationPartMixin from "../documentation/documentationPartMixin"; import LessonInformation from "../documentation/LessonInformation.vue"; -import updateParticipationStatuses from "./participationStatus.graphql"; +import { updateParticipationStatuses } from "./participationStatus.graphql"; import SlideIterator from "aleksis.core/components/generic/SlideIterator.vue"; export default { diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue index d917bc4c7..8f40f71b6 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue @@ -4,9 +4,9 @@ > <!-- eslint-disable @intlify/vue-i18n/no-raw-text --> <v-chip dense color="success"> - <v-chip small dense class="mr-2" color="green darken-3 white--text" - >{{ documentation.participations.length }}</v-chip - > + <v-chip small dense class="mr-2" color="green darken-3 white--text"> + {{ documentation.participations.length }} + </v-chip> Schüler </v-chip> <v-chip dense color="warning"> diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index 89b15ef94..2449efb31 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -2,17 +2,16 @@ from datetime import date, datetime from typing import Optional, Union from urllib.parse import urlparse +from django.contrib.auth.models import User from django.core.exceptions import PermissionDenied from django.db import models from django.db.models import QuerySet from django.db.models.constraints import CheckConstraint from django.db.models.query_utils import Q -from django.http import HttpRequest from django.urls import reverse from django.utils.formats import date_format from django.utils.timezone import localdate, localtime from django.utils.translation import gettext_lazy as _ -from django.contrib.auth.models import User from calendarweek import CalendarWeek from colorfield.fields import ColorField @@ -519,9 +518,9 @@ class Documentation(CalendarEvent): @classmethod def get_documentations_for_events( - cls, - events: list, - incomplete: Optional[bool] = False, + cls, + events: list, + incomplete: Optional[bool] = False, ) -> tuple: """Get all the documentations for the events. Create dummy documentations if none exist. @@ -573,11 +572,11 @@ class Documentation(CalendarEvent): @classmethod def get_documentations_for_person( - cls, - person: int, - start: datetime, - end: datetime, - incomplete: Optional[bool] = False, + cls, + person: int, + start: datetime, + end: datetime, + incomplete: Optional[bool] = False, ) -> tuple: """Get all the documentations for the person from start to end datetime. Create dummy documentations if none exist. @@ -600,65 +599,54 @@ class Documentation(CalendarEvent): @classmethod def parse_dummy( - cls, - _id: str, + cls, + _id: str, ) -> tuple: - """Parse dummy id string into lesson_event, datetime_start, datetime_end. - """ + """Parse dummy id string into lesson_event, datetime_start, datetime_end.""" dummy, lesson_event_id, datetime_start_iso, datetime_end_iso = _id.split(";") lesson_event = LessonEvent.objects.get(id=lesson_event_id) datetime_start = datetime.fromisoformat(datetime_start_iso).astimezone( lesson_event.timezone ) - datetime_end = datetime.fromisoformat(datetime_end_iso).astimezone( - lesson_event.timezone - ) + datetime_end = datetime.fromisoformat(datetime_end_iso).astimezone(lesson_event.timezone) return (lesson_event, datetime_start, datetime_end) @classmethod def create_from_lesson_event( - cls, - user: User, - lesson_event: LessonEvent, - datetime_start: datetime, - datetime_end: datetime, + cls, + user: User, + lesson_event: LessonEvent, + datetime_start: datetime, + datetime_end: datetime, ) -> "Documentation": - """ Create a documentation from a lesson_event with start and end datetime. + """Create a documentation from a lesson_event with start and end datetime. User is needed for permission checking. """ if not user.has_perm( - "alsijil.add_documentation_for_lesson_event_rule", lesson_event - ) or not ( - get_site_preferences()["alsijil__allow_edit_future_documentations"] == "all" - or ( - get_site_preferences()["alsijil__allow_edit_future_documentations"] - == "current_day" - and datetime_start.date() <= localdate() - ) - or ( - get_site_preferences()["alsijil__allow_edit_future_documentations"] - == "current_time" - and datetime_start <= localtime() - ) - ): + "alsijil.add_documentation_for_lesson_event_rule", lesson_event + ) or not ( + get_site_preferences()["alsijil__allow_edit_future_documentations"] == "all" + or ( + get_site_preferences()["alsijil__allow_edit_future_documentations"] == "current_day" + and datetime_start.date() <= localdate() + ) + or ( + get_site_preferences()["alsijil__allow_edit_future_documentations"] + == "current_time" + and datetime_start <= localtime() + ) + ): raise PermissionDenied() if lesson_event.amends: - if lesson_event.course: - course = lesson_event.course - else: - course = lesson_event.amends.course + course = lesson_event.course if lesson_event.course else lesson_event.amends.course - if lesson_event.subject: - subject = lesson_event.subject - else: - subject = lesson_event.amends.subject + subject = lesson_event.subject if lesson_event.subject else lesson_event.amends.subject - if lesson_event.teachers: - teachers = lesson_event.teachers - else: - teachers = lesson_event.amends.teachers + teachers = ( + lesson_event.teachers if lesson_event.teachers else lesson_event.amends.teachers + ) else: course, subject, teachers = ( lesson_event.course, @@ -699,7 +687,7 @@ class Documentation(CalendarEvent): return obj @classmethod - def get_or_create_by_id(cls, _id: str|int, user): + def get_or_create_by_id(cls, _id: str | int, user): if _id.startswith("DUMMY"): return cls.create_from_lesson_event( user, diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py index 01366e832..48e1c20c6 100644 --- a/aleksis/apps/alsijil/schema/__init__.py +++ b/aleksis/apps/alsijil/schema/__init__.py @@ -5,13 +5,13 @@ from django.db.models.query_utils import Q import graphene +from aleksis.apps.chronos.models import LessonEvent from aleksis.apps.cursus.models import Course from aleksis.apps.cursus.schema import CourseType from aleksis.core.models import Group, Person from aleksis.core.schema.base import FilterOrderList from aleksis.core.schema.group import GroupType from aleksis.core.util.core_helpers import has_person -from aleksis.apps.chronos.models import LessonEvent from ..models import Documentation from .documentation import ( @@ -153,8 +153,7 @@ class Query(graphene.ObjectType): end, **kwargs, ): - """Resolve all lesson events for each person in timeframe start to end. - """ + """Resolve all lesson events for each person in timeframe start to end.""" lessons_for_person = [] for person in persons: docs, dummies = Documentation.get_documentations_for_person( @@ -163,14 +162,12 @@ class Query(graphene.ObjectType): datetime.combine(end, datetime.max.time()), ) - lessons_for_person.append( - id=person, - lessons=docs + dummies - ) + lessons_for_person.append(id=person, lessons=docs + dummies) return lessons_for_person class Mutation(graphene.ObjectType): create_or_update_documentations = DocumentationBatchCreateOrUpdateMutation.Field() + touch_documentation = TouchDocumentationMutation.Field() update_participation_statuses = ParticipationStatusBatchPatchMutation.Field() -- GitLab