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):
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,
data_inicio__year__gte=timezone.localdate().year - 2,
).count()
@ -389,7 +389,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
item.status == ItemSolicitado.STATUS_SOLICITADO
and item.evento is not None
):
item.evento.status = Evento.STATUS_ACONFIRMAR
item.evento.status = Evento.STATUS_PREVISTO
self.message_user(
request,
_(
@ -426,7 +426,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
observacao=_(
f"Autorizado por {servidor} com a justificativa '{item.justificativa}"
),
status=Evento.STATUS_CONFIRMADO,
status=Evento.STATUS_AUTORIZADO,
contato=item.solicitacao.contato,
telefone=item.solicitacao.telefone_contato,
)
@ -436,7 +436,7 @@ class SolicitacaoAdmin(CartExportMixin, admin.ModelAdmin):
messages.INFO,
)
else:
item.evento.status = Evento.STATUS_CONFIRMADO
item.evento.status = Evento.STATUS_AUTORIZADO
item.evento.observacao += _(
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"),
]
operations = [
migrations.RunPython(
forwards,
)
]
operations = [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_SOLICITADO, _("Solicitado")),
(STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_REJEITADO, _("Rejeitado")),
(STATUS_REJEITADO, _("Não autorizado")),
(STATUS_CONCLUIDO, _("Concluído")),
)
casa = models.ForeignKey(
@ -196,7 +196,7 @@ class Solicitacao(models.Model):
def get_oficinas_uf(self):
ano_corrente = timezone.localdate().year
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,
tipo_evento__categoria=TipoEvento.CATEGORIA_OFICINA,
).aggregate(
@ -227,7 +227,7 @@ class ItemSolicitado(models.Model):
STATUS_CHOICES = (
(STATUS_SOLICITADO, _("Solicitado")),
(STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_REJEITADO, _("Rejeitado")),
(STATUS_REJEITADO, _("Não autorizado")),
)
solicitacao = models.ForeignKey(Solicitacao, on_delete=models.CASCADE)
tipo_evento = models.ForeignKey(
@ -313,24 +313,18 @@ class Evento(models.Model):
def message(self):
return str(self)
STATUS_PLANEJAMENTO = "E"
STATUS_AGUARDANDOSIGAD = "G"
STATUS_PREVISAO = "P"
STATUS_ACONFIRMAR = "A"
STATUS_CONFIRMADO = "O"
STATUS_PREVISTO = "P"
STATUS_AUTORIZADO = "O"
STATUS_REALIZADO = "R"
STATUS_CANCELADO = "C"
STATUS_ARQUIVADO = "Q"
STATUS_SOBRESTADO = "Q"
STATUS_CHOICES = (
(STATUS_PLANEJAMENTO, _("Em planejamento")),
(STATUS_AGUARDANDOSIGAD, _("Aguardando abertura SIGAD")),
(STATUS_PREVISAO, _("Previsão")),
(STATUS_ACONFIRMAR, _("A confirmar")),
(STATUS_CONFIRMADO, _("Confirmado")),
(STATUS_PREVISTO, _("Previto")),
(STATUS_AUTORIZADO, _("Autorizado")),
(STATUS_REALIZADO, _("Realizado")),
(STATUS_CANCELADO, _("Cancelado")),
(STATUS_ARQUIVADO, _("Arquivado")),
(STATUS_SOBRESTADO, _("Sobrestado")),
)
tipo_evento = models.ForeignKey(
@ -655,7 +649,7 @@ class Evento(models.Model):
if (
self.turma == ""
and self.data_inicio
and self.status == Evento.STATUS_CONFIRMADO
and self.status == Evento.STATUS_AUTORIZADO
and self.tipo_evento.gerar_turma
):
ano = self.data_inicio.year
@ -690,12 +684,7 @@ class Evento(models.Model):
# Salva de novo se o total de participantes mudou #
super().save(*args, **kwargs)
if self.status in [
Evento.STATUS_PLANEJAMENTO,
Evento.STATUS_AGUARDANDOSIGAD,
Evento.STATUS_PREVISAO,
Evento.STATUS_ACONFIRMAR,
]:
if self.status == Evento.STATUS_PREVISTO:
if (
self.cronograma_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}),
Evento.STATUS_CHOICES,
[
"assignment",
"hourglass_empty",
"access_time",
"thumbs_up_down",
"thumb_up",
"done_all",
"mood_bad",
@ -176,7 +173,7 @@ class EventoListView(ListView):
def get_queryset(self):
queryset = super().get_queryset()
return queryset.filter(
status=Evento.STATUS_CONFIRMADO, publicar=True
status=Evento.STATUS_AUTORIZADO, publicar=True
).order_by("data_inicio")
@xframe_options_exempt

2
sigi/apps/ocorrencias/views.py

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

Loading…
Cancel
Save