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, mudar_ordem_materia_sessao, recuperar_materia,
recuperar_numero_sessao_view, recuperar_numero_sessao_view,
remove_parlamentar_composicao, remove_parlamentar_composicao,
reordernar_materias_expediente, reordena_materias,
reordernar_materias_ordem,
renumerar_materias_ordem,
renumerar_materias_expediente,
sessao_legislativa_legislatura_ajax, sessao_legislativa_legislatura_ajax,
VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente,
VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView,
@ -82,15 +79,9 @@ urlpatterns = [
url(r'^sessao/(?P<pk>\d+)/(?P<spk>\d+)/abrir-votacao$', url(r'^sessao/(?P<pk>\d+)/(?P<spk>\d+)/abrir-votacao$',
abrir_votacao, abrir_votacao,
name="abrir_votacao"), name="abrir_votacao"),
url(r'^sessao/(?P<pk>\d+)/reordenar-expediente$',
reordernar_materias_expediente, url(r'^sessao/(?P<pk>\d+)/reordena/(?P<tipo>[\w\-]+)/(?P<ordenacao>\d+)/$', reordena_materias, name="reordena_materias"),
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'^sistema/sessao-plenaria/tipo/', url(r'^sistema/sessao-plenaria/tipo/',
include(TipoSessaoCrud.get_urls())), include(TipoSessaoCrud.get_urls())),
url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/', url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',

70
sapl/sessao/views.py

@ -1,5 +1,6 @@
import logging import logging
from collections import OrderedDict
from re import sub from re import sub
from django.contrib import messages from django.contrib import messages
@ -66,59 +67,32 @@ SECRETA = 3
LEITURA = 4 LEITURA = 4
def reordernar_materias_expediente(request, pk): def reordena_materias(request, pk, tipo, ordenacao):
expedientes = ExpedienteMateria.objects.filter( TIPOS_MATERIAS = {
sessao_plenaria_id=pk "expediente": ExpedienteMateria,
).order_by( "ordemdia": OrdemDia
'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( TIPOS_ORDENACAO = {
reverse('sapl.sessao:ordemdia_list', kwargs={'pk': pk})) "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"
}
def renumerar_materias_expediente(request, pk): materias = TIPOS_MATERIAS[tipo].objects.filter(sessao_plenaria_id=pk).order_by(*TIPOS_ORDENACAO[ordenacao])
expedientes = ExpedienteMateria.objects.filter(sessao_plenaria_id=pk) materias = OrderedDict.fromkeys(materias)
for exp_num, e in enumerate(expedientes, 1): for numero, materia in enumerate(materias, 1):
e.numero_ordem = exp_num materia.numero_ordem = numero
e.save() materia.save()
return HttpResponseRedirect( return HttpResponseRedirect(reverse(TIPOS_URLS_SUCESSO[tipo], kwargs={'pk': pk}))
reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk}))
def verifica_presenca(request, model, spk, is_leitura=False): def verifica_presenca(request, model, spk, is_leitura=False):

16
sapl/templates/sessao/expedientemateria_list.html

@ -6,15 +6,21 @@
{% block more_buttons %} {% block more_buttons %}
{% if perms|get_add_perm:view %} {% 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>
<a href="{% url 'sapl.sessao:adicionar_varias_materias_expediente' root_pk %}" class="btn btn-outline-primary"> <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 %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %}
</a> </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 %} {% endif %}
{% endblock more_buttons %} {% endblock more_buttons %}

17
sapl/templates/sessao/ordemdia_list.html

@ -6,15 +6,20 @@
{% block more_buttons %} {% block more_buttons %}
{% if perms|get_add_perm:view %} {% 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"> <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 %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %}
</a> </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 %} {% endif %}
{% endblock more_buttons %} {% endblock more_buttons %}

Loading…
Cancel
Save