Browse Source

Não criar cronograma se evento realizado/cancelado

pull/159/head
Sesostris Vieira 2 years ago
parent
commit
e774300347
  1. 60
      sigi/apps/eventos/models.py

60
sigi/apps/eventos/models.py

@ -13,13 +13,20 @@ from tinymce.models import HTMLField
class TipoEvento(models.Model):
CATEGORIA_CURSO = "C"
CATEGORIA_ENCONTRO = "E"
CATEGORIA_OFICINA = "O"
CATEGORIA_SEMINARIO = "S"
CATEGORIA_VISITA = "V"
CATEGORIA_CHOICES = (
("C", _("Curso")),
("E", _("Encontro")),
("O", _("Oficina")),
("S", _("Seminário")),
("V", _("Visita")),
(CATEGORIA_CURSO, _("Curso")),
(CATEGORIA_ENCONTRO, _("Encontro")),
(CATEGORIA_OFICINA, _("Oficina")),
(CATEGORIA_SEMINARIO, _("Seminário")),
(CATEGORIA_VISITA, _("Visita")),
)
nome = models.CharField(_("Nome"), max_length=100)
categoria = models.CharField(
_("Categoaria"), max_length=1, choices=CATEGORIA_CHOICES
@ -36,15 +43,24 @@ class TipoEvento(models.Model):
class Evento(models.Model):
STATUS_PLANEJAMENTO = "E"
STATUS_AGUARDANDOSIGAD = "G"
STATUS_PREVISAO = "P"
STATUS_ACONFIRMAR = "A"
STATUS_CONFIRMADO = "O"
STATUS_REALIZADO = "R"
STATUS_CANCELADO = "C"
STATUS_ARQUIVADO = "Q"
STATUS_CHOICES = (
("E", _("Em planejamento")),
("G", _("Aguardando abertura SIGAD")),
("P", _("Previsão")),
("A", _("A confirmar")),
("O", _("Confirmado")),
("R", _("Realizado")),
("C", _("Cancelado")),
("Q", _("Arquivado")),
(STATUS_PLANEJAMENTO, _("Em planejamento")),
(STATUS_AGUARDANDOSIGAD, _("Aguardando abertura SIGAD")),
(STATUS_PREVISAO, _("Previsão")),
(STATUS_ACONFIRMAR, _("A confirmar")),
(STATUS_CONFIRMADO, _("Confirmado")),
(STATUS_REALIZADO, _("Realizado")),
(STATUS_CANCELADO, _("Cancelado")),
(STATUS_ARQUIVADO, _("Arquivado")),
)
tipo_evento = models.ForeignKey(
@ -133,7 +149,7 @@ class Evento(models.Model):
return self.num_processo
def save(self, *args, **kwargs):
if self.status != "C":
if self.status != Evento.STATUS_CANCELADO:
self.data_cancelamento = None
self.motivo_cancelamento = ""
if self.data_inicio > self.data_termino:
@ -144,6 +160,12 @@ class Evento(models.Model):
total = total["total"]
if total and total > 0:
self.total_participantes = total
if self.status in [
Evento.STATUS_PLANEJAMENTO,
Evento.STATUS_AGUARDANDOSIGAD,
Evento.STATUS_PREVISAO,
Evento.STATUS_ACONFIRMAR,
]:
if (
self.cronograma_set.count() == 0
and self.tipo_evento.checklist_set.count() > 0
@ -272,10 +294,14 @@ class Convite(models.Model):
class Modulo(models.Model):
TIPO_AULA = "A"
TIPO_PALESTRA = "P"
TIPO_APRESENTACAO = "R"
TIPO_CHOICES = (
("A", _("Aula")),
("P", _("Palestra")),
("R", _("Apresentação")),
(TIPO_AULA, _("Aula")),
(TIPO_PALESTRA, _("Palestra")),
(TIPO_APRESENTACAO, _("Apresentação")),
)
evento = models.ForeignKey(
Evento, verbose_name=_("Evento"), on_delete=models.CASCADE

Loading…
Cancel
Save