Misc cleanup

This commit is contained in:
Jeremy Stretch 2024-08-01 10:34:30 -04:00
parent ce69379f34
commit 6bacc13fe0
3 changed files with 12 additions and 23 deletions

View File

@ -72,7 +72,6 @@ class ModuleCommonForm(forms.Form):
def _get_module_bay_tree(self, module_bay):
module_bays = []
all_module_bays = module.device.modulebays.all().select_related('module')
while module_bay:
module_bays.append(module_bay)
if module_bay.module:

View File

@ -1116,19 +1116,14 @@ class ModuleBay(ModularComponentModel, TrackingModelMixin):
def clean(self):
super().clean()
# Check for recursion of moduleX -> module bay -> modulex
# Check for recursion
if module := self.module:
all_module_bays = self.device.modulebays.all().select_related('module')
found = []
tree = []
while module:
if module.id in found:
raise ValidationError(_("Cannot have a recursion in Module Bay -> Module relationships."))
found.append(module.id)
if module.module_bay:
module = module.module_bay.module
else:
module = None
if module.pk in tree:
raise ValidationError(_("A module bay cannot belong to a module installed within it."))
tree.append(module.pk)
module = module.module_bay.module if module.module_bay else None
class DeviceBay(ComponentModel, TrackingModelMixin):

View File

@ -1203,19 +1203,14 @@ class Module(PrimaryModel, ConfigContextModel):
)
)
# Check for recursion of moduleX -> module bay -> modulex
# Check for recursion
module = self
all_module_bays = self.device.modulebays.all().select_related('module')
found = []
tree = []
while module:
if module.id in found:
raise ValidationError(_("Cannot have a recursion in Module Bay -> Module relationships."))
found.append(module.id)
if module.module_bay:
module = module.module_bay.module
else:
module = None
if module.pk in tree:
raise ValidationError(_("A module cannot be installed in a bay which depends on itself."))
tree.append(module.pk)
module = module.module_bay.module if module.module_bay else None
def save(self, *args, **kwargs):
is_new = self.pk is None