From a25736ab450917a9c64a17b4919610ebf17630d8 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Wed, 29 Jun 2022 16:25:12 +0200 Subject: [PATCH] Add assignment export script --- bin/assignments.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 bin/assignments.py diff --git a/bin/assignments.py b/bin/assignments.py new file mode 100644 index 00000000..d606421e --- /dev/null +++ b/bin/assignments.py @@ -0,0 +1,24 @@ +from assignments.models import Assignment +from django.db.models import Q, Count + +""" +Get all assignments, evaluate all submissions and final (=shared) submissions and sort them by Topic and Module + +todo: make this a Django command +""" +num_final = Count('submissions', filter=Q(submissions__final=True)) +num_submissions = Count('submissions') +assignments=Assignment.objects.annotate(num_submissions=num_submissions).annotate(num_final=num_final).select_related('module').order_by('module') + +topics = {} +for a in assignments: + topic = a.module.get_parent() + topic_title = topic.title + if topic_title not in topics: + topics[topic_title] = [] + topics[topic_title].append(f'{a.module},{a.title},{a.num_final},{a.num_submissions}') + +for t, value in topics.items(): + for e in value: + print(f'{t},{e}') +