Show SLM installations on native objects (#61)
Closes #49 Signed-off-by: wkoot <3715211+wkoot@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
from netbox.plugins import PluginTemplateExtension, get_plugin_config
|
||||
|
||||
installations = dict(
|
||||
device=get_plugin_config("netbox_slm", "link_device_installations"),
|
||||
cluster=get_plugin_config("netbox_slm", "link_cluster_installations"),
|
||||
virtualmachine=get_plugin_config("netbox_slm", "link_virtualmachine_installations"),
|
||||
)
|
||||
|
||||
|
||||
class InstallationsCard(PluginTemplateExtension):
|
||||
models = ["dcim.device", "virtualization.cluster", "virtualization.virtualmachine"]
|
||||
|
||||
def get_object_name(self):
|
||||
object_model_meta = self.context["object"]._meta # one of the self.models defined above
|
||||
return object_model_meta.model_name
|
||||
|
||||
def render_card(self):
|
||||
return self.render(
|
||||
"netbox_slm/installations_card_include.html",
|
||||
extra_context={
|
||||
"search_obj": self.get_object_name(),
|
||||
},
|
||||
)
|
||||
|
||||
def left_page(self):
|
||||
return self.render_card() if installations[self.get_object_name()] == "left" else ""
|
||||
|
||||
def right_page(self):
|
||||
return self.render_card() if installations[self.get_object_name()] == "right" else ""
|
||||
|
||||
def full_width_page(self):
|
||||
return self.render_card() if installations[self.get_object_name()] == "full" else ""
|
||||
|
||||
|
||||
# auto imported by default PluginConfig.template_extensions = template_content.template_extensions
|
||||
template_extensions = [InstallationsCard]
|
||||
Reference in New Issue
Block a user