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.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import RANGE_ANOS from sapl.utils import RANGE_ANOS
from .models import (AcompanhamentoMateria, Anexada, Autor, DespachoInicial, from .models import (AcompanhamentoMateria, Anexada, Autor, DocumentoAcessorio,
DocumentoAcessorio, MateriaLegislativa, Numeracao, MateriaLegislativa, Numeracao, Proposicao, Relatoria,
Proposicao, Relatoria, TipoMateriaLegislativa, Tramitacao) TipoMateriaLegislativa, Tramitacao)
ANO_CHOICES = [('', '---------')] + RANGE_ANOS ANO_CHOICES = [('', '---------')] + RANGE_ANOS
@ -336,28 +336,6 @@ class NumeracaoForm(ModelForm):
super(NumeracaoForm, self).__init__(*args, **kwargs) 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): class AnexadaForm(ModelForm):
tipo = forms.ModelChoiceField( tipo = forms.ModelChoiceField(

4
materia/layouts.yaml

@ -112,3 +112,7 @@ Tramitacao:
- status turno urgente - status turno urgente
- unidade_tramitacao_destino data_encaminhamento data_fim_prazo - unidade_tramitacao_destino data_encaminhamento data_fim_prazo
- texto - 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') data_criacao='2016-03-18')
# Testa POST # Testa POST
response = client.post(reverse('materia:despacho_inicial', response = client.post(reverse('materia:despachoinicial_create',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'comissao': comissao.pk, {'comissao': comissao.pk,
'salvar': 'salvar'}, 'salvar': 'salvar'},
@ -321,7 +321,7 @@ def test_form_errors_autoria(client):
def test_form_errors_despacho_inicial(client): def test_form_errors_despacho_inicial(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('materia:despacho_inicial', response = client.post(reverse('materia:despachoinicial_create',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

15
materia/urls.py

@ -3,10 +3,10 @@ from django.conf.urls import include, url
from materia.views import (AcompanhamentoConfirmarView, from materia.views import (AcompanhamentoConfirmarView,
AcompanhamentoExcluirView, AcompanhamentoExcluirView,
AcompanhamentoMateriaView, AnexadaCrud, AutorCrud, AcompanhamentoMateriaView, AnexadaCrud, AutorCrud,
AutoriaCrud, DespachoInicialEditView, AutoriaCrud, DespachoInicialCrud,
DespachoInicialView, DocumentoAcessorioEditView, DocumentoAcessorioEditView, DocumentoAcessorioView,
DocumentoAcessorioView, LegislacaoCitadaEditView, LegislacaoCitadaEditView, LegislacaoCitadaView,
LegislacaoCitadaView, MateriaLegislativaCrud, MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView, MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoEditView, NumeracaoView, OrgaoCrud, NumeracaoEditView, NumeracaoView, OrgaoCrud,
OrigemCrud, ProposicaoEditView, ProposicaoListView, OrigemCrud, ProposicaoEditView, ProposicaoListView,
@ -25,7 +25,8 @@ app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^materia/', include(MateriaLegislativaCrud.get_urls() + url(r'^materia/', include(MateriaLegislativaCrud.get_urls() +
AnexadaCrud.get_urls() + AnexadaCrud.get_urls() +
AutoriaCrud.get_urls())), AutoriaCrud.get_urls() +
DespachoInicialCrud.get_urls())),
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',
@ -52,10 +53,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+)/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$', url(r'^materia/(?P<pk>\d+)/legislacao-citada$',
LegislacaoCitadaView.as_view(), name='legislacao_citada'), LegislacaoCitadaView.as_view(), name='legislacao_citada'),
url(r'^materia/(?P<pk>\d+)/legislacao-citada/(?P<id>\d+)/edit', 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 sapl.utils import get_base_url
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, from .forms import (AcompanhamentoMateriaForm, AnexadaForm,
DespachoInicialForm, DocumentoAcessorioForm, DocumentoAcessorioForm, LegislacaoCitadaForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet, MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm,
NumeracaoForm, ProposicaoForm, RelatoriaForm, RelatoriaForm, TramitacaoForm, filtra_tramitacao_destino,
TramitacaoForm, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status, filtra_tramitacao_destino_and_status,
filtra_tramitacao_status) filtra_tramitacao_status)
from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
@ -58,6 +57,7 @@ UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
TramitacaoCrud = Crud.build(Tramitacao, '') TramitacaoCrud = Crud.build(Tramitacao, '')
AutoriaCrud = MasterDetailCrud.build(Autoria, 'materia', '') AutoriaCrud = MasterDetailCrud.build(Autoria, 'materia', '')
DespachoInicialCrud = MasterDetailCrud.build(DespachoInicial, 'materia', '')
class AnexadaCrud(MasterDetailCrud): class AnexadaCrud(MasterDetailCrud):
@ -96,77 +96,6 @@ class MateriaLegislativaCrud(Crud):
list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao'] 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): class LegislacaoCitadaView(FormView):
template_name = "materia/legislacao_citada.html" template_name = "materia/legislacao_citada.html"
form_class = LegislacaoCitadaForm 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 - title: Autoria
url: autoria_list url: autoria_list
- title: Despacho Inicial - title: Despacho Inicial
url: despacho_inicial url: despachoinicial_list
- title: Documento Acessório - title: Documento Acessório
url: documento_acessorio url: documento_acessorio
- title: Legislação Citada - title: Legislação Citada

Loading…
Cancel
Save