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 sapl
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.utils import RANGE_ANOS
@ -270,6 +270,32 @@ class LegislacaoCitadaForm(ModelForm):
'alinea',
'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):

7
materia/layouts.yaml

@ -115,10 +115,3 @@ Tramitacao:
DespachoInicial:
Despacho Inicial:
- 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):
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):
form_class = LegislacaoCitadaForm
@ -96,17 +101,17 @@ class LegislacaoCitadaCrud(MasterDetailCrud):
form_class = LegislacaoCitadaForm
def get_initial(self):
self.initial['tipo_norma'] = self.object.norma.tipo.id
self.initial['numero_norma'] = self.object.norma.numero
self.initial['ano_norma'] = self.object.norma.ano
self.initial['tipo'] = self.object.norma.tipo.id
self.initial['numero'] = self.object.norma.numero
self.initial['ano'] = self.object.norma.ano
return self.initial
# class DetailView(MasterDetailCrud.DetailView):
#
# @property
# def layout_key(self):
# return 'LegislacaoCitadaDetail'
class DetailView(MasterDetailCrud.DetailView):
@property
def layout_key(self):
return 'LegislacaoCitadaDetail'
class NumeracaoCrud(MasterDetailCrud):

12
norma/layouts.yaml

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

Loading…
Cancel
Save