Repository: interlegis/sapl

Issue:
Erro ao usar a opção "Ajustar Ordenação".
Ao selecionar a opção "Ajustar Ordenação" depois de alteradas as matérias para a ordem desejada, o software reordena em outra ordem desconhecida.<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
Ajustadas as posições das matérias para a sessão plenária, ao usar a opção "Ajustar Ordenação" a posição dessas matérias permanecem no ajuste anteriormente aplicado ocorrendo alterações apenas na existência de número de ordem repetidos ou fora da ordem crescente.<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->

## Comportamento Atual
Alteradas as matérias para a posição desejada, ao clicar na opção "Ajustar Ordenação" essas matérias tomam outra ordem que não consegui identificar. <!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1.
2.
3.
4.

## Contexto
Esse problema gera retrabalho e a necessidade de ajuste manual das posições das matérias.<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na repordução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py
--- a/sapl/sessao/urls.py
+++ b/sapl/sessao/urls.py
@@ -28,6 +28,8 @@
                                remove_parlamentar_composicao,
                                reordernar_materias_expediente,
                                reordernar_materias_ordem,
+                               renumerar_materias_ordem,
+                               renumerar_materias_expediente,
                                sessao_legislativa_legislatura_ajax,
                                VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente,
                                VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView)
@@ -75,6 +77,10 @@
         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/',
         include(TipoSessaoCrud.get_urls())),
     url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -93,6 +93,25 @@ def reordernar_materias_ordem(request, pk):
     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):
     logger = logging.getLogger(__name__)


Test patch: