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

Create schemata for personal notes

parent 855453b0
No related branches found
No related tags found
1 merge request!362Resolve "Add personal note management dialog in course book"
Pipeline #186060 failed
......@@ -18,6 +18,11 @@ from .extra_marks import (
ExtraMarkBatchDeleteMutation,
ExtraMarkType,
)
from .personal_note import (
PersonalNoteBatchCreateMutation,
PersonalNoteBatchDeleteMutation,
PersonalNoteBatchPatchMutation,
)
from ..models import Documentation
from .documentation import (
......@@ -183,3 +188,7 @@ class Mutation(graphene.ObjectType):
create_extra_marks = ExtraMarkBatchCreateMutation.Field()
update_extra_marks = ExtraMarkBatchPatchMutation.Field()
delete_extra_marks = ExtraMarkBatchDeleteMutation.Field()
create_personal_note = PersonalNoteBatchCreateMutation.Field()
update_personal_note = PersonalNoteBatchPatchMutation.Field()
delete_personal_note = PersonalNoteBatchDeleteMutation.Field()
import graphene
from graphene_django import DjangoObjectType
from aleksis.apps.alsijil.models import ParticipationStatus
from aleksis.apps.alsijil.models import ParticipationStatus, NewPersonalNote
from aleksis.apps.alsijil.schema.personal_note import PersonalNoteType
from aleksis.core.schema.base import (
BaseBatchPatchMutation,
DjangoFilterMixin,
......@@ -25,6 +27,24 @@ class ParticipationStatusType(
"base_absence",
)
extra_mark_notes = graphene.List(PersonalNoteType)
note_notes = graphene.List(PersonalNoteType)
@staticmethod
def resolve_extra_mark_notes(root: ParticipationStatus, info, **kwargs):
return NewPersonalNote.objects.filter(
person=root.person,
documentation=root.related_documentation,
extra_mark__isnull=False,
)
@staticmethod
def resolve_note_notes(root: ParticipationStatus, info, **kwargs):
return NewPersonalNote.objects.filter(
person=root.person,
documentation=root.related_documentation,
note__isnull=False,
)
class ParticipationStatusBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
......
from graphene_django import DjangoObjectType
from aleksis.apps.alsijil.models import NewPersonalNote
from aleksis.core.schema.base import (
DjangoFilterMixin,
BaseBatchCreateMutation,
BaseBatchDeleteMutation,
BaseBatchPatchMutation,
OptimisticResponseTypeMixin,
PermissionsTypeMixin,
)
class PersonalNoteType(
OptimisticResponseTypeMixin,
PermissionsTypeMixin,
DjangoFilterMixin,
DjangoObjectType,
):
class Meta:
model = NewPersonalNote
fields = (
"id",
"note",
"extra_mark",
)
class PersonalNoteBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = NewPersonalNote
fields = ("note", "extra_mark", "documentation", "person")
permissions = ("alsijil.create_personal_note",) # FIXME
class PersonalNoteBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = NewPersonalNote
fields = ("id", "note", "extra_mark", "documentation", "person")
permissions = ("alsijil.change_personal_note",) # FIXME
class PersonalNoteBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = NewPersonalNote
permission_required = "alsijil.delete_personal_note" # FIXME
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