An improved django-admin-tools dashboard for Django projects

Related tags

django django-admin
Overview

django-fluent-dashboard

The fluent_dashboard module offers a custom admin dashboard, built on top of django-admin-tools (docs).

The django-admin-tools package provides a default mechanism to replace the standard Django admin homepage with a widget based dashboard. The fluent_dashboard module extends this, by providing additional widgets (called "modules") such as:

  • a "icon list" module for the admin homepage.
  • a "welcome" module for the admin homepage.
  • a configurable module layout for the admin homepage, through settings.py.
  • a "return to site" link.
  • an optional "cache statistics" module.

Documentation can be found at: https://django-fluent-dashboard.readthedocs.io/

Screenshot

django-fluent-dashboard preview

Installation

First install the module, preferably in a virtual environment. It can be installed from PyPI:

pip install django-fluent-dashboard

Or the current folder can be installed:

pip install .

Configuration

Add the following settings to settings.py:

INSTALLED_APPS += (
    'fluent_dashboard',

    # enable the admin
    'admin_tools',
    'admin_tools.theming',
    'admin_tools.menu',
    'admin_tools.dashboard',
    'django.contrib.admin',
)

ADMIN_TOOLS_INDEX_DASHBOARD = 'fluent_dashboard.dashboard.FluentIndexDashboard'
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'fluent_dashboard.dashboard.FluentAppIndexDashboard'
ADMIN_TOOLS_MENU = 'fluent_dashboard.menu.FluentMenu'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': (),
        'OPTIONS': {
            'loaders': (
                ...
                'admin_tools.template_loaders.Loader',  # Add this line!
            ),
        }
    }
]

The admin_tools.theming and admin_tools.menu applications are optional.

Add to urls.py:

urlpatterns += [
    url(r'^admintools/', include('admin_tools.urls')),
]

The database tables for admin_tools can be created afterwards:

./manage.py migrate

Customizing the dashboard

Adding extra icons

The FLUENT_DASHBOARD_APP_ICONS setting is a dictionary that allows you to define extra icons for your own modules, and overwrite default settings. For example:

FLUENT_DASHBOARD_APP_ICONS = {
    'auth/user': "user.png"
}

The icon is expected to be 48x48 pixels. The icon name is treated in 3 different formats:

  • Absolute URLs are passed as-is.
  • Icon names with a / character, are relative to the STATIC_URL.
  • Icon names without any path information, are relative to the current theme folder, e.g. STATIC_URL/fluent_dashboard/themename/

Organizing the application groups

The FLUENT_DASHBOARD_APP_GROUPS setting defines which applications are grouped. For example:

FLUENT_DASHBOARD_APP_GROUPS = (
    (_('CMS'), {
        'models': (
            'cms.*',
            'pages.*',
            'fiber.*',
        ),
        'module': 'CmsAppIconList',
        'collapsible': False,
    }),
    (_('Interactivity'), {
        'models': (
            'django.contrib.comments.*',
            'form_designer.*'
            'threadedcomments.*',
            'zinnia.*',
        ),
    }),
    (_('Administration'), {
        'models': (
            'django.contrib.auth.*',
            'django.contrib.sites.*',
            'google_analytics.*',
            'registration.*',
        ),
    }),
    (_('Applications'), {
        'models': ('*',),
        'module': 'AppList',
        'collapsible': True,
    }),
)

Details about these options, and additional settings are explained in the documentation.

Displaying cache status

This application features optional support for the dashboardmods package, which can display cache statistics. It can be installed using:

pip install dashboardmods

The application requires the cache backends to be configured, for example:

INSTALLED_APPS += (
    'dashboardmods',
)

# Example Memcache configuration:
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'KEY_PREFIX': 'mysite.production',
        'LOCATION': '127.0.0.1:11211',
        'TIMEOUT': 24*3600,
    },
}

# Optional, example Varnish configuration:
VARNISH_MANAGEMENT_ADDRS = ('127.0.0.1:6082',)

When a cache is not configured, it will simply not be displayed by the module.

Related applications

The following packages provide additional modules, which can be displayed at the dashboard:

  • django-admin-user-stats adds graphs to the dashboard, to see the number of registered users in the last month.
  • django-admin-tools-stats is derived from the previous package, and adds configurable graphs for any model type.
  • dashboardmods is detected to display cache statistics, but also features a configure RSS feed module.
  • django-admin-tools should not be forgotten, because it also provides modules for RSS feeds, link lists and tab grouping.

These modules can be integrated by subclassing the FluentIndexDashboard class, and point to that module with the ADMIN_TOOLS_INDEX_DASHBOARD setting.

Contributing

This module is designed to be generic. In case there is anything you didn't like about it, or think it's not flexible enough, please let us know. We'd love to improve it!

If you have any other valuable contribution, suggestion or idea, please let us know as well because we will look into it. Pull requests are welcome too. :-)

Issues
  • Removing duplicates in app groups

    Removing duplicates in app groups

    Patch for issue #1

    opened by volpino 8
  • Can i exclude some models from FLUENT_DASHBOARD_APP_GROUPS?

    Can i exclude some models from FLUENT_DASHBOARD_APP_GROUPS?

    This is not a bug, but a new-feature request (if not implemented) As i have written in the title, can i exclude some models from FLUENT_DASHBOARD_APP_GROUPS?

    FLUENT_DASHBOARD_APP_GROUPS = ( (gettext('Administration'), { 'models': ( 'django.contrib.auth.', 'django.contrib.sites.', ), 'collapsible': True, }), (gettext('Poll Management'), { 'models': ( 'project.apps.news.*', 'project.apps.polls.poll', # This does not display anything ), 'collapsible': True, }), )

    I can't see an help in the documentation Thanks in advance

    opened by madEng84 3
  • Few fixes to README.rst.

    Few fixes to README.rst.

    opened by maartendraijer 2
  • IntegrityError at /admin/report_builder/report/add/

    IntegrityError at /admin/report_builder/report/add/

    Request Method: POST Request URL: https://xx.xx.xx.xx/admin/report_builder/report/add/ Django Version: 1.6 Exception Type: IntegrityError Exception Value:
    (1048, "Column 'distinct' cannot be null") Exception Location: /usr/lib64/python2.6/site-packages/MySQLdb/connections.py in defaulterrorhandler, line 36 Python Executable: /usr/bin/python Python Version: 2.6.9 Python Path:
    ['/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/PIL', '/usr/lib/python2.6/site-packages', '/opt/smarti/dashboard/'] Server time: Mon, 25 Nov 2013 22:53:30 +0530

    Environment:

    Request Method: POST Request URL: https://54.200.87.254/admin/report_builder/report/add/

    Django Version: 1.6 Python Version: 2.6.9 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.admindocs', 'management', 'report_builder') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware')

    Traceback: File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response

    1.                 response = wrapped_callback(request, _callback_args, *_callback_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/contrib/admin/options.py" in wrapper
    2.             return self.admin_site.admin_view(view)(_args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
    3.                 response = view_func(request, _args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
    4.     response = view_func(request, _args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py" in inner
    5.         return view(request, _args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapper
    6.         return bound_func(_args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
    7.                 response = view_func(request, _args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/utils/decorators.py" in bound_func
    8.             return func(self, _args2, *_kwargs2)
      
      File "/usr/lib/python2.6/site-packages/django/db/transaction.py" in inner
    9.             return func(_args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/contrib/admin/options.py" in add_view
    10.             self.save_model(request, new_object, form, False)
      
      File "/usr/lib/python2.6/site-packages/report_builder/admin.py" in save_model
    11.     obj.save()
      
      File "/usr/lib/python2.6/site-packages/report_builder/models.py" in save
    12.     super(Report, self).save(_args, *_kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/base.py" in save
    13.                    force_update=force_update, update_fields=update_fields)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/base.py" in save_base
    14.         updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/base.py" in _save_table
    15.         result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/base.py" in _do_insert
    16.                            using=using, raw=raw)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/manager.py" in _insert
    17.     return insert_query(self.model, objs, fields, **kwargs)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/query.py" in insert_query
    18. return query.get_compiler(using=using).execute_sql(return_id)
      
      File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
    19.         cursor.execute(sql, params)
      
      File "/usr/lib/python2.6/site-packages/django/db/backends/util.py" in execute
    20.         return super(CursorDebugWrapper, self).execute(sql, params)
      
      File "/usr/lib/python2.6/site-packages/django/db/backends/util.py" in execute
    21.             return self.cursor.execute(sql, params)
      
      File "/usr/lib/python2.6/site-packages/django/db/backends/mysql/base.py" in execute
    22.             six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
      
      File "/usr/lib/python2.6/site-packages/django/db/backends/mysql/base.py" in execute
    23.         return self.cursor.execute(query, args)
      
      File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py" in execute
    24.         self.errorhandler(self, exc, value)
      
      File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py" in defaulterrorhandler
    25. raise errorclass, errorvalue
      

    Exception Type: IntegrityError at /admin/report_builder/report/add/ Exception Value: (1048, "Column 'distinct' cannot be null")

    opened by demorphica 2
  • Python 3 compatibility

    Python 3 compatibility

    opened by glic3rinu 2
  • Bump django from 2.2.9 to 2.2.22 in /docs/_ext/djangodummy

    Bump django from 2.2.9 to 2.2.22 in /docs/_ext/djangodummy

    Bumps django from 2.2.9 to 2.2.22.

    Commits
    • df9fd46 [2.2.x] Bumped version for 2.2.22 release.
    • d9594c4 [2.2.x] Fixed #32713, Fixed CVE-2021-32052 -- Prevented newlines and tabs fro...
    • 1637003 [2.2.x] Refs CVE-2021-31542 -- Skipped mock AWS storage test on Windows.
    • bcafd9b [2.2.x] Added CVE-2021-31542 to security archive.
    • 3931dc7 [2.2.x] Post-release version bump.
    • ff1385a [2.2.x] Bumped version for 2.2.21 release.
    • 04ac162 [2.2.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file...
    • 7f1b088 [2.2.x] Added CVE-2021-28658 to security archive.
    • e95fbb6 [2.2.x] Post-release version bump.
    • ad9fa56 [2.2.x] Bumped version for 2.2.20 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Duplicate models in app groups

    Duplicate models in app groups

    Here's a configuration example:

      ('Users', {                                                        
          'models': (                                                             
              'django.contrib.auth.*',                                            
              'mymodule.models.UserProfile',                                     
              ),                                                                  
      }),                                                                         
      ('My Module', {                                                                  
          'models': (                                                             
              'mymodule.*',                                               
          ),                                                                      
          'collapsible': False,
      })
    

    The result is not as I expect, UserProfile is displayed twice! I'd like to see every model only once: in "Users" i want to see what i defined while in "My Model" (as I use the "*") I want every module except for the ones I had already defined elsewhere.

    Thanks ;)

    opened by volpino 1
  • Bump django from 2.2.9 to 2.2.21 in /docs/_ext/djangodummy

    Bump django from 2.2.9 to 2.2.21 in /docs/_ext/djangodummy

    Bumps django from 2.2.9 to 2.2.21.

    Commits
    • ff1385a [2.2.x] Bumped version for 2.2.21 release.
    • 04ac162 [2.2.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file...
    • 7f1b088 [2.2.x] Added CVE-2021-28658 to security archive.
    • e95fbb6 [2.2.x] Post-release version bump.
    • ad9fa56 [2.2.x] Bumped version for 2.2.20 release.
    • 4036d62 [2.2.x] Fixed CVE-2021-28658 -- Fixed potential directory-traversal via uploa...
    • 6e58828 [2.2.x] Added CVE-2021-23336 to security archive.
    • 1fb4628 [2.2.x] Post-release version bump.
    • 21a5547 [2.2.x] Bumped version for 2.2.19 release.
    • fd6b6af [2.2.x] Fixed CVE-2021-23336 -- Fixed web cache poisoning via django.utils.ht...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump django from 2.2.9 to 2.2.20 in /docs/_ext/djangodummy

    Bump django from 2.2.9 to 2.2.20 in /docs/_ext/djangodummy

    Bumps django from 2.2.9 to 2.2.20.

    Commits
    • ad9fa56 [2.2.x] Bumped version for 2.2.20 release.
    • 4036d62 [2.2.x] Fixed CVE-2021-28658 -- Fixed potential directory-traversal via uploa...
    • 6e58828 [2.2.x] Added CVE-2021-23336 to security archive.
    • 1fb4628 [2.2.x] Post-release version bump.
    • 21a5547 [2.2.x] Bumped version for 2.2.19 release.
    • fd6b6af [2.2.x] Fixed CVE-2021-23336 -- Fixed web cache poisoning via django.utils.ht...
    • 226d831 [2.2.x] Added documentation extlink for bugs.python.org.
    • 34010d8 [2.2.x] Added CVE-2021-3281 to security archive.
    • 06ae7e0 [2.2.x] Post-release version bump.
    • fc0c8cf [2.2.x] Bumped version for 2.2.18 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump django from 2.2.9 to 2.2.18 in /docs/_ext/djangodummy

    Bump django from 2.2.9 to 2.2.18 in /docs/_ext/djangodummy

    Bumps django from 2.2.9 to 2.2.18.

    Commits
    • fc0c8cf [2.2.x] Bumped version for 2.2.18 release.
    • 21e7622 [2.2.x] Fixed CVE-2021-3281 -- Fixed potential directory-traversal via archiv...
    • ee9d623 [2.2.x] Fixed GeoIPTest.test04_city() failure with the latest GeoIP2 database.
    • e8e28e7 [2.2.x] Updated CVE URL.
    • e893c0a [2.2.x] Fixed #31850 -- Fixed BasicExtractorTests.test_extraction_warning wit...
    • 3da29a3 [2.2.x] Post-release version bump.
    • c769f65 [2.2.x] Bumped version for 2.2.17 release.
    • 3db9a7a [2.2.x] Set release date for 2.2.17.
    • b4b8ca4 [2.2.x] Refs #31040 -- Doc'd Python 3.9 compatibility.
    • 01742aa [2.2.x] Refs #31040 -- Fixed Python PendingDeprecationWarning in select_for_u...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump django from 2.2.9 to 2.2.24 in /docs/_ext/djangodummy

    Bump django from 2.2.9 to 2.2.24 in /docs/_ext/djangodummy

    Bumps django from 2.2.9 to 2.2.24.

    Commits
    • 2da029d [2.2.x] Bumped version for 2.2.24 release.
    • f27c38a [2.2.x] Fixed CVE-2021-33571 -- Prevented leading zeros in IPv4 addresses.
    • 053cc95 [2.2.x] Fixed CVE-2021-33203 -- Fixed potential path-traversal via admindocs'...
    • 6229d87 [2.2.x] Confirmed release date for Django 2.2.24.
    • f163ad5 [2.2.x] Added stub release notes and date for Django 2.2.24.
    • bed1755 [2.2.x] Changed IRC references to Libera.Chat.
    • 63f0d7a [2.2.x] Refs #32718 -- Fixed file_storage.test_generate_filename and model_fi...
    • 5fe4970 [2.2.x] Post-release version bump.
    • 61f814f [2.2.x] Bumped version for 2.2.23 release.
    • b8ecb06 [2.2.x] Fixed #32718 -- Relaxed file name validation in FileField.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Doesn't seems to work with Django 3

    Doesn't seems to work with Django 3

    After updating to Django 3 my django admin layout is broken, it shows the fluent dashboard but when I enter an Object it shows the old(normal django) and new layout (Fluent)

    opened by tyagow 0
  • docs: Fix simple typo, overvivew -> overview

    docs: Fix simple typo, overvivew -> overview

    There is a small typo in docs/configuration.rst.

    Should read overview rather than overvivew.

    opened by timgates42 0
  • pep 8 fixes (#17)

    pep 8 fixes (#17)

    Fixed #17
    Code Checked using packages pep8 and flake8 with a configuration of max-line-length=120

    opened by sanjaykrishnan 0
  •  Admin Panel - User Password Change Form ERROR Fix

    Admin Panel - User Password Change Form ERROR Fix

    resolvermatch = urls.resolve(request.path_info)
    urls.resolve returns url_variables as *args, but now shifted to **kwargs,

    In django admin panel, object-change form passes object-id as as '(<object_id>)' but on user password change view, this object-id is passed in name of '(<id>)'. This causes error on going to change password form. this has been handled in this commit.

    opened by jerinisready 0
  • Fixed IndexError at ReturnToSiteItem.get_edited_obj

    Fixed IndexError at ReturnToSiteItem.get_edited_obj

    This is because at django 2.1 resolvermatch returns 'id' but no 'object_id'.

    Tested for url '/admin/auth/user/123/password/' for changing user's password

    opened by xusy2k 0
  • How can I display

    How can I display "Pages" and Shared Content in admin

    I want to display "Pages" under CMS and "Shared Content" section in admin home page. How can I add that?

    Thanks in advance.

    opened by asefnoor 0
  • Code should follow PEP8 guidelines

    Code should follow PEP8 guidelines

    Following errors are found when flake8 is run, branch: master $ pip install flake8 $ flake8 --ignore=E501 . ./setup.py:48:19: E251 unexpected spaces around keyword / parameter equals ./setup.py:48:21: E251 unexpected spaces around keyword / parameter equals ./docs/conf.py:14:11: E401 multiple imports on one line ./docs/conf.py:26:1: E265 block comment should start with '# ' ./docs/conf.py:42:1: E265 block comment should start with '# ' ./docs/conf.py:62:1: E265 block comment should start with '# ' ./docs/conf.py:66:1: E265 block comment should start with '# ' ./docs/conf.py:68:1: E265 block comment should start with '# ' ./docs/conf.py:75:1: E265 block comment should start with '# ' ./docs/conf.py:78:1: E265 block comment should start with '# ' ./docs/conf.py:82:1: E265 block comment should start with '# ' ./docs/conf.py:86:1: E265 block comment should start with '# ' ./docs/conf.py:92:1: E265 block comment should start with '# ' ./docs/conf.py:104:1: E265 block comment should start with '# ' ./docs/conf.py:107:1: E265 block comment should start with '# ' ./docs/conf.py:111:1: E265 block comment should start with '# ' ./docs/conf.py:114:1: E265 block comment should start with '# ' ./docs/conf.py:118:1: E265 block comment should start with '# ' ./docs/conf.py:123:1: E265 block comment should start with '# ' ./docs/conf.py:132:1: E265 block comment should start with '# ' ./docs/conf.py:136:1: E265 block comment should start with '# ' ./docs/conf.py:139:1: E265 block comment should start with '# ' ./docs/conf.py:143:1: E265 block comment should start with '# ' ./docs/conf.py:146:1: E265 block comment should start with '# ' ./docs/conf.py:149:1: E265 block comment should start with '# ' ./docs/conf.py:152:1: E265 block comment should start with '# ' ./docs/conf.py:155:1: E265 block comment should start with '# ' ./docs/conf.py:158:1: E265 block comment should start with '# ' ./docs/conf.py:161:1: E265 block comment should start with '# ' ./docs/conf.py:166:1: E265 block comment should start with '# ' ./docs/conf.py:169:1: E265 block comment should start with '# ' ./docs/conf.py:178:1: E122 continuation line missing indentation or outdented ./docs/conf.py:179:1: E122 continuation line missing indentation or outdented ./docs/conf.py:179:1: E265 block comment should start with '# ' ./docs/conf.py:181:1: E122 continuation line missing indentation or outdented ./docs/conf.py:182:1: E122 continuation line missing indentation or outdented ./docs/conf.py:182:1: E265 block comment should start with '# ' ./docs/conf.py:184:1: E122 continuation line missing indentation or outdented ./docs/conf.py:185:1: E122 continuation line missing indentation or outdented ./docs/conf.py:185:1: E265 block comment should start with '# ' ./docs/conf.py:191:3: E121 continuation line under-indented for hanging indent ./docs/conf.py:197:1: E265 block comment should start with '# ' ./docs/conf.py:201:1: E265 block comment should start with '# ' ./docs/conf.py:204:1: E265 block comment should start with '# ' ./docs/conf.py:207:1: E265 block comment should start with '# ' ./docs/conf.py:210:1: E265 block comment should start with '# ' ./docs/conf.py:213:1: E265 block comment should start with '# ' ./docs/conf.py:226:1: E265 block comment should start with '# ' ./docs/conf.py:235:3: E121 continuation line under-indented for hanging indent ./docs/conf.py:241:1: E265 block comment should start with '# ' ./docs/conf.py:244:1: E265 block comment should start with '# ' ./docs/conf.py:247:1: E265 block comment should start with '# ' ./fluent_dashboard/items.py:4:1: F401 'django' imported but unused ./fluent_dashboard/items.py:34:14: E201 whitespace after '{' ./fluent_dashboard/items.py:38:13: E124 closing bracket does not match visual indentation ./fluent_dashboard/items.py:92:69: F841 local variable 'e' is assigned to but never used ./fluent_dashboard/appsettings.py:50:21: E241 multiple spaces after ':' ./fluent_dashboard/appsettings.py:52:49: E261 at least two spaces before inline comment ./fluent_dashboard/appsettings.py:52:50: E262 inline comment should start with '# ' ./fluent_dashboard/appsettings.py:59:62: E261 at least two spaces before inline comment ./fluent_dashboard/appsettings.py:59:63: E262 inline comment should start with '# ' ./fluent_dashboard/appsettings.py:79:65: E261 at least two spaces before inline comment ./fluent_dashboard/appsettings.py:79:66: E262 inline comment should start with '# ' ./fluent_dashboard/appsettings.py:179:5: E265 block comment should start with '# ' ./fluent_dashboard/dashboard.py:14:1: F401 'admin_tools.dashboard.modules.Group' imported but unused ./fluent_dashboard/dashboard.py:91:61: E262 inline comment should start with '# ' ./fluent_dashboard/dashboard.py:119:12: E713 test for membership should be 'not in' ./fluent_dashboard/modules.py:188:9: E122 continuation line missing indentation or outdented ./fluent_dashboard/modules.py:189:9: E122 continuation line missing indentation or outdented ./fluent_dashboard/modules.py:216:17: E221 multiple spaces before operator

    opened by jadhavganesh 1
  • Provide

    Provide "Recent comments" widget on the dashboard

    Add a "Recent comments" module to the dashboard.

    Inspiration from https://mezzanine.readthedocs.org/en/latest/overview.html

    feature 
    opened by vdboor 0
Owner
django-fluent
Django Fluent CMS - A smooth, flexible CMS to create the designs you like.
django-fluent
A cool, modern and responsive django admin application based on bootstrap 5

django-baton A cool, modern and responsive django admin application based on bootstrap 5 Documentation: readthedocs Live Demo Now you can try django-b

Otto srl 494 Oct 19, 2021
Extends the Django Admin to include a extensible dashboard and navigation menu

django-admin-tools django-admin-tools is a collection of extensions/tools for the default django administration interface, it includes: a full feature

Django Admin Tools 638 Oct 11, 2021
An improved django-admin-tools dashboard for Django projects

django-fluent-dashboard The fluent_dashboard module offers a custom admin dashboard, built on top of django-admin-tools (docs). The django-admin-tools

django-fluent 295 Sep 9, 2021
Legacy django jet rebooted , supports only Django 3

Django JET Reboot Rebooting the original project : django-jet. Django Jet is modern template for Django admin interface with improved functionality. W

null 41 Oct 9, 2021
fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin 930 Oct 25, 2021
A Django app for easily adding object tools in the Django admin

Django Object Actions If you've ever tried making admin object tools you may have thought, "why can't this be as easy as making Django Admin Actions?"

Chris Chang 406 Oct 15, 2021
Modern responsive template for the Django admin interface with improved functionality. We are proud to announce completely new Jet. Please check out Live Demo

Django JET Modern template for Django admin interface with improved functionality Attention! NEW JET We are proud to announce completely new Jet. Plea

Geex Arts 3.2k Oct 18, 2021
FastAPI Admin Dashboard based on FastAPI and Tortoise ORM.

FastAPI ADMIN 中文文档 Introduction FastAPI-Admin is a admin dashboard based on fastapi and tortoise-orm. FastAPI-Admin provide crud feature out-of-the-bo

long2ice 927 Oct 22, 2021
Responsive Theme for Django Admin With Sidebar Menu

Responsive Django Admin If you're looking for a version compatible with Django 1.8 just install 0.3.7.1. Features Responsive Sidebar Menu Easy install

Douglas Miranda 812 Sep 29, 2021
An administration website for Django

yawd-admin, a django administration website yawd-admin now has a live demo at http://yawd-admin.yawd.eu/. Use demo / demo as username & passowrd. yawd

Pantelis Petridis 139 Jul 27, 2021
Material design for django administration

Django Material Administration Quick start pip install django-material-admin Add material.admin and material.admin.default to your INSTALLED_APPS sett

Anton 222 Oct 18, 2021
WordPress look and feel for Django administration panel

Django WP Admin WordPress look and feel for Django administration panel. Features WordPress look and feel New styles for selector, calendar and timepi

Maciej Marczewski 259 Sep 13, 2021
Jet Bridge (Universal) for Jet Admin – API-based Admin Panel Framework for your application

Jet Bridge for Jet Admin – Admin panel framework for your application Description About Jet Admin: https://about.jetadmin.io Live Demo: https://app.je

Jet Admin 1.1k Oct 25, 2021
Django Semantic UI admin theme

Django Semantic UI admin theme A completely free (MIT) Semantic UI admin theme for Django. Actually, this is my 3rd admin theme for Django. The first

Alex 33 Oct 18, 2021
spider-admin-pro

Spider Admin Pro Github: https://github.com/mouday/spider-admin-pro Gitee: https://gitee.com/mouday/spider-admin-pro Pypi: https://pypi.org/

mouday 58 Oct 9, 2021
Visually distinguish environments in Django Admin

django-admin-env-notice Visually distinguish environments in Django Admin. Based on great advice from post: 5 ways to make Django Admin safer by hakib

Yuri Shikanov 228 Oct 15, 2021
Django Smuggler is a pluggable application for Django Web Framework that helps you to import/export fixtures via the automatically-generated administration interface.

Django Smuggler Django Smuggler is a pluggable application for Django Web Framework to easily dump/load fixtures via the automatically-generated admin

semente 359 Sep 28, 2021
Simple and extensible administrative interface framework for Flask

Flask-Admin The project was recently moved into its own organization. Please update your references to [email protected]:flask-admin/flask-admin.git. Int

Flask-Admin 4.9k Oct 21, 2021
Simple and extensible administrative interface framework for Flask

Flask-Admin The project was recently moved into its own organization. Please update your references to [email protected]:flask-admin/flask-admin.git. Int

Flask-Admin 4.6k Feb 7, 2021