Django

Code

Changeset 3617

Show
Ignore:
Timestamp:
08/19/06 13:21:01 (2 years ago)
Author:
clong
Message:

[per-object-permissions] Changed pagination to use the paginator tag described on http://code.djangoproject.com/wiki/PaginatorTag

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/per-object-permissions/django/contrib/admin/media/css/forms.css

    r3464 r3617  
    5959.flatpages-flatpage #id_content { height:40.2em; } 
    6060.module table .vPositiveSmallIntegerField { width:2.2em; } 
     61 
     62 
     63/* PAGINATOR */ 
     64.paginator { padding: .25em .25em .6em .25em; } 
     65.paginate-pages { padding: 2px 3px; border: 1px solid #ddd; cursor: pointer; text-decoration: underline; } 
     66.paginate-first, .paginate-last { padding: 2px 6px; border: 1px solid #ddd; font-weight: bold; } 
     67.paginate-previous, .paginate-next { padding: 2px 3px; border: 1px solid #ddd; } 
     68.paginate-link { padding: 2px 4px; border: 1px solid #ddd; } 
     69.paginate-current { padding: 2px 4px; border: 1px solid #ddd; font-weight: bold; background:#417690; color:#f4f379; } 
  • django/branches/per-object-permissions/django/contrib/admin/templates/admin/row_level_permission.html

    r3616 r3617  
    136136<tr align="right"> 
    137137<td colspan="5"> 
     138{% comment %} 
    138139{% if has_previous %} <a href="?page={{ previous }}"> &lt;&lt; </a> {% endif %} {% if has_next %} <a href="?page={{ next }}"> &gt;&gt; </a>{% endif %} 
     140{% endcomment %} 
     141<div class="paginator">{% paginator %}</div> 
    139142</td> 
    140143</tr> 
  • django/branches/per-object-permissions/django/contrib/admin/templatetags/row_level_permission.py

    r3486 r3617  
    3535    return objref_class(tok) 
    3636 
     37def paginator(context, adjacent_pages=2): 
     38    """Adds pagination context variables for first, adjacent and next page links 
     39    in addition to those already populated by the object_list generic view.""" 
     40    page_numbers = [n for n in \ 
     41                    range(context["page"] - adjacent_pages, context["page"] + adjacent_pages + 1) \ 
     42                    if n > 0 and n <= context["pages"]] 
     43    print page_numbers 
     44    return { 
     45        "hits": context["hits"], 
     46        "results_per_page": context["results_per_page"], 
     47        "page": context["page"], 
     48        "pages": context["pages"], 
     49        "page_numbers": page_numbers, 
     50        "next": context["next"], 
     51        "previous": context["previous"], 
     52        "has_next": context["has_next"], 
     53        "has_previous": context["has_previous"], 
     54        "show_first": 1 not in page_numbers, 
     55        "show_last": context["pages"] not in page_numbers, 
     56    } 
     57 
     58register.inclusion_tag("admin/paginator.html", takes_context=True)(paginator) 
     59 
    3760register.tag('objref', objref) 
  • django/branches/per-object-permissions/django/contrib/admin/views/row_level_permissions.py

    r3616 r3617  
    3030        raise PermissionDenied     
    3131     
    32     #TODO: For now takes the number per page from the model instance not the RLP object 
    33     paginator = ObjectPaginator(model_instance.row_level_permissions.order_by('owner_ct', 'owner_id'), 
    34                                 opts.admin.list_per_page) 
    35      
    36     page = int(request.GET.get('page', 0)) 
    37     rlp_list = paginator.get_page(page) 
     32 
    3833 
    3934    c = template.RequestContext(request, { 
     
    4338        'original': model_instance, 
    4439        'opts':opts, 
     40    })    
     41 
     42     
     43    #TODO: For now takes the number per page from the model instance not the RLP object 
     44    list_per_page = opts.admin.list_per_page 
     45    #list_per_page = 5 
     46    paginator = ObjectPaginator(model_instance.row_level_permissions.order_by('owner_ct', 'owner_id'), 
     47                                list_per_page) 
     48    page = int(request.GET.get('page', 1))-1 
     49    rlp_list = paginator.get_page(page)     
     50    paginator_context = { 
    4551        "is_paginated": paginator.has_next_page(0), 
    4652        "has_next": paginator.has_next_page(page), 
    4753        "has_previous": paginator.has_previous_page(page), 
    48         "page": page + 1, 
    49         "next": page + 1, 
    50         "previous": page - 1, 
    51     })    
     54        "page": page+1, 
     55        "next": page+2, 
     56        "previous": page, 
     57        "hits":paginator.hits, 
     58        "results_per_page":list_per_page, 
     59        "pages":paginator.pages, 
     60        "has_next":paginator.has_next_page(page), 
     61        "has_previous":paginator.has_previous_page(page), 
     62    } 
     63    c.update(paginator_context) 
    5264     
    5365    rlp_errors = rlp_new_data = {}