diff --git a/fet2020/fet2020/views.py b/fet2020/fet2020/views.py index 69695f5a..1f806f12 100644 --- a/fet2020/fet2020/views.py +++ b/fet2020/fet2020/views.py @@ -6,7 +6,7 @@ from posts.models import Post, FetMeeting, Event def index(request): - posts = deque(Post.articles.get_visible_articles()) + posts = deque(Post.articles.get_date_sorted_list()) posts_for_tags = deque(Post.objects.get_last_months_posts()) def get_tags(lst): diff --git a/fet2020/posts/managers.py b/fet2020/posts/managers.py index ade60877..d9b2a3e3 100644 --- a/fet2020/posts/managers.py +++ b/fet2020/posts/managers.py @@ -12,6 +12,19 @@ class PostManager(models.Manager): def get_visible_articles(self): return self.get_queryset().filter(is_hidden=False) + def get_date_sorted_list(self): + post_list = [] + for post in self.get_visible_articles(): + if post.post_type != "N": + post_list.append((post, post.event_start.date())) + else: + post_list.append((post, post.public_date)) + + result = sorted(post_list, key=lambda x: x[1], reverse=True) + posts = [x[0] for x in result] + + return posts + def get_last_months_posts(self): date_today = timezone.now().date() return self.get_visible_articles().filter( @@ -43,6 +56,19 @@ class ArticleManager(models.Manager): def get_visible_articles(self): return self.get_queryset().filter(is_hidden=False) + def get_date_sorted_list(self): + post_list = [] + for post in self.get_visible_articles(): + if post.post_type != "N": + post_list.append((post, post.event_start.date())) + else: + post_list.append((post, post.public_date)) + + result = sorted(post_list, key=lambda x: x[1], reverse=True) + posts = [x[0] for x in result] + + return posts + def get_pinned_article(self): return self.get_visible_articles().filter(is_pinned=True).first() diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 596e8d74..a98d57af 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -265,7 +265,7 @@ class Post(models.Model): ) def __str__(self): - return "Post (%s, %s): %s " % ( + return "Post (%s, %s): %s" % ( self.slug, self.public_date.strftime("%d.%m.%Y"), self.title, diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 108c506c..a3f85339 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -24,7 +24,7 @@ logger = logging.getLogger(__name__) def index(request): "Index von aktuellen Posts" - posts = deque(Post.objects.get_visible_articles().order_by("-public_date")) + posts = deque(Post.objects.get_date_sorted_list()) taglist = map(lambda post: post.tags, posts)