From 881be425ff7b2f8a3b3e79d8ebf49da0274d44c4 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Fri, 2 Oct 2015 11:47:06 -0300 Subject: [PATCH] Validation forms in sessao --- sessao/views.py | 85 +++++++++++++++++---- templates/sessao/edit_explicacao.html | 12 +++ templates/sessao/edit_orador.html | 12 +++ templates/sessao/explicacao.html | 12 +++ templates/sessao/materia_ordemdia.html | 13 ++++ templates/sessao/materia_ordemdia_edit.html | 13 ++++ templates/sessao/orador_expediente.html | 12 +++ 7 files changed, 145 insertions(+), 14 deletions(-) diff --git a/sessao/views.py b/sessao/views.py index e1be1aecb..ddb7245e8 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -334,14 +334,14 @@ class ListExpedienteOrdemDiaView(sessao_crud.CrudDetailView): class MateriaOrdemDiaForm(forms.Form): - data_sessao = forms.CharField(required=True) - 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) - observacao = forms.CharField(required=False) + data_sessao = forms.CharField(required=True, label='Data da Sessão') + numero_ordem = forms.IntegerField(required=True, label='Número Ordem') + tipo_votacao = forms.IntegerField(required=True, label='Tipo Votação') + tipo_sessao = forms.IntegerField(required=True, label='Tipo da Sessão') + ano_materia = forms.IntegerField(required=True, label='Ano Matéria') + numero_materia = forms.IntegerField(required=True, label='Número Matéria') + tipo_materia = forms.IntegerField(required=True, label='Tipo Matéria') + observacao = forms.CharField(required=False, label='Ementa') class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): @@ -477,9 +477,40 @@ class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): ordemdia.save() return self.form_valid(form) else: - context.update( - {'error_message': "Não foi possível salvar formulário!"}) - return self.form_invalid(form) + context = self.get_context_data(object=self.object) + + pk = kwargs['pk'] + oid = kwargs['oid'] + ordem = OrdemDia.objects.get( + sessao_plenaria_id=pk, + materia_id=oid) + + materia = MateriaLegislativa.objects.get( + id=ordem.materia_id) + + data_ordem = ordem.data_ordem + tipo_votacao = ExpedienteMateria.TIPO_VOTACAO_CHOICES + tipo_sessao = TipoSessaoPlenaria.objects.all() + tipo_materia = TipoMateriaLegislativa.objects.all() + + context.update({'data_sessao': data_ordem, + 'tipo_sessao': tipo_sessao, + 'tipo_sessao_selected': self.object.tipo, + 'tipo_materia': tipo_materia, + 'tipo_materia_selected': materia.tipo, + 'tipo_votacao': tipo_votacao, + 'tipo_votacao_selected': ordem.tipo_votacao, + 'ano_materia': materia.ano, + 'numero_ordem': ordem.numero_ordem, + 'numero_materia': materia.numero, + 'ordem_id': oid, + 'oid': '', + 'observacao': sub( + ' ', ' ', + strip_tags(ordem.observacao)), + 'error_message': '', }) + context.update({'form': form}) + return self.render_to_response(context) elif 'delete-ordemdia' in request.POST: ordemdia.delete() return self.form_valid(form) @@ -639,7 +670,9 @@ class EditExpedienteOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): class OradorForm(forms.Form): - numero_ordem = forms.IntegerField(required=True) + numero_ordem = forms.IntegerField( + required=True, + label='Ordem de pronunciamento') parlamentar = forms.CharField(required=False, max_length=20) url_discurso = forms.CharField(required=False, max_length=100) @@ -699,7 +732,18 @@ class OradorExpedienteEdit(FormMixin, sessao_crud.CrudDetailView): return self.form_valid(form) else: - return self.form_invalid(form) + context = self.get_context_data(object=self.object) + orador_id = kwargs['oid'] + + parlamentar = Parlamentar.objects.get(id=orador_id) + orador = OradorExpediente.objects.get( + sessao_plenaria=self.object, parlamentar=parlamentar) + + orador = {'parlamentar': parlamentar, + 'url_discurso': orador.url_discurso} + context.update({'orador': orador}) + context.update({'form': form}) + return self.render_to_response(context) def get(self, request, *args, **kwargs): self.object = self.get_object() @@ -1230,7 +1274,20 @@ class ExplicacaoEdit(FormMixin, sessao_crud.CrudDetailView): return self.form_valid(form) else: - return self.form_invalid(form) + context = self.get_context_data(object=self.object) + + current_url = self.request.get_full_path() + words = current_url.split('/') + + parlamentar = Parlamentar.objects.get(id=words[-1]) + orador = Orador.objects.get( + sessao_plenaria=self.object, parlamentar=parlamentar) + + explicacao = {'parlamentar': parlamentar, + 'url_discurso': orador.url_discurso} + context.update({'explicacao': explicacao}) + context.update({'form': form}) + return self.render_to_response(context) def get(self, request, *args, **kwargs): self.object = self.get_object() diff --git a/templates/sessao/edit_explicacao.html b/templates/sessao/edit_explicacao.html index 051ac375d..888b5710e 100644 --- a/templates/sessao/edit_explicacao.html +++ b/templates/sessao/edit_explicacao.html @@ -6,6 +6,18 @@
Editar Orador + {% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+ {% endif %}
{% csrf_token %} diff --git a/templates/sessao/edit_orador.html b/templates/sessao/edit_orador.html index b2b42ae83..69c09bdb0 100644 --- a/templates/sessao/edit_orador.html +++ b/templates/sessao/edit_orador.html @@ -6,6 +6,18 @@
Editar Orador + {% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+ {% endif %} {% csrf_token %} diff --git a/templates/sessao/explicacao.html b/templates/sessao/explicacao.html index 388da6764..d3a2a2a98 100644 --- a/templates/sessao/explicacao.html +++ b/templates/sessao/explicacao.html @@ -27,6 +27,18 @@
Adicionar Orador + {% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+ {% endif %} {% csrf_token %} diff --git a/templates/sessao/materia_ordemdia.html b/templates/sessao/materia_ordemdia.html index 7f42a1995..e4f357196 100644 --- a/templates/sessao/materia_ordemdia.html +++ b/templates/sessao/materia_ordemdia.html @@ -6,6 +6,19 @@ {{ error_message }} +{% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+{% endif %} + {% csrf_token %} diff --git a/templates/sessao/materia_ordemdia_edit.html b/templates/sessao/materia_ordemdia_edit.html index f150121ea..0c0ebcd5c 100644 --- a/templates/sessao/materia_ordemdia_edit.html +++ b/templates/sessao/materia_ordemdia_edit.html @@ -6,6 +6,19 @@ {{ error_message }} +{% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+{% endif %} + {% csrf_token %} diff --git a/templates/sessao/orador_expediente.html b/templates/sessao/orador_expediente.html index e604809f9..79a2cb165 100644 --- a/templates/sessao/orador_expediente.html +++ b/templates/sessao/orador_expediente.html @@ -27,6 +27,18 @@
Adicionar Orador + {% if form.errors %} +
+

Os seguintes erros foram encontrados:

+
    + {% for field in form %} + {% if field.errors %} +
  • O campo {{field.label}} é obrigatório!
  • + {% endif %} + {% endfor %} +
+
+ {% endif %} {% csrf_token %}