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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
 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)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
 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, )))
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
    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)
Ejemplo n.º 21
0
 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)
Ejemplo n.º 22
0
 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)
Ejemplo n.º 23
0
 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)
Ejemplo n.º 24
0
 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)
Ejemplo n.º 25
0
 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)
Ejemplo n.º 26
0
 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)
Ejemplo n.º 27
0
    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)
Ejemplo n.º 28
0
 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)
Ejemplo n.º 29
0
 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)
Ejemplo n.º 30
0
    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)