From 3f216fa4a3c0a1389201d81ae48b2f55941cef4d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 1 Mar 2021 14:33:52 -0500 Subject: [PATCH] Remove unused CustomFieldModel class --- netbox/extras/models/__init__.py | 3 +- netbox/extras/models/customfields.py | 51 ---------------------------- 2 files changed, 1 insertion(+), 53 deletions(-) diff --git a/netbox/extras/models/__init__.py b/netbox/extras/models/__init__.py index daeed8223..95132e43a 100644 --- a/netbox/extras/models/__init__.py +++ b/netbox/extras/models/__init__.py @@ -1,5 +1,5 @@ from .change_logging import ObjectChange -from .customfields import CustomField, CustomFieldModel +from .customfields import CustomField from .models import ( ConfigContext, ConfigContextModel, CustomLink, ExportTemplate, ImageAttachment, JobResult, Report, Script, Webhook, @@ -10,7 +10,6 @@ __all__ = ( 'ConfigContext', 'ConfigContextModel', 'CustomField', - 'CustomFieldModel', 'CustomLink', 'ExportTemplate', 'ImageAttachment', diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 05ac2a222..ecc11e52b 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -1,11 +1,9 @@ import re -from collections import OrderedDict from datetime import datetime, date from django import forms from django.contrib.contenttypes.models import ContentType from django.contrib.postgres.fields import ArrayField -from django.core.serializers.json import DjangoJSONEncoder from django.core.validators import RegexValidator, ValidationError from django.db import models from django.utils.safestring import mark_safe @@ -18,55 +16,6 @@ from utilities.querysets import RestrictedQuerySet from utilities.validators import validate_regex -class CustomFieldModel(BigIDModel): - """ - Abstract class for any model which may have custom fields associated with it. - """ - custom_field_data = models.JSONField( - encoder=DjangoJSONEncoder, - blank=True, - default=dict - ) - - class Meta: - abstract = True - - @property - def cf(self): - """ - Convenience wrapper for custom field data. - """ - return self.custom_field_data - - def get_custom_fields(self): - """ - Return a dictionary of custom fields for a single object in the form {: value}. - """ - fields = CustomField.objects.get_for_model(self) - return OrderedDict([ - (field, self.custom_field_data.get(field.name)) for field in fields - ]) - - def clean(self): - super().clean() - - custom_fields = {cf.name: cf for cf in CustomField.objects.get_for_model(self)} - - # Validate all field values - for field_name, value in self.custom_field_data.items(): - if field_name not in custom_fields: - raise ValidationError(f"Unknown field name '{field_name}' in custom field data.") - try: - custom_fields[field_name].validate(value) - except ValidationError as e: - raise ValidationError(f"Invalid value for custom field '{field_name}': {e.message}") - - # Check for missing required values - for cf in custom_fields.values(): - if cf.required and cf.name not in self.custom_field_data: - raise ValidationError(f"Missing required custom field '{cf.name}'.") - - class CustomFieldManager(models.Manager.from_queryset(RestrictedQuerySet)): use_in_migrations = True