diff --git a/sapl/painel/views.py b/sapl/painel/views.py index a4c9e2da3..bf0504bbd 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -355,7 +355,7 @@ def get_cronometro_status(request, name): def get_materia_aberta(pk): return OrdemDia.objects.filter( - sessao_plenaria_id=pk, votacao_aberta=True).last() + sessao_plenaria_id=pk).filter(Q(votacao_aberta=True) | Q(resultado='Matéria em Discussão')).last() def get_presentes(pk, response, materia): @@ -437,7 +437,7 @@ def get_presentes(pk, response, materia): def get_materia_expediente_aberta(pk): return ExpedienteMateria.objects.filter( - sessao_plenaria_id=pk, votacao_aberta=True).last() + sessao_plenaria_id=pk).filter(Q(votacao_aberta=True) | Q(resultado='Matéria em Discussão')).last() def response_nenhuma_materia(response): @@ -569,6 +569,7 @@ def get_dados_painel(request, pk): 'cronometro_consideracoes': get_cronometro_status(request, 'consideracoes'), 'status_painel': sessao.painel_aberto, 'brasao': brasao, + 'discutir': False, 'mostrar_voto': app_config.mostrar_voto } @@ -578,10 +579,14 @@ def get_dados_painel(request, pk): # Caso tenha alguma matéria com votação aberta, ela é mostrada no painel # com prioridade para Ordem do Dia. if ordem_dia: + if ordem_dia.resultado == 'Matéria em Discussão': + response.update({'discutir':True}) return JsonResponse(get_votos( get_presentes(pk, response, ordem_dia), ordem_dia, app_config.mostrar_voto)) elif expediente: + if expediente.resultado == 'Matéria em Discussão': + response.update({'discutir':True}) return JsonResponse(get_votos( get_presentes(pk, response, expediente), expediente, app_config.mostrar_voto)) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index f11efbc06..7f1f9d1a5 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -124,10 +124,10 @@ def verifica_presenca(request, model, spk, is_leitura=False): return True -def verifica_votacoes_abertas(request): +def verifica_votacoes_abertas(request, pk): votacoes_abertas = SessaoPlenaria.objects.filter( - Q(ordemdia__votacao_aberta=True) | - Q(expedientemateria__votacao_aberta=True)).distinct() + (Q(ordemdia__votacao_aberta=True) | Q(ordemdia__resultado='Matéria em Discussão') & ~Q(ordemdia__id=int(pk))) | + (Q(expedientemateria__votacao_aberta=True) | Q(expedientemateria__resultado='Matéria em Discussão') & ~Q(expedientemateria__id=int(pk)))).distinct() logger = logging.getLogger(__name__) @@ -199,9 +199,15 @@ def abrir_votacao(request, pk, spk): materia_votacao = model.objects.get(id=pk) is_leitura = materia_votacao.tipo_votacao == 4 if (verifica_presenca(request, presenca_model, spk, is_leitura) and - verifica_votacoes_abertas(request) and + verifica_votacoes_abertas(request, pk) and verifica_sessao_iniciada(request, spk, is_leitura)): - materia_votacao.votacao_aberta = True + if 'discutir' in request.GET: + materia_votacao.resultado = 'Matéria em Discussão' + else: + if materia_votacao.resultado == 'Matéria em Discussão': + materia_votacao.resultado = '' + if 'cancelar_discussao' not in request.GET: + materia_votacao.votacao_aberta = True sessao = SessaoPlenaria.objects.get(id=spk) sessao.painel_aberto = True sessao.save() @@ -348,7 +354,7 @@ def customize_link_materia(context, pk, has_permission, is_expediente): if obj.tipo_votacao != LEITURA: btn_registrar = '''
''' % ( @@ -356,7 +362,7 @@ def customize_link_materia(context, pk, has_permission, is_expediente): else: btn_registrar = ''' ''' % ( @@ -386,17 +392,31 @@ def customize_link_materia(context, pk, has_permission, is_expediente): if has_permission: if not obj.tipo_votacao == LEITURA: - btn_abrir = ''' - Matéria não votada