From 8226bd405ce4f25319dc65456030a6dc4b7c2418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Kervella?= Date: Wed, 11 Apr 2018 23:39:22 +0000 Subject: [PATCH] Fix for an unstable database state It happened that one of the switch port had a related interface while the related interface did not have the port.related_port attribute (which should not happened but happened) so the code was not able to fix it. Now it can be fixed. I did not managed to get it work if you want to remove the existing relation (setting related to None) but now, at least you can re-add the existing relation (add correct related where it is missing) and find back a stable state and restart normally from here. --- topologie/models.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/topologie/models.py b/topologie/models.py index 2a42957b..40236dba 100644 --- a/topologie/models.py +++ b/topologie/models.py @@ -371,8 +371,9 @@ class Port(AclMixin, RevMixin, models.Model): mutuellement exclusifs") if self.related == self: raise ValidationError("On ne peut relier un port à lui même") - if self.related and not self.related.related: - if self.related.machine_interface or self.related.room: + if self.related: + if self.related.machine_interface or self.related.room or\ + (self.related.related and self.related.related != self): raise ValidationError("Le port relié est déjà occupé, veuillez\ le libérer avant de créer une relation") else: