diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py index 7bc34ec5505292df9bbf092f6a5cef8b4ec47f03..5e7ac1e262f1b2e3f208f503d04e4b94c34b0714 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py @@ -301,6 +301,22 @@ class SchedulingConstraintsTemplate(Template): class TaskTemplate(Template): type = ForeignKey('TaskType', null=False, on_delete=PROTECT) + @property + def _need_to_auto_increment_version_number(self) -> bool: + '''override, because for TaskTemplates we are interested in the template being used by other instances except for TaskConnectors''' + if self.pk is None: + # this is a new instance, so we need a new version number + return True + + for rel_obj in self._meta.related_objects: + if isinstance(rel_obj, TaskConnectorType): + # skip TaskConnectorType, because each TaskTemplate is being used by TaskConnectorType which is not very interesting. + # we're only interested in usage in mainly TaskDrafts + continue + if rel_obj.related_model.objects.filter(**{rel_obj.field.attname: self}).count() > 0: + return True + return False + def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self._need_to_auto_increment_version_number and self.pk is not None: # this is an updated version of this template