From 106627da04c17788fb058a41b62b502707e8c4eb Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 18 Jul 2017 10:39:09 -0400 Subject: [PATCH] Fixes #1358: Correct VRF example values in IP/prefix import forms --- netbox/templates/utilities/obj_import.html | 2 +- netbox/utilities/templatetags/helpers.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/netbox/templates/utilities/obj_import.html b/netbox/templates/utilities/obj_import.html index 7c331a2ef..90cb81a61 100644 --- a/netbox/templates/utilities/obj_import.html +++ b/netbox/templates/utilities/obj_import.html @@ -44,7 +44,7 @@ {{ field.help_text|default:field.label }} {% if field.choices %} -
Choices: {{ field.choices|example_choices }} +
Choices: {{ field|example_choices }} {% elif field|widget_type == 'dateinput' %}
Format: YYYY-MM-DD {% elif field|widget_type == 'checkboxinput' %} diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index 42e8a277f..b7a40d018 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -63,19 +63,23 @@ def bettertitle(value): @register.filter() -def example_choices(value, arg=3): +def example_choices(field, arg=3): """ Returns a number (default: 3) of example choices for a ChoiceFiled (useful for CSV import forms). """ - choices = [] - for id, label in value: - if len(choices) == arg: - choices.append('etc.') + examples = [] + if hasattr(field, 'queryset'): + choices = [(obj.pk, getattr(obj, field.to_field_name)) for obj in field.queryset[:arg+1]] + else: + choices = field.choices + for id, label in choices: + if len(examples) == arg: + examples.append('etc.') break if not id: continue - choices.append(label) - return ', '.join(choices) or 'None' + examples.append(label) + return ', '.join(examples) or 'None' #