check if key exists before creating key and rename functions

This commit is contained in:
2023-11-24 17:45:15 +00:00
parent eb782d879c
commit 21abfa5eda
5 changed files with 28 additions and 33 deletions

View File

@@ -90,7 +90,6 @@ def ep_create_new_pad(pad_id, text="helloworld"):
return None return None
pad_id_status = ep_pad_exists(pad_id) pad_id_status = ep_pad_exists(pad_id)
print(f"Status: {pad_id_status}")
if pad_id_status is None: if pad_id_status is None:
return None return None
elif pad_id_status is True: elif pad_id_status is True:

View File

@@ -12,7 +12,7 @@ from django.utils.translation import gettext_lazy as _
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from core.models import CustomFlatPage 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 ( from .managers import (
AllEventManager, AllEventManager,
@@ -166,7 +166,7 @@ class Post(models.Model):
@agenda_html.setter @agenda_html.setter
def agenda_html(self, value): def agenda_html(self, value):
if not self.agenda_key: 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: if not value or not self.agenda_key:
return None return None
@@ -180,7 +180,7 @@ class Post(models.Model):
@protocol_html.setter @protocol_html.setter
def protocol_html(self, value): def protocol_html(self, value):
if not self.protocol_key: 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: if not value or not self.protocol_key:
return None return None
@@ -192,37 +192,30 @@ class Post(models.Model):
return value return value
@property @property
def agenda_link(self): def agenda_url(self):
if self.has_agenda: if self.has_agenda:
print(f"Has Agenda Key: {self.agenda_key}")
return ep_get_url(self.agenda_key) return ep_get_url(self.agenda_key)
return "#" return "#"
@property @property
def protocol_link(self): def protocol_url(self):
if self.has_protocol: if self.has_protocol:
return ep_get_url(self.protocol_key) return ep_get_url(self.protocol_key)
return "#" return "#"
@property @property
def filename_agenda(self): def agenda_filename(self):
filename_agenda = None if self.has_agenda and self.agenda_url != "#":
if self.has_agenda and self.agenda_link != "#": return self.slug + "-agenda.pdf"
filename_agenda = self.slug + "-agenda.pdf" return None
return filename_agenda
@property @property
def filename_protocol(self): def protocol_filename(self):
filename_protocol = None if self.has_agenda and self.protocol_url != "#":
if self.has_agenda and self.protocol_link != "#": return self.slug + "-protokoll.pdf"
filename_protocol = self.slug + "-protokoll.pdf" return None
return filename_protocol def create_agenda_key(self):
def get_agenda_key(self):
""" """
Create a Etherpad Id for the Pad associated to this post. Create a Etherpad Id for the Pad associated to this post.
Create the pad if it doesn't exist. Create the pad if it doesn't exist.
@@ -231,7 +224,7 @@ class Post(models.Model):
return None return None
return create_pad_for_post(self.slug, "agenda") 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 a Etherpad Id for the Pad associated to this post.
Create the pad if it doesn't exist. Create the pad if it doesn't exist.
@@ -343,8 +336,11 @@ class FetMeeting(Event):
self.has_agenda = True self.has_agenda = True
self.has_protocol = True self.has_protocol = True
self.agenda_key = self.get_agenda_key() if not ep_pad_exists(self.agenda_key):
self.protocol_key = self.get_protocol_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: if not self.post_type:
self.post_type = "F" self.post_type = "F"

View File

@@ -105,7 +105,7 @@ class PostDetailView(DetailView):
response = super().get(request, *args, **kwargs) response = super().get(request, *args, **kwargs)
# check if etherpad server works # 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: try:
response = add_ep_cookie(request, response) response = add_ep_cookie(request, response)
except Exception as e: except Exception as e:

View File

@@ -100,12 +100,12 @@
x-transition:leave-end="transform origin-right opacity-0 scale-95" x-transition:leave-end="transform origin-right opacity-0 scale-95"
> >
<li class="block sm:inline-block group hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200"> <li class="block sm:inline-block group hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200">
<a href="{{ post.agenda_link }}" class="inline-flex items-center px-2 py-1"> <a href="{{ post.agenda_url }}" class="inline-flex items-center px-2 py-1">
<i class="fa-solid fa-file-signature fa-fw text-proprietary dark:text-proprietary-light md:text-inherit group-hover:text-proprietary dark:group-hover:text-proprietary-light"></i> <i class="fa-solid fa-file-signature fa-fw text-proprietary dark:text-proprietary-light md:text-inherit group-hover:text-proprietary dark:group-hover:text-proprietary-light"></i>
<span class="ml-2 sm:ml-1">Bearbeiten</span> <span class="ml-2 sm:ml-1">Bearbeiten</span>
</a> </a>
</li> </li>
{% if post.filename_agenda %} {% if post.agenda_filename %}
<li class="block sm:inline-block group hover:bg-gray-200 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200"> <li class="block sm:inline-block group hover:bg-gray-200 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200">
<a href="{% url 'posts:show_pdf_agenda' post.slug %}" class="inline-flex items-center px-2 py-1"> <a href="{% url 'posts:show_pdf_agenda' post.slug %}" class="inline-flex items-center px-2 py-1">
<i class="fa-solid fa-file-pdf fa-fw text-red-800 dark:text-red-500 md:text-inherit group-hover:text-red-800 dark:group-hover:text-red-500"></i> <i class="fa-solid fa-file-pdf fa-fw text-red-800 dark:text-red-500 md:text-inherit group-hover:text-red-800 dark:group-hover:text-red-500"></i>
@@ -136,11 +136,11 @@
x-transition:leave-end="transform origin-right opacity-0 scale-95" x-transition:leave-end="transform origin-right opacity-0 scale-95"
> >
<li class="block sm:inline-block group hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200"> <li class="block sm:inline-block group hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200">
<a href="{{ post.protocol_link }}" class="inline-flex items-center px-2 py-1"><i class="fa-solid fa-file-signature fa-fw text-proprietary dark:text-proprietary-light md:text-inherit group-hover:text-proprietary dark:group-hover:text-proprietary-light"></i> <a href="{{ post.protocol_url }}" class="inline-flex items-center px-2 py-1"><i class="fa-solid fa-file-signature fa-fw text-proprietary dark:text-proprietary-light md:text-inherit group-hover:text-proprietary dark:group-hover:text-proprietary-light"></i>
<span class="ml-2 sm:ml-1">Bearbeiten</span> <span class="ml-2 sm:ml-1">Bearbeiten</span>
</a> </a>
</li> </li>
{% if post.filename_protocol %} {% if post.protocol_filename %}
<li class="block sm:inline-block group hover:bg-gray-200 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200"> <li class="block sm:inline-block group hover:bg-gray-200 dark:hover:bg-gray-800 hover:text-gray-800 dark:hover:text-gray-200">
<a href="{% url 'posts:show_pdf_protocol' post.slug %}" class="inline-flex items-center px-2 py-1"> <a href="{% url 'posts:show_pdf_protocol' post.slug %}" class="inline-flex items-center px-2 py-1">
<i class="fa-solid fa-file-pdf fa-fw text-red-800 dark:text-red-500 md:text-inherit group-hover:text-red-800 dark:group-hover:text-red-500"></i> <i class="fa-solid fa-file-pdf fa-fw text-red-800 dark:text-red-500 md:text-inherit group-hover:text-red-800 dark:group-hover:text-red-500"></i>

View File

@@ -109,13 +109,13 @@ class TestPostEtherpad:
def test_agenda_id(self, post_saved, mock_createpad): def test_agenda_id(self, post_saved, mock_createpad):
mock_createpad.return_value = post_saved.slug + "-agenda" 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") mock_createpad.assert_called_with(post_saved.slug + "-agenda")
assert post_saved.slug in str(k) assert post_saved.slug in str(k)
def test_protocol_id(self, post_saved, mock_createpad): def test_protocol_id(self, post_saved, mock_createpad):
mock_createpad.return_value = post_saved.slug + "-protocol" 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") mock_createpad.assert_called_with(post_saved.slug + "-protocol")
assert post_saved.slug in str(k) assert post_saved.slug in str(k)
@@ -124,7 +124,7 @@ class TestPostEtherpad:
raise URLError("Mocked Etherpad Down") raise URLError("Mocked Etherpad Down")
mock_createpad.side_effect = raise_url_error mock_createpad.side_effect = raise_url_error
k = post_saved.get_protocol_key() k = post_saved.create_protocol_key()
mock_createpad.assert_called() mock_createpad.assert_called()
assert k == None assert k == None