Closes #15547: Add comments field to CustomField model

This commit is contained in:
Jeremy Stretch 2024-04-19 14:50:42 -04:00
parent 824d66a54c
commit 0f0ab1a3be
10 changed files with 44 additions and 10 deletions

View File

@ -65,7 +65,7 @@ class CustomFieldSerializer(ValidatedModelSerializer):
'id', 'url', 'display', 'object_types', 'type', 'related_object_type', 'data_type', 'name', 'label',
'group_name', 'description', 'required', 'search_weight', 'filter_logic', 'ui_visible', 'ui_editable',
'is_cloneable', 'default', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex',
'choice_set', 'created', 'last_updated',
'choice_set', 'comments', 'created', 'last_updated',
]
brief_fields = ('id', 'url', 'display', 'name', 'description')

View File

@ -165,7 +165,8 @@ class CustomFieldFilterSet(ChangeLoggedModelFilterSet):
Q(name__icontains=value) |
Q(label__icontains=value) |
Q(group_name__icontains=value) |
Q(description__icontains=value)
Q(description__icontains=value) |
Q(comments__icontains=value)
)

View File

@ -5,7 +5,7 @@ from extras.choices import *
from extras.models import *
from netbox.forms import NetBoxModelBulkEditForm
from utilities.forms import BulkEditForm, add_blank_choice
from utilities.forms.fields import ColorField, DynamicModelChoiceField
from utilities.forms.fields import ColorField, CommentField, DynamicModelChoiceField
from utilities.forms.widgets import BulkEditNullBooleanSelect
__all__ = (
@ -64,6 +64,7 @@ class CustomFieldBulkEditForm(BulkEditForm):
required=False,
widget=BulkEditNullBooleanSelect()
)
comments = CommentField()
nullable_fields = ('group_name', 'description', 'choice_set')
@ -316,8 +317,4 @@ class JournalEntryBulkEditForm(BulkEditForm):
choices=add_blank_choice(JournalEntryKindChoices),
required=False
)
comments = forms.CharField(
label=_('Comments'),
required=False,
widget=forms.Textarea()
)
comments = CommentField()

View File

@ -71,7 +71,7 @@ class CustomFieldImportForm(CSVModelForm):
fields = (
'name', 'label', 'group_name', 'type', 'object_types', 'related_object_type', 'required', 'description',
'search_weight', 'filter_logic', 'default', 'choice_set', 'weight', 'validation_minimum',
'validation_maximum', 'validation_regex', 'ui_visible', 'ui_editable', 'is_cloneable',
'validation_maximum', 'validation_regex', 'ui_visible', 'ui_editable', 'is_cloneable', 'comments',
)

View File

@ -53,6 +53,7 @@ class CustomFieldForm(forms.ModelForm):
queryset=CustomFieldChoiceSet.objects.all(),
required=False
)
comments = CommentField()
fieldsets = (
FieldSet(

View File

@ -0,0 +1,18 @@
# Generated by Django 5.0.3 on 2024-04-19 18:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('extras', '0113_customfield_rename_object_type'),
]
operations = [
migrations.AddField(
model_name='customfield',
name='comments',
field=models.TextField(blank=True),
),
]

View File

@ -205,6 +205,10 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
verbose_name=_('is cloneable'),
help_text=_('Replicate this value when cloning objects')
)
comments = models.TextField(
verbose_name=_('comments'),
blank=True
)
objects = CustomFieldManager()

View File

@ -2,6 +2,18 @@ from netbox.search import SearchIndex, register_search
from . import models
@register_search
class CustomFieldIndex(SearchIndex):
model = models.CustomField
fields = (
('name', 100),
('label', 100),
('description', 500),
('comments', 5000),
)
display_attrs = ('description',)
@register_search
class JournalEntryIndex(SearchIndex):
model = models.JournalEntry

View File

@ -78,7 +78,7 @@ class CustomFieldTable(NetBoxTable):
fields = (
'pk', 'id', 'name', 'object_types', 'label', 'type', 'related_object_type', 'group_name', 'required',
'default', 'description', 'search_weight', 'filter_logic', 'ui_visible', 'ui_editable', 'is_cloneable',
'weight', 'choice_set', 'choices', 'created', 'last_updated',
'weight', 'choice_set', 'choices', 'comments', 'created', 'last_updated',
)
default_columns = ('pk', 'name', 'object_types', 'label', 'group_name', 'type', 'required', 'description')

View File

@ -85,6 +85,7 @@
</tr>
</table>
</div>
{% include 'inc/panels/comments.html' %}
{% plugin_left_page object %}
</div>
<div class="col col-md-6">