Dashboards
Djing dashboards provide a convenient way to build information overview pages that contain a variety of metrics and cards.
Overview
Djing dashboards provide a convenient way to build information overview pages that contain a variety of metrics and cards.

Default Dashboard
Djing ships with a default djing_admin.app.Djing.Dashboards.Main dashboard class containing a cards method. You can customize which cards are present on the default dashboard via this method:
from djing.core.Cards.Help import Help
from djing.core.Dashboards.Main import Main as Dashboard
class Main(Dashboard):
    def cards(self):
        return [
            Help(),
        ]Defining Dashboards
Custom dashboards may be generated using the djing:dashboard CLI command. By default, all new dashboards will be placed in the djing_admin/app/Djing/Dashboards directory:
commander djing:dashboard UserInsightsOnce your dashboard class has been generated, you’re ready to customize it. Each dashboard class contains a cards method. This method should return an array of card or metric classes:
from djing.core.Dashboards.Main import Main as Dashboard
from djing_admin.app.Djing.Metrics.TotalUsers import TotalUsers
class UserInsights(Dashboard):
    def cards(self):
        return [
            TotalUsers(),
        ]Dashboard Names
By default, Djing will use the dashboard’s class name to determine the displayable name of your dashboard that should be placed in the left-side navigation bar. You may customize the name of the dashboard displayed in the left-side navigation bar by overriding the name method within your dashboard class:
from djing.core.Dashboards.Main import Main as Dashboard
class UserDashboard(Dashboard):
    # ...
    def name(self):
        return "User Dashboard"Dashboard URI Keys
If you need to change the URI of the dashboard, you may override the dashboard class’ uri_key method. Of course, the URI represents the browser location that Nova will navigate to in when you click on the dashboard link in the left-side navigation bar:
from djing.core.Dashboards.Main import Main as Dashboard
class UserDashboard(Dashboard):
    # ...
    def uri_key(self):
        return "user-dashboard"Registering Dashboards
To register a dashboard, add the dashboard to the array returned by the dashboards method of your application’s djing_admin.app.Providers.DjingServiceProvider class. Once you have added the dashboard to this method, it will become available for navigation in Djing’s left-side navigation bar:
from djing.core.Providers.DjingApplicationServiceProvider import (
    DjingApplicationServiceProvider,
)
from djing_admin.app.Djing.Dashboards.UserInsights import UserInsights
class DjingServiceProvider(DjingApplicationServiceProvider):
    # ...
    def dashboards(self):
        return [
            UserInsights.make(),
        ]Customizing Dashboard Menus
You can customize the dashboard’s menu by defining a menu method on your dashboard class:
from djing.core.Dashboards.Main import Main as Dashboard
from djing.core.Http.Requests.DjingRequest import DjingRequest
class UserDashboard(Dashboard):
    # ...
    def menu(self, request: DjingRequest):
        return super().menu(request).with_badge("NEW!")Authorization
If you would like to only expose a given dashboard to certain users, you may invoke the can_see method when registering your dashboard. The can_see method accepts a closure which should return true or false. The closure will receive the incoming HTTP request:
from djing.core.Providers.DjingApplicationServiceProvider import (
    DjingApplicationServiceProvider,
)
from djing_admin.app.Djing.Dashboards.UserInsights import UserInsights
class DjingServiceProvider(DjingApplicationServiceProvider):
    # ...
    def dashboards(self):
        return [
            UserInsights.make().can_see(lambda request: True),
        ]Last updated