|
@@ -2772,6 +2772,16 @@ class Cable(ChangeLoggedModel):
|
|
|
self.termination_a_type, self.termination_b_type
|
|
self.termination_a_type, self.termination_b_type
|
|
|
))
|
|
))
|
|
|
|
|
|
|
|
|
|
+ # A component with multiple positions must be connected to a component with an equal number of positions
|
|
|
|
|
+ term_a_positions = getattr(self.termination_a, 'positions', 1)
|
|
|
|
|
+ term_b_positions = getattr(self.termination_b, 'positions', 1)
|
|
|
|
|
+ if term_a_positions != term_b_positions:
|
|
|
|
|
+ raise ValidationError(
|
|
|
|
|
+ "{} has {} positions and {} has {}. Both terminations must have the same number of positions.".format(
|
|
|
|
|
+ self.termination_a, term_a_positions, self.termination_b, term_b_positions
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
# A termination point cannot be connected to itself
|
|
# A termination point cannot be connected to itself
|
|
|
if self.termination_a == self.termination_b:
|
|
if self.termination_a == self.termination_b:
|
|
|
raise ValidationError("Cannot connect {} to itself".format(self.termination_a_type))
|
|
raise ValidationError("Cannot connect {} to itself".format(self.termination_a_type))
|