This package allows Ella users to change default behavior of category listing pages. By default, each page has same number of objects (if there is enough of them).
Sometimes, this does not meet the site's requirements. Very often, it is demanded, that first page should be somehow different, e.g. list one more article that is rendered in different style (like leading article). This is unfortunately not possible to do without hackish workarounds in default Ella.
Setup is quite straightforward. First, install the package using pip or setuptools:
pip install ella-listingex
Add the app to your INSTALLED_APPS
:
INSTALLED_APPS = (
...,
'ella_listingex',
...
)
Configure the ella_listingex
to meet your requirements. Internally, this app works by using Ella's CUSTOM_VIEWS
override. This means that we are telling Ella to use our views instead of in-built ones. ella_listingex
application redefines Ella's ListContentType
view to provide additional functionality. Therefore, we need to allow CUSTOM_VIEWS
and set the VIEWS
variable to the path of ella_listingex.views
as shown below:
# Use custom views to support different number of items on the first and
# next pages of category listings.
CUSTOM_VIEWS = True
VIEWS = 'ella_listingex.views'
Next step is to set the pagination:
LISTINGEX_PAGINATE_BY = 10 # Default number of objects per page
LISTINGEX_FIRST_PAGE_COUNT = 11 # Number of objects on first page
The ella_listingex
works on all category listings which are not blacklisted. If you need to turn the special behaviour off on some pages, use the LISTINGEX_BLACKLIST
configuration option to provide list of regular expressions which will be matched against category's tree_path
attribute. If there is a match, the first page will be paginated normally:
LISTINGEX_BLACKLIST = ( # Blacklist categories, whose tree_path
r'^blogs', # matches '^blogs'
)