add custom link initializers

This commit is contained in:
Schylar Utleye 2020-12-18 23:22:41 -06:00 committed by Christian Mäder
parent 3a0b3fe133
commit 187ae4b2a1
2 changed files with 45 additions and 0 deletions

View 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

View 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()