From 16dd13871d1adcbb35070188d8255564e7c24660 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 4 Aug 2015 17:15:59 -0300 Subject: [PATCH] Add page for presenca in sessao --- sessao/urls.py | 9 +++-- sessao/views.py | 39 +++++++++++++++++++-- templates/sessao/presenca.html | 38 ++++++++++++++++++++ templates/sessao/sessaoplenaria_detail.html | 1 + 4 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 templates/sessao/presenca.html diff --git a/sessao/urls.py b/sessao/urls.py index ba319c263..180d2b0dc 100644 --- a/sessao/urls.py +++ b/sessao/urls.py @@ -1,18 +1,21 @@ from django.conf.urls import include, url -from sessao.views import (ExpedienteView, sessao_crud, tipo_expediente_crud, - tipo_resultado_votacao_crud, tipo_sessao_crud) +from sessao.views import (ExpedienteView, PresencaView, sessao_crud, + tipo_expediente_crud, tipo_resultado_votacao_crud, + tipo_sessao_crud) urlpatterns_sessao = sessao_crud.urlpatterns + [ url(r'^(?P\d+)/expediente$', ExpedienteView.as_view(), name='expediente'), + url(r'^(?P\d+)/presenca$', + PresencaView.as_view(), name='presenca'), + ] sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace urlpatterns = [ url(r'^sessao/', include(urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace)), - url(r'^sistema/sessao-plenaria/tipo/', include(tipo_sessao_crud.urls)), url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/', include(tipo_resultado_votacao_crud.urls)), diff --git a/sessao/views.py b/sessao/views.py index a18bb4832..b887e5d51 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -2,11 +2,12 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from django.views.generic.edit import FormMixin +from parlamentares.models import Parlamentar from sapl.crud import build_crud from .models import (ExpedienteMateria, ExpedienteSessao, OrdemDia, - RegistroVotacao, SessaoPlenaria, TipoExpediente, - TipoResultadoVotacao, TipoSessaoPlenaria) + RegistroVotacao, SessaoPlenaria, SessaoPlenariaPresenca, + TipoExpediente, TipoResultadoVotacao, TipoSessaoPlenaria) tipo_sessao_crud = build_crud( TipoSessaoPlenaria, 'tipo_sessao_plenaria', [ @@ -119,3 +120,37 @@ class ExpedienteView(FormMixin, sessao_crud.CrudDetailView): def get_title_and_fieldnames(self): for i, tipo in enumerate(TipoExpediente.objects.all()): yield tipo.nome, expediente_form_field(i) + + +class PresencaForm(forms.Form): + presenca = forms.BooleanField(required=False, initial=False) + parlamentar = forms.CharField(required=False, max_length=20) + + +class PresencaView(FormMixin, sessao_crud.CrudDetailView): + template_name = 'sessao/presenca.html' + form_class = PresencaForm + paginate_by = 10 + + def post(self, request, *args, **kwargs): + self.object = self.get_object() + form = self.get_form() + if form.is_valid(): + for parlamentar in Parlamentar.objects.all(): + if parlamentar.ativo and form.data["presenca"] == "on": + lista_presenca = SessaoPlenariaPresenca() + lista_presenca.sessao_plen = self.object + lista_presenca.parlamentar = parlamentar + lista_presenca.save() + return self.form_valid(form) + else: + return self.form_invalid(form) + + def get_success_url(self): + return self.detail_url + + def get_parlamentares(self): + self.object = self.get_object() + for parlamentar in Parlamentar.objects.all(): + if parlamentar.ativo: + yield parlamentar diff --git a/templates/sessao/presenca.html b/templates/sessao/presenca.html new file mode 100644 index 000000000..f838f4e19 --- /dev/null +++ b/templates/sessao/presenca.html @@ -0,0 +1,38 @@ +{% extends "sessao/sessaoplenaria_detail.html" %} +{% load i18n %} + +{% block detail_content %} +
+ {% csrf_token %} + +
    +
  • Presença
  • +
  • Parlamentar
  • +
+ +
    +
  • Marcar/Desmarcar Todos
  • +
+ + {% for fieldname in view.get_parlamentares %} +
    +
  • +
  • +
+ {% endfor %} + +
+ +
+{% endblock detail_content %} + +{% block foot_js %} + +{% endblock %} diff --git a/templates/sessao/sessaoplenaria_detail.html b/templates/sessao/sessaoplenaria_detail.html index e14589865..e6a004d21 100644 --- a/templates/sessao/sessaoplenaria_detail.html +++ b/templates/sessao/sessaoplenaria_detail.html @@ -5,5 +5,6 @@ {% endblock sections_nav %}