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
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:

View File

@@ -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"

View File

@@ -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:

View File

@@ -100,12 +100,12 @@
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">
<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>
<span class="ml-2 sm:ml-1">Bearbeiten</span>
</a>
</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">
<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>
@@ -136,11 +136,11 @@
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">
<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>
</a>
</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">
<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>

View File

@@ -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