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 label: Custom Text
description: Enter text in a text field. description: Enter text in a text field.
required: false required: false
filterable: true filter_logic: loose
weight: 0 weight: 0
on_objects: on_objects:
- dcim.models.Device - dcim.models.Device

View File

@ -3,7 +3,6 @@
# label: Custom Text # label: Custom Text
# description: Enter text in a text field. # description: Enter text in a text field.
# required: false # required: false
# filterable: true
# weight: 0 # weight: 0
# on_objects: # on_objects:
# - dcim.models.Device # - dcim.models.Device
@ -17,7 +16,7 @@
# label: Custom Number # label: Custom Number
# description: Enter numbers into an integer field. # description: Enter numbers into an integer field.
# required: true # required: true
# filterable: true # filter_logic: loose
# weight: 10 # weight: 10
# on_objects: # on_objects:
# - tenancy.models.Tenant # - tenancy.models.Tenant
@ -25,7 +24,7 @@
# type: selection # type: selection
# label: Choose between items # label: Choose between items
# required: false # required: false
# filterable: true # filter_logic: exact
# weight: 30 # weight: 30
# on_objects: # on_objects:
# - dcim.models.Device # - dcim.models.Device
@ -44,7 +43,7 @@
# type: boolean # type: boolean
# label: Yes Or No? # label: Yes Or No?
# required: true # required: true
# filterable: true # filter_logic: loose
# default: "false" # important: but "false" in quotes! # default: "false" # important: but "false" in quotes!
# weight: 90 # weight: 90
# on_objects: # on_objects:
@ -54,13 +53,13 @@
# label: Hyperlink # label: Hyperlink
# description: Link to something nice. # description: Link to something nice.
# required: true # required: true
# filterable: false # filter_logic: disabled
# on_objects: # on_objects:
# - tenancy.models.Tenant # - tenancy.models.Tenant
# date_field: # date_field:
# type: date # type: date
# label: Important Date # label: Important Date
# required: false # required: false
# filterable: false # filter_logic: disabled
# on_objects: # on_objects:
# - dcim.models.Device # - 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): if cf_details.get('description', 0):
custom_field.description = cf_details['description'] custom_field.description = cf_details['description']
if cf_details.get('filterable', 0): # If no filter_logic is specified then it will default to 'Loose'
custom_field.is_filterables = cf_details['filterable'] 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): if cf_details.get('label', 0):
custom_field.label = cf_details['label'] custom_field.label = cf_details['label']