Browse Source

Ajustes solicitados na homologação do Gertiq #163655

pull/166/head 3.0.51
Sesóstris Vieira 1 year ago
parent
commit
85ee68855c
  1. 24
      sigi/apps/eventos/migrations/0050_alter_evento_total_participantes.py
  2. 25
      sigi/apps/eventos/models.py

24
sigi/apps/eventos/migrations/0050_alter_evento_total_participantes.py

@ -0,0 +1,24 @@
# Generated by Django 4.2.4 on 2023-10-03 12:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
(
"eventos",
"0049_evento_aprovados_saberes_evento_data_sincronizacao_and_more",
),
]
operations = [
migrations.AlterField(
model_name="evento",
name="total_participantes",
field=models.PositiveIntegerField(
default=0,
help_text="Se existe evento relacionado no saberes, mostra o número de participantes aprovados naquela plataforma. Senão, mostra a somatória de participantes das Casas convidadas ou o número de participantes informado manualmente pelo usuário.",
verbose_name="total de participantes/aprovados",
),
),
]

25
sigi/apps/eventos/models.py

@ -411,13 +411,13 @@ class Evento(models.Model):
observacao = models.TextField(_("Observações e anotações"), blank=True) observacao = models.TextField(_("Observações e anotações"), blank=True)
publico_alvo = models.TextField(_("Público alvo"), blank=True) publico_alvo = models.TextField(_("Público alvo"), blank=True)
total_participantes = models.PositiveIntegerField( total_participantes = models.PositiveIntegerField(
_("total de participantes"), _("total de participantes/aprovados"),
default=0, default=0,
help_text=_( help_text=_(
"Se informar quantidade de participantes na aba de " "Se existe evento relacionado no saberes, mostra o número de "
"convites, este campo será ajustado com a somatória " "participantes aprovados naquela plataforma. Senão, mostra a "
"dos participantes naquela aba. Senão, será igual ao número de " "somatória de participantes das Casas convidadas ou o número "
"inscritos no Saberes." "de participantes informado manualmente pelo usuário."
), ),
) )
inscritos_saberes = models.PositiveIntegerField( inscritos_saberes = models.PositiveIntegerField(
@ -632,8 +632,10 @@ class Evento(models.Model):
self.aprovados_saberes = aprovados self.aprovados_saberes = aprovados
self.data_sincronizacao = timezone.localtime() self.data_sincronizacao = timezone.localtime()
if self.total_participantes == 0: # O total de participantes em eventos que possuem curso no Saberes
self.total_participantes = self.inscritos_saberes # é sempre o número de aprovados no Saberes, independente do que o
# usuário tenha digitado nesse campo ou no inline de casas convidadas
self.total_participantes = self.aprovados_saberes
self.save() self.save()
@ -671,10 +673,15 @@ class Evento(models.Model):
proximo = int(ultimo_evento.turma[:2]) + 1 proximo = int(ultimo_evento.turma[:2]) + 1
self.turma = f"{proximo:02}/{ano:04}" self.turma = f"{proximo:02}/{ano:04}"
# É preciso salvar para poder usar o relacionamento com convites # # É preciso salvar para poder usar o relacionamento com convites
super().save(*args, **kwargs) super().save(*args, **kwargs)
if self.total_participantes == 0: if self.total_participantes == 0 and self.moodle_courseid is None:
# Só calcula total_participantes se não tem curso relacionado
# no ambiente Saberes. Se tiver curso no saberes, este campo será
# preenchido com o total de aprovados quando da sincronização
# veja o método self.sincroniza.saberes()
total = self.convite_set.aggregate( total = self.convite_set.aggregate(
total=Sum("qtde_participantes") total=Sum("qtde_participantes")
)["total"] )["total"]

Loading…
Cancel
Save