import os from django.conf import settings from django.db import models from django.db.models.functions import Lower from django.utils.translation import gettext_lazy as _ class Category(models.Model): name = models.CharField(max_length=127) order = models.IntegerField(verbose_name=_("ordre")) nom_en = models.CharField(max_length=100,null=True,blank=True) def __str__(self): return self.name class Meta: verbose_name = _("Categorie") verbose_name_plural = _("Categories") ordering = ('order',) class Partition(models.Model): nom = models.CharField(max_length=100) part = models.FileField(upload_to="partitions/") morceau = models.ForeignKey('PartitionSet', on_delete=models.CASCADE) def __str__(self): return self.nom def delete(self, *args, **kwargs): os.remove(os.path.join(settings.MEDIA_ROOT, self.part.name)) super(Partition, self).delete(*args, **kwargs) class Meta: verbose_name = _('Morceau') verbose_name_plural = _('Morceaux') ordering = (Lower('nom'),) class PartitionSet(models.Model): nom = models.CharField(max_length=100) auteur = models.CharField(max_length=100) category = models.ForeignKey( Category, on_delete=models.PROTECT, verbose_name=_("Type de partition") ) infos = models.TextField(_("Infos utiles"), null=True, blank=True) infos_en = models.TextField("Infos utiles en anglais", null=True, blank=True) url = models.URLField(_("Url d'une video youtube"),null=True,blank=True, help_text= _("Dans Youtube cliquer sur partager puis importer pour récuperer la bonne adresse")) def __str__(self): return("%s - %s [%s]" % (self.nom, self.auteur, self.category)) class Meta: verbose_name = _('Morceau') verbose_name_plural = _('Morceaux') ordering = (Lower('nom'),)