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)
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')
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
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
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)
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
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)
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
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())
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())
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
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
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())
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())
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
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())
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
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
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)
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)
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
def items(self, user): return perms.filter_topics( user, Topic.objects.all()).select_related('forum').order_by( '-created', '-id')[:15]
def get_queryset(self): qs = Topic.objects.all().select_related() qs = perms.filter_topics(self.request.user, qs) return qs.order_by('-updated')
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())
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
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))
def items(self, user): return perms.filter_topics(user, Topic.objects.all()).select_related('forum').order_by('-created', '-id')[:15]
def items(self, user): return perms.filter_topics( user, Topic.objects.all()).order_by('-created')[:15]
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]
def items(self, user): return perms.filter_topics(user, Topic.objects.all()).order_by('-created')[:15]
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())