Browse Source

Anexando etiqueta em Texto Articulado

pull/3162/head
ulysses 6 years ago
parent
commit
0cb675c57a
  1. 4
      sapl/relatorios/urls.py
  2. 47
      sapl/relatorios/views.py
  3. 6
      sapl/templates/materia/materialegislativa_detail.html

4
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, etiqueta_materia_legislativa)
resumo_ata_pdf, relatorio_sessao_plenaria_pdf, etiqueta_materia_legislativa, texto_articulado_com_etiqueta)
app_name = AppConfig.name
@ -35,4 +35,6 @@ urlpatterns = [
relatorio_sessao_plenaria_pdf, name='relatorio_sessao_plenaria_pdf'),
url(r'^relatorios/(?P<pk>\d+)/etiqueta-materia-legislativa$',
etiqueta_materia_legislativa, name='etiqueta_materia_legislativa'),
url(r'^relatorios/(?P<pk>\d+)/texto_articulado_com_etiqueta$',
texto_articulado_com_etiqueta, name='texto_articulado_com_etiqueta'),
]

47
sapl/relatorios/views.py

@ -1563,15 +1563,14 @@ def relatorio_sessao_plenaria_pdf(request, pk):
return response
def etiqueta_materia_legislativa(request, pk):
base_url = request.build_absolute_uri()
materia_legislativa = MateriaLegislativa.objects.get(pk=pk)
def gera_etiqueta_ml(materia_legislativa, base_url):
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)
import unidecode
ml_info = unidecode.unidecode("{}/{}-{}".format(materia_legislativa.numero, materia_legislativa.ano, materia_legislativa.tipo))
base64_data = create_barcode(ml_info, 100, 500)
barcode = 'data:image/png;base64,{0}'.format(base64_data)
@ -1591,6 +1590,14 @@ def etiqueta_materia_legislativa(request, pk):
main_doc = html.render(stylesheets=[CSS(string="@page {{size: {}cm {}cm;}}".format(confg.largura,confg.altura))])
pdf_file = main_doc.write_pdf()
return pdf_file
def etiqueta_materia_legislativa(request, pk):
base_url = request.build_absolute_uri()
materia_legislativa = MateriaLegislativa.objects.get(pk=pk)
pdf_file = gera_etiqueta_ml(materia_legislativa, base_url)
response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=relatorio.pdf'
@ -1598,3 +1605,31 @@ def etiqueta_materia_legislativa(request, pk):
response.write(pdf_file)
return response
def texto_articulado_com_etiqueta(request,pk):
from shutil import move
import fitz
from pdf2image import convert_from_bytes
from io import BytesIO
from PIL.Image import FLIP_TOP_BOTTOM
base_url = request.build_absolute_uri()
materia_legislativa = MateriaLegislativa.objects.get(pk=pk)
input_file = materia_legislativa.texto_original.path
etiqueta = gera_etiqueta_ml(materia_legislativa, base_url)
img = convert_from_bytes(etiqueta)
aux_binary = BytesIO()
barcode_file = img[0].save(aux_binary,format="JPEG")
image_rectangle = fitz.Rect(500,600,800,900)
file_handle = fitz.open(input_file)
first_page = file_handle[0]
first_page.insertImage(image_rectangle, stream=aux_binary.getvalue(),rotate=270,keep_proportion=False)
response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=relatorio.pdf'
response['Content-Transfer-Encoding'] = 'binary'
response.write(file_handle.write())
return response

6
sapl/templates/materia/materialegislativa_detail.html

@ -10,6 +10,12 @@
{% endif %}
{% endblock sub_actions %}
{% block editions %}
{{ block.super }}
<a href="{% url 'sapl.relatorios:etiqueta_materia_legislativa' object.pk %}" class="btn btn-outline-primary">{% trans 'Etiqueta' %}</a>
{% endblock editions %}
{% block detail_content %}
{{ block.super }}
{% if object.registrovotacao_set.exists %}

Loading…
Cancel
Save