paging maintains other GET parameters -- contributed by jezdez
[django-pagination.git] / pagination / registration.py
1 from django.conf import settings
2
3 default_pagination = getattr(settings, 'DEFAULT_PAGINATION', 20)
4
5 class PaginationRegistrar(object):
6     _registry = {}
7     
8     def register(self, model, pagination=None):
9         self._registry[model] = pagination or default_pagination
10     
11     def unregister(self, model):
12         try:
13             del self._registry[model]
14         except KeyError:
15             return
16     
17     def get_for_model(self, model):
18         if model in self._registry:
19             return self._registry[model]
20         return None
21
22 def get_registry():
23     registry = getattr(settings, '_pagination_registry', None)
24     if registry is None:
25         registry = PaginationRegistrar()
26         setattr(settings, '_pagination_registry', registry)
27     return registry