From 81dea10d04a975f890800e2012d73298131a18b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ses=C3=B3stris=20Vieira?= Date: Wed, 25 Oct 2023 11:11:41 -0300 Subject: [PATCH] Atendimento gertiqs #165751 e #165984 (3) --- ..._anfitria_senado_oficina_remove_convite.py | 37 +++++++++++++++++++ sigi/apps/eventos/models.py | 12 ++++++ 2 files changed, 49 insertions(+) create mode 100644 sigi/apps/eventos/migrations/0053_visita_anfitria_senado_oficina_remove_convite.py diff --git a/sigi/apps/eventos/migrations/0053_visita_anfitria_senado_oficina_remove_convite.py b/sigi/apps/eventos/migrations/0053_visita_anfitria_senado_oficina_remove_convite.py new file mode 100644 index 0000000..6839612 --- /dev/null +++ b/sigi/apps/eventos/migrations/0053_visita_anfitria_senado_oficina_remove_convite.py @@ -0,0 +1,37 @@ +# Generated by Django 4.2.4 on 2023-10-25 13:51 + +from django.db import migrations + + +def forwards(apps, schema_editor): + Evento = apps.get_model("eventos", "Evento") + Orgao = apps.get_model("casas", "orgao") + + # Define casa_anfitria = senado para todas as visitas + # Gertik #165751 (2) + + senado = Orgao.objects.get(tipo__sigla="SF") + + Evento.objects.filter(tipo_evento__categoria="V").update( + casa_anfitria=senado + ) + + # Deletar todos os convites (casas convidadas) das oficinas que têm vínculo + # com o saberes moodle_courseid not NULL + # Gertik #165984: https://gertiq.senado.leg.br/redmine/issues/165984#3em-seguida-DELETAR-as-Casas-convidadas-DOS-registros-de-OFICINAS + + for oficina in Evento.objects.filter(tipo_evento__categoria="O").exclude( + moodle_courseid=None + ): + oficina.convite_set.all().delete() + + +class Migration(migrations.Migration): + dependencies = [ + ( + "eventos", + "0052_alter_evento_status_alter_itemsolicitado_status_and_more", + ), + ] + + operations = [migrations.RunPython(forwards, migrations.RunPython.noop)] diff --git a/sigi/apps/eventos/models.py b/sigi/apps/eventos/models.py index bcc6ba3..9a744b8 100644 --- a/sigi/apps/eventos/models.py +++ b/sigi/apps/eventos/models.py @@ -634,6 +634,18 @@ class Evento(models.Model): self.save() def save(self, *args, **kwargs): + # Força que a casa anfitriã de todas as visitas seja Senado + # Gertik #165751 + if self.tipo_evento.categoria == TipoEvento.CATEGORIA_VISITA: + self.casa_anfitria = Orgao.objects.get(tipo__sigla="SF") + # Limpa casas convidadas se a categoria do evento for Oficina + # e está vinculado com um curso no Saberes. + # Gertik #165984: https://gertiq.senado.leg.br/redmine/issues/165984#3em-seguida-DELETAR-as-Casas-convidadas-DOS-registros-de-OFICINAS + if ( + self.tipo_evento.categoria == TipoEvento.CATEGORIA_OFICINA + and self.moodle_courseid is not None + ): + self.convite_set.all().delete() if self.status != Evento.STATUS_CANCELADO: self.data_cancelamento = None self.motivo_cancelamento = ""