diff options
| -rw-r--r-- | admin.py | 1 | ||||
| -rw-r--r-- | models.py | 22 | 
2 files changed, 21 insertions, 2 deletions
| @@ -21,6 +21,7 @@ from .models import Timetable, LastUpdate, Group, Room, Course, Year  class YearAdmin(admin.ModelAdmin):      prepopulated_fields = {"slug": ("name",)}      list_display = ("name",) +    ordering = ("name",)  @admin.register(Timetable) @@ -21,20 +21,38 @@ from django.utils.text import slugify  from .utils import parse_group -class Year(models.Model): +class SlugModel(models.Model): +    def save(self): +        if not self.slug: +            self.slug = slugify(self.name) + +        super(SlugModel, self).save() + + +    class Meta: +        abstract = True + + +class Year(SlugModel):      name = models.CharField(max_length=16, verbose_name="année")      slug = models.SlugField(max_length=16, unique=True, default="")      def __str__(self):          return self.name +    def save(self): +        if not self.slug: +            self.slug = slugify(self.name) + +        super(Year, self).save() +      class Meta:          verbose_name = "année"          verbose_name_plural = "années" -class Timetable(models.Model): +class Timetable(SlugModel):      year = models.ForeignKey(Year, on_delete=models.CASCADE, verbose_name="année")      name = models.CharField(max_length=64, verbose_name="nom")      url = models.URLField(max_length=255, verbose_name="URL") | 
