feat: Added travel detail, added proccessing message when changing/setting user location, improvements in messages text

This commit is contained in:
ITQ
2024-03-23 16:19:15 +03:00
parent 7b28635f09
commit 40ea9689ab
12 changed files with 202 additions and 26 deletions
+11 -2
View File
@@ -93,8 +93,17 @@ async def travels_callback(
await callback.message.answer(
messages.TRAVELS,
reply_markup=travels_keyboard(travels, page, pages),
reply_markup=travels_keyboard(
travels,
page,
pages,
user.telegram_id,
),
)
await callback.message.delete()
try:
await callback.message.delete()
except TelegramBadRequest:
pass
await callback.answer()
+41 -5
View File
@@ -152,11 +152,20 @@ async def profile_change_entered(message: Message, state: FSMContext) -> None:
elif column == "location":
location = value.split(", ")
proccessing_message = await message.answer(messages.PROCCESSING)
if len(location) != 2:
await handle_validation_error(
message,
await delete_message_from_state(
state,
messages.VALIDATION_ERROR,
message.chat.id,
message.bot,
)
await proccessing_message.edit_text(messages.VALIDATION_ERROR)
await message.delete()
error_message = proccessing_message
await state.update_data(
error_message_id=error_message.message_id,
)
return
@@ -169,7 +178,18 @@ async def profile_change_entered(message: Message, state: FSMContext) -> None:
value=country,
)
except AssertionError as e:
await handle_validation_error(message, state, e)
await delete_message_from_state(
state,
message.chat.id,
message.bot,
)
await proccessing_message.edit_text("" + str(e))
await message.delete()
error_message = proccessing_message
await state.update_data(
error_message_id=error_message.message_id,
)
return
@@ -179,7 +199,18 @@ async def profile_change_entered(message: Message, state: FSMContext) -> None:
country=validated_country,
)
except AssertionError as e:
await handle_validation_error(message, state, e)
await delete_message_from_state(
state,
message.chat.id,
message.bot,
)
await proccessing_message.edit_text("" + str(e))
await message.delete()
error_message = proccessing_message
await state.update_data(
error_message_id=error_message.message_id,
)
return
@@ -204,6 +235,11 @@ async def profile_change_entered(message: Message, state: FSMContext) -> None:
"city": state_data["value"][1],
},
)
try:
await proccessing_message.delete()
except TelegramBadRequest:
pass
else:
data = {state_data["column"]: state_data["value"]}
user.update(data)
+30 -1
View File
@@ -9,6 +9,8 @@ from app import messages
from app.config import Config
from app.filters.user import RegisteredCallback
from app.keyboards.builders import travels_keyboard
from app.keyboards.travel import get
from app.models.travel import Travel
from app.models.user import User
@@ -40,5 +42,32 @@ async def travels_callback(callback: CallbackQuery) -> None:
await callback.message.edit_text(
messages.TRAVELS,
reply_markup=travels_keyboard(travels, page, pages),
reply_markup=travels_keyboard(
travels,
page,
pages,
user.telegram_id,
),
)
@router.callback_query(
F.data.startswith("travel_detail"),
RegisteredCallback(),
StateFilter(None),
)
async def travel_detail_callback(callback: CallbackQuery) -> None:
if callback.data is None or not isinstance(callback.message, Message):
return
travel_id = int(callback.data.replace("travel_detail_", ""))
travel = Travel().get_travel_by_id(travel_id)
if not travel:
return
await callback.message.edit_text(
travel.get_travel_text(),
reply_markup=get(travel_id),
)