Skip to content

Commit

Permalink
Fixes: #17459 - Ensure help text on component create forms shows both…
Browse files Browse the repository at this point in the history
… bulk edit and substitution token instructions (#17931)

* Move {module} substitution help text to main ComponentCreateForm.__init__ so it applies to all component types, and fix formatting

* Simplify help text replacement string for component forms with 'module' field

* Reuse help text string in both ComponentCreateForm and ModularComponentTemplateForm

* Remove help text override from regular (direct) object creation of device components

* Re-add space

* Tweak help text

---------

Co-authored-by: Jeremy Stretch <[email protected]>
  • Loading branch information
bctiemann and jeremystretch authored Nov 21, 2024
1 parent 4f7bfc8 commit 6fb4760
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
7 changes: 7 additions & 0 deletions netbox/dcim/forms/model_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -909,6 +909,13 @@ def __init__(self, *args, **kwargs):
if self.instance.pk:
self.fields['module_type'].disabled = True

# Components attached to a module need to present this standardized substitution help text.
self.fields['name'].help_text = _(
"Alphanumeric ranges are supported for bulk creation. Mixed cases and types within a single range are not "
"supported (example: <code>[ge,xe]-0/0/[0-9]</code>). The token <code>{module}</code>, if present, will be "
"automatically replaced with the position value when creating a new module."
)


class ConsolePortTemplateForm(ModularComponentTemplateForm):
fieldsets = (
Expand Down
8 changes: 0 additions & 8 deletions netbox/dcim/forms/object_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,14 +243,6 @@ class InterfaceCreateForm(ComponentCreateForm, model_forms.InterfaceForm):
class Meta(model_forms.InterfaceForm.Meta):
exclude = ('name', 'label')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

if 'module' in self.fields:
self.fields['name'].help_text += _(
"The string <code>{module}</code> will be replaced with the position of the assigned module, if any."
)


class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm):
device = DynamicModelChoiceField(
Expand Down

0 comments on commit 6fb4760

Please sign in to comment.