diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 06b71ac9..3d9b8450 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -5,7 +5,6 @@ from django.urls import reverse from django.utils import timezone from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ -from members.models import Member from taggit.managers import TaggableManager from .managers import ( @@ -138,10 +137,6 @@ class Post(models.Model): def url(self): return reverse('posts.show', kwargs={"id": self.slug}) - @property - def author_member(self): - return Member.all_members.filter(nickname=self.author.username).first() - def save(self, *args, **kwargs): "save the post with some defaults" if (self.id is None) and (not self.slug): diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 4c449716..2e8b4e52 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -10,7 +10,7 @@ from rest_framework import viewsets # from rest_framework import permissions from .models import Post, PostSerializer -# from members.models import Member +from members.models import Member # from documents import add_ep_to_response, get_ep_sessionid2 from documents import get_pad_link from documents.etherpadlib import add_ep_cookie @@ -51,14 +51,18 @@ def show(request, id=None): elif id != "" and id is not None: p = Post.objects.get_visible_articles().get(slug=(id)) - # post_author = Member.all_members.filter(nickname=p.author) + post_author = Member.all_members.filter(nickname=p.author).first() + author_image = None + + if post_author: + author_image = post_author.image['avatar'].url context = { "post": p, - "next": get_next_dict().get(p.slug, None), + "author_image": author_image, + "next": get_next_dict(p), "related_posts": p.tags.similar_objects(), "ep_link": get_pad_link(p.slug + "-agenda"), - } response = render(request, 'posts/show.html', context) @@ -108,17 +112,24 @@ def tag_complete(request): return HttpResponseServerError("Requires a term field.") -def get_next_dict(): +def get_next_dict(post=None): # TODO: Docstring - posts = Post.articles.get_visible_articles().values('slug') - print(posts) - d = {} - print(d) + # TODO: bad implementation but it works!! + if post.post_type == 'N' or post.post_type == 'E': + posts = Post.articles.get_visible_articles() + elif post.post_type == 'F': + posts = Post.objects.get_visible_articles().filter(post_type='F').order_by('-event_start') + + d = "" + for k, v in enumerate(posts): - if k == len(posts) - 1: + if post.slug == v.slug: + if (k + 1) < len(posts): + d = posts[k + 1].slug + else: + d = posts[0].slug break - d[v['slug']] = posts[k + 1]['slug'] - print(d) + return d diff --git a/fet2020/templates/posts/show.html b/fet2020/templates/posts/show.html index aba04016..1cde872d 100644 --- a/fet2020/templates/posts/show.html +++ b/fet2020/templates/posts/show.html @@ -15,9 +15,9 @@