feat: added tags for cards, aligned status headers

This commit is contained in:
2025-03-09 19:30:52 +04:00
parent 487174c4ff
commit 6030591e3c
17 changed files with 375 additions and 23 deletions

View File

@@ -14,6 +14,7 @@ from schemas.client import ClientDetailsSchema
from services import card_group
from services.auth import AuthService
from services.base import BaseService
from services.card_tag import CardTagService
from services.client import ClientService
from services.service import ServiceService
from services.shipping_warehouse import ShippingWarehouseService
@@ -240,6 +241,7 @@ class CardsService(BaseService):
shipment_warehouse_name=shipment_warehouse_name,
total_products=products_count,
bill_request=card.bill_request,
tags=card.tags,
)
)
return CardSummaryResponse(summaries=summaries)
@@ -347,7 +349,8 @@ class CardsService(BaseService):
select(Card)
.options(
selectinload(Card.group)
.selectinload(CardGroup.cards)
.selectinload(CardGroup.cards),
joinedload(Card.board),
)
.where(Card.id == request.card_id)
)
@@ -374,6 +377,9 @@ class CardsService(BaseService):
else:
card.manager = None
tag_service = CardTagService(self.session)
await tag_service.apply_tags(card, request.data.tags)
card_attrs_handler = CardAttributesCommandHandler(self.session)
await card_attrs_handler.set_attributes(card, request.data.attributes)
@@ -388,7 +394,7 @@ class CardsService(BaseService):
):
card: Optional[Card] = await self.session.get(Card, request.card_id)
if not card:
raise HTTPException(status_code=404, detail='Карточка не найдена')
return ProductsAndServicesGeneralInfoRequest(ok=False, message='Карточка не найдена')
# Updating shipping warehouse
shipping_warehouse_service = ShippingWarehouseService(self.session)
@@ -409,7 +415,7 @@ class CardsService(BaseService):
async def update_card_manager(self, request: UpdateCardManagerRequest) -> UpdateCardManagerResponse:
card: Optional[Card] = await self.session.get(Card, request.card_id)
if not card:
raise HTTPException(status_code=404, detail='Карточка не найдена')
return UpdateCardManagerResponse(ok=False, message='Карточка не найдена')
card.manager_id = request.manager_id
await self.session.commit()
@@ -418,7 +424,7 @@ class CardsService(BaseService):
async def update_card_client(self, request: UpdateCardClientRequest) -> UpdateCardClientResponse:
card: Optional[Card] = await self.session.get(Card, request.card_id)
if not card:
raise HTTPException(status_code=404, detail='Карточка не найдена')
return UpdateCardClientResponse(ok=False, message='Карточка не найдена')
card.client_id = request.client_id
await self.session.commit()
@@ -513,8 +519,6 @@ class CardsService(BaseService):
return CardAddKitResponse(ok=False, message=str(e))
def create_guest_url(self, user: User, request: CardCreateGuestUrlRequest) -> CardCreateGuestUrlResponse:
# if not user.is_admin:
# return CardCreateGuestUrlResponse(ok=False, message='Создать ссылку может только администратор', url="")
access_token = AuthService(self.session).create_deal_guest_token(request.card_id)
url = f"deals/{request.card_id}?accessToken={access_token}"
return CardCreateGuestUrlResponse(ok=True, message='Ссылка успешно создана!', url=url)