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/3141/head
Vinícius Cantuária 5 years ago
committed by GitHub
parent
commit
e361b555af
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      sapl/sessao/urls.py
  2. 70
      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

@ -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<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/',

70
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):

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