Opened 10 years ago

Closed 9 years ago

#720 closed enhancement (fixed)

Added methods to ObjectPaginator for getting the numbers of first and last object on page

Reported by: m@… Owned by: adrian
Component: Core (Other) Version:
Severity: minor Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

Hi,

I added two convenience methods to django/core/paginator.py for getting the numbers of the first and last object on the current page, relative to the total number of objects found (paginator.hits):

  • first_on_page(page_number)
  • last_on_page(page_number)

The purpose of having these methods would be to make it easy for the view author to make these values available to the template author who would commonly need to output stuff like:

Now showing x through y of z matching records

I have tried to implement these methods in the style of the other "public" methods of the ObjectPaginator class, so that they take the page number as their only argument when called externally. I am still fairly new to Python and to submitting patches to Django, so please feel free to rename/correct at will.

If these methods are incorporated into the default distribution, I think the generic views should be modified accordingly to provide these values. I would be happy to make those changes, if needed.

Thanks!

/Morten

Attachments (1)

paginator_diff.py (1.3 KB) - added by m@… 10 years ago.
svn diff output with added methods

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by m@…

svn diff output with added methods

comment:1 Changed 9 years ago by adrian

  • Resolution set to fixed
  • Status changed from new to closed

(In [3040]) Fixed #720 -- Added first_on_page() and last_on_page() methods to ObjectPaginator. Thanks, m@…

comment:2 Changed 9 years ago by vidar@…

  • Resolution fixed deleted
  • Status changed from closed to reopened

A small correction is needed here.
If you call last_on_page before a call to _get_pages you get a TypeError since self._pages has not been set.

unsupported operand type(s) for -: 'NoneType' and 'int'

This is a small thing since usually you will have called this method but it should be easily corrected I suppose.

br
Vidar

comment:3 Changed 9 years ago by SmileyChris

The fix for this (and adding some functionality) is waiting in #2093.

comment:4 Changed 9 years ago by SmileyChris

  • Resolution set to fixed
  • Status changed from reopened to closed

Fixed in [4041] (as part of #2575)

Note: See TracTickets for help on using tickets.
Back to Top