Browse Source

Add page for presenca in sessao

pull/6/head
Eduardo Edson Batista Cordeiro Alves 10 years ago
parent
commit
16dd13871d
  1. 9
      sessao/urls.py
  2. 39
      sessao/views.py
  3. 38
      templates/sessao/presenca.html
  4. 1
      templates/sessao/sessaoplenaria_detail.html

9
sessao/urls.py

@ -1,18 +1,21 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from sessao.views import (ExpedienteView, sessao_crud, tipo_expediente_crud, from sessao.views import (ExpedienteView, PresencaView, sessao_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud) tipo_expediente_crud, tipo_resultado_votacao_crud,
tipo_sessao_crud)
urlpatterns_sessao = sessao_crud.urlpatterns + [ urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/expediente$', url(r'^(?P<pk>\d+)/expediente$',
ExpedienteView.as_view(), name='expediente'), ExpedienteView.as_view(), name='expediente'),
url(r'^(?P<pk>\d+)/presenca$',
PresencaView.as_view(), name='presenca'),
] ]
sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace
urlpatterns = [ urlpatterns = [
url(r'^sessao/', include(urlpatterns_sessao, url(r'^sessao/', include(urlpatterns_sessao,
sessao_crud.namespace, sessao_crud.namespace)), sessao_crud.namespace, sessao_crud.namespace)),
url(r'^sistema/sessao-plenaria/tipo/', include(tipo_sessao_crud.urls)), url(r'^sistema/sessao-plenaria/tipo/', include(tipo_sessao_crud.urls)),
url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/', url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',
include(tipo_resultado_votacao_crud.urls)), include(tipo_resultado_votacao_crud.urls)),

39
sessao/views.py

@ -2,11 +2,12 @@ from django import forms
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from parlamentares.models import Parlamentar
from sapl.crud import build_crud from sapl.crud import build_crud
from .models import (ExpedienteMateria, ExpedienteSessao, OrdemDia, from .models import (ExpedienteMateria, ExpedienteSessao, OrdemDia,
RegistroVotacao, SessaoPlenaria, TipoExpediente, RegistroVotacao, SessaoPlenaria, SessaoPlenariaPresenca,
TipoResultadoVotacao, TipoSessaoPlenaria) TipoExpediente, TipoResultadoVotacao, TipoSessaoPlenaria)
tipo_sessao_crud = build_crud( tipo_sessao_crud = build_crud(
TipoSessaoPlenaria, 'tipo_sessao_plenaria', [ TipoSessaoPlenaria, 'tipo_sessao_plenaria', [
@ -119,3 +120,37 @@ class ExpedienteView(FormMixin, sessao_crud.CrudDetailView):
def get_title_and_fieldnames(self): def get_title_and_fieldnames(self):
for i, tipo in enumerate(TipoExpediente.objects.all()): for i, tipo in enumerate(TipoExpediente.objects.all()):
yield tipo.nome, expediente_form_field(i) 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

38
templates/sessao/presenca.html

@ -0,0 +1,38 @@
{% extends "sessao/sessaoplenaria_detail.html" %}
{% load i18n %}
{% block detail_content %}
<form method="POST">
{% csrf_token %}
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li>Presença</li>
<li>Parlamentar</li>
</ul>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
<li><input type="checkbox" onClick="checkAll(this)" /> Marcar/Desmarcar Todos</li>
</ul>
{% for fieldname in view.get_parlamentares %}
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li><input type="checkbox" name="presenca"/></li>
<li><label for="parlamentar">{{ fieldname }}</label></li>
</ul>
{% endfor %}
<br />
<input type="submit" value="Salvar" />
</form>
{% endblock detail_content %}
{% block foot_js %}
<script language="JavaScript">
function checkAll(source) {
checkboxes = document.getElementsByName('presenca');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}
</script>
{% endblock %}

1
templates/sessao/sessaoplenaria_detail.html

@ -5,5 +5,6 @@
<dl class="sub-nav left"> <dl class="sub-nav left">
<dd><a href="{% url 'sessaoplenaria:detail' object.pk %}" class="button secondary">{% trans 'Início' %}</a></dd> <dd><a href="{% url 'sessaoplenaria:detail' object.pk %}" class="button secondary">{% trans 'Início' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:expediente' object.pk %}" class="button secondary">{% trans 'Expediente' %}</a></dd> <dd><a href="{% url 'sessaoplenaria:expediente' object.pk %}" class="button secondary">{% trans 'Expediente' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:presenca' object.pk %}" class="button secondary">{% trans 'Presença' %}</a></dd>
</dl> </dl>
{% endblock sections_nav %} {% endblock sections_nav %}

Loading…
Cancel
Save