diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
index 53b4f7cfa..bd42e4788 100755
--- a/sapl/sessao/views.py
+++ b/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
@@ -49,7 +48,7 @@ from .models import (Bancada, CargoBancada, CargoMesa,
PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,
SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente,
TipoResultadoVotacao, TipoSessaoPlenaria, VotoParlamentar, TipoRetiradaPauta,
- RetiradaPauta, TipoJustificativa, JustificativaAusencia, OradorOrdemDia,
+ RetiradaPauta, TipoJustificativa, JustificativaAusencia, OradorOrdemDia,
ORDENACAO_RESUMO, RegistroLeitura)
@@ -196,6 +195,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)):
@@ -206,8 +207,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):
@@ -241,12 +249,13 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
turno = t[1]
break
- title_materia = '''%s
+ title_materia = """%s
Processo: %s
Autor: %s
Protocolo: %s
Turno: %s
- ''' % (url_materia,
+ """ % (obj.materia.id,
+ url_materia,
row[1][0],
numeracao if numeracao else '',
autor if autor else '',
@@ -263,9 +272,9 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
materia=obj.materia).exists()
exist_leitura = obj.registroleitura_set.filter(
materia=obj.materia).exists()
-
+
if (obj.tipo_votacao != 4 and not exist_resultado and not exist_retirada) or\
- (obj.tipo_votacao == 4 and not exist_leitura):
+ (obj.tipo_votacao == 4 and not exist_leitura):
if obj.votacao_aberta:
url = ''
if is_expediente:
@@ -320,21 +329,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 = "" % context['page']
+
if has_permission:
if obj.tipo_votacao != LEITURA:
btn_registrar = '''
''' % (
- url)
+ url, page_number)
else:
btn_registrar = '''
''' % (
- url)
+ url, page_number)
resultado = btn_registrar
else:
@@ -343,14 +359,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 == LEITURA:
btn_abrir = '''
@@ -447,10 +470,12 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
'oid': obj.pk,
'mid': obj.materia_id})
- resultado = ('%s
%s' %
- (url,
- resultado_descricao,
- resultado_observacao))
+ resultado = (
+ '%s
%s' % (
+ url,
+ context.get('page', 1),
+ resultado_descricao,
+ resultado_observacao))
else:
if obj.tipo_votacao == NOMINAL:
@@ -507,12 +532,13 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
def get_presencas_generic(model, sessao, legislatura):
- presentes = [p.parlamentar for p in model.objects.filter(sessao_plenaria=sessao)]
+ presentes = [p.parlamentar for p in model.objects.filter(
+ sessao_plenaria=sessao)]
parlamentares_mandato = Mandato.objects.filter(
- legislatura=legislatura,
- data_inicio_mandato__lte=sessao.data_inicio,
- data_fim_mandato__gte=sessao.data_inicio
+ legislatura=legislatura,
+ data_inicio_mandato__lte=sessao.data_inicio,
+ data_fim_mandato__gte=sessao.data_inicio
).distinct().order_by(
'parlamentar__nome_parlamentar')
@@ -527,14 +553,14 @@ class TipoExpedienteCrud(CrudAux):
model = TipoExpediente
class DeleteView(CrudAux.DeleteView):
-
+
def delete(self, *args, **kwargs):
self.object = self.get_object()
-
- # Se todas as referências a este tipo forem de conteúdo vazio,
+
+ # Se todas as referências a este tipo forem de conteúdo vazio,
# significa que pode ser apagado
if self.object.expedientesessao_set.filter(conteudo='').count() == \
- self.object.expedientesessao_set.all().count():
+ self.object.expedientesessao_set.all().count():
self.object.expedientesessao_set.all().delete()
return CrudAux.DeleteView.delete(self, *args, **kwargs)
@@ -586,6 +612,11 @@ class MateriaOrdemDiaCrud(MasterDetailCrud):
ordering = ['numero_ordem', 'materia', 'resultado']
def get_context_data(self, **kwargs):
+ if self.get_queryset().count() > 500:
+ self.paginate_by = 50
+ 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)
@@ -625,7 +656,17 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
ordering = ['numero_ordem', 'materia', 'resultado']
def get_context_data(self, **kwargs):
+
+ if self.get_queryset().count() > 500:
+ self.paginate_by = 50
+ 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)
@@ -678,7 +719,8 @@ class OradorCrud(MasterDetailCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
class CreateView(MasterDetailCrud.CreateView):
@@ -694,14 +736,14 @@ class OradorCrud(MasterDetailCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
def get_success_url(self):
return reverse('sapl.sessao:orador_list',
kwargs={'pk': self.kwargs['pk']})
-
class DetailView(MasterDetailCrud.DetailView):
def get_context_data(self, **kwargs):
@@ -710,10 +752,10 @@ class OradorCrud(MasterDetailCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
-
class UpdateView(MasterDetailCrud.UpdateView):
form_class = OradorForm
@@ -730,10 +772,10 @@ class OradorCrud(MasterDetailCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
-
class DeleteView(MasterDetailCrud.DeleteView):
def get_context_data(self, **kwargs):
@@ -742,7 +784,8 @@ class OradorCrud(MasterDetailCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
@@ -756,16 +799,15 @@ 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']
sessao = SessaoPlenaria.objects.get(id=pk)
tipo_sessao = sessao.tipo
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
-
def get_success_url(self):
return reverse('sapl.sessao:oradorexpediente_list',
@@ -784,10 +826,10 @@ class OradorExpedienteCrud(OradorCrud):
sessao = SessaoPlenaria.objects.get(id=pk)
tipo_sessao = sessao.tipo
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
-
class ListView(MasterDetailCrud.ListView):
ordering = ['numero_ordem']
@@ -797,7 +839,8 @@ class OradorExpedienteCrud(OradorCrud):
sessao = SessaoPlenaria.objects.get(id=pk)
tipo_sessao = sessao.tipo
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
class DetailView(MasterDetailCrud.DetailView):
@@ -808,9 +851,10 @@ class OradorExpedienteCrud(OradorCrud):
sessao = SessaoPlenaria.objects.get(id=pk)
tipo_sessao = sessao.tipo
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
-
+
class DeleteView(MasterDetailCrud.DeleteView):
def get_context_data(self, **kwargs):
@@ -819,9 +863,11 @@ class OradorExpedienteCrud(OradorCrud):
sessao = SessaoPlenaria.objects.get(id=sessao_pk)
tipo_sessao = sessao.tipo
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
+
class OradorOrdemDiaCrud(OradorCrud):
model = OradorOrdemDia
@@ -946,7 +992,8 @@ class SessaoCrud(Crud):
sessao = context['object']
tipo_sessao = sessao.tipo
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
def get_initial(self):
@@ -998,7 +1045,8 @@ class SessaoCrud(Crud):
sessao = context['object']
tipo_sessao = sessao.tipo
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
class DetailView(Crud.DetailView):
@@ -1011,13 +1059,13 @@ class SessaoCrud(Crud):
return 'SessaoSolene'
return 'SessaoPlenaria'
-
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
sessao = context['object']
tipo_sessao = sessao.tipo
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
@@ -1056,7 +1104,8 @@ class PresencaView(FormMixin, PresencaMixin, DetailView):
sessao = context['object']
tipo_sessao = sessao.tipo
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
@method_decorator(permission_required(
@@ -1156,7 +1205,8 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView):
tipo_sessao = sessao.tipo
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
@@ -1383,9 +1433,10 @@ class MesaView(FormMixin, DetailView):
sessao = context['object']
tipo_sessao = sessao.tipo
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
-
+
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sapl.sessao:mesa', kwargs={'pk': pk})
@@ -1600,10 +1651,11 @@ def get_identificacao_basica(sessao_plenaria):
'abertura': abertura, 'hora_inicio': sessao_plenaria.hora_inicio},
_('Encerramento: %(encerramento)s %(hora_fim)s') % {
'encerramento': encerramento, 'hora_fim': sessao_plenaria.hora_fim},
- ],
+ ],
'sessaoplenaria': sessao_plenaria}
if sessao_plenaria.tipo.nome == "Solene" and tema_solene:
- context.update({'tema_solene': 'Tema da Sessão Solene: %s' % tema_solene})
+ context.update(
+ {'tema_solene': 'Tema da Sessão Solene: %s' % tema_solene})
return context
@@ -1768,7 +1820,8 @@ def get_assinaturas(sessao_plenaria):
elif config_assinatura_ata == 'P' and presidente_dia and presidente_dia[0]:
context.update(
{'texto_assinatura': 'Assinatura do Presidente da Sessão'})
- assinatura_presidente = [{'parlamentar': presidente_dia[0], 'cargo': "Presidente"}]
+ assinatura_presidente = [
+ {'parlamentar': presidente_dia[0], 'cargo': "Presidente"}]
context.update({'assinatura_mesa': assinatura_presidente})
return context
@@ -2063,7 +2116,8 @@ class ResumoView(DetailView):
sessao = context['object']
tipo_sessao = sessao.tipo
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
def get(self, request, *args, **kwargs):
@@ -2091,7 +2145,8 @@ class ExpedienteView(FormMixin, DetailView):
sessao = context['object']
tipo_sessao = sessao.tipo
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
@method_decorator(permission_required('sessao.add_expedientesessao'))
@@ -2145,8 +2200,8 @@ class ExpedienteView(FormMixin, DetailView):
expedientes_salvos = [e.tipo.id for e in expedientes_sessao]
- tipos_null = TipoExpediente.objects.all().exclude(id__in=expedientes_salvos).order_by('ordenacao', 'nome')
-
+ tipos_null = TipoExpediente.objects.all().exclude(
+ id__in=expedientes_salvos).order_by('ordenacao', 'nome')
expedientes = []
for e, t in zip(expedientes_sessao, tipos):
@@ -2182,7 +2237,8 @@ class OcorrenciaSessaoView(FormMixin, DetailView):
sessao = context['object']
tipo_sessao = sessao.tipo
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
def delete(self):
@@ -2299,9 +2355,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):
@@ -2367,7 +2427,7 @@ class VotacaoView(SessaoPermissionMixin):
ordem_id = kwargs['oid']
ordem = OrdemDia.objects.get(id=ordem_id)
-
+
presentes_id = [
presente.parlamentar.id for presente in PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -2447,9 +2507,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 + "#id{}".format(self.kwargs['mid'])
def fechar_votacao_materia(materia):
@@ -2566,6 +2630,10 @@ class VotacaoNominalAbstract(SessaoPermissionMixin):
form = self.get_form()
username = request.user.username
+ page = ''
+ if 'page' in self.request.GET:
+ page = '?page={}'.format(self.request.GET['page'])
+
if self.ordem:
ordem_id = kwargs['oid']
try:
@@ -2597,12 +2665,19 @@ class VotacaoNominalAbstract(SessaoPermissionMixin):
if 'cancelar-votacao' in request.POST:
fechar_votacao_materia(materia_votacao)
if self.ordem:
- return HttpResponseRedirect(reverse(
- 'sapl.sessao:ordemdia_list', kwargs={'pk': kwargs['pk']}))
+ return HttpResponseRedirect(
+ reverse(
+ 'sapl.sessao:ordemdia_list',
+ kwargs={'pk': kwargs['pk']}
+ ) + page + "#id{}".format(self.kwargs['mid'])
+ )
else:
- return HttpResponseRedirect(reverse(
- 'sapl.sessao:expedientemateria_list',
- kwargs={'pk': kwargs['pk']}))
+ return HttpResponseRedirect(
+ reverse(
+ 'sapl.sessao:expedientemateria_list',
+ kwargs={'pk': kwargs['pk']}
+ ) + page + "#id{}".format(self.kwargs['mid'])
+ )
else:
if form.cleaned_data['resultado_votacao'] == None:
form.add_error(None, 'Não é possível finalizar a votação sem '
@@ -2749,14 +2824,22 @@ 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})
+ return reverse(
+ 'sapl.sessao:ordemdia_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
elif self.expediente:
- return reverse('sapl.sessao:expedientemateria_list',
- kwargs={'pk': pk})
+ return reverse(
+ 'sapl.sessao:expedientemateria_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
class VotacaoNominalEditAbstract(SessaoPermissionMixin):
@@ -2874,14 +2957,22 @@ 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})
+ return reverse(
+ 'sapl.sessao:ordemdia_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
elif self.expediente:
- return reverse('sapl.sessao:expedientemateria_list',
- kwargs={'pk': pk})
+ return reverse(
+ 'sapl.sessao:expedientemateria_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
class VotacaoNominalView(VotacaoNominalAbstract):
@@ -2983,9 +3074,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):
@@ -3052,7 +3147,7 @@ class VotacaoExpedienteView(SessaoPermissionMixin):
expediente_id = kwargs['oid']
expediente = ExpedienteMateria.objects.get(id=expediente_id)
-
+
presentes_id = [
presente.parlamentar.id for presente in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -3170,9 +3265,15 @@ 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})
+ return reverse(
+ 'sapl.sessao:expedientemateria_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
class VotacaoExpedienteEditView(SessaoPermissionMixin):
@@ -3185,9 +3286,15 @@ 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})
+ return reverse(
+ 'sapl.sessao:expedientemateria_list',
+ kwargs={'pk': pk}
+ ) + page + "#id{}".format(self.kwargs['mid'])
def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all():
@@ -3288,8 +3395,8 @@ class PautaSessaoDetailView(DetailView):
model = SessaoPlenaria
def get(self, request, *args, **kwargs):
- from sapl.relatorios.views import relatorio_pauta_sessao_weasy # Evitar import ciclico
-
+ from sapl.relatorios.views import relatorio_pauta_sessao_weasy # Evitar import ciclico
+
self.object = self.get_object()
context = self.get_context_data(object=self.object)
@@ -3306,7 +3413,8 @@ class PautaSessaoDetailView(DetailView):
context.update({'basica': [
_('Tipo de Sessão: %(tipo)s') % {'tipo': self.object.tipo},
- _('Abertura: %(abertura)s - %(hora_inicio)s') % {'abertura': abertura, 'hora_inicio':hora_inicio},
+ _('Abertura: %(abertura)s - %(hora_inicio)s') % {
+ 'abertura': abertura, 'hora_inicio': hora_inicio},
_('Encerramento: %(encerramento)s - %(hora_fim)s') % {
'encerramento': encerramento, 'hora_fim': hora_fim},
]})
@@ -3415,10 +3523,11 @@ class PautaSessaoDetailView(DetailView):
context.update({'materias_ordem': materias_ordem})
context.update({'subnav_template_name': 'sessao/pauta_subnav.yaml'})
- is_pdf = True if request.build_absolute_uri().split('/')[-1] == 'pdf' else False
+ is_pdf = True if request.build_absolute_uri().split(
+ '/')[-1] == 'pdf' else False
if is_pdf:
- return relatorio_pauta_sessao_weasy(self,request,context)
+ return relatorio_pauta_sessao_weasy(self, request, context)
else:
return self.render_to_response(context)
@@ -3820,6 +3929,7 @@ class VotacaoEmBlocoExpediente(PermissionRequiredForAppCrudMixin, ListView):
template_name = 'sessao/votacao/votacao_bloco.html'
app_label = AppConfig.label
expediente = True
+ paginate_by = 100
def get_queryset(self):
return ExpedienteMateria.objects.filter(sessao_plenaria_id=self.kwargs['pk'],
@@ -3845,6 +3955,7 @@ class VotacaoEmBlocoExpediente(PermissionRequiredForAppCrudMixin, ListView):
class VotacaoEmBlocoOrdemDia(VotacaoEmBlocoExpediente):
expediente = False
+ paginate_by = 100
def get_queryset(self):
return OrdemDia.objects.filter(sessao_plenaria_id=self.kwargs['pk'],
@@ -3881,7 +3992,7 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter(
id__in=request.POST.getlist('marcadas_1'))
-
+
presentes_id = [
presente.parlamentar.id for presente in PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -3900,7 +4011,7 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
else:
expedientes = ExpedienteMateria.objects.filter(
id__in=request.POST.getlist('marcadas_1'))
-
+
presentes_id = [
presente.parlamentar.id for presente in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -4040,7 +4151,7 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if self.request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter(
id__in=self.request.POST.getlist('ordens'))
-
+
presentes_id = [
presente.parlamentar.id for presente in PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -4054,12 +4165,12 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
qtde_ativos = len(presenca_ativos)
context.update({'ordens': ordens,
- 'total_presentes': qtde_presentes,
+ 'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
elif self.request.POST['origem'] == 'expediente':
expedientes = ExpedienteMateria.objects.filter(
id__in=self.request.POST.getlist('expedientes'))
-
+
presentes_id = [
presente.parlamentar.id for presente in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
@@ -4388,7 +4499,6 @@ class RetiradaPautaCrud(MasterDetailCrud):
pass
-
class AbstractLeituraView(FormView):
template_name = 'sessao/votacao/leitura_form.html'
success_url = '/'
@@ -4396,7 +4506,8 @@ class AbstractLeituraView(FormView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
- context['materia'] = MateriaLegislativa.objects.get(id=self.kwargs['mid'])
+ context['materia'] = MateriaLegislativa.objects.get(
+ id=self.kwargs['mid'])
return context
def get_initial(self):
@@ -4406,11 +4517,13 @@ class AbstractLeituraView(FormView):
initial['materia__ementa'] = materia.ementa
if self.expediente:
expediente = ExpedienteMateria.objects.get(id=self.kwargs['oid'])
- instance = RegistroLeitura.objects.filter(materia=materia, expediente=expediente)
+ instance = RegistroLeitura.objects.filter(
+ materia=materia, expediente=expediente)
initial['expediente'] = expediente
else:
ordem = OrdemDia.objects.get(id=self.kwargs['oid'])
- instance = RegistroLeitura.objects.filter(materia=materia, ordem=ordem)
+ instance = RegistroLeitura.objects.filter(
+ materia=materia, ordem=ordem)
initial['ordem'] = ordem
initial['instance'] = instance
initial['user'] = self.request.user
@@ -4430,21 +4543,30 @@ class AbstractLeituraView(FormView):
return super().form_valid(form)
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.expediente:
url = reverse('sapl.sessao:expedientemateria_list',
- kwargs={'pk': pk})
+ kwargs={'pk': pk}) + page
else:
url = reverse('sapl.sessao:ordemdia_list',
- kwargs={'pk': pk})
+ kwargs={'pk': pk}) + page
return url
def cancel_url(self):
+ page = ''
+ if 'page' in self.request.GET:
+ page = '?page={}'.format(self.request.GET['page'])
url = reverse('sapl.sessao:retirar_leitura',
- kwargs={
- 'pk': self.kwargs['pk'],
- 'iso': 1 if not self.expediente else 0,
- 'oid': self.kwargs['oid']})
+ kwargs={
+ 'pk': self.kwargs['pk'],
+ 'iso': 1 if not self.expediente else 0,
+ 'oid': self.kwargs['oid'],
+ },
+ ) + page
return url
@@ -4459,19 +4581,24 @@ class OrdemDiaLeituraView(AbstractLeituraView):
@permission_required('sessao.change_expedientemateria',
'sessao.change_ordemdia')
def retirar_leitura(request, pk, iso, oid):
+ page = ''
+ if 'page' in request.GET:
+ page = '?page={}'.format(request.GET['page'])
+
is_ordem = bool(int(iso))
if not is_ordem:
ordem_expediente = ExpedienteMateria.objects.get(id=oid)
- RegistroLeitura.objects.filter(materia=ordem_expediente.materia, expediente=ordem_expediente).delete()
+ RegistroLeitura.objects.filter(
+ materia=ordem_expediente.materia, expediente=ordem_expediente).delete()
succ_url = reverse('sapl.sessao:expedientemateria_list',
- kwargs={'pk': pk})
+ kwargs={'pk': pk}) + page
else:
ordem_expediente = OrdemDia.objects.get(id=oid)
- RegistroLeitura.objects.filter(materia=ordem_expediente.materia, ordem=ordem_expediente).delete()
+ RegistroLeitura.objects.filter(
+ materia=ordem_expediente.materia, ordem=ordem_expediente).delete()
succ_url = reverse('sapl.sessao:ordemdia_list',
- kwargs={'pk': pk})
+ kwargs={'pk': pk}) + page
ordem_expediente.resultado = ""
ordem_expediente.votacao_aberta = False
ordem_expediente.save()
-
- return HttpResponseRedirect(succ_url)
\ No newline at end of file
+ return HttpResponseRedirect(succ_url)
diff --git a/sapl/templates/sessao/votacao/votacao_bloco.html b/sapl/templates/sessao/votacao/votacao_bloco.html
index ac9b10ce9..bc9fc7ce8 100644
--- a/sapl/templates/sessao/votacao/votacao_bloco.html
+++ b/sapl/templates/sessao/votacao/votacao_bloco.html
@@ -76,10 +76,12 @@
Ementa: {{ o.materia.ementa|safe }}
-
+
+
{% endif %}
{% endfor %}
+ {% include 'paginacao.html' %}