fix: media group photos saving, add photos to user notifications, admin info in transaction details, remove deep link fallback

- Fix media group collection: use module-level dicts instead of dialog_data
  to avoid race conditions between concurrent handler calls
- Add photo/media group sending in user notifications (add/remove hours)
- Add admin username with emoji to all transaction detail windows
- Add emoji prefixes to detail content fields
- Support multiple photos via JSON array in photo_file_id column
- Change photo_file_id column from String(512) to Text
- Add get_photo_file_ids() helper with backward compat for single file_id
- Add 'All photos' button for media groups in detail views
- Remove /start photo_ deep link fallback handler
- Add Alembic migration for column type change
This commit is contained in:
2026-07-15 00:45:58 +03:00
parent 8526440d14
commit 53f30c923b
14 changed files with 997 additions and 110 deletions
@@ -4,6 +4,7 @@ from aiogram.fsm.state import State, StatesGroup
class MainMenuSG(StatesGroup):
main = State()
history = State()
history_detail = State()
top_residents = State()
faq = State()
feedback = State()
@@ -19,6 +20,9 @@ class AdminMenuSG(StatesGroup):
residents_filtered_results = State()
resident_info = State()
resident_history = State()
resident_history_search_input = State()
resident_history_search_results = State()
resident_history_detail = State()
resident_logout_confirm = State()
resident_delete_confirm = State()
resident_rebind_floor = State()
@@ -44,6 +48,7 @@ class AdminMenuSG(StatesGroup):
rooms_list = State()
room_info = State()
room_history = State()
room_history_detail = State()
room_delete_confirm = State()
room_add_hours_select = State()
room_add_hours_custom = State()
@@ -67,6 +72,7 @@ class AdminMenuSG(StatesGroup):
add_admin_select_user = State()
add_admin_confirm = State()
transactions_history = State()
transactions_history_detail = State()
class CreatorMenuSG(StatesGroup):
@@ -76,6 +82,7 @@ class CreatorMenuSG(StatesGroup):
add_admin_select_user = State()
add_admin_confirm = State()
transactions_history = State()
transactions_history_detail = State()
top_residents = State()