Browse Source

Crud despacho inicial

pull/350/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
9a095137b3
  1. 28
      materia/forms.py
  2. 4
      materia/layouts.yaml
  3. 4
      materia/tests/test_materia.py
  4. 15
      materia/urls.py
  5. 79
      materia/views.py
  6. 29
      templates/materia/despacho_inicial.html
  7. 7
      templates/materia/despacho_inicial_edit.html
  8. 2
      templates/materia/subnav.yaml

28
materia/forms.py

@ -15,9 +15,9 @@ from norma.models import LegislacaoCitada, TipoNormaJuridica
from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import RANGE_ANOS
from .models import (AcompanhamentoMateria, Anexada, Autor, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa, Numeracao,
Proposicao, Relatoria, TipoMateriaLegislativa, Tramitacao)
from .models import (AcompanhamentoMateria, Anexada, Autor, DocumentoAcessorio,
MateriaLegislativa, Numeracao, Proposicao, Relatoria,
TipoMateriaLegislativa, Tramitacao)
ANO_CHOICES = [('', '---------')] + RANGE_ANOS
@ -336,28 +336,6 @@ class NumeracaoForm(ModelForm):
super(NumeracaoForm, self).__init__(*args, **kwargs)
class DespachoInicialForm(ModelForm):
class Meta:
model = DespachoInicial
fields = ['comissao']
def __init__(self, excluir=False, *args, **kwargs):
more = []
if excluir:
more = [Submit('Excluir', 'Excluir')]
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
_('Adicionar Despacho Inicial'),
'comissao',
form_actions(more=more)
)
)
super(DespachoInicialForm, self).__init__(*args, **kwargs)
class AnexadaForm(ModelForm):
tipo = forms.ModelChoiceField(

4
materia/layouts.yaml

@ -112,3 +112,7 @@ Tramitacao:
- status turno urgente
- unidade_tramitacao_destino data_encaminhamento data_fim_prazo
- texto
DespachoInicial:
Despacho Inicial:
- comissao

4
materia/tests/test_materia.py

@ -154,7 +154,7 @@ def test_despacho_inicial_submit(client):
data_criacao='2016-03-18')
# Testa POST
response = client.post(reverse('materia:despacho_inicial',
response = client.post(reverse('materia:despachoinicial_create',
kwargs={'pk': materia_principal.pk}),
{'comissao': comissao.pk,
'salvar': 'salvar'},
@ -321,7 +321,7 @@ def test_form_errors_autoria(client):
def test_form_errors_despacho_inicial(client):
materia_principal = make_materia_principal()
response = client.post(reverse('materia:despacho_inicial',
response = client.post(reverse('materia:despachoinicial_create',
kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'},
follow=True)

15
materia/urls.py

@ -3,10 +3,10 @@ from django.conf.urls import include, url
from materia.views import (AcompanhamentoConfirmarView,
AcompanhamentoExcluirView,
AcompanhamentoMateriaView, AnexadaCrud, AutorCrud,
AutoriaCrud, DespachoInicialEditView,
DespachoInicialView, DocumentoAcessorioEditView,
DocumentoAcessorioView, LegislacaoCitadaEditView,
LegislacaoCitadaView, MateriaLegislativaCrud,
AutoriaCrud, DespachoInicialCrud,
DocumentoAcessorioEditView, DocumentoAcessorioView,
LegislacaoCitadaEditView, LegislacaoCitadaView,
MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoEditView, NumeracaoView, OrgaoCrud,
OrigemCrud, ProposicaoEditView, ProposicaoListView,
@ -25,7 +25,8 @@ app_name = AppConfig.name
urlpatterns = [
url(r'^materia/', include(MateriaLegislativaCrud.get_urls() +
AnexadaCrud.get_urls() +
AutoriaCrud.get_urls())),
AutoriaCrud.get_urls() +
DespachoInicialCrud.get_urls())),
url(r'^materia/(?P<pk>[0-9]+)/ta$',
@ -52,10 +53,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<pk>\d+)/despacho-inicial$',
DespachoInicialView.as_view(), name='despacho_inicial'),
url(r'^materia/(?P<pk>\d+)/despacho-inicial/(?P<id>\d+)/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',

79
materia/views.py

@ -25,10 +25,9 @@ from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica
from sapl.utils import get_base_url
from .forms import (AcompanhamentoMateriaForm, AnexadaForm,
DespachoInicialForm, DocumentoAcessorioForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet,
NumeracaoForm, ProposicaoForm, RelatoriaForm,
TramitacaoForm, filtra_tramitacao_destino,
DocumentoAcessorioForm, LegislacaoCitadaForm,
MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm,
RelatoriaForm, TramitacaoForm, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status,
filtra_tramitacao_status)
from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
@ -58,6 +57,7 @@ UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
TramitacaoCrud = Crud.build(Tramitacao, '')
AutoriaCrud = MasterDetailCrud.build(Autoria, 'materia', '')
DespachoInicialCrud = MasterDetailCrud.build(DespachoInicial, 'materia', '')
class AnexadaCrud(MasterDetailCrud):
@ -96,77 +96,6 @@ class MateriaLegislativaCrud(Crud):
list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao']
class DespachoInicialView(CreateView):
template_name = "materia/despacho_inicial.html"
form_class = DespachoInicialForm
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
despacho = DespachoInicial.objects.filter(materia_id=materia.id)
form = DespachoInicialForm()
return self.render_to_response(
{'object': materia,
'form': form,
'despachos': despacho})
def post(self, request, *args, **kwargs):
form = self.get_form()
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
despacho = DespachoInicial.objects.filter(materia_id=materia.id)
if form.is_valid():
despacho = DespachoInicial()
despacho.comissao = form.cleaned_data['comissao']
despacho.materia = materia
despacho.save()
return redirect(self.get_success_url())
else:
return self.render_to_response({'form': form,
'object': materia,
'despachos': despacho})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:despacho_inicial', kwargs={'pk': pk})
class DespachoInicialEditView(CreateView):
template_name = "materia/despacho_inicial_edit.html"
form_class = DespachoInicialForm
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
despacho = DespachoInicial.objects.get(id=kwargs['id'])
form = DespachoInicialForm(instance=despacho, excluir=True)
return self.render_to_response({'object': materia, 'form': form})
def post(self, request, *args, **kwargs):
form = self.get_form()
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
despacho = DespachoInicial.objects.get(id=kwargs['id'])
if form.is_valid():
if 'Excluir' in request.POST:
despacho.delete()
elif 'salvar' in request.POST:
despacho.comissao = form.cleaned_data['comissao']
despacho.materia = materia
despacho.save()
return redirect(self.get_success_url())
else:
return self.render_to_response(
{'object': materia,
'form': form,
'despacho': despacho,
'comissoes': Comissao.objects.all()})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:despacho_inicial', kwargs={'pk': pk})
class LegislacaoCitadaView(FormView):
template_name = "materia/legislacao_citada.html"
form_class = LegislacaoCitadaForm

29
templates/materia/despacho_inicial.html

@ -1,29 +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>Despachos</legend>
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<th>Comissão</th>
<th>Sigla</th>
</tr>
</thead>
{% for d in despachos %}
<tr>
<td><a href="{% url 'materia:despacho_inicial_edit' object.id d.id %}">{{d.comissao.nome}}</a></td>
<td>{{d.comissao.sigla}}</td>
</tr>
{% endfor %}
</table>
</fieldset>
{% crispy form %}
</fieldset>
{% endblock %}

7
templates/materia/despacho_inicial_edit.html

@ -1,7 +0,0 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %} {% endblock %}
{% block detail_content %}
{% crispy form %}
{% endblock %}

2
templates/materia/subnav.yaml

@ -5,7 +5,7 @@
- title: Autoria
url: autoria_list
- title: Despacho Inicial
url: despacho_inicial
url: despachoinicial_list
- title: Documento Acessório
url: documento_acessorio
- title: Legislação Citada

Loading…
Cancel
Save