From c995b9d44d4d0c5fd579a4e3151e486a1467e569 Mon Sep 17 00:00:00 2001 From: Victor Fabre Date: Tue, 11 Dec 2018 17:33:35 -0200 Subject: [PATCH] fix #2344 --- sapl/materia/urls.py | 5 +- sapl/protocoloadm/forms.py | 6 +- sapl/protocoloadm/views.py | 40 ++++--- .../materia/impressos/ficha_adm_pdf.html | 107 ++++++++++++++++++ 4 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 sapl/templates/materia/impressos/ficha_adm_pdf.html diff --git a/sapl/materia/urls.py b/sapl/materia/urls.py index 4a974655b..e446e6a64 100644 --- a/sapl/materia/urls.py +++ b/sapl/materia/urls.py @@ -26,7 +26,7 @@ from sapl.materia.views import (AcompanhamentoConfirmarView, proposicao_texto, recuperar_materia, ExcluirTramitacaoEmLoteView, RetornarProposicao) from sapl.norma.views import NormaPesquisaSimplesView -from sapl.protocoloadm.views import FichaPesquisaAdmView +from sapl.protocoloadm.views import (FichaPesquisaAdmView, FichaSelecionaAdmView) from .apps import AppConfig @@ -51,6 +51,9 @@ urlpatterns_impressos = [ url(r'^materia/impressos/ficha-pesquisa-adm/$', FichaPesquisaAdmView.as_view(), name= 'impressos_ficha_pesquisa_adm'), + url(r'^materia/impressos/ficha-seleciona-adm/$', + FichaSelecionaAdmView.as_view(), + name= 'impressos_ficha_seleciona_adm'), ] urlpatterns_materia = [ diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 632359191..0edd63a34 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -1058,16 +1058,16 @@ class FichaPesquisaAdmForm(forms.Form): class FichaSelecionaAdmForm(forms.Form): - materia = forms.ModelChoiceField( + documento = forms.ModelChoiceField( widget=forms.RadioSelect, - queryset=DocumentoAcessorioAdministrativo.objects.all(), + queryset=DocumentoAdministrativo.objects.all(), label='') def __init__(self, *args, **kwargs): super(FichaSelecionaAdmForm, self).__init__(*args, **kwargs) row1 = to_row( - [('materia', 12)]) + [('documento', 12)]) self.helper = FormHelper() self.helper.layout = Layout( diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 91e351ded..8dd7e9e47 100755 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -1091,14 +1091,14 @@ class FichaPesquisaAdmView(PermissionRequiredMixin, FormView): data_inicial = form.data['data_inicial'] data_final = form.data['data_final'] - url = reverse('sapl.materia:impressos_ficha_seleciona') + url = reverse('sapl.materia:impressos_ficha_seleciona_adm') url = url + '?tipo=%s&data_inicial=%s&data_final=%s' % ( tipo_documento, data_inicial, data_final) return HttpResponseRedirect(url) -class FichaSelecionaView(PermissionRequiredMixin, FormView): +class FichaSelecionaAdmView(PermissionRequiredMixin, FormView): logger = logging.getLogger(__name__) form_class = FichaSelecionaAdmForm template_name = 'materia/impressos/ficha_seleciona.html' @@ -1109,9 +1109,9 @@ class FichaSelecionaView(PermissionRequiredMixin, FormView): 'data_inicial' not in self.request.GET or 'data_final' not in self.request.GET): return HttpResponseRedirect(reverse( - 'sapl.materia:impressos_ficha_pesquisa')) + 'sapl.materia:impressos_ficha_pesquisa_adm')) - context = super(FichaSelecionaView, self).get_context_data( + context = super(FichaSelecionaAdmView, self).get_context_data( **kwargs) tipo = self.request.GET['tipo'] @@ -1120,14 +1120,14 @@ class FichaSelecionaView(PermissionRequiredMixin, FormView): data_final = datetime.strptime( self.request.GET['data_final'], "%d/%m/%Y").date() - materia_list = MateriaLegislativa.objects.filter( + documento_list = DocumentoAdministrativo.objects.filter( tipo=tipo, - data_apresentacao__range=(data_inicial, data_final)) - context['quantidade'] = len(materia_list) - materia_list = materia_list[:100] + data__range=(data_inicial, data_final)) + context['quantidade'] = len(documento_list) + documento_list = documento_list[:100] - context['form'].fields['materia'].choices = [ - (m.id, str(m)) for m in materia_list] + context['form'].fields['documento'].choices = [ + (d.id, str(d)) for d in documento_list] username = self.request.user.username @@ -1153,21 +1153,19 @@ class FichaSelecionaView(PermissionRequiredMixin, FormView): try: self.logger.debug( - "user=" + username + ". Tentando obter objeto MateriaLegislativa com id={}".format(form.data['materia'])) - materia = MateriaLegislativa.objects.get( - id=form.data['materia']) + "user=" + username + ". Tentando obter objeto DocumentoAdministrativo com id={}".format(form.data['documento'])) + documento = DocumentoAdministrativo.objects.get( + id=form.data['documento']) except ObjectDoesNotExist: self.logger.error( - "user=" + username + ". Esta MáteriaLegislativa não existe (id={}).".format(form.data['materia'])) - mensagem = _('Esta Máteria não existe!') + "user=" + username + ". Este DocumentoAdministrativo não existe (id={}).".format(form.data['documento'])) + mensagem = _('Este Documento Administrativo não existe.') self.messages.add_message(self.request, messages.INFO, mensagem) return self.render_to_response(context) - if len(materia.ementa) > 301: - materia.ementa = materia.ementa[0:300] + '[...]' - context['materia'] = materia - context['despachos'] = materia.despachoinicial_set.all().values_list( - 'comissao__nome', flat=True) + if len(documento.assunto) > 301: + documento.assunto = documento.assunto[0:300] + '[...]' + context['documento'] = documento return gerar_pdf_impressos(self.request, context, - 'materia/impressos/ficha_pdf.html') \ No newline at end of file + 'materia/impressos/ficha_adm_pdf.html') \ No newline at end of file diff --git a/sapl/templates/materia/impressos/ficha_adm_pdf.html b/sapl/templates/materia/impressos/ficha_adm_pdf.html new file mode 100644 index 000000000..b5de1e0a9 --- /dev/null +++ b/sapl/templates/materia/impressos/ficha_adm_pdf.html @@ -0,0 +1,107 @@ + + + + + + + + + + +
+ +
+ + PROCESSO Nº: {{ documento.numero }} / {{documento.ano}}
+
+ + +
+ + {{documento.tipo}}: {{documento.numero}} / {{documento.ano}}
+
+ + + +
+ + Data de entrada: {{documento.data}}
+
+ + {% if documento.protocolo%} + + +
+
+ Protocolo: {{materia.protocolo}}
+
+ {% endif %} + + + + +
+
+ Ementa: {{documento.assunto}} +
+
+ + +
+ + +