From defed42cec8b9856a750a3b82aa6c32b040a2277 Mon Sep 17 00:00:00 2001 From: Igor Mamaev Date: Sun, 14 Dec 2025 03:44:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82?= =?UTF-8?q?=D1=80=20=D0=B8=D0=BD=D0=B2=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/player/inventory.py | 4 ++-- handlers/player/other_games_character.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/handlers/player/inventory.py b/handlers/player/inventory.py index c973f79..83b23fc 100644 --- a/handlers/player/inventory.py +++ b/handlers/player/inventory.py @@ -17,8 +17,8 @@ class InventoryRequest(BaseModel): target_type: TargetType - target_id: int - campaign_id: int | None = None + target_id: int | UUID + campaign_id: int | UUID | None = None @classmethod @field_validator("target_type", mode="before") diff --git a/handlers/player/other_games_character.py b/handlers/player/other_games_character.py index 6aa90db..243b98a 100644 --- a/handlers/player/other_games_character.py +++ b/handlers/player/other_games_character.py @@ -9,6 +9,7 @@ from db.models import Campaign, Character, Participation, User from services.character_data import character_preview_getter +from states.inventory_view import InventoryView, TargetType from states.other_games_campaign import OtherGamesCampaign from states.other_games_character import OtherGamesCharacter @@ -37,11 +38,25 @@ async def on_campaign_info(c: CallbackQuery, b: Button, m: DialogManager): ) +async def on_inventory(c: CallbackQuery, b: Button, m: DialogManager): + character = await Character.get(id=m.start_data["character_id"]).prefetch_related("campaign") + campaign: Campaign = character.campaign + await m.start( + InventoryView.view, + data={ + "target_type": TargetType.CHARACTER, + "target_id": m.start_data["character_id"], + "campaign_id": campaign.id, + }, + ) + + router.include_router( Dialog( Window( DynamicMedia("avatar", when="avatar"), Format("{character_data_preview}", when="character_data_preview"), + Button(Const("Посмотреть инвентарь"), id="inventory", on_click=on_inventory), Button(Const("Информация о кампании"), id="campaign_info", on_click=on_campaign_info), Cancel(Const("Назад")), getter=character_data_getter,