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',
'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):

4
materia/layouts.yaml

@ -107,9 +107,9 @@ UnidadeTramitacao:
Tramitacao:
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
- unidade_tramitacao_destino data_encaminhamento data_fim_prazo
- texto
DespachoInicial:

10
materia/urls.py

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

114
materia/views.py

@ -54,7 +54,8 @@ TipoProposicaoCrud = Crud.build(TipoProposicao, 'tipo_proposicao')
ProposicaoCrud = Crud.build(Proposicao, '')
StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao')
UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
TramitacaoCrud = Crud.build(Tramitacao, '')
TramitacaoCrud = MasterDetailCrud.build(Tramitacao, 'materia', '')
class AutoriaCrud(MasterDetailCrud):
@ -641,117 +642,6 @@ def do_envia_email_tramitacao(request, materia):
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):
template_name = "materia/proposicao/proposicao_list.html"
paginate_by = 10

2
templates/materia/subnav.yaml

@ -13,7 +13,7 @@
- title: Numeração
url: numeracao_list
- title: Tramitação
url: tramitacao_materia
url: tramitacao_list
- title: 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