# -*- coding: utf-8 -*- from django.db import models from colorful.fields import RGBColorField from django.contrib.auth.models import User from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError class Photo(models.Model): PHOTO_PLACEMENT = ( ('home_join', _("Rejoignez nous")), ('home_contact', _("Nous Contacter")), ('home_rep', _("Répertoire de l'acceuil")), ('login', _('Connexion')), ('change_membre', _('Modification du profil')), ('inscription_membre', _('Inscription')), ('home', _('Calendrier connecté')), ('liste', _('Agenda public')), ('part', _('Répertoire')), ('instru', _('Instruments')), ('n',_("N'apparait pas")) ) def validate_image(fieldfile_obj): filesize = fieldfile_obj.file.size megabyte_limit = 1.0 if filesize > megabyte_limit*1024*1024: raise ValidationError("Max file size is %sMB" % str(megabyte_limit)) name = models.CharField(max_length=127) cat = models.CharField(max_length = 127,choices = PHOTO_PLACEMENT,default='n') auteur = models.CharField(max_length=127,verbose_name=_("Auteur de l'image"),null=True,blank=True) url = models.URLField(verbose_name=_("Lien vers le site de l'auteur"),null=True,blank=True) color = RGBColorField(_("Couleur du nom de l'auteur"),default='#ffffff') image = models.ImageField(upload_to='deco',default=None,validators=[validate_image]) def __str__(self): return self.name class Meta: verbose_name = _("Photo") verbose_name_plural = _("Photos") class ErnestoUser(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile") is_ernesto = models.BooleanField(_("Membre de l'Ernestophone"), default=True) is_chef = models.BooleanField(_("Chef Fanfare"), default=False) phone = models.CharField(_("Téléphone"), max_length=20, blank=True ,help_text= _("seulement visible par les chef·fe·s")) INSTRU_CHOICES = [ ('Clarinette', _('Clarinette')), ('Euphonium', _('Euphonium')), ('Percussion', _('Percussion')), ('Piccolo', _('Piccolo')), ('Saxophone Alto', _('Saxophone Alto')), ('Saxophone Ténor', _('Saxophone Ténor')), ('Saxophone Baryton', _('Saxophone Baryton')), ('Souba', _('Souba')), ('Trombone', _('Trombone')), ('Trompette', _('Trompette')), ('Autre', _('Autre')), ('ne sais pas', _('Je ne sais pas encore')), ] COLORS_CHOICES = [ ('#e4522f#ffffff', _('Orange et Blanc')), ('#ffffff#000000', _('Blanc et Noir')), ('#A8107C#000000', _('Rose et Noir')), ('#10A4A8#ffffff', _('Bleu et Blanc')), ('#26A810#000000', _('Vert et Noir')), ('#A81026#ffffff', _('Rouge et Blanc')), ('#E3E54C#000000', _('Jaune et Noir')), ('autre',_('Autre')), ] instru = models.CharField(_("Instrument joué"), max_length=40, blank=False,choices=INSTRU_CHOICES,default='ne sais pas') instru_autre = models.CharField(_("Lequel ?"),null=True,max_length=100,blank=True) slug = models.CharField(max_length=7, editable=False, unique=True) doodlename = models.CharField(_("Nom pour le doodle"), max_length=30, blank=True) trombonoscope = models.CharField(_('Je souhaite apparaitre dans le trombonoscope :'),max_length=3,blank=False,null=True,choices=[('non',_('Non')),('o_a',_('Oui en tant que fanfaron actuel')),('o_v',_('Oui en tant que vie·ille·ux'))],default='non') instru_trombonoscope = models.CharField(_("Instrument affiché sur le trombonoscope"), max_length=30, blank=True) nom_trombonoscope = models.CharField(_("Nom affiché sur le trombonoscope"), max_length=30, blank=True) trombonoscope_colors = models.CharField(_("Couleur du profil"), max_length=40, blank=False,choices=COLORS_CHOICES,default='OrangeBlanc') trombonoscope_fond = RGBColorField(_("Couleur de fond du profil"),default='#e4522f') trombonoscope_texte = RGBColorField(_("Couleur du texte du profil"),default='#ffffff') multi_instrumentiste = models.CharField(_("Je suis capable de jouer d'un autre instrument en manche :"),default='Non',null=False,max_length=3,choices=[('Non',_('Non')),('Oui',_('Oui'))],help_text= _("Seulement si tu connais les partitions par coeur")) instru_bonus = models.CharField(_("Le·s·quel·s ?"),null=True,max_length=100,blank=True) class Meta: verbose_name = _("Profil Ernestophoniste") verbose_name_plural = _("Profil Ernestophoniste") def __str__(self): return self.user.username def get_doodlename(self): if self.doodlename: return self.doodlename return self.user.username class VideoGallery(models.Model): name = models.CharField(max_length=127) order = models.IntegerField(verbose_name=_("ordre")) url = models.URLField() def __str__(self): return self.name class Meta: verbose_name = _("Video") verbose_name_plural = _("Videos")