From e9e3770f989c106dee3b1706079489f309746214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Thu, 9 Apr 2020 01:44:41 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20informa=C3=A7=C3=B5es=20na=20tela=20?= =?UTF-8?q?de=20videoconfer=C3=AAncia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/sdr/urls.py | 13 +- sapl/sdr/views.py | 110 ++++++++++++- sapl/templates/sdr/deliberacaoremota.html | 189 +++++++++++++++++----- 3 files changed, 271 insertions(+), 41 deletions(-) diff --git a/sapl/sdr/urls.py b/sapl/sdr/urls.py index 0cc0caf5f..ce4820352 100644 --- a/sapl/sdr/urls.py +++ b/sapl/sdr/urls.py @@ -1,13 +1,20 @@ from .apps import AppConfig -from .views import ChatView, DeliberacaoRemotaCrud +from .views import (ChatView, + DeliberacaoRemotaCrud, + get_dados_deliberacao_remota) + from django.conf.urls import include, url app_name = AppConfig.name urlpatterns = [ + url(r'^sdr/', + include(DeliberacaoRemotaCrud.get_urls()), + name='deliberacaoremota'), url(r'^sdr/chat/(?P[0-9]+)$', ChatView.as_view(), name='chat-session'), - url(r'^sdr/', - include(DeliberacaoRemotaCrud.get_urls()), name='deliberacaoremota'), + url(r'^sdr/(?P\d+)/dados$', + get_dados_deliberacao_remota, + name='dados_deliberacao_remota'), ] diff --git a/sapl/sdr/views.py b/sapl/sdr/views.py index 74ec34f74..1a3f305ac 100644 --- a/sapl/sdr/views.py +++ b/sapl/sdr/views.py @@ -4,6 +4,7 @@ from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.contenttypes.models import ContentType from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist from django.core.urlresolvers import reverse, reverse_lazy +from django.http import JsonResponse from django.views.generic import TemplateView from django.utils import timezone @@ -13,7 +14,10 @@ from sapl.parlamentares.models import Parlamentar from sapl.rules import RP_LIST, RP_DETAIL from sapl.sdr.forms import DeliberacaoRemotaForm from sapl.sdr.models import DeliberacaoRemota, gen_session_id -from sapl.sessao.models import SessaoPlenaria +from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, + OradorOrdemDia, OrdemDia, PresencaOrdemDia, + RegistroLeitura, RegistroVotacao, + SessaoPlenaria, SessaoPlenariaPresenca) class DeliberacaoRemotaCrud(Crud): @@ -55,6 +59,110 @@ class DeliberacaoRemotaCrud(Crud): return context + +#@user_passes_test(check_permission) +def get_dados_deliberacao_remota(request, pk): + sessao = SessaoPlenaria.objects.get(id=pk) + + sessao_plenaria_presenca, oradores_expediente, materias_expediente = [], [], [] + ordemdia_presenca, oradores_ordemdia, materias_ordemdia = [], [], [] + + f_od = 1 if not ExpedienteMateria.objects.filter(sessao_plenaria=sessao, votacao_aberta=True).exists() else 0 + f_em = 1 if not OrdemDia.objects.filter(sessao_plenaria=sessao, votacao_aberta=True).exists() else 0 + + if f_em: + for presenca in SessaoPlenariaPresenca.objects.filter(sessao_plenaria=sessao): + sessao_plenaria_presenca.append(presenca.parlamentar.nome_parlamentar) + + for orador in OradorExpediente.objects.filter(sessao_plenaria=sessao).order_by("numero_ordem"): + oradores_expediente.append(str(orador.numero_ordem) + " - " + orador.parlamentar.nome_parlamentar) + + for expediente in ExpedienteMateria.objects.filter(sessao_plenaria=sessao): + if expediente.tipo_votacao == 4: + if RegistroLeitura.objects.filter(expediente=expediente).exists(): + materias_expediente.append( + ( + str(expediente.numero_ordem), expediente.materia.__str__(), + expediente.materia.ementa, "Matéria Lida" + ) + ) + else: + materias_expediente.append( + ( + str(expediente.numero_ordem), expediente.materia.__str__(), + expediente.materia.ementa, "Matéria Não Lida" + ) + ) + else: + if RegistroVotacao.objects.filter(expediente=expediente).exists(): + registro = RegistroVotacao.objects.get(expediente=expediente) + materias_expediente.append( + ( + str(expediente.numero_ordem), expediente.materia.__str__(), + expediente.materia.ementa, registro.tipo_resultado_votacao.nome + ) + ) + else: + materias_expediente.append( + ( + str(expediente.numero_ordem), expediente.materia.__str__(), + expediente.materia.ementa, "Matéria Não Votada" + ) + ) + + if f_od: + for presenca in PresencaOrdemDia.objects.filter(sessao_plenaria=sessao): + ordemdia_presenca.append(presenca.parlamentar.nome_parlamentar) + + for orador in OradorOrdemDia.objects.filter(sessao_plenaria=sessao).order_by("numero_ordem"): + oradores_ordemdia.append(str(orador.numero_ordem) + " - " + orador.parlamentar.nome_parlamentar) + + for ordemdia in OrdemDia.objects.filter(sessao_plenaria=sessao): + if ordemdia.tipo_votacao == 4: + if RegistroLeitura.objects.filter(ordem=ordemdia).exists(): + materias_ordemdia.append( + ( + str(ordemdia.numero_ordem), ordemdia.materia.__str__(), + ordemdia.materia.ementa, "Matéria Lida" + ) + ) + else: + materias_ordemdia.append( + ( + str(ordemdia.numero_ordem), ordemdia.materia.__str__(), + ordemdia.materia.ementa, "Matéria Não Lida" + ) + ) + else: + if RegistroVotacao.objects.filter(ordem=ordemdia).exists(): + registro = RegistroVotacao.objects.get(ordem=ordemdia) + materias_ordemdia.append( + ( + str(ordemdia.numero_ordem), ordemdia.materia.__str__(), + ordemdia.materia.ementa, registro.tipo_resultado_votacao.nome + ) + ) + else: + materias_ordemdia.append( + ( + str(ordemdia.numero_ordem), ordemdia.materia.__str__(), + ordemdia.materia.ementa, "Matéria Não Votada" + ) + ) + + response = { + 'sessao_plenaria': str(sessao), 'sessao_plenaria_data': sessao.data_inicio.strftime('%d/%m/%Y'), + 'sessao_plenaria_hora_inicio': sessao.hora_inicio, + 'sessao_plenaria_iniciada': "Sim" if sessao.iniciada else "Não", + 'f_em': f_em, 'f_od': f_od, 'sessao_plenaria_presenca': sessao_plenaria_presenca, + 'oradores_expediente': oradores_expediente, 'materias_expediente': materias_expediente, + 'ordemdia_presenca': ordemdia_presenca, 'oradores_ordemdia': oradores_ordemdia, + 'materias_ordemdia': materias_ordemdia + } + + return JsonResponse(response) + + class ChatView(TemplateView): # class ChatView(PermissionRequiredMixin, TemplateView): template_name = "sdr/deliberacaoremota.html" diff --git a/sapl/templates/sdr/deliberacaoremota.html b/sapl/templates/sdr/deliberacaoremota.html index 774d6bd7d..7f5b102be 100644 --- a/sapl/templates/sdr/deliberacaoremota.html +++ b/sapl/templates/sdr/deliberacaoremota.html @@ -2,62 +2,61 @@ {% load i18n common_tags %} {% load render_bundle from webpack_loader %} -{% block title%} +{% block title %} {% endblock %} {% block base_content %} {{ block.super }}
-

Título: {{ object.titulo }}

-

Descrição: {{ object.descricao }}

-
ID: {{ object.chat_id }}

+

Título: {{ object.titulo }}

+

Descrição: {% if object.descricao %}{{ object.descricao }}{% else %}Sem descrição.{% endif %}

+
ID: {{ object.chat_id }}

{% if is_parlamentar %} -

Parlamentar: {{ parlamentar.nome_parlamentar }}


+

Parlamentar: {{ parlamentar.nome_parlamentar }}


{% else %} -

Usuário: {{ nome_usuario }}


+

Usuário: {{ nome_usuario }}


{% endif %}
-
-
-

Dados Básicos

- Sessão: {{ object.sessao_plenaria }}
- Data Início: {{ object.sessao_plenaria.data_inicio }}
- Hora Início: {{ object.sessao_plenaria.hora_inicio }}
- Iniciada: {{ object.sessao_plenaria.iniciada|yesno:"Sim,Não" }}
-
+ {% if object.sessao_plenaria %} +
+
+
+
+
-
- -
-
-

Presença Sessão Plenária

-
    - {% for p in object.sessao_plenaria.sessaoplenariapresenca_set.all %} -
  • {{ p.parlamentar }}
  • - {% endfor %} -
    -
+
+
+ + + +
+
-
-

Presentes Ordem do Dia:

-
    - {% for p in object.sessao_plenaria.presencaordemdia_set.all %} -
  • {{ p.parlamentar }}
  • - {% endfor %} -
    -
+
+
+
+
+
+
+ + + +
+
+
-
+ {% endif %}
+
{% endblock base_content %} {% block extra_js %} -{{block.super}} + {{ block.super }} + + {% endblock extra_js %} \ No newline at end of file