diff --git a/materia/forms.py b/materia/forms.py index f092234ef..7a2556d79 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -172,41 +172,31 @@ class TramitacaoForm(ModelForm): 'data_fim_prazo', 'texto'] - widgets = { - 'data_tramitacao': forms.DateInput(attrs={ - 'class': 'dateinput'}), - 'data_encaminhamento': forms.DateInput(attrs={ - 'class': 'dateinput'}), - 'data_fim_prazo': forms.DateInput(attrs={ - 'class': 'dateinput'}), - } - - def __init__(self, *args, **kwargs): + def __init__(self, excluir=False, *args, **kwargs): row1 = crispy_layout_mixin.to_row( - [('data_tramitacao', 6), - ('unidade_tramitacao_local', 6)]) + [('data_tramitacao', 6), ('unidade_tramitacao_local', 6)]) row2 = crispy_layout_mixin.to_row( - [('status', 5), - ('turno', 5), - ('urgente', 2)]) + [('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)]) + [('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() + form_actions(more=more) ) super(TramitacaoForm, self).__init__( *args, **kwargs) diff --git a/materia/views.py b/materia/views.py index 6e4f4d0d3..9207c9aa6 100644 --- a/materia/views.py +++ b/materia/views.py @@ -979,14 +979,15 @@ def do_envia_email_tramitacao(request, materia): return None -class TramitacaoView(FormView): +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 = TramitacaoForm + form = self.get_form() return self.render_to_response( {'object': materia, @@ -994,7 +995,7 @@ class TramitacaoView(FormView): 'tramitacoes': tramitacoes}) def post(self, request, *args, **kwargs): - form = TramitacaoForm(request.POST) + form = self.get_form() materia = MateriaLegislativa.objects.get(id=kwargs['pk']) tramitacoes_list = Tramitacao.objects.filter( materia_id=kwargs['pk']).order_by('-data_tramitacao') @@ -1019,7 +1020,6 @@ class TramitacaoView(FormView): 'tramitacoes': tramitacoes_list}) do_envia_email_tramitacao(request, materia) - return self.form_valid(form) else: return self.render_to_response({'form': form, @@ -1031,44 +1031,37 @@ class TramitacaoView(FormView): return reverse('tramitacao_materia', kwargs={'pk': pk}) -class TramitacaoEditView(FormView): +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 + form = TramitacaoForm(excluir=True, instance=tramitacao) return self.render_to_response( {'object': materia, 'form': form, - 'tramitacao': tramitacao, - 'turno': Tramitacao.TURNO_CHOICES, - 'status': StatusTramitacao.objects.all(), - 'unidade_tramitacao': UnidadeTramitacao.objects.all()}) + 'tramitacao': tramitacao}) def post(self, request, *args, **kwargs): materia = MateriaLegislativa.objects.get(id=kwargs['pk']) tramitacao = Tramitacao.objects.get(id=kwargs['id']) - form = TramitacaoForm(request.POST) + form = self.get_form() if form.is_valid(): if 'excluir' in request.POST: if tramitacao == Tramitacao.objects.filter( materia=materia).last(): tramitacao.delete() - return self.form_valid(form) 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, - 'turno': Tramitacao.TURNO_CHOICES, - 'status': StatusTramitacao.objects.all(), - 'unidade_tramitacao': UnidadeTramitacao.objects.all() - }) + 'tramitacao': tramitacao}) elif 'salvar' in request.POST: tramitacao.status = form.cleaned_data['status'] tramitacao.turno = form.cleaned_data['turno'] @@ -1081,15 +1074,12 @@ class TramitacaoEditView(FormView): tramitacao.texto = form.cleaned_data['texto'] tramitacao.save() - return self.form_valid(form) + return redirect(self.get_success_url()) else: return self.render_to_response( {'object': materia, 'form': form, - 'tramitacao': tramitacao, - 'turno': Tramitacao.TURNO_CHOICES, - 'status': StatusTramitacao.objects.all(), - 'unidade_tramitacao': UnidadeTramitacao.objects.all()}) + 'tramitacao': tramitacao}) def get_success_url(self): pk = self.kwargs['pk'] diff --git a/templates/materia/tramitacao_edit.html b/templates/materia/tramitacao_edit.html index 75b3f2738..338595dc0 100644 --- a/templates/materia/tramitacao_edit.html +++ b/templates/materia/tramitacao_edit.html @@ -3,83 +3,5 @@ {% load crispy_forms_tags %} {% block actions %} {% endblock %} {% block detail_content %} -
+ {% crispy form %} {% endblock %}