From f2b21d17c7fe86ca0fa4241a149c7ab0a7b32257 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Sat, 9 Mar 2019 13:10:45 +0100 Subject: [PATCH] Allow Post creation on Meeting only if Meeting is ongoing --- forums/templates/forums/forum_list.html | 2 +- forums/views.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/forums/templates/forums/forum_list.html b/forums/templates/forums/forum_list.html index 4e0283eca..0ee35325b 100644 --- a/forums/templates/forums/forum_list.html +++ b/forums/templates/forums/forum_list.html @@ -78,7 +78,7 @@ <td><a href="{{ forum.get_absolute_url }}">{{ forum }}</a></td> <td>{{ forum.latest_post }}</td> <td>{{ forum.latest_post.posted_on|date:"Y-m-d" }}</td> - <td>{{ forum.nr_posts }}</td> + <td><span class="badge badge-primary badge-pill">{{ forum.nr_posts }}</span></td> </tr> {% empty %} <tr> diff --git a/forums/views.py b/forums/views.py index f1a88aa74..807bc90a9 100644 --- a/forums/views.py +++ b/forums/views.py @@ -2,6 +2,8 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" +import datetime + from django import forms from django.contrib import messages from django.contrib.auth.models import Group @@ -170,6 +172,18 @@ class PostCreateView(UserPassesTestMixin, CreateView): if self.request.user.has_perm('forums.add_forum'): return True forum = get_object_or_404(Forum, slug=self.kwargs.get('slug')) + # Only allow posting if it's within a Forum, or within an ongoing meeting. + try: + if datetime.date.today() > forum.meeting.date_until: + messages.error(self.request, + 'Error: you cannot Post to a Meeting which is finished.') + raise PermissionDenied + elif datetime.date.today () < forum.meeting.date_from: + messages.warning(self.request, + 'This meeting has not started yet, please come back later!') + raise PermissionDenied + except Meeting.DoesNotExist: + pass if self.request.user.has_perm('can_post_to_forum', forum): return True else: -- GitLab