diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index b6a337937..3b0428d70 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 @@ -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 = '''%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 '', @@ -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 = "" % context['page'] + if has_permission: if obj.tipo_votacao != 4: btn_registrar = '''
+ %s
''' % ( - url) + url, page_number) else: btn_registrar = '''
+ %s
''' % ( - 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'] @@ -759,7 +796,6 @@ class OradorExpedienteCrud(OradorCrud): if tipo_sessao.nome == "Solene": context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) return context - def get_success_url(self): return reverse('sapl.sessao:oradorexpediente_list', @@ -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 = '/'