Переписал уведомления: toast/confirm вместо alert; объединил профиль+инвентарь; починил ленту активности
This commit is contained in:
+41
-61
@@ -348,7 +348,7 @@ async def profile_page(
|
||||
|
||||
inventory_items = db.query(InventoryItem).filter(
|
||||
InventoryItem.user_id == user.id
|
||||
).all()
|
||||
).order_by(desc(InventoryItem.obtained_at)).all()
|
||||
|
||||
valuable_items = sorted(
|
||||
inventory_items,
|
||||
@@ -356,15 +356,52 @@ async def profile_page(
|
||||
reverse=True
|
||||
)[:12]
|
||||
|
||||
rarities = set()
|
||||
types = set()
|
||||
enriched_items = []
|
||||
for item in inventory_items:
|
||||
item_data = None
|
||||
for idx, it in enumerate(ALL_ITEMS):
|
||||
if it.get("_id", idx) == item.item_id:
|
||||
item_data = it
|
||||
break
|
||||
if not item_data:
|
||||
item_data = get_item(item.item_id)
|
||||
image_url = ""
|
||||
price_rub = 100
|
||||
if item_data:
|
||||
image_url = item_data.get("image_url", "")
|
||||
price_rub = item_data.get("price_rub", 100)
|
||||
enriched_items.append({
|
||||
"id": item.id,
|
||||
"item_id": item.item_id,
|
||||
"name": item.market_hash_name,
|
||||
"rarity": item.rarity,
|
||||
"wear": item.wear,
|
||||
"float": item.float_value,
|
||||
"type": item.type,
|
||||
"image_url": image_url,
|
||||
"price_rub": price_rub
|
||||
})
|
||||
if item.rarity:
|
||||
rarities.add(item.rarity)
|
||||
if item.type:
|
||||
types.add(item.type)
|
||||
|
||||
return templates.TemplateResponse("profile.html", {
|
||||
"request": request,
|
||||
"user": user,
|
||||
"total_items": total_items,
|
||||
"cases_opened": cases_opened,
|
||||
"contracts_completed": contracts_completed,
|
||||
"balance": user.balance,
|
||||
"recent_openings": recent_openings,
|
||||
"recent_contracts": recent_contracts,
|
||||
"valuable_items": valuable_items,
|
||||
"inventory_items": enriched_items,
|
||||
"rarities": sorted(rarities),
|
||||
"types": sorted(types),
|
||||
"rarity_order": RARITY_ORDER,
|
||||
"is_public": False,
|
||||
"profile_user": user
|
||||
})
|
||||
@@ -564,66 +601,9 @@ async def contracts_page(
|
||||
"knife_count": len(knife_items)
|
||||
})
|
||||
|
||||
@app.get("/inventory", response_class=HTMLResponse)
|
||||
async def inventory_page(
|
||||
request: Request,
|
||||
db: Session = Depends(get_db),
|
||||
user: User = Depends(get_current_user)
|
||||
):
|
||||
inventory_items = db.query(InventoryItem).filter(
|
||||
InventoryItem.user_id == user.id
|
||||
).order_by(desc(InventoryItem.obtained_at)).all()
|
||||
|
||||
rarities = set()
|
||||
types = set()
|
||||
|
||||
enriched_items = []
|
||||
for item in inventory_items:
|
||||
# Ищем предмет по item_id
|
||||
item_data = None
|
||||
for idx, it in enumerate(ALL_ITEMS):
|
||||
if it.get("_id", idx) == item.item_id:
|
||||
item_data = it
|
||||
break
|
||||
|
||||
# Если не нашли, пробуем get_item
|
||||
if not item_data:
|
||||
item_data = get_item(item.item_id)
|
||||
|
||||
image_url = ""
|
||||
price_rub = 100
|
||||
|
||||
if item_data:
|
||||
image_url = item_data.get("image_url", "")
|
||||
price_rub = item_data.get("price_rub", 100)
|
||||
|
||||
enriched_items.append({
|
||||
"id": item.id,
|
||||
"item_id": item.item_id,
|
||||
"name": item.market_hash_name,
|
||||
"rarity": item.rarity,
|
||||
"wear": item.wear,
|
||||
"float": item.float_value,
|
||||
"type": item.type,
|
||||
"obtained_from": item.obtained_from,
|
||||
"obtained_at": item.obtained_at,
|
||||
"image_url": image_url,
|
||||
"price_rub": price_rub
|
||||
})
|
||||
|
||||
if item.rarity:
|
||||
rarities.add(item.rarity)
|
||||
if item.type:
|
||||
types.add(item.type)
|
||||
|
||||
return templates.TemplateResponse("inventory.html", {
|
||||
"request": request,
|
||||
"user": user,
|
||||
"inventory_items": enriched_items,
|
||||
"rarities": sorted(rarities),
|
||||
"types": sorted(types),
|
||||
"rarity_order": RARITY_ORDER
|
||||
})
|
||||
@app.get("/inventory")
|
||||
async def inventory_redirect():
|
||||
return RedirectResponse(url="/profile")
|
||||
|
||||
# ─── API эндпоинты для веб-интерфейса ─────────────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user