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

[Data checks] Combine holiday queries to one big query

parent eeb5f521
No related branches found
No related tags found
1 merge request!92Resolve "Add task for checking plausibility of data"
Pipeline #5126 passed
...@@ -123,13 +123,14 @@ class LessonDocumentationOnHolidaysDataCheck(DataCheck): ...@@ -123,13 +123,14 @@ class LessonDocumentationOnHolidaysDataCheck(DataCheck):
~Q(topic="") | ~Q(group_note="") | ~Q(homework="") ~Q(topic="") | ~Q(group_note="") | ~Q(homework="")
).annotate(actual_date=weekday_to_date) ).annotate(actual_date=weekday_to_date)
q = Q()
for holiday in holidays: for holiday in holidays:
docs_filtered_by_date = documentations.filter( q = q | Q(actual_date__gte=holiday.date_start, actual_date__lte=holiday.date_end)
actual_date__gte=holiday.date_start, actual_date__lte=holiday.date_end documentations = documentations.filter(q)
)
for doc in docs_filtered_by_date: for doc in documentations:
logging.info(f"Lesson documentation {doc} is on holidays") logging.info(f"Lesson documentation {doc} is on holidays")
cls.register_result(doc) cls.register_result(doc)
class PersonalNoteOnHolidaysDataCheck(DataCheck): class PersonalNoteOnHolidaysDataCheck(DataCheck):
...@@ -158,13 +159,14 @@ class PersonalNoteOnHolidaysDataCheck(DataCheck): ...@@ -158,13 +159,14 @@ class PersonalNoteOnHolidaysDataCheck(DataCheck):
~Q(remarks="") | Q(absent=True) | ~Q(late=0) | Q(extra_marks__isnull=False) ~Q(remarks="") | Q(absent=True) | ~Q(late=0) | Q(extra_marks__isnull=False)
).annotate(actual_date=weekday_to_date) ).annotate(actual_date=weekday_to_date)
q = Q()
for holiday in holidays: for holiday in holidays:
notes_filtered_by_date = personal_notes.filter( q = q | Q(actual_date__gte=holiday.date_start, actual_date__lte=holiday.date_end)
actual_date__gte=holiday.date_start, actual_date__lte=holiday.date_end personal_notes = personal_notes.filter(q)
)
for note in notes_filtered_by_date: for note in personal_notes:
logging.info(f"Personal note {note} is on holidays") logging.info(f"Personal note {note} is on holidays")
cls.register_result(note) cls.register_result(note)
class ExcusesWithoutAbsences(DataCheck): class ExcusesWithoutAbsences(DataCheck):
......
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