From 1b047bbe8f21f073cf4ce8b04680678554033a95 Mon Sep 17 00:00:00 2001 From: ulysses Date: Tue, 12 May 2020 14:59:33 -0300 Subject: [PATCH] Fix#3138 - Iniciando etiqueta de materia legislativa --- sapl/materia/forms.py | 11 +++++++- .../0068_configetiquetamaetrialegislativa.py | 24 ++++++++++++++++ sapl/materia/models.py | 16 +++++++++++ sapl/materia/urls.py | 6 +++- sapl/materia/views.py | 9 ++++-- sapl/relatorios/urls.py | 4 ++- sapl/relatorios/views.py | 28 +++++++++++++++++++ sapl/templates/materia/layouts.yaml | 6 ++++ .../etiqueta_materia_legislativa.html | 1 + 9 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 sapl/materia/migrations/0068_configetiquetamaetrialegislativa.py create mode 100644 sapl/templates/relatorios/etiqueta_materia_legislativa.html diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index c0a3b3777..e65d3cd48 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -34,7 +34,7 @@ from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto, MateriaLegislativa, Orgao, RegimeTramitacao, StatusTramitacao, TipoDocumento, TipoProposicao, - UnidadeTramitacao) + UnidadeTramitacao,ConfigEtiquetaMaetriaLegislativa) from sapl.norma.models import (LegislacaoCitada, NormaJuridica, TipoNormaJuridica) from sapl.parlamentares.models import Legislatura, Partido, Parlamentar @@ -2922,3 +2922,12 @@ class MateriaPesquisaSimplesForm(forms.Form): _('A Data Final não pode ser menor que a Data Inicial')) return cleaned_data + +class ConfigEtiquetaMaetriaLegislativaForms(ModelForm): + data = forms.DateField(required=True) + + class Meta: + model = ConfigEtiquetaMaetriaLegislativa + fields = '__all__' + + \ No newline at end of file diff --git a/sapl/materia/migrations/0068_configetiquetamaetrialegislativa.py b/sapl/materia/migrations/0068_configetiquetamaetrialegislativa.py new file mode 100644 index 000000000..cec49735d --- /dev/null +++ b/sapl/materia/migrations/0068_configetiquetamaetrialegislativa.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2020-05-12 15:34 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('materia', '0067_auto_20200416_1538'), + ] + + operations = [ + migrations.CreateModel( + name='ConfigEtiquetaMaetriaLegislativa', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('largura', models.FloatField()), + ('altura', models.FloatField()), + ('mostrar_em_arquivo', models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Mostrar em arquivo ?')), + ], + ), + ] diff --git a/sapl/materia/models.py b/sapl/materia/models.py index b94ea78ff..db32dfaa1 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -1116,3 +1116,19 @@ class MateriaEmTramitacao(models.Model): def __str__(self): return '{}/{}'.format(self.materia, self.tramitacao) + +class ConfigEtiquetaMaetriaLegislativa(models.Model): + largura = models.FloatField() + altura = models.FloatField() + + mostrar_em_arquivo = models.BooleanField(verbose_name=_('Mostrar em arquivo ?'), + choices=YES_NO_CHOICES, + default=False) + + @classmethod + def object(cls): + return cls._default_manager.all().first() # Since only one item + + def save(self, *args, **kwargs): + self.id = 1 + return super().save(*args, **kwargs) \ No newline at end of file diff --git a/sapl/materia/urls.py b/sapl/materia/urls.py index 05733599c..4ddb17ade 100644 --- a/sapl/materia/urls.py +++ b/sapl/materia/urls.py @@ -27,7 +27,8 @@ from sapl.materia.views import (AcompanhamentoConfirmarView, proposicao_texto, recuperar_materia, ExcluirTramitacaoEmLoteView, RetornarProposicao, MateriaPesquisaSimplesView, - DespachoInicialMultiCreateView, get_zip_docacessorios, get_pdf_docacessorios) + DespachoInicialMultiCreateView, get_zip_docacessorios, + get_pdf_docacessorios, ConfigEtiquetaMateriaLegislativaCrud) from sapl.norma.views import NormaPesquisaSimplesView from sapl.protocoloadm.views import ( FichaPesquisaAdmView, FichaSelecionaAdmView) @@ -172,6 +173,9 @@ urlpatterns_sistema = [ url(r'^sistema/materia/status-tramitacao/', include(StatusTramitacaoCrud.get_urls())), url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())), + + url(r'^sistema/materia/config-etiqueta-materia-legislativas/', + include(ConfigEtiquetaMateriaLegislativaCrud.get_urls())), ] urlpatterns = urlpatterns_impressos + urlpatterns_materia + \ diff --git a/sapl/materia/views.py b/sapl/materia/views.py index db28dd2c3..a79dcbc02 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -48,7 +48,7 @@ from sapl.materia.forms import (AnexadaForm, AutoriaForm, AutoriaMultiCreateForm ConfirmarProposicaoForm, DevolverProposicaoForm, DespachoInicialCreateForm, LegislacaoCitadaForm, MateriaPesquisaSimplesForm, OrgaoForm, ProposicaoForm, - TipoProposicaoForm, TramitacaoForm, TramitacaoUpdateForm) + TipoProposicaoForm, TramitacaoForm, TramitacaoUpdateForm,ConfigEtiquetaMaetriaLegislativaForms) from sapl.norma.models import LegislacaoCitada from sapl.parlamentares.models import Legislatura from sapl.protocoloadm.models import Protocolo @@ -72,7 +72,7 @@ from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, De DocumentoAcessorio, MateriaAssunto, MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao, RegimeTramitacao, Relatoria, StatusTramitacao, TipoDocumento, TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao, - Tramitacao, UnidadeTramitacao) + Tramitacao, UnidadeTramitacao,ConfigEtiquetaMaetriaLegislativa) AssuntoMateriaCrud = CrudAux.build(AssuntoMateria, 'assunto_materia') @@ -2853,3 +2853,8 @@ def get_pdf_docacessorios(request, pk): % external_name) return response +class ConfigEtiquetaMateriaLegislativaCrud(CrudAux): + model = ConfigEtiquetaMaetriaLegislativa + + class UpdateView(CrudAux.UpdateView): + form_class = ConfigEtiquetaMaetriaLegislativaForms diff --git a/sapl/relatorios/urls.py b/sapl/relatorios/urls.py index 05ad22671..e60a1e03e 100644 --- a/sapl/relatorios/urls.py +++ b/sapl/relatorios/urls.py @@ -6,7 +6,7 @@ from .views import (relatorio_capa_processo, relatorio_etiqueta_protocolo, relatorio_materia, relatorio_ordem_dia, relatorio_pauta_sessao, relatorio_protocolo, relatorio_sessao_plenaria, - resumo_ata_pdf, relatorio_sessao_plenaria_pdf) + resumo_ata_pdf, relatorio_sessao_plenaria_pdf, etiqueta_materia_legislativa) app_name = AppConfig.name @@ -33,4 +33,6 @@ urlpatterns = [ resumo_ata_pdf, name='resumo_ata_pdf'), url(r'^relatorios/(?P\d+)/sessao-plenaria-pdf$', relatorio_sessao_plenaria_pdf, name='relatorio_sessao_plenaria_pdf'), + url(r'^relatorios/(?P\d+)/etiqueta-materia-legislativa$', + etiqueta_materia_legislativa, name='etiqueta_materia_legislativa'), ] diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 913930d50..51e3ce52e 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -1065,6 +1065,8 @@ def relatorio_etiqueta_protocolo(request, nro, ano): protocolo = Protocolo.objects.filter(numero=nro, ano=ano) + m = MateriaLegislativa.objects.filter(numero_protocolo=nro,ano=ano) + protocolo_data = get_etiqueta_protocolos(protocolo) pdf = pdf_etiqueta_protocolo_gerar.principal(imagem, @@ -1560,3 +1562,29 @@ def relatorio_sessao_plenaria_pdf(request, pk): response.write(pdf_file) return response + + + +def etiqueta_materia_legislativa(request, pk): + base_url = request.build_absolute_uri() + materia_legislativa = MateriaLegislativa.objects.get(pk=pk) + context = { + 'tipo': materia_legislativa.tipo, + 'data_apresentacao':materia_legislativa.data_apresentacao, + 'autores': materia_legislativa.autores, + 'ementa':materia_legislativa.ementa, + } + + main_template = render_to_string('relatorios/etiqueta_materia_legislativa.html', context) + + html = HTML(base_url=base_url, string=main_template) + main_doc = html.render(stylesheets=[CSS(string='@page {size: 4cm 6cm;}')]) + + pdf_file = main_doc.write_pdf() + + response = HttpResponse(content_type='application/pdf;') + response['Content-Disposition'] = 'inline; filename=relatorio.pdf' + response['Content-Transfer-Encoding'] = 'binary' + response.write(pdf_file) + + return response diff --git a/sapl/templates/materia/layouts.yaml b/sapl/templates/materia/layouts.yaml index a885a418d..0e97bb46b 100644 --- a/sapl/templates/materia/layouts.yaml +++ b/sapl/templates/materia/layouts.yaml @@ -157,3 +157,9 @@ MateriaLegislativaDetail: - ementa - indexacao - observacao + +ConfigEtiquetaMaetriaLegislativa: + {% trans 'Configurações de Etiqueta' %}: + - largura + - altura + - mostrar_em_arquivo \ No newline at end of file diff --git a/sapl/templates/relatorios/etiqueta_materia_legislativa.html b/sapl/templates/relatorios/etiqueta_materia_legislativa.html new file mode 100644 index 000000000..9118d6c90 --- /dev/null +++ b/sapl/templates/relatorios/etiqueta_materia_legislativa.html @@ -0,0 +1 @@ +asdasd \ No newline at end of file