diff --git a/prednasky/urls.py b/prednasky/urls.py index b55de7c3..6e3fa627 100644 --- a/prednasky/urls.py +++ b/prednasky/urls.py @@ -22,4 +22,9 @@ urlpatterns = [ org_required(views.SeznamListView.as_view()), name='seznam-list' ), + path( + 'prednasky/seznam_export//', + org_required(views.exportSeznamuPrednasekNeHodnoceni), + name='seznam_export_csv' + ), ] diff --git a/prednasky/views.py b/prednasky/views.py index 2c370b7a..7929728b 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -114,4 +114,36 @@ def SeznamExportView(request, seznam): content_type="text/plain" ) +def exportSeznamuPrednasekNeHodnoceni(req, seznam): + # UGLY CODE. Jen byla potřeba pro garanta přednášek tabulka, tak vznikla :-P + + seznam = get_object_or_404(Seznam, id=seznam) + + from django.http import HttpResponse + + # Kód jsem zkopíroval přímo z tutoriálu + # https://docs.djangoproject.com/en/4.0/howto/outputting-csv/ + # Jo, je to špatná verze djanga. whatever. + response = HttpResponse( + content_type='text/csv', + headers={'Content-Disposition': 'attachment; filename="seznam.csv"'}, + ) + + writer = csv.writer(response) + + attrs = ( + 'id', + 'org', + 'nazev', + 'anotace', + 'klicova', + 'obor', + 'obtiznost', + 'popis', + ) + for predn in Prednaska.objects.filter(seznamy=seznam): + row = [getattr(predn, attr) for attr in attrs] + writer.writerow(row) + + return response