A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://smartbase-sk.github.io/django-smartbase-admin-docs/docs/menu below:

Menu | Django SmartBase Admin Documentation

Menu

This section demonstrates how to define menu items using the SBAdminRoleConfiguration class.

Defining Menu Items

To create a custom menu, define a list of SBAdminMenuItem instances and pass them to SBAdminRoleConfiguration.

sb_admin_configuration.py
config = SBAdminRoleConfiguration(
default_view=SBAdminMenuItem(view_id="dashboard"),
menu_items=[
SBAdminMenuItem(view_id="dashboard", icon="All-application"),
SBAdminMenuItem(view_id="catalog_product", icon="List-checkbox", label="Catalog",
sub_items=[SBAdminMenuItem(view_id="catalog_category"),
SBAdminMenuItem(view_id="catalog_manufacturer"),
SBAdminMenuItem(view_id="catalog_product")
]
)
],
registered_views=[...],
)

Each SBAdminMenuItem accepts the following key parameters:

Role-Based Menu Configuration

You can define different menus for different user roles by extending SBAdminRoleConfiguration and using get_configuration_for_roles in your SBAdminConfiguration.

Step 1: Define Menu Variants sb_admin_configuration.py
admin_menu_items = [
SBAdminMenuItem(view_id="dashboard", icon="All-application"),
SBAdminMenuItem(
label="Catalog",
icon="Box",
sub_items=[
SBAdminMenuItem(view_id="catalog_product", label="Products"),
SBAdminMenuItem(view_id="catalog_category", label="Categories"),
SBAdminMenuItem(view_id="catalog_manufacturer", label="Manufacturers"),
],
),
SBAdminMenuItem(view_id="catalog_product", label="List View", icon="List-checkbox"),
SBAdminMenuItem(view_id="catalog_purchase", label="Advanced filters", icon="Filter"),
]

editor_menu_items = [
SBAdminMenuItem(view_id="catalog_product", icon="List-checkbox", label="List View"),
SBAdminMenuItem(view_id="catalog_category", icon="List-checkbox", label="Tree View"),
SBAdminMenuItem(view_id="catalog_manufacturer", icon="Box"),
]
Step 2: Create Role-Based Configurations sb_admin_configuration.py
class AdminConfiguration(SBAdminRoleConfiguration):
menu_items = admin_menu_items
default_view = SBAdminMenuItem(view_id="dashboard")
registered_views = [...]


class EditorConfiguration(SBAdminRoleConfiguration):
menu_items = editor_menu_items
default_view = SBAdminMenuItem(view_id="catalog_product")
registered_views = [...]
Step 3: Return the Configuration Based on User Role sb_admin_configuration.py
EDITOR_ROLE = "Editors"

class SBAdminConfiguration(SBAdminConfigurationBase):
def get_configuration_for_roles(self, user_roles):
user_roles = list(user_roles)
if EDITOR_ROLE in user_roles:
return EditorConfiguration()
return AdminConfiguration()

With this setup, each user will see a customized menu based on their role. You can extend this further to support more roles or dynamic permissions.

Integrate into Your Django App

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4