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

Reformat

parent 3e931079
No related branches found
No related tags found
1 merge request!361Resolve "Add statistics page for absences"
Pipeline #193620 failed
...@@ -59,7 +59,9 @@ ...@@ -59,7 +59,9 @@
</v-chip> </v-chip>
<v-chip dense outlined> <v-chip dense outlined>
<v-icon left>mdi-sigma</v-icon> <v-icon left>mdi-sigma</v-icon>
{{ $tc("time.minutes_n", item.tardinessSum, { n: $n(item.tardinessSum) }) }} {{
$tc("time.minutes_n", item.tardinessSum, { n: $n(item.tardinessSum) })
}}
</v-chip> </v-chip>
</template> </template>
......
...@@ -15,7 +15,13 @@ ...@@ -15,7 +15,13 @@
:elevated="false" :elevated="false"
> >
<template #additionalActions> <template #additionalActions>
<v-btn-toggle v-model="mode" mandatory color="secondary" rounded dense> <v-btn-toggle
v-model="mode"
mandatory
color="secondary"
rounded
dense
>
<v-btn outlined :value="MODE.PARTICIPATIONS"> <v-btn outlined :value="MODE.PARTICIPATIONS">
{{ $t("alsijil.coursebook.absences.absences") }} {{ $t("alsijil.coursebook.absences.absences") }}
</v-btn> </v-btn>
...@@ -29,16 +35,40 @@ ...@@ -29,16 +35,40 @@
<v-list-item-content> <v-list-item-content>
<v-list-item-title> <v-list-item-title>
<!-- date & timeslot --> <!-- date & timeslot -->
<time :datetime="item.relatedDocumentation.datetimeStart" class="text-no-wrap"> <time
{{ $d($parseISODate(item.relatedDocumentation.datetimeStart), "short") }} :datetime="item.relatedDocumentation.datetimeStart"
class="text-no-wrap"
>
{{
$d(
$parseISODate(item.relatedDocumentation.datetimeStart),
"short",
)
}}
</time> </time>
<time :datetime="item.relatedDocumentation.datetimeStart" class="text-no-wrap"> <time
{{ $d($parseISODate(item.relatedDocumentation.datetimeStart), "shortTime") }} :datetime="item.relatedDocumentation.datetimeStart"
class="text-no-wrap"
>
{{
$d(
$parseISODate(item.relatedDocumentation.datetimeStart),
"shortTime",
)
}}
</time> </time>
<span>-</span> <span>-</span>
<time :datetime="item.relatedDocumentation.datetimeEnd" class="text-no-wrap"> <time
{{ $d($parseISODate(item.relatedDocumentation.datetimeEnd), "shortTime") }} :datetime="item.relatedDocumentation.datetimeEnd"
class="text-no-wrap"
>
{{
$d(
$parseISODate(item.relatedDocumentation.datetimeEnd),
"shortTime",
)
}}
</time> </time>
<!-- teacher --> <!-- teacher -->
<person-chip <person-chip
...@@ -52,7 +82,10 @@ ...@@ -52,7 +82,10 @@
{{ item.groupShortName }} {{ item.groupShortName }}
</span> </span>
<!-- subject --> <!-- subject -->
<subject-chip :subject="item.relatedDocumentation.subject" small /> <subject-chip
:subject="item.relatedDocumentation.subject"
small
/>
</v-list-item-title> </v-list-item-title>
<v-list-item-subtitle> <v-list-item-subtitle>
{{ item.note }} {{ item.note }}
...@@ -91,7 +124,10 @@ import PersonChip from "aleksis.core/components/person/PersonChip.vue"; ...@@ -91,7 +124,10 @@ import PersonChip from "aleksis.core/components/person/PersonChip.vue";
import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue"; import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
import StatisticsForPersonCard from "./StatisticsForPersonCard.vue"; import StatisticsForPersonCard from "./StatisticsForPersonCard.vue";
import { participationsOfPerson, personalNotesForPerson } from "./statistics.graphql"; import {
participationsOfPerson,
personalNotesForPerson,
} from "./statistics.graphql";
import { DateTime } from "luxon"; import { DateTime } from "luxon";
import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue"; import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue";
...@@ -143,12 +179,14 @@ export default { ...@@ -143,12 +179,14 @@ export default {
}, },
set(value) { set(value) {
console.log("New SchoolTerm:", value); console.log("New SchoolTerm:", value);
} },
}, },
}, },
methods: { methods: {
gqlQuery() { gqlQuery() {
return this.mode === MODE.PERSONAL_NOTES ? personalNotesForPerson : participationsOfPerson; return this.mode === MODE.PERSONAL_NOTES
? personalNotesForPerson
: participationsOfPerson;
}, },
}, },
}; };
......
...@@ -19,7 +19,9 @@ ...@@ -19,7 +19,9 @@
<div> <div>
<v-icon small>mdi-diameter-variant</v-icon> <v-icon small>mdi-diameter-variant</v-icon>
{{ {{
$tc("time.minutes_n", tardinessSum / tardinessCount, { n: $n(tardinessSum/tardinessCount) }) $tc("time.minutes_n", tardinessSum / tardinessCount, {
n: $n(tardinessSum / tardinessCount),
})
}} }}
</div> </div>
</div> </div>
......
...@@ -4,7 +4,7 @@ from typing import Optional ...@@ -4,7 +4,7 @@ from typing import Optional
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db import models from django.db import models
from django.db.models import QuerySet, Q from django.db.models import Q, QuerySet
from django.http import HttpRequest from django.http import HttpRequest
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
...@@ -437,7 +437,11 @@ class ParticipationStatus(CalendarEvent): ...@@ -437,7 +437,11 @@ class ParticipationStatus(CalendarEvent):
@classmethod @classmethod
def get_objects( def get_objects(
cls, request: HttpRequest | None = None, params: dict[str, any] | None = None, additional_filter: Q | None = None, **kwargs cls,
request: HttpRequest | None = None,
params: dict[str, any] | None = None,
additional_filter: Q | None = None,
**kwargs,
) -> QuerySet: ) -> QuerySet:
q = additional_filter or Q() q = additional_filter or Q()
if params: if params:
...@@ -447,9 +451,12 @@ class ParticipationStatus(CalendarEvent): ...@@ -447,9 +451,12 @@ class ParticipationStatus(CalendarEvent):
q = q & Q(person__in=params["persons"]) q = q & Q(person__in=params["persons"])
elif params.get("group"): elif params.get("group"):
q = q & Q(groups_of_person__in=params.get("group")) q = q & Q(groups_of_person__in=params.get("group"))
qs = ( qs = super().get_objects(
super() request,
.get_objects(request, params, additional_filter=q, select_related=["person", "absence_reason"], **kwargs) params,
additional_filter=q,
select_related=["person", "absence_reason"],
**kwargs,
) )
return qs return qs
......
...@@ -17,7 +17,7 @@ from aleksis.core.schema.person import PersonType ...@@ -17,7 +17,7 @@ from aleksis.core.schema.person import PersonType
from aleksis.core.util.core_helpers import get_site_preferences, has_person from aleksis.core.util.core_helpers import get_site_preferences, has_person
from ..model_extensions import annotate_person_statistics_for_school_term from ..model_extensions import annotate_person_statistics_for_school_term
from ..models import Documentation, ParticipationStatus, NewPersonalNote from ..models import Documentation, NewPersonalNote, ParticipationStatus
from .absences import ( from .absences import (
AbsencesForPersonsCreateMutation, AbsencesForPersonsCreateMutation,
) )
......
from django.utils import timezone
import graphene import graphene
from aleksis.apps.cursus.models import Subject
from aleksis.apps.cursus.schema import SubjectType
from aleksis.apps.kolego.models.absence import AbsenceReason from aleksis.apps.kolego.models.absence import AbsenceReason
from aleksis.apps.kolego.schema.absence import AbsenceReasonType from aleksis.apps.kolego.schema.absence import AbsenceReasonType
from aleksis.core.models import Person from aleksis.core.models import 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