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

Make absence creation endpoint accept datetimes instead of dates

parent 32cd07ae
No related branches found
No related tags found
1 merge request!392Resolve "Absence creation form should support datetimes"
...@@ -6,7 +6,7 @@ query persons { ...@@ -6,7 +6,7 @@ query persons {
} }
} }
query lessonsForPersons($persons: [ID]!, $start: Date!, $end: Date!) { query lessonsForPersons($persons: [ID]!, $start: DateTime!, $end: DateTime!) {
items: lessonsForPersons(persons: $persons, start: $start, end: $end) { items: lessonsForPersons(persons: $persons, start: $start, end: $end) {
id id
lessons { lessons {
...@@ -31,8 +31,8 @@ query lessonsForPersons($persons: [ID]!, $start: Date!, $end: Date!) { ...@@ -31,8 +31,8 @@ query lessonsForPersons($persons: [ID]!, $start: Date!, $end: Date!) {
# Use absencesInputType? # Use absencesInputType?
mutation createAbsencesForPersons( mutation createAbsencesForPersons(
$persons: [ID]! $persons: [ID]!
$start: Date! $start: DateTime!
$end: Date! $end: DateTime!
$comment: String $comment: String
$reason: ID! $reason: ID!
) { ) {
......
...@@ -63,8 +63,8 @@ class Query(graphene.ObjectType): ...@@ -63,8 +63,8 @@ class Query(graphene.ObjectType):
lessons_for_persons = graphene.List( lessons_for_persons = graphene.List(
LessonsForPersonType, LessonsForPersonType,
persons=graphene.List(graphene.ID, required=True), persons=graphene.List(graphene.ID, required=True),
start=graphene.Date(required=True), start=graphene.DateTime(required=True),
end=graphene.Date(required=True), end=graphene.DateTime(required=True),
) )
extra_marks = FilterOrderList(ExtraMarkType) extra_marks = FilterOrderList(ExtraMarkType)
...@@ -213,8 +213,8 @@ class Query(graphene.ObjectType): ...@@ -213,8 +213,8 @@ class Query(graphene.ObjectType):
for person in persons: for person in persons:
docs, dummies = Documentation.get_documentations_for_person( docs, dummies = Documentation.get_documentations_for_person(
person, person,
datetime.combine(start, datetime.min.time()), start,
datetime.combine(end, datetime.max.time()), end,
) )
lessons_for_person.append(LessonsForPersonType(id=person, lessons=docs + dummies)) lessons_for_person.append(LessonsForPersonType(id=person, lessons=docs + dummies))
......
...@@ -14,8 +14,8 @@ from .participation_status import ParticipationStatusType ...@@ -14,8 +14,8 @@ from .participation_status import ParticipationStatusType
class AbsencesForPersonsCreateMutation(graphene.Mutation): class AbsencesForPersonsCreateMutation(graphene.Mutation):
class Arguments: class Arguments:
persons = graphene.List(graphene.ID, required=True) persons = graphene.List(graphene.ID, required=True)
start = graphene.Date(required=True) start = graphene.DateTime(required=True)
end = graphene.Date(required=True) end = graphene.DateTime(required=True)
comment = graphene.String(required=False) comment = graphene.String(required=False)
reason = graphene.ID(required=True) reason = graphene.ID(required=True)
...@@ -31,17 +31,18 @@ class AbsencesForPersonsCreateMutation(graphene.Mutation): ...@@ -31,17 +31,18 @@ class AbsencesForPersonsCreateMutation(graphene.Mutation):
for person in persons: for person in persons:
if not info.context.user.has_perm("alsijil.register_absence_rule", person): if not info.context.user.has_perm("alsijil.register_absence_rule", person):
raise PermissionDenied() raise PermissionDenied()
# TODO: fix timeframe
kolego_absence, __ = Absence.objects.get_or_create( kolego_absence, __ = Absence.objects.get_or_create(
date_start=start, datetime_start=start,
date_end=end, datetime_end=end,
reason_id=reason, reason_id=reason,
person=person, person=person,
defaults={"comment": comment}, defaults={"comment": comment},
) )
events = ParticipationStatus.get_single_events( events = ParticipationStatus.get_single_events(
datetime.combine(start, datetime.min.time()), start,
datetime.combine(end, datetime.max.time()), end,
None, None,
{"person": person}, {"person": person},
with_reference_object=True, with_reference_object=True,
......
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