mirror of https://github.com/interlegis/sigi.git
Sesóstris Vieira
7 months ago
12 changed files with 468 additions and 14 deletions
@ -0,0 +1,69 @@ |
|||
# Generated by Django 5.0.4 on 2024-05-28 13:30 |
|||
|
|||
import django.db.models.deletion |
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
("contatos", "0007_alter_mesorregiao_options"), |
|||
("eventos", "0062_create_viw_eventos"), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name="ParticipantesEvento", |
|||
fields=[ |
|||
( |
|||
"id", |
|||
models.BigAutoField( |
|||
auto_created=True, |
|||
primary_key=True, |
|||
serialize=False, |
|||
verbose_name="ID", |
|||
), |
|||
), |
|||
( |
|||
"inscritos", |
|||
models.PositiveIntegerField( |
|||
default=0, verbose_name="total de inscritos" |
|||
), |
|||
), |
|||
( |
|||
"aprovados", |
|||
models.PositiveIntegerField( |
|||
default=0, verbose_name="total de aprovados" |
|||
), |
|||
), |
|||
( |
|||
"evento", |
|||
models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to="eventos.evento", |
|||
verbose_name="evento", |
|||
), |
|||
), |
|||
( |
|||
"uf", |
|||
models.ForeignKey( |
|||
blank=True, |
|||
null=True, |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to="contatos.unidadefederativa", |
|||
verbose_name="uf", |
|||
), |
|||
), |
|||
], |
|||
options={ |
|||
"verbose_name": "Participante por UF", |
|||
"verbose_name_plural": "Participantes por UF", |
|||
}, |
|||
), |
|||
migrations.AddConstraint( |
|||
model_name="participantesevento", |
|||
constraint=models.UniqueConstraint( |
|||
models.F("evento"), models.F("uf"), name="unique_evento_uf" |
|||
), |
|||
), |
|||
] |
@ -0,0 +1,25 @@ |
|||
# Generated by Django 5.0.4 on 2024-05-28 13:41 |
|||
|
|||
from django.db import migrations |
|||
from django.utils import timezone |
|||
from sigi.apps.eventos.models import Evento |
|||
|
|||
|
|||
def carga(apps, schema_editor): |
|||
for evento in Evento.objects.exclude(moodle_courseid=None).filter( |
|||
data_termino__lt=timezone.localtime() |
|||
): |
|||
try: |
|||
evento.sincroniza_saberes() |
|||
print(f"\t{evento.nome} sincronizado.") |
|||
except Evento.SaberesSyncException as err: |
|||
print(f"\tERRO: {evento.nome}: {err.message}") |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
("eventos", "0063_participantesevento_and_more"), |
|||
] |
|||
|
|||
operations = [migrations.RunPython(carga, migrations.RunPython.noop)] |
@ -0,0 +1,36 @@ |
|||
{% load i18n %} |
|||
<div class="row"> |
|||
<div class="col s12"> |
|||
<div class="card"> |
|||
<div class="card-content"> |
|||
<span class="card-title">{{ data_title }}</span> |
|||
<table class="striped"> |
|||
<thead> |
|||
<tr> |
|||
<th>{% translate "Evento" %}</th> |
|||
{% for label in dataset.columns %} |
|||
<th class="right-align">{{ label }}</th> |
|||
{% endfor %} |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{% for row_data in dataset.itertuples %} |
|||
<tr {% if forloop.last %}class="total-row"{% endif %}> |
|||
{% for value in row_data %} |
|||
{% if forloop.first %} |
|||
<td class="left-align">{{ value.0 }} - <strong>{{ value.1 }}</strong></td> |
|||
{% else %} |
|||
<td class="right-align{% if forloop.last %} total-col{% endif %}"> |
|||
{{ value|default:"" }} |
|||
</td> |
|||
{% endif %} |
|||
{% endfor %} |
|||
</tr> |
|||
{% endfor %} |
|||
</tbody> |
|||
</table> |
|||
<blockquote>* {% translate "Alunos que não informaram a UF de residência no Saberes" %}</blockquote> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
@ -0,0 +1,35 @@ |
|||
{% extends 'utils/report/report.html' %} |
|||
{% load i18n %} |
|||
|
|||
{% block extrastyle %} |
|||
{{ block.super }} |
|||
<style type="text/css"> |
|||
tr.total-row td, td.total-col { |
|||
background: var(--darkened-bg); |
|||
border-top: 1px solid var(--hairline-color); |
|||
border-bottom: 1px solid var(--hairline-color); |
|||
color: var(--body-quiet-color); |
|||
font-size: 0.6875rem; |
|||
font-weight: 600; |
|||
line-height: normal; |
|||
padding: 5px 10px; |
|||
text-transform: uppercase; |
|||
} |
|||
</style> |
|||
{% endblock %} |
|||
|
|||
{% block data %} |
|||
{% if not inscritos_uf is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=inscritos_uf data_title=_("Total de alunos inscritos por UF") %} |
|||
{% endif %} |
|||
{% if not aprovados_uf is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=aprovados_uf data_title=_("Total de alunos aprovados por UF") %} |
|||
{% endif %} |
|||
|
|||
{% if not inscritos_regiao is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=inscritos_regiao data_title=_("Total de alunos inscritos por região") %} |
|||
{% endif %} |
|||
{% if not aprovados_regiao is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=aprovados_regiao data_title=_("Total de alunos aprovados por região") %} |
|||
{% endif %} |
|||
{% endblock data %} |
@ -0,0 +1,83 @@ |
|||
{% extends 'utils/report/report_pdf.html' %} |
|||
{% load i18n %} |
|||
|
|||
{% block extra_style %} |
|||
{{ block.super }} |
|||
tr.total-row td, td.total-col { |
|||
background-color: #007433; |
|||
border-top: 1px solid var(--hairline-color); |
|||
border-bottom: 1px solid var(--hairline-color); |
|||
color: white; |
|||
font-weight: 600; |
|||
padding: 5px 10px; |
|||
text-transform: uppercase; |
|||
} |
|||
.card-title { |
|||
font-weight: 600; |
|||
font-size: 1.5em; |
|||
margin: 20px 0; |
|||
} |
|||
table.applied-filter caption { |
|||
font-size: 1.2em; |
|||
font-weight: 600; |
|||
text-transform: uppercase; |
|||
margin-left: 4px; |
|||
} |
|||
table.applied-filter { |
|||
border: 1px solid #e0e0e0; |
|||
border-radius: 5px; |
|||
padding: 5px; |
|||
} |
|||
table.applied-filter tr { |
|||
background-color: white !important; |
|||
font-weight: 600; |
|||
} |
|||
table.applied-filter tr th { |
|||
text-align: left; |
|||
padding-right: 48px; |
|||
width: 20%; |
|||
background-color: unset !important; |
|||
} |
|||
table.applied-filter tr td { |
|||
width: 80%; |
|||
background-color: unset !important; |
|||
padding: 0 24px; |
|||
border-bottom: 1px solid #e0e0e0; |
|||
} |
|||
|
|||
{% endblock %} |
|||
|
|||
{% block main_content %} |
|||
<table class="applied-filter"> |
|||
<caption>{% translate "Filtros aplicados" %}</caption> |
|||
{% for field in form %} |
|||
<tr> |
|||
<th>{{ field.label }}</th> |
|||
<td> |
|||
{% for choice in field.field.choices %} |
|||
{% if choice.0 in field.value %}{{ choice.1 }}, {% endif %} |
|||
{% empty %} |
|||
{{ field.value|default:"" }} |
|||
{% endfor %} |
|||
</td> |
|||
</tr> |
|||
{% endfor %} |
|||
</table> |
|||
<div style="height: 24px; width: 100%;"></div> |
|||
{% if not inscritos_uf is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=inscritos_uf data_title=_("Total de alunos inscritos por UF") %} |
|||
<div class="new-page"> |
|||
{% endif %} |
|||
{% if not aprovados_uf is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=aprovados_uf data_title=_("Total de alunos aprovados por UF") %} |
|||
<div class="new-page"> |
|||
{% endif %} |
|||
{% if not inscritos_regiao is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=inscritos_regiao data_title=_("Total de alunos inscritos por região") %} |
|||
<div class="new-page"> |
|||
{% endif %} |
|||
{% if not aprovados_regiao is None %} |
|||
{% include 'eventos/report/alunos_por_uf_report_view/dataset_snippet.html' with dataset=aprovados_regiao data_title=_("Total de alunos aprovados por região") %} |
|||
{% endif %} |
|||
|
|||
{% endblock %} |
Loading…
Reference in new issue