From 679fa2dca1ba2d51b0996241ee25628cbc61ef88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Mogu=C3=A9rou?= Date: Mon, 15 Apr 2024 20:55:14 +0200 Subject: [PATCH] export --- colloscope/models.py | 8 ++++---- colloscope/pdfexport.py | 6 ++++-- colloscope/urls.py | 3 ++- colloscope/views.py | 8 ++++++++ kholles_web/urls.py | 2 +- test.pdf | Bin 4556 -> 4556 bytes 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/colloscope/models.py b/colloscope/models.py index f0aaffb..334ca9e 100644 --- a/colloscope/models.py +++ b/colloscope/models.py @@ -35,9 +35,9 @@ class Classe(models.Model): Renvoie un numéro non spécifiée si le jour est pendant une période de vacances """ - zone = self.classe.lycee.vacances + zone = self.lycee.vacances vacances = calendrier[zone] - jour0 = self.classe.jour_zero + jour0 = self.jour_zero n = 1 + ((jour - jour0).days)//7 for debut, fin in vacances: @@ -67,9 +67,9 @@ class Classe(models.Model): - Le date du lundi de la semaine n """ - zone = self.classe.lycee.vacances + zone = self.lycee.vacances vacances = calendrier[zone] - jour0 = self.classe.jour_zero + jour0 = self.jour_zero jour = jour0 + (n-1) * timedelta(weeks=1) diff --git a/colloscope/pdfexport.py b/colloscope/pdfexport.py index 7a1db25..340c8dc 100644 --- a/colloscope/pdfexport.py +++ b/colloscope/pdfexport.py @@ -108,7 +108,7 @@ class PDF(FPDF): def table_colloscope(self, periode, heading=True, est_colle=True): semaines = periode.range_semaines() - lundis = [ periode.date_debut_sem(n) for n in semaines ] + lundis = [ periode.classe.date_debut_sem(n) for n in semaines ] creneaux = Creneau.objects.filter(periode=periode, est_colle=est_colle) jours = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"] @@ -182,11 +182,13 @@ def generate(periode): pdf.output("test.pdf") + return pdf + def main(): classe = Classe.objects.get(id=1) periode = Periode.objects.get(classe=classe, libelle="Semestre 5/2") - generate(periode) + return generate(periode) if __name__ == "__main__": main() diff --git a/colloscope/urls.py b/colloscope/urls.py index 344f355..6361cc9 100644 --- a/colloscope/urls.py +++ b/colloscope/urls.py @@ -2,5 +2,6 @@ from django.urls import path from . import views urlpatterns = [ - path("colloscope/", views.colloscope, name="colloscope"), + path("", views.colloscope, name="colloscope"), + path("export", views.export, name="export"), ] diff --git a/colloscope/views.py b/colloscope/views.py index ca03278..43ac19e 100644 --- a/colloscope/views.py +++ b/colloscope/views.py @@ -1,6 +1,14 @@ from django.http import HttpResponse from django.template import loader +from colloscope.pdfexport import main # /!\ temporaire def colloscope(request): template = loader.get_template("colloscope.html") return HttpResponse(template.render()) + +def export(request): + return HttpResponse(bytes(main().output()), content_type="application/pdf") + +def data_dump(request): + template = loader.get_template("data_dump.html") + return HttpResponse(template.render()) diff --git a/kholles_web/urls.py b/kholles_web/urls.py index 0b2d6a4..166821d 100644 --- a/kholles_web/urls.py +++ b/kholles_web/urls.py @@ -18,6 +18,6 @@ from django.contrib import admin from django.urls import include, path urlpatterns = [ - path('', include('colloscope.urls')), + path('colloscope/', include('colloscope.urls')), path('admin/', admin.site.urls), ] diff --git a/test.pdf b/test.pdf index 86a09b4a4c3d0e911c1d6ddc1cfa1ae3819d5a40..23a94ab62ecb6a59c16ce6e09add9d32803878ef 100644 GIT binary patch delta 95 zcmX@3d`5YLvjDfbsj0DHl%cu0sp)1v0Yye9LpLKsO9Ll2QzJJcb7LnX3rizoCr3jI VQ*#$5M`ueTI~zhOCT|p!1^{W87Wx1H delta 95 zcmX@3d`5YLvjDe=v5ARUl%a{bvB_pX0Yye97ZXz#H)nHmBR5x9S7SqSHzOwtLnCKX V12+Rh12-oFI~zhOCT|p!1^|3g7fJvC