Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _transitions_before(iteration):
return Transition.objects.filter(workflow=self.workflow, workflow_object=self.workflow_object, iteration__lte=iteration)
)
transitions = Transition.objects.filter(qs)
iteration = transition.iteration + 1
while transitions:
uncancelled_transitions_qs = uncancelled_transitions_qs | qs
qs = Q(
workflow=self.workflow,
object_id=self.workflow_object.pk,
iteration=iteration,
source_state__pk__in=transitions.values_list("destination_state__pk", flat=True),
status=PENDING
)
transitions = Transition.objects.filter(qs)
iteration += 1
actual_cancelled_transitions = Transition.objects.filter(cancelled_transitions_qs & ~uncancelled_transitions_qs)
actual_cancelled_transitions.update(status=CANCELLED)
TransitionApproval.objects.filter(transition__in=actual_cancelled_transitions).update(status=CANCELLED)
def _get_transition_images(self, source_states):
meta_max_iteration = Transition.objects.filter(
workflow=self.workflow,
workflow_object=self.workflow_object,
source_state__pk__in=source_states,
).values_list("meta").annotate(max_iteration=Max("iteration"))
return Transition.objects.filter(
Q(workflow=self.workflow, object_id=self.workflow_object.pk) &
six.moves.reduce(lambda agg, q: q | agg, [Q(meta__id=meta_id, iteration=max_iteration) for meta_id, max_iteration in meta_max_iteration], Q(pk=-1))
)
iteration=transition.iteration,
source_state=transition.source_state,
destination_state=transition.destination_state
)
transitions = Transition.objects.filter(qs)
iteration = transition.iteration + 1
while transitions:
uncancelled_transitions_qs = uncancelled_transitions_qs | qs
qs = Q(
workflow=self.workflow,
object_id=self.workflow_object.pk,
iteration=iteration,
source_state__pk__in=transitions.values_list("destination_state__pk", flat=True),
status=PENDING
)
transitions = Transition.objects.filter(qs)
iteration += 1
actual_cancelled_transitions = Transition.objects.filter(cancelled_transitions_qs & ~uncancelled_transitions_qs)
actual_cancelled_transitions.update(status=CANCELLED)
TransitionApproval.objects.filter(transition__in=actual_cancelled_transitions).update(status=CANCELLED)
def _check_if_it_cycled(self, done_transition):
qs = Transition.objects.filter(
workflow_object=self.workflow_object,
workflow=self.class_workflow.workflow,
source_state=done_transition.destination_state
)
return qs.filter(status=DONE).count() > 0 and qs.filter(status=PENDING).count() == 0
def _get_transition_images(self, source_states):
meta_max_iteration = Transition.objects.filter(
workflow=self.workflow,
workflow_object=self.workflow_object,
source_state__pk__in=source_states,
).values_list("meta").annotate(max_iteration=Max("iteration"))
return Transition.objects.filter(
Q(workflow=self.workflow, object_id=self.workflow_object.pk) &
six.moves.reduce(lambda agg, q: q | agg, [Q(meta__id=meta_id, iteration=max_iteration) for meta_id, max_iteration in meta_max_iteration], Q(pk=-1))
)
def cancel_impossible_future(self, approved_approval):
transition = approved_approval.transition
qs = Q(
workflow=self.workflow,
object_id=self.workflow_object.pk,
iteration=transition.iteration,
source_state=transition.source_state,
) & ~Q(destination_state=transition.destination_state)
transitions = Transition.objects.filter(qs)
iteration = transition.iteration + 1
cancelled_transitions_qs = Q(pk=-1)
while transitions:
cancelled_transitions_qs = cancelled_transitions_qs | qs
qs = Q(
workflow=self.workflow,
object_id=self.workflow_object.pk,
iteration=iteration,
source_state__pk__in=transitions.values_list("destination_state__pk", flat=True)
)
transitions = Transition.objects.filter(qs)
iteration += 1
uncancelled_transitions_qs = Q(pk=-1)
qs = Q(
workflow=self.workflow,