def topic_open(request, topic_id): topic = get_object_or_404(Topic, pk=topic_id) if pybb_moderated_by(topic, request.user): if topic.closed: topic.closed = False topic.save() return redirect(topic)
def topic_unstick(request, topic_id): topic = get_object_or_404(Topic, pk=topic_id) if pybb_moderated_by(topic, request.user): if topic.sticky: topic.sticky = False topic.save() return redirect(topic)
def topic_merge(request): topics_ids = request.GET.getlist('topic') topics = get_list_or_404(Topic, pk__in=topics_ids) for topic in topics: if not pybb_moderated_by(topic, request.user): # TODO: show error message: no permitions for edit this topic return HttpResponseRedirect(topic.get_absolute_url()) if len(topics) < 2: return {'topics': topics} posts = get_list_or_404(Post, topic__in=topics_ids) main = int(request.POST.get("main", 0)) if main and main in (topic.id for topic in topics): for topic in topics: if topic.id == main: main_topic = topic for post in posts: if post.topic_id != main_topic.id: post.topic = main_topic post.save() main_topic.update_post_count() main_topic.forum.update_post_count() for topic in topics: if topic.id != main: forum = topic.forum topic.delete() forum.update_post_count() return redirect(main_topic) return {'posts': posts, 'topics': topics, 'topic': topics[0], }