- Notifications
You must be signed in to change notification settings - Fork0
🦸 ⚡ django's default admin interface with superpowers - customizable themes, popup windows replaced by modals and many other features.
License
traadbrasil/django-admin-interface
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
django-admin-interface is a modernresponsive flat admin interface customizable by the admin itself.
- Beautiful defaultdjango-theme
- Themes management and customization(you cancustomize 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
NEWCollapsible inlinesNEWTabbed fieldsets and inlinesNEWList filter removal linksNEWList filter highlight selected options- List filter dropdown
- List filter sticky
- Form controls sticky(pagination and save/delete buttons)
- Compatibility / style optimizations for:
django-ckeditordjango-dynamic-raw-iddjango-json-widgetdjango-modeltranslationdjango-rangefilterdjango-streamfielddjango-tabbed-adminsorl-thumbnail
- Translated in many languages:
de,es,fa,fr,it,pl,pt_BR,ru,tr
- Run
pip install django-admin-interface - Add
admin_interfaceandcolorfieldtosettings.INSTALLED_APPSbeforedjango.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 --clear - Restart your application server
Warning
if you want use modals instead of popup windows, ensure to addX_FRAME_OPTIONS = "SAMEORIGIN" setting.
To make a fieldset start expanded with aHide button to collapse, add the class"expanded" to its classes:
classMyModelAdmin(admin.ModelAdmin):# ...fieldsets= [ ("Section title", {"classes": ("collapse","expanded"),"fields": (...), }), ]# ...
This package ships with optional themes as fixtures, they can be installed using theloaddata admin command. Optional themes are activated on installation.
Django theme (default):
Runpython manage.py loaddata admin_interface_theme_django.json
Bootstrap theme:
Runpython manage.py loaddata admin_interface_theme_bootstrap.json
Foundation theme:
Runpython manage.py loaddata admin_interface_theme_foundation.json
U.S. Web Design Standards theme:
Runpython manage.py loaddata admin_interface_theme_uswds.json
You can add a theme you've created through the admin to this repository bysending us a PR. Here are the steps to follow to add:
Export your exact theme as fixture using the
dumpdataadmin command:python manage.py dumpdata admin_interface.Theme --indent 4 -o admin_interface_theme_{{name}}.json --pks=NCopy 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).Remove the
pkfrom the fixture and make sure theactivefield is set totrue(in this way a theme is automatically activated when installed).Edit the section above to document your theme.
You can addtheme support to existing third-party libraries using the followingCSS variables:
--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
--admin-interface-logo-color--admin-interface-logo-default-background-image--admin-interface-logo-max-width--admin-interface-logo-max-height
--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--admin-interface-generic-link-active-color
--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
--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
At the moment, this package has been translated into the following languages:de,es,fa,fr,it,pl,pt_BR,tr.
Run
python -m django makemessages --ignore ".tox" --ignore "venv" --add-location "file" --extension "html,py" --locale "it"(example for Italian localization)Update translations in
admin_interface/locale/it/LC_MESSAGES/django.poRun
python -m django compilemessages --ignore ".tox" --ignore "venv"
If you do some changes to the project, remember to update translations, because if the translations files are not up-to-date, thelint step in the CI will fail:
- Run
tox -e translations
This package uses caching to improve theme load time and overall performance.You can customise the app caching options usingsettings.CACHES["admin_interface"] setting, otherwise the"default" cache will be used:
CACHES= {# ..."admin_interface": {"BACKEND":"django.core.cache.backends.locmem.LocMemCache","TIMEOUT":60*5, },# ...}
Warning
There is aknown compatibility issue when using this package withdjango-redis, more specifically, using theJSONSerializer the following error is raised:TypeError: Object of type Theme is not JSON serializable, to mitigate this problem, simply use a specific cache for this app that does not use anyjson serializer.
I already have a custom
base_site.html, how can I make it work?
You can usedjango-apptemplates, then add{% extends "admin_interface:admin/base_site.html" %} to yourbase_site.html
I'm using a
django.middleware.locale.LocaleMiddlewaresubclass, but I see an unnecessary warning for missingdjango.middleware.locale.LocaleMiddleware, what can I do?
You can simply ignore the warning (this has been discussedhere)
importwarningswarnings.filterwarnings("ignore",module="admin_interface.templatetags.admin_interface_tags")
I have enabled theLanguage Chooser, but it is not visible in the admin, what should I do?
You must configure multilanguagesettings andurls correctly:
LANGUAGES= ( ("en",_("English")), ("it",_("Italiano")), ("fr",_("Français")),# more than one language is expected here)LANGUAGE_CODE="en"USE_I18N=TrueMIDDLEWARE= [# ..."django.middleware.locale.LocaleMiddleware",# ...]
fromdjango.conf.urls.i18nimporti18n_patternsfromdjango.contribimportadminfromdjango.urlsimportinclude,path# ...urlpatterns= [path("i18n/",include("django.conf.urls.i18n")),]urlpatterns+=i18n_patterns(path("admin/",admin.site.urls))
I have an application with some cross-links in the admin and I would like to open them in modal windows instead of same/new window, how can I do?
You just need to add_popup=1 query-string parameter to the urls:
url=reverse(f"admin:myapp_mymodel_change",args=[mymodel_instance.pk])url=f"{url}?_popup=1"
# clone repositorygit clone https://github.com/fabiocaccamo/django-admin-interface.git&&cd django-admin-interface# create virtualenv and activate itpython -m venv venv&&. venv/bin/activate# upgrade pippython -m pip install --upgrade pip# install requirementspip install -r requirements.txt -r requirements-test.txt# install pre-commit to run formatters and linterspre-commit install --install-hooks# run teststox# orpython runtests.py# orpython -m djangotest --settings"tests.settings"
Contributions are always welcome, please follow these steps for submitting good quality PRs:
- ❗Open an issue, please don't submit any PR that doesn't refer to an existing issue.
- 💻Work on changes, changes shouldpreferably be covered by tests to avoid regressions in the future.
- 🌐Update the translations files.
- 🧪Run tests ensuring that there are no errors.
- 📥Submit a pull-request and mark it as"Ready for review" only if it passes the
CI.
Released underMIT License.
django-cache-cleaner- clear the entire cache or individual caches easily using the admin panel or management command. 🧹✨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. 🧟♂️
About
🦸 ⚡ django's default admin interface with superpowers - customizable themes, popup windows replaced by modals and many other features.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Python32.8%
- CSS31.0%
- JavaScript23.3%
- HTML12.9%




