fix: changing status on deal complete
This commit is contained in:
@@ -1164,6 +1164,16 @@ class CardsService(BaseService):
|
|||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
|
async def _get_final_status_for_card(self, card_id: int) -> Optional[CardStatus]:
|
||||||
|
stmt = (
|
||||||
|
select(CardStatus)
|
||||||
|
.join(Board)
|
||||||
|
.join(Card)
|
||||||
|
.where(Card.id == card_id, CardStatus.is_finishing == True)
|
||||||
|
)
|
||||||
|
card_status: Optional[CardStatus] = (await self.session.scalars(stmt)).one_or_none()
|
||||||
|
return card_status
|
||||||
|
|
||||||
async def complete(self, user: User, request: CardCompleteRequest) -> CardCompleteResponse:
|
async def complete(self, user: User, request: CardCompleteRequest) -> CardCompleteResponse:
|
||||||
try:
|
try:
|
||||||
# check for admin
|
# check for admin
|
||||||
@@ -1178,6 +1188,11 @@ class CardsService(BaseService):
|
|||||||
await card_group.CardGroupService(self.session).complete_group(card.group.id)
|
await card_group.CardGroupService(self.session).complete_group(card.group.id)
|
||||||
else:
|
else:
|
||||||
card.is_completed = True
|
card.is_completed = True
|
||||||
|
|
||||||
|
final_status: Optional[CardStatus] = await self._get_final_status_for_card(card.id)
|
||||||
|
if final_status:
|
||||||
|
await self.change_status(card, final_status.id, user)
|
||||||
|
|
||||||
await self.session.commit()
|
await self.session.commit()
|
||||||
|
|
||||||
return CardCompleteResponse(ok=True, message="Успешно завершена")
|
return CardCompleteResponse(ok=True, message="Успешно завершена")
|
||||||
|
|||||||
Reference in New Issue
Block a user