diff --git a/materia/forms.py b/materia/forms.py index 0811950d0..5918bcf31 100644 --- a/materia/forms.py +++ b/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): diff --git a/materia/layouts.yaml b/materia/layouts.yaml index 82c2303c7..271635ba3 100644 --- a/materia/layouts.yaml +++ b/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: diff --git a/materia/urls.py b/materia/urls.py index e6b0304d3..84b50f0ff 100644 --- a/materia/urls.py +++ b/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[0-9]+)/ta$', @@ -60,10 +60,6 @@ urlpatterns = [ DocumentoAcessorioEditView.as_view(), name='documento_acessorio_edit'), url(r'^materia/(?P\d+)/relatoria$', RelatoriaView.as_view(), name='relatoria'), - url(r'^materia/(?P\d+)/tramitacao$', - TramitacaoView.as_view(), name='tramitacao_materia'), - url(r'^materia/(?P\d+)/tramitacao/(?P\d+)/edit$', - TramitacaoEditView.as_view(), name='tramitacao_edit'), url(r'^materia/(?P\d+)/relatoria/(?P\d+)/edit$', RelatoriaEditView.as_view(), name='relatoria_edit'), url(r'^materia/proposicao$', diff --git a/materia/views.py b/materia/views.py index 68f4566a6..4b05609a9 100644 --- a/materia/views.py +++ b/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 diff --git a/templates/materia/subnav.yaml b/templates/materia/subnav.yaml index 8dece889a..901757993 100644 --- a/templates/materia/subnav.yaml +++ b/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 diff --git a/templates/materia/tramitacao.html b/templates/materia/tramitacao.html deleted file mode 100644 index 33ed398bd..000000000 --- a/templates/materia/tramitacao.html +++ /dev/null @@ -1,33 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %} {% endblock %} -{% block detail_content %} -
- Matéria Legislativa - {% include "materia/resumo_detail_materia.html" %} - -
- Tramitações - - - - - - - - - - {% for t in tramitacoes %} - - - - - - - {% endfor %} -
Data AçãoOrigemDestinoStatus
{{t.data_tramitacao|date:'d/m/Y'}}{{t.unidade_tramitacao_local}}{{t.unidade_tramitacao_destino}}{{t.status.descricao}}
-
- {% crispy form %} -
-{% endblock %} diff --git a/templates/materia/tramitacao_edit.html b/templates/materia/tramitacao_edit.html deleted file mode 100644 index 05ddec8c2..000000000 --- a/templates/materia/tramitacao_edit.html +++ /dev/null @@ -1,7 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %} {% endblock %} -{% block detail_content %} - {% crispy form %} -{% endblock %}