Browse Source

Adiciona permissão e alterações no template

pull/3136/head
João Rodrigues 6 years ago
parent
commit
d3518609da
  1. 5
      sapl/sdr/models.py
  2. 22
      sapl/sdr/views.py
  3. 98
      sapl/templates/sdr/deliberacaoremota.html
  4. 2
      sapl/templates/sdr/deliberacaoremota_detail.html
  5. 2
      sapl/templates/sdr/layouts.yaml

5
sapl/sdr/models.py

@ -23,17 +23,12 @@ class DeliberacaoRemota(models.Model):
verbose_name=_('Descrição')) verbose_name=_('Descrição'))
inicio = models.DateTimeField(blank=True, null=True, inicio = models.DateTimeField(blank=True, null=True,
verbose_name=_('Data e Hora de Início')) verbose_name=_('Data e Hora de Início'))
#TODO: obrigatorio?
sessao_plenaria = models.ForeignKey(SessaoPlenaria, sessao_plenaria = models.ForeignKey(SessaoPlenaria,
null=True, blank=True, null=True, blank=True,
verbose_name=_('Sessão Plenária')) verbose_name=_('Sessão Plenária'))
#TODO: preencher quando usuário selecionar a opção 'finalizada'
termino = models.DateTimeField(blank=True, null=True, termino = models.DateTimeField(blank=True, null=True,
verbose_name=_('Data e Hora de Término')) verbose_name=_('Data e Hora de Término'))
finalizada = models.BooleanField(default=False, verbose_name=_('Finalizada?')) finalizada = models.BooleanField(default=False, verbose_name=_('Finalizada?'))
#TODO: obrigatório com preenchimento automatico
created_by = models.ForeignKey(get_settings_auth_user_model(), created_by = models.ForeignKey(get_settings_auth_user_model(),
blank=True, null=True, blank=True, null=True,
verbose_name=_('Criado por')) verbose_name=_('Criado por'))

22
sapl/sdr/views.py

@ -4,6 +4,7 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.urlresolvers import reverse, reverse_lazy from django.core.urlresolvers import reverse, reverse_lazy
from django.contrib.auth.decorators import user_passes_test
from django.http import JsonResponse from django.http import JsonResponse
from django.views.generic import TemplateView from django.views.generic import TemplateView
from django.utils import timezone from django.utils import timezone
@ -60,7 +61,10 @@ class DeliberacaoRemotaCrud(Crud):
return context return context
#@user_passes_test(check_permission) def check_permission(user):
return False if user.is_anonymous else True
@user_passes_test(check_permission)
def get_dados_deliberacao_remota(request, pk): def get_dados_deliberacao_remota(request, pk):
sessao = SessaoPlenaria.objects.get(id=pk) sessao = SessaoPlenaria.objects.get(id=pk)
@ -87,13 +91,13 @@ def get_dados_deliberacao_remota(request, pk):
) )
) )
else: else:
resultado = "Matéria sendo Lida" if expediente.votacao_aberta else "Matéria Não Lida" resultado = "Matéria sendo Lida" if expediente.votacao_aberta else "Matéria Não Lida"
materias_expediente.append( materias_expediente.append(
( (
str(expediente.numero_ordem), expediente.materia.__str__(), str(expediente.numero_ordem), expediente.materia.__str__(),
expediente.materia.ementa, resultado expediente.materia.ementa, resultado
) )
) )
else: else:
if RegistroVotacao.objects.filter(expediente=expediente).exists(): if RegistroVotacao.objects.filter(expediente=expediente).exists():
registro = RegistroVotacao.objects.get(expediente=expediente) registro = RegistroVotacao.objects.get(expediente=expediente)
@ -129,13 +133,13 @@ def get_dados_deliberacao_remota(request, pk):
) )
) )
else: else:
resultado = "Matéria sendo Lida" if ordemdia.votacao_aberta else "Matéria Não Lida" resultado = "Matéria sendo Lida" if ordemdia.votacao_aberta else "Matéria Não Lida"
materias_ordemdia.append( materias_ordemdia.append(
( (
str(ordemdia.numero_ordem), ordemdia.materia.__str__(), str(ordemdia.numero_ordem), ordemdia.materia.__str__(),
ordemdia.materia.ementa, resultado ordemdia.materia.ementa, resultado
) )
) )
else: else:
if RegistroVotacao.objects.filter(ordem=ordemdia).exists(): if RegistroVotacao.objects.filter(ordem=ordemdia).exists():
registro = RegistroVotacao.objects.get(ordem=ordemdia) registro = RegistroVotacao.objects.get(ordem=ordemdia)
@ -168,19 +172,19 @@ def get_dados_deliberacao_remota(request, pk):
class ChatView(TemplateView): class ChatView(TemplateView):
# class ChatView(PermissionRequiredMixin, TemplateView):
template_name = "sdr/deliberacaoremota.html" template_name = "sdr/deliberacaoremota.html"
# permission_required = ('sessao.view_expedientemateria')
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
user = self.request.user
try: try:
context['object'] = DeliberacaoRemota.objects.get(id=kwargs['pk']) context['object'] = DeliberacaoRemota.objects.get(id=kwargs['pk'])
except ObjectDoesNotExist: except ObjectDoesNotExist:
pass #TODO: return error self.logger.error('user=' + user.username + '. Erro ao obter DeliberacaoRemota com pk={}.'.format(kwargs['pk']))
return context
user = self.request.user
content_type = ContentType.objects.get_for_model(Parlamentar) content_type = ContentType.objects.get_for_model(Parlamentar)
try: try:
autor = user.autor autor = user.autor

98
sapl/templates/sdr/deliberacaoremota.html

@ -8,50 +8,58 @@
{% block base_content %} {% block base_content %}
{{ block.super }} {{ block.super }}
<div id="content"> {% if object %}
<h4><b>Título:</b> {{ object.titulo }}<br/></h4> <div id="content">
<h4><b>Descrição:</b> {% if object.descricao %}{{ object.descricao }}{% else %}Sem descrição.{% endif %}<br/></h4> <h4><b>Título:</b> {{ object.titulo }}<br/></h4>
<h5><b>ID:</b> {{ object.chat_id }}</h5><br/> <h4><b>Descrição:</b> {% if object.descricao %}{{ object.descricao }}{% else %}Sem descrição.{% endif %}<br/></h4>
{% if is_parlamentar %} <h5><b>ID:</b> {{ object.chat_id }}</h5><br/>
<h4><b>Parlamentar:</b> {{ parlamentar.nome_parlamentar }}</h4><br/> {% if is_parlamentar %}
{% else %} <h4><b>Parlamentar:</b> {{ parlamentar.nome_parlamentar }}</h4><br/>
<h4><b>Usuário:</b> {{ nome_usuario }}</h4><br/> {% else %}
{% endif %} <h4><b>Usuário:</b> {{ nome_usuario }}</h4><br/>
</div> {% endif %}
<div class="container"> </div>
<div id="meet" class="col-md"></div> <div class="container">
<div id="painel" class="col-md"> {% if not object.finalizada %}
{% if object.sessao_plenaria %} <div id="meet" class="col-md"></div>
<div class="row"><div id="dados_basicos" class="sm-12" style="margin-right:60px"></div></div> {% else %}
<div class="row"><div id="titulo_expediente" class="sm-12" style="margin-right:60px"></div></div> <font size="3"><p align="center"><b>Atenção! Deliberação Remota finalizada.</b></p></font>
<div class="row"> {% endif %}
<div id="presenca_sessao" class="sm-6" style="margin-top: 6px; margin-right:60px"></div> <div id="painel" class="col-md">
<div id="oradores_expediente" class="sm-6" style="margin-top: 6px; margin-right:60px"></div> {% if object.sessao_plenaria %}
</div> <div class="row"><div id="dados_basicos" class="sm-12" style="margin-right:60px"></div></div>
<div class="row"> <div class="row"><div id="titulo_expediente" class="sm-12" style="margin-right:60px"></div></div>
<div class="sm-12"> <div class="row">
<table class="table table-striped table-hover"> <div id="presenca_sessao" class="sm-6" style="margin-top: 6px; margin-right:60px"></div>
<thead id="thead_tabela_expediente"></thead> <div id="oradores_expediente" class="sm-6" style="margin-top: 6px; margin-right:60px"></div>
<tbody id="materias_expediente"></tbody>
</table>
</div> </div>
</div> <div class="row">
<div class="row"><div id="titulo_ordemdia" class="sm-12" style="margin-right:60px"></div></div> <div class="sm-12">
<div class="row"> <table class="table table-striped table-hover">
<div id="presenca_ordemdia" class="sm-6" style="margin-top: 6px; margin-right:60px"></div> <thead id="thead_tabela_expediente"></thead>
<div id="oradores_ordemdia" class="sm-6" style="margin-top: 6px; margin-right:60px"></div> <tbody id="materias_expediente"></tbody>
</div> </table>
<div class="row"> </div>
<div class="sm-12">
<table class="table table-striped table-hover">
<thead id="thead_tabela_ordemdia"></thead>
<tbody id=materias_ordemdia></tbody>
</table>
</div> </div>
</div> <div class="row"><div id="titulo_ordemdia" class="sm-12" style="margin-right:60px"></div></div>
<div class="row">
<div id="presenca_ordemdia" class="sm-6" style="margin-top: 6px; margin-right:60px"></div>
<div id="oradores_ordemdia" class="sm-6" style="margin-top: 6px; margin-right:60px"></div>
</div>
<div class="row">
<div class="sm-12">
<table class="table table-striped table-hover">
<thead id="thead_tabela_ordemdia"></thead>
<tbody id=materias_ordemdia></tbody>
</table>
</div>
</div>
{% endif %}
</div> </div>
{% endif %} </div>
</div> {% else %}
<font size="5"><p align="center"><b>Erro! Deliberação Remota não encontrada.</b></p></font>
{% endif %}
<br/> <br/>
{% endblock base_content %} {% endblock base_content %}
@ -92,7 +100,11 @@
</script> </script>
<script language="Javascript"> <script language="Javascript">
$(document).ready(function() { (function poll() { $(document).ready(function() { (function poll() {
"{% if user.is_anonymous %}"
window.location.href = "{% url 'sapl.base:login' %}?next=/sdr/chat/{{object.id}}"
"{% endif %}"
"{% if object.sessao_plenaria %}" "{% if object.sessao_plenaria %}"
$.ajax({ $.ajax({
url: "{% url 'sapl.sdr:dados_deliberacao_remota' object.sessao_plenaria.id %}", url: "{% url 'sapl.sdr:dados_deliberacao_remota' object.sessao_plenaria.id %}",
@ -221,4 +233,4 @@
"{% endif %}" "{% endif %}"
} )(); }); } )(); });
</script> </script>
{% endblock extra_js %} {% endblock extra_js %}

2
sapl/templates/sdr/deliberacaoremota_detail.html

@ -73,4 +73,4 @@
<a href="{% url 'sapl.sdr:chat-session' object.pk %}"><strong>Link da sessão de vídeo</strong></a> <a href="{% url 'sapl.sdr:chat-session' object.pk %}"><strong>Link da sessão de vídeo</strong></a>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endblock detail_content %} {% endblock detail_content %}

2
sapl/templates/sdr/layouts.yaml

@ -15,4 +15,4 @@ DeliberacaoRemotaEdit:
{% trans 'Deliberação Remota' %}: {% trans 'Deliberação Remota' %}:
- created_by:10 finalizada - created_by:10 finalizada
- titulo sessao_plenaria - titulo sessao_plenaria
- descricao - descricao

Loading…
Cancel
Save