def posts_by_page(self, request, page_id): self.page_id = int(page_id) if app_settings.PAGINATION_REDIRECT_INDEX_TO_ROOT: # Redirects to the root page if the page index is 1 if self.page_id == 1: # Redirects to the index page if the page id is 1 return HttpResponseRedirect(self.url) else: # Returns the page index as long as it's not 1 return Page.serve(self, request) else: # Serves the page 1 return Page.serve(self, request)
def post_by_category(self, request, category, *args, **kwargs): self.showing_all = False self.search_type = 'category' self.search_term = category posts_p = self.get_posts().filter(categories__slug=category) self.posts = self.use_paginator(request, posts_p) return Page.serve(self, request, *args, **kwargs)
def post_by_date_slug(self, request, year, month, day, slug, *args, **kwargs): post_page = self.get_posts().filter(slug=slug).first() if not post_page: raise Http404 return Page.serve(post_page, request, *args, **kwargs)
def entries_by_author(self, request, author, *args, **kwargs): self.search_type = _('author') self.search_term = author field_name = 'owner__%s' % getattr(settings, 'PUPUT_USERNAME_FIELD', 'username') self.entries = self.get_entries().filter(**{field_name: author}) return Page.serve(self, request, *args, **kwargs)
def post_by_category(self, request, category, *args, **kwargs): self.search_type = 'category' self.search_term = category self.posts = self.get_posts().filter(categories__slug=category) print(len(self.posts)) print(str(self.get_posts().filter(categories__slug=category))) return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): query = request.GET.get('q', None) if query: self.posts = self.get_posts().filter(body__contains=query) self.search_type = 'search' self.search_term = query return Page.serve(self, request, *args, **kwargs)
def post_by_tag(self, request, tag, *args, **kwargs): self.showing_all = False self.search_type = 'tag' self.search_term = tag posts_p = self.get_posts().filter(tags__slug=tag) self.posts = self.use_paginator(request, posts_p) return Page.serve(self, request, *args, **kwargs)
def post_by_author(self, request, author, *args, **kwargs): self.showing_all = False self.search_type = 'author' self.search_term = author posts_p = self.get_posts().filter(author__slug=author) self.posts = self.use_paginator(request, posts_p) #self.posts = self.get_posts() return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.posts = self.get_posts() if search_query: self.posts = self.posts.search(search_query) self.search_term = search_query self.search_type = 'search' return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get("q", None) self.posts = self.get_posts() if search_query: self.posts = self.posts.filter(body__contains=search_query) self.search_term = search_query self.search_type = "search" return Page.serve(self, request, *args, **kwargs)
def entries_by_author(self, request, author, *args, **kwargs): self.search_type = _('author') object_or_slug = get_object_or_None(get_user_model(), ** {USERNAME_FIELD: author}) or author self.search_term = str(object_or_slug) self.entries = self.get_entries().filter( **{'owner__%s' % USERNAME_FIELD: author}) return Page.serve(self, request, *args, **kwargs)
def entries_by_tag(self, request, tag, *args, **kwargs): from puput.models import Tag self.search_type = _('tag') object_or_slug = get_object_or_None(Tag, slug=tag) or tag self.search_term = str(object_or_slug) self.entries = self.get_entries().filter(tags__slug=tag) return Page.serve(self, request, *args, **kwargs)
def serve(self, request, *args, **kwargs): context = self.get_context(request) form = context['form'] if request.method == 'POST' and form.is_valid(): is_complete = self.steps.update_data() if is_complete: return self.serve_success(request, *args, **kwargs) return HttpResponseRedirect(self.url) return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.blog_pages = self.get_posts() if search_query: self.blog_pages = self.blog_pages.filter( body__contains=search_query) self.search_term = search_query self.search_type = 'search' return Page.serve(self, request, *args, **kwargs)
def entries_search(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.entries = self.get_entries() if search_query: self.entries = self.entries.search(search_query) self.search_term = search_query self.search_type = _('search') Query.get(search_query).add_hit() return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get('tag', None) self.location_pages = self.get_location_pages() if search_query: self.location_pages = self.location_pages.filter( intro__contains=search_query) self.search_term = search_query self.search_type = 'search' return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.posts = self.get_posts() if search_query: self.posts = self.posts.filter(Q(body__contains=search_query) | Q(excerpt__contains=search_query) | Q(title__contains=search_query)) self.search_term = search_query self.search_type = 'search' return Page.serve(self, request, *args, **kwargs)
def post_list(self, request, *args, **kwargs): self.page_id = 1 if app_settings.PAGINATION_REDIRECT_INDEX_TO_ROOT: # Return the index page return Page.serve(self, request, *args, **kwargs) else: # redirect to /page/1/ return HttpResponseRedirect( self.reverse_subpage('pagninated_index_page', args=(1, )))
def post_by_date(self, request, year, month=None, day=None, *args, **kwargs): self.posts = self.get_posts().filter(date__year=year) if month: self.posts = self.posts.filter(date__month=month) df = DateFormat(date(int(year), int(month), 1)) self.search_term = df.format('F Y') if day: self.posts = self.posts.filter(date__day=day) self.search_term = date_format(date(int(year), int(month), int(day))) return Page.serve(self, request, *args, **kwargs)
def entries_by_category(self, request, category, *args, **kwargs): from puput.models import Category self.search_type = _('category') object_or_slug = get_object_or_None(Category, slug=category) or category self.search_term = str(object_or_slug) self.entries = self.get_entries().filter( entry_categories__category__slug=category) return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.posts = self.get_posts() if search_query: self.posts = self.posts.annotate(search=SearchVector( 'title', 'title_th', 'body_en', 'body_th')).filter( search=search_query) self.search_term = search_query self.search_type = 'search' return Page.serve(self, request, *args, **kwargs)
def post_list(self, request, *args, **kwargs): search_query = request.GET.get('q', None) self.posts = self.get_posts() if search_query: self.posts = self.posts.filter(body__contains=search_query) if request.GET.get('tag', None): tags = request.GET.get('tag') self.posts = self.get_posts().filter(tags__slug__in=[tags]) return Page.serve(self, request, *args, **kwargs)
def post_list(self, request, *args, **kwargs): ''' pagination for posts ''' print('route post list is called!!') if self.language.code == 'en': self.help_text = 'Recent Posts:' else: self.help_text = '近期文章:' all_post = self.get_recent_posts(999) self.posts_this_page = all_post return Page.serve(self, request, *args, **kwargs)
def entries_search(self, request, *args, **kwargs): """ Generates a page containing all the entries associated with a specific search. """ self.search_query = request.GET.get('q', None) response = None if self.search_query: self.filter_type = 'search' self.filter_value = self.search_query self.entries = self.get_entries().search(self.search_query, operator='or') Query.get(self.search_query).add_hit() response = Page.serve(self, request, *args, **kwargs) return response or redirect(self.url)
def post_by_category(self, request, category, *args, **kwargs): print('route post_by_category is called!!') if self.language.code == 'en': self.help_text = 'Posts contain these categories:' else: self.help_text = '包含這些類別的文章:' self.present_method = 1 self.searched_categories = BlogCategory.objects.filter(slug=category) self.posts_this_page = [ post for post in self.get_recent_posts(50) if category in [c.slug for c in post.categories.all()] ] return Page.serve(self, request, *args, **kwargs)
def post_by_date_slug(self, request, year, month, day, slug, *args, **kwargs): post_page = self.get_posts().filter(slug=slug).first() if not post_page: raise Http404 if request.method == 'POST': form = PostCommentForm(request.POST) if form.is_valid(): PostComment.objects.create( user=request.user, comment=form.cleaned_data['comment'], post=post_page) return Page.serve(post_page, request, *args, **kwargs)
def post_list(self, request, *args, **kwargs): #page_n = request.GET.get('page') #if not page_n: # page_n = "1" #post_t = self.get_posts() #paginator = Paginator(post_t, 3) #posts_page = paginator.get_page(page_n) #self.posts = posts_page #self.posts = self.get_posts() self.showing_all = False posts_p = self.get_posts() self.posts = self.use_paginator(request, posts_p) return Page.serve(self, request, *args, **kwargs)
def post_search(self, request, *args, **kwargs): print('route post_search is called!!') if self.language.code == 'en': self.help_text = 'Search by keyword:' else: self.help_text = '關鍵字搜尋:' self.present_method = 2 search_query = request.GET.get('q', None) self.keyword = search_query all_posts = self.get_posts() if search_query: self.posts_this_page = [ p for p in all_posts if search_query in p.title ] return Page.serve(self, request, *args, **kwargs)
def entries_by_date(self, request, year, month=None, day=None, *args, **kwargs): self.entries = self.get_entries().filter(date__year=year) self.search_type = _('date') self.search_term = year if month: self.entries = self.entries.filter(date__month=month) df = DateFormat(date(int(year), int(month), 1)) self.search_term = df.format('F Y') if day: self.entries = self.entries.filter(date__day=day) self.search_term = date_format( date(int(year), int(month), int(day))) return Page.serve(self, request, *args, **kwargs)
def paginate(self, request, posts, view_name, view_kwargs=None, **kwargs): paginator = Paginator(posts.specific().order_by('-pub_date', '-id'), self.posts_per_pagination_page) view_kwargs = {k: v for k, v in view_kwargs.items() if v is not None} page_num = view_kwargs.get('page_num', 1) if page_num > paginator.num_pages: if paginator.num_pages > 1: view_kwargs['page_num'] = paginator.num_pages else: del view_kwargs['page_num'] return HttpResponseRedirect( self.url + self.reverse_subpage(view_name, kwargs=view_kwargs)) page = paginator.page(page_num) prev_url = next_url = None if page.has_previous(): if page.previous_page_number() > 1: view_kwargs['page_num'] = page.previous_page_number() else: del view_kwargs['page_num'] prev_url = self.url + self.reverse_subpage(view_name, kwargs=view_kwargs) if page.has_next(): view_kwargs['page_num'] = page.next_page_number() next_url = self.url + self.reverse_subpage(view_name, kwargs=view_kwargs) return Page.serve(self, request, posts=page, prev_page_url=prev_url, next_page_url=next_url, **kwargs)
def normal_page(self, request): return Page.serve(self, request)