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): def _get_module_bay_tree(self, module_bay):
module_bays = [] module_bays = []
all_module_bays = module.device.modulebays.all().select_related('module')
while module_bay: while module_bay:
module_bays.append(module_bay) module_bays.append(module_bay)
if module_bay.module: if module_bay.module:

View File

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