3
3
from pybb.markups import mypostmarkup
5
5
from django.shortcuts import get_object_or_404
6
from django.http import HttpResponseRedirect, HttpResponse, HttpResponseNotFound, Http404
6
from django.http import HttpResponseRedirect, HttpResponse, Http404
7
7
from django.contrib.auth.models import User
8
8
from django.contrib.auth.decorators import login_required
9
from django.conf import settings
10
9
from django.urls import reverse
11
from django.db import connection
12
from django.utils import translation
13
from django.shortcuts import render, redirect
10
from django.shortcuts import redirect
14
11
from django.db.models import Q
15
12
from django.http import Http404
17
from pybb.util import render_to, paged, build_form, quote_text, ajax, urlize
18
from pybb.models import Category, Forum, Topic, Post, PrivateMessage, Attachment,\
14
from pybb.util import render_to, build_form, quote_text, ajax, urlize
15
from pybb.models import Category, Forum, Topic, Post, Attachment,\
20
from pybb.forms import AddPostForm, EditPostForm, UserSearchForm
17
from pybb.forms import AddPostForm, EditPostForm
21
18
from pybb import settings as pybb_settings
22
19
from pybb.orm import load_related
23
20
from pybb.templatetags.pybb_extras import pybb_moderated_by
91
88
if request.user.is_authenticated:
92
89
topic.update_read(request.user)
94
if pybb_settings.FREEZE_FIRST_POST:
95
first_post = topic.posts.order_by('created')[0]
98
91
last_post = topic.posts.order_by('-created')[0]
191
183
# - enable 'forum_new_topic' in the notification settings, or
192
184
# - subscribe to an existing topic
193
185
subscribers = User.objects.filter(
194
Q(groups__permissions__codename=settings.INTERNAL_PERM) |
195
Q(user_permissions__codename=settings.INTERNAL_PERM)
186
Q(groups__permissions__codename=pybb_settings.INTERNAL_PERM) |
187
Q(user_permissions__codename=pybb_settings.INTERNAL_PERM)
196
188
).exclude(username=request.user.username)
197
189
superusers = User.objects.filter(
198
190
is_superuser=True).exclude(
233
225
add_post = render_to('pybb/add_post.html')(add_post_ctx)
236
def user_ctx(request, username):
237
user = get_object_or_404(User, username=username)
238
topic_count = Topic.objects.filter(user=user).count()
239
return {'profile': user,
240
'topic_count': topic_count,
242
user = render_to('pybb/user.html')(user_ctx)
245
228
def show_post(request, post_id):
246
229
post = get_object_or_404(Post, pk=post_id)
247
230
count = post.topic.posts.filter(created__lt=post.created).count() + 1
349
332
return HttpResponseRedirect(topic.get_absolute_url())
352
@render_to('pybb/users.html')
353
def users_ctx(request):
354
users = User.objects.order_by('username')
355
form = UserSearchForm(request.GET)
356
users = form.filter(users)
358
page, paginator = paginate(users, request, pybb_settings.USERS_PAGE_SIZE)
360
return {'users': page.object_list,
362
'paginator': paginator,
365
users = render_to('pybb/users.html')(users_ctx)
369
336
def delete_subscription(request, topic_id):
370
337
topic = get_object_or_404(Topic, pk=topic_id)
410
377
return {'content': html}
413
def pybb_moderate_info(request):
414
return render(request, 'pybb/pybb_moderate_info.html')
417
380
def toggle_hidden_topic(request, topic_id):
418
381
topic = get_object_or_404(Topic, pk=topic_id)
419
382
first_post = topic.posts.all()[0]