diff --git a/fet2020/fet2020/views.py b/fet2020/fet2020/views.py index ff4bac0b..4ad4f151 100644 --- a/fet2020/fet2020/views.py +++ b/fet2020/fet2020/views.py @@ -14,22 +14,23 @@ def index(request): t = set(t for t in get_tags(posts)) - tmp = Post.articles.get_pinned_article() - if tmp: - # if a pinned post exists - featured_post = tmp[0] - else: + # set the pinned post + featured_post = Post.articles.get_pinned_article() + if not featured_post: # if a pinned post does not exist, take the last published one. if len(posts) >= 1: featured_post = posts.popleft() else: featured_post = 0 + else: + # remove the pinned post + posts.remove(featured_post) context = { 'posts': posts, 'events': Event.all_events.get_five_events(), 'featured_post': featured_post, - 'featured_meeting': deque(FetMeeting.objects.get_meetings()), + 'featured_meeting': FetMeeting.objects.get_meetings(), 'tags_list': ", ".join(t) } diff --git a/fet2020/posts/managers.py b/fet2020/posts/managers.py index 2d0e01a9..f46c1e24 100644 --- a/fet2020/posts/managers.py +++ b/fet2020/posts/managers.py @@ -26,7 +26,7 @@ class ArticleManager(models.Manager): return self.get_queryset().filter(is_hidden=False) def get_pinned_article(self): - return self.get_visible_articles().filter(is_pinned=True) + return self.get_visible_articles().filter(is_pinned=True).first() class NewsManager(models.Manager): diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 8e95fd86..06b71ac9 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -240,7 +240,7 @@ class FetMeeting(Event): def clean(self): if self.event_start is None: raise ValidationError(_('Das Datum des Events fehlt.')) - elif self.event_end < self.event_start: + elif (self.event_end) and (self.event_end < self.event_start): raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.')) slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")