From 5bb96189ecae9269bebc2980f5369b19eb424b78 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 16 Jun 2018 21:15:40 +0200 Subject: [PATCH] Obtain date from user to print update forms --- stages/pdf.py | 6 +++--- stages/tests.py | 2 +- stages/views/__init__.py | 10 +++++++++- templates/admin/index.html | 17 ++++++++++++++++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/stages/pdf.py b/stages/pdf.py index fde4b1c..9ec8647 100644 --- a/stages/pdf.py +++ b/stages/pdf.py @@ -185,16 +185,16 @@ class UpdateDataFormPDF(EpcBaseDocTemplate): """ Génération des formulaires PDF de mise à jour des données. """ - def __init__(self, filename): + def __init__(self, filename, return_date): super().__init__(filename) self.text = ( "Afin de mettre à jour nos bases de données, nous vous serions reconnaissant " "de contrôler les données ci-dessous qui vous concernent selon votre filière " "et de retourner le présent document corrigé et complété à votre maître de classe jusqu'au " - "vendredi 9 septembre prochain.

" + "%s prochain.

" "Nous vous remercions de votre précieuse collaboration.

" "Le secrétariat" - ) + ) % django_format(return_date, 'l j F') self.underline = '__________________________________' def produce(self, klass): diff --git a/stages/tests.py b/stages/tests.py index 7f12323..6f7cf22 100644 --- a/stages/tests.py +++ b/stages/tests.py @@ -175,7 +175,7 @@ class StagesTest(TestCase): def test_export_update_forms(self): self.client.login(username='me', password='mepassword') - response = self.client.get(reverse('print_update_form')) + response = self.client.get(reverse('print_update_form') + '?date=14.09.2018') self.assertEqual( response['Content-Disposition'], 'attachment; filename="modification.zip"' ) diff --git a/stages/views/__init__.py b/stages/views/__init__.py index 5eeac47..52dfdec 100644 --- a/stages/views/__init__.py +++ b/stages/views/__init__.py @@ -748,10 +748,18 @@ class PrintUpdateForm(ZippedFilesBaseView): """ filename = 'modification.zip' + def get(self, request, *args, **kwargs): + try: + self.return_date = date(*reversed([int(num) for num in self.request.GET.get('date').split('.')])) + except (AttributeError, ValueError): + messages.error(request, "La date fournie n'est pas valable") + return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) + return super().get(request, *args, **kwargs) + def generate_files(self): for klass in Klass.objects.filter(level__gte=2 ).exclude(section__name='MP_ASSC').exclude(section__name='MP_ASE'): - pdf = UpdateDataFormPDF('{0}.pdf'.format(klass.name)) + pdf = UpdateDataFormPDF('{0}.pdf'.format(klass.name), self.return_date) pdf.produce(klass) yield pdf.filename diff --git a/templates/admin/index.html b/templates/admin/index.html index 0775c74..23a7077 100644 --- a/templates/admin/index.html +++ b/templates/admin/index.html @@ -5,6 +5,21 @@ {% endblock %} +{% block extrahead %} + +{% endblock %} + {% block coltype %}colMS{% endblock %} {% block bodyclass %}dashboard{% endblock %} @@ -76,7 +91,7 @@
  • Exporter les données de stages (toutes)
  • Exporter les données comptables
  • Exporter les données SAP
  • -
  • Imprimer les formulaires de MAJ
  • +
  • Imprimer les formulaires de MAJ
  • Imprimer les rôles de classes
  • Exportation générale des élèves
  • Exportation qualif. EDE