Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

django-admin-shortcuts

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-admin-shortcuts

Add simple and pretty shortcuts to the django admin homepage.

  • 3.0.1
  • PyPI
  • Socket score

Maintainers
1

Django Admin Shortcuts

image

What is this?

It's a simple dashboard app that adds shortcuts to your Django admin homepage. The keyword here is SIMPLE!

Why does it exist?

Because some people noted that it's sometimes hard to find the app you are looking for on the admin homepage.

"So why don't we customize the admin site a bit?"

"Nah, I don't want to go through all the hassle of editing templates or setting up a complex dashboard app ..."

Well, good thing django-admin-shortcuts is here, because it only takes five minutes of your time to go from the old dreadfully boring admin to the marvelous engineering excellence that is this app.

How do I use it?

  1. pip install django-admin-shortcuts

  2. add 'admin_shortcuts' to your INSTALLED_APPS, just before 'django.contrib.admin' <-- IMPORTANT

  3. add ADMIN_SHORTCUTS to your settings

    For example:

ADMIN_SHORTCUTS = [
    {
        'title': 'Authentication',
        'shortcuts': [
            {
                'title': 'Groups',
                'url_name': 'admin:auth_group_changelist',
                               'has_perms': ['example.change_group', 'example.delete_group'],
            },
            {
                'title': 'Add user',
                'url_name': 'admin:auth_user_add',
                'test_func': 'example.utils.has_perms_to_users',
            },
        ]
    },
]

Where ...

  • required url_name is a name that will be resolved using Django's reverse url method (see Django docs https://docs.djangoproject.com/en/5.0/ref/contrib/admin/#admin-reverse-urls)
  • optional app_name is the name of the admin app that will be used for URL reversal. You can safely ignore this if you have only one admin site in your urls.py
  • optional url is a direct link that will override url_name
  • optional url_extra is extra stuff to be attached at the end of the url (like GET data for pre-filtering admin views)
  • optional title is the title of the shortcut
  • optional count and count_new are paths to a function inside your project that returns something interesting (like a count of all products or a count of all pending orders). The function can optionally take one argument, request, which is the current Django HttpRequest object.
  • optional test_func is a path to a function inside your project that returns a boolean. If True the shortcut is displayed. Like above, this function can optionally take one argument request as well.
  • optional has_perms is a list of strings representing the built-in admin permissions required to display the shortcut.
  • optional open_new_window sets whether the link should open in a new window (default is False)
  • optional icon is an emoji (if you don't specify one, magical ponies will do it for you)
  1. profit!!

  2. optionally, also add ADMIN_SHORTCUTS_SETTINGS to your settings

ADMIN_SHORTCUTS_SETTINGS = {
    'open_new_window': False,
}

Where ...

  • optional open_new_window makes all shortcuts open in a new window

What are the settings used in the pretty image above?

ADMIN_SHORTCUTS = [
    {
        'shortcuts': [
            {
                'url': '/',
                'open_new_window': True,
            },
            {
                'url_name': 'admin:logout',
            },
            {
                'title': 'Users',
                'url_name': 'admin:auth_user_changelist',
                'count': 'example.utils.count_users',
            },
            {
                'title': 'Groups',
                'url_name': 'admin:auth_group_changelist',
                'count': 'example.utils.count_groups',
                'has_perms': ['example.change_group', 'example.delete_group'],
            },
            {
                'title': 'Add user',
                'url_name': 'admin:auth_user_add',
                'test_func': 'example.utils.has_perms_to_users',
                'has_perms': 'example.utils.has_perms_to_users',
            },
        ]
    },
    {
        'title': 'CMS',
        'shortcuts': [
            {
                'title': 'Pages',
                'url_name': 'admin:index',
            },
            {
                'title': 'Files',
                'url_name': 'admin:index',
                'icon': '❤️'
            },
            {
                'title': 'Contact forms',
                'url_name': 'admin:index',
                'count_new': '3',
            },
            {
                'title': 'Products',
                'url_name': 'admin:index',
            },
            {
                'title': 'Orders',
                'url_name': 'admin:index',
                'count_new': '12',
            },
        ]
    },
]
ADMIN_SHORTCUTS_SETTINGS = {
    'open_new_window': False,
}

I want to change how stuff looks

  • to change the CSS overwrite the templates/admin_shortcuts/base.css template
  • to change the which icons are magically selected specify the mappings in ADMIN_SHORTCUTS_ICON_MAPPINGS

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc