From e361b555af4d9468cb3a740b778f949fa606b0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Cantu=C3=A1ria?= Date: Thu, 16 Apr 2020 11:35:09 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20op=C3=A7=C3=A3oes=20para=20reordena?= =?UTF-8?q?=C3=A7=C3=A3o=20(#3132)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adiona reordenações para matérias ordem do dia Adiciona correções solicitadas Remove parâmetro desnecessário de ordenações Corrige href de ordenações Remove multiplicação de matérias causada por múltiplos autorias Corrige forma de desmultiplicação de matérias causada por múltiplos autores Corrige ordenações de matérias --- sapl/sessao/urls.py | 17 ++--- sapl/sessao/views.py | 70 ++++++------------- .../sessao/expedientemateria_list.html | 16 +++-- sapl/templates/sessao/ordemdia_list.html | 17 +++-- 4 files changed, 48 insertions(+), 72 deletions(-) diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 3e5dd67d7..5eb8872e7 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -27,10 +27,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, mudar_ordem_materia_sessao, recuperar_materia, recuperar_numero_sessao_view, remove_parlamentar_composicao, - reordernar_materias_expediente, - reordernar_materias_ordem, - renumerar_materias_ordem, - renumerar_materias_expediente, + reordena_materias, sessao_legislativa_legislatura_ajax, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, @@ -82,15 +79,9 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/(?P\d+)/abrir-votacao$', abrir_votacao, name="abrir_votacao"), - url(r'^sessao/(?P\d+)/reordenar-expediente$', - reordernar_materias_expediente, - name="reordenar_expediente"), - url(r'^sessao/(?P\d+)/reordenar-ordem$', reordernar_materias_ordem, - name="reordenar_ordem"), - url(r'^sessao/(?P\d+)/renumerar-ordem$', renumerar_materias_ordem, - name="renumerar_ordem"), - url(r'^sessao/(?P\d+)/renumerar-materias-expediente$', renumerar_materias_expediente, - name="renumerar_materias_expediente"), + + url(r'^sessao/(?P\d+)/reordena/(?P[\w\-]+)/(?P\d+)/$', reordena_materias, name="reordena_materias"), + url(r'^sistema/sessao-plenaria/tipo/', include(TipoSessaoCrud.get_urls())), url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 3a6350ae9..d1f9f77cd 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1,5 +1,6 @@ import logging +from collections import OrderedDict from re import sub from django.contrib import messages @@ -66,59 +67,32 @@ SECRETA = 3 LEITURA = 4 -def reordernar_materias_expediente(request, pk): - expedientes = ExpedienteMateria.objects.filter( - sessao_plenaria_id=pk - ).order_by( - 'materia__tipo__sequencia_regimental', - 'materia__ano', - 'materia__numero' - ) +def reordena_materias(request, pk, tipo, ordenacao): + TIPOS_MATERIAS = { + "expediente": ExpedienteMateria, + "ordemdia": OrdemDia + } - for exp_num, e in enumerate(expedientes, 1): - e.numero_ordem = exp_num - e.save() + TIPOS_ORDENACAO = { + "1": ("materia__tipo__sequencia_regimental", "materia__ano", "materia__numero"), + "2": ("materia__ano", "materia__numero"), + "3": ("-materia__ano", "materia__numero"), + "4": ("materia__autores", "materia__ano", "materia__numero") + } - return HttpResponseRedirect( - reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk})) + TIPOS_URLS_SUCESSO = { + "expediente": "sapl.sessao:expedientemateria_list", + "ordemdia": "sapl.sessao:ordemdia_list" + } + materias = TIPOS_MATERIAS[tipo].objects.filter(sessao_plenaria_id=pk).order_by(*TIPOS_ORDENACAO[ordenacao]) + materias = OrderedDict.fromkeys(materias) -def reordernar_materias_ordem(request, pk): - ordens = OrdemDia.objects.filter( - sessao_plenaria_id=pk - ).order_by( - 'materia__tipo__sequencia_regimental', - 'materia__ano', - 'materia__numero' - ) - for ordem_num, o in enumerate(ordens, 1): - o.numero_ordem = ordem_num - o.save() + for numero, materia in enumerate(materias, 1): + materia.numero_ordem = numero + materia.save() - return HttpResponseRedirect( - reverse('sapl.sessao:ordemdia_list', kwargs={'pk': pk})) - - -def renumerar_materias_ordem(request, pk): - ordens = OrdemDia.objects.filter(sessao_plenaria_id=pk) - - for ordem_num, o in enumerate(ordens, 1): - o.numero_ordem = ordem_num - o.save() - - return HttpResponseRedirect( - reverse('sapl.sessao:ordemdia_list', kwargs={'pk': pk})) - - -def renumerar_materias_expediente(request, pk): - expedientes = ExpedienteMateria.objects.filter(sessao_plenaria_id=pk) - - for exp_num, e in enumerate(expedientes, 1): - e.numero_ordem = exp_num - e.save() - - return HttpResponseRedirect( - reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk})) + return HttpResponseRedirect(reverse(TIPOS_URLS_SUCESSO[tipo], kwargs={'pk': pk})) def verifica_presenca(request, model, spk, is_leitura=False): diff --git a/sapl/templates/sessao/expedientemateria_list.html b/sapl/templates/sessao/expedientemateria_list.html index e1bd0f781..b7d6870a9 100644 --- a/sapl/templates/sessao/expedientemateria_list.html +++ b/sapl/templates/sessao/expedientemateria_list.html @@ -6,15 +6,21 @@ {% block more_buttons %} {% if perms|get_add_perm:view %} - - {% blocktrans with verbose_name=view.verbose_name %} Reordenar pela precedência {% endblocktrans %} - - - {% blocktrans with verbose_name=view.verbose_name %} Renumerar Expediente {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %} + + + + {% endif %} {% endblock more_buttons %} diff --git a/sapl/templates/sessao/ordemdia_list.html b/sapl/templates/sessao/ordemdia_list.html index bc95cf1f1..cf5b1fed4 100644 --- a/sapl/templates/sessao/ordemdia_list.html +++ b/sapl/templates/sessao/ordemdia_list.html @@ -6,15 +6,20 @@ {% block more_buttons %} {% if perms|get_add_perm:view %} - - {% blocktrans with verbose_name=view.verbose_name %} Reordenar pela precedência {% endblocktrans %} - - - {% blocktrans with verbose_name=view.verbose_name %} Renumerar Ordem {% endblocktrans %} - {% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %} + + + + {% endif %} {% endblock more_buttons %}