From 3a8d5b22079276deb1ac659e46c215665b335d87 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 4 Mar 2022 22:40:13 +0100 Subject: [PATCH] =?UTF-8?q?Export=20seznamu=20p=C5=99edn=C3=A1=C5=A1ek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prednasky/urls.py | 5 +++++ prednasky/views.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) 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