~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to pybb/views.py

  • Committer: franku
  • Date: 2019-03-04 17:47:12 UTC
  • mfrom: (521 widelands)
  • mto: This revision was merged to the branch mainline in revision 523.
  • Revision ID: somal@arcor.de-20190304174712-rlkrxc939fmcveuo
merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
from pybb.markups import mypostmarkup
4
4
 
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
16
13
 
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,\
19
16
    MARKUP_CHOICES
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
33
30
def allowed_for(user):
34
31
    """Check if a user has the permission to enter internal Forums."""
35
32
    
36
 
    return user.is_superuser or user.has_perm(settings.INTERNAL_PERM)
 
33
    return user.is_superuser or user.has_perm(pybb_settings.INTERNAL_PERM)
37
34
 
38
35
 
39
36
def index_ctx(request):
91
88
    if request.user.is_authenticated:
92
89
        topic.update_read(request.user)
93
90
 
94
 
    if pybb_settings.FREEZE_FIRST_POST:
95
 
        first_post = topic.posts.order_by('created')[0]
96
 
    else:
97
 
        first_post = None
98
91
    last_post = topic.posts.order_by('-created')[0]
99
92
 
100
93
    initial = {}
127
120
 
128
121
    return {'topic': topic,
129
122
            'last_post': last_post,
130
 
            'first_post': first_post,
131
123
            'form': form,
132
124
            'user_is_mod': user_is_mod,
133
125
            'subscribed': subscribed,
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)
234
226
 
235
227
 
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,
241
 
            }
242
 
user = render_to('pybb/user.html')(user_ctx)
243
 
 
244
 
 
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())
350
333
 
351
334
 
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)
357
 
 
358
 
    page, paginator = paginate(users, request, pybb_settings.USERS_PAGE_SIZE)
359
 
 
360
 
    return {'users': page.object_list,
361
 
            'page': page,
362
 
            'paginator': paginator,
363
 
            'form': form,
364
 
            }
365
 
users = render_to('pybb/users.html')(users_ctx)
366
 
 
367
 
 
368
335
@login_required
369
336
def delete_subscription(request, topic_id):
370
337
    topic = get_object_or_404(Topic, pk=topic_id)
410
377
    return {'content': html}
411
378
 
412
379
 
413
 
def pybb_moderate_info(request):
414
 
    return render(request, 'pybb/pybb_moderate_info.html')
415
 
 
416
 
 
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]