Browse Source

Init Crud Tramitação

pull/380/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
6cb49ada4e
  1. 29
      materia/forms.py
  2. 4
      materia/layouts.yaml
  3. 10
      materia/urls.py
  4. 114
      materia/views.py
  5. 2
      templates/materia/subnav.yaml
  6. 33
      templates/materia/tramitacao.html
  7. 7
      templates/materia/tramitacao_edit.html

29
materia/forms.py

@ -209,35 +209,6 @@ class TramitacaoForm(ModelForm):
'data_fim_prazo', 'data_fim_prazo',
'texto'] 'texto']
def __init__(self, excluir=False, *args, **kwargs):
row1 = crispy_layout_mixin.to_row(
[('data_tramitacao', 6), ('unidade_tramitacao_local', 6)])
row2 = crispy_layout_mixin.to_row(
[('status', 5), ('turno', 5), ('urgente', 2)])
row3 = crispy_layout_mixin.to_row(
[('unidade_tramitacao_destino', 12)])
row4 = crispy_layout_mixin.to_row(
[('data_encaminhamento', 6), ('data_fim_prazo', 6)])
row5 = crispy_layout_mixin.to_row(
[('texto', 12)])
more = []
if excluir:
more = [Submit('Excluir', 'Excluir')]
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(_('Incluir Tramitação'),
row1, row2, row3, row4, row5,
),
form_actions(more=more)
)
super(TramitacaoForm, self).__init__(
*args, **kwargs)
class LegislacaoCitadaForm(ModelForm): class LegislacaoCitadaForm(ModelForm):

4
materia/layouts.yaml

@ -107,9 +107,9 @@ UnidadeTramitacao:
Tramitacao: Tramitacao:
Tramitação: Tramitação:
- cod_ult_tram_dest_FIXME unidade_tramitacao_local - unidade_tramitacao_local unidade_tramitacao_destino
- data_tramitacao data_encaminhamento data_fim_prazo
- status turno urgente - status turno urgente
- unidade_tramitacao_destino data_encaminhamento data_fim_prazo
- texto - texto
DespachoInicial: DespachoInicial:

10
materia/urls.py

@ -13,8 +13,7 @@ from materia.views import (AcompanhamentoConfirmarView,
RegimeTramitacaoCrud, RelatoriaEditView, RegimeTramitacaoCrud, RelatoriaEditView,
RelatoriaView, StatusTramitacaoCrud, TipoAutorCrud, RelatoriaView, StatusTramitacaoCrud, TipoAutorCrud,
TipoDocumentoCrud, TipoFimRelatoriaCrud, TipoDocumentoCrud, TipoFimRelatoriaCrud,
TipoMateriaCrud, TipoProposicaoCrud, TipoMateriaCrud, TipoProposicaoCrud, TramitacaoCrud,
TramitacaoEditView, TramitacaoView,
UnidadeTramitacaoCrud) UnidadeTramitacaoCrud)
from .apps import AppConfig from .apps import AppConfig
@ -27,7 +26,8 @@ urlpatterns = [
AutoriaCrud.get_urls() + AutoriaCrud.get_urls() +
DespachoInicialCrud.get_urls() + DespachoInicialCrud.get_urls() +
NumeracaoCrud.get_urls() + NumeracaoCrud.get_urls() +
LegislacaoCitadaCrud.get_urls())), LegislacaoCitadaCrud.get_urls() +
TramitacaoCrud.get_urls())),
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',
@ -60,10 +60,6 @@ urlpatterns = [
DocumentoAcessorioEditView.as_view(), name='documento_acessorio_edit'), DocumentoAcessorioEditView.as_view(), name='documento_acessorio_edit'),
url(r'^materia/(?P<pk>\d+)/relatoria$', url(r'^materia/(?P<pk>\d+)/relatoria$',
RelatoriaView.as_view(), name='relatoria'), RelatoriaView.as_view(), name='relatoria'),
url(r'^materia/(?P<pk>\d+)/tramitacao$',
TramitacaoView.as_view(), name='tramitacao_materia'),
url(r'^materia/(?P<pk>\d+)/tramitacao/(?P<id>\d+)/edit$',
TramitacaoEditView.as_view(), name='tramitacao_edit'),
url(r'^materia/(?P<pk>\d+)/relatoria/(?P<id>\d+)/edit$', url(r'^materia/(?P<pk>\d+)/relatoria/(?P<id>\d+)/edit$',
RelatoriaEditView.as_view(), name='relatoria_edit'), RelatoriaEditView.as_view(), name='relatoria_edit'),
url(r'^materia/proposicao$', url(r'^materia/proposicao$',

114
materia/views.py

@ -54,7 +54,8 @@ TipoProposicaoCrud = Crud.build(TipoProposicao, 'tipo_proposicao')
ProposicaoCrud = Crud.build(Proposicao, '') ProposicaoCrud = Crud.build(Proposicao, '')
StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao') StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao')
UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao') UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
TramitacaoCrud = Crud.build(Tramitacao, '')
TramitacaoCrud = MasterDetailCrud.build(Tramitacao, 'materia', '')
class AutoriaCrud(MasterDetailCrud): class AutoriaCrud(MasterDetailCrud):
@ -641,117 +642,6 @@ def do_envia_email_tramitacao(request, materia):
return None return None
class TramitacaoView(CreateView):
template_name = "materia/tramitacao.html"
form_class = TramitacaoForm
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacoes = Tramitacao.objects.filter(
materia_id=kwargs['pk']).order_by('-data_tramitacao')
form = self.get_form()
return self.render_to_response(
{'object': materia,
'form': form,
'tramitacoes': tramitacoes})
def post(self, request, *args, **kwargs):
form = self.get_form()
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacoes_list = Tramitacao.objects.filter(
materia_id=kwargs['pk']).order_by('-data_tramitacao')
if form.is_valid():
ultima_tramitacao = Tramitacao.objects.filter(
materia_id=kwargs['pk']).last()
if ultima_tramitacao:
destino = ultima_tramitacao.unidade_tramitacao_destino
cleaned_data = form.cleaned_data['unidade_tramitacao_local']
if (destino == cleaned_data):
tramitacao = form.save(commit=False)
tramitacao.materia = materia
tramitacao.save()
else:
msg = _('A origem da nova tramitação \
deve ser igual ao destino da última adicionada!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'form': form,
'object': materia,
'tramitacoes': tramitacoes_list})
do_envia_email_tramitacao(request, materia)
else:
tramitacao = form.save(commit=False)
tramitacao.materia = materia
tramitacao.save()
return self.form_valid(form)
else:
return self.render_to_response({'form': form,
'object': materia,
'tramitacoes': tramitacoes_list})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:tramitacao_materia', kwargs={'pk': pk})
class TramitacaoEditView(CreateView):
template_name = "materia/tramitacao_edit.html"
form_class = TramitacaoForm
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacao = Tramitacao.objects.get(id=kwargs['id'])
form = TramitacaoForm(excluir=True, instance=tramitacao)
return self.render_to_response(
{'object': materia,
'form': form,
'tramitacao': tramitacao})
def post(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacao = Tramitacao.objects.get(id=kwargs['id'])
form = self.get_form()
if form.is_valid():
if 'excluir' in request.POST:
if tramitacao == Tramitacao.objects.filter(
materia=materia).last():
tramitacao.delete()
else:
msg = _('Somente a útlima tramitação pode ser deletada!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'tramitacao': tramitacao})
elif 'salvar' in request.POST:
tramitacao.status = form.cleaned_data['status']
tramitacao.turno = form.cleaned_data['turno']
tramitacao.urgente = form.cleaned_data['urgente']
tramitacao.unidade_tramitacao_destino = form.cleaned_data[
'unidade_tramitacao_destino']
tramitacao.data_encaminhamento = form.cleaned_data[
'data_encaminhamento']
tramitacao.data_fim_prazo = form.cleaned_data['data_fim_prazo']
tramitacao.texto = form.cleaned_data['texto']
tramitacao.save()
return redirect(self.get_success_url())
else:
return self.render_to_response(
{'object': materia,
'form': form,
'tramitacao': tramitacao})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:tramitacao_materia', kwargs={'pk': pk})
class ProposicaoListView(ListView): class ProposicaoListView(ListView):
template_name = "materia/proposicao/proposicao_list.html" template_name = "materia/proposicao/proposicao_list.html"
paginate_by = 10 paginate_by = 10

2
templates/materia/subnav.yaml

@ -13,7 +13,7 @@
- title: Numeração - title: Numeração
url: numeracao_list url: numeracao_list
- title: Tramitação - title: Tramitação
url: tramitacao_materia url: tramitacao_list
- title: Relatoria - title: Relatoria
url: relatoria url: relatoria

33
templates/materia/tramitacao.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>Tramitações</legend>
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<th>Data Ação</th>
<th>Origem</th>
<th>Destino</th>
<th>Status</th>
</tr>
</thead>
{% for t in tramitacoes %}
<tr>
<td><a href="{% url 'materia:tramitacao_edit' object.id t.id %}">{{t.data_tramitacao|date:'d/m/Y'}}</a></td>
<td>{{t.unidade_tramitacao_local}}</td>
<td>{{t.unidade_tramitacao_destino}}</td>
<td>{{t.status.descricao}}</td>
</tr>
{% endfor %}
</table>
</fieldset>
{% crispy form %}
</fieldset>
{% endblock %}

7
templates/materia/tramitacao_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 %}
Loading…
Cancel
Save