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.helper import FormHelper
from crispy_forms.layout import HTML, Button, Fieldset, Layout from crispy_forms.layout import HTML, Button, Fieldset, Layout
from django import forms 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.db import models
from django.forms import ModelForm from django.forms import ModelForm
from django.utils import timezone from django.utils import timezone
@ -153,7 +154,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
model = DocumentoAdministrativo model = DocumentoAdministrativo
fields = ['tipo', fields = ['tipo',
'numero', 'numero',
'numero_protocolo', 'protocolo__numero',
'data', 'data',
'tramitacaoadministrativo__unidade_tramitacao_destino', 'tramitacaoadministrativo__unidade_tramitacao_destino',
'tramitacaoadministrativo__status'] 'tramitacaoadministrativo__status']
@ -172,7 +173,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
row2 = to_row( row2 = to_row(
[('ano', 4), [('ano', 4),
('numero_protocolo', 4), ('protocolo__numero', 4),
('data', 4)]) ('data', 4)])
row3 = to_row( row3 = to_row(
@ -549,6 +550,10 @@ class DocumentoAdministrativoForm(ModelForm):
widget=forms.Select( widget=forms.Select(
attrs={'class': 'selector'})) attrs={'class': 'selector'}))
numero_protocolo = forms.IntegerField(required=False,
label=Protocolo._meta.
get_field('numero').verbose_name)
class Meta: class Meta:
model = DocumentoAdministrativo model = DocumentoAdministrativo
fields = ['tipo', fields = ['tipo',
@ -577,8 +582,8 @@ class DocumentoAdministrativoForm(ModelForm):
if not self.is_valid(): if not self.is_valid():
return cleaned_data return cleaned_data
numero_protocolo = cleaned_data['numero_protocolo'] numero_protocolo = self.data['numero_protocolo']
ano_protocolo = cleaned_data['ano_protocolo'] ano_protocolo = self.data['ano_protocolo']
# campos opcionais, mas que se informados devem ser válidos # campos opcionais, mas que se informados devem ser válidos
if numero_protocolo and ano_protocolo: if numero_protocolo and ano_protocolo:
@ -590,6 +595,11 @@ class DocumentoAdministrativoForm(ModelForm):
msg = _('Protocolo %s/%s inexistente.' % ( msg = _('Protocolo %s/%s inexistente.' % (
numero_protocolo, ano_protocolo)) numero_protocolo, ano_protocolo))
raise ValidationError(msg) 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 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, on_delete=models.PROTECT,
verbose_name=_('Protocolo')) verbose_name=_('Protocolo'))
data = models.DateField(verbose_name=_('Data')) data = models.DateField(verbose_name=_('Data'))
numero_protocolo = models.PositiveIntegerField(
blank=True, null=True, verbose_name=_('Núm. Protocolo'))
interessado = models.CharField( interessado = models.CharField(
max_length=50, blank=True, verbose_name=_('Interessado')) max_length=50, blank=True, verbose_name=_('Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True, autor = models.ForeignKey(Autor, blank=True, null=True,

2
sapl/protocoloadm/views.py

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

2
sapl/relatorios/views.py

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

Loading…
Cancel
Save