+
+
-
- {% for evento in eventos %}
-
-
-
-
-
{{ evento.nome }}
-
Os detalhes virão aqui
-
-
-
-
- {% endfor %}
-
-
-
+ {% if formato == "cal" %}
+ {% include "eventos/snippets/calendario_cal.html" %}
+ {% else %}
+ {% include "eventos/snippets/calendario_lista.html" %}
+ {% endif %}
+ {% include "eventos/snippets/calendario_modals.html" %}
{% endblock %}
{% block footer %}
{{ block.super }}
{% endblock %}
-
-{% comment %}
-{% block extrastyle %}
-
- {{ block.super }}
-{% endblock %}
-
-{% block extrahead %}
- {{ block.super }}
-{% endblock %}
-
-{% block coltype %}colMS{% endblock %}
-
-{% block content_title %}
{% blocktrans %}Eventos de {{ mes_pesquisa }}/{{ ano_pesquisa }}{% endblocktrans %}
{% endblock %}
-
-{% block object-tools-items %}
- {% if prev_button %}
-
{% trans "Mês anterior" %}
- {% endif %}
- {% if next_button %}
-
{% trans "Próximo mês" %}
- {% endif %}
-
{% trans "Exportar para PDF" %}
-{% endblock %}
-
-{% block content %}
- {% include "eventos/calendario_snippet.html" %}
-{% endblock %}
-{% endcomment %}
\ No newline at end of file
diff --git a/sigi/apps/eventos/templates/eventos/snippets/calendario_cal.html b/sigi/apps/eventos/templates/eventos/snippets/calendario_cal.html
new file mode 100644
index 0000000..36ca3f6
--- /dev/null
+++ b/sigi/apps/eventos/templates/eventos/snippets/calendario_cal.html
@@ -0,0 +1,28 @@
+{% load i18n %}
+{% load static %}
+
+
+
+
+ {% for name in day_names %}
+ {{ name }} |
+ {% endfor %}
+
+
+ {% for semana in semanas %}
+
+ {% for dia in semana %}
+
+ {{ dia.0 }}
+ {% for evento in dia.1 %}
+
+ {{ evento.nome }}
+
+ {% endfor %}
+ |
+ {% endfor %}
+
+ {% endfor %}
+
+
+
\ No newline at end of file
diff --git a/sigi/apps/eventos/templates/eventos/snippets/calendario_lista.html b/sigi/apps/eventos/templates/eventos/snippets/calendario_lista.html
new file mode 100644
index 0000000..e796fb7
--- /dev/null
+++ b/sigi/apps/eventos/templates/eventos/snippets/calendario_lista.html
@@ -0,0 +1,34 @@
+{% load i18n %}
+{% load static %}
+
+{% for evento in eventos %}
+
+
+
+
+
{{ evento.nome }}
+
{{ evento.data_inicio }} a {{ evento.data_termino }}
+
+ {{ evento.tipo_evento }} -
+ {{ evento.tipo_evento.get_categoria_display }} -
+ {{ evento.get_status_display }}
+ {% if evento.virtual %} {% trans "na modalidade virtual" %}{% endif %}
+ {% if evento.casa_anfitria %} {% trans "em" %} {{ evento.casa_anfitria }}{% endif %}
+
+
{{ evento.descricao }}
+
{% trans "Solicitante" %}: {{ evento.solicitante }}
+ {% if evento.equipe_set.all %}
+
+ {% trans "Equipe" %}:
+ {% for membro in evento.equipe_set.all %}
+ {{ membro.membro }} ({{ membro.funcao }})
+ {% if not forloop.last %} - {% endif %}
+ {% endfor %}
+
+ {% endif %}
+
{% trans "Ver detalhes" %}
+
+
+
+
+{% endfor %}
diff --git a/sigi/apps/eventos/templates/eventos/snippets/calendario_modals.html b/sigi/apps/eventos/templates/eventos/snippets/calendario_modals.html
new file mode 100644
index 0000000..f3e603e
--- /dev/null
+++ b/sigi/apps/eventos/templates/eventos/snippets/calendario_modals.html
@@ -0,0 +1,60 @@
+{% load i18n %}
+
+{% for evento in eventos %}
+
+
+
{{ evento.nome }}
+
{{ evento.data_inicio }} a {{ evento.data_termino }}
+
+ {{ evento.tipo_evento }} -
+ {{ evento.tipo_evento.get_categoria_display }} -
+ {{ evento.get_status_display }}
+ {% if evento.virtual %} {% trans "na modalidade virtual" %}{% endif %}
+ {% if evento.casa_anfitria %} {% trans "em" %} {{ evento.casa_anfitria }}{% endif %}
+
+
{{ evento.descricao }}
+
{% trans "Solicitante" %}: {{ evento.solicitante }}
+ {% if evento.equipe_set.all %}
+
+ {% trans "Equipe" %}:
+ {% for membro in evento.equipe_set.all %}
+ {{ membro.membro }} ({{ membro.funcao }})
+ {% if not forloop.last %} - {% endif %}
+ {% endfor %}
+
+ {% endif %}
+ {% if evento.convite_set %}
+
+ {% trans "Casas covidadas" %}
+
+
+ Casa |
+ UF |
+ Aceitou |
+ Participou |
+ Participantes |
+
+
+ {% for convite in evento.convite_set.all %}
+
+ {{ convite.casa.nome }} |
+ {{ convite.casa.municipio.uf }} |
+ {% if convite.aceite %}check{% endif %} |
+ {% if convite.participou %}check{% endif %} |
+
+ {% for nome in convite.nomes_participantes.splitlines %}
+ {{ nome }}{% if not forloop.last %}, {% endif %}
+ {% endfor %}
+ |
+
+ {% endfor %}
+
+ {% endif %}
+
+
+
+{% endfor %}
\ No newline at end of file
diff --git a/sigi/apps/eventos/templates/eventos/snippets/calendario_status_color.html b/sigi/apps/eventos/templates/eventos/snippets/calendario_status_color.html
new file mode 100644
index 0000000..03e65db
--- /dev/null
+++ b/sigi/apps/eventos/templates/eventos/snippets/calendario_status_color.html
@@ -0,0 +1 @@
+{% if status == 'Q' %}brown{% endif %}{% if status == 'C' %}deep-orange{% endif %}{% if status == 'R' %}cyan{% endif %}{% if status == 'O' %}green{% endif %}{% if status == 'A' %}lime{% endif %}{% if status not in "EGP" %} lighten-4{% endif %}
\ No newline at end of file
diff --git a/sigi/apps/eventos/views.py b/sigi/apps/eventos/views.py
index c61396b..ac07484 100644
--- a/sigi/apps/eventos/views.py
+++ b/sigi/apps/eventos/views.py
@@ -1,3 +1,4 @@
+from datetime import datetime
import calendar
import locale
from django.contrib import messages
@@ -30,7 +31,7 @@ from sigi.apps.servidores.models import Servidor
def calendario(request):
mes_pesquisa = int(request.GET.get("mes", timezone.localdate().month))
ano_pesquisa = int(request.GET.get("ano", timezone.localdate().year))
- formato = request.GET.get("fmt", "html")
+ formato = request.GET.get("fmt", "cal")
meses = {}
lang = to_locale(get_language()) + ".UTF-8"
@@ -46,14 +47,43 @@ def calendario(request):
else:
meses[ano] = {mes: calendar.month_name[mes]}
- context = {
- "ano_pesquisa": ano_pesquisa,
- "mes_pesquisa": mes_pesquisa,
- "meses": meses,
- "eventos": Evento.objects.filter(
- data_inicio__year=ano_pesquisa, data_inicio__month=mes_pesquisa
- ),
- }
+ eventos = Evento.objects.filter(
+ data_inicio__year=ano_pesquisa, data_inicio__month=mes_pesquisa
+ )
+
+ context = site.each_context(request) or {}
+
+ if formato == "cal":
+ semanas = calendar.Calendar().monthdatescalendar(
+ ano_pesquisa, mes_pesquisa
+ )
+ for semana in semanas:
+ for dia in semana:
+ if dia.month == mes_pesquisa:
+ semana[dia.weekday()] = (
+ dia.day,
+ [
+ e
+ for e in eventos
+ if e.data_inicio.day
+ <= dia.day
+ <= e.data_termino.day
+ ],
+ )
+ else:
+ semana[dia.weekday()] = ("", [])
+ context["semanas"] = semanas
+
+ context.update(
+ {
+ "ano_pesquisa": ano_pesquisa,
+ "mes_pesquisa": mes_pesquisa,
+ "formato": formato,
+ "meses": meses,
+ "day_names": calendar.day_abbr,
+ "eventos": eventos,
+ }
+ )
return render(request, "eventos/calendario.html", context)
diff --git a/sigi/menu_conf.yaml b/sigi/menu_conf.yaml
index d76b6c5..0125cc5 100644
--- a/sigi/menu_conf.yaml
+++ b/sigi/menu_conf.yaml
@@ -31,6 +31,8 @@ main_menu:
- title: Assembléias Legislativas
view_name: admin:casas_orgao_changelist
querystr: tipo__sigla__exact=AL
+ # - title: Parlamentares
+ # view_name: admin:parlamentares_parlamentar_changelist
- title: Demais órgãos
view_name: admin:casas_orgao_changelist
querystr: tipo__legislativo__exact=0
@@ -82,7 +84,7 @@ main_menu:
view_name: admin:eventos_evento_changelist
querystr: tipo_evento__categoria__exact=V
- title: Calendário mensal
- view_name:
+ view_name: eventos-calendario
- title: Alocação de equipe
view_name:
- title: Servidores
@@ -113,3 +115,5 @@ main_menu:
view_name: admin:eventos_funcao_changelist
- title: Modelos de declaração
view_name: admin:eventos_modelodeclaracao_changelist
+ # - title: Partidos políticos
+ # view_name: admin:parlamentares_partido_changelist