Revert "Revert "added "New topics by moderators only" option for forums""

This reverts commit 1208adad4b.
This commit is contained in:
Nathan Dinsmore 2013-01-27 17:24:14 -05:00
parent 1208adad4b
commit 71b839d70c
3 changed files with 4 additions and 2 deletions

View file

@ -97,6 +97,7 @@ class Category(models.Model):
class Forum(models.Model):
category = models.ForeignKey(Category, related_name='forums', verbose_name=_('Category'))
moderator_only = models.BooleanField(_('New topics by moderators only'), default=False)
name = models.CharField(_('Name'), max_length=80)
position = models.IntegerField(_('Position'), blank=True, default=0)
description = models.TextField(_('Description'), blank=True, default='')

View file

@ -17,7 +17,7 @@
</div>
<div id="vf" class="blocktable">
<div class="box">
{% if user.is_authenticated %}
{% if can_create_topics %}
<a class="small button new_topic" href="{% url djangobb:add_topic forum.id %}" title="{% trans "Can't find an answer to your question? Click here to ask it in a new thread." %}"><span>{% trans "New topic" %}</span></a>
{% endif %}
<div class="box-head">

View file

@ -351,6 +351,7 @@ def show_forum(request, forum_id, full=True):
'posts': forum.post_count,
'topics': topics,
'moderator': moderator,
'can_create_topics': not forum.moderator_only or request.user.is_superuser or request.user in forum.moderators.all(),
}
if full:
return render(request, 'djangobb_forum/forum.html', to_return)
@ -486,7 +487,7 @@ def add_topic(request, forum_id):
create a new topic, with or without poll
"""
forum = get_object_or_404(Forum, pk=forum_id)
if not forum.category.has_access(request.user):
if not forum.category.has_access(request.user) or (forum.moderator_only and not (request.user.is_superuser or request.user in forum.moderators.all())):
return HttpResponseForbidden()
ip = request.META.get('REMOTE_ADDR', None)