Browse Source

Fix #2194 (#2203)

* Fix #2194

* altera testes
pull/2209/head
Victor Fabre 6 years ago
committed by Edward
parent
commit
4d622f28ac
  1. 24
      sapl/protocoloadm/forms.py
  2. 20
      sapl/protocoloadm/migrations/0006_documentoadministrativo_restrito.py
  3. 5
      sapl/protocoloadm/models.py
  4. 6
      sapl/protocoloadm/tests/test_protocoloadm.py
  5. 7
      sapl/protocoloadm/views.py
  6. 4
      sapl/templates/protocoloadm/documentoadministrativo_filter.html

24
sapl/protocoloadm/forms.py

@ -304,15 +304,15 @@ class ProtocoloDocumentForm(ModelForm):
numero_paginas = forms.CharField(label=_('Núm. Páginas'), required=True)
assunto = forms.CharField(
widget=forms.Textarea, label='Assunto', required=True)
widget=forms.Textarea, label=_('Assunto'), required=True)
interessado = forms.CharField(required=True,
label='Interessado')
label=_('Interessado'))
observacao = forms.CharField(required=False,
widget=forms.Textarea, label='Observação')
widget=forms.Textarea, label=_('Observação'))
numero = forms.IntegerField(required=False, label='Número de Protocolo (opcional)')
numero = forms.IntegerField(required=False, label=_('Número de Protocolo (opcional)'))
class Meta:
model = Protocolo
@ -394,12 +394,12 @@ class ProtocoloMateriaForm(ModelForm):
numero_paginas = forms.CharField(label=_('Núm. Páginas'), required=True)
observacao = forms.CharField(required=False,
widget=forms.Textarea, label='Observação')
widget=forms.Textarea, label=_('Observação'))
assunto_ementa = forms.CharField(required=True,
widget=forms.Textarea, label='Ementa')
widget=forms.Textarea, label=_('Ementa'))
numero = forms.IntegerField(required=False, label='Número de Protocolo (opcional)')
numero = forms.IntegerField(required=False, label=_('Número de Protocolo (opcional)'))
class Meta:
model = Protocolo
@ -636,6 +636,11 @@ class DocumentoAdministrativoForm(ModelForm):
label=Protocolo._meta.
get_field('numero').verbose_name)
restrito = forms.ChoiceField(label=_('Acesso Restrito'),
widget=forms.RadioSelect(),
choices=YES_NO_CHOICES,
initial=False)
class Meta:
model = DocumentoAdministrativo
fields = ['tipo',
@ -653,6 +658,7 @@ class DocumentoAdministrativoForm(ModelForm):
'observacao',
'texto_integral',
'protocolo',
'restrito'
]
widgets = {'protocolo': forms.HiddenInput()}
@ -682,7 +688,7 @@ class DocumentoAdministrativoForm(ModelForm):
tipo=tipo_documento,
ano=ano_protocolo).exists()
if doc_exists:
raise ValidationError('Documento já existente')
raise ValidationError(_('Documento já existente'))
# campos opcionais, mas que se informados devem ser válidos
if numero_protocolo and ano_protocolo:
@ -740,7 +746,7 @@ class DocumentoAdministrativoForm(ModelForm):
[('assunto', 12)])
row4 = to_row(
[('interessado', 9), ('tramitacao', 3)])
[('interessado', 8), ('tramitacao', 2), (InlineRadios('restrito'), 2)])
row5 = to_row(
[('texto_integral', 12)])

20
sapl/protocoloadm/migrations/0006_documentoadministrativo_restrito.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-09-10 12:07
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('protocoloadm', '0005_auto_20180824_1241'),
]
operations = [
migrations.AddField(
model_name='documentoadministrativo',
name='restrito',
field=models.BooleanField(default=False, verbose_name='Acesso Restrito'),
),
]

5
sapl/protocoloadm/models.py

@ -93,7 +93,7 @@ class Protocolo(models.Model):
user_anulacao = models.CharField(max_length=20, blank=True)
ip_anulacao = models.CharField(max_length=15, blank=True)
justificativa_anulacao = models.CharField(
max_length=60, blank=True, verbose_name='Motivo')
max_length=60, blank=True, verbose_name=_('Motivo'))
timestamp_anulacao = models.DateTimeField(blank=True, null=True)
class Meta:
@ -148,6 +148,9 @@ class DocumentoAdministrativo(models.Model):
null=True,
upload_to=texto_upload_path,
verbose_name=_('Texto Integral'))
restrito = models.BooleanField(default=False,
verbose_name=_('Acesso Restrito'),
blank=True)
class Meta:
verbose_name = _('Documento Administrativo')

6
sapl/protocoloadm/tests/test_protocoloadm.py

@ -359,8 +359,9 @@ def test_documento_administrativo_invalido():
assert errors['assunto'] == [_('Este campo é obrigatório.')]
assert errors['numero'] == [_('Este campo é obrigatório.')]
assert errors['data'] == [_('Este campo é obrigatório.')]
assert errors['restrito'] == [_('Este campo é obrigatório.')]
assert len(errors) == 5
assert len(errors) == 6
@pytest.mark.django_db(transaction=False)
@ -374,7 +375,8 @@ def test_documento_administrativo_protocolo_inexistente():
'numero': '1',
'data': '2017-10-10',
'numero_protocolo': '11',
'ano_protocolo': '2017'
'ano_protocolo': '2017',
'restrito': False
})
assert not form.is_valid()

7
sapl/protocoloadm/views.py

@ -142,6 +142,13 @@ class DocumentoAdministrativoCrud(Crud):
class DetailView(DocumentoAdministrativoMixin, Crud.DetailView):
def get(self, *args, **kwargs):
pk = self.kwargs['pk']
documento = DocumentoAdministrativo.objects.get(id=pk)
if documento.restrito and self.request.user.is_anonymous():
return redirect('/')
return super(Crud.DetailView, self).get(args, kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
self.layout_display[0]['rows'][-1][0]['text'] = (

4
sapl/templates/protocoloadm/documentoadministrativo_filter.html

@ -34,10 +34,11 @@
{% endif %}
{% for d in page_obj %}
{% if request.user.is_anonymous and not d.restrito or not request.user.is_anonymous%}
<tr>
<td>
<strong><a href="{% url 'sapl.protocoloadm:documentoadministrativo_detail' d.id %}">{{d.tipo.sigla}} {{d.numero}}/{{d.ano}} - {{d.tipo}}</strong></a></br>
<strong>Interessado:</strong>&nbsp;{{ d.interessado|default_if_none:"Não informado"}}
<strong>Interessado:</strong>&nbsp;{{ d.interessado|default_if_none:"Não informado"}}
</br>
<strong>Assunto:</strong>&nbsp;{{ d.assunto|safe }}
</br>
@ -65,6 +66,7 @@
</td>
</tr>
{% endif %}
{% endfor %}
{% else %}
<tr><td><h3>Nenhum documento encontrado com essas especificações</h3></tr>

Loading…
Cancel
Save