Browse Source

Init crud legislação citada

pull/380/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
8874ac2688
  1. 36
      materia/forms.py
  2. 7
      materia/layouts.yaml
  3. 10
      materia/urls.py
  4. 158
      materia/views.py
  5. 9
      norma/layouts.yaml
  6. 33
      templates/materia/legislacao_citada.html
  7. 94
      templates/materia/legislacao_citada_edit.html
  8. 2
      templates/materia/subnav.yaml

36
materia/forms.py

@ -270,42 +270,6 @@ class LegislacaoCitadaForm(ModelForm):
'alinea', 'alinea',
'item'] 'item']
def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row(
[('tipo', 4),
('numero', 4),
('ano', 4)])
row2 = crispy_layout_mixin.to_row(
[('disposicoes', 3),
('parte', 3),
('livro', 3),
('titulo', 3)])
row3 = crispy_layout_mixin.to_row(
[('capitulo', 3),
('secao', 3),
('subsecao', 3),
('artigo', 3)])
row4 = crispy_layout_mixin.to_row(
[('paragrafo', 3),
('inciso', 3),
('alinea', 3),
('item', 3)])
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.layout = Layout(
Fieldset(
_('Incluir Legislação Citada'),
row1, row2, row3, row4,
form_actions()
)
)
super(LegislacaoCitadaForm, self).__init__(*args, **kwargs)
class NumeracaoForm(ModelForm): class NumeracaoForm(ModelForm):

7
materia/layouts.yaml

@ -115,3 +115,10 @@ 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

10
materia/urls.py

@ -5,8 +5,7 @@ from materia.views import (AcompanhamentoConfirmarView,
AcompanhamentoMateriaView, AnexadaCrud, AutorCrud, AcompanhamentoMateriaView, AnexadaCrud, AutorCrud,
AutoriaCrud, DespachoInicialCrud, AutoriaCrud, DespachoInicialCrud,
DocumentoAcessorioEditView, DocumentoAcessorioView, DocumentoAcessorioEditView, DocumentoAcessorioView,
LegislacaoCitadaEditView, LegislacaoCitadaView, LegislacaoCitadaCrud, MateriaLegislativaCrud,
MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView, MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoCrud, OrgaoCrud, OrigemCrud, NumeracaoCrud, OrgaoCrud, OrigemCrud,
ProposicaoEditView, ProposicaoListView, ProposicaoEditView, ProposicaoListView,
@ -27,7 +26,8 @@ urlpatterns = [
AnexadaCrud.get_urls() + AnexadaCrud.get_urls() +
AutoriaCrud.get_urls() + AutoriaCrud.get_urls() +
DespachoInicialCrud.get_urls() + DespachoInicialCrud.get_urls() +
NumeracaoCrud.get_urls())), NumeracaoCrud.get_urls() +
LegislacaoCitadaCrud.get_urls())),
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',
@ -54,10 +54,6 @@ urlpatterns = [
url(r'^sistema/materia/status-tramitacao/', url(r'^sistema/materia/status-tramitacao/',
include(StatusTramitacaoCrud.get_urls())), include(StatusTramitacaoCrud.get_urls())),
url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())), url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())),
url(r'^materia/(?P<pk>\d+)/legislacao-citada$',
LegislacaoCitadaView.as_view(), name='legislacao_citada'),
url(r'^materia/(?P<pk>\d+)/legislacao-citada/(?P<id>\d+)/edit',
LegislacaoCitadaEditView.as_view(), name='legislacao_citada_edit'),
url(r'^materia/(?P<pk>\d+)/documento-acessorio$', url(r'^materia/(?P<pk>\d+)/documento-acessorio$',
DocumentoAcessorioView.as_view(), name='documento_acessorio'), DocumentoAcessorioView.as_view(), name='documento_acessorio'),
url(r'^materia/(?P<pk>\d+)/documento-acessorio/(?P<id>\d+)/edit', url(r'^materia/(?P<pk>\d+)/documento-acessorio/(?P<id>\d+)/edit',

158
materia/views.py

@ -21,7 +21,7 @@ from comissoes.models import Comissao, Composicao
from compilacao.views import IntegracaoTaView from compilacao.views import IntegracaoTaView
from crud.base import Crud, make_pagination from crud.base import Crud, make_pagination
from crud.masterdetail import MasterDetailCrud from crud.masterdetail import MasterDetailCrud
from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica from norma.models import LegislacaoCitada
from sapl.utils import get_base_url from sapl.utils import get_base_url
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm, from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm,
@ -81,6 +81,34 @@ class DespachoInicialCrud(MasterDetailCrud):
form_class = DespachoInicialForm form_class = DespachoInicialForm
class LegislacaoCitadaCrud(MasterDetailCrud):
model = LegislacaoCitada
parent_field = 'materia'
help_path = ''
class BaseMixin(MasterDetailCrud.BaseMixin):
list_field_names = ['norma', 'disposicoes']
class CreateView(MasterDetailCrud.CreateView):
form_class = LegislacaoCitadaForm
class UpdateView(MasterDetailCrud.UpdateView):
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
return self.initial
class DetailView(MasterDetailCrud.DetailView):
@property
def layout_key(self):
return 'LegislacaoCitadaDetail'
class NumeracaoCrud(MasterDetailCrud): class NumeracaoCrud(MasterDetailCrud):
model = Numeracao model = Numeracao
parent_field = 'materia' parent_field = 'materia'
@ -107,7 +135,7 @@ class AnexadaCrud(MasterDetailCrud):
class UpdateView(MasterDetailCrud.UpdateView): class UpdateView(MasterDetailCrud.UpdateView):
form_class = AnexadaForm form_class = AnexadaForm
def get_initial(self, **kwargs): def get_initial(self):
self.initial['tipo'] = self.object.materia_anexada.tipo.id self.initial['tipo'] = self.object.materia_anexada.tipo.id
self.initial['numero'] = self.object.materia_anexada.numero self.initial['numero'] = self.object.materia_anexada.numero
self.initial['ano'] = self.object.materia_anexada.ano self.initial['ano'] = self.object.materia_anexada.ano
@ -129,132 +157,6 @@ class MateriaLegislativaCrud(Crud):
list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao'] list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao']
class LegislacaoCitadaView(FormView):
template_name = "materia/legislacao_citada.html"
form_class = LegislacaoCitadaForm
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
legislacao = LegislacaoCitada.objects.filter(materia_id=kwargs['pk'])
form = LegislacaoCitadaForm()
return self.render_to_response(
{'object': materia,
'form': form,
'legislacao': legislacao})
def post(self, request, *args, **kwargs):
form = LegislacaoCitadaForm(request.POST)
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
legislacao_list = LegislacaoCitada.objects.filter(
materia_id=kwargs['pk'])
if form.is_valid():
legislacao = LegislacaoCitada()
try:
norma = NormaJuridica.objects.get(
tipo_id=form.cleaned_data['tipo'],
numero=form.cleaned_data['numero'],
ano=form.cleaned_data['ano'])
except ObjectDoesNotExist:
msg = _('Norma Juridica não existe.')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response({'form': form,
'object': materia,
'legislacao': legislacao_list})
legislacao.materia = materia
legislacao.norma = norma
legislacao.disposicoes = form.cleaned_data['disposicoes']
legislacao.parte = form.cleaned_data['parte']
legislacao.livro = form.cleaned_data['livro']
legislacao.titulo = form.cleaned_data['titulo']
legislacao.capitulo = form.cleaned_data['capitulo']
legislacao.secao = form.cleaned_data['secao']
legislacao.subsecao = form.cleaned_data['subsecao']
legislacao.artigo = form.cleaned_data['artigo']
legislacao.paragrafo = form.cleaned_data['paragrafo']
legislacao.inciso = form.cleaned_data['inciso']
legislacao.alinea = form.cleaned_data['alinea']
legislacao.item = form.cleaned_data['item']
legislacao.save()
return self.form_valid(form)
else:
return self.render_to_response({'form': form,
'object': materia,
'legislacao': legislacao_list})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:legislacao_citada', kwargs={'pk': pk})
class LegislacaoCitadaEditView(FormView):
template_name = "materia/legislacao_citada_edit.html"
form_class = LegislacaoCitadaForm
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:legislacao_citada', kwargs={'pk': pk})
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
legislacao = LegislacaoCitada.objects.get(id=kwargs['id'])
form = LegislacaoCitadaForm()
return self.render_to_response(
{'object': materia,
'form': form,
'legislacao': legislacao,
'tipos_norma': TipoNormaJuridica.objects.all()})
def post(self, request, *args, **kwargs):
form = LegislacaoCitadaForm(request.POST)
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
legislacao = LegislacaoCitada.objects.get(id=kwargs['id'])
if form.is_valid():
if 'excluir' in request.POST:
legislacao.delete()
return self.form_valid(form)
elif 'salvar' in request.POST:
try:
norma = NormaJuridica.objects.get(
tipo_id=form.cleaned_data['tipo'],
numero=form.cleaned_data['numero'],
ano=form.cleaned_data['ano'])
except ObjectDoesNotExist:
msg = _('Norma Juridica não existe.')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'form': form,
'object': materia,
'legislacao': legislacao,
'tipos_norma': TipoNormaJuridica.objects.all()})
legislacao.materia = materia
legislacao.norma = norma
legislacao.disposicoes = form.cleaned_data['disposicoes']
legislacao.parte = form.cleaned_data['parte']
legislacao.livro = form.cleaned_data['livro']
legislacao.titulo = form.cleaned_data['titulo']
legislacao.capitulo = form.cleaned_data['capitulo']
legislacao.secao = form.cleaned_data['secao']
legislacao.subsecao = form.cleaned_data['subsecao']
legislacao.artigo = form.cleaned_data['artigo']
legislacao.paragrafo = form.cleaned_data['paragrafo']
legislacao.inciso = form.cleaned_data['inciso']
legislacao.alinea = form.cleaned_data['alinea']
legislacao.item = form.cleaned_data['item']
legislacao.save()
return self.form_valid(form)
else:
return self.render_to_response(
{'form': form,
'object': materia})
class DocumentoAcessorioView(CreateView): class DocumentoAcessorioView(CreateView):
template_name = "materia/documento_acessorio.html" template_name = "materia/documento_acessorio.html"
form_class = DocumentoAcessorioForm form_class = DocumentoAcessorioForm

9
norma/layouts.yaml

@ -30,7 +30,14 @@ NormaJuridicaCreate:
LegislacaoCitada: LegislacaoCitada:
Legislação Citada: Legislação Citada:
- tip_norma_FIXME num_norma_FIXME ano_norma_FIXME - tipo_norma numero_norma ano_norma
- disposicoes parte livro titulo
- capitulo secao subsecao artigo
- paragrafo inciso alinea item
LegislacaoCitadaDetail:
Legislação Citada:
- 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

33
templates/materia/legislacao_citada.html

@ -1,33 +0,0 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %} {% endblock %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
{% include "materia/resumo_detail_materia.html" %}
<fieldset>
<legend>Legislação Citada</legend>
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<th>Tipo Norma</th>
<th>Número</th>
<th>Ano</th>
<th>Disposição</th>
</tr>
</thead>
{% for l in legislacao %}
<tr>
<td><a href="{% url 'materia:legislacao_citada_edit' object.id l.id %}">{{l.norma.tipo.descricao}}</a></td>
<td>{{l.norma.numero}}</td>
<td>{{l.norma.ano}}</td>
<td>{{l.disposicoes}}</td>
</tr>
{% endfor %}
</table>
</fieldset>
{% crispy form %}
</fieldset>
{% endblock %}

94
templates/materia/legislacao_citada_edit.html

@ -1,94 +0,0 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %} {% endblock %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
{% include "materia/resumo_detail_materia.html" %}
<fieldset class="form-group">
<legend>Editar Legislação Citada</legend>
<form method="POST">
{% csrf_token %}
<div class="row">
<div class="col-md-4">
<label>Tipo Norma*</label>
<select name="tipo" class="form-control">
{% for tipo in tipos_norma %}
<option value="{{tipo.id}}" {% if tipo == legislacao.norma.tipo %} selected {% endif %}>
{{tipo.sigla}} - {{tipo.descricao}}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-4">
<label>Número*</label>
<input type="text" name="numero" value="{{legislacao.norma.numero}}" class="form-control"/>
</div>
<div class="col-md-4">
<label>Ano*</label>
<input type="text" name="ano" value="{{legislacao.norma.ano}}" class="form-control"/>
</div>
</div>
<div class="row">
<div class="col-md-3">
<label>Disposição</label>
<input type="text" name="disposicao" value="{{legislacao.disposicoes}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Parte</label>
<input type="text" name="parte" value="{{legislacao.parte}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Livro</label>
<input type="text" name="livro" value="{{legislacao.livro}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Título</label>
<input type="text" name="titulo" value="{{legislacao.titulo}}" class="form-control"/>
</div>
</div>
<div class="row">
<div class="col-md-3">
<label>Capítulo</label>
<input type="text" name="capitulo" value="{{legislacao.capitulo}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Seção</label>
<input type="text" name="secao" value="{{legislacao.secao}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Subseção</label>
<input type="text" name="subsecao" value="{{legislacao.subsecao}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Artigo</label>
<input type="text" name="artigo" value="{{legislacao.artigo}}" class="form-control"/>
</div>
</div>
<div class="row">
<div class="col-md-3">
<label>Inciso</label>
<input type="text" name="inciso" value="{{legislacao.inciso}}" class="form-control" />
</div>
<div class="col-md-3">
<label>Alínea</label>
<input type="text" name="alinea" value="{{legislacao.alinea}}" class="form-control"/>
</div>
<div class="col-md-3">
<label>Item</label>
<input type="text" name="item" value="{{legislacao.item}}" class="form-control"/>
</div>
</div>
<br />
<input type="submit" value="Salvar" id="salvar" name="salvar" class="btn btn-primary" />
<input type="submit" value="Excluir" id="excluir" name="excluir" class="btn btn-danger" />
</form>
</fieldset>
</fieldset>
{% endblock %}

2
templates/materia/subnav.yaml

@ -9,7 +9,7 @@
- title: Documento Acessório - title: Documento Acessório
url: documento_acessorio url: documento_acessorio
- title: Legislação Citada - title: Legislação Citada
url: legislacao_citada url: legislacaocitada_list
- title: Numeração - title: Numeração
url: numeracao_list url: numeracao_list
- title: Tramitação - title: Tramitação

Loading…
Cancel
Save