Skip to content
Snippets Groups Projects
Commit a5951b81 authored by Julian's avatar Julian
Browse files

Reformat

parent 54cdc5e3
No related branches found
No related tags found
1 merge request!362Resolve "Add personal note management dialog in course book"
Pipeline #185083 failed
......@@ -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 {
......
......@@ -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">
......
......@@ -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,
......
......@@ -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()
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