Exemplo n.º 1
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(**{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login
                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if 'forum_id' in kwargs:
            self.forum = get_object_or_404(perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs['forum_id'])
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif 'topic_id' in kwargs:
            self.topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs['topic_id'])
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied

            self.quote = ''
            if 'quote_id' in request.GET:
                try:
                    quote_id = int(request.GET.get('quote_id'))
                except TypeError:
                    raise Http404
                else:
                    post = get_object_or_404(Post, pk=quote_id)
                    profile = util.get_pybb_profile(post.user)
                    self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)(post.body, profile.get_display_name())

                if self.quote and request.is_ajax():
                    return HttpResponse(self.quote)
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Exemplo n.º 2
0
 def get_queryset(self):
     qs = Topic.objects.all().select_related()
     qs = perms.filter_topics(self.request.user, qs)
     if 'search' in self.request.GET:
         search = self.request.GET['search']
         qs = qs.filter(name__icontains=search)
     return qs.order_by('-updated', '-id')
Exemplo n.º 3
0
    def get_context_data(self, **kwargs):
        context = super(GroupDetailView, self).get_context_data(**kwargs)
        group = self.get_object()

        images = group.images.all()
        sort = self.request.GET.get('sort',
                                    group.default_image_sorting.lower())
        if sort == 'title':
            images = images.order_by('title')
        elif sort == 'publication':
            images = images.order_by('-published')
        elif sort == 'tag':
            images = images.filter(keyvaluetags__key=group.image_tag_sorting
                                   ).order_by('keyvaluetags__value')

        # Images
        context['image_list'] = images
        context['alias'] = 'gallery'
        context['paginate_by'] = settings.PAGINATE_GROUP_DETAIL_PAGE_BY

        # Misc
        context['user_is_member'] = self.request.user in group.members.all()
        context[
            'user_is_invited'] = self.request.user in group.invited_users.all(
            )
        context[
            'user_is_moderator'] = self.request.user in group.moderators.all()

        # Forum
        topics = group.forum.topics.order_by('-sticky', '-updated',
                                             '-id').select_related()
        topics = perms.filter_topics(self.request.user, topics)
        context['topics'] = topics[:25]

        return context
Exemplo n.º 4
0
Arquivo: views.py Projeto: JTLX/pybbm
    def get_queryset(self):
        if not perms.may_view_forum(self.request.user, self.forum):
            raise PermissionDenied

        qs = self.forum.topics.order_by("-sticky", "-updated", "-id").select_related()
        qs = perms.filter_topics(self.request.user, qs)
        return qs
Exemplo n.º 5
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(**{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login
                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if 'forum_id' in kwargs:
            self.forum = get_object_or_404(perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs['forum_id'])
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif 'topic_id' in kwargs:
            self.topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs['topic_id'])
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied

            self.quote = ''
            if 'quote_id' in request.GET:
                try:
                    quote_id = int(request.GET.get('quote_id'))
                except TypeError:
                    raise Http404
                else:
                    post = get_object_or_404(Post, pk=quote_id)
                    self.quote = defaults.PYBB_QUOTE_ENGINES[defaults.PYBB_MARKUP](post.body, getattr(post.user, username_field))

                if self.quote and request.is_ajax():
                    return HttpResponse(self.quote)
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Exemplo n.º 6
0
    def get_queryset(self):
        if not perms.may_view_forum(self.request.user, self.forum):
            raise PermissionDenied

        qs = self.forum.topics.order_by('-sticky', '-updated', '-id').select_related()
        qs = perms.filter_topics(self.request.user, qs)
        return qs
Exemplo n.º 7
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(
                    **{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login
                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if 'forum_id' in kwargs:
            self.forum = get_object_or_404(perms.filter_forums(
                request.user, Forum.objects.all()),
                                           pk=kwargs['forum_id'])
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif 'topic_id' in kwargs:
            self.topic = get_object_or_404(perms.filter_topics(
                request.user, Topic.objects.all()),
                                           pk=kwargs['topic_id'])
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Exemplo n.º 8
0
    def get_queryset(self):
        self.forum = get_object_or_404(Forum.objects.all(), pk=self.kwargs['pk'])
        if not perms.may_view_forum(self.request.user, self.forum):
            raise PermissionDenied

        qs = self.forum.topics.order_by('-sticky', '-updated', '-id').select_related()
        qs = perms.filter_topics(self.request.user, qs)
        return qs
Exemplo n.º 9
0
def add_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user,
                                                  Topic.objects.all()),
                              pk=topic_id)
    if not perms.may_subscribe_topic(request.user, topic):
        raise PermissionDenied
    topic.subscribers.add(request.user)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 10
0
def add_subscription(request, topic_id): # VERIFIED
    topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=topic_id)
    if not perms.may_access_topic(request, topic):
        raise PermissionDenied
    if not perms.may_subscribe_topic(request.user, topic):
        raise PermissionDenied
    topic.subscribers.add(request.user)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 11
0
 def get_queryset(self):
     self.topic = get_object_or_404(perms.filter_topics(self.request.user, Topic.objects.select_related('forum')), pk=self.kwargs['pk'])
     self.topic.views += 1
     self.topic.save()
     qs = self.topic.posts.all().select_related('user')
     if not perms.may_moderate_topic(self.request.user, self.topic):
         qs = perms.filter_posts(self.request.user, qs)
     return qs
Exemplo n.º 12
0
    def get_queryset(self):
        self.forum = get_object_or_404(Forum.objects.all(), pk=self.kwargs['pk'])
        if not perms.may_view_forum(self.request.user, self.forum):
            raise PermissionDenied

        qs = self.forum.topics.order_by('-sticky', '-updated').select_related()
        qs = perms.filter_topics(self.request.user, qs)
        return qs
Exemplo n.º 13
0
def add_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=topic_id)
    if not perms.may_subscribe_topic(request.user, topic):
        raise PermissionDenied
    topic.subscribers.add(request.user)
    msg = _('Subscription added. You will receive email notifications for replies to this topic.')
    messages.success(request, msg, fail_silently=True)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 14
0
def delete_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user,
                                                  Topic.objects.all()),
                              pk=topic_id)
    topic.subscribers.remove(request.user)
    msg = _(
        'Subscription removed. You will not receive emails from this topic unless you subscribe or post again.'
    )
    messages.success(request, msg, fail_silently=True)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 15
0
 def get_context_data(self, **kwargs):
     data = super(MovePostView, self).get_context_data()
     data['is_move'] = True
     # FIXME move to settings
     MOVE_POST_TIMEDELTA = 720
     since = datetime.today() - timedelta(days=MOVE_POST_TIMEDELTA)
     topic_qs = Topic.objects.filter(updated__gt=since)
     topic_qs = perms.filter_topics(self.request.user, topic_qs)
     data['move_to_topic_list'] = (topic_qs.select_related('forum')
                                   .order_by('forum', 'forum__name', 'name'))
     return data
Exemplo n.º 16
0
def add_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user,
                                                  Topic.objects.all()),
                              pk=topic_id)
    if not perms.may_subscribe_topic(request.user, topic):
        raise PermissionDenied
    topic.subscribers.add(request.user)
    msg = _(
        'Subscription added. You will receive email notifications for replies to this topic.'
    )
    messages.success(request, msg, fail_silently=True)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 17
0
Arquivo: views.py Projeto: lnroma/aor
 def get_context_data(self, **kwargs):
     data = super(MovePostView, self).get_context_data()
     data['is_move'] = True
     # FIXME move to settings
     MOVE_POST_TIMEDELTA = 60
     since = datetime.today() - timedelta(days=MOVE_POST_TIMEDELTA)
     topic_qs = Topic.objects.filter(updated__gt=since)
     topic_qs = perms.filter_topics(self.request.user, topic_qs)
     data['move_to_topic_list'] = (
         topic_qs.select_related('forum').order_by('forum', 'forum__name',
                                                   'name'))
     return data
Exemplo n.º 18
0
    def get_context_data(self, **kwargs):
        context = super(GroupDetailView, self).get_context_data(**kwargs)
        group = self.get_object()

        # Images
        context['image_list'] = group.images.all()
        context['alias'] = 'gallery'

        # Misc
        context['user_is_member'] = self.request.user in group.members.all()
        context['user_is_invited'] = self.request.user in group.invited_users.all()
        context['user_is_moderator'] = self.request.user in group.moderators.all()

        # Forum
        topics = group.forum.topics.order_by('-sticky', '-updated', '-id').select_related()
        topics = perms.filter_topics(self.request.user, topics)
        context['topics'] = topics[:5]

        return context
Exemplo n.º 19
0
Arquivo: views.py Projeto: JTLX/pybbm
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(**{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login

                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if "forum_id" in kwargs:
            self.forum = get_object_or_404(
                perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs["forum_id"]
            )
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif "topic_id" in kwargs:
            self.topic = get_object_or_404(
                perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs["topic_id"]
            )
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied

            self.quote = ""
            if "quote_id" in request.GET:
                try:
                    quote_id = int(request.GET.get("quote_id"))
                except TypeError:
                    raise Http404
                else:
                    post = get_object_or_404(Post, pk=quote_id)
                    if not perms.may_view_post(request.user, post):
                        raise PermissionDenied
                    profile = util.get_pybb_profile(post.user)
                    self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)(post.body, profile.get_display_name())

                if self.quote and request.is_ajax():
                    return HttpResponse(self.quote)
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Exemplo n.º 20
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(username=defaults.PYBB_ANONYMOUS_USERNAME)
            else:
                from django.contrib.auth.views import redirect_to_login
                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if 'forum_id' in kwargs:
            self.forum = get_object_or_404(perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs['forum_id'])
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif 'topic_id' in kwargs:
            self.topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs['topic_id'])
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Exemplo n.º 21
0
    def get_context_data(self, **kwargs):
        context = super(GroupDetailView, self).get_context_data(**kwargs)
        group = self.get_object()

        # Images
        context['image_list'] = group.images.all()
        context['alias'] = 'gallery'

        # Misc
        context['user_is_member'] = self.request.user in group.members.all()
        context[
            'user_is_invited'] = self.request.user in group.invited_users.all(
            )
        context[
            'user_is_moderator'] = self.request.user in group.moderators.all()

        # Forum
        topics = group.forum.topics.order_by('-sticky', '-updated',
                                             '-id').select_related()
        topics = perms.filter_topics(self.request.user, topics)
        context['topics'] = topics[:5]

        return context
Exemplo n.º 22
0
 def items(self, user):
     return perms.filter_topics(
         user, Topic.objects.all()).select_related('forum').order_by(
             '-created', '-id')[:15]
Exemplo n.º 23
0
 def get_queryset(self):
     qs = Topic.objects.all().select_related()
     qs = perms.filter_topics(self.request.user, qs)
     return qs.order_by('-updated')
Exemplo n.º 24
0
def add_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=topic_id)
    topic.subscribers.add(request.user)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 25
0
 def get_queryset(self):
     qs = super(UserTopics, self).get_queryset()
     qs = qs.filter(user=self.user)
     qs = perms.filter_topics(self.user, qs)
     qs = qs.order_by('-updated', '-created')
     return qs
Exemplo n.º 26
0
def index_view(request):
    #article_list
    article_list = NewsArticle.objects.all().order_by('-pub_date')

    #article pagination
    paginator = Paginator(article_list, 3)
    page = request.GET.get('page')
    try:
        articles = paginator.page(page)
    except PageNotAnInteger:
        articles = paginator.page(1)
    except EmptyPage:
        articles = paginator.page(paginator.num_pages)

    #recruit
    recruits = Recruit.objects.all().order_by('name_text')
    #order by if recruits are needed
    tmp = []
    for recruit in recruits:
        if recruit.spec1.is_needed or recruit.spec2.is_needed or recruit.spec3.is_needed:
            tmp.append(recruit)
    for recruit in recruits:
        if not recruit.spec1.is_needed and not recruit.spec2.is_needed and not recruit.spec3.is_needed:
            tmp.append(recruit)

    recruits = tmp

    #latest forum posts
    topic_list = Topic.objects.all().select_related().order_by(
        '-updated', '-id')
    topic_list = perms.filter_topics(request.user, topic_list)
    topic_list = topic_list[:5]

    #warcraftlogs
    logs_list = WarcraftlogsAPI.objects.all().order_by('-end')
    logs_list = logs_list[:5]

    #wowtoken
    wow_token = WowTokenApi.objects.all()

    #chatterbox
    chatterbox = Chatterbox.objects.all().order_by('-pub_date')
    chatterbox = chatterbox[:5:-1]

    #article comments
    comment_count = {}
    try:
        comments = ArticleComment.objects.all()
    except:
        comments = []

    for article in article_list:
        comment_count[article.id] = 0

    for comment in comments:
        if comment.origin_id in comment_count:
            comment_count[comment.origin_id] += 1
        else:
            comment_count[comment.origin_id] = 1

    if "chatterbox_form" in request.POST:
        form = ChatterboxForm(request.POST, request.FILES)
        if form.is_valid():
            #form.save()
            instance = form.save(commit=False)
            instance.author = request.user
            instance.pub_date = timezone.now()
            instance.save()
            return HttpResponseRedirect(reverse('home'))
    else:
        form = ChatterboxForm()

    #raid progress
    raid_progress = RaidProgress.objects.all().order_by('order')
    raid_bosses = RaidBoss.objects.all()

    args = {}
    args.update(csrf(request))

    args['form'] = form
    args['chatterbox'] = chatterbox
    args['newsArticles'] = articles
    args['topic_list'] = topic_list
    args['logs_list'] = logs_list
    args['wow_token'] = wow_token
    args['comment_count'] = comment_count
    args['recruits'] = recruits
    args['raid_progress'] = raid_progress
    args['raid_bosses'] = raid_bosses

    return render_to_response('home/index.html',
                              args,
                              context_instance=RequestContext(request))
Exemplo n.º 27
0
 def get_queryset(self):
     qs = Topic.objects.all().select_related()
     qs = perms.filter_topics(self.request.user, qs)
     return qs.order_by('-updated')
Exemplo n.º 28
0
 def items(self, user):
     return perms.filter_topics(user, Topic.objects.all()).select_related('forum').order_by('-created', '-id')[:15]
Exemplo n.º 29
0
 def items(self, user):
     return perms.filter_topics(
         user, Topic.objects.all()).order_by('-created')[:15]
Exemplo n.º 30
0
 def get_queryset(self):
     qs = super(UserTopics, self).get_queryset()
     qs = qs.filter(user=self.user)
     qs = perms.filter_topics(self.user, qs)
     qs = qs.order_by('-updated', '-created')
     return qs
Exemplo n.º 31
0
def pybb_get_latest_topics(context, cnt=5, user=None):
    qs = Topic.objects.all().order_by('-updated', '-created')
    if not user:
        user = context['user']
    qs = perms.filter_topics(user, qs)
    return qs[:cnt]
Exemplo n.º 32
0
def pybb_get_latest_topics(context, cnt=5, user=None):
    qs = Topic.objects.all().order_by('-updated', '-created')
    if not user:
        user = context['user']
    qs = perms.filter_topics(user, qs)
    return qs[:cnt]
Exemplo n.º 33
0
 def items(self, user):
     return perms.filter_topics(user, Topic.objects.all()).order_by('-created')[:15]
Exemplo n.º 34
0
def add_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user,
                                                  Topic.objects.all()),
                              pk=topic_id)
    topic.subscribers.add(request.user)
    return HttpResponseRedirect(topic.get_absolute_url())
Exemplo n.º 35
0
def delete_subscription(request, topic_id):
    topic = get_object_or_404(perms.filter_topics(request.user, Topic.objects.all()), pk=topic_id)
    topic.subscribers.remove(request.user)
    msg = _('Subscription removed. You will not receive emails from this topic unless you subscribe or post again.')
    messages.success(request, msg, fail_silently=True)
    return HttpResponseRedirect(topic.get_absolute_url())