From e013f94b73265c5ea4125683f352e21c69fef2fb Mon Sep 17 00:00:00 2001 From: VictorFabreF Date: Fri, 16 Mar 2018 12:08:26 -0300 Subject: [PATCH] Fix #1757 (#1764) --- sapl/sessao/views.py | 365 ++++++++++------------- sapl/templates/sessao/ordemdia_list.html | 4 + 2 files changed, 166 insertions(+), 203 deletions(-) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 0e715e514..ff5cf9e29 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -154,9 +154,10 @@ def abrir_votacao(request, pk, spk): reverse('sapl.sessao:' + redirect_url, kwargs={'pk': spk})) -def customize_link_materia(context, pk): +def customize_link_materia(context, pk, has_permission, is_expediente): for i, row in enumerate(context['rows']): materia = context['object_list'][i].materia + obj = context['object_list'][i] url_materia = reverse('sapl.materia:materialegislativa_detail', kwargs={'pk': materia.id}) numeracao = materia.numeracao_set.first() @@ -199,6 +200,162 @@ def customize_link_materia(context, pk): # Na linha abaixo, o segundo argumento é None para não colocar # url em toda a string de title_materia context['rows'][i][1] = (title_materia, None) + + exist_resultado = obj.registrovotacao_set.filter( + materia=obj.materia).exists() + if not exist_resultado: + if obj.votacao_aberta: + url = '' + if is_expediente: + if obj.tipo_votacao == 1: + url = reverse('sapl.sessao:votacaosimbolicaexp', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 2: + url = reverse('sapl.sessao:votacaonominalexp', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 3: + url = reverse('sapl.sessao:votacaosecretaexp', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + else: + if obj.tipo_votacao == 1: + url = reverse('sapl.sessao:votacaosimbolica', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 2: + url = reverse('sapl.sessao:votacaonominal', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 3: + url = reverse('sapl.sessao:votacaosecreta', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + if has_permission: + btn_registrar = ''' +
+ +
''' % ( + url) + + resultado = btn_registrar + else: + resultado = '''Não há resultado''' + else: + if is_expediente: + url = reverse('sapl.sessao:abrir_votacao', kwargs={ + 'pk': obj.pk, + 'spk': obj.sessao_plenaria_id + }) + '?tipo_materia=expediente' + else: + url = reverse('sapl.sessao:abrir_votacao', kwargs={ + 'pk': obj.pk, + 'spk': obj.sessao_plenaria_id + }) + '?tipo_materia=ordem' + + if has_permission: + btn_abrir = ''' + Matéria não votada
+ Abrir Votação''' % (url) + resultado = btn_abrir + else: + resultado = '''Não há resultado''' + else: + resultado = obj.registrovotacao_set.get( + materia_id=obj.materia_id) + resultado_descricao = resultado.tipo_resultado_votacao.nome + resultado_observacao = resultado.observacao + + if has_permission: + url = '' + if is_expediente: + if obj.tipo_votacao == 1: + url = reverse( + 'sapl.sessao:votacaosimbolicaexpedit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 2: + url = reverse('sapl.sessao:votacaonominalexpedit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 3: + url = reverse('sapl.sessao:votacaosecretaexpedit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + else: + if obj.tipo_votacao == 1: + url = reverse('sapl.sessao:votacaosimbolicaedit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 2: + url = reverse('sapl.sessao:votacaonominaledit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + elif obj.tipo_votacao == 3: + url = reverse('sapl.sessao:votacaosecretaedit', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + + resultado = ('%s
%s
' % + (url, + resultado_descricao, + resultado_observacao)) + else: + if obj.tipo_votacao == 2: + if is_expediente: + url = reverse( + 'sapl.sessao:votacao_nominal_transparencia', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + \ + '?&materia=expediente' + else: + url = reverse( + 'sapl.sessao:votacao_nominal_transparencia', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.pk, + 'mid': obj.materia_id}) + \ + '?&materia=ordem' + + resultado = ('%s
%s
' % + (url, + resultado_descricao, + resultado_observacao)) + else: + resultado = ('%s
%s' % + (resultado_descricao, + resultado_observacao)) + context['rows'][i][3] = (resultado, None) return context @@ -261,110 +418,10 @@ class MateriaOrdemDiaCrud(MasterDetailCrud): class ListView(MasterDetailCrud.ListView): paginate_by = None ordering = ['numero_ordem', 'materia', 'resultado'] - def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - return customize_link_materia(context, self.kwargs['pk']) - - def get_rows(self, object_list): - for obj in object_list: - exist_resultado = obj.registrovotacao_set.filter( - materia=obj.materia).exists() - if not exist_resultado: - if obj.votacao_aberta: - url = '' - if obj.tipo_votacao == 1: - url = reverse('sapl.sessao:votacaosimbolica', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: - url = reverse('sapl.sessao:votacaonominal', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: - url = reverse('sapl.sessao:votacaosecreta', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - if self.request.user.has_module_perms(AppConfig.label): - btn_registrar = ''' - Registrar Votação''' % ( - url) - obj.resultado = btn_registrar - else: - obj.resultado = '''Não há resultado''' - else: - url = reverse('sapl.sessao:abrir_votacao', kwargs={ - 'pk': obj.pk, - 'spk': obj.sessao_plenaria_id - }) + '?tipo_materia=ordem' - - if self.request.user.has_module_perms(AppConfig.label): - btn_abrir = ''' - Matéria não votada
- Abrir Votação''' % (url) - obj.resultado = btn_abrir - else: - obj.resultado = '''Não há resultado''' - else: - resultado = obj.registrovotacao_set.get( - materia_id=obj.materia_id) - resultado_descricao = resultado.tipo_resultado_votacao.nome - resultado_observacao = resultado.observacao - - if self.request.user.has_module_perms(AppConfig.label): - url = '' - if obj.tipo_votacao == 1: - url = reverse('sapl.sessao:votacaosimbolicaedit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: - url = reverse('sapl.sessao:votacaonominaledit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: - url = reverse('sapl.sessao:votacaosecretaedit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - obj.resultado = ('%s
%s
' % - (url, - resultado_descricao, - resultado_observacao)) - else: - if obj.tipo_votacao == 2: - url = reverse( - 'sapl.sessao:votacao_nominal_transparencia', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) +\ - '?&materia=ordem' - obj.resultado = ('%s
%s
' % - (url, - resultado_descricao, - resultado_observacao)) - else: - obj.resultado = ('%s
%s' % - (resultado_descricao, - resultado_observacao)) - - return [self._as_row(obj) for obj in object_list] - + has_permition = self.request.user.has_module_perms(AppConfig.label) + return customize_link_materia(context, self.kwargs['pk'], has_permition, False) def recuperar_materia(request): tipo = TipoMateriaLegislativa.objects.get(pk=request.GET['tipo_materia']) @@ -399,106 +456,8 @@ class ExpedienteMateriaCrud(MasterDetailCrud): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - - return customize_link_materia(context, self.kwargs['pk']) - - def get_rows(self, object_list): - for obj in object_list: - exist_resultado = obj.registrovotacao_set.filter( - materia=obj.materia).exists() - - if not exist_resultado: - if obj.votacao_aberta: - url = '' - if obj.tipo_votacao == 1: - url = reverse('sapl.sessao:votacaosimbolicaexp', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: - url = reverse('sapl.sessao:votacaonominalexp', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: - url = reverse('sapl.sessao:votacaosecretaexp', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - - if self.request.user.has_module_perms(AppConfig.label): - btn_registrar = ''' -
- -
- ''' % (url) - obj.resultado = btn_registrar - else: - url = reverse('sapl.sessao:abrir_votacao', kwargs={ - 'pk': obj.pk, - 'spk': obj.sessao_plenaria_id - }) + '?tipo_materia=expediente' - btn_abrir = '''Matéria não votada
''' - - if self.request.user.has_module_perms(AppConfig.label): - btn_abrir += ''' - Abrir Votação''' % (url) - - obj.resultado = btn_abrir - else: - url = '' - resultado = obj.registrovotacao_set.get( - materia_id=obj.materia_id) - resultado_descricao = resultado.tipo_resultado_votacao.nome - resultado_observacao = resultado.observacao - if self.request.user.has_module_perms(AppConfig.label): - if obj.tipo_votacao == 1: - url = reverse( - 'sapl.sessao:votacaosimbolicaexpedit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: - url = reverse('sapl.sessao:votacaonominalexpedit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: - url = reverse('sapl.sessao:votacaosecretaexpedit', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) - obj.resultado = ('%s
%s
' % - (url, - resultado_descricao, - resultado_observacao)) - else: - if obj.tipo_votacao == 2: - url = reverse( - 'sapl.sessao:votacao_nominal_transparencia', - kwargs={ - 'pk': obj.sessao_plenaria_id, - 'oid': obj.pk, - 'mid': obj.materia_id}) +\ - '?&materia=expediente' - obj.resultado = ('%s
%s
' % - (url, - resultado_descricao, - resultado_observacao)) - else: - obj.resultado = ('%s
%s' % - (resultado_descricao, - resultado_observacao)) - return [self._as_row(obj) for obj in object_list] + has_permition = self.request.user.has_module_perms(AppConfig.label) + return customize_link_materia(context, self.kwargs['pk'], has_permition, True) class CreateView(MasterDetailCrud.CreateView): form_class = ExpedienteMateriaForm diff --git a/sapl/templates/sessao/ordemdia_list.html b/sapl/templates/sessao/ordemdia_list.html index e5b3d757e..3ae16e2e8 100644 --- a/sapl/templates/sessao/ordemdia_list.html +++ b/sapl/templates/sessao/ordemdia_list.html @@ -45,6 +45,10 @@ setTimeout(function(){ window.location.reload(true) }, 500); } }); + $(window).on('beforeunload', function () { + $('tbody').sortable('disable'); + $("input[type=submit], input[type=button]").prop("disabled", "disabled"); + }); {% endblock %}