byashimov/django-controlcenter

Set of widgets to build dashboards for Django projects

admin-dashboard
dashboard
django

Welcome to django-controlcenter!

Get all your project models on one single page with charts and whistles.

django-controlcenter

Attention!

Unfortunately, I have no time to add new features. Please make PR if you need one:

  • branch from master
  • provide tests
  • add docs
  • update changelog

That\'s it.

Rationale

Django-admin is a great tool to control your project activity: new orders, comments, replies, users, feedback -- everything is here. The only struggle is to switch between all those pages constantly just to check them out for new entries.

With django-controlcenter you can have all of your models on one single page and build beautiful charts with Chartist.js. Actually they don\'t even have to be a django models, get your data from wherever you want: RDBMS, NOSQL, text file or even from an external web-page, it doesn\'t matter.

Quickstart

Install django-controlcenter:

pip install -U django-controlcenter

Create a dashboard file with unlimited number of widgets and dashboards:

from controlcenter import Dashboard, widgets
from project.app.models import Model

class ModelItemList(widgets.ItemList):
    model = Model
    list_display = ('pk', 'field')

class MyDashboard(Dashboard):
    widgets = (
        ModelItemList,
    )

Update settings file:

INSTALLED_APPS = [
    ...
    'controlcenter',
    ...
]

CONTROLCENTER_DASHBOARDS = (
    ('mydash', 'project.dashboards.MyDashboard'),
)

Plug in urls:

from django.urls import path
from django.contrib import admin
from controlcenter.views import controlcenter

urlpatterns = [
    path('admin/dashboard/', controlcenter.urls),
    path('admin/', admin.site.urls),
    ...
]

Open /admin/dashboard/mydash/ in browser.

Documentation

Check out the docs for more complete examples.

Compatibility

Build Status

Codecov

Tested on py 3.5---3.10 and django 1---4.

Credits

This project uses Chartist.js, Masonry.js and Sortable.js.

Changelog

0.3.2

  • Automatically redirect the main app url to the first dashboard. Thanks to \@fabiocaccamo.

0.3.1

  • Support django 4.0, python 3.10. Thanks to \@mick88.
  • Fixed LineChart example. Thanks to \@virtosubogdan.

0.3.0

  • Support django 3.0
  • Python 3 only

0.2.9

  • chartist-plugin-pointlabels temporary fix
  • Added sorting triangles to ItemList
  • ItemList header is now always displayed regardless sortability
  • Other misc improvements

Thanks to \@minusf.

0.2.8

  • Fixed key_value_list.html widget template syntax error.
  • Fixed attribute typo widget.chartist.point_labels -> point_lables.

Thanks to \@minusf.

0.2.7

  • New TimeSeriesChart widget. Thanks to \@pjdelport.
  • New \"simple\" widgets: ValueList and KeyValueList. Thanks to \@tonysyu.
  • Bunch of fixes and improvements, thanks again to \@pjdelport.

0.2.6

  • Fixed navigation menu links, thanks to \@editorgit

0.2.5

  • It\'s now possible to use slugs for dashboards instead of those indexes in CONTROLCENTER_DASHBOARDS. The old behaviour is supported too.

0.2.4

  • It\'s compatible with django 1.8---2.1 now
  • Custom app name can be passed to ControlCenter class

0.2.3

  • Updated column grid, thanks to \@pauloxnet.
  • Grammar fixes, thanks to \@danielquinn.
  • It\'s should be possible now to use a custom dashboard view with a custom template.

0.2.2

  • dashboard.html now extends admin/base_site.html instead of admin/base.html in order to display branding block. Thanks to \@chadgh.
  • Updated jsonify tag filter, thanks to \@k8n.

0.2.1

  • Django 1.10 support. Tested in tox only.
  • Updated the SingleBarChart example, thanks to \@greeve.

0.2.0

  • Unlimited dashboards support.
  • Configuration constructor is moved to a separate project -- django-pkgconf. It\'s a dependency now.

0.1.2

  • Chart i series color fix. Thanks to \@uncleNight.
  • Docs. Finally.

0.1.1

  • Better responsive experience.

0.1.0

  • First public release.
Stars
985
0.10% more than last month
Forks
85
Open Issues
10