From 99e3034c0da888115a4b551e224eb6e54de9d8f1 Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 22 Sep 2020 15:40:45 +0000 Subject: [PATCH] check if etherpad server works and agenda and protocol links are available. --- fet2020/posts/views.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 4c65f118..06e45324 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -1,21 +1,21 @@ from django.shortcuts import render from django.http import HttpResponse, JsonResponse, HttpResponseServerError -from django_filters.rest_framework import DjangoFilterBackend -# from django.core.cache import cache from django.utils.text import slugify from django.utils import timezone -from taggit.models import Tag +from collections import deque +from django_filters.rest_framework import DjangoFilterBackend from rest_framework import viewsets -# from rest_framework import permissions +from taggit.models import Tag from .models import Post, PostSerializer, FetMeeting -from members.models import Member, JobMember -# from documents import add_ep_to_response, get_ep_sessionid2 from documents import get_pad_link from documents.etherpadlib import add_ep_cookie +from members.models import Member, JobMember -from collections import deque +import logging + +logger = logging.getLogger(__name__) ################## @@ -78,18 +78,34 @@ def show(request, id=None): if post_author: author_image = post_author.image['avatar'].url + ep_agenda_link = None + ep_protocol_link = None + + if p.has_agenda and p.agenda_key: + ep_agenda_link = get_pad_link(p.agenda_key) + + if p.has_protocol and p.protocol_key: + ep_protocol_link = get_pad_link(p.protocol_key) + context = { "post": p, "author_image": author_image, "next": get_next_dict(p), "related_posts": p.tags.similar_objects(), - "ep_agenda_link": get_pad_link(p.agenda_key), - "ep_protocol_link": get_pad_link(p.protocol_key), + "ep_agenda_link": ep_agenda_link, + "ep_protocol_link": ep_protocol_link, } response = render(request, 'posts/show.html', context) - return add_ep_cookie(request, response) + # check if etherpad server works + if ep_agenda_link or ep_protocol_link: + try: + response = add_ep_cookie(request, response) + except Exception as e: + logger.info("Etherpad Server doesn't work. Error: {}".format(e)) + + return response ###########