Browse Source

Add Legislacao Citada in Materia

pull/11/merge
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
8a0575353b
  1. 6
      materia/urls.py
  2. 207
      materia/views.py
  3. 4
      norma/urls.py
  4. 20
      norma/views.py
  5. 37
      templates/materia/legislacao_citada.html
  6. 74
      templates/materia/legislacao_citada_edit.html
  7. 6
      templates/materia/materia_detail.html

6
materia/urls.py

@ -1,6 +1,8 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from materia.views import (DespachoInicialEditView, DespachoInicialView, from materia.views import (DespachoInicialEditView, DespachoInicialView,
FormularioCadastroView, FormularioSimplificadoView, FormularioCadastroView, FormularioSimplificadoView,
LegislacaoCitadaEditView, LegislacaoCitadaView,
MateriaAnexadaEditView, MateriaAnexadaView, MateriaAnexadaEditView, MateriaAnexadaView,
autor_crud, materia_legislativa_crud, orgao_crud, autor_crud, materia_legislativa_crud, orgao_crud,
origem_crud, regime_tramitacao_crud, origem_crud, regime_tramitacao_crud,
@ -42,4 +44,8 @@ urlpatterns = [
DespachoInicialView.as_view(), name='despacho_inicial'), DespachoInicialView.as_view(), name='despacho_inicial'),
url(r'^materia/(?P<pk>\d+)/despacho-inicial/(?P<id>\d+)/edit', url(r'^materia/(?P<pk>\d+)/despacho-inicial/(?P<id>\d+)/edit',
DespachoInicialEditView.as_view(), name='despacho_inicial_edit'), DespachoInicialEditView.as_view(), name='despacho_inicial_edit'),
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'),
] ]

207
materia/views.py

@ -1,8 +1,7 @@
from datetime import date from datetime import date
from comissoes.models import Comissao
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, ButtonHolder, Fieldset, Layout, Submit from crispy_forms.layout import ButtonHolder, Fieldset, Layout, Submit
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
@ -11,9 +10,12 @@ from django.shortcuts import render
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from sapl.crud import build_crud
from vanilla import GenericView from vanilla import GenericView
from comissoes.models import Comissao
from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica
from sapl.crud import build_crud
from .models import (Anexada, Autor, Autoria, DespachoInicial, from .models import (Anexada, Autor, Autoria, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa, Numeracao, Orgao, DocumentoAcessorio, MateriaLegislativa, Numeracao, Orgao,
Origem, Proposicao, RegimeTramitacao, Relatoria, Origem, Proposicao, RegimeTramitacao, Relatoria,
@ -715,3 +717,202 @@ class DespachoInicialEditView(FormMixin, GenericView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('despacho_inicial', kwargs={'pk': pk}) return reverse('despacho_inicial', kwargs={'pk': pk})
def get_tipos_norma():
return [('', 'Selecione')] \
+ [(t.id, t.sigla + ' - ' + t.descricao)
for t in TipoNormaJuridica.objects.all()]
class LegislacaoCitadaForm(forms.Form):
tipo = forms.ChoiceField(required=True,
label='Tipo Norma',
choices=get_tipos_norma(),
widget=forms.Select(
attrs={'class': 'selector'}))
numero = forms.CharField(label='Número', required=True)
ano = forms.CharField(label='Ano', required=True)
disposicao = forms.CharField(label='Disposição', required=False)
parte = forms.CharField(label='Parte', required=False)
livro = forms.CharField(label='Livro', required=False)
titulo = forms.CharField(label='Título', required=False)
capitulo = forms.CharField(label='Capítulo', required=False)
secao = forms.CharField(label='Seção', required=False)
subsecao = forms.CharField(label='Subseção', required=False)
artigo = forms.CharField(label='Artigo', required=False)
paragrafo = forms.CharField(label='Parágrafo', required=False)
inciso = forms.CharField(label='Inciso', required=False)
alinea = forms.CharField(label='Alínea', required=False)
item = forms.CharField(label='Item', required=False)
class Meta:
model = LegislacaoCitada
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.layout = Layout(
Fieldset(
'Incluir Legislação Citada',
'tipo',
'numero',
'ano',
'disposicao',
'parte',
'livro',
'titulo',
'capitulo',
'secao',
'subsecao',
'artigo',
'paragrafo',
'inciso',
'alinea',
'item',
ButtonHolder(
Submit('submit', 'Salvar',
css_class='button primary')
)
)
)
super(LegislacaoCitadaForm, self).__init__(*args, **kwargs)
class LegislacaoCitadaView(FormMixin, GenericView):
template_name = "materia/legislacao_citada.html"
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(
{'materia': 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:
error = 'Norma Juridica não existe.'
return self.render_to_response({'form': form,
'materia': materia,
'legislacao': legislacao_list,
'error': error})
legislacao.materia = materia
legislacao.norma = norma
legislacao.disposicoes = form.cleaned_data['disposicao']
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,
'materia': materia,
'legislacao': legislacao_list})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('legislacao_citada', kwargs={'pk': pk})
class LegislacaoCitadaEditView(FormMixin, GenericView):
template_name = "materia/legislacao_citada_edit.html"
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('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(
{'materia': 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:
error = 'Norma Juridica não existe.'
return self.render_to_response(
{'form': form,
'materia': materia,
'error': error,
'legislacao': legislacao,
'tipos_norma': TipoNormaJuridica.objects.all()})
legislacao.materia = materia
legislacao.norma = norma
legislacao.disposicoes = form.cleaned_data['disposicao']
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,
'materia': materia})

4
norma/urls.py

@ -1,8 +1,8 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from norma.views import (assunto_norma_crud, from norma.views import (NormaIncluirView, assunto_norma_crud,
norma_temporario_para_compilacao_crud, norma_temporario_para_compilacao_crud,
tipo_norma_crud, NormaIncluirView) tipo_norma_crud)
norma_url_patterns = norma_temporario_para_compilacao_crud.urlpatterns norma_url_patterns = norma_temporario_para_compilacao_crud.urlpatterns

20
norma/views.py

@ -1,22 +1,18 @@
from django.utils.translation import ugettext_lazy as _ from datetime import datetime
from sapl.crud import build_crud
from django import forms from django import forms
from django.utils.safestring import mark_safe
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin
from vanilla import GenericView
from datetime import datetime from materia.models import TipoMateriaLegislativa
from sapl.crud import build_crud
from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica, from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from materia.models import TipoMateriaLegislativa
from django.views.generic.edit import FormMixin
from vanilla import GenericView
assunto_norma_crud = build_crud( assunto_norma_crud = build_crud(
AssuntoNorma, 'assunto_norma_juridica', [ AssuntoNorma, 'assunto_norma_juridica', [
@ -231,5 +227,3 @@ class NormaIncluirView(FormMixin, GenericView):
return self.render_to_response({'form': form}) return self.render_to_response({'form': form})
else: else:
return self.form_invalid(form) return self.form_invalid(form)

37
templates/materia/legislacao_citada.html

@ -0,0 +1,37 @@
{% extends "materia/materia_detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Tipo: <b>{{materia.tipo.sigla}}</b></li>
<li>Número: <b>{{materia.numero}}</b></li>
<li>Ano: <b>{{materia.ano}}</b></li>
</ul>
Ementa: <b>{{materia.ementa}}</b>
<fieldset>
<legend>Legislação Citada</legend>
<table>
<tr>
<th>Tipo Norma</th>
<th>Número</th>
<th>Ano</th>
<th>Disposição</th>
</tr>
{% for l in legislacao %}
<tr>
<td><a href="{% url 'legislacao_citada_edit' materia.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>
{% if error %} <h5 align="center"><font color="#FF0000">{{ error }}</font></h5> {% endif %}
{% crispy form %}
</fieldset>
{% endblock %}

74
templates/materia/legislacao_citada_edit.html

@ -0,0 +1,74 @@
{% extends "materia/materia_detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Tipo: <b>{{materia.tipo.sigla}}</b></li>
<li>Número: <b>{{materia.numero}}</b></li>
<li>Ano: <b>{{materia.ano}}</b></li>
</ul>
Ementa: <b>{{materia.ementa}}</b>
<fieldset>
<legend>Editar Legislação Citada</legend>
<form method="POST">
{% csrf_token %}
{% if error %} <h5 align="center"><font color="#FF0000">{{ error }}</font></h5> {% endif %}
Tipo Norma*
<select name="tipo">
{% for tipo in tipos_norma %}
<option value="{{tipo.id}}" {% if tipo == legislacao.norma.tipo %} selected {% endif %}>
{{tipo.sigla}} - {{tipo.descricao}}
</option>
{% endfor %}
</select>
Número*
<input type="text" name="numero" value="{{legislacao.norma.numero}}" />
Ano*
<input type="text" name="ano" value="{{legislacao.norma.ano}}" />
Disposição
<input type="text" name="disposicao" value="{{legislacao.disposicoes}}" />
Parte
<input type="text" name="parte" value="{{legislacao.parte}}" />
Livro
<input type="text" name="livro" value="{{legislacao.livro}}" />
Título
<input type="text" name="titulo" value="{{legislacao.titulo}}" />
Capítulo
<input type="text" name="capitulo" value="{{legislacao.capitulo}}" />
Seção
<input type="text" name="secao" value="{{legislacao.secao}}" />
Subseção
<input type="text" name="subsecao" value="{{legislacao.subsecao}}" />
Artigo
<input type="text" name="artigo" value="{{legislacao.artigo}}" />
Inciso
<input type="text" name="inciso" value="{{legislacao.inciso}}" />
Alínea
<input type="text" name="alinea" value="{{legislacao.alinea}}" />
Item
<input type="text" name="item" value="{{legislacao.item}}" />
<input type="submit" value="Salvar" id="salvar" name="salvar" class="primary button" />
<input type="submit" value="Excluir" id="excluir" name="excluir" class="primary button" />
</form>
</fieldset>
</fieldset>
{% endblock %}

6
templates/materia/materia_detail.html

@ -4,11 +4,11 @@
{% block sections_nav %} {% block sections_nav %}
<dl class="sub-nav left"> <dl class="sub-nav left">
<dd><a href="" class="button secondary">{% trans 'Início' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Início' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Anexada' %}</a></dd> <dd><a href="{% url 'materia_anexada' materia.id %}" class="button secondary">{% trans 'Anexada' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Autoria' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Autoria' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Despacho Inicial' %}</a></dd> <dd><a href="{% url 'materia_anexada' materia.id %}" class="button secondary">{% trans 'Despacho Inicial' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Documento Acessório' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Documento Acessório' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Legislação Citada' %}</a></dd> <dd><a href="{% url 'legislacao_citada' materia.id %}" class="button secondary">{% trans 'Legislação Citada' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Numeração' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Numeração' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Tramitação' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Tramitação' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Relatoria' %}</a></dd> <dd><a href="" class="button secondary">{% trans 'Relatoria' %}</a></dd>

Loading…
Cancel
Save