Add return buttons to amount and category modification flows
This commit is contained in:
parent
5039612504
commit
50a90b2e93
23
bot/main.py
23
bot/main.py
@ -188,7 +188,11 @@ async def cb_save_new(callback: types.CallbackQuery, state: FSMContext):
|
|||||||
|
|
||||||
@dp.callback_query(F.data == "edit_new_amt", RecordState.waiting_confirm)
|
@dp.callback_query(F.data == "edit_new_amt", RecordState.waiting_confirm)
|
||||||
async def cb_edit_amt_before_save(callback: types.CallbackQuery, state: FSMContext):
|
async def cb_edit_amt_before_save(callback: types.CallbackQuery, state: FSMContext):
|
||||||
await callback.message.answer("✍️ 请输入新金额(数字):")
|
# 构建带返回按钮的键盘
|
||||||
|
builder = InlineKeyboardBuilder()
|
||||||
|
builder.button(text="🔙 返回", callback_data="return_to_confirm")
|
||||||
|
|
||||||
|
await callback.message.answer("✍️ 请输入新金额(数字):", reply_markup=builder.as_markup())
|
||||||
await state.set_state(RecordState.editing_new_amt)
|
await state.set_state(RecordState.editing_new_amt)
|
||||||
|
|
||||||
@dp.message(RecordState.editing_new_amt)
|
@dp.message(RecordState.editing_new_amt)
|
||||||
@ -206,6 +210,8 @@ async def cb_choose_cat_before_save(callback: types.CallbackQuery):
|
|||||||
for cat in DEFAULT_CATEGORIES:
|
for cat in DEFAULT_CATEGORIES:
|
||||||
builder.button(text=cat, callback_data=f"set_new_cat_{cat}")
|
builder.button(text=cat, callback_data=f"set_new_cat_{cat}")
|
||||||
builder.adjust(3)
|
builder.adjust(3)
|
||||||
|
# 添加返回按钮
|
||||||
|
builder.row(types.InlineKeyboardButton(text="🔙 返回", callback_data="return_to_confirm"))
|
||||||
await callback.message.edit_text("📂 请选择新类别:", reply_markup=builder.as_markup())
|
await callback.message.edit_text("📂 请选择新类别:", reply_markup=builder.as_markup())
|
||||||
|
|
||||||
@dp.callback_query(F.data.startswith("set_new_cat_"), RecordState.waiting_confirm)
|
@dp.callback_query(F.data.startswith("set_new_cat_"), RecordState.waiting_confirm)
|
||||||
@ -215,6 +221,21 @@ async def cb_set_cat_before_save(callback: types.CallbackQuery, state: FSMContex
|
|||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
await callback.message.edit_text(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
|
await callback.message.edit_text(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
|
||||||
|
|
||||||
|
# 处理从修改类别界面返回确认界面的回调
|
||||||
|
@dp.callback_query(F.data == "return_to_confirm", RecordState.waiting_confirm)
|
||||||
|
async def cb_return_to_confirm_from_cat(callback: types.CallbackQuery, state: FSMContext):
|
||||||
|
"""从修改类别界面返回到确认界面"""
|
||||||
|
data = await state.get_data()
|
||||||
|
await callback.message.edit_text(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
|
||||||
|
|
||||||
|
# 处理从修改金额输入状态返回确认界面的回调
|
||||||
|
@dp.callback_query(F.data == "return_to_confirm", RecordState.editing_new_amt)
|
||||||
|
async def cb_return_to_confirm_from_amt(callback: types.CallbackQuery, state: FSMContext):
|
||||||
|
"""从修改金额输入状态返回到确认界面"""
|
||||||
|
data = await state.get_data()
|
||||||
|
await state.set_state(RecordState.waiting_confirm)
|
||||||
|
await callback.message.answer(render_confirm_text(data), reply_markup=get_confirm_kb(), parse_mode="Markdown")
|
||||||
|
|
||||||
# ================= 4. 账单列表展示 =================
|
# ================= 4. 账单列表展示 =================
|
||||||
|
|
||||||
async def show_record_list(message_or_call, user_id, page=0):
|
async def show_record_list(message_or_call, user_id, page=0):
|
||||||
|
|||||||
Reference in New Issue
Block a user