stop inv button

This commit is contained in:
Kseninia Mikhaylova 2024-07-19 12:38:29 +03:00
parent 449c023dff
commit e01a416c76
1 changed files with 61 additions and 42 deletions

View File

@ -95,6 +95,7 @@ class TgBot:
self.inv, self.inv,
) )
) )
TgBot.app.add_handler(CallbackQueryHandler(self.stop_inv, "stop_inv"))
TgBot.app.add_handler(CallbackQueryHandler(self.get_inv, r"get_inv@(.*?)")) TgBot.app.add_handler(CallbackQueryHandler(self.get_inv, r"get_inv@(.*?)"))
TgBot.app.add_handler(CallbackQueryHandler(self.add_tmc, r"add_tmc@(.*?)")) TgBot.app.add_handler(CallbackQueryHandler(self.add_tmc, r"add_tmc@(.*?)"))
TgBot.app.add_handler( TgBot.app.add_handler(
@ -151,13 +152,26 @@ class TgBot:
return f"Инвентаризация `{inv.name}` от `{inv.created_at.strftime('%x')}`" return f"Инвентаризация `{inv.name}` от `{inv.created_at.strftime('%x')}`"
def format_tmc_count(self, tmc_count): def format_tmc_count(self, tmc_count):
return f"Количество ТМЦ {tmc_count}\n" return f"Количество ТМЦ {tmc_count}"
def format_tmc_name(self, tmc): def format_tmc_name(self, tmc):
return f"Название ТМЦ `{tmc.name}`\n" return f"Название ТМЦ `{tmc.name}`"
def format_element(self, field): def format_element(self, field):
return f"Элемент `{field.name}`\n" return f"Элемент `{field.name}`"
def stop_inv_button(self):
return [
InlineKeyboardButton(
"❌❌❌ Остановить инвентаризацию", callback_data="stop_inv"
)
]
async def stop_inv(self, update: Update, context: CallbackContext):
query = update.callback_query
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
await query.answer()
context.chat_data.clear()
async def get_inv(self, update: Update, context: CallbackContext): async def get_inv(self, update: Update, context: CallbackContext):
query = update.callback_query query = update.callback_query
@ -244,19 +258,14 @@ class TgBot:
context.chat_data["inv"] = inv.id context.chat_data["inv"] = inv.id
context.chat_data["step"] = "add_tmc" context.chat_data["step"] = "add_tmc"
await update.effective_message.reply_markdown_v2( text = "\n".join(
"\n".join(
[ [
self.format_inv(inv), self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()), self.format_tmc_count(await inv.tmc.acount()),
"Выберите, какую ТМЦ вы осматриваете:", "Выберите, какую ТМЦ вы осматриваете:",
] ]
), )
reply_parameters=ReplyParameters( keyboard = [
message_id=update.effective_message.message_id
),
reply_markup=InlineKeyboardMarkup(
[
[ [
InlineKeyboardButton( InlineKeyboardButton(
i["name"], i["name"],
@ -266,7 +275,14 @@ class TgBot:
] ]
for arr in keys for arr in keys
] ]
keyboard.append(self.stop_inv_button())
await update.effective_message.reply_markdown_v2(
text,
reply_parameters=ReplyParameters(
message_id=update.effective_message.message_id
), ),
reply_markup=InlineKeyboardMarkup(keyboard),
) )
elif current_step == "add_tmc": elif current_step == "add_tmc":
@ -283,20 +299,15 @@ class TgBot:
context.chat_data["tmc"] = tmc_element.id context.chat_data["tmc"] = tmc_element.id
context.chat_data["step"] = "add_element" context.chat_data["step"] = "add_element"
await update.effective_message.reply_markdown_v2( text = "\n".join(
"\n".join(
[ [
self.format_inv(inv), self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()), self.format_tmc_count(await inv.tmc.acount()),
self.format_tmc_name(tmc), self.format_tmc_name(tmc),
f"Что вы загружаете?", f"Что вы загружаете?",
] ]
), )
reply_parameters=ReplyParameters( keyboard = [
message_id=update.effective_message.message_id
),
reply_markup=InlineKeyboardMarkup(
[
[ [
InlineKeyboardButton( InlineKeyboardButton(
i["name"], i["name"],
@ -306,7 +317,14 @@ class TgBot:
] ]
for arr in keys for arr in keys
] ]
keyboard.append(self.stop_inv_button())
await update.effective_message.reply_markdown_v2(
text,
reply_parameters=ReplyParameters(
message_id=update.effective_message.message_id
), ),
reply_markup=InlineKeyboardMarkup(keyboard),
) )
elif current_step == "add_element": elif current_step == "add_element":
@ -316,6 +334,7 @@ class TgBot:
field = await BaseCustomField.objects.aget(id=element.field_id) field = await BaseCustomField.objects.aget(id=element.field_id)
context.chat_data["step"] = "add_element_data" context.chat_data["step"] = "add_element_data"
await update.effective_message.reply_markdown_v2( await update.effective_message.reply_markdown_v2(
"\n".join( "\n".join(
[ [