|
@@ -106,7 +106,7 @@ class AnimalSoundsConfig(PluginConfig):
|
|
|
| `max_version` | Maximum version of NetBox with which the plugin is compatible |
|
|
| `max_version` | Maximum version of NetBox with which the plugin is compatible |
|
|
|
| `middleware` | A list of middleware classes to append after NetBox's build-in middleware |
|
|
| `middleware` | A list of middleware classes to append after NetBox's build-in middleware |
|
|
|
| `caching_config` | Plugin-specific cache configuration
|
|
| `caching_config` | Plugin-specific cache configuration
|
|
|
-| `template_content` | The dotted path to the list of template content classes (default: `template_content.template_contnet`) |
|
|
|
|
|
|
|
+| `template_extensions` | The dotted path to the list of template extension classes (default: `template_content.template_extensions`) |
|
|
|
| `menu_items` | The dotted path to the list of menu items provided by the plugin (default: `navigation.menu_items`) |
|
|
| `menu_items` | The dotted path to the list of menu items provided by the plugin (default: `navigation.menu_items`) |
|
|
|
|
|
|
|
|
### Install the Plugin for Development
|
|
### Install the Plugin for Development
|
|
@@ -317,9 +317,9 @@ A `PluginMenuButton` has the following attributes:
|
|
|
* `color` - One of the choices provided by `ButtonColorChoices` (optional)
|
|
* `color` - One of the choices provided by `ButtonColorChoices` (optional)
|
|
|
* `permission` - The name of the permission required to display this button (optional)
|
|
* `permission` - The name of the permission required to display this button (optional)
|
|
|
|
|
|
|
|
-## Template Content
|
|
|
|
|
|
|
+## Extending Core Templates
|
|
|
|
|
|
|
|
-Plugins can inject custom content into certain areas of the detail views of applicable models. This is accomplished by subclassing `PluginTemplateContent`, designating a particular NetBox model, and defining the desired methods to render custom content. Four methods are available:
|
|
|
|
|
|
|
+Plugins can inject custom content into certain areas of the detail views of applicable models. This is accomplished by subclassing `PluginTemplateExtension`, designating a particular NetBox model, and defining the desired methods to render custom content. Four methods are available:
|
|
|
|
|
|
|
|
* `left_page()` - Inject content on the left side of the page
|
|
* `left_page()` - Inject content on the left side of the page
|
|
|
* `right_page()` - Inject content on the right side of the page
|
|
* `right_page()` - Inject content on the right side of the page
|
|
@@ -333,25 +333,25 @@ Each of these methods must return HTML content suitable for inclusion in the obj
|
|
|
|
|
|
|
|
Additionally, a `render()` method is available for convenience. This method accepts the name of a template to render, and any additional context data you want to pass. Its use is optional, however.
|
|
Additionally, a `render()` method is available for convenience. This method accepts the name of a template to render, and any additional context data you want to pass. Its use is optional, however.
|
|
|
|
|
|
|
|
-Declared subclasses should be gathered into a list or tuple for integration with NetBox. By default, NetBox looks for an iterable named `template_content` within a `template_content.py` file. (This can be overridden by setting `template_content` to a custom value on the plugin's PluginConfig.) An example is below.
|
|
|
|
|
|
|
+Declared subclasses should be gathered into a list or tuple for integration with NetBox. By default, NetBox looks for an iterable named `template_extensions` within a `template_content.py` file. (This can be overridden by setting `template_extensions` to a custom value on the plugin's PluginConfig.) An example is below.
|
|
|
|
|
|
|
|
```python
|
|
```python
|
|
|
-from extras.plugins import PluginTemplateContent
|
|
|
|
|
|
|
+from extras.plugins import PluginTemplateExtension
|
|
|
|
|
|
|
|
-class AddSiteAnimal(PluginTemplateContent):
|
|
|
|
|
|
|
+class AddSiteAnimal(PluginTemplateExtension):
|
|
|
model = 'dcim.site'
|
|
model = 'dcim.site'
|
|
|
|
|
|
|
|
def full_width_page(self):
|
|
def full_width_page(self):
|
|
|
return self.render('netbox_animal_sounds/site.html')
|
|
return self.render('netbox_animal_sounds/site.html')
|
|
|
|
|
|
|
|
-class AddRackAnimal(PluginTemplateContent):
|
|
|
|
|
|
|
+class AddRackAnimal(PluginTemplateExtension):
|
|
|
model = 'dcim.rack'
|
|
model = 'dcim.rack'
|
|
|
|
|
|
|
|
def left_page(self):
|
|
def left_page(self):
|
|
|
extra_data = {'foo': 123}
|
|
extra_data = {'foo': 123}
|
|
|
return self.render('netbox_animal_sounds/rack.html', extra_data)
|
|
return self.render('netbox_animal_sounds/rack.html', extra_data)
|
|
|
|
|
|
|
|
-template_content_classes = [AddSiteAnimal, AddRackAnimal]
|
|
|
|
|
|
|
+template_extensions = [AddSiteAnimal, AddRackAnimal]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
## Caching Configuration
|
|
## Caching Configuration
|