Skip to content
Snippets Groups Projects
Commit 81562bc0 authored by permcu's avatar permcu
Browse files

Sketch documentations for person backend

parent 22f64a6c
No related branches found
No related tags found
1 merge request!361Resolve "Add statistics page for absences"
Pipeline #188396 failed
...@@ -22,7 +22,10 @@ from .absences import ( ...@@ -22,7 +22,10 @@ from .absences import (
LessonsForPersonType, LessonsForPersonType,
AbsencesBatchCreateMutation, AbsencesBatchCreateMutation,
) )
from .statistics import StatisticsByPersonType from .statistics import (
StatisticsByPersonType,
DocumentationByPersonType,
)
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
documentations = FilterOrderList(DocumentationType) documentations = FilterOrderList(DocumentationType)
...@@ -54,6 +57,11 @@ class Query(graphene.ObjectType): ...@@ -54,6 +57,11 @@ class Query(graphene.ObjectType):
person=graphene.ID(required=True), person=graphene.ID(required=True),
term=graphene.ID(required=False), term=graphene.ID(required=False),
) )
documentations_by_person = graphene.List(
DocumentationByPersonType,
person=graphene.ID(required=True),
term=graphene.ID(required=False),
)
statistics_by_group = graphene.List( statistics_by_group = graphene.List(
StatisticsByPersonType, StatisticsByPersonType,
group=graphene.ID(required=True), group=graphene.ID(required=True),
...@@ -187,6 +195,11 @@ class Query(graphene.ObjectType): ...@@ -187,6 +195,11 @@ class Query(graphene.ObjectType):
# TODO: Annotate person with necessary information for term. # TODO: Annotate person with necessary information for term.
return Person.objects.get(id=person) return Person.objects.get(id=person)
@staticmethod
def resolve_documentations_by_person(root, info, person, term=None):
# TODO: Annotate person with necessary information for term.
return Person.objects.get(id=person)
@staticmethod @staticmethod
def resolve_statistics_by_group(root, info, group, term=None): def resolve_statistics_by_group(root, info, group, term=None):
# TODO: Annotate persons with necessary information for term. # TODO: Annotate persons with necessary information for term.
......
import graphene import graphene
from aleksis.core.models import Person
from aleksis.core.schema.person import PersonType
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 ..models import ExtraMark from ..models import ExtraMark
...@@ -58,3 +61,42 @@ class StatisticsByPersonType(graphene.ObjectType): ...@@ -58,3 +61,42 @@ class StatisticsByPersonType(graphene.ObjectType):
def resolve_extra_marks(root, info): def resolve_extra_marks(root, info):
# TODO: Return actual ExtraMarks # TODO: Return actual ExtraMarks
return ExtraMark.objects.all() return ExtraMark.objects.all()
class DocumentationByPersonType(graphene.ObjectType):
id = graphene.ID()
datetime_start = graphene.Date()
datetime_end = graphene.Date()
group_short_name = graphene.String()
teacher = graphene.Field(PersonType)
subject = graphene.Field(SubjectType)
absences = graphene.List(AbsenceReasonType)
extra_marks = graphene.List(ExtraMarkType)
personal_note = graphene.String()
def resolve_id(root, info):
return 1
def resolve_datetime_start(root, info):
return "2024-05-27T09:00:00+00:00"
def resolve_datetime_end(root, info):
return "2024-05-27T10:00:00+00:00"
def resolve_group_short_name(root, info):
return "11b"
def resolve_teacher(root, info):
return Person.objects.get(id=63)
def resolve_subject(root, info):
return Subject.objects.get(id=1)
def resolve_absences(root, info):
return AbsenceReason.objects.all()
def resolve_extra_marks(root, info):
return ExtraMark.objects.all()
def resolve_personal_note(root, info):
return "All is well:)"
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