Browse Source

Adding the weasy print on sessao view

pull/2017/head
Mariana Mendes 8 years ago
parent
commit
cb29a61bec
  1. 5
      sapl/sessao/urls.py
  2. 27
      sapl/sessao/views.py
  3. 0
      sapl/templates/sessao/impressos/resumo.html
  4. 73
      sapl/templates/sessao/impressos/resumo_pdf.html

5
sapl/sessao/urls.py

@ -4,6 +4,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
AdicionarVariasMateriasOrdemDia, BancadaCrud, AdicionarVariasMateriasOrdemDia, BancadaCrud,
BlocoCrud, CargoBancadaCrud, BlocoCrud, CargoBancadaCrud,
ExpedienteMateriaCrud, ExpedienteView, ExpedienteMateriaCrud, ExpedienteView,
ImpressosView,
MateriaOrdemDiaCrud, MesaView, OradorCrud, MateriaOrdemDiaCrud, MesaView, OradorCrud,
OradorExpedienteCrud, PainelView, OradorExpedienteCrud, PainelView,
PautaSessaoDetailView, PautaSessaoView, PautaSessaoDetailView, PautaSessaoView,
@ -148,8 +149,10 @@ urlpatterns = [
url(r'^sessao/(?P<pk>\d+)/votacao-simbolica-transparencia/(?P<oid>\d+)/(?P<mid>\d+)$', url(r'^sessao/(?P<pk>\d+)/votacao-simbolica-transparencia/(?P<oid>\d+)/(?P<mid>\d+)$',
VotacaoSimbolicaTransparenciaDetailView.as_view(), VotacaoSimbolicaTransparenciaDetailView.as_view(),
name='votacao_simbolica_transparencia'), name='votacao_simbolica_transparencia'),
url(r'^sessao/mudar-ordem-materia-sessao/', url(r'^sessao/mudar-ordem-materia-sessao/',
mudar_ordem_materia_sessao, mudar_ordem_materia_sessao,
name='mudar_ordem_materia_sessao'), name='mudar_ordem_materia_sessao'),
url(r'^sessao/impressos/$',
ImpressosView.as_view(),
name='impressos'),
] ]

27
sapl/sessao/views.py

@ -1,5 +1,6 @@
from re import sub from re import sub
from operator import itemgetter from operator import itemgetter
import weasyprint
from weasyprint import HTML, CSS from weasyprint import HTML, CSS
from django.contrib import messages from django.contrib import messages
@ -9,7 +10,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db.models import Max, Q from django.db.models import Max, Q
from django.forms.utils import ErrorList from django.forms.utils import ErrorList
from django.http import JsonResponse from django.http import HttpResponse, JsonResponse
from django.http.response import Http404, HttpResponseRedirect from django.http.response import Http404, HttpResponseRedirect
from django.utils import timezone from django.utils import timezone
from django.utils.datastructures import MultiValueDictKeyError from django.utils.datastructures import MultiValueDictKeyError
@ -21,6 +22,7 @@ from django.views.generic import FormView, ListView, TemplateView
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from django.template import RequestContext, loader
from django_filters.views import FilterView from django_filters.views import FilterView
from sapl.base.models import AppConfig as AppsAppConfig from sapl.base.models import AppConfig as AppsAppConfig
@ -1191,6 +1193,8 @@ def get_turno(turno):
class ResumoView(DetailView): class ResumoView(DetailView):
template_name = 'sessao/resumo.html' template_name = 'sessao/resumo.html'
model = SessaoPlenaria model = SessaoPlenaria
permission_required = ('sessao.can_access_impressos', )
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -1438,7 +1442,8 @@ class ResumoView(DetailView):
'nono_ordenacao': dict_ord_template['mat_o_d'], 'nono_ordenacao': dict_ord_template['mat_o_d'],
'decimo_ordenacao': dict_ord_template['oradores_expli']}) 'decimo_ordenacao': dict_ord_template['oradores_expli']})
return self.render_to_response(context) return gerar_pdf_impressos(self.request, context,
'sessao/impressos/resumo_pdf.html')
class ExpedienteView(FormMixin, DetailView): class ExpedienteView(FormMixin, DetailView):
@ -2874,3 +2879,21 @@ def mudar_ordem_materia_sessao(request):
materia_1.save() materia_1.save()
return return
class ImpressosView(PermissionRequiredMixin, TemplateView):
template_name = 'sessao/impressos/resumo.html'
permission_required = ('sessao.can_access_impressos', )
def gerar_pdf_impressos(request, context, template_name):
template = loader.get_template(template_name)
html = template.render(RequestContext(request, context))
pdf = weasyprint.HTML(string=html, base_url=request.build_absolute_uri()
).write_pdf()
response = HttpResponse(pdf, content_type='application/pdf')
response['Content-Disposition'] = (
'inline; filename="relatorio_impressos.pdf"')
response['Content-Transfer-Encoding'] = 'binary'
return response

0
sapl/templates/sessao/resumo.html → sapl/templates/sessao/impressos/resumo.html

73
sapl/templates/sessao/impressos/resumo_pdf.html

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>Impressos</title>
<meta charset="utf-8">
</head>
<style type="text/css">
.text_pdf{
font-family: verdana;
font-size: 77%;
}
.alert_message{
font-family: verdana;
font-size: 77%;
color: red;
@media print {
p {page-break-inside: avoid;}
}
}
</style>
<body style="margin-left:80px;margin-right:80px; margin-top: -50px">
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block title %}
<h1 class="page-header">
Resumo <small>({{sessaoplenaria}})</small>
<br/>
</h1>
{% endblock %}
{% block detail_content %}
{% include 'sessao/blocos_resumo/'|add:primeiro_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:segundo_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:terceiro_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:quarto_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:quinto_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:sexto_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:setimo_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:oitavo_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:nono_ordenacao %}
<br /><br /><br />
{% include 'sessao/blocos_resumo/'|add:decimo_ordenacao %}
<br /><br /><br />
{% endblock detail_content %}
</body>
Loading…
Cancel
Save