Browse Source

Fix(Matéria): Restringe botões OnlyOffice e Assinatura apenas para autores

- Botão "Editar com OnlyOffice" só aparece para autores e se não foi protocolado
- Botão "Assinar PDF Digitalmente" só aparece para autores
- Adiciona verificação is_autor no contexto do DetailView
pull/3858/head
rangelbruno 8 months ago
parent
commit
6a07ec32cf
  1. 10
      sapl/materia/views.py
  2. 12
      sapl/templates/materia/materialegislativa_detail.html

10
sapl/materia/views.py

@ -2050,6 +2050,16 @@ class MateriaLegislativaCrud(Crud):
context['user'] = self.request.user context['user'] = self.request.user
context['materia'] = MateriaLegislativa.objects.get( context['materia'] = MateriaLegislativa.objects.get(
pk=self.kwargs['pk']) pk=self.kwargs['pk'])
# Verifica se o usuário é operador de algum autor da matéria
is_autor = False
if self.request.user.is_authenticated:
for autoria in self.object.autoria_set.all():
if autoria.autor.operadores.filter(id=self.request.user.id).exists():
is_autor = True
break
context['is_autor'] = is_autor
return context return context
class ListView(Crud.ListView, RedirectView): class ListView(Crud.ListView, RedirectView):

12
sapl/templates/materia/materialegislativa_detail.html

@ -8,7 +8,7 @@
<a href="{% url 'sapl.materia:acompanhar_materia' object.id %}" class="btn btn-outline-primary">Acompanhar Matéria</a> <a href="{% url 'sapl.materia:acompanhar_materia' object.id %}" class="btn btn-outline-primary">Acompanhar Matéria</a>
</div> </div>
{% endif %} {% endif %}
{% if perms.materia.change_materialegislativa %} {% if is_autor and not object.numero_protocolo %}
<div class="actions btn-group btn-group-sm" role="group"> <div class="actions btn-group btn-group-sm" role="group">
<a class="btn btn-primary" href="{% url 'sapl.materia:materia_onlyoffice_editor' object.pk %}"> <a class="btn btn-primary" href="{% url 'sapl.materia:materia_onlyoffice_editor' object.pk %}">
<i class="fa fa-file-word-o"></i> {% trans "Editar com OnlyOffice" %} <i class="fa fa-file-word-o"></i> {% trans "Editar com OnlyOffice" %}
@ -17,9 +17,15 @@
{% endif %} {% endif %}
{% if object.numero_protocolo and object.texto_original %} {% if object.numero_protocolo and object.texto_original %}
<div class="actions btn-group btn-group-sm" role="group"> <div class="actions btn-group btn-group-sm" role="group">
<a class="btn btn-success" href="{% url 'sapl.materia:materia_pdf_assinatura' object.pk %}" target="_blank"> {% if object.pdf_assinado %}
<i class="fa fa-file-pdf-o"></i> {% trans "Gerar PDF para Assinatura" %} <a class="btn btn-success" href="{% url 'sapl.materia:materia_pdf_assinado' object.pk %}" target="_blank">
<i class="fa fa-check-circle"></i> {% trans "Ver PDF Assinado" %}
</a> </a>
{% elif is_autor %}
<button type="button" class="btn btn-warning" data-toggle="modal" data-target="#assinaturaModal">
<i class="fa fa-certificate"></i> {% trans "Assinar PDF Digitalmente" %}
</button>
{% endif %}
</div> </div>
{% endif %} {% endif %}
{% endblock sub_actions %} {% endblock sub_actions %}

Loading…
Cancel
Save