Changeset 2526

Show
Ignore:
Timestamp:
02/05/10 07:39:11 (6 weeks ago)
Author:
JensDiemer
Message:

bugfix: "blog tag pages are empty!" - ticket:360 - Use Paginator in tag_view, too.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/0.9/pylucid_project/pylucid_plugins/blog/views.py

    r2523 r2526  
    2323""" 
    2424 
    25 __version__ = "$Rev$ Alpha" 
     25__version__ = "$Rev$" 
    2626 
    27 # from python core 
    28 import os, datetime, posixpath 
    2927 
    30 # from django 
    31 from django import http 
    3228from django.conf import settings 
    33 from django.core.mail import send_mail 
    34 from django.template import RequestContext 
    35 from django.core.urlresolvers import reverse 
    36 from django.contrib.sites.models import Site 
    37 from django.shortcuts import render_to_response 
    3829from django.utils.translation import ugettext as _ 
    3930from django.views.decorators.csrf import csrf_protect 
     
    7061 
    7162 
     63def _paginat_queryset(request, queryset): 
     64    # Get number of entries allowed by the users see on a page.  
     65    pref_form = BlogPrefForm() 
     66    preferences = pref_form.get_preferences() 
     67    if request.user.is_anonymous(): 
     68        max_count = preferences.get("max_anonym_count", 10) 
     69    else: 
     70        max_count = preferences.get("max_user_count", 30) 
     71 
     72    # Show max_count entries per page 
     73    paginator = Paginator(queryset, max_count) 
     74 
     75    # Make sure page request is an int. If not, deliver first page. 
     76    try: 
     77        page = int(request.GET.get('page', '1')) 
     78    except ValueError: 
     79        page = 1 
     80 
     81    # If page request (9999) is out of range, deliver last page of results. 
     82    try: 
     83        return paginator.page(page) 
     84    except (EmptyPage, InvalidPage): 
     85        return paginator.page(paginator.num_pages) 
     86 
     87 
    7288def _get_tag_cloud(request): 
    7389    filters = _get_filters(request) 
     
    93109    queryset = _filter_blog_entries(request, queryset) 
    94110 
    95     # Get number of entries allowed by the users see on a page.  
    96     pref_form = BlogPrefForm() 
    97     preferences = pref_form.get_preferences() 
    98     if request.user.is_anonymous(): 
    99         max_count = preferences.get("max_anonym_count", 10) 
    100     else: 
    101         max_count = preferences.get("max_user_count", 30) 
    102  
    103     # Show max_count entries per page 
    104     paginator = Paginator(queryset, max_count) 
    105  
    106     # Make sure page request is an int. If not, deliver first page. 
    107     try: 
    108         page = int(request.GET.get('page', '1')) 
    109     except ValueError: 
    110         page = 1 
    111  
    112     # If page request (9999) is out of range, deliver last page of results. 
    113     try: 
    114         entries = paginator.page(page) 
    115     except (EmptyPage, InvalidPage): 
    116         entries = paginator.page(paginator.num_pages) 
     111    entries = _paginat_queryset(request, queryset) 
    117112 
    118113    context = { 
     
    133128    queryset = _filter_blog_entries(request, queryset) 
    134129 
     130    entries = _paginat_queryset(request, queryset) 
     131 
    135132    # Add link to the breadcrumbs ;) 
    136133    _add_breadcrumb(request, title=_("All '%s' tagged items" % ",".join(tags)), url=request.path) 
    137134 
    138135    context = { 
    139         "entries": queryset, 
     136        "entries": entries, 
    140137        "tag_cloud": _get_tag_cloud(request), 
    141138        "CSS_PLUGIN_CLASS_NAME": settings.PYLUCID.CSS_PLUGIN_CLASS_NAME,