Browse Source

celery

Websocket_painel
Gustavo274 3 years ago
parent
commit
84f4b660e4
  1. 3
      sapl/__init__.py
  2. 33
      sapl/painel/views.py
  3. 28
      sapl/sessao/views.py
  4. 2
      sapl/settings.py

3
sapl/__init__.py

@ -0,0 +1,3 @@
from .celery import app as celery_app
__all__ = ['celery_app']

33
sapl/painel/views.py

@ -116,11 +116,13 @@ def votacao(context,context_vars):
if voto:
try:
logger.debug("Tentando obter objeto VotoParlamentar com parlamentar={}.".format(context_vars['parlamentar']))
logger.debug("Tentando obter objeto VotoParlamentar com parlamentar={}.".format(
context_vars['parlamentar']))
voto = voto.get(parlamentar=context_vars['parlamentar'])
context.update({'voto_parlamentar': voto.voto})
except ObjectDoesNotExist:
logger.error("Voto do parlamentar {} não computado.".format(context_vars['parlamentar']))
logger.error("Voto do parlamentar {} não computado.".format(
context_vars['parlamentar']))
context.update(
{'voto_parlamentar': 'Voto não '
'computado.'})
@ -132,6 +134,7 @@ def votacao(context,context_vars):
'Ordem do Dia/Expediente em votação.'})
return context, context_vars
def sessao_votacao(context, context_vars):
pk = context_vars['sessao'].pk
context.update({'sessao_id': pk})
@ -209,7 +212,8 @@ def votante_view(request):
context_vars = {}
try:
logger.debug(f'user={username}. Tentando obter objeto Votante com user={request.user}.')
logger.debug(
f'user={username}. Tentando obter objeto Votante com user={request.user}.')
if not request.user.is_anonymous and request.user.is_authenticated:
votante = Votante.objects.get(user=request.user)
else:
@ -227,9 +231,11 @@ def votante_view(request):
# Verifica se usuário possui permissão para votar
if 'parlamentares.can_vote' in request.user.get_all_permissions():
context, context_vars = can_vote(context, context_vars, request)
logger.debug("user=" + username + ". Verificando se usuário {} possui permissão para votar.".format(request.user))
logger.debug("user=" + username +
". Verificando se usuário {} possui permissão para votar.".format(request.user))
else:
logger.error("user=" + username + ". Usuário {} sem permissão para votar.".format(request.user))
logger.error("user=" + username +
". Usuário {} sem permissão para votar.".format(request.user))
context.update({'permissao': False,
'error_message': 'Usuário sem permissão para votar.'})
@ -294,7 +300,8 @@ def painel_view(request, pk):
now = timezone.localtime(timezone.now())
utc_offset = now.utcoffset().total_seconds() / 60
context = {'head_title': str(_('Painel Plenário')), 'sessao_id': pk, 'utc_offset': utc_offset }
context = {'head_title': str(
_('Painel Plenário')), 'sessao_id': pk, 'utc_offset': utc_offset}
return render(request, 'painel/index.html', context)
@ -348,10 +355,12 @@ def get_cronometro_status(request, name):
logger.debug("user=" + username + ". Tentando obter cronometro.")
cronometro = request.session[name]
except KeyError as e:
logger.error("user=" + username + ". Erro ao obter cronometro. Retornado como vazio. " + str(e))
logger.error("user=" + username +
". Erro ao obter cronometro. Retornado como vazio. " + str(e))
cronometro = ''
return cronometro
def get_cronometro_value(request, name):
if name == 'discurso':
result = ConfiguracoesAplicacao.objects.first().cronometro_discurso
@ -503,7 +512,8 @@ def get_votos(response, materia):
for i, p in enumerate(response['presentes']):
try:
logger.info("Tentando obter votos do parlamentar (id={}).".format(p['parlamentar_id']))
logger.info("Tentando obter votos do parlamentar (id={}).".format(
p['parlamentar_id']))
if votos_parlamentares.get(parlamentar_id=p['parlamentar_id']).voto:
response['presentes'][i]['voto'] = 'Voto Informado'
except ObjectDoesNotExist:
@ -531,11 +541,13 @@ def get_votos(response, materia):
for i, p in enumerate(response['presentes']):
try:
logger.debug("Tentando obter votos do parlamentar (id={}).".format(p['parlamentar_id']))
logger.debug("Tentando obter votos do parlamentar (id={}).".format(
p['parlamentar_id']))
response['presentes'][i]['voto'] = votos_parlamentares.get(
parlamentar_id=p['parlamentar_id']).voto
except ObjectDoesNotExist:
logger.error("Votos do parlamentar (id={}) não encontrados. Retornado None.".format(p['parlamentar_id']))
logger.error("Votos do parlamentar (id={}) não encontrados. Retornado None.".format(
p['parlamentar_id']))
response['presentes'][i]['voto'] = None
response.update({
@ -570,6 +582,7 @@ def get_dados_painel(request, pk):
'sessao_solene': sessao.tipo.nome == "Solene",
'sessao_finalizada': sessao.finalizada,
'tema_solene': sessao.tema_solene,
'status_cronometro_discurso': get_cronometro_status(request, 'discurso'),
'cronometro_aparte': get_cronometro_value(request, 'aparte'),
'cronometro_discurso': get_cronometro_value(request, 'discurso'),
'cronometro_ordem': get_cronometro_value(request, 'ordem'),

28
sapl/sessao/views.py

@ -2,6 +2,7 @@
import logging
from collections import OrderedDict
from re import sub
from sapl.painel.views import get_cronometro_status
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
@ -308,7 +309,8 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
page_number = ""
if 'page' in context:
#url += "?page={}".format(context['page'])
page_number = "<input type='hidden' name='page' value='%s' />" % context['page']
page_number = "<input type='hidden' name='page' value='%s' />" % context[
'page']
if has_permission:
if obj.tipo_votacao != LEITURA:
@ -945,7 +947,8 @@ class OradorCrud(MasterDetailCrud):
{'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
context[
"ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
return context
def get_success_url(self):
@ -1018,7 +1021,8 @@ class OradorExpedienteCrud(OradorCrud):
{'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
context[
"ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
return context
def get_success_url(self):
@ -1098,7 +1102,8 @@ class OradorOrdemDiaCrud(OradorCrud):
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
context[
"ultima_ordem"] = ultimo_orador.numero_ordem if ultimo_orador else 0
return context
class UpdateView(MasterDetailCrud.UpdateView):
@ -2936,7 +2941,8 @@ class VotacaoNominalAbstract(SessaoPermissionMixin):
elif self.expediente:
votacao.expediente_id = expediente_id
votacao.tipo_resultado_votacao = form.cleaned_data['resultado_votacao']
votacao.tipo_resultado_votacao = form.cleaned_data[
'resultado_votacao']
votacao.save()
for votos in request.POST.getlist('voto_parlamentar'):
@ -4496,7 +4502,8 @@ class VotacaoEmBlocoNominalView(PermissionRequiredForAppCrudMixin, TemplateView)
votacao.observacao = request.POST['observacao']
votacao.materia = ordem.materia
votacao.ordem = ordem
votacao.tipo_resultado_votacao = form.cleaned_data['resultado_votacao']
votacao.tipo_resultado_votacao = form.cleaned_data[
'resultado_votacao']
votacao.user = request.user
votacao.ip = get_client_ip(request)
votacao.save()
@ -4517,7 +4524,8 @@ class VotacaoEmBlocoNominalView(PermissionRequiredForAppCrudMixin, TemplateView)
voto_parlamentar.ip = get_client_ip(request)
voto_parlamentar.save()
ordem.resultado = form.cleaned_data['resultado_votacao'].nome
ordem.resultado = form.cleaned_data[
'resultado_votacao'].nome
ordem.votacao_aberta = False
ordem.save()
@ -4541,7 +4549,8 @@ class VotacaoEmBlocoNominalView(PermissionRequiredForAppCrudMixin, TemplateView)
votacao.observacao = request.POST['observacao']
votacao.materia = expediente.materia
votacao.expediente = expediente
votacao.tipo_resultado_votacao = form.cleaned_data['resultado_votacao']
votacao.tipo_resultado_votacao = form.cleaned_data[
'resultado_votacao']
votacao.user = request.user
votacao.ip = get_client_ip(request)
votacao.save()
@ -4563,7 +4572,8 @@ class VotacaoEmBlocoNominalView(PermissionRequiredForAppCrudMixin, TemplateView)
voto_parlamentar.ip = get_client_ip(request)
voto_parlamentar.save()
expediente.resultado = form.cleaned_data['resultado_votacao'].nome
expediente.resultado = form.cleaned_data[
'resultado_votacao'].nome
expediente.votacao_aberta = False
expediente.save()

2
sapl/settings.py

@ -204,6 +204,8 @@ TEMPLATES = [
WSGI_APPLICATION = 'sapl.wsgi.application'
CELERY_BROKER_URL = 'redis://localhost:6379'
# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases

Loading…
Cancel
Save