diff --git a/materia/forms.py b/materia/forms.py index e6be32d9c..af3f6fa29 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -270,42 +270,6 @@ class LegislacaoCitadaForm(ModelForm): 'alinea', '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): diff --git a/materia/layouts.yaml b/materia/layouts.yaml index cafaeb94f..82c2303c7 100644 --- a/materia/layouts.yaml +++ b/materia/layouts.yaml @@ -115,3 +115,10 @@ Tramitacao: DespachoInicial: Despacho Inicial: - comissao + +LegislacaoCitadaDetail: + Legislação Citada: + - norma + - disposicoes parte livro titulo + - capitulo secao subsecao artigo + - paragrafo inciso alinea item diff --git a/materia/urls.py b/materia/urls.py index 26982c318..e6b0304d3 100644 --- a/materia/urls.py +++ b/materia/urls.py @@ -5,8 +5,7 @@ from materia.views import (AcompanhamentoConfirmarView, AcompanhamentoMateriaView, AnexadaCrud, AutorCrud, AutoriaCrud, DespachoInicialCrud, DocumentoAcessorioEditView, DocumentoAcessorioView, - LegislacaoCitadaEditView, LegislacaoCitadaView, - MateriaLegislativaCrud, + LegislacaoCitadaCrud, MateriaLegislativaCrud, MateriaLegislativaPesquisaView, MateriaTaView, NumeracaoCrud, OrgaoCrud, OrigemCrud, ProposicaoEditView, ProposicaoListView, @@ -27,7 +26,8 @@ urlpatterns = [ AnexadaCrud.get_urls() + AutoriaCrud.get_urls() + DespachoInicialCrud.get_urls() + - NumeracaoCrud.get_urls())), + NumeracaoCrud.get_urls() + + LegislacaoCitadaCrud.get_urls())), url(r'^materia/(?P[0-9]+)/ta$', @@ -54,10 +54,6 @@ urlpatterns = [ url(r'^sistema/materia/status-tramitacao/', include(StatusTramitacaoCrud.get_urls())), url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())), - url(r'^materia/(?P\d+)/legislacao-citada$', - LegislacaoCitadaView.as_view(), name='legislacao_citada'), - url(r'^materia/(?P\d+)/legislacao-citada/(?P\d+)/edit', - LegislacaoCitadaEditView.as_view(), name='legislacao_citada_edit'), url(r'^materia/(?P\d+)/documento-acessorio$', DocumentoAcessorioView.as_view(), name='documento_acessorio'), url(r'^materia/(?P\d+)/documento-acessorio/(?P\d+)/edit', diff --git a/materia/views.py b/materia/views.py index 430946edc..b85be1373 100644 --- a/materia/views.py +++ b/materia/views.py @@ -21,7 +21,7 @@ from comissoes.models import Comissao, Composicao from compilacao.views import IntegracaoTaView from crud.base import Crud, make_pagination 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 .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm, @@ -81,6 +81,34 @@ class DespachoInicialCrud(MasterDetailCrud): 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): model = Numeracao parent_field = 'materia' @@ -107,7 +135,7 @@ class AnexadaCrud(MasterDetailCrud): class UpdateView(MasterDetailCrud.UpdateView): form_class = AnexadaForm - def get_initial(self, **kwargs): + def get_initial(self): self.initial['tipo'] = self.object.materia_anexada.tipo.id self.initial['numero'] = self.object.materia_anexada.numero self.initial['ano'] = self.object.materia_anexada.ano @@ -129,132 +157,6 @@ class MateriaLegislativaCrud(Crud): 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): template_name = "materia/documento_acessorio.html" form_class = DocumentoAcessorioForm diff --git a/norma/layouts.yaml b/norma/layouts.yaml index b0bce2d2a..2fb7735ab 100644 --- a/norma/layouts.yaml +++ b/norma/layouts.yaml @@ -30,7 +30,14 @@ NormaJuridicaCreate: LegislacaoCitada: 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 - capitulo secao subsecao artigo - paragrafo inciso alinea item diff --git a/templates/materia/legislacao_citada.html b/templates/materia/legislacao_citada.html deleted file mode 100644 index 37381e79e..000000000 --- a/templates/materia/legislacao_citada.html +++ /dev/null @@ -1,33 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %} {% endblock %} -{% block detail_content %} -
- Matéria Legislativa - {% include "materia/resumo_detail_materia.html" %} - -
- Legislação Citada - - - - - - - - - - {% for l in legislacao %} - - - - - - - {% endfor %} -
Tipo NormaNúmeroAnoDisposição
{{l.norma.tipo.descricao}}{{l.norma.numero}}{{l.norma.ano}}{{l.disposicoes}}
-
- {% crispy form %} -
-{% endblock %} diff --git a/templates/materia/legislacao_citada_edit.html b/templates/materia/legislacao_citada_edit.html deleted file mode 100644 index f819a0a63..000000000 --- a/templates/materia/legislacao_citada_edit.html +++ /dev/null @@ -1,94 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %} {% endblock %} -{% block detail_content %} -
- Matéria Legislativa - {% include "materia/resumo_detail_materia.html" %} - -
- Editar Legislação Citada -
- {% csrf_token %} - -
-
- - -
-
- - -
-
- - -
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
- - -
-
- - -
-
- - -
-
-
- - -
-
-
-{% endblock %} diff --git a/templates/materia/subnav.yaml b/templates/materia/subnav.yaml index 49d4d40e2..8dece889a 100644 --- a/templates/materia/subnav.yaml +++ b/templates/materia/subnav.yaml @@ -9,7 +9,7 @@ - title: Documento Acessório url: documento_acessorio - title: Legislação Citada - url: legislacao_citada + url: legislacaocitada_list - title: Numeração url: numeracao_list - title: Tramitação