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,
RegimeTramitacao, StatusTramitacao,
TipoDocumento, TipoProposicao,
UnidadeTramitacao,ConfigEtiquetaMaetriaLegislativa)
UnidadeTramitacao,ConfigEtiquetaMateriaLegislativa)
from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura, Partido, Parlamentar
@ -2923,11 +2923,9 @@ class MateriaPesquisaSimplesForm(forms.Form):
return cleaned_data
class ConfigEtiquetaMaetriaLegislativaForms(ModelForm):
data = forms.DateField(required=True)
class ConfigEtiquetaMateriaLegislativaForms(ModelForm):
class Meta:
model = ConfigEtiquetaMaetriaLegislativa
model = ConfigEtiquetaMateriaLegislativa
fields = '__all__'

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

@ -1,5 +1,5 @@
# -*- 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 django.db import migrations, models
@ -13,7 +13,7 @@ class Migration(migrations.Migration):
operations = [
migrations.CreateModel(
name='ConfigEtiquetaMaetriaLegislativa',
name='ConfigEtiquetaMateriaLegislativa',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('largura', models.FloatField()),

6
sapl/materia/models.py

@ -1117,7 +1117,7 @@ class MateriaEmTramitacao(models.Model):
def __str__(self):
return '{}/{}'.format(self.materia, self.tramitacao)
class ConfigEtiquetaMaetriaLegislativa(models.Model):
class ConfigEtiquetaMateriaLegislativa(models.Model):
largura = models.FloatField()
altura = models.FloatField()
@ -1125,10 +1125,6 @@ class ConfigEtiquetaMaetriaLegislativa(models.Model):
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)

1
sapl/materia/urls.py

@ -173,7 +173,6 @@ 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())),
]

8
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,ConfigEtiquetaMaetriaLegislativaForms)
TipoProposicaoForm, TramitacaoForm, TramitacaoUpdateForm,ConfigEtiquetaMateriaLegislativaForms)
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,ConfigEtiquetaMaetriaLegislativa)
Tramitacao, UnidadeTramitacao,ConfigEtiquetaMateriaLegislativa)
AssuntoMateriaCrud = CrudAux.build(AssuntoMateria, 'assunto_materia')
@ -2854,7 +2854,7 @@ def get_pdf_docacessorios(request, pk):
return response
class ConfigEtiquetaMateriaLegislativaCrud(CrudAux):
model = ConfigEtiquetaMaetriaLegislativa
model = ConfigEtiquetaMateriaLegislativa
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.comissoes.models import Comissao
from sapl.materia.models import (Autoria, MateriaLegislativa, Numeracao,
Tramitacao, UnidadeTramitacao)
Tramitacao, UnidadeTramitacao, ConfigEtiquetaMateriaLegislativa)
from sapl.parlamentares.models import CargoMesa, Filiacao, Parlamentar
from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo,
TramitacaoAdministrativo)
@ -1568,17 +1568,27 @@ def relatorio_sessao_plenaria_pdf(request, pk):
def etiqueta_materia_legislativa(request, pk):
base_url = request.build_absolute_uri()
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 = {
'tipo': materia_legislativa.tipo,
'data_apresentacao':materia_legislativa.data_apresentacao,
'autores': materia_legislativa.autores,
'ementa':materia_legislativa.ementa,
'largura': confg.largura,
'altura':confg.largura,
'barcode': barcode
}
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;}')])
main_doc = html.render(stylesheets=[CSS(string="@page {{size: {}cm {}cm;}}".format(confg.largura,confg.altura))])
pdf_file = main_doc.write_pdf()

2
sapl/templates/materia/layouts.yaml

@ -158,7 +158,7 @@ MateriaLegislativaDetail:
- indexacao
- observacao
ConfigEtiquetaMaetriaLegislativa:
ConfigEtiquetaMateriaLegislativa:
{% trans 'Configurações de Etiqueta' %}:
- largura
- 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