Implement fix for field 'filterable' that was broken. Added new custom field parameter 'filter_logic'

This commit is contained in:
Grokzen 2018-04-18 19:04:29 +02:00
parent 19805a4312
commit cdbfdaf361
3 changed files with 11 additions and 9 deletions

View File

@ -168,7 +168,7 @@ text_field:
label: Custom Text
description: Enter text in a text field.
required: false
filterable: true
filter_logic: loose
weight: 0
on_objects:
- dcim.models.Device

View File

@ -3,7 +3,6 @@
# label: Custom Text
# description: Enter text in a text field.
# required: false
# filterable: true
# weight: 0
# on_objects:
# - dcim.models.Device
@ -17,7 +16,7 @@
# label: Custom Number
# description: Enter numbers into an integer field.
# required: true
# filterable: true
# filter_logic: loose
# weight: 10
# on_objects:
# - tenancy.models.Tenant
@ -25,7 +24,7 @@
# type: selection
# label: Choose between items
# required: false
# filterable: true
# filter_logic: exact
# weight: 30
# on_objects:
# - dcim.models.Device
@ -44,7 +43,7 @@
# type: boolean
# label: Yes Or No?
# required: true
# filterable: true
# filter_logic: loose
# default: "false" # important: but "false" in quotes!
# weight: 90
# on_objects:
@ -54,13 +53,13 @@
# label: Hyperlink
# description: Link to something nice.
# required: true
# filterable: false
# filter_logic: disabled
# on_objects:
# - tenancy.models.Tenant
# date_field:
# type: date
# label: Important Date
# required: false
# filterable: false
# filter_logic: disabled
# on_objects:
# - dcim.models.Device

View File

@ -36,8 +36,11 @@ with open('/opt/netbox/initializers/custom_fields.yml', 'r') as stream:
if cf_details.get('description', 0):
custom_field.description = cf_details['description']
if cf_details.get('filterable', 0):
custom_field.is_filterables = cf_details['filterable']
# If no filter_logic is specified then it will default to 'Loose'
if cf_details.get('filter_logic', 0):
for choice_id, choice_text in CF_FILTER_CHOICES:
if choice_text.lower() == cf_details['filter_logic']:
custom_field.filter_logic = choice_id
if cf_details.get('label', 0):
custom_field.label = cf_details['label']