Browse Source

Impede que seja adicionado dois autores iguais na matéria

pull/382/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
61079f45c0
  1. 29
      materia/forms.py
  2. 14
      materia/views.py

29
materia/forms.py

@ -15,9 +15,10 @@ from norma.models import LegislacaoCitada, TipoNormaJuridica
from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import RANGE_ANOS
from .models import (AcompanhamentoMateria, Anexada, Autor, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa, Numeracao,
Proposicao, Relatoria, TipoMateriaLegislativa, Tramitacao)
from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
DespachoInicial, DocumentoAcessorio, MateriaLegislativa,
Numeracao, Proposicao, Relatoria, TipoMateriaLegislativa,
Tramitacao)
ANO_CHOICES = [('', '---------')] + RANGE_ANOS
@ -559,8 +560,6 @@ class DespachoInicialForm(ModelForm):
if self.errors:
return self.errors
cleaned_data = self.cleaned_data
if DespachoInicial.objects.filter(
materia=self.instance.materia,
comissao=self.cleaned_data['comissao'],
@ -569,3 +568,23 @@ class DespachoInicialForm(ModelForm):
raise ValidationError(msg)
return self.cleaned_data
class AutoriaForm(ModelForm):
class Meta:
model = Autoria
fields = ['autor', 'partido', 'primeiro_autor']
def clean(self):
if self.errors:
return self.errors
if Autoria.objects.filter(
materia=self.instance.materia,
autor=self.cleaned_data['autor'],
).exists():
msg = _('Esse Autor já foi cadastrado.')
raise ValidationError(msg)
return self.cleaned_data

14
materia/views.py

@ -24,7 +24,7 @@ from crud.masterdetail import MasterDetailCrud
from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica
from sapl.utils import get_base_url
from .forms import (AcompanhamentoMateriaForm, AnexadaForm,
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm,
DespachoInicialForm, DocumentoAcessorioForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet,
NumeracaoForm, ProposicaoForm, RelatoriaForm,
@ -56,7 +56,17 @@ StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao')
UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
TramitacaoCrud = Crud.build(Tramitacao, '')
AutoriaCrud = MasterDetailCrud.build(Autoria, 'materia', '')
class AutoriaCrud(MasterDetailCrud):
model = Autoria
parent_field = 'materia'
help_path = ''
class CreateView(MasterDetailCrud.CreateView):
form_class = AutoriaForm
class UpdateView(MasterDetailCrud.UpdateView):
form_class = AutoriaForm
class DespachoInicialCrud(MasterDetailCrud):

Loading…
Cancel
Save