Skip to main content

Admin index for Django

Project description

Version:
4.0.0
Download:

https://pypi.org/project/django-admin-index/

Source:

https://github.com/maykinmedia/django-admin-index

Keywords:

django, admin, dashboard

Build status Code quality checks black coverage BSD License Supported Python versions Supported Django versions pypi-version

About

This extension enables you to group, order and customize the Django admin index page without too much hassle or visual changes.

There are 2 concepts: Application groups and Application links. You can create an application group and add any model to it in the Django admin, under Admin index. Whether the models are shown to the user, depends on the regular Django permissions and whether it’s registered in the admin.

An application link is simply a URL with a name that you can add to an application group. It shows as a regular Django model.

One final change in the Django admin is the removal of the App lists, that link to a list of models within an App. This concept became obsolete.

Ordered dashboard with dropdown menu. Manage Application groups. Configure application groups and add Application links.

Installation

You can install django_admin_index either via the Python Package Index (PyPI) or from source.

To install using pip:

$ pip install -U django-admin-index

Usage

To use this with your project you need to follow these steps:

  1. Add django_admin_index and ordered_model to INSTALLED_APPS in your Django project’s settings.py. Make sure that django_admin_index comes before django.contrib.admin:

    INSTALLED_APPS = (
        "django_admin_index",
        "ordered_model",
        ...,
        "django.contrib.admin",
    )

    Note that there is no dash in the module name, only underscores.

  2. Create the database tables by performing a database migration:

    $ python manage.py migrate admin_index
  3. Go to the Django admin of your site and look for the “Application groups” section.

Configuration

There are optional settings you can add to your settings.py:

  • ADMIN_INDEX_SHOW_REMAINING_APPS (defaults to False)

    Show all models that are not added to an Application group in a group called “Miscellaneous” for staff users.

    NOTE: If no Application groups are defined, it will show all models regardless of this setting.

  • ADMIN_INDEX_SHOW_REMAINING_APPS_TO_SUPERUSERS (defaults to True)

    Show all models that are not added a to an Application group in a group called “Miscellaneous” for super users users.

    NOTE: If no Application groups are defined, it will show all models regardless of this setting.

  • ADMIN_INDEX_AUTO_CREATE_APP_GROUP (defaults to False)

    Automaticly creates an Application group, based on the app_label, for all the models that would be in the “Miscellaneous” group. If True, your Django admin will initially look as it normally would. It will not update existing Application groups.

  • ADMIN_INDEX_SHOW_MENU (defaults to: True)

    Show the admin index as a menu above the breadcrumbs. Submenu’s are filled with the registered models.

  • ADMIN_INDEX_HIDE_APP_INDEX_PAGES (defaults to: True)

    Removes the links to the app index pages from the main index and the breadcrumbs.

  • ADMIN_INDEX_DISPLAY_DROP_DOWN_MENU_CONDITION_FUNCTION (defaults to django_admin_index.utils.should_display_dropdown_menu)

    A Python dotted path that can be imported to check when the dropdown menu should be displayed in the admin. The default implementation displays this menu if the user is a staff user and ADMIN_INDEX_SHOW_MENU is enabled.

Extra

Theming

By default, django-admin-index tabs/dropdowns are styled in the Django admin theme colours. On Django 3.2+ these are controlled through CSS variables in the static/admin/css/base.css stylesheet. These CSS variables are used as defaults for django-admin-index’ own CSS variables.

See scss/_vars.scss for all the available CSS variables you can use to customize the color palette. A simple example:

:root {
  --djai-tab-bg: #ff0080;
  --djai-tab-bg--hover: #a91b60;
}

Any rules not supported by CSS vars can be overridden with regular CSS. All elements have CSS class names following the BEM methodology, such as .djai-dropdown-menu__item and .djai-dropdown-menu__item.djai-dropdown-menu__item--active.

Contributors

Contributors and maintainers can install the project locally with all test dependencies in a virtualenv:

(env) $ pip install -e .[tests,pep8,coverage,release]

Running the test suite

To run the tests for a single environment (currently installed in your virtualenv), use pytest:

(env) $ pytest

To run the complete build matrix, use tox:

(env) $ tox

Developing the frontend

To develop the stylesheets, you can use the included test project:

(env) $ python manage.py runserver

You also want to install the frontend tooling and run the SCSS compilation to CSS in watch mode:

npm install  # one time to get the dependencies installed
npm run watch

Once the result is satisfactory, you can make a production build of the stylesheets:

npm run scss

Then, commit the changes and make a pull request.

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_admin_index-4.0.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

django_admin_index-4.0.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file django_admin_index-4.0.0.tar.gz.

File metadata

  • Download URL: django_admin_index-4.0.0.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for django_admin_index-4.0.0.tar.gz
Algorithm Hash digest
SHA256 5e49cf79bf6fbca271afbc4ba5a5b2d3194c3d0c27fc19dd9ec5bdd2b149a3c5
MD5 bb4c7a110d59d50da1e1e587e206b4d3
BLAKE2b-256 e4b511e3dcd8dd423c4357db8e09db1f82428955a67a8b5a7ed7ceaafbf8a94e

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admin_index-4.0.0.tar.gz:

Publisher: ci.yml on maykinmedia/django-admin-index

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_admin_index-4.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_index-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c4793633a70f034fff3669dec4f5dfe9b6118f12a1685af5a84dcaad0334a8f
MD5 6493364c037fed86d8df7b8159475827
BLAKE2b-256 ce52e16baae9efdf46f4333c85b5f96f8f7dce8f6f0a6dc05761a39759dc2a60

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admin_index-4.0.0-py3-none-any.whl:

Publisher: ci.yml on maykinmedia/django-admin-index

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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