Browse Source

Fix #1705 (#1710)

* Fix #1705

* Fix #1705
pull/1663/head
VictorFabreF 7 years ago
committed by Edward
parent
commit
c4225765bb
  1. 25
      sapl/materia/forms.py
  2. 20
      sapl/materia/migrations/0023_proposicao_hash_code.py
  3. 4
      sapl/materia/models.py
  4. 1
      sapl/materia/tests/test_materia.py
  5. 2
      sapl/templates/materia/prop_pendentes_list.html
  6. 11
      sapl/templates/materia/proposicao_detail.html

25
sapl/materia/forms.py

@ -40,7 +40,7 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES,
ChoiceWithoutValidationField,
MateriaPesquisaOrderingFilter, RangeWidgetOverride,
autor_label, autor_modal, models_with_gr_for_model,
qs_override_django_filter)
qs_override_django_filter, gerar_hash_arquivo)
from .models import (AcompanhamentoMateria, Anexada, Autoria, DespachoInicial,
DocumentoAcessorio, Numeracao, Proposicao, Relatoria,
@ -1113,9 +1113,14 @@ class ProposicaoForm(forms.ModelForm):
widget=widgets.HiddenInput(),
required=False)
receber_recibo = forms.TypedChoiceField(
choices=YES_NO_CHOICES,
label='Deseja protocolar com recibo?')
class Meta:
model = Proposicao
fields = ['tipo',
'receber_recibo',
'descricao',
'texto_original',
'materia_de_vinculo',
@ -1123,11 +1128,13 @@ class ProposicaoForm(forms.ModelForm):
'tipo_materia',
'numero_materia',
'ano_materia',
'tipo_texto']
'tipo_texto',
'hash_code']
widgets = {
'descricao': widgets.Textarea(attrs={'rows': 4}),
'tipo': TipoProposicaoSelect()}
'tipo': TipoProposicaoSelect(),
'hash_code': forms.HiddenInput(),}
def __init__(self, *args, **kwargs):
self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr(
@ -1149,11 +1156,13 @@ class ProposicaoForm(forms.ModelForm):
to_column(('ano_materia', 4))
),
to_column(('receber_recibo', 3)),
to_column(
(Alert('teste',
css_class="ementa_materia hidden alert-info",
dismiss=False), 12)),
to_column(('descricao', 12)),
]
if self.texto_articulado_proposicao:
@ -1196,6 +1205,7 @@ class ProposicaoForm(forms.ModelForm):
"Arquivo muito grande. ( > {0}MB )".format(max_size))
return texto_original
def clean(self):
super(ProposicaoForm, self).clean()
@ -1221,6 +1231,7 @@ class ProposicaoForm(forms.ModelForm):
def save(self, commit=True):
cd = self.cleaned_data
inst = self.instance
if inst.pk:
if 'tipo_texto' in cd:
@ -1245,6 +1256,14 @@ class ProposicaoForm(forms.ModelForm):
inst.numero_proposicao = (
numero__max + 1) if numero__max else 1
inst.save()
if cd['receber_recibo'] == 'True':
inst.hash_code = ''
else:
_hash = gerar_hash_arquivo(inst.texto_original.path, str(inst.pk))
inst.hash_code = _hash
inst.save()
return inst

20
sapl/materia/migrations/0023_proposicao_hash_code.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-02-20 17:53
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('materia', '0022_auto_20180206_0908'),
]
operations = [
migrations.AddField(
model_name='proposicao',
name='hash_code',
field=models.CharField(blank=True, max_length=200, verbose_name='Código do Documento'),
),
]

4
sapl/materia/models.py

@ -649,6 +649,10 @@ class Proposicao(models.Model):
numero_proposicao = models.PositiveIntegerField(
blank=True, null=True, verbose_name=_('Número'))
hash_code = models.CharField(verbose_name=_('Código do Documento'),
max_length=200,
blank=True)
"""
FIXME Campo não é necessário na modelagem e implementação atual para o
módulo de proposições.

1
sapl/materia/tests/test_materia.py

@ -465,6 +465,7 @@ def test_proposicao_submit(admin_client):
'autor': autor.pk,
'texto_original': texto,
'salvar': 'salvar',
'receber_recibo': 'True',
},
follow=True)

2
sapl/templates/materia/prop_pendentes_list.html

@ -14,6 +14,7 @@
<th>Tipo</th>
<th>Descrição</th>
<th>Autor</th>
<th>Código do Documento</th>
</tr>
</thead>
<tbody>
@ -23,6 +24,7 @@
<td>{{ prop.tipo.descricao }}</td>
<td>{{ prop.descricao }}</td>
<td>{{ prop.autor }}</td>
<td>{{ prop.hash_code }}</td>
</tr>
{% endfor %}
</tbody>

11
sapl/templates/materia/proposicao_detail.html

@ -135,5 +135,16 @@
</div>
</div>
{% endif %}
{% if object.hash_code %}
<div class="col-sm-12">
<div id="div_id_hash_code" class="form-group">
<p class="control-label">{%field_verbose_name object 'hash_code'%}</p>
<div class="controls">
<div class="form-control-static">{{object.hash_code}}</div>
</div>
</div>
</div>
{% endif %}
</div>
{% endblock detail_content %}

Loading…
Cancel
Save