Add assignment export script

This commit is contained in:
Ramon Wenger 2022-06-29 16:25:12 +02:00
parent e6f13151ff
commit a25736ab45
1 changed files with 24 additions and 0 deletions

24
bin/assignments.py Normal file
View File

@ -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}')