Browse Source

Ajusta o SAPL à loucura de Sete Lagoas-MG

pull/3086/head
Edward Ribeiro 6 years ago
parent
commit
05a1665f33
  1. 107
      sapl/sessao/views.py

107
sapl/sessao/views.py

@ -8,7 +8,6 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db.models import Max, Q from django.db.models import Max, Q
from django.forms.utils import ErrorList
from django.http import JsonResponse from django.http import JsonResponse
from django.http.response import Http404, HttpResponseRedirect from django.http.response import Http404, HttpResponseRedirect
from django.utils import timezone from django.utils import timezone
@ -17,7 +16,7 @@ from django.utils.decorators import method_decorator
from django.utils.html import strip_tags from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.views.generic import FormView, ListView, TemplateView, CreateView, UpdateView from django.views.generic import (FormView, ListView, TemplateView)
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
@ -190,6 +189,8 @@ def abrir_votacao(request, pk, spk):
if not model: if not model:
raise Http404() raise Http404()
query_params = "?"
if (verifica_presenca(request, presenca_model, spk) and if (verifica_presenca(request, presenca_model, spk) and
verifica_votacoes_abertas(request) and verifica_votacoes_abertas(request) and
verifica_sessao_iniciada(request, spk)): verifica_sessao_iniciada(request, spk)):
@ -200,8 +201,15 @@ def abrir_votacao(request, pk, spk):
sessao.save() sessao.save()
materia_votacao.save() materia_votacao.save()
return HttpResponseRedirect( if 'page' in request.GET:
reverse('sapl.sessao:' + redirect_url, kwargs={'pk': spk})) query_params += 'page={}&'.format(request.GET['page'])
query_params += "#id{}".format(materia_votacao.materia.id)
success_url = reverse('sapl.sessao:' + redirect_url, kwargs={'pk': spk})
success_url += query_params
return HttpResponseRedirect(success_url)
def customize_link_materia(context, pk, has_permission, is_expediente): def customize_link_materia(context, pk, has_permission, is_expediente):
@ -235,12 +243,13 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
turno = t[1] turno = t[1]
break break
title_materia = '''<a href=%s>%s</a> </br> title_materia = """<a id=id%s href=%s>%s</a> </br>
<b>Processo:</b> %s </br> <b>Processo:</b> %s </br>
<b>Autor:</b> %s </br> <b>Autor:</b> %s </br>
<b>Protocolo:</b> %s </br> <b>Protocolo:</b> %s </br>
<b>Turno:</b> %s </br> <b>Turno:</b> %s </br>
''' % (url_materia, """ % (obj.materia.id,
url_materia,
row[1][0], row[1][0],
numeracao if numeracao else '', numeracao if numeracao else '',
autor if autor else '', autor if autor else '',
@ -314,21 +323,28 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
'oid': obj.pk, 'oid': obj.pk,
'mid': obj.materia_id}) 'mid': obj.materia_id})
page_number = ""
if 'page' in context:
#url += "?page={}".format(context['page'])
page_number = "<input type='hidden' name='page' value='%s' />" % context['page']
if has_permission: if has_permission:
if obj.tipo_votacao != 4: if obj.tipo_votacao != 4:
btn_registrar = ''' btn_registrar = '''
<form action="%s"> <form action="%s">
<input type="submit" class="btn btn-primary" <input type="submit" class="btn btn-primary"
value="Registrar Votação" /> value="Registrar Votação" />
%s
</form>''' % ( </form>''' % (
url) url, page_number)
else: else:
btn_registrar = ''' btn_registrar = '''
<form action="%s"> <form action="%s">
<input type="submit" class="btn btn-primary" <input type="submit" class="btn btn-primary"
value="Registrar Leitura" /> value="Registrar Leitura" />
%s
</form>''' % ( </form>''' % (
url) url, page_number)
resultado = btn_registrar resultado = btn_registrar
else: else:
@ -337,14 +353,21 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
if is_expediente: if is_expediente:
url = reverse('sapl.sessao:abrir_votacao', kwargs={ url = reverse('sapl.sessao:abrir_votacao', kwargs={
'pk': obj.pk, 'pk': obj.pk,
'spk': obj.sessao_plenaria_id 'spk': obj.sessao_plenaria_id,
}) + '?tipo_materia=expediente' }) + '?tipo_materia=expediente'
if 'page' in context:
url += '&page=' + context['page']
else: else:
url = reverse('sapl.sessao:abrir_votacao', kwargs={ url = reverse('sapl.sessao:abrir_votacao', kwargs={
'pk': obj.pk, 'pk': obj.pk,
'spk': obj.sessao_plenaria_id 'spk': obj.sessao_plenaria_id
}) + '?tipo_materia=ordem' }) + '?tipo_materia=ordem'
if 'page' in context:
url += '&page=' + context['page']
if has_permission: if has_permission:
if not obj.tipo_votacao == 4: if not obj.tipo_votacao == 4:
btn_abrir = ''' btn_abrir = '''
@ -580,6 +603,11 @@ class MateriaOrdemDiaCrud(MasterDetailCrud):
ordering = ['numero_ordem', 'materia', 'resultado'] ordering = ['numero_ordem', 'materia', 'resultado']
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
if self.get_queryset().count() > 500:
self.paginate_by = 10
else:
self.paginate_by = None
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
has_permition = self.request.user.has_module_perms(AppConfig.label) has_permition = self.request.user.has_module_perms(AppConfig.label)
return customize_link_materia(context, self.kwargs['pk'], has_permition, False) return customize_link_materia(context, self.kwargs['pk'], has_permition, False)
@ -619,7 +647,17 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
ordering = ['numero_ordem', 'materia', 'resultado'] ordering = ['numero_ordem', 'materia', 'resultado']
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
if self.get_queryset().count() > 500:
self.paginate_by = 10
else:
self.paginate_by = None
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
if self.request.GET.get('page'):
context['page'] = self.request.GET.get('page')
has_permition = self.request.user.has_module_perms(AppConfig.label) has_permition = self.request.user.has_module_perms(AppConfig.label)
return customize_link_materia(context, self.kwargs['pk'], has_permition, True) return customize_link_materia(context, self.kwargs['pk'], has_permition, True)
@ -750,7 +788,6 @@ class OradorExpedienteCrud(OradorCrud):
def get_initial(self): def get_initial(self):
return {'id_sessao': self.kwargs['pk']} return {'id_sessao': self.kwargs['pk']}
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
pk = context['root_pk'] pk = context['root_pk']
@ -759,7 +796,6 @@ class OradorExpedienteCrud(OradorCrud):
if tipo_sessao.nome == "Solene": if tipo_sessao.nome == "Solene":
context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'})
return context return context
def get_success_url(self): def get_success_url(self):
return reverse('sapl.sessao:oradorexpediente_list', return reverse('sapl.sessao:oradorexpediente_list',
@ -781,7 +817,6 @@ class OradorExpedienteCrud(OradorCrud):
context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'})
return context return context
class ListView(MasterDetailCrud.ListView): class ListView(MasterDetailCrud.ListView):
ordering = ['numero_ordem'] ordering = ['numero_ordem']
@ -816,6 +851,7 @@ class OradorExpedienteCrud(OradorCrud):
context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'})
return context return context
class OradorOrdemDiaCrud(OradorCrud): class OradorOrdemDiaCrud(OradorCrud):
model = OradorOrdemDia model = OradorOrdemDia
@ -2293,9 +2329,13 @@ class VotacaoEditView(SessaoPermissionMixin):
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
class VotacaoView(SessaoPermissionMixin): class VotacaoView(SessaoPermissionMixin):
@ -2441,9 +2481,13 @@ class VotacaoView(SessaoPermissionMixin):
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
def fechar_votacao_materia(materia): def fechar_votacao_materia(materia):
@ -2743,14 +2787,18 @@ class VotacaoNominalAbstract(SessaoPermissionMixin):
yield [parlamentar, voto.voto] yield [parlamentar, voto.voto]
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
if self.ordem: if self.ordem:
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
elif self.expediente: elif self.expediente:
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
class VotacaoNominalEditAbstract(SessaoPermissionMixin): class VotacaoNominalEditAbstract(SessaoPermissionMixin):
@ -2868,14 +2916,18 @@ class VotacaoNominalEditAbstract(SessaoPermissionMixin):
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
if self.ordem: if self.ordem:
return reverse('sapl.sessao:ordemdia_list', return reverse('sapl.sessao:ordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
elif self.expediente: elif self.expediente:
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
class VotacaoNominalView(VotacaoNominalAbstract): class VotacaoNominalView(VotacaoNominalAbstract):
@ -2977,9 +3029,13 @@ class VotacaoNominalExpedienteDetailView(DetailView):
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
class VotacaoSimbolicaTransparenciaDetailView(TemplateView): class VotacaoSimbolicaTransparenciaDetailView(TemplateView):
@ -3164,9 +3220,13 @@ class VotacaoExpedienteView(SessaoPermissionMixin):
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
class VotacaoExpedienteEditView(SessaoPermissionMixin): class VotacaoExpedienteEditView(SessaoPermissionMixin):
@ -3179,9 +3239,13 @@ class VotacaoExpedienteEditView(SessaoPermissionMixin):
form_class = VotacaoEditForm form_class = VotacaoEditForm
def get_success_url(self): def get_success_url(self):
page = ''
if 'page' in self.request.GET:
page = '?page={}'.format(self.request.GET['page'])
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sapl.sessao:expedientemateria_list', return reverse('sapl.sessao:expedientemateria_list',
kwargs={'pk': pk}) kwargs={'pk': pk}) + page
def get_tipos_votacao(self): def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all(): for tipo in TipoResultadoVotacao.objects.all():
@ -4382,7 +4446,6 @@ class RetiradaPautaCrud(MasterDetailCrud):
pass pass
class AbstractLeituraView(FormView): class AbstractLeituraView(FormView):
template_name = 'sessao/votacao/leitura_form.html' template_name = 'sessao/votacao/leitura_form.html'
success_url = '/' success_url = '/'

Loading…
Cancel
Save