django-admin-tools
==================
|build-status-image| |codecov-image| |documentation-status-image| |pypi-version| |py-versions|
Overview
--------
django-admin-tools is a collection of extensions/tools for the default django
administration interface, it includes:
* a full featured and customizable dashboard;
* a customizable menu bar;
* tools to make admin theming easier.
The code is hosted on `Github <https://github.com/django-admin-tools/django-admin-tools/>`_.
Django-admin-tools is generously documented, you can
`browse the documentation online
<https://django-admin-tools.readthedocs.io/>`_.
a good start is to read `the quickstart guide
<https://django-admin-tools.readthedocs.io/en/latest/quickstart.html>`_.
The project was created by `David Jean Louis <http://www.izimobil.org/>`_ and was previously hosted on `Bitbucket <http://bitbucket.org/izi/django-admin-tools/>`_.
Please join the `mailing list <http://groups.google.fr/group/django-admin-tools>`_ if you want to discuss of the future of django-admin-tools.
Requirements
------------
django-admin-tools is compatible with Django 1.11 LTS up to Django 4.0 as well Python 2.7, 3.5+.
For older python and django versions please use the 0.8.1 version of django-admin-tools which is available on Pypi.
Installation
------------
To install django-admin-tools, run the following command inside this directory:
python setup.py install
If you have the Python **easy_install** utility available, you can also type
the following to download and install in one step::
easy_install django-admin-tools
Or if you're using **pip**::
pip install django-admin-tools
Or if you'd prefer you can simply place the included "admin_tools" directory
somewhere on your python path, or symlink to it from somewhere on your Python
path; this is useful if you're working from a Mercurial checkout.
An `installation guide <https://django-admin-tools.readthedocs.io/en/latest/installation.html>`_ is available in the documentation.
Documentation
-------------
`Extensive documentation <https://django-admin-tools.readthedocs.io/>`_ is available, it was made with the excellent `Sphinx program <http://sphinx.pocoo.org/>`_
Translations
------------
There is a `a transifex project <https://transifex.net/projects/p/django-admin-tools/>`_ for django-admin-tools.
Screenshots
-----------
The django admin login screen:
.. image:: http://www.izimobil.org/django-admin-tools/images/capture-1.png
:alt: The django admin login screen
The admin index dashboard:
.. image:: http://www.izimobil.org/django-admin-tools/images/capture-2.png
:alt: The admin index dashboard
The admin menu:
.. image:: http://www.izimobil.org/django-admin-tools/images/capture-3.png
:alt: The admin menu
Dashboard modules can be dragged, collapsed, closed etc.:
.. image:: http://www.izimobil.org/django-admin-tools/images/capture-4.png
:alt: Dashboard modules can be dragged, collapsed, closed etc.
The app index dashboard:
.. image:: http://www.izimobil.org/django-admin-tools/images/capture-5.png
:alt: The app index dashboard
.. |build-status-image| image:: https://api.travis-ci.com/django-admin-tools/django-admin-tools.svg?branch=master
:target: http://travis-ci.com/django-admin-tools/django-admin-tools?branch=master
:alt: Travis build
.. |codecov-image| image:: https://codecov.io/gh/django-admin-tools/django-admin-tools/branch/master/graph/badge.svg?token=RtyqJORRby
:target: https://codecov.io/gh/django-admin-tools/django-admin-tools
.. |pypi-version| image:: https://img.shields.io/pypi/v/django-admin-tools.svg
:target: https://pypi.python.org/pypi/django-admin-tools
:alt: Pypi version
.. |documentation-status-image| image:: https://readthedocs.org/projects/django-admin-tools/badge/?version=latest
:target: http://django-admin-tools.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. |py-versions| image:: https://img.shields.io/pypi/pyversions/djangorestframework-datatables.svg
:target: https://img.shields.io/pypi/pyversions/djangorestframework-datatables.svg
:alt: Python versions
.. |dj-versions| image:: https://img.shields.io/pypi/djversions/djangorestframework-datatables.svg
:target: https://img.shields.io/pypi/djversions/djangorestframework-datatables.svg
:alt: Django versions
django-admin-tools changelog
============================
Version 0.9.2, 12 December 2021:
--------------------------------
* Fixed support for Django 4.0
* Compatibility with admin dark mode
* Fixed issue #100 (js bug when adding last column)
* Fixed issue #103 (compatibility with django-constance)
Version 0.9.1, 12 January 2021:
-------------------------------
This release adds support for django 3.X versions and future versions
* Dropped support for django < 1.11
* Support django 3.X and future versions
* Updated jQuery and jQuery UI to latest versions
Version 0.9.0, 19 January 2020:
-------------------------------
This release adds support for Django up to 2.2 and fixes various issues.
* Django 2.2 support
* Python 3.7 support
* Updated documentation
Version 0.8.1, 30 May 2017:
---------------------------
This release adds support for Django 1.11 and fixes various issues.
* Django 1.11 support
* Added app config to enable label override to avoid app name collisions
* Security fix: prevent removing users bookmarks by knowing the id
* Better support for custom user models
* Fixed docstrings
Version 0.8.0, 12 August 2016:
------------------------------
This release adds support for Django 1.10 and fixes various bugs and documentation issues.
* Django 1.10 support
* Dashboard pre_content and post_content now accept HTML by default
* Use the staff_member_required decorator instead of login_required
* Use user.get_username() instead of user.username
* Fixed wrong template loader class name in a warning issued by DAT
* Fixed various typos in docs and docstrings
Version 0.7.2, 14 January 2016:
-------------------------------
Bugfix release.
* Removed the config check that was causing issues in certain situations, we now use the builtin django system checks framework
* Removed superfluous "trans" calls in admin_tools templates
* Full PEP8 compliance
Version 0.7.1, 27 November 2015:
--------------------------------
Bugfix release.
This release fixes an incompatibility with ``django.template.loaders.cached.Loader``.
Version 0.7.0, 5 November 2015:
-------------------------------
* IMPORTANT INFORMATION, PLEASE READ: *
Starting from this version (0.7.0) you must add ``admin_tools.template_loaders.Loader`` to your templates loaders variable in your settings file, see here for details:
https://django-admin-tools.readthedocs.io/en/latest/configuration.html
Change log:
* Support for Django 1.9 and the new admin flat theme
* Added a custom template loader (based on django-apptemplates) that allows us to extends admin templates instead of overriding them
* Fixed a lot of warnings
* Fixed other minor issues and typos
Version 0.6.0, 7 July 2015:
---------------------------
* VERY IMPORTANT INFORMATION, PLEASE READ: *
Starting from this version (0.6.0) django-admin-tools is no longer compatible with Django 1.6 or lower.
Users of older django version should use the 0.5.2 version available on pypi.
If you are already using django-admin-tools with django <= 1.6, be sure to pin your requirements file to a specific version, eg:
django-admin-tools==0.5.2
If you don't do this, a "pip install --upgrade" will break your admin site.
You have been warned !
Now for the actual change log:
* Dropped support for django 1.6 or lower
* Added support for django 1.8
* Cleaned up old compatibility code
* Use django builtin static
* Various improvements and bug fixes
Version 0.5.2, 11 August 2014:
------------------------------
* Added django 1.5 and 1.6 support
* Django 1.7 is supported but migrations still using south
* Added python 3 support
* Add some blocks to facilitate template inheritance
* Add management command to remove the dashboard preferences
* Fixed issue #126 (feedparser deprecation warning)
* Fixed issue #133 (recent Actions links have an unecessary /admin/ prefix)
* Use i18n app name in app_list, menu and breadcrumb of app_index
* Use user.get_short_name and user.get_username in admin header (fixes #121)
* Better docstring for AppList and ModelList modules
* Eliminated jumping to top of page when clicking collapse/add/remove buttons on dashboard modules
Thanks to all the folks who contributed to this release.
Version 0.5.1, 13 March 2013:
-----------------------------
**Bugfix release, everyone using django < 1.5 should upgrade**
This release fixes a bug that was breaking the LinkList dashboard module
(thanks Iacopo Spalletti for the pull request).
Version 0.5.0, 06 March 2013:
-----------------------------
**Important information if you are upgrading from a previous version**
Starting from this version, django-admin-tools requires Django 1.3 or
superior. If you're running Django < 1.3, DO NOT UPGRADE and stay with
the 0.4.1 version.
* Compatibility with Django 1.4 and Django 1.5
* Upgraded to latest jQuery / jQuery-ui
* Many bug fixes and small improvements
Version 0.4.1, 15 November 2011:
--------------------------------
* Static files and django 1.3 support
* Fixed modules instanciation issues (fixes #65)
* Nested groups support & better html id generation (fixes issue #70)
* Fixed various js and css problems
* Added translation for Finnish + updates on other languages
* More robust dashboard layout
* Added force_show_title property to Group module
Version 0.4.0, 13 December 2010:
--------------------------------
**Important information if you are upgrading from a previous version**
This release of django-admin-tools introduces support for south database
migrations, if you are **not** using south you can skip this step.
Existing django-admin-tools should do the following::
python manage.py migrate --fake admin_tools.dashboard
python manage.py migrate --fake admin_tools.menu
New users should do::
python manage.py migrate admin_tools.dashboard
python manage.py migrate admin_tools.menu
**Major changes**
* big improvements of the API (see the dashboard and menu documentation for
details), the old API is still supported but now deprecated;
* added a ModelList menu item;
* custom and multiple admin sites basic support;
* better integration with django-grappelli;
* django south support.
**Bugfixes and minor changes**
* Fixed issue #40 (python 2.5 compatibility);
* Fixed issue #49: disable rendering of empty group modules;
* Fixed issue #51: more robust test runner;
* Fixed issues #57 and #58: updated custom dashboard and menu template files
to reflect the current code;
* Fixed issue #60: explicitely set color for links in module content;
* Some fixes for the future django 1.3;
* Fixes issue #61: Create empty preferences instance if user has no
preferences saved yet.
* Fixed issue #62: updated base template to reflect django 1.2 changes;
* Fixed various js namespace pollutions;
* Improved docs;
* CZ locale support.
For more informations please see:
http://bitbucket.org/izi/django-admin-tools/changesets
Version 0.3.0, 16 July 2010:
----------------------------
**Major changes**
* added tests infrastructure, code coverage is around 70%;
* import paths and class names are changed. Old class names and paths are
deprecated but still work;
* ``dashboard.modules.AppList``, ``dashboard.modules.ModelList`` and
``menu.items.AppList`` now have ability to display any models from different
apps (using glob syntax) via ``models`` and ``exclude`` parameters.
The order is now preserved. See #15;
* implemented dashboard module groups : you can now group modules in tabs,
accordion or in a stacked layout.
**Bugfixes and minor change**
* moved the menu and dashboard template dirs in a "admin_tools" directory to
avoid name conflicts with other apps, for example: django-cms
(see: http://github.com/digi604/django-cms-2.0/issues/issue/397/);
* fixed bookmark bugs. The saved url was urlencoded, so we need to decode it
before we save it. Added a clean_url method to the ``BookmarkForm``.
Fixes #25;
* build urlpatterns conditionally regarding the content of ``INSTALLED_APPS``;
* better display of selected menu items;
* avoid a useless ajax GET request for retrieving dashboard preferences;
* upgraded jquery and jquery ui and renamed the files to more generic names;
* don't show bookmark form if ``NoReverseError``. This was breaking the
``django.contrib.auth`` unit tests;
* fixed url lookup for remove bookmark form;
* fixed issue #26 (menu bar showing for non-staff users) and also updated
templates to match the django 1.2 templates;
* fixed issue #29 : Django 1.2 admin base template change;
* changed the way js files are loaded, hopefully now they are loaded
syncronously (fixes issue #32);
* fixed issue #33: empty applist menu items should not be displayed;
* fixed issue #34: can't drag modules into an empty column;
* fixed issue #35 (wrong docstring for menu).
**New class names and paths**
***admin_tools.dashboard***
- admin_tools.dashboard.models.Dashboard => admin_tools.dashboard.Dashboard
- admin_tools.dashboard.models.DefaultIndexDashboard => admin_tools.dashboard.DefaultIndexDashboard
- admin_tools.dashboard.models.DefaultAppIndexDashboard => admin_tools.dashboard.DefaultAppIndexDashboard
- admin_tools.dashboard.models.AppIndexDashboard => admin_tools.dashboard.AppIndexDashboard
- admin_tools.dashboard.models.DashboardModule => admin_tools.dashboard.modules.DashboardModule
- admin_tools.dashboard.models.AppListDashboardModule => admin_tools.dashboard.modules.AppList
- admin_tools.dashboard.models.ModelListDashboardModule => admin_tools.dashboard.modules.ModelList
- admin_tools.dashboard.models.LinkListDashboardModule => admin_tools.dashboard.modules.LinkList
- admin_tools.dashboard.models.FeedDashboardModule => admin_tools.dashboard.modules.Feed
***admin_tools.menu***
- admin_tools.menu.models.Menu => admin_tools.menu.Menu
- admin_tools.menu.models.DefaultMenu => admin_tools.menu.DefaultMenu
- admin_tools.menu.models.MenuItem => admin_tools.menu.items.MenuItem
- admin_tools.menu.models.AppListMenuItem => admin_tools.menu.items.AppList
- admin_tools.menu.models.BookmarkMenuItem => admin_tools.menu.items.Bookmarks
Version 0.2.0, 15 March 2010:
-----------------------------
* bookmarks are now being saved in the database
(fixes issue #20, thanks @alexrobbins);
* dashboard preferences are also saved in the database;
* added support for django-staticfiles STATIC_URL settings
(fixes issue #21, thanks @dstufft);
* fixed issue #23: render_theming_css tag does not work on windows;
* added polish, italian, greek and brazilian locales;
* updated docs.
**Backwards incompatible changes in 0.2.0**
Now, django-admin-tools stores menu and dashboard preferences in the database,
so you'll need to run syncdb and to add the django-admin-tools urls to your
urlconf. These steps are described in details in the documentation.
You'll also need to add ``admin_tools`` to your ``INSTALLED_APPS`` for the
locales to work (this was not documented in previous versions).
Version 0.1.2, 13 February 2010:
--------------------------------
* fixed documentation issues;
* added locales;
* fixed issue #9: don't fail when feedparser is not installed;
* fixed issue #5: implemented dashboard layout persistence in cookies;
* enable all modules by default in the default dashboard;
* fixed recent actions log entry urls when displayed in app_index;
* added a "bookmarks" menu item and the code to manage bookmarks;
* fixed jquery issues with django 1.2.
Version 0.1.1, 10 February 2010:
--------------------------------
* fixed issue #2: template tag libraries have generic names;
* changed the way dashboards are selected, don't rely on request variables but
pass an extra argument to the template tag instead (fixes issue #3);
* fixed MANIFEST.in (fixes issue #1);
* better setup.py file.
Version 0.1.0, 10 February 2010:
--------------------------------
* Initial release