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, 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,
@ -89,15 +86,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/',

78
sapl/sessao/views.py

@ -1,7 +1,9 @@
import logging import logging
from re import sub, search
import ast import ast
from collections import OrderedDict
from re import sub, search
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
@ -84,59 +86,27 @@ class TipoListaDiscursoCrud(CrudAux):
return context return context
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', TIPOS_ORDENACAO = {
'materia__numero' "1": ("materia__tipo__sequencia_regimental", "materia__ano", "materia__numero"),
) "2": ("materia__ano", "materia__numero"),
"3": ("-materia__ano", "materia__numero"),
for exp_num, e in enumerate(expedientes, 1): "4": ("materia__autores", "materia__ano", "materia__numero")
e.numero_ordem = exp_num }
e.save() TIPOS_URLS_SUCESSO = {
"expediente": "sapl.sessao:expedientemateria_list",
return HttpResponseRedirect( "ordemdia": "sapl.sessao:ordemdia_list"
reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk})) }
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): for numero, materia in enumerate(materias, 1):
ordens = OrdemDia.objects.filter( materia.numero_ordem = numero
sessao_plenaria_id=pk materia.save()
).order_by( return HttpResponseRedirect(reverse(TIPOS_URLS_SUCESSO[tipo], kwargs={'pk': pk}))
'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 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