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

Loading…
Cancel
Save