Browse Source

Fix #1058 redundancia doc adm v2 (#1510)

* Inicia refatoração

* Inicia a resolução da issue

* Remove ipdb
pull/1526/head
Eduardo Calil 7 years ago
committed by Edward
parent
commit
52cb5f9ad3
  1. 20
      sapl/protocoloadm/forms.py
  2. 19
      sapl/protocoloadm/migrations/0002_remove_documentoadministrativo_numero_protocolo.py
  3. 3
      sapl/protocoloadm/models.py
  4. 2
      sapl/protocoloadm/views.py
  5. 2
      sapl/relatorios/views.py

20
sapl/protocoloadm/forms.py

@ -4,7 +4,8 @@ from crispy_forms.bootstrap import InlineRadios
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Fieldset, Layout
from django import forms
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.core.exceptions import (MultipleObjectsReturned,
ObjectDoesNotExist, ValidationError)
from django.db import models
from django.forms import ModelForm
from django.utils import timezone
@ -153,7 +154,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
model = DocumentoAdministrativo
fields = ['tipo',
'numero',
'numero_protocolo',
'protocolo__numero',
'data',
'tramitacaoadministrativo__unidade_tramitacao_destino',
'tramitacaoadministrativo__status']
@ -172,7 +173,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
row2 = to_row(
[('ano', 4),
('numero_protocolo', 4),
('protocolo__numero', 4),
('data', 4)])
row3 = to_row(
@ -549,6 +550,10 @@ class DocumentoAdministrativoForm(ModelForm):
widget=forms.Select(
attrs={'class': 'selector'}))
numero_protocolo = forms.IntegerField(required=False,
label=Protocolo._meta.
get_field('numero').verbose_name)
class Meta:
model = DocumentoAdministrativo
fields = ['tipo',
@ -577,8 +582,8 @@ class DocumentoAdministrativoForm(ModelForm):
if not self.is_valid():
return cleaned_data
numero_protocolo = cleaned_data['numero_protocolo']
ano_protocolo = cleaned_data['ano_protocolo']
numero_protocolo = self.data['numero_protocolo']
ano_protocolo = self.data['ano_protocolo']
# campos opcionais, mas que se informados devem ser válidos
if numero_protocolo and ano_protocolo:
@ -590,6 +595,11 @@ class DocumentoAdministrativoForm(ModelForm):
msg = _('Protocolo %s/%s inexistente.' % (
numero_protocolo, ano_protocolo))
raise ValidationError(msg)
except MultipleObjectsReturned:
msg = _(
'Existe mais de um Protocolo com este ano e número.' % (
numero_protocolo, ano_protocolo))
raise ValidationError(msg)
return self.cleaned_data

19
sapl/protocoloadm/migrations/0002_remove_documentoadministrativo_numero_protocolo.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.3 on 2017-09-20 21:52
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('protocoloadm', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='documentoadministrativo',
name='numero_protocolo',
),
]

3
sapl/protocoloadm/models.py

@ -120,8 +120,7 @@ class DocumentoAdministrativo(models.Model):
on_delete=models.PROTECT,
verbose_name=_('Protocolo'))
data = models.DateField(verbose_name=_('Data'))
numero_protocolo = models.PositiveIntegerField(
blank=True, null=True, verbose_name=_('Núm. Protocolo'))
interessado = models.CharField(
max_length=50, blank=True, verbose_name=_('Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True,

2
sapl/protocoloadm/views.py

@ -88,7 +88,7 @@ class DocumentoAdministrativoCrud(Crud):
class BaseMixin(Crud.BaseMixin):
list_field_names = ['tipo', 'numero', 'ano', 'data',
'numero_protocolo', 'assunto',
'protocolo__numero', 'assunto',
'interessado', 'tramitacao', 'texto_integral']
@property

2
sapl/relatorios/views.py

@ -956,7 +956,7 @@ def get_etiqueta_protocolos(prots):
dic['num_documento'] = ''
for documento in DocumentoAdministrativo.objects.filter(
numero_protocolo=p.numero):
protocolo=p):
dic['num_documento'] = str(documento)
dic['ident_processo'] = dic['num_materia'] or dic['num_documento']

Loading…
Cancel
Save