You've already forked Travel-Agent
feat: Added travel detail, added proccessing message when changing/setting user location, improvements in messages text
This commit is contained in:
+11
-2
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user