Skip to main content

Lucus enhances Django Admin with custom templates, static theming, and a multi-column dashboard.

Project description

Lucus (Django Admin)

Lucus is a customization layer for Django Admin: it overrides admin templates and adds a multi-column dashboard on the admin index page.

Lucus dashboard Lucus dashboard Lucus dashboard

Installation

pip install django-lucus

Configuration

Add Lucus to INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    "lucus",
    "django.contrib.admin",
    # ...
]

After that, Lucus will automatically load its templates and static assets.

Template precedence (order matters)

Lucus overrides Django admin templates. To make sure Lucus templates are used, lucus must be placed before django.contrib.admin in INSTALLED_APPS.

Dashboard: LUCUS_DASHBOARD

The dashboard on /admin/ is configured via settings.LUCUS_DASHBOARD.

The configuration supports two modes:

  1. Full layout config (columns and sections specified directly).
  2. Grouped config (automatic link building from the admin by app_labels, or explicit links).

In all modes:

  • Columns 1..4 are supported (1-based numbering).
  • A section is shown only if Lucus could resolve at least one link.

You can provide a link in two ways:

  • url — an explicit URL;
  • admin_urlname — an admin URL name, e.g. admin:app_model_changelist (Lucus will call reverse()).

Mode 1: full layout config

Provide a list of columns as objects:

LUCUS_DASHBOARD = [
    {
        "column": 1,
        "classes": "lucus-dashboard__col ...",
        "sections": [
            {
                "title": "🎓 Education",
                "links": [
                    {"label": "Instructors", "admin_urlname": "admin:academy_instructor_changelist"},
                    {"label": "Courses", "url": "/admin/academy/course/"},
                ],
            },
        ],
    },
    {
        "column": 3,
        "sections": [
            {
                "title": "🛟 Support",
                "links": [
                    {"label": "Tickets", "admin_urlname": "admin:supportdesk_ticket_changelist"},
                ],
            },
        ],
    },
]

column inside objects is optional, but if it exists, Lucus will place sections into the 1..4 grid.

Mode 2: grouped config

Provide a list of groups (card sections) in this format:

LUCUS_DASHBOARD = [
    {
        "column": 1,
        "title": "👤  Authorization",
        "app_labels": {"auth"},
    },
]

In this variant, the app_labels key determines which admin apps to scan for models and build links automatically.

Important:

  • links in the group is not provided (this is the "no links" mode).
  • If the admin has no registered models for the provided app_labels, the section may not appear.

Grouped config with explicit links

If you provide links instead of app_labels, Lucus will use them directly:

LUCUS_DASHBOARD = [
    {
        "column": 2,
        "title": "👤  Authorization",
        "links": [
            {"label": "Users", "admin_urlname": "admin:auth_user_changelist"},
            {"label": "Groups", "admin_urlname": "admin:auth_group_changelist"},
        ],
    },
    {
        "column": 3,
        "title": "🛟 Support",
        "app_labels": {"supportdesk"},
    },
]

Behavior note:

  • If at least one group provides links, Lucus disables auto-adding "the remaining apps" beyond what is listed in app_labels.

Compatibility

Lucus targets Django 5.2+ and supports Django 6.x.

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_lucus-0.1.0.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_lucus-0.1.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file django_lucus-0.1.0.tar.gz.

File metadata

  • Download URL: django_lucus-0.1.0.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for django_lucus-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3aa2dfc01f588c812272d362edc167e00bec2b5b3273a9b462dd4a10100d0cd1
MD5 93b3751d92285389a0d0591eeb1a2fd4
BLAKE2b-256 9825198165c47b8359d84b6e2e3b48cde22de4bfad887ea2b1f3a7080efb7ed2

See more details on using hashes here.

File details

Details for the file django_lucus-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: django_lucus-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for django_lucus-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5988235dec76d0b34eaf9aaf502f461078de3f2627a0bad9496a6148a975bd62
MD5 7fe9b36d1203ef0c88d7810111654115
BLAKE2b-256 0e184780932aac74266931623c2e4e4ed5bc21211d3464dfd161488077911f27

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