Skip to main content

Display django permissions in a tabular format that is user friendly, and highly customisable

Project description

Display Django basic permissions (add, change & delete) in a tabular format that is user friendly, translatable and easy customized. If you have more customised permissions, the default FilteredSelectMultiple widget will also appear to handle those permissions.

Features:

  • Permissions are displayed in a active language with app and model verbose_name.

  • Any extra custom permissions are displayed in the default admin widget for permissions.

  • Customize which apps, models to show in the permissions table. You can also set a exclude function for high-end customization.

  • RTL ready, Bootstrap ready.

  • Easy customize-able look.

  • Tested on Django 1.8 & Django 1.9.

  • Works on Python 2 and Python 3.

Installation

You can install django-tabular-permissions via Pypi:

pip install django-tabular-permissions

Usage:

Simply add “tabular_permissions” to your INSTALLED_APPS setting like this:

INSTALLED_APPS = [
    ...
    'tabular_permissions',
]

then navigate to User and/or Group change form to see django-tabular-permissions in action.

Settings:

  • TABULAR_PERMISSIONS_EXCLUDE

Control which apps, models to show in the permissions table. By default tabular_permissions exclude contrib apps sessions , contenttypes and admin apps from showing their models in the permissions table. You can add (or override) those apps and/or specify models to exclude, like this:

TABULAR_PERMISSIONS_EXCLUDE = {
    'app': [],
    'model': [],
    'function': 'tabular_permissions.helpers.TabularPermissionDefaultExcludeFunction',
                 # A dotted path to a class that implement ``__call__`` that takes model as an argument.
    'override': False # Set to True to override default behavior.
}
  • TABULAR_PERMISSIONS_AUTO_IMPLEMENT

By default, just by including tabular_permissions in your installed_apps, the django.contrib.admin.UserAdmin (and GroupAdmin) are “patched” to include the tabular_permissions widget. If you have a custom UserAdmin, then set this option to False and make sure you either:

  1. Inherit from TabularPermissionsUserAdmin for User admin and from``TabularPermissionsGroupAdmin`` for group admin

  2. Inherit from UserTabularPermissionsAdminBase and GroupTabularPermissionsAdminBase before admin.ModelAdmin or UserAdmin/GroupAdmin,

  3. Set the user_permissions widget to tabular_permissions.widgets.TabularPermissionsWidget and remember to send a 3rd argument ‘permissions’ when in Group admin. See tabular_permissions.admin for information.

  • TABULAR_PERMISSIONS_TEMPLATE

Default to ‘tabular_permissions/admin/tabular_permissions.html`. You can either extend or override this template for maximum control.

Enjoy and feel free to report any bugs or make pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-tabular-permissions-1.0.1.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file django-tabular-permissions-1.0.1.tar.gz.

File metadata

File hashes

Hashes for django-tabular-permissions-1.0.1.tar.gz
Algorithm Hash digest
SHA256 15a0eee7a7925808bdeddffb2a68162983f1fbbb9298880877748bfe9e0ae4e4
MD5 a478cb1d4de15438400016fa88d0eb4c
BLAKE2b-256 a719248e51f4c041d7022ee26213aadc294aaf2796c3c3b7bf714086a753f0da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page