Browse Source

Adiciona opçãoes para reordenação (#3132)

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
pull/3367/head
Vinícius Cantuária 5 years ago
committed by João Rodrigues
parent
commit
b3279caec2
  1. 17
      sapl/sessao/urls.py
  2. 78
      sapl/sessao/views.py
  3. 16
      sapl/templates/sessao/expedientemateria_list.html
  4. 17
      sapl/templates/sessao/ordemdia_list.html

17
sapl/sessao/urls.py

@ -26,10 +26,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,
@ -89,15 +86,9 @@ urlpatterns = [
url(r'^sessao/(?P<pk>\d+)/(?P<spk>\d+)/abrir-votacao$',
abrir_votacao,
name="abrir_votacao"),
url(r'^sessao/(?P<pk>\d+)/reordenar-expediente$',
reordernar_materias_expediente,
name="reordenar_expediente"),
url(r'^sessao/(?P<pk>\d+)/reordenar-ordem$', reordernar_materias_ordem,
name="reordenar_ordem"),
url(r'^sessao/(?P<pk>\d+)/renumerar-ordem$', renumerar_materias_ordem,
name="renumerar_ordem"),
url(r'^sessao/(?P<pk>\d+)/renumerar-materias-expediente$', renumerar_materias_expediente,
name="renumerar_materias_expediente"),
url(r'^sessao/(?P<pk>\d+)/reordena/(?P<tipo>[\w\-]+)/(?P<ordenacao>\d+)/$', reordena_materias, name="reordena_materias"),
url(r'^sistema/sessao-plenaria/tipo/',
include(TipoSessaoCrud.get_urls())),
url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',

78
sapl/sessao/views.py

@ -1,7 +1,9 @@
import logging
from re import sub, search
import ast
from collections import OrderedDict
from re import sub, search
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin
@ -84,59 +86,27 @@ class TipoListaDiscursoCrud(CrudAux):
return context
def reordernar_materias_expediente(request, pk):
expedientes = ExpedienteMateria.objects.filter(
sessao_plenaria_id=pk
).order_by(
'materia__tipo__sequencia_regimental',
'materia__ano',
'materia__numero'
)
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}))
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()
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}))
def reordena_materias(request, pk, tipo, ordenacao):
TIPOS_MATERIAS = {
"expediente": ExpedienteMateria,
"ordemdia": OrdemDia
}
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")
}
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)
for numero, materia in enumerate(materias, 1):
materia.numero_ordem = numero
materia.save()
return HttpResponseRedirect(reverse(TIPOS_URLS_SUCESSO[tipo], kwargs={'pk': pk}))
def verifica_presenca(request, model, spk, is_leitura=False):

16
sapl/templates/sessao/expedientemateria_list.html

@ -6,15 +6,21 @@
{% block more_buttons %}
{% if perms|get_add_perm:view %}
<a href="{% url 'sapl.sessao:reordenar_expediente' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Reordenar pela precedência {% endblocktrans %}
</a>
<a href="{% url 'sapl.sessao:renumerar_materias_expediente' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Renumerar Expediente {% endblocktrans %}
</a>
<a href="{% url 'sapl.sessao:adicionar_varias_materias_expediente' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %}
</a>
<a>
<a role="button" href="#" class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{% blocktrans with verbose_name=view.verbose_name %} Reordenar {% endblocktrans %}
</a>
<div class="dropdown-menu">
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'expediente' 1 %}">Por Tipo Sequencia Regimental, Ano e Número crescentes</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'expediente' 2 %}">Por Ano e Número crescentes</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'expediente' 3 %}">Por Ano decrescente e Número crescente</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'expediente' 4 %}">Por Autor, Ano e Número crescentes</a>
</div>
</a>
{% endif %}
{% endblock more_buttons %}

17
sapl/templates/sessao/ordemdia_list.html

@ -6,15 +6,20 @@
{% block more_buttons %}
{% if perms|get_add_perm:view %}
<a href="{% url 'sapl.sessao:reordenar_ordem' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Reordenar pela precedência {% endblocktrans %}
</a>
<a href="{% url 'sapl.sessao:renumerar_ordem' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Renumerar Ordem {% endblocktrans %}
</a>
<a href="{% url 'sapl.sessao:adicionar_varias_materias_ordem_dia' root_pk %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %}
</a>
<a>
<a role="button" href="#" class="btn btn-outline-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{% blocktrans with verbose_name=view.verbose_name %} Reordenar {% endblocktrans %}
</a>
<div class="dropdown-menu">
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'ordemdia' 1 %}">Por Tipo Sequencia Regimental, Ano e Número crescentes</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'ordemdia' 2 %}">Por Ano e Número crescentes</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'ordemdia' 3 %}">Por Ano decrescente e Número crescente</a>
<a class="dropdown-item btn-outline-primary" href="{% url 'sapl.sessao:reordena_materias' root_pk 'ordemdia' 4 %}">Por Autor, Ano e Número crescentes</a>
</div>
</a>
{% endif %}
{% endblock more_buttons %}

Loading…
Cancel
Save