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,29 +258,31 @@ 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"
text = "\n".join(
[
self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()),
"Выберите, какую ТМЦ вы осматриваете:",
]
)
keyboard = [
[
InlineKeyboardButton(
i["name"],
callback_data=f'{context.chat_data["step"]}@{i["id"]}',
)
for i in arr
]
for arr in keys
]
keyboard.append(self.stop_inv_button())
await update.effective_message.reply_markdown_v2( await update.effective_message.reply_markdown_v2(
"\n".join( text,
[
self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()),
"Выберите, какую ТМЦ вы осматриваете:",
]
),
reply_parameters=ReplyParameters( reply_parameters=ReplyParameters(
message_id=update.effective_message.message_id message_id=update.effective_message.message_id
), ),
reply_markup=InlineKeyboardMarkup( reply_markup=InlineKeyboardMarkup(keyboard),
[
[
InlineKeyboardButton(
i["name"],
callback_data=f'{context.chat_data["step"]}@{i["id"]}',
)
for i in arr
]
for arr in keys
]
),
) )
elif current_step == "add_tmc": elif current_step == "add_tmc":
@ -283,30 +299,32 @@ 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"
text = "\n".join(
[
self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()),
self.format_tmc_name(tmc),
f"Что вы загружаете?",
]
)
keyboard = [
[
InlineKeyboardButton(
i["name"],
callback_data=f'{context.chat_data["step"]}@{i["id"]}',
)
for i in arr
]
for arr in keys
]
keyboard.append(self.stop_inv_button())
await update.effective_message.reply_markdown_v2( await update.effective_message.reply_markdown_v2(
"\n".join( text,
[
self.format_inv(inv),
self.format_tmc_count(await inv.tmc.acount()),
self.format_tmc_name(tmc),
f"Что вы загружаете?",
]
),
reply_parameters=ReplyParameters( reply_parameters=ReplyParameters(
message_id=update.effective_message.message_id message_id=update.effective_message.message_id
), ),
reply_markup=InlineKeyboardMarkup( reply_markup=InlineKeyboardMarkup(keyboard),
[
[
InlineKeyboardButton(
i["name"],
callback_data=f'{context.chat_data["step"]}@{i["id"]}',
)
for i in arr
]
for arr in keys
]
),
) )
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(
[ [