from django.
contrib import admin
from [Link] import HttpResponse
from [Link] import render_to_string
from weasyprint import HTML
from .models import OrdreDuJour, Texte
# Fonction pour l'exportation des ordres du jour
def export_pdf_ordres(admin, request, queryset):
template_path = 'admin/pdf_template_adopted_ordresdujour.html'
context = {'ordres': queryset}
return create_pdf_response(template_path, context)
# Fonction pour l'exportation des textes
def export_pdf_textes(admin, request, queryset):
template_path = 'admin/pdf_template_textes_adoptes.html'
context = {'textes': queryset}
return create_pdf_response(template_path, context)
# Fonction d'assistance pour créer une réponse PDF
def create_pdf_response(template_path, context):
html_string = render_to_string(template_path, context)
html = HTML(string=html_string)
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="[Link]"'
html.write_pdf(response)
return response
# Classe d'administration pour les ordres du jour
class OrdreDuJourAdmin([Link]):
list_display = ('periodeDebut', 'periodeFin', 'etat')
actions = ['export_pdf_adopted_ordres']
def export_pdf_adopted_ordres(self, request, queryset):
adopted_ordres = [Link](etat='adopte')
if adopted_ordres.exists():
return export_pdf_ordres(self, request, adopted_ordres)
else:
self.message_user(request, "Aucun ordre du jour adopté à exporter.", level='warning')
export_pdf_adopted_ordres.short_description = "Exporter les ordres du jour adoptés en PDF"
[Link](OrdreDuJour, OrdreDuJourAdmin)
# Classe d'administration pour les textes
class TexteAdmin([Link]):
list_display = ('date_de_depot', 'numero', 'intitule', 'state')
actions = ['export_pdf_adopted_textes']
def export_pdf_adopted_textes(self, request, queryset):
adopted_textes = [Link](state='loi_adopte')
if adopted_textes.exists():
return export_pdf_textes(self, request, adopted_textes)
else:
self.message_user(request, "Aucun texte adopté à exporter.", level='warning')
export_pdf_adopted_textes.short_description = "Exporter les textes adoptés en PDF"
[Link](Texte, TexteAdmin)