Skip to content

Commit

Permalink
Fixes #1860: Do not populate initial values for custom fields when ed…
Browse files Browse the repository at this point in the history
…iting objects in bulk
  • Loading branch information
jeremystretch committed Feb 3, 2018
1 parent d25d8c2 commit 594ef71
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions netbox/extras/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ def get_custom_fields_for_model(content_type, filterable_only=False, bulk_edit=F

for cf in custom_fields:
field_name = 'cf_{}'.format(str(cf.name))
initial = cf.default if not bulk_edit else None

# Integer
if cf.type == CF_TYPE_INTEGER:
field = forms.IntegerField(required=cf.required, initial=cf.default)
field = forms.IntegerField(required=cf.required, initial=initial)

# Boolean
elif cf.type == CF_TYPE_BOOLEAN:
Expand All @@ -34,18 +35,19 @@ def get_custom_fields_for_model(content_type, filterable_only=False, bulk_edit=F
(1, 'True'),
(0, 'False'),
)
if cf.default.lower() in ['true', 'yes', '1']:
if initial.lower() in ['true', 'yes', '1']:
initial = 1
elif cf.default.lower() in ['false', 'no', '0']:
elif initial.lower() in ['false', 'no', '0']:
initial = 0
else:
initial = None
field = forms.NullBooleanField(required=cf.required, initial=initial,
widget=forms.Select(choices=choices))
field = forms.NullBooleanField(
required=cf.required, initial=initial, widget=forms.Select(choices=choices)
)

# Date
elif cf.type == CF_TYPE_DATE:
field = forms.DateField(required=cf.required, initial=cf.default, help_text="Date format: YYYY-MM-DD")
field = forms.DateField(required=cf.required, initial=initial, help_text="Date format: YYYY-MM-DD")

# Select
elif cf.type == CF_TYPE_SELECT:
Expand All @@ -56,11 +58,11 @@ def get_custom_fields_for_model(content_type, filterable_only=False, bulk_edit=F

# URL
elif cf.type == CF_TYPE_URL:
field = LaxURLField(required=cf.required, initial=cf.default)
field = LaxURLField(required=cf.required, initial=initial)

# Text
else:
field = forms.CharField(max_length=255, required=cf.required, initial=cf.default)
field = forms.CharField(max_length=255, required=cf.required, initial=initial)

field.model = cf
field.label = cf.label if cf.label else cf.name.replace('_', ' ').capitalize()
Expand Down

0 comments on commit 594ef71

Please sign in to comment.