ernestophone.ens.fr/calendrier/models.py

74 lines
2.3 KiB
Python

import uuid
from django.db import models
from django.utils.translation import gettext_lazy as _
from gestion.models import INSTRU_CHOICES
from gestion.models import ErnestoUser
ANSWERS = (
("oui", _("Oui")),
("non", _("Non")),
("pe", _("Peut-etre")),
)
class Event(models.Model):
nom = models.CharField(max_length=100)
nomcourt = models.CharField(max_length=9, verbose_name=_("Nom court"))
date = models.DateField()
debut = models.TimeField()
fin = models.TimeField(blank=True, null=True)
slug = models.CharField(
max_length=7, editable=False, unique=True, default=uuid.uuid1
)
lieu = models.CharField(max_length=200)
description = models.TextField(blank=True)
description_en = models.TextField(blank=True)
desc_users = models.TextField(
blank=True,
verbose_name=_("Infos (visible seulement des fanfaron·ne·s)"),
null=True,
)
desc_users_en = models.TextField(
blank=True,
verbose_name=_("Infos en anglais (visible seulement des fanfaron·ne·s"),
null=True,
)
CALENDRIER_CHOICES = [
("F", _("Visible seulement par les fanfarons")),
("T", _("Afficher dans le calendrier pour tous")),
("H", _("Hall of fame")),
("C", _("Visible seulement par les cheff·e·s")),
("D", _("Visible seulement par les cheff·e·s et sur l'agenda public")),
]
calendrier = models.CharField(
max_length=1,
choices=CALENDRIER_CHOICES,
default="F",
)
def __str__(self):
return self.nom
class Meta:
verbose_name = _("Evenement")
class Participants(models.Model):
event = models.ForeignKey(Event, on_delete=models.CASCADE)
participant = models.ForeignKey(ErnestoUser, on_delete=models.CASCADE)
reponse = models.CharField(
_("Réponse"), max_length=20, default="non", choices=ANSWERS
)
instrument = models.CharField(max_length=50, blank=True, null=True, choices=INSTRU_CHOICES)
instrument_autre = models.CharField(max_length=50, blank=True, null=True)
dont_play_main = models.CharField(
_("Je veux jouer d'un instrument different de mon instrument principal:"),
default="Non",
null=False,
max_length=3,
choices=[("Non", _("Non")), ("Oui", _("Oui"))],
)
details = models.CharField(max_length=50, blank=True)