From 21abfa5edac24f674a500a0ef4d08ccfcfb8f7a1 Mon Sep 17 00:00:00 2001 From: Patrick Mayr Date: Fri, 24 Nov 2023 17:45:15 +0000 Subject: [PATCH] check if key exists before creating key and rename functions --- fet2020/documents/api.py | 1 - fet2020/posts/models.py | 44 +++++++++---------- fet2020/posts/views.py | 2 +- .../templates/posts/fetmeeting/detail.html | 8 ++-- fet2020/tests/test_posts.py | 6 +-- 5 files changed, 28 insertions(+), 33 deletions(-) diff --git a/fet2020/documents/api.py b/fet2020/documents/api.py index 9146e62a..16c5ba86 100644 --- a/fet2020/documents/api.py +++ b/fet2020/documents/api.py @@ -90,7 +90,6 @@ def ep_create_new_pad(pad_id, text="helloworld"): return None pad_id_status = ep_pad_exists(pad_id) - print(f"Status: {pad_id_status}") if pad_id_status is None: return None elif pad_id_status is True: diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 27c51487..74468a65 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -12,7 +12,7 @@ from django.utils.translation import gettext_lazy as _ from taggit.managers import TaggableManager from core.models import CustomFlatPage -from documents.api import ep_create_new_pad, ep_get_html, ep_get_url, ep_set_html +from documents.api import ep_create_new_pad, ep_get_html, ep_get_url, ep_pad_exists, ep_set_html from .managers import ( AllEventManager, @@ -166,7 +166,7 @@ class Post(models.Model): @agenda_html.setter def agenda_html(self, value): if not self.agenda_key: - self.agenda_key = self.get_agenda_key() + self.agenda_key = self.create_agenda_key() if not value or not self.agenda_key: return None @@ -180,7 +180,7 @@ class Post(models.Model): @protocol_html.setter def protocol_html(self, value): if not self.protocol_key: - self.protocol_key = self.get_protocol_key() + self.protocol_key = self.create_protocol_key() if not value or not self.protocol_key: return None @@ -192,37 +192,30 @@ class Post(models.Model): return value @property - def agenda_link(self): + def agenda_url(self): if self.has_agenda: - print(f"Has Agenda Key: {self.agenda_key}") return ep_get_url(self.agenda_key) - return "#" @property - def protocol_link(self): + def protocol_url(self): if self.has_protocol: return ep_get_url(self.protocol_key) - return "#" @property - def filename_agenda(self): - filename_agenda = None - if self.has_agenda and self.agenda_link != "#": - filename_agenda = self.slug + "-agenda.pdf" - - return filename_agenda + def agenda_filename(self): + if self.has_agenda and self.agenda_url != "#": + return self.slug + "-agenda.pdf" + return None @property - def filename_protocol(self): - filename_protocol = None - if self.has_agenda and self.protocol_link != "#": - filename_protocol = self.slug + "-protokoll.pdf" + def protocol_filename(self): + if self.has_agenda and self.protocol_url != "#": + return self.slug + "-protokoll.pdf" + return None - return filename_protocol - - def get_agenda_key(self): + def create_agenda_key(self): """ Create a Etherpad Id for the Pad associated to this post. Create the pad if it doesn't exist. @@ -231,7 +224,7 @@ class Post(models.Model): return None return create_pad_for_post(self.slug, "agenda") - def get_protocol_key(self): + def create_protocol_key(self): """ Create a Etherpad Id for the Pad associated to this post. Create the pad if it doesn't exist. @@ -343,8 +336,11 @@ class FetMeeting(Event): self.has_agenda = True self.has_protocol = True - self.agenda_key = self.get_agenda_key() - self.protocol_key = self.get_protocol_key() + if not ep_pad_exists(self.agenda_key): + self.agenda_key = self.create_agenda_key() + + if not ep_pad_exists(self.protocol_key): + self.protocol_key = self.create_protocol_key() if not self.post_type: self.post_type = "F" diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 38d2453c..68269d57 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -105,7 +105,7 @@ class PostDetailView(DetailView): response = super().get(request, *args, **kwargs) # check if etherpad server works - if self.object.agenda_link or self.object.protocol_link: + if self.object.agenda_url or self.object.protocol_url: try: response = add_ep_cookie(request, response) except Exception as e: diff --git a/fet2020/templates/posts/fetmeeting/detail.html b/fet2020/templates/posts/fetmeeting/detail.html index 85e2ffb1..db79f2d6 100644 --- a/fet2020/templates/posts/fetmeeting/detail.html +++ b/fet2020/templates/posts/fetmeeting/detail.html @@ -100,12 +100,12 @@ x-transition:leave-end="transform origin-right opacity-0 scale-95" >
  • - + Bearbeiten
  • - {% if post.filename_agenda %} + {% if post.agenda_filename %}
  • @@ -136,11 +136,11 @@ x-transition:leave-end="transform origin-right opacity-0 scale-95" >
  • - + Bearbeiten
  • - {% if post.filename_protocol %} + {% if post.protocol_filename %}
  • diff --git a/fet2020/tests/test_posts.py b/fet2020/tests/test_posts.py index 67b19865..98232324 100644 --- a/fet2020/tests/test_posts.py +++ b/fet2020/tests/test_posts.py @@ -109,13 +109,13 @@ class TestPostEtherpad: def test_agenda_id(self, post_saved, mock_createpad): mock_createpad.return_value = post_saved.slug + "-agenda" - k = post_saved.get_agenda_key() + k = post_saved.create_agenda_key() mock_createpad.assert_called_with(post_saved.slug + "-agenda") assert post_saved.slug in str(k) def test_protocol_id(self, post_saved, mock_createpad): mock_createpad.return_value = post_saved.slug + "-protocol" - k = post_saved.get_protocol_key() + k = post_saved.create_protocol_key() mock_createpad.assert_called_with(post_saved.slug + "-protocol") assert post_saved.slug in str(k) @@ -124,7 +124,7 @@ class TestPostEtherpad: raise URLError("Mocked Etherpad Down") mock_createpad.side_effect = raise_url_error - k = post_saved.get_protocol_key() + k = post_saved.create_protocol_key() mock_createpad.assert_called() assert k == None