Skip to content

Commit b4849a0

Browse files
committed
Don't update queue positions if packaged workbasket is no longer a queue member
1 parent a01b1d0 commit b4849a0

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

publishing/models/packaged_workbasket.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ def promote_to_top_position(self) -> "PackagedWorkBasket":
669669
"""Promote the instance to the top position of the package processing
670670
queue so that it occupies position 1."""
671671

672-
if self.position == 1:
672+
if self.position <= 1:
673673
return self
674674

675675
position = self.position
@@ -680,6 +680,7 @@ def promote_to_top_position(self) -> "PackagedWorkBasket":
680680

681681
self.position = 1
682682
self.save()
683+
self.refresh_from_db()
683684

684685
return self
685686

@@ -689,7 +690,7 @@ def promote_position(self) -> "PackagedWorkBasket":
689690
"""Promote the instance by one position up the package processing
690691
queue."""
691692

692-
if self.position == 1:
693+
if self.position <= 1:
693694
return
694695

695696
obj_to_swap = PackagedWorkBasket.objects.select_for_update(nowait=True).get(
@@ -711,7 +712,7 @@ def demote_position(self) -> "PackagedWorkBasket":
711712
"""Demote the instance by one position down the package processing
712713
queue."""
713714

714-
if self.position == PackagedWorkBasket.objects.max_position():
715+
if self.position in {0, PackagedWorkBasket.objects.max_position()}:
715716
return
716717

717718
obj_to_swap = PackagedWorkBasket.objects.select_for_update(nowait=True).get(

0 commit comments

Comments
 (0)