Browse Source

Gerando pdf com codigo de barra e opção largura/altura

pull/3162/head
ulysses 6 years ago
parent
commit
39d7ab243d
  1. 8
      sapl/materia/forms.py
  2. 4
      sapl/materia/migrations/0068_configetiquetamaterialegislativa.py
  3. 6
      sapl/materia/models.py
  4. 1
      sapl/materia/urls.py
  5. 8
      sapl/materia/views.py
  6. 14
      sapl/relatorios/views.py
  7. 2
      sapl/templates/materia/layouts.yaml
  8. 32
      sapl/templates/relatorios/etiqueta_materia_legislativa.html

8
sapl/materia/forms.py

@ -34,7 +34,7 @@ from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto,
MateriaLegislativa, Orgao, MateriaLegislativa, Orgao,
RegimeTramitacao, StatusTramitacao, RegimeTramitacao, StatusTramitacao,
TipoDocumento, TipoProposicao, TipoDocumento, TipoProposicao,
UnidadeTramitacao,ConfigEtiquetaMaetriaLegislativa) UnidadeTramitacao,ConfigEtiquetaMateriaLegislativa)
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura, Partido, Parlamentar from sapl.parlamentares.models import Legislatura, Partido, Parlamentar
@ -2923,11 +2923,9 @@ class MateriaPesquisaSimplesForm(forms.Form):
return cleaned_data return cleaned_data
class ConfigEtiquetaMaetriaLegislativaForms(ModelForm): class ConfigEtiquetaMateriaLegislativaForms(ModelForm):
data = forms.DateField(required=True)
class Meta: class Meta:
model = ConfigEtiquetaMaetriaLegislativa model = ConfigEtiquetaMateriaLegislativa
fields = '__all__' fields = '__all__'

4
sapl/materia/migrations/0068_configetiquetamaetrialegislativa.py → sapl/materia/migrations/0068_configetiquetamaterialegislativa.py

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.11.29 on 2020-05-12 15:34 # Generated by Django 1.11.29 on 2020-05-13 14:15
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import migrations, models from django.db import migrations, models
@ -13,7 +13,7 @@ class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='ConfigEtiquetaMaetriaLegislativa', name='ConfigEtiquetaMateriaLegislativa',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('largura', models.FloatField()), ('largura', models.FloatField()),

6
sapl/materia/models.py

@ -1117,7 +1117,7 @@ class MateriaEmTramitacao(models.Model):
def __str__(self): def __str__(self):
return '{}/{}'.format(self.materia, self.tramitacao) return '{}/{}'.format(self.materia, self.tramitacao)
class ConfigEtiquetaMaetriaLegislativa(models.Model): class ConfigEtiquetaMateriaLegislativa(models.Model):
largura = models.FloatField() largura = models.FloatField()
altura = models.FloatField() altura = models.FloatField()
@ -1125,10 +1125,6 @@ class ConfigEtiquetaMaetriaLegislativa(models.Model):
choices=YES_NO_CHOICES, choices=YES_NO_CHOICES,
default=False) default=False)
@classmethod
def object(cls):
return cls._default_manager.all().first() # Since only one item
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
self.id = 1 self.id = 1
return super().save(*args, **kwargs) return super().save(*args, **kwargs)

1
sapl/materia/urls.py

@ -173,7 +173,6 @@ urlpatterns_sistema = [
url(r'^sistema/materia/status-tramitacao/', url(r'^sistema/materia/status-tramitacao/',
include(StatusTramitacaoCrud.get_urls())), include(StatusTramitacaoCrud.get_urls())),
url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())), url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())),
url(r'^sistema/materia/config-etiqueta-materia-legislativas/', url(r'^sistema/materia/config-etiqueta-materia-legislativas/',
include(ConfigEtiquetaMateriaLegislativaCrud.get_urls())), include(ConfigEtiquetaMateriaLegislativaCrud.get_urls())),
] ]

8
sapl/materia/views.py

@ -48,7 +48,7 @@ from sapl.materia.forms import (AnexadaForm, AutoriaForm, AutoriaMultiCreateForm
ConfirmarProposicaoForm, DevolverProposicaoForm, ConfirmarProposicaoForm, DevolverProposicaoForm,
DespachoInicialCreateForm, LegislacaoCitadaForm, DespachoInicialCreateForm, LegislacaoCitadaForm,
MateriaPesquisaSimplesForm, OrgaoForm, ProposicaoForm, MateriaPesquisaSimplesForm, OrgaoForm, ProposicaoForm,
TipoProposicaoForm, TramitacaoForm, TramitacaoUpdateForm,ConfigEtiquetaMaetriaLegislativaForms) TipoProposicaoForm, TramitacaoForm, TramitacaoUpdateForm,ConfigEtiquetaMateriaLegislativaForms)
from sapl.norma.models import LegislacaoCitada from sapl.norma.models import LegislacaoCitada
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
from sapl.protocoloadm.models import Protocolo from sapl.protocoloadm.models import Protocolo
@ -72,7 +72,7 @@ from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, De
DocumentoAcessorio, MateriaAssunto, MateriaLegislativa, Numeracao, Orgao, DocumentoAcessorio, MateriaAssunto, MateriaLegislativa, Numeracao, Orgao,
Origem, Proposicao, RegimeTramitacao, Relatoria, StatusTramitacao, Origem, Proposicao, RegimeTramitacao, Relatoria, StatusTramitacao,
TipoDocumento, TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao, TipoDocumento, TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao,
Tramitacao, UnidadeTramitacao,ConfigEtiquetaMaetriaLegislativa) Tramitacao, UnidadeTramitacao,ConfigEtiquetaMateriaLegislativa)
AssuntoMateriaCrud = CrudAux.build(AssuntoMateria, 'assunto_materia') AssuntoMateriaCrud = CrudAux.build(AssuntoMateria, 'assunto_materia')
@ -2854,7 +2854,7 @@ def get_pdf_docacessorios(request, pk):
return response return response
class ConfigEtiquetaMateriaLegislativaCrud(CrudAux): class ConfigEtiquetaMateriaLegislativaCrud(CrudAux):
model = ConfigEtiquetaMaetriaLegislativa model = ConfigEtiquetaMateriaLegislativa
class UpdateView(CrudAux.UpdateView): class UpdateView(CrudAux.UpdateView):
form_class = ConfigEtiquetaMaetriaLegislativaForms form_class = ConfigEtiquetaMateriaLegislativaForms

14
sapl/relatorios/views.py

@ -15,7 +15,7 @@ from sapl.settings import MEDIA_URL
from sapl.base.models import Autor, CasaLegislativa from sapl.base.models import Autor, CasaLegislativa
from sapl.comissoes.models import Comissao from sapl.comissoes.models import Comissao
from sapl.materia.models import (Autoria, MateriaLegislativa, Numeracao, from sapl.materia.models import (Autoria, MateriaLegislativa, Numeracao,
Tramitacao, UnidadeTramitacao) Tramitacao, UnidadeTramitacao, ConfigEtiquetaMateriaLegislativa)
from sapl.parlamentares.models import CargoMesa, Filiacao, Parlamentar from sapl.parlamentares.models import CargoMesa, Filiacao, Parlamentar
from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo, from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo,
TramitacaoAdministrativo) TramitacaoAdministrativo)
@ -1568,17 +1568,27 @@ def relatorio_sessao_plenaria_pdf(request, pk):
def etiqueta_materia_legislativa(request, pk): def etiqueta_materia_legislativa(request, pk):
base_url = request.build_absolute_uri() base_url = request.build_absolute_uri()
materia_legislativa = MateriaLegislativa.objects.get(pk=pk) materia_legislativa = MateriaLegislativa.objects.get(pk=pk)
confg = ConfigEtiquetaMateriaLegislativa.objects.first()
from sapl.utils import create_barcode
base64_data = create_barcode(str(materia_legislativa.numero)+"/"+str(materia_legislativa.ano)+"-"+str(materia_legislativa.tipo), 100, 500)
barcode = 'data:image/png;base64,{0}'.format(base64_data)
context = { context = {
'tipo': materia_legislativa.tipo, 'tipo': materia_legislativa.tipo,
'data_apresentacao':materia_legislativa.data_apresentacao, 'data_apresentacao':materia_legislativa.data_apresentacao,
'autores': materia_legislativa.autores, 'autores': materia_legislativa.autores,
'ementa':materia_legislativa.ementa, 'ementa':materia_legislativa.ementa,
'largura': confg.largura,
'altura':confg.largura,
'barcode': barcode
} }
main_template = render_to_string('relatorios/etiqueta_materia_legislativa.html', context) main_template = render_to_string('relatorios/etiqueta_materia_legislativa.html', context)
html = HTML(base_url=base_url, string=main_template) html = HTML(base_url=base_url, string=main_template)
main_doc = html.render(stylesheets=[CSS(string='@page {size: 4cm 6cm;}')]) main_doc = html.render(stylesheets=[CSS(string="@page {{size: {}cm {}cm;}}".format(confg.largura,confg.altura))])
pdf_file = main_doc.write_pdf() pdf_file = main_doc.write_pdf()

2
sapl/templates/materia/layouts.yaml

@ -158,7 +158,7 @@ MateriaLegislativaDetail:
- indexacao - indexacao
- observacao - observacao
ConfigEtiquetaMaetriaLegislativa: ConfigEtiquetaMateriaLegislativa:
{% trans 'Configurações de Etiqueta' %}: {% trans 'Configurações de Etiqueta' %}:
- largura - largura
- altura - altura

32
sapl/templates/relatorios/etiqueta_materia_legislativa.html

@ -1 +1,31 @@
asdasd
{% load i18n %}
{% load crispy_forms_tags %}
{% load common_tags %}
{% load static %}
<head>
<style>
@page{
margin: 0cm
}
div {page-break-inside: avoid;}
p {
font-size:3pt;
}
</style>
</head>
<body>
<div>
<p><strong>Etiqueta Materia Legislativa</strong></p>
<p>{{tipo}}</p>
<p>{{data_apresentacao}}</p>
<p>{{autores}}</p>
<p>{{ementa}}</p>
<img src="{{barcode}}" style="width: 100%; height: 100%;" alt="{{barcode}}">
</div>
</body>

Loading…
Cancel
Save