Browse Source

Ajustes solicitados na homologação dos gertiqs #163985 #163934 #161638 e #160528

pull/166/head 3.0.48
Sesóstris Vieira 1 year ago
parent
commit
749e0ce8c8
  1. 67
      sigi/apps/eventos/admin.py
  2. 30
      sigi/apps/eventos/migrations/0043_alter_solicitacao_estimativa_casas_and_more.py
  3. 3
      sigi/apps/eventos/models.py

67
sigi/apps/eventos/admin.py

@ -19,6 +19,7 @@ from import_export.fields import Field
from tinymce.models import HTMLField
from tinymce.widgets import AdminTinyMCE
from weasyprint import HTML
from sigi.apps.contatos.models import UnidadeFederativa
from sigi.apps.eventos.models import (
Checklist,
Cronograma,
@ -110,6 +111,7 @@ class EventoResource(ValueLabeledResource):
"casa_anfitria__bairro",
"casa_anfitria__municipio__nome",
"casa_anfitria__municipio__uf__sigla",
"casa_anfitria__municipio__uf__regiao",
"casa_anfitria__cep",
"casa_anfitria__email",
"local",
@ -142,6 +144,11 @@ class EventoResource(ValueLabeledResource):
def dehydrate_status(self, obj):
return dict(Evento.STATUS_CHOICES)[obj["status"]]
def dehydrate_casa_anfitria__municipio__uf__regiao(self, obj):
return dict(UnidadeFederativa.REGIAO_CHOICES)[
obj["casa_anfitria__municipio__uf__regiao"]
]
class ChecklistInline(admin.StackedInline):
model = Checklist
@ -543,15 +550,18 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
date_hierarchy = "data_inicio"
list_display = (
"get_banner",
"publicar",
"get_tipo_evento",
"nome",
"turma",
"status",
"publicar",
"link_sigad",
"get_link_sigad",
"data_inicio",
"data_termino",
"get_municipio",
"get_uf",
"get_regiao",
"get_populacao",
"solicitante",
"total_participantes",
)
@ -562,6 +572,8 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
("num_processo", EmptyFilter),
"tipo_evento",
"tipo_evento__categoria",
"casa_anfitria__municipio__uf",
"casa_anfitria__municipio__uf__regiao",
("data_inicio", DateRangeFilter),
"virtual",
"solicitante",
@ -587,6 +599,21 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
)
save_as = True
@admin.display(description=_("banner"))
def get_banner(self, obj):
if obj.banner:
return mark_safe(
f'<img src="{obj.banner.url}" width="60" height="60" />'
)
else:
return ""
@admin.display(description=_("SIGAD"), ordering="num_processo")
def get_link_sigad(self, obj):
if obj.pk is None:
return ""
return mark_safe(obj.get_sigad_url())
@admin.display(description=_("Tipo Evento"), ordering="tipo_evento__nome")
def get_tipo_evento(self, obj):
return obj.tipo_evento.nome
@ -596,26 +623,38 @@ class EventoAdmin(CartExportMixin, admin.ModelAdmin):
)
def get_municipio(self, obj):
if obj.casa_anfitria:
return str(obj.casa_anfitria.municipio)
return obj.casa_anfitria.municipio.nome
else:
return None
@admin.display(
description=_("número do processo SIGAD"), ordering="num_processo"
description=_("UF"), ordering="casa_anfitria__municipio__uf"
)
def link_sigad(self, obj):
if obj.pk is None:
return ""
return mark_safe(obj.get_sigad_url())
def get_uf(self, obj):
if obj.casa_anfitria:
return obj.casa_anfitria.municipio.uf.nome
else:
return None
@admin.display(description=_("banner"))
def get_banner(self, obj):
if obj.banner:
return mark_safe(
f'<img src="{obj.banner.url}" width="60" height="60" />'
@admin.display(
description=_("Região"),
ordering="casa_anfitria__municipio__uf__regiao",
)
def get_regiao(self, obj):
if obj.casa_anfitria:
return obj.casa_anfitria.municipio.uf.get_regiao_display()
else:
return ""
return None
@admin.display(
description=_("População"),
ordering="casa_anfitria__municipio__populacao",
)
def get_populacao(self, obj):
if obj.casa_anfitria:
return obj.casa_anfitria.municipio.populacao
else:
return None
def render_change_form(self, request, context, add, change, form_url, obj):
perm = request.user.has_perm("eventos.createcourse_evento")

30
sigi/apps/eventos/migrations/0043_alter_solicitacao_estimativa_casas_and_more.py

@ -0,0 +1,30 @@
# Generated by Django 4.2.4 on 2023-09-18 11:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("eventos", "0042_atualiza_status_solicitacao"),
]
operations = [
migrations.AlterField(
model_name="solicitacao",
name="estimativa_casas",
field=models.PositiveIntegerField(
default=0,
help_text="estimativa de quantas Casas participarão dos eventos",
verbose_name="estimativa de Casas participantes",
),
),
migrations.AlterField(
model_name="solicitacao",
name="estimativa_servidores",
field=models.PositiveIntegerField(
default=0,
help_text="estimativa de quantos Servidores participarão dos eventos",
verbose_name="estimativa de servidores participantes",
),
),
]

3
sigi/apps/eventos/models.py

@ -143,12 +143,14 @@ class Solicitacao(models.Model):
estimativa_casas = models.PositiveIntegerField(
_("estimativa de Casas participantes"),
help_text=_("estimativa de quantas Casas participarão dos eventos"),
default=0,
)
estimativa_servidores = models.PositiveIntegerField(
_("estimativa de servidores participantes"),
help_text=_(
"estimativa de quantos Servidores participarão dos eventos"
),
default=0,
)
class Meta:
@ -185,6 +187,7 @@ class Solicitacao(models.Model):
counters = Evento.objects.filter(
status__in=[Evento.STATUS_CONFIRMADO, Evento.STATUS_REALIZADO],
casa_anfitria__municipio__uf=self.casa.municipio.uf,
tipo_evento__categoria=TipoEvento.CATEGORIA_OFICINA,
).aggregate(
total=Count("id"),
no_ano=Count("id", filter=Q(data_inicio__year=ano_corrente)),

Loading…
Cancel
Save