Repository: interlegis/sapl

Issue:
Automatizar numeração de Oradores das Explicações Pessoais
## Comportamento Esperado
Que o sistema insira automaticamente o número de ordem dos Oradores das Explicações Pessoais.

## Comportamento Atual
A numeração é manual.

## Passos para Reproduzir (para bugs)
https://sapl.agudo.rs.leg.br/sessao/2821/orador/create

## Contexto
Adição de orador nas Explicações Pessoais.

## Imagens do Ocorrido
![image](https://user-images.githubusercontent.com/19169882/84931041-9a6c3b00-b0a8-11ea-9aa0-762b0f1ffaec.png)

## Seu Ambiente
Versão usada (Release): 3.1.161-RC2
Nome e versão do navegador: Versão 81.0.4044.138 (Versão oficial)
Nome e versão do Sistema Operacional (desktop ou mobile): Ubuntu 16.04 64 bits


Discussion:

Resolving patch:
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -706,6 +706,8 @@ def get_context_data(self, **kwargs):
     class CreateView(MasterDetailCrud.CreateView):
 
         form_class = OradorForm
+        template_name = 'sessao/oradores_create.html'
+
 
         def get_initial(self):
             return {'id_sessao': self.kwargs['pk']}
@@ -718,6 +720,8 @@ def get_context_data(self, **kwargs):
             if tipo_sessao.nome == "Solene":
                 context.update(
                     {'subnav_template_name': 'sessao/subnav-solene.yaml'})
+            ultimo_orador = Orador.objects.filter(sessao_plenaria=kwargs['root_pk']).order_by("-numero_ordem").first()
+            context["ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
             return context
 
         def get_success_url(self):
@@ -775,6 +779,7 @@ class OradorExpedienteCrud(OradorCrud):
     class CreateView(MasterDetailCrud.CreateView):
 
         form_class = OradorExpedienteForm
+        template_name = 'sessao/oradores_create.html'
 
         def get_initial(self):
             return {'id_sessao': self.kwargs['pk']}
@@ -787,6 +792,8 @@ def get_context_data(self, **kwargs):
             if tipo_sessao.nome == "Solene":
                 context.update(
                     {'subnav_template_name': 'sessao/subnav-solene.yaml'})
+            ultimo_orador = OradorExpediente.objects.filter(sessao_plenaria=kwargs['root_pk']).order_by("-numero_ordem").first()
+            context["ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
             return context
 
         def get_success_url(self):
@@ -850,9 +857,9 @@ def get_context_data(self, **kwargs):
 
 class OradorOrdemDiaCrud(OradorCrud):
     model = OradorOrdemDia
-
     class CreateView(MasterDetailCrud.CreateView):
         form_class = OradorOrdemDiaForm
+        template_name = 'sessao/oradores_create.html'
 
         def get_initial(self):
             return {'id_sessao': self.kwargs['pk']}
@@ -861,6 +868,12 @@ def get_success_url(self):
             return reverse('sapl.sessao:oradorordemdia_list',
                            kwargs={'pk': self.kwargs['pk']})
 
+        def get_context_data(self, **kwargs):
+            context = super().get_context_data(**kwargs)
+            ultimo_orador = OradorOrdemDia.objects.filter(sessao_plenaria=kwargs['root_pk']).order_by("-numero_ordem").first()
+            context["ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
+            return context
+
     class UpdateView(MasterDetailCrud.UpdateView):
         form_class = OradorOrdemDiaForm
 


Test patch: