Package: django-admin-interface
django-admin-interfacedjango-admin-interface is a modernresponsive flat admin interface customizable by the admin itself.FeaturesBeautiful defaultdjango-themeThemes management and customization(you cancustomize admin title, logo and colors)ResponsiveRelated modal(instead of the old popup window)Environment name/markerLanguage chooserFoldable apps(accordions in the navigation bar)Collapsible fieldsetscan have their initial state expanded instead of collapsedNEWCollapsible inlinesNEWTabbed fieldsets and inlinesNEWList filter removal linksNEWList filter highlight selected optionsList filter dropdownList filter stickyForm controls sticky(pagination and save/delete buttons)Compatibility / style optimizations for:django-ckeditordjango-dynamic-raw-iddjango-json-widgetdjango-modeltranslationdjango-rangefilterdjango-streamfielddjango-tabbed-adminsorl-thumbnailTranslated in many languages:de,es,fa,fr,it,pl,pt_BR,ru,trInstallationRunpip install django-admin-interfaceAddadmin_interfaceandcolorfieldtosettings.INSTALLED_APPSbeforedjango.contrib.adminINSTALLED_APPS=(#..."admin_interface","colorfield",#..."django.contrib.admin",#...)X_FRAME_OPTIONS="SAMEORIGIN"SILENCED_SYSTEM_CHECKS=["security.W019"]Runpython manage.py migrateRunpython manage.py collectstatic --clearRestart your application server[!WARNING]
if you want use modals instead of popup windows, ensure to addX_FRAME_OPTIONS = "SAMEORIGIN"setting.Optional featuresTo make a fieldset start expanded with aHidebutton to collapse, add the class"expanded"to its classes:classMyModelAdmin(admin.ModelAdmin):# ...fieldsets=[("Section title",{"classes":("collapse","expanded"),"fields":(...),}),]# ...Optional themesThis package ships with optional themes as fixtures, they can be installed using theloaddata admin command. Optional themes are activated on installation.Djangotheme (default):Runpython manage.py loaddata admin_interface_theme_django.jsonBootstraptheme:Runpython manage.py loaddata admin_interface_theme_bootstrap.jsonFoundationtheme:Runpython manage.py loaddata admin_interface_theme_foundation.jsonU.S. Web Design Standardstheme:Runpython manage.py loaddata admin_interface_theme_uswds.jsonAdd more themesYou 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 thedumpdataadmin 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 withadmin_interface_theme_to avoid clashes with fixtures that might be provided by other third party apps).Remove thepkfrom 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.Add theme support to third-party librariesYou can addtheme support to existing third-party librariesusing the followingCSS 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-colorLogo--admin-interface-logo-color--admin-interface-logo-default-background-image--admin-interface-logo-max-width--admin-interface-logo-max-heightModules / 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--admin-interface-generic-link-active-colorButtons--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-colorRelated 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-displayScreenshotsAdmin loginAdmin dashboardAdmin themes managementAdmin theme customizationLocalizationAt the moment, this package has been translated into the following languages:de,es,fa,fr,it,pl,pt_BR,tr.Translate into another languageRunpython -m django makemessages --ignore ".tox" --ignore "venv" --add-location "file" --extension "html,py" --locale "it"(example for Italian localization)Update translations inadmin_interface/locale/it/LC_MESSAGES/django.poRunpython -m django compilemessages --ignore ".tox" --ignore "venv"Update translationsIf you do some changes to the project, remember to update translations, because if the translations files are not up-to-date, thelintstep in the CI will fail:Runtox -e translationsCachingThis 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 issuewhen using this package withdjango-redis, more specifically, using theJSONSerializerthe 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 anyjsonserializer.FAQCustombase-site.htmlI already have a custombase_site.html, how can I make it work?You can usedjango-apptemplates, then add{% extends "admin_interface:admin/base_site.html" %}to yourbase_site.htmlLanguage Chooser not showingI have enabled theLanguage Chooser, but it is not visible in the admin, what should I do?You must configure multilanguagesettingsandurlscorrectly: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))Testing# clone repositorygitclonehttps://github.com/fabiocaccamo/django-admin-interface.git&&cddjango-admin-interface# create virtualenv and activate itpython-mvenvvenv&&.venv/bin/activate# upgrade pippython-mpipinstall--upgradepip# install requirementspipinstall-rrequirements.txt-rrequirements-test.txt# install pre-commit to run formatters and linterspre-commitinstall--install-hooks# run teststox# orpythonruntests.py# orpython-mdjangotest--settings"tests.settings"ContributingContributions 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 shouldpreferablybe covered by tests to avoid regressions in the future.:globe_with_meridians:Update the translationsfiles.:test_tube:Run testsensuring that there are no errors.:inbox_tray:Submit a pull-requestand mark it as"Ready for review"only if it passes theCI.LicenseReleased underMIT License.Supporting:star: Star this project onGitHub:octocat: Follow me onGitHub:blue_heart: Follow me onTwitter:moneybag: Sponsor me onGithubSee alsodjango-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. 🧟‍♂️