Browse Source

Oculta relatórios de progresso se o evento não tem cronograma de execução

pull/166/head
Sesóstris Vieira 1 year ago
parent
commit
08c10508ba
  1. 38
      sigi/apps/eventos/admin.py
  2. 2
      sigi/apps/eventos/templates/admin/eventos/evento/change_form.html

38
sigi/apps/eventos/admin.py

@ -345,9 +345,20 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
def gant_report(self, request, object_id): def gant_report(self, request, object_id):
evento = get_object_or_404(Evento, id=object_id) evento = get_object_or_404(Evento, id=object_id)
change_url = (
reverse(
"admin:%s_%s_change" % self.get_model_info(), args=[object_id]
)
+ "?"
+ self.get_preserved_filters(request)
)
cronograma = list( cronograma = list(
evento.cronograma_set.order_by("data_prevista_inicio") evento.cronograma_set.order_by("data_prevista_inicio")
) )
if not cronograma:
self.message_user(request, _("Não há um cronograma definido para a realização deste evento. Impossível gerar um gráfico de Gant"), messages.ERROR)
return redirect(change_url)
inicio = min( inicio = min(
cronograma[0].data_prevista_inicio, cronograma[0].data_prevista_inicio,
cronograma[0].data_inicio or cronograma[0].data_prevista_inicio, cronograma[0].data_inicio or cronograma[0].data_prevista_inicio,
@ -377,9 +388,20 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
def checklist_report(self, request, object_id): def checklist_report(self, request, object_id):
evento = get_object_or_404(Evento, id=object_id) evento = get_object_or_404(Evento, id=object_id)
change_url = (
reverse(
"admin:%s_%s_change" % self.get_model_info(), args=[object_id]
)
+ "?"
+ self.get_preserved_filters(request)
)
cronograma = list( cronograma = list(
evento.cronograma_set.order_by("data_prevista_inicio") evento.cronograma_set.order_by("data_prevista_inicio")
) )
if not cronograma:
self.message_user(request, _("Não há um cronograma definido para a realização deste evento. Impossível gerar um checklist"), messages.ERROR)
return redirect(change_url)
context = {"cronograma": cronograma, "title": evento.nome} context = {"cronograma": cronograma, "title": evento.nome}
return WeasyTemplateResponse( return WeasyTemplateResponse(
filename="checklist.pdf", filename="checklist.pdf",
@ -391,8 +413,22 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
def plano_comunicacao(self, request, object_id): def plano_comunicacao(self, request, object_id):
evento = get_object_or_404(Evento, id=object_id) evento = get_object_or_404(Evento, id=object_id)
change_url = (
reverse(
"admin:%s_%s_change" % self.get_model_info(), args=[object_id]
)
+ "?"
+ self.get_preserved_filters(request)
)
cronograma = list(
evento.cronograma_set.order_by("data_prevista_inicio")
)
if not cronograma:
self.message_user(request, _("Não há um cronograma definido para a realização deste evento. Impossível gerar um plano de comunicação"), messages.ERROR)
return redirect(change_url)
matrix = {} matrix = {}
for etapa in evento.cronograma_set.order_by("data_prevista_inicio"): for etapa in cronograma:
for responsavel in etapa.responsaveis.splitlines(): for responsavel in etapa.responsaveis.splitlines():
if responsavel not in matrix: if responsavel not in matrix:
matrix[responsavel] = {} matrix[responsavel] = {}

2
sigi/apps/eventos/templates/admin/eventos/evento/change_form.html

@ -28,6 +28,7 @@
{% trans "Declaração" %} {% trans "Declaração" %}
</a> </a>
</li> </li>
{% if object.cronograma_set.exists %}
<li> <li>
{% url opts|admin_urlname:'gantreport' object_id|admin_urlquote as tool_url %} {% url opts|admin_urlname:'gantreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}"> <a href="{% add_preserved_filters tool_url %}">
@ -50,5 +51,6 @@
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% endif %}
{{ block.super }} {{ block.super }}
{% endblock %} {% endblock %}

Loading…
Cancel
Save