diff --git a/common/urls.py b/common/urls.py index 950aa81..f4a6d12 100644 --- a/common/urls.py +++ b/common/urls.py @@ -24,6 +24,8 @@ urlpatterns = [ path('institutions/', views.CorporationListView.as_view(), name='corporations'), path('institutions//', views.CorporationView.as_view(), name='corporation'), + path('institutions/export/', views.export.institutions_export, name='corporations-export'), + path('classes/', views.KlassListView.as_view(), name='classes'), path('classes//', views.KlassView.as_view(), name='class'), path('classes//import_reports/', views.ImportReportsView.as_view(), diff --git a/stages/views/export.py b/stages/views/export.py index 5bca99f..8fa4dd6 100644 --- a/stages/views/export.py +++ b/stages/views/export.py @@ -456,3 +456,21 @@ def export_qualification_ede(request): export.write_line(values) return export.get_http_response('Export_qualif_EDE') + + +def institutions_export(request): + def format_value(val): + return '' if val is None else str(val) + + fields = [ + (f.verbose_name, f.name) + for f in Corporation._meta.get_fields() if hasattr(f, 'verbose_name') and f.name not in ('archived',) + ] + headers = [f[0] for f in fields] + + export = OpenXMLExport('Institutions') + export.write_line(headers, bold=True) + for corp in Corporation.objects.filter(archived=False).order_by('name'): + values = [format_value(getattr(corp, f[1])) for f in fields] + export.write_line(values) + return export.get_http_response('Institutions') diff --git a/templates/corporations.html b/templates/corporations.html index 4778ea2..bda0eb6 100644 --- a/templates/corporations.html +++ b/templates/corporations.html @@ -1,8 +1,13 @@ {% extends "admin/base_site.html" %} +{% load static %} {% block content %}

Liste des institutions

+
+ +
+ {% for corp in object_list %}