Skip to content

Commit 81b03b8

Browse files
committed
remove serializer
1 parent 5906ba1 commit 81b03b8

File tree

2 files changed

+39
-27
lines changed

2 files changed

+39
-27
lines changed

netbox_custom_objects/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,10 +619,12 @@ def wrapped_post_through_setup(self, cls):
619619
# is no recursion.
620620
apps.clear_cache()
621621

622+
'''
622623
# Register the serializer for this model
623624
from netbox_custom_objects.api.serializers import get_serializer_class
624625
625626
get_serializer_class(model)
627+
'''
626628

627629
# Register the global SearchIndex for this model
628630
self.register_custom_object_search_index(model)

netbox_custom_objects/views.py

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from . import field_types, filtersets, forms, tables
2929
from .models import CustomObject, CustomObjectType, CustomObjectTypeField
3030
from extras.choices import CustomFieldTypeChoices
31+
from netbox_custom_objects.api.serializers import get_serializer_class
3132
from netbox_custom_objects.constants import APP_LABEL
3233

3334
logger = logging.getLogger("netbox_custom_objects.views")
@@ -141,6 +142,14 @@ def get_table(self, data, request, bulk_actions=True):
141142
return super().get_table(data, request, bulk_actions=bulk_actions)
142143

143144

145+
class CustomObjectModelMixin:
146+
def get_model(self, custom_object_type):
147+
model = custom_object_type.get_model()
148+
get_serializer_class(model)
149+
custom_object_type.register_custom_object_search_index(model)
150+
return model
151+
152+
144153
#
145154
# Custom Object Types
146155
#
@@ -155,17 +164,17 @@ class CustomObjectTypeListView(generic.ObjectListView):
155164

156165

157166
@register_model_view(CustomObjectType)
158-
class CustomObjectTypeView(CustomObjectTableMixin, generic.ObjectView):
167+
class CustomObjectTypeView(CustomObjectTableMixin, CustomObjectModelMixin, generic.ObjectView):
159168
queryset = CustomObjectType.objects.all()
160169

161170
def get_table(self, data, request, bulk_actions=True):
162171
self.custom_object_type = self.get_object(**self.kwargs)
163-
model = self.custom_object_type.get_model()
172+
model = self.get_model(self.custom_object_type)
164173
data = model.objects.all()
165174
return super().get_table(data, request, bulk_actions=False)
166175

167176
def get_extra_context(self, request, instance):
168-
model = instance.get_model()
177+
model = self.get_model(instance)
169178

170179
# Get fields and group them by group_name
171180
fields = instance.fields.all().order_by("group_name", "weight", "name")
@@ -193,13 +202,13 @@ class CustomObjectTypeEditView(generic.ObjectEditView):
193202

194203

195204
@register_model_view(CustomObjectType, "delete")
196-
class CustomObjectTypeDeleteView(generic.ObjectDeleteView):
205+
class CustomObjectTypeDeleteView(CustomObjectModelMixin, generic.ObjectDeleteView):
197206
queryset = CustomObjectType.objects.all()
198207
default_return_url = "plugins:netbox_custom_objects:customobjecttype_list"
199208

200209
def _get_dependent_objects(self, obj):
201210
dependent_objects = super()._get_dependent_objects(obj)
202-
model = obj.get_model()
211+
model = self.get_model(obj)
203212
dependent_objects[model] = list(model.objects.all())
204213

205214
# Find CustomObjectTypeFields that reference this CustomObjectType
@@ -226,7 +235,7 @@ class CustomObjectTypeFieldEditView(generic.ObjectEditView):
226235

227236

228237
@register_model_view(CustomObjectTypeField, "delete")
229-
class CustomObjectTypeFieldDeleteView(generic.ObjectDeleteView):
238+
class CustomObjectTypeFieldDeleteView(CustomObjectModelMixin, generic.ObjectDeleteView):
230239
template_name = "netbox_custom_objects/field_delete.html"
231240
queryset = CustomObjectTypeField.objects.all()
232241

@@ -243,7 +252,7 @@ def get(self, request, *args, **kwargs):
243252
obj = self.get_object(**kwargs)
244253
form = ConfirmationForm(initial=request.GET)
245254

246-
model = obj.custom_object_type.get_model()
255+
model = self.get_model(obj.custom_object_type)
247256
kwargs = {
248257
f"{obj.name}__isnull": False,
249258
}
@@ -280,7 +289,7 @@ def get(self, request, *args, **kwargs):
280289

281290
def _get_dependent_objects(self, obj):
282291
dependent_objects = super()._get_dependent_objects(obj)
283-
model = obj.custom_object_type.get_model()
292+
model = self.get_model(obj.custom_object_type)
284293
kwargs = {
285294
f"{obj.name}__isnull": False,
286295
}
@@ -314,7 +323,7 @@ class CustomObjectTypeBulkDeleteView(generic.BulkDeleteView):
314323
#
315324

316325

317-
class CustomObjectListView(CustomObjectTableMixin, generic.ObjectListView):
326+
class CustomObjectListView(CustomObjectTableMixin, CustomObjectModelMixin, generic.ObjectListView):
318327
queryset = None
319328
custom_object_type = None
320329
template_name = "netbox_custom_objects/custom_object_list.html"
@@ -332,7 +341,7 @@ def get_queryset(self, request):
332341
self.custom_object_type = get_object_or_404(
333342
CustomObjectType, slug=custom_object_type
334343
)
335-
model = self.custom_object_type.get_model()
344+
model = self.get_model(self.custom_object_type)
336345
return model.objects.all()
337346

338347
def get_filterset(self):
@@ -370,23 +379,23 @@ def get_extra_context(self, request):
370379

371380

372381
@register_model_view(CustomObject)
373-
class CustomObjectView(generic.ObjectView):
382+
class CustomObjectView(CustomObjectModelMixin, generic.ObjectView):
374383
template_name = "netbox_custom_objects/customobject.html"
375384

376385
def get_queryset(self, request):
377386
custom_object_type = self.kwargs.get("custom_object_type", None)
378387
object_type = get_object_or_404(
379388
CustomObjectType, slug=custom_object_type
380389
)
381-
model = object_type.get_model()
390+
model = self.get_model(object_type)
382391
return model.objects.all()
383392

384393
def get_object(self, **kwargs):
385394
custom_object_type = self.kwargs.get("custom_object_type", None)
386395
object_type = get_object_or_404(
387396
CustomObjectType, slug=custom_object_type
388397
)
389-
model = object_type.get_model()
398+
model = self.get_model(object_type)
390399
# Filter out custom_object_type from kwargs for the object lookup
391400
lookup_kwargs = {
392401
k: v for k, v in self.kwargs.items() if k != "custom_object_type"
@@ -413,7 +422,7 @@ def get_extra_context(self, request, instance):
413422

414423

415424
@register_model_view(CustomObject, "edit")
416-
class CustomObjectEditView(generic.ObjectEditView):
425+
class CustomObjectEditView(CustomObjectModelMixin, generic.ObjectEditView):
417426
template_name = "netbox_custom_objects/customobject_edit.html"
418427
form = None
419428
queryset = None
@@ -436,7 +445,8 @@ def get_object(self, **kwargs):
436445
object_type = get_object_or_404(
437446
CustomObjectType, slug=custom_object_type
438447
)
439-
model = object_type.get_model()
448+
model = self.get_model(object_type)
449+
440450
if not self.kwargs.get("pk", None):
441451
# We're creating a new object
442452
return model()
@@ -573,7 +583,7 @@ def custom_save(self, commit=True):
573583

574584

575585
@register_model_view(CustomObject, "delete")
576-
class CustomObjectDeleteView(generic.ObjectDeleteView):
586+
class CustomObjectDeleteView(CustomObjectModelMixin, generic.ObjectDeleteView):
577587
queryset = None
578588
object = None
579589
default_return_url = "plugins:netbox_custom_objects:customobject_list"
@@ -593,7 +603,7 @@ def get_object(self, **kwargs):
593603
object_type = get_object_or_404(
594604
CustomObjectType, slug=custom_object_type
595605
)
596-
model = object_type.get_model()
606+
model = self.get_model(object_type)
597607
return get_object_or_404(model.objects.all(), **self.kwargs)
598608

599609
def get_return_url(self, request, obj=None):
@@ -614,7 +624,7 @@ def get_return_url(self, request, obj=None):
614624

615625

616626
@register_model_view(CustomObject, "bulk_edit", path="edit", detail=False)
617-
class CustomObjectBulkEditView(CustomObjectTableMixin, generic.BulkEditView):
627+
class CustomObjectBulkEditView(CustomObjectTableMixin, CustomObjectModelMixin, generic.BulkEditView):
618628
queryset = None
619629
custom_object_type = None
620630
table = None
@@ -633,7 +643,7 @@ def get_queryset(self, request):
633643
self.custom_object_type = CustomObjectType.objects.get(
634644
slug=custom_object_type
635645
)
636-
model = self.custom_object_type.get_model()
646+
model = self.get_model(self.custom_object_type)
637647
return model.objects.all()
638648

639649
def get_form(self, queryset):
@@ -673,7 +683,7 @@ def get_form(self, queryset):
673683

674684

675685
@register_model_view(CustomObject, "bulk_delete", path="delete", detail=False)
676-
class CustomObjectBulkDeleteView(CustomObjectTableMixin, generic.BulkDeleteView):
686+
class CustomObjectBulkDeleteView(CustomObjectTableMixin, CustomObjectModelMixin, generic.BulkDeleteView):
677687
queryset = None
678688
custom_object_type = None
679689
table = None
@@ -691,12 +701,12 @@ def get_queryset(self, request):
691701
self.custom_object_type = CustomObjectType.objects.get(
692702
slug=custom_object_type
693703
)
694-
model = self.custom_object_type.get_model()
704+
model = self.get_model(self.custom_object_type)
695705
return model.objects.all()
696706

697707

698708
@register_model_view(CustomObject, "bulk_import", path="import", detail=False)
699-
class CustomObjectBulkImportView(generic.BulkImportView):
709+
class CustomObjectBulkImportView(CustomObjectModelMixin, generic.BulkImportView):
700710
queryset = None
701711
model_form = None
702712

@@ -720,7 +730,7 @@ def get_queryset(self, request):
720730
self.custom_object_type = CustomObjectType.objects.get(
721731
name__iexact=custom_object_type
722732
)
723-
model = self.custom_object_type.get_model()
733+
model = self.get_model(self.custom_object_type)
724734
return model.objects.all()
725735

726736
def get_model_form(self, queryset):
@@ -756,7 +766,7 @@ def get_model_form(self, queryset):
756766
return form
757767

758768

759-
class CustomObjectJournalView(ConditionalLoginRequiredMixin, View):
769+
class CustomObjectJournalView(ConditionalLoginRequiredMixin, CustomObjectModelMixin, View):
760770
"""
761771
Custom journal view for CustomObject instances.
762772
Shows all journal entries for a custom object.
@@ -772,7 +782,7 @@ def get(self, request, custom_object_type, **kwargs):
772782
object_type = get_object_or_404(
773783
CustomObjectType, slug=custom_object_type
774784
)
775-
model = object_type.get_model()
785+
model = self.get_model(object_type)
776786

777787
# Get the specific object
778788
lookup_kwargs = {k: v for k, v in kwargs.items() if k != "custom_object_type"}
@@ -828,7 +838,7 @@ def get(self, request, custom_object_type, **kwargs):
828838
)
829839

830840

831-
class CustomObjectChangeLogView(ConditionalLoginRequiredMixin, View):
841+
class CustomObjectChangeLogView(ConditionalLoginRequiredMixin, CustomObjectModelMixin, View):
832842
"""
833843
Custom changelog view for CustomObject instances.
834844
Shows all changes made to a custom object.
@@ -844,7 +854,7 @@ def get(self, request, custom_object_type, **kwargs):
844854
object_type = get_object_or_404(
845855
CustomObjectType, slug=custom_object_type
846856
)
847-
model = object_type.get_model()
857+
model = self.get_model(object_type)
848858

849859
# Get the specific object
850860
lookup_kwargs = {k: v for k, v in kwargs.items() if k != "custom_object_type"}

0 commit comments

Comments
 (0)