diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py index 235e2a0434a53fbbfbaad003ce228a00cd013941..95ffff10feebab720b1c52214dee84affb97d880 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py +++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py @@ -207,7 +207,11 @@ class RADatabase: if conditions: query += ' WHERE ' + ' AND '.join(conditions) - result = dict(self._executeQuery(query, qargs, fetch=_FETCH_ALL)) + result = self._executeQuery(query, qargs, fetch=_FETCH_ALL) + if result and len(result) == 1: + result = dict(result[0]) + else: + result = {'max_endtime': datetime.utcnow(), 'min_starttime': datetime.utcnow()} return result @@ -1377,8 +1381,12 @@ class RADatabase: # update each task # depending on the task's claims in conflict/other status + conflicting_claims_for_tasks = self.getResourceClaims(task_ids=task_ids, status=conflistStatusId) + conflicting_claims_for_tasks = dict((c['task_id'],c) for c in conflicting_claims_for_tasks) + for task_id in task_ids: - if self.getResourceClaims(task_ids=task_id, status=conflistStatusId): + conflicting_claims_for_task = conflicting_claims_for_tasks.get(task_id, []) + if conflicting_claims_for_task: # if any claims in conflict -> task: conflict self.updateTask(task_id=task_id, task_status='conflict', commit=False) elif self.getTask(task_id)['status'] == 'conflict':