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. 44
      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):
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 gráfico de Gant"), messages.ERROR)
return redirect(change_url)
inicio = min(
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):
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 checklist"), messages.ERROR)
return redirect(change_url)
context = {"cronograma": cronograma, "title": evento.nome}
return WeasyTemplateResponse(
filename="checklist.pdf",
@ -391,8 +413,22 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
def plano_comunicacao(self, request, 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 = {}
for etapa in evento.cronograma_set.order_by("data_prevista_inicio"):
for etapa in cronograma:
for responsavel in etapa.responsaveis.splitlines():
if responsavel not in matrix:
matrix[responsavel] = {}

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

@ -28,27 +28,29 @@
{% trans "Declaração" %}
</a>
</li>
<li>
{% url opts|admin_urlname:'gantreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">insert_chart</i>
{% trans "Gráfico de Gant" %}
</a>
</li>
<li>
{% url opts|admin_urlname:'checklistreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">picture_as_pdf</i>
{% trans "Checklist" %}
</a>
</li>
<li>
{% url opts|admin_urlname:'comunicacaoreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">picture_as_pdf</i>
{% trans "Plano de comunicação" %}
</a>
</li>
{% if object.cronograma_set.exists %}
<li>
{% url opts|admin_urlname:'gantreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">insert_chart</i>
{% trans "Gráfico de Gant" %}
</a>
</li>
<li>
{% url opts|admin_urlname:'checklistreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">picture_as_pdf</i>
{% trans "Checklist" %}
</a>
</li>
<li>
{% url opts|admin_urlname:'comunicacaoreport' object_id|admin_urlquote as tool_url %}
<a href="{% add_preserved_filters tool_url %}">
<i class="left material-icons" aria-hidden="true">picture_as_pdf</i>
{% trans "Plano de comunicação" %}
</a>
</li>
{% endif %}
{% endif %}
{{ block.super }}
{% endblock %}

Loading…
Cancel
Save