From 4a8bc80566e52800ab9e172b2a2be74aab2db90a Mon Sep 17 00:00:00 2001 From: Edward Ribeiro Date: Tue, 15 Sep 2015 20:30:36 -0300 Subject: [PATCH] Add form validation to Materia --- sessao/views.py | 32 +++++++++++++++++++++----- templates/sessao/materia_ordemdia.html | 3 +++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/sessao/views.py b/sessao/views.py index f07551894..960b2001e 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -1,6 +1,7 @@ from datetime import datetime from django import forms +from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from django.views.generic.edit import FormMixin from extra_views import InlineFormSetView @@ -221,35 +222,54 @@ class PresencaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): class MateriaOrdemDiaForm(forms.Form): numero_ordem = forms.IntegerField(required=True) + tipo_votacao = forms.IntegerField(required=True) + tipo_sessao = forms.IntegerField(required=True) + ano_materia = forms.IntegerField(required=True) + numero_materia = forms.IntegerField(required=True) + tipo_materia = forms.IntegerField(required=True) class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): template_name = 'sessao/materia_ordemdia.html' form_class = MateriaOrdemDiaForm + def get_success_url(self): + pk = self.kwargs['pk'] + return reverse('sessaoplenaria:materiaordemdia', kwargs={'pk': pk}) + def get(self, request, *args, **kwargs): self.object = self.get_object() context = self.get_context_data(object=self.object) - tipo_materia = TipoMateriaLegislativa.objects.all() - now = datetime.now() + tipo_materia = TipoMateriaLegislativa.objects.all() data_sessao = "%s/%s/%s" % (now.day, now.month, now.year) - tipo_sessao = TipoSessaoPlenaria.objects.all() - tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES - ano_materia = now.year context.update({'data_sessao': data_sessao, 'tipo_sessao': tipo_sessao, 'tipo_materia': tipo_materia, 'tipo_votacao': tipo_votacao, - 'ano_materia': ano_materia}) + 'ano_materia': ano_materia, + 'error_message': '', }) return self.render_to_response(context) + def post(self, request, *args, **kwargs): + + self.object = self.get_object() + context = self.get_context_data(object=self.object) + form = MateriaOrdemDiaForm(request.POST) + + if form.is_valid(): + return self.form_valid(form) + else: + context.update( + {'error_message': "Não foi possível salvar formulário!"}) + return self.form_invalid(form) + class OradorForm(forms.Form): numero_ordem = forms.IntegerField(required=True) diff --git a/templates/sessao/materia_ordemdia.html b/templates/sessao/materia_ordemdia.html index 3a61851b4..ffd31d419 100644 --- a/templates/sessao/materia_ordemdia.html +++ b/templates/sessao/materia_ordemdia.html @@ -2,6 +2,9 @@ {% load i18n %} {% block detail_content %} +
+ {{ error_message }} +
{% csrf_token %} Data da Sessão: