Merge pull request #46 from chrismeyersfsu/fix-child_parent_status_propogation

did not previously translate project update parent instance correctly
This commit is contained in:
Chris Meyers
2015-01-28 10:17:05 -05:00
2 changed files with 8 additions and 5 deletions

View File

@@ -364,7 +364,9 @@ class ProjectUpdate(UnifiedJob, ProjectOptions):
parent_instance = self._get_parent_instance() parent_instance = self._get_parent_instance()
if parent_instance: if parent_instance:
update_fields = self._update_parent_instance_no_save(parent_instance) update_fields = self._update_parent_instance_no_save(parent_instance)
if not self.failed and parent_instance.scm_delete_on_next_update: if self.status in ('successful', 'failed', 'error', 'canceled'):
parent_instance.scm_delete_on_next_update = False if not self.failed and parent_instance.scm_delete_on_next_update:
update_fields.append('scm_delete_on_next_update') parent_instance.scm_delete_on_next_update = False
parent_instance.save(update_fields=update_fields) if 'scm_delete_on_next_update' not in update_fields:
update_fields.append('scm_delete_on_next_update')
parent_instance.save(update_fields=update_fields)

View File

@@ -480,7 +480,8 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
def _update_parent_instance_no_save(self, parent_instance, update_fields=[]): def _update_parent_instance_no_save(self, parent_instance, update_fields=[]):
def parent_instance_set(key, val): def parent_instance_set(key, val):
setattr(parent_instance, key, val) setattr(parent_instance, key, val)
update_fields.append(key) if key not in update_fields:
update_fields.append(key)
if parent_instance: if parent_instance:
if self.status in ('pending', 'waiting', 'running'): if self.status in ('pending', 'waiting', 'running'):