event validation improved

This commit is contained in:
2021-01-01 16:05:19 +00:00
parent b9e0ca958e
commit 4626b52880

View File

@@ -252,6 +252,12 @@ class Post(models.Model):
def url(self): def url(self):
return reverse("posts.show", kwargs={"id": self.slug}) return reverse("posts.show", kwargs={"id": self.slug})
def clean(self):
if self.event_end and self.event_end < self.event_start:
raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))
if self.event_start and self.post_type not in ['E','F']:
raise ValidationError("Für diesen Post Typ ist kein Event Start zulässig")
super().clean()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
# save the post with some defaults # save the post with some defaults
if not self.public_date: if not self.public_date:
@@ -300,12 +306,14 @@ class Event(Post):
verbose_name = "Event" verbose_name = "Event"
verbose_name_plural = "Events" verbose_name_plural = "Events"
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.post_type='E'
def clean(self): def clean(self):
if not self.event_start: if not self.event_start:
raise ValidationError(_("Das Datum des Events fehlt.")) raise ValidationError(_("Das Datum des Events fehlt."))
if self.event_end and self.event_end < self.event_start:
raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))
super().clean() super().clean()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.post_type: if not self.post_type:
@@ -324,7 +332,9 @@ class FetMeeting(Event):
verbose_name = "Fet Sitzung" verbose_name = "Fet Sitzung"
verbose_name_plural = "Fet Sitzungen" verbose_name_plural = "Fet Sitzungen"
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.post_type='F'
def __get_slug(self): def __get_slug(self):
slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung") slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")