Browse Source

Init crud legislacao

pull/380/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
8cc8034970
  1. 28
      materia/forms.py
  2. 7
      materia/layouts.yaml
  3. 21
      materia/views.py
  4. 12
      norma/layouts.yaml

28
materia/forms.py

@ -11,7 +11,7 @@ from django.utils.translation import ugettext_lazy as _
import crispy_layout_mixin import crispy_layout_mixin
import sapl import sapl
from crispy_layout_mixin import form_actions from crispy_layout_mixin import form_actions
from norma.models import LegislacaoCitada, TipoNormaJuridica from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica
from sapl.settings import MAX_DOC_UPLOAD_SIZE from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import RANGE_ANOS from sapl.utils import RANGE_ANOS
@ -270,6 +270,32 @@ class LegislacaoCitadaForm(ModelForm):
'alinea', 'alinea',
'item'] 'item']
def clean(self):
if self.errors:
return self.errors
cleaned_data = self.cleaned_data
try:
norma = NormaJuridica.objects.get(
numero=cleaned_data['numero'],
ano=cleaned_data['ano'],
tipo=cleaned_data['tipo'])
except ObjectDoesNotExist:
msg = _('A norma a ser inclusa não existe no cadastro'
' de normas.')
raise ValidationError(msg)
else:
cleaned_data['norma'] = norma
return cleaned_data
def save(self, commit=False):
legislacao = super(LegislacaoCitadaForm, self).save(commit)
legislacao.norma = self.cleaned_data['norma']
legislacao.save()
return legislacao
class NumeracaoForm(ModelForm): class NumeracaoForm(ModelForm):

7
materia/layouts.yaml

@ -115,10 +115,3 @@ Tramitacao:
DespachoInicial: DespachoInicial:
Despacho Inicial: Despacho Inicial:
- comissao - comissao
# LegislacaoCitadaDetail:
# Legislação Citada:
# - norma
# - disposicoes parte livro titulo
# - capitulo secao subsecao artigo
# - paragrafo inciso alinea item

21
materia/views.py

@ -89,6 +89,11 @@ class LegislacaoCitadaCrud(MasterDetailCrud):
class BaseMixin(MasterDetailCrud.BaseMixin): class BaseMixin(MasterDetailCrud.BaseMixin):
list_field_names = ['norma', 'disposicoes'] list_field_names = ['norma', 'disposicoes']
def resolve_url(self, suffix, args=None):
namespace = 'materia'
return reverse('%s:%s' % (namespace, self.url_name(suffix)),
args=args)
class CreateView(MasterDetailCrud.CreateView): class CreateView(MasterDetailCrud.CreateView):
form_class = LegislacaoCitadaForm form_class = LegislacaoCitadaForm
@ -96,17 +101,17 @@ class LegislacaoCitadaCrud(MasterDetailCrud):
form_class = LegislacaoCitadaForm form_class = LegislacaoCitadaForm
def get_initial(self): def get_initial(self):
self.initial['tipo_norma'] = self.object.norma.tipo.id self.initial['tipo'] = self.object.norma.tipo.id
self.initial['numero_norma'] = self.object.norma.numero self.initial['numero'] = self.object.norma.numero
self.initial['ano_norma'] = self.object.norma.ano self.initial['ano'] = self.object.norma.ano
return self.initial return self.initial
# class DetailView(MasterDetailCrud.DetailView): class DetailView(MasterDetailCrud.DetailView):
#
# @property @property
# def layout_key(self): def layout_key(self):
# return 'LegislacaoCitadaDetail' return 'LegislacaoCitadaDetail'
class NumeracaoCrud(MasterDetailCrud): class NumeracaoCrud(MasterDetailCrud):

12
norma/layouts.yaml

@ -35,9 +35,9 @@ LegislacaoCitada:
- capitulo secao subsecao artigo - capitulo secao subsecao artigo
- paragrafo inciso alinea item - paragrafo inciso alinea item
# LegislacaoCitadaDetail: LegislacaoCitadaDetail:
# Legislação Citada: Legislação Citada:
# - norma - norma
# - disposicoes parte livro titulo - disposicoes parte livro titulo
# - capitulo secao subsecao artigo - capitulo secao subsecao artigo
# - paragrafo inciso alinea item - paragrafo inciso alinea item

Loading…
Cancel
Save