Swappable Behaviours

Plugin Permissions

PRIVATE_STORAGE_AUTH_FUNCTION = ‘private_storage.permissions.allow_superuser’ # default

Access Control / Permissions are determined by a Python module, that can be swapped out using a setting:

DOCUMENT_CATALOGUE_PERMISSIONS = 'document_catalogue.permissions'   # default

Override by providing an ordinary Python module that defines the permission functions. See Permissions API

By default, these functions simply use django’s built-in permissions model:

document_catalogue.change_document
document_catalogue.add_document
document_catalogue.delete_document

To simply restrict access to logged in users only, use setting:

DOCUMENT_CATALOGUE_LOGIN_REQUIRED = True    # default

See Access Control Settings

Document List View Plugins

Inject custom behaviours into views that list documents using a simple plugin registered on the view.

Plugin API

Extend the Abstract Base Class and override method(s) to customize behaviours

See Plugins API

Inject your plugin(s) behaviours into document list views using a setting:

DOCUMENT_CATALOGUE_LIST_VIEW_PLUGINS = ('document_catalogue.plugins.SessionOrderedViewPlugin', )  # default

See Plugin Settings

Batteries Included

Document Catalogue comes with 2 plugins:

class document_catalogue.plugins.OrderedViewPlugin(query_param='dc_ordering')[source]

Applies ordering to view’s queryset based on URL query argument found in request.GET

class document_catalogue.plugins.SessionOrderedViewPlugin(query_param='dc_ordering')[source]

Applies ordering to view’s queryset based on ordering passed in URL query arg and stored in session