Browse Source

Novos statuses de evento e solicitação de eventos. Gertiq #160524

pull/167/head
Sesóstris Vieira 1 year ago
parent
commit
1e7959c10e
  1. 8
      sigi/apps/eventos/admin.py
  2. 6
      sigi/apps/eventos/migrations/0048_evento_set_defaults.py
  3. 45
      sigi/apps/eventos/migrations/0051_ajusta_status_evento.py
  4. 55
      sigi/apps/eventos/migrations/0052_alter_evento_status_alter_itemsolicitado_status_and_more.py
  5. 33
      sigi/apps/eventos/models.py
  6. 5
      sigi/apps/eventos/views.py
  7. 2
      sigi/apps/ocorrencias/views.py

8
sigi/apps/eventos/admin.py

@ -79,7 +79,7 @@ class SolicitacaoResource(LabeledResourse):
def dehydrate_oficinas_uf(sekf, obj): def dehydrate_oficinas_uf(sekf, obj):
return Evento.objects.filter( return Evento.objects.filter(
status__in=[Evento.STATUS_CONFIRMADO, Evento.STATUS_REALIZADO], status__in=[Evento.STATUS_AUTORIZADO, Evento.STATUS_REALIZADO],
casa_anfitria__municipio__uf=obj.casa.municipio.uf, casa_anfitria__municipio__uf=obj.casa.municipio.uf,
data_inicio__year__gte=timezone.localdate().year - 2, data_inicio__year__gte=timezone.localdate().year - 2,
).count() ).count()
@ -389,7 +389,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
item.status == ItemSolicitado.STATUS_SOLICITADO item.status == ItemSolicitado.STATUS_SOLICITADO
and item.evento is not None and item.evento is not None
): ):
item.evento.status = Evento.STATUS_ACONFIRMAR item.evento.status = Evento.STATUS_PREVISTO
self.message_user( self.message_user(
request, request,
_( _(
@ -426,7 +426,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
observacao=_( observacao=_(
f"Autorizado por {servidor} com a justificativa '{item.justificativa}" f"Autorizado por {servidor} com a justificativa '{item.justificativa}"
), ),
status=Evento.STATUS_CONFIRMADO, status=Evento.STATUS_AUTORIZADO,
contato=item.solicitacao.contato, contato=item.solicitacao.contato,
telefone=item.solicitacao.telefone_contato, telefone=item.solicitacao.telefone_contato,
) )
@ -436,7 +436,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
messages.INFO, messages.INFO,
) )
else: else:
item.evento.status = Evento.STATUS_CONFIRMADO item.evento.status = Evento.STATUS_AUTORIZADO
item.evento.observacao += _( item.evento.observacao += _(
f"\nConfirmado por {servidor} com a justificativa: {item.justificativa}" f"\nConfirmado por {servidor} com a justificativa: {item.justificativa}"
) )

6
sigi/apps/eventos/migrations/0048_evento_set_defaults.py

@ -31,8 +31,4 @@ class Migration(migrations.Migration):
("eventos", "0047_alter_evento_contato_inscricao_and_more"), ("eventos", "0047_alter_evento_contato_inscricao_and_more"),
] ]
operations = [ operations = [migrations.RunPython(forwards)]
migrations.RunPython(
forwards,
)
]

45
sigi/apps/eventos/migrations/0051_ajusta_status_evento.py

@ -0,0 +1,45 @@
# Generated by Django 4.2.4 on 2023-10-03 13:51
from django.db import migrations
# Os status dos eventos serão simplificados para o seguinte:
#
# STATUS_PREVISTO substituirá o atual STATUS_PREVISAO
# STATUS_AUTORIZADO substituirá o atual STATUS_CONFIRMADO
# STATUS_SOBRESTADO substituirá o atual STATUS_ARQUIVADO
# STATUS_CANCELADO mantém igual
# STATUS_REALIZADO mantém igual
#
# Os eventos que estejam em um status que será eliminado deverá migrar
# para outro status seguindo as regras abaixo:
#
# Status atual => muda para
# ---------------------- ---------------
# STATUS_PLANEJAMENTO => STATUS_PREVISAO
# STATUS_AGUARDANDOSIGAD => STATUS_PREVISAO
# STATUS_ACONFIRMAR => STATUS_PREVISAO
def forwards(apps, schema_editor):
Evento = apps.get_model("eventos", "Evento")
STATUS_PLANEJAMENTO = "E"
STATUS_AGUARDANDOSIGAD = "G"
STATUS_PREVISAO = "P"
STATUS_ACONFIRMAR = "A"
Evento.objects.filter(
status__in=[
STATUS_PLANEJAMENTO,
STATUS_AGUARDANDOSIGAD,
STATUS_ACONFIRMAR,
]
).update(status=STATUS_PREVISAO)
class Migration(migrations.Migration):
dependencies = [
("eventos", "0050_alter_evento_total_participantes"),
]
operations = [migrations.RunPython(forwards)]

55
sigi/apps/eventos/migrations/0052_alter_evento_status_alter_itemsolicitado_status_and_more.py

@ -0,0 +1,55 @@
# Generated by Django 4.2.4 on 2023-10-04 11:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("eventos", "0051_ajusta_status_evento"),
]
operations = [
migrations.AlterField(
model_name="evento",
name="status",
field=models.CharField(
choices=[
("P", "Previto"),
("O", "Autorizado"),
("R", "Realizado"),
("C", "Cancelado"),
("Q", "Sobrestado"),
],
max_length=1,
verbose_name="Status",
),
),
migrations.AlterField(
model_name="itemsolicitado",
name="status",
field=models.CharField(
choices=[
("S", "Solicitado"),
("A", "Autorizado"),
("R", "Não autorizado"),
],
default="S",
verbose_name="status",
),
),
migrations.AlterField(
model_name="solicitacao",
name="status",
field=models.CharField(
choices=[
("S", "Solicitado"),
("A", "Autorizado"),
("R", "Não autorizado"),
("C", "Concluído"),
],
default="S",
max_length=1,
verbose_name="Status",
),
),
]

33
sigi/apps/eventos/models.py

@ -90,7 +90,7 @@ class Solicitacao(models.Model):
STATUS_CHOICES = ( STATUS_CHOICES = (
(STATUS_SOLICITADO, _("Solicitado")), (STATUS_SOLICITADO, _("Solicitado")),
(STATUS_AUTORIZADO, _("Autorizado")), (STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_REJEITADO, _("Rejeitado")), (STATUS_REJEITADO, _("Não autorizado")),
(STATUS_CONCLUIDO, _("Concluído")), (STATUS_CONCLUIDO, _("Concluído")),
) )
casa = models.ForeignKey( casa = models.ForeignKey(
@ -196,7 +196,7 @@ class Solicitacao(models.Model):
def get_oficinas_uf(self): def get_oficinas_uf(self):
ano_corrente = timezone.localdate().year ano_corrente = timezone.localdate().year
counters = Evento.objects.filter( counters = Evento.objects.filter(
status__in=[Evento.STATUS_CONFIRMADO, Evento.STATUS_REALIZADO], status__in=[Evento.STATUS_AUTORIZADO, Evento.STATUS_REALIZADO],
casa_anfitria__municipio__uf=self.casa.municipio.uf, casa_anfitria__municipio__uf=self.casa.municipio.uf,
tipo_evento__categoria=TipoEvento.CATEGORIA_OFICINA, tipo_evento__categoria=TipoEvento.CATEGORIA_OFICINA,
).aggregate( ).aggregate(
@ -227,7 +227,7 @@ class ItemSolicitado(models.Model):
STATUS_CHOICES = ( STATUS_CHOICES = (
(STATUS_SOLICITADO, _("Solicitado")), (STATUS_SOLICITADO, _("Solicitado")),
(STATUS_AUTORIZADO, _("Autorizado")), (STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_REJEITADO, _("Rejeitado")), (STATUS_REJEITADO, _("Não autorizado")),
) )
solicitacao = models.ForeignKey(Solicitacao, on_delete=models.CASCADE) solicitacao = models.ForeignKey(Solicitacao, on_delete=models.CASCADE)
tipo_evento = models.ForeignKey( tipo_evento = models.ForeignKey(
@ -313,24 +313,18 @@ class Evento(models.Model):
def message(self): def message(self):
return str(self) return str(self)
STATUS_PLANEJAMENTO = "E" STATUS_PREVISTO = "P"
STATUS_AGUARDANDOSIGAD = "G" STATUS_AUTORIZADO = "O"
STATUS_PREVISAO = "P"
STATUS_ACONFIRMAR = "A"
STATUS_CONFIRMADO = "O"
STATUS_REALIZADO = "R" STATUS_REALIZADO = "R"
STATUS_CANCELADO = "C" STATUS_CANCELADO = "C"
STATUS_ARQUIVADO = "Q" STATUS_SOBRESTADO = "Q"
STATUS_CHOICES = ( STATUS_CHOICES = (
(STATUS_PLANEJAMENTO, _("Em planejamento")), (STATUS_PREVISTO, _("Previto")),
(STATUS_AGUARDANDOSIGAD, _("Aguardando abertura SIGAD")), (STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_PREVISAO, _("Previsão")),
(STATUS_ACONFIRMAR, _("A confirmar")),
(STATUS_CONFIRMADO, _("Confirmado")),
(STATUS_REALIZADO, _("Realizado")), (STATUS_REALIZADO, _("Realizado")),
(STATUS_CANCELADO, _("Cancelado")), (STATUS_CANCELADO, _("Cancelado")),
(STATUS_ARQUIVADO, _("Arquivado")), (STATUS_SOBRESTADO, _("Sobrestado")),
) )
tipo_evento = models.ForeignKey( tipo_evento = models.ForeignKey(
@ -655,7 +649,7 @@ class Evento(models.Model):
if ( if (
self.turma == "" self.turma == ""
and self.data_inicio and self.data_inicio
and self.status == Evento.STATUS_CONFIRMADO and self.status == Evento.STATUS_AUTORIZADO
and self.tipo_evento.gerar_turma and self.tipo_evento.gerar_turma
): ):
ano = self.data_inicio.year ano = self.data_inicio.year
@ -690,12 +684,7 @@ class Evento(models.Model):
# Salva de novo se o total de participantes mudou # # Salva de novo se o total de participantes mudou #
super().save(*args, **kwargs) super().save(*args, **kwargs)
if self.status in [ if self.status == Evento.STATUS_PREVISTO:
Evento.STATUS_PLANEJAMENTO,
Evento.STATUS_AGUARDANDOSIGAD,
Evento.STATUS_PREVISAO,
Evento.STATUS_ACONFIRMAR,
]:
if ( if (
self.cronograma_set.count() == 0 self.cronograma_set.count() == 0
and self.tipo_evento.checklist_set.count() > 0 and self.tipo_evento.checklist_set.count() > 0

5
sigi/apps/eventos/views.py

@ -103,10 +103,7 @@ def calendario(request):
lambda x, y: (x[0], {"label": x[1], "icon": y}), lambda x, y: (x[0], {"label": x[1], "icon": y}),
Evento.STATUS_CHOICES, Evento.STATUS_CHOICES,
[ [
"assignment",
"hourglass_empty",
"access_time", "access_time",
"thumbs_up_down",
"thumb_up", "thumb_up",
"done_all", "done_all",
"mood_bad", "mood_bad",
@ -176,7 +173,7 @@ class EventoListView(ListView):
def get_queryset(self): def get_queryset(self):
queryset = super().get_queryset() queryset = super().get_queryset()
return queryset.filter( return queryset.filter(
status=Evento.STATUS_CONFIRMADO, publicar=True status=Evento.STATUS_AUTORIZADO, publicar=True
).order_by("data_inicio") ).order_by("data_inicio")
@xframe_options_exempt @xframe_options_exempt

2
sigi/apps/ocorrencias/views.py

@ -321,7 +321,7 @@ class OficinaChangeView(BaseOcorrenciaChangeView):
data_termino=dados["data_termino"], data_termino=dados["data_termino"],
casa_anfitria=ocorrencia.casa_legislativa, casa_anfitria=ocorrencia.casa_legislativa,
municipio=ocorrencia.casa_legislativa.municipio, municipio=ocorrencia.casa_legislativa.municipio,
status=Evento.STATUS_ACONFIRMAR, status=Evento.STATUS_PREVISTO,
) )
evento.save() evento.save()
total += 1 total += 1

Loading…
Cancel
Save