aboutsummaryrefslogtreecommitdiff
path: root/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'models.py')
-rw-r--r--models.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/models.py b/models.py
index 6bb9733..061a213 100644
--- a/models.py
+++ b/models.py
@@ -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")