nautobot.apps.ui
¶
Utilities for apps to integrate with and extend the existing Nautobot UI.
nautobot.apps.ui.Banner
¶
Class that may be returned by a registered plugin_banners function.
Source code in nautobot/extras/plugins/__init__.py
nautobot.apps.ui.BannerClassChoices
¶
nautobot.apps.ui.HomePageItem
¶
Bases: HomePageBase
, PermissionsMixin
Defines properties that can be used for a panel item.
Source code in nautobot/core/apps/__init__.py
__init__(name, link=None, model=None, custom_template=None, custom_data=None, description=None, permissions=None, weight=1000)
¶
Ensure item properties.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
The name of the item. |
required |
link |
str
|
The link to be used for this item. |
None
|
model |
str
|
The model to being used for this item to calculate the total count of objects. |
None
|
custom_template |
str
|
Name of custom template. |
None
|
custom_data |
dict
|
Custom data to be passed to the custom template. |
None
|
Source code in nautobot/core/apps/__init__.py
nautobot.apps.ui.HomePagePanel
¶
Bases: HomePageBase
, PermissionsMixin
Defines properties that can be used for a panel.
Source code in nautobot/core/apps/__init__.py
__init__(name, permissions=None, custom_data=None, custom_template=None, items=None, weight=1000)
¶
Ensure panel properties.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
The name of the panel. |
required |
permissions |
list
|
The permissions required to view this panel. |
None
|
custom_data |
dict
|
Custom data to be passed to the custom template. |
None
|
custom_template |
str
|
Name of custom template. |
None
|
items |
list
|
List of items to be rendered in this panel. |
None
|
weight |
int
|
The weight of this panel. |
1000
|
Source code in nautobot/core/apps/__init__.py
nautobot.apps.ui.NavMenuGroup
¶
Bases: NavMenuBase
, PermissionsMixin
This class represents a group of menu items within a NavMenuTab
.
It has a name
(display string) and a weight
which controls its position relative to other groups/items.
In Nautobot 1.x this could only contain NavMenuItem
s as children;
in 2.x this has been relaxed to also permit a top-level NavMenuGroup
to contain other NavMenuGroup
objects.
Source code in nautobot/core/apps/__init__.py
fixed_fields: tuple
property
¶
Tuple of (name, attribute) entries describing fields that may not be altered after declaration.
initial_dict: dict
property
¶
Attributes to be stored when adding this item to the nav menu data for the first time.
__init__(name, weight=1000, permissions=None, items=None)
¶
Ensure group properties.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
The name of the group. |
required |
weight |
int
|
The weight of this group. |
1000
|
permissions |
set
|
The permissions to access this group. |
None
|
items |
list
|
List of items to be rendered in this group. |
None
|
Source code in nautobot/core/apps/__init__.py
nautobot.apps.ui.NavMenuItem
¶
Bases: NavMenuBase
, PermissionsMixin
This class represents a navigation menu item that leads to a specific page (a "leaf" in the nav menu, if you will).
These are contained within NavMenuGroup
objects.
Links are specified as Django reverse URL strings.
Source code in nautobot/core/apps/__init__.py
fixed_fields: tuple
property
¶
Tuple of (name, attribute) entries describing fields that may not be altered after declaration.
initial_dict: dict
property
¶
Attributes to be stored when adding this item to the nav menu data for the first time.
__init__(link, name, args=None, kwargs=None, permissions=None, weight=1000)
¶
Ensure item properties.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
link |
str
|
The named link to be used for this item. |
required |
name |
str
|
The name of the item. |
required |
args |
list
|
Arguments that are being passed to the url with reverse() method |
None
|
kwargs |
dict
|
Keyword arguments are are being passed to the url with reverse() method |
None
|
permissions |
list
|
The permissions required to view this item. |
None
|
weight |
int
|
The weight of this item. |
1000
|
Source code in nautobot/core/apps/__init__.py
nautobot.apps.ui.NavMenuTab
¶
Bases: NavMenuBase
, PermissionsMixin
This class represents a top-level Nautobot "menu context" such as Inventory or Networks.
It has a name
(the menu context name) and a weight
(which is mostly irrelevant these days).
It contains a list of NavMenuGroup
instances as children.
In Nautobot 1.x, these could be augmented arbitrarily by apps and plugins;
but in 2.0 and later there is a fixed list of these (nautobot.core.apps.MENU_TABS
) that cannot be altered.
Source code in nautobot/core/apps/__init__.py
fixed_fields: tuple
property
¶
Tuple of (name, attribute) entries describing fields that may not be altered after declaration.
initial_dict: dict
property
¶
Attributes to be stored when adding this item to the nav menu data for the first time.
__init__(name, permissions=None, groups=None)
¶
Ensure tab properties.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
The name of the tab. |
required |
permissions |
list
|
The permissions required to view this tab. |
None
|
groups |
list
|
List of groups to be rendered in this tab. |
None
|
Source code in nautobot/core/apps/__init__.py
nautobot.apps.ui.TemplateExtension
¶
This class is used to register plugin content to be injected into core Nautobot templates. It contains methods that are overridden by plugin authors to return template content.
The model
attribute on the class defines the which model detail page this class renders content for. It
should be set as a string in the form <app_label>.<model_name>
. render()
provides the following context data:
- object - The object being viewed
- request - The current request
- settings - Global Nautobot settings
- config - Plugin-specific configuration parameters
Source code in nautobot/extras/plugins/__init__.py
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 |
|
buttons()
¶
Buttons that will be rendered and added to the existing list of buttons on the detail page view. Content should be returned as an HTML string. Note that content does not need to be marked as safe because this is automatically handled.
Source code in nautobot/extras/plugins/__init__.py
detail_tabs()
¶
Tabs that will be rendered and added to the existing list of tabs on the detail page view. Tabs will be ordered by their position in the list.
Content should be returned as a list of dicts in the following format:
[
{
"title": "<title>",
"url": "<url for the tab link>",
},
{
"title": "<title>",
"url": "<url for the tab link>",
},
]
Source code in nautobot/extras/plugins/__init__.py
full_width_page()
¶
Content that will be rendered within the full width of the detail page view. Content should be returned as an HTML string. Note that content does not need to be marked as safe because this is automatically handled.
Source code in nautobot/extras/plugins/__init__.py
left_page()
¶
Content that will be rendered on the left of the detail page view. Content should be returned as an HTML string. Note that content does not need to be marked as safe because this is automatically handled.
Source code in nautobot/extras/plugins/__init__.py
render(template_name, extra_context=None)
¶
Convenience method for rendering the specified Django template using the default context data. An additional
context dictionary may be passed as extra_context
.
Source code in nautobot/extras/plugins/__init__.py
right_page()
¶
Content that will be rendered on the right of the detail page view. Content should be returned as an HTML string. Note that content does not need to be marked as safe because this is automatically handled.