Browse Source

Adaptando pra ficar parecido com protocolo Fix #3138

pull/3162/head
ulysses 6 years ago
parent
commit
5ba692cf8a
  1. 7
      sapl/materia/migrations/0068_configetiquetamaterialegislativa.py
  2. 20
      sapl/materia/migrations/0069_auto_20200518_1519.py
  3. 10
      sapl/materia/models.py
  4. 5
      sapl/materia/urls.py
  5. 19
      sapl/materia/views.py
  6. 4
      sapl/relatorios/urls.py
  7. 31
      sapl/relatorios/views.py
  8. 19
      sapl/templates/materia/config_etiqueta_materia.html
  9. 2
      sapl/templates/materia/materialegislativa_filter.html
  10. 3
      sapl/templates/menu_tabelas_auxiliares.yaml
  11. 3
      sapl/templates/relatorios/etiqueta_materia_legislativa.html

7
sapl/materia/migrations/0068_configetiquetamaterialegislativa.py

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.29 on 2020-05-13 14:15
# Generated by Django 1.11.29 on 2020-05-18 18:14
from __future__ import unicode_literals
from django.db import migrations, models
@ -16,9 +16,8 @@ class Migration(migrations.Migration):
name='ConfigEtiquetaMateriaLegislativa',
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 ?')),
('largura', models.FloatField(default=5)),
('altura', models.FloatField(default=3)),
],
),
]

20
sapl/materia/migrations/0069_auto_20200518_1519.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.29 on 2020-05-18 18:19
from __future__ import unicode_literals
from django.db import migrations
def create_first(apps, schema_editor):
db_alias = schema_editor.connection.alias
Type = apps.get_model("materia", "ConfigEtiquetaMateriaLegislativa")
Type.objects.using(db_alias).create()
class Migration(migrations.Migration):
dependencies = [
('materia', '0068_configetiquetamaterialegislativa'),
]
operations = [
migrations.RunPython(create_first),
]

10
sapl/materia/models.py

@ -1118,13 +1118,9 @@ class MateriaEmTramitacao(models.Model):
return '{}/{}'.format(self.materia, self.tramitacao)
class ConfigEtiquetaMateriaLegislativa(models.Model):
largura = models.FloatField()
altura = models.FloatField()
mostrar_em_arquivo = models.BooleanField(verbose_name=_('Mostrar em arquivo ?'),
choices=YES_NO_CHOICES,
default=False)
largura = models.FloatField(default=5)
altura = models.FloatField(default=3)
def save(self, *args, **kwargs):
self.id = 1
return super().save(*args, **kwargs)

5
sapl/materia/urls.py

@ -28,7 +28,7 @@ from sapl.materia.views import (AcompanhamentoConfirmarView,
ExcluirTramitacaoEmLoteView, RetornarProposicao,
MateriaPesquisaSimplesView,
DespachoInicialMultiCreateView, get_zip_docacessorios,
get_pdf_docacessorios, ConfigEtiquetaMateriaLegislativaCrud)
get_pdf_docacessorios, configEtiquetaMateriaLegislativaCrud)
from sapl.norma.views import NormaPesquisaSimplesView
from sapl.protocoloadm.views import (
FichaPesquisaAdmView, FichaSelecionaAdmView)
@ -173,8 +173,7 @@ 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())),
url(r'^sistema/materia/config-etiqueta-materia-legislativas/',configEtiquetaMateriaLegislativaCrud, name="configEtiquetaMateriaLegislativaCrud"),
]
urlpatterns = urlpatterns_impressos + urlpatterns_materia + \

19
sapl/materia/views.py

@ -32,6 +32,8 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, ListView, TemplateView, UpdateView
from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView
from django.shortcuts import render
from django_filters.views import FilterView
@ -2853,8 +2855,15 @@ def get_pdf_docacessorios(request, pk):
% external_name)
return response
class ConfigEtiquetaMateriaLegislativaCrud(CrudAux):
model = ConfigEtiquetaMateriaLegislativa
class UpdateView(CrudAux.UpdateView):
form_class = ConfigEtiquetaMateriaLegislativaForms
def configEtiquetaMateriaLegislativaCrud(request):
config = ConfigEtiquetaMateriaLegislativa.objects.last()
if request.method == "POST":
form = ConfigEtiquetaMateriaLegislativaForms(request.POST, instance=config)
if form.is_valid():
config = form.save(commit=False)
config.published_date = timezone.now()
config.save()
return redirect('materia/config_etiqueta_materia.html', {'form': form})
else:
form = ConfigEtiquetaMateriaLegislativaForms(instance=config)
return render(request, 'materia/config_etiqueta_materia.html', {'form': form})

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, texto_articulado_com_etiqueta)
resumo_ata_pdf, relatorio_sessao_plenaria_pdf, etiqueta_materia_legislativa)
app_name = AppConfig.name
@ -35,6 +35,4 @@ 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'),
]

31
sapl/relatorios/views.py

@ -1573,11 +1573,10 @@ def gera_etiqueta_ml(materia_legislativa, base_url):
base64_data = create_barcode(ml_info, 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,
'autores': materia_legislativa.autores.all(),
'ementa':materia_legislativa.ementa,
'largura': confg.largura,
'altura':confg.largura,
@ -1604,32 +1603,4 @@ def etiqueta_materia_legislativa(request, pk):
response['Content-Transfer-Encoding'] = 'binary'
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

19
sapl/templates/materia/config_etiqueta_materia.html

@ -0,0 +1,19 @@
{% extends "crud/form.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
<h1>Configuração Etiqueta Materia Legislativa</h1>
<form action="." method="post">
{% csrf_token %}
{{ form|crispy }}
<div class="row">
<div class="col-md-12">
<div class="form-group row justify-content-between">
<a href="{% url 'sapl.base:sistema' %}" class="btn btn-dark">Cancelar</a>
<input type="submit" name="salvar" value="Salvar" class="btn btn-primary float-right" id="submit-id-salvar" onclick="this.form.submit();this.disabled=true;">
</div>
</div>
</div>
</form>
{% endblock base_content %}

2
sapl/templates/materia/materialegislativa_filter.html

@ -1,6 +1,7 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags common_tags%}
{% load webpack_static from webpack_loader %}
{% block actions %}
@ -47,6 +48,7 @@
<tr>
<td>
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' m.id %}">{{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}</strong></a>
<a href="{% url 'sapl.relatorios:etiqueta_materia_legislativa' m.pk %}"><img src="{% webpack_static 'img/etiqueta.png' %}" alt="Etiqueta Individual"></a>
</br>
<strong>Ementa:</strong>&nbsp;{{ m.ementa|dont_break_out }}
</br>

3
sapl/templates/menu_tabelas_auxiliares.yaml

@ -116,6 +116,9 @@
- title: {% trans 'Assunto Matéria' %}
url: sapl.materia:assuntomateria_list
css_class: btn btn-link
- title: {% trans 'Configuração Etiqueta Materia Legislativa' %}
url: sapl.materia:configEtiquetaMateriaLegislativaCrud
css_class: btn btn-link
- title: {% trans 'Módulo Normas Jurídicas' %}
css_class: head_title
children:

3
sapl/templates/relatorios/etiqueta_materia_legislativa.html

@ -10,6 +10,7 @@
@page{
margin: 0cm
}
div {page-break-inside: avoid;}
p {
font-size:3pt;
@ -23,7 +24,7 @@
<p><strong>Etiqueta Materia Legislativa</strong></p>
<p>{{tipo}}</p>
<p>{{data_apresentacao}}</p>
<p>{{autores}}</p>
{% for autor in autores %}<p>{{autor}}{% if not forloop.last%}-{% endif %}</p>{% endfor %}
<p>{{ementa}}</p>
<img src="{{barcode}}" style="width: 100%; height: 100%;" alt="{{barcode}}">

Loading…
Cancel
Save