Skip to main content

django-admin-interface is a modern responsive flat admin interface customizable by the admin itself.

Project description

django-admin-interface

django-admin-interface is a modern responsive flat admin interface customizable by the admin itself.

django-admin-interface-preview

Features

  • Beautiful default django-theme
  • Themes management and customization (you can customize admin title, logo and colors)
  • Responsive
  • Related modal (instead of the old popup window)
  • Environment name/marker
  • Language chooser
  • Foldable apps (accordions in the navigation bar)
  • Collapsible fieldsets can have their initial state expanded instead of collapsed
  • NEW Tabbed fieldsets and inlines
  • NEW List filter removal links
  • NEW List filter highlight selected options
  • List filter dropdown
  • List filter sticky
  • Form controls sticky (pagination and save/delete buttons)
  • Compatibility / style optimizations for:
    • django-ckeditor
    • django-dynamic-raw-id
    • django-json-widget
    • django-modeltranslation
    • django-rangefilter
    • django-streamfield
    • django-tabbed-admin
    • sorl-thumbnail
  • Translated in many languages: de, es, fa, fr, it, pl, pt_BR, tr

Installation

  • Run pip install django-admin-interface
  • Add admin_interface and colorfield to settings.INSTALLED_APPS before django.contrib.admin
INSTALLED_APPS = (
    #...
    "admin_interface",
    "colorfield",
    #...
    "django.contrib.admin",
    #...
)

X_FRAME_OPTIONS = "SAMEORIGIN"
SILENCED_SYSTEM_CHECKS = ["security.W019"]
  • Run python manage.py migrate
  • Run python manage.py collectstatic
  • Restart your application server

Optional features

To make a fieldset start expanded with a Hide button to collapse:

    fieldsets = [
        ("Section title", {
            "classes": ("collapse", "expanded"),
            "fields": (...),
        }),
    ]

Upgrade

  • Run pip install django-admin-interface --upgrade
  • Run python manage.py migrate
  • Run python manage.py collectstatic --clear
  • Restart your application server

Optional themes

This package ships with optional themes as fixtures, they can be installed using the loaddata admin command. Optional themes are activated on installation.

Django theme (default):

Run python manage.py loaddata admin_interface_theme_django.json

Bootstrap theme:

Run python manage.py loaddata admin_interface_theme_bootstrap.json

Foundation theme:

Run python manage.py loaddata admin_interface_theme_foundation.json

U.S. Web Design Standards theme:

Run python manage.py loaddata admin_interface_theme_uswds.json

Add more themes

You can add a theme you've created through the admin to this repository by sending us a PR. Here are the steps to follow to add:

  1. Export your exact theme as fixture using the dumpdata admin command: python manage.py dumpdata admin_interface.Theme --indent 4 -o admin_interface_theme_{{name}}.json --pks=N

  2. Copy the generated json file into the fixtures folder (making sure its name starts with admin_interface_theme_ to avoid clashes with fixtures that might be provided by other third party apps).

  3. Remove the pk from the fixture and make sure the active field is set to true (in this way a theme is automatically activated when installed).

  4. Edit the section above to document your theme.

Add theme support to third-party libraries

You can add theme support to existing third-party libraries using the following CSS variables:

Header

  • --admin-interface-header-background-color
  • --admin-interface-header-text-color
  • --admin-interface-header-link-color
  • --admin-interface-header-link_hover-color
  • --admin-interface-title-color
  • --admin-interface-env-color

Logo

  • --admin-interface-logo-color
  • --admin-interface-logo-default-background-image
  • --admin-interface-logo-max-width
  • --admin-interface-logo-max-height

Modules / Links

  • --admin-interface-module-background-color
  • --admin-interface-module-background-selected-color
  • --admin-interface-module-border-radius
  • --admin-interface-module-text-color
  • --admin-interface-module-link-color
  • --admin-interface-module-link-selected-color
  • --admin-interface-module-link-hover-color
  • --admin-interface-generic-link-color
  • --admin-interface-generic-link-hover-color

Buttons

  • --admin-interface-save-button-background-color
  • --admin-interface-save-button-background-hover-color
  • --admin-interface-save-button-text-color
  • --admin-interface-delete-button-background-color
  • --admin-interface-delete-button-background-hover-color
  • --admin-interface-delete-button-text-color

Related Modal

  • --admin-interface-related-modal-background-color
  • --admin-interface-related-modal-background-opacity
  • --admin-interface-related-modal-border-radius
  • --admin-interface-related-modal-close-button-display

Screenshots

Admin login

django-admin-interface_login

Admin dashboard

django-admin-interface_dashboard

Admin themes management

django-admin-interface_themes_management

Admin theme customization

django-admin-interface_theme_customization

FAQ

Custom base-site.html

I already have a custom base_site.html, how can I make it work?

You can use django-apptemplates, then add {% extends "admin_interface:admin/base_site.html" %} to your base_site.html

Language Chooser not showing

I have enabled the Language Chooser, but it is not visible in the admin, what should I do?

You must configure multilanguage settings and urls correctly:

LANGUAGES = (
    ("en", _("English")),
    ("it", _("Italiano")),
    ("fr", _("Français")),
    # more than one language is expected here
)
LANGUAGE_CODE = "en"
USE_I18N = True
MIDDLEWARE = [
    # ...
    "django.middleware.locale.LocaleMiddleware",
    # ...
]
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.urls import include, path

# ...

urlpatterns = [
    path("i18n/", include("django.conf.urls.i18n")),
]
urlpatterns += i18n_patterns(path("admin/", admin.site.urls))

Testing

# clone repository
git clone https://github.com/fabiocaccamo/django-admin-interface.git && cd django-admin-interface

# create virtualenv and activate it
python -m venv venv && . venv/bin/activate

# upgrade pip
python -m pip install --upgrade pip

# install requirements
pip install -r requirements.txt -r requirements-test.txt

# run tests
tox
# or
python runtests.py
# or
python -m django test --settings "tests.settings"

Update translations

  • Run tox -e translations (if the translations files are not up-to-date, the lint step in the CI will fail)

Contributing

Contributions are always welcome, please follow these steps for submitting good quality PRs:

  • :exclamation: Open an issue, please don't submit any PR that doesn't refer to an existing issue.
  • :computer: Work on changes, changes should preferably be covered by tests to avoid regressions in the future.
  • :globe_with_meridians: Update the translations files.
  • :test_tube: Run tests ensuring that there are no errors.
  • :inbox_tray: Submit a pull-request and mark it as "Ready for review" only if it passes the CI.

License

Released under MIT License.


Supporting

  • :star: Star this project on GitHub
  • :octocat: Follow me on GitHub
  • :blue_heart: Follow me on Twitter
  • :moneybag: Sponsor me on Github

See also

  • django-colorfield - simple color field for models with a nice color-picker in the admin. 🎨

  • django-extra-settings - config and manage typed extra settings using just the django admin. ⚙️

  • django-maintenance-mode - shows a 503 error page when maintenance-mode is on. 🚧 🛠️

  • django-redirects - redirects with full control. ↪️

  • django-treenode - probably the best abstract model / admin for your tree based stuff. 🌳

  • python-benedict - dict subclass with keylist/keypath support, I/O shortcuts (base64, csv, json, pickle, plist, query-string, toml, xml, yaml) and many utilities. 📘

  • python-codicefiscale - encode/decode Italian fiscal codes - codifica/decodifica del Codice Fiscale. 🇮🇹 💳

  • python-fontbro - friendly font operations. 🧢

  • python-fsutil - file-system utilities for lazy devs. 🧟‍♂️

Project details


Release history Release notifications | RSS feed

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-interface-0.24.0.tar.gz (181.1 kB view details)

Uploaded Source

Built Distribution

django_admin_interface-0.24.0-py3-none-any.whl (232.3 kB view details)

Uploaded Python 3

File details

Details for the file django-admin-interface-0.24.0.tar.gz.

File metadata

File hashes

Hashes for django-admin-interface-0.24.0.tar.gz
Algorithm Hash digest
SHA256 13946463bb4866c134e2dc4e7425f5c8029e1d156c0d21e7c0f2daa568d8ccaa
MD5 09aff431b01545859421510d75ef25f7
BLAKE2b-256 b96d5402c66070a4bcd9cc0076b26830b9d7d289a658cf5def869c25caa7cdd0

See more details on using hashes here.

File details

Details for the file django_admin_interface-0.24.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_interface-0.24.0-py3-none-any.whl
Algorithm Hash digest
SHA256 009474df255dce59dc9f2f6fb99f39645a6fd2f9766bd2c600fda2bf10ed0bd5
MD5 85aec86fab2b6837807cc39766f16763
BLAKE2b-256 63ab3584ba630b6e21f8d1591f88399298b9d7184c62499bee11b54d5cef5f16

See more details on using hashes here.

Supported by

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