Browse Source

Merge pull request #186 from moonshinerd/sigi-4.0

Refatoração dos Relatórios de Eventos para ReportListView
sigi-4.0
Sesostris Vieira 3 weeks ago
committed by GitHub
parent
commit
886c96ecf6
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 9
      sigi/apps/eventos/admin_urls.py
  2. 96
      sigi/apps/eventos/templates/eventos/calendario.html
  3. 1433
      sigi/apps/eventos/views.py
  4. 0
      sigi/templates/admin/date_range_filter.html

9
sigi/apps/eventos/admin_urls.py

@ -1,12 +1,13 @@
from django.urls import path
from sigi.apps.eventos import views
from sigi.apps.eventos.views import EventosPorUfReportView, SolicitacoesPorPeriodoReportView, CalendarioReportView, AlocacaoEquipeReportView
urlpatterns = [
path("calendario/", views.calendario, name="eventos_calendario"),
path("calendario/", CalendarioReportView.as_view(), name="eventos_calendario"),
path(
"alocacaoequipe/", views.alocacao_equipe, name="eventos_alocacaoequipe"
"alocacaoequipe/", AlocacaoEquipeReportView.as_view(), name="eventos_alocacaoequipe"
),
path("eventosporuf/", views.eventos_por_uf, name="eventos_eventosporuf"),
path("eventosporuf/", EventosPorUfReportView.as_view(), name="eventos_eventosporuf"),
path(
"alunosporuf/",
views.AlunosPorUfReportView.as_view(),
@ -14,7 +15,7 @@ urlpatterns = [
),
path(
"solicitacoesporperiodo/",
views.solicitacoes_por_periodo,
SolicitacoesPorPeriodoReportView.as_view(),
name="eventos_solicitacoesporperiodo",
),
path(

96
sigi/apps/eventos/templates/eventos/calendario.html

@ -22,17 +22,76 @@
<form>
<div class="card mb-3">
<div class="card-header">
<a class="icon-link" data-bs-toggle="collapse" href="#filterFormCollapse" aria-expanded="{% if eventos is None %}true{% else %}false{% endif %}" aria-controls="filterFormCollapse">
<a class="icon-link" data-bs-toggle="collapse" href="#filterFormCollapse"
aria-expanded="{% if eventos is None %}true{% else %}false{% endif %}"
aria-controls="filterFormCollapse">
{% icon "filter" %} {% translate "Filtros" %}
</a>
</div>
<div class="card-body collapse{% if eventos is None %} show{% endif %}" id="filterFormCollapse">
{{ form }}
{% for field in form %}
{% if field.name != "mes_ano" and field.name != "categorias" and field.name != "status" %}
{{ field }}
{% endif %}
{% endfor %}
<div class="mb-3">
<fieldset>
<legend>Categorias:</legend>
{{ form.categorias }}
</fieldset>
</div>
<div class="mb-3">
<fieldset>
<legend>Status:</legend>
{{ form.status }}
</fieldset>
</div>
<div class="mb-3">
<fieldset>
<legend>Período:</legend>
<div class="mb-3">
<label for="id_year" class="form-label">Ano:</label>
<input type="number" id="id_year" class="form-control" placeholder="YYYY"
style="width: max-content;" required min="1000" max="9999">
</div>
<div class="mb-3">
<label for="id_month" class="form-label">Mês:</label>
<select id="id_month" class="form-select" style="width: max-content;" required>
<option value="">Selecione</option>
<option value="01">Janeiro</option>
<option value="02">Fevereiro</option>
<option value="03">Março</option>
<option value="04">Abril</option>
<option value="05">Maio</option>
<option value="06">Junho</option>
<option value="07">Julho</option>
<option value="08">Agosto</option>
<option value="09">Setembro</option>
<option value="10">Outubro</option>
<option value="11">Novembro</option>
<option value="12">Dezembro</option>
</select>
</div>
<input type="hidden" name="mes_ano" id="id_mes_ano" value="">
</fieldset>
</div>
</div>
<div class="card-footer d-flex justify-content-end">
<div>
<button type="submit" class="btn btn-primary">{% trans 'Ver calendário' %}</button>
<button type="submit" name="fmt" value="pdf" class="btn btn-primary" title="{% trans 'Exportar para PDF' %}">
<button type="submit" name="fmt" value="pdf" class="btn btn-primary"
title="{% trans 'Exportar para PDF' %}">
{% icon "pdf" %}
{% trans 'Exportar para PDF' %}
</button>
@ -45,7 +104,8 @@
<div class="accordion" id="accordionReport">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLegenda" aria-expanded="true" aria-controls="collapseLegenda">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseLegenda" aria-expanded="true" aria-controls="collapseLegenda">
{% translate "Legenda" %}
</button>
</h2>
@ -57,7 +117,8 @@
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCalendario" aria-expanded="true" aria-controls="collapseCalendario">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseCalendario" aria-expanded="true" aria-controls="collapseCalendario">
{% trans 'Calendário' %}
</button>
</h2>
@ -69,7 +130,8 @@
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLista" aria-expanded="false" aria-controls="collapseLista">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseLista" aria-expanded="false" aria-controls="collapseLista">
{% trans 'Lista' %}
</button>
</h2>
@ -83,4 +145,24 @@
{% include "eventos/snippets/calendario_modals.html" %}
{% endif %}
{% endblock %}
<script>
document.addEventListener('DOMContentLoaded', function() {
const yearInput = document.getElementById('id_year');
const monthSelect = document.getElementById('id_month');
const hiddenMesAno = document.getElementById('id_mes_ano');
function updateHiddenField() {
const year = yearInput.value.trim();
const month = monthSelect.value;
if (year && month) {
hiddenMesAno.value = year + '-' + month;
} else {
hiddenMesAno.value = '';
}
}
yearInput.addEventListener('input', updateHiddenField);
monthSelect.addEventListener('change', updateHiddenField);
});
</script>
{% endblock %}

1433
sigi/apps/eventos/views.py

File diff suppressed because it is too large

0
sigi/templates/admin/date_range_filter.html

Loading…
Cancel
Save