Newer
Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView
from django.views.generic.list import ListView
from .forms import ForumForm
from scipost.mixins import PermissionsMixin
class ForumCreateView(PermissionsMixin, CreateView):
permission_required = 'forums.can_add_forum'
model = Forum
form_class = ForumForm
template_name = 'forums/forum_form.html'
success_url = reverse_lazy('forums:forums')
def get_initial(self):
initial = super().get_initial()
initial.update({
'moderators': self.request.user
})
return initial
class ForumDetailView(DetailView):
model = Forum
template_name = 'forums/forum_detail.html'
class ForumListView(ListView):
model = Forum
template_name = 'forum_list.html'
class PostCreateView(CreateView):
model = Post
def get_initial(self, *args, **kwargs):
initial = super().get_initial(*args, **kwargs)
parent_model = self.kwargs.get('parent_model')
if parent_model = 'forum':
parent_content_type = ContentType.objects.get(app_label='forums', model='forum')
elif parent_model = 'post':
parent_content_type = ContentType.objects.get(app_label='forums', model='post')
parent_object_id = self.kwargs.get('parent_object_id')
initial.update({
'posted_by': self.request.user,
'posted_on': timezone.now(),
'parent_content_type': parent_content_type,
'parent_object_id': parent_object_id,
})