From 7fc0ea932d84bd72caa5ae4380d2d865676eaaf2 Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 21 Oct 2020 10:31:52 +0000 Subject: [PATCH] fix 'could not create a fetmeeting' --- fet2020/posts/models.py | 68 +++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index c93cca94..5dbcda16 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -111,13 +111,43 @@ class Post(models.Model): request_logger.info("Accessing etherpad ...") if not self.agenda_key: request_logger.info("not agenda key!") - self.agenda_key = self.__get_agenda_key() + self.agenda_key = self.get_agenda_key() request_logger.info("AGENDA KEY: "+self.agenda_key) request_logger.info("VALUE: "+value) setPadHTML(self.agenda_key, value) request_logger.info("set etherpad!") return value + def get_agenda_key(self): + if not self.slug: + return None + + try: + agenda_key = createPadifNotExists(self.slug + "-agenda") + except Exception as e: + raise ValidationError( + _('Die Agenda konnte nicht erstellt werden. Error: %(error)s'), + params={'error': str(e)}, + ) + return None + + return agenda_key + + def get_protocol_key(self): + if not self.slug: + return None + + try: + protocol_key = createPadifNotExists(self.slug + "-protocol") + except Exception as e: + raise ValidationError( + _('Das Protokoll konnte nicht erstellt werden. Error: %(error)s'), + params={'error': str(e)}, + ) + return None + + return protocol_key + @property def get_tagnames(self): return ["#%s" % t for t in self.tags.names()] @@ -171,28 +201,6 @@ class Post(models.Model): *re.findall(r'\#([\d\w-]+)', str(self.title)) ) - def __get_agenda_key(self): - try: - self.agenda_key = createPadifNotExists(self.slug + "-agenda") - return self.agenda_key - except Exception as e: - raise ValidationError( - _('Die Agenda konnte nicht erstellt werden. Error: %(error)s'), - params={'error': str(e)}, - ) - - def __get_protocol_key(self): - try: - self.protocol_key = createPadifNotExists(self.slug + "-protocol") - return self.protocol_key - except Exception as e: - raise ValidationError( - _('Das Protokoll konnte nicht erstellt werden. Error: %(error)s'), - params={'error': str(e)}, - ) - - - def __str__(self): return "Post (%s, %s): %s " % (self.slug, self.public_date.strftime("%d.%m.%Y"), self.title) @@ -269,14 +277,16 @@ class FetMeeting(Event): verbose_name_plural = "Fet Sitzungen" def __get_slug(self): - self.slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung") + slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung") - if Post.objects.filter(slug=self.slug).exists(): - if Post.objects.get(slug=self.slug).id != self.id: + if Post.objects.filter(slug=slug).exists(): + if Post.objects.get(slug=slug).id != self.id: raise ValidationError( _('Es existiert bereits eine Sitzung mit demselben Datum.') ) + return None + return slug def clean(self): if self.event_start is None: @@ -285,13 +295,13 @@ class FetMeeting(Event): raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.')) if not self.slug: - self.__get_slug() + self.slug = self.__get_slug() if self.has_agenda: - self.__get_agenda_key() + self.agenda_key = self.get_agenda_key() if self.has_protocol: - self.__get_protocol_key() + self.protocol_key = self.get_protocol_key() def save(self, *args, **kwargs): self.title = "Fachschaftssitzung"