Add command to export assignments
This commit is contained in:
parent
90a576c661
commit
b4c9e01fcb
|
|
@ -7,6 +7,7 @@ from django.http import HttpResponse
|
|||
from django.urls import reverse
|
||||
from django.utils.html import format_html
|
||||
|
||||
from assignments.helpers import write_assignments_to_csv, write_submissions_to_csv
|
||||
from assignments.models import Assignment, StudentSubmission, SubmissionFeedback
|
||||
|
||||
|
||||
|
|
@ -38,10 +39,7 @@ class AssignmentAdmin(admin.ModelAdmin):
|
|||
response['Content-Disposition'] = 'attachment;filename=assignment-export.csv'
|
||||
|
||||
writer = csv.writer(response)
|
||||
field_names = ['ID', 'Titel', 'Auftragstext', 'Modul']
|
||||
writer.writerow(field_names)
|
||||
for assignment in queryset.all():
|
||||
writer.writerow([assignment.id, assignment.title, assignment.assignment, assignment.module])
|
||||
write_assignments_to_csv(writer, queryset)
|
||||
|
||||
return response
|
||||
|
||||
|
|
@ -52,11 +50,7 @@ class AssignmentAdmin(admin.ModelAdmin):
|
|||
response['Content-Disposition'] = 'attachment;filename=assignment-submission-export.csv'
|
||||
|
||||
writer = csv.writer(response)
|
||||
field_names = ['Assignment-ID', 'Text', 'Mit Lehrer geteilt',]
|
||||
writer.writerow(field_names)
|
||||
for assignment in queryset.all():
|
||||
for submission in assignment.submissions.filter(final=True):
|
||||
writer.writerow([submission.assignment.id, submission.text, submission.final])
|
||||
write_submissions_to_csv(writer, queryset)
|
||||
|
||||
return response
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
def write_assignments_to_csv(writer, queryset):
|
||||
field_names = ['ID', 'Titel', 'Auftragstext', 'Modul']
|
||||
writer.writerow(field_names)
|
||||
for assignment in queryset.all():
|
||||
writer.writerow([assignment.id, assignment.title, assignment.assignment, assignment.module])
|
||||
|
||||
def write_submissions_to_csv(writer, queryset):
|
||||
field_names = ['Assignment-ID', 'Text', 'Mit Lehrer geteilt', ]
|
||||
writer.writerow(field_names)
|
||||
for submission in queryset.all():
|
||||
writer.writerow([submission.assignment.id, submission.text, submission.final])
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
import csv
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from assignments.helpers import write_assignments_to_csv, write_submissions_to_csv
|
||||
from assignments.models import Assignment, StudentSubmission
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = """
|
||||
Export assignments with submissions
|
||||
"""
|
||||
|
||||
def handle(self, *args, **options):
|
||||
ids = [171, 112, 113, 114, 272, 246, 250, 348, 598]
|
||||
|
||||
assignments = Assignment.objects.filter(id__in=ids)
|
||||
|
||||
with open('./export-assignments.csv', 'w') as f:
|
||||
writer = csv.writer(f)
|
||||
write_assignments_to_csv(writer, assignments)
|
||||
|
||||
submissions = StudentSubmission.objects.filter(assignment__id__in=ids)
|
||||
|
||||
with open('./export-submissions.csv', 'w') as f:
|
||||
writer = csv.writer(f)
|
||||
write_submissions_to_csv(writer, submissions)
|
||||
Loading…
Reference in New Issue