add custom link initializers
This commit is contained in:
parent
3a0b3fe133
commit
187ae4b2a1
21
initializers/custom_links.yml
Normal file
21
initializers/custom_links.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
## Possible Choices:
|
||||||
|
## new_window:
|
||||||
|
## - True
|
||||||
|
## - False
|
||||||
|
## content_type_id:
|
||||||
|
## - device
|
||||||
|
## - site
|
||||||
|
## - any-other-content-type
|
||||||
|
##
|
||||||
|
## Examples:
|
||||||
|
|
||||||
|
# - name: link_to_repo
|
||||||
|
# text: 'Link to docker repository'
|
||||||
|
# url: 'https://github.com/netbox-community/netbox-docker'
|
||||||
|
# new_window: False
|
||||||
|
# content_type: device
|
||||||
|
# - name: link_to_localhost
|
||||||
|
# text: 'Link to the users localhost'
|
||||||
|
# url: 'http://localhost'
|
||||||
|
# new_window: True
|
||||||
|
# content_type: device
|
24
startup_scripts/280_custom_links.py
Normal file
24
startup_scripts/280_custom_links.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from extras.models import CustomLink
|
||||||
|
from startup_script_utils import load_yaml
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
custom_links = load_yaml('/opt/netbox/initializers/custom_links.yml')
|
||||||
|
|
||||||
|
if custom_links is None:
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
def get_content_type_id(content_type_str):
|
||||||
|
for type in ContentType.objects.all():
|
||||||
|
if type.name == content_type_str:
|
||||||
|
return type.id
|
||||||
|
|
||||||
|
for link in custom_links:
|
||||||
|
content_type = link.pop('content_type')
|
||||||
|
link['content_type_id'] = get_content_type_id(content_type)
|
||||||
|
if link['content_type_id'] is None:
|
||||||
|
print("⚠️ Error determining content type id for user declared var: {0}".format(content_type))
|
||||||
|
else:
|
||||||
|
CustomLink(**link).save()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user