territory set
This commit is contained in:
parent
92a1b96e37
commit
8691855301
|
@ -111,6 +111,13 @@ class TgBot:
|
|||
TgBot.app.add_handler(CallbackQueryHandler(self.terdeep_back, "terdeep_back"))
|
||||
TgBot.app.add_handler(CallbackQueryHandler(self.terdeep_next, "terdeep_next"))
|
||||
|
||||
TgBot.app.add_handler(
|
||||
MessageHandler(
|
||||
filters.ChatType.PRIVATE & filters.Regex(r"/terdeep_(\d.*)"),
|
||||
self.terdeep_set,
|
||||
)
|
||||
)
|
||||
|
||||
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.add_tmc, r"add_tmc@(.*?)"))
|
||||
|
@ -123,9 +130,9 @@ class TgBot:
|
|||
await update.message.reply_markdown_v2(
|
||||
(
|
||||
"Это бот для проведения инвентаризации\n"
|
||||
"/my \-\- продолжить инвентаризацию\n"
|
||||
"/inv \-\- начать новую инвентаризацию"
|
||||
"/ter \-\- список территорий"
|
||||
"/my \-\- продолжить инвентаризацию\n"
|
||||
"/inv \-\- начать новую инвентаризацию\n"
|
||||
),
|
||||
# reply_markup=ForceReply(selective=True),
|
||||
reply_parameters=ReplyParameters(message_id=update.message.message_id),
|
||||
|
@ -208,6 +215,8 @@ class TgBot:
|
|||
inv_id = query.data.split("@")[-1]
|
||||
inv = await TgItem.objects.aget(id=inv_id)
|
||||
|
||||
|
||||
context.chat_data["terdeep_value"] = inv.location_id
|
||||
context.chat_data["inv"] = inv.id
|
||||
context.chat_data["step"] = "name"
|
||||
|
||||
|
@ -366,27 +375,57 @@ class TgBot:
|
|||
update, context, "terdeep", TerritoryItem.objects.filter(parent_id=parent)
|
||||
)
|
||||
|
||||
async def terdeep_set(self, update: Update, context: CallbackContext):
|
||||
context.chat_data["terdeep_value"] = re.findall(
|
||||
r"/terdeep_(\d.*)", update.effective_message.text
|
||||
)[0]
|
||||
text = (
|
||||
"Вы выбрали территорию инвентаризации\n"
|
||||
"Теперь вы можете начать инвентаризацию /inv"
|
||||
)
|
||||
await update.effective_message.reply_markdown_v2(
|
||||
text=text,
|
||||
reply_parameters=ReplyParameters(
|
||||
message_id=update.effective_message.message_id
|
||||
),
|
||||
)
|
||||
|
||||
async def inv(self, update: Update, context: CallbackContext):
|
||||
user = update.effective_user
|
||||
current_step = context.chat_data.get("step", None)
|
||||
|
||||
logger.info(f"Step {current_step} from user {user.full_name}")
|
||||
|
||||
if not context.chat_data.get("terdeep_value", None):
|
||||
await update.effective_message.reply_markdown_v2(
|
||||
text=("Вы не выбрали территорию /ter"),
|
||||
reply_parameters=ReplyParameters(
|
||||
message_id=update.effective_message.message_id
|
||||
),
|
||||
)
|
||||
return
|
||||
|
||||
if update.effective_message.text == "/inv":
|
||||
context.chat_data["step"] = "name"
|
||||
current_ter_id = context.chat_data.get("terdeep_value", None)
|
||||
current_ter = await TerritoryItem.objects.aget(id=current_ter_id)
|
||||
await update.effective_message.reply_markdown_v2(
|
||||
"\n".join([self.format_username(user), f"Введите название объекта"]),
|
||||
reply_parameters=ReplyParameters(
|
||||
message_id=update.effective_message.message_id
|
||||
),
|
||||
reply_markup=ReplyKeyboardMarkup([[KeyboardButton(current_ter.name)]]),
|
||||
)
|
||||
|
||||
if current_step == "name":
|
||||
if not context.chat_data.get("inv", None):
|
||||
loc = await TerritoryItem.objects.aget(id=35)
|
||||
inv = await TgItem.objects.acreate(user_id=user.id, location=loc)
|
||||
current_ter_id = context.chat_data.get("terdeep_value", None)
|
||||
current_ter = await TerritoryItem.objects.aget(id=current_ter_id)
|
||||
inv = await TgItem.objects.acreate(user_id=user.id, location=current_ter)
|
||||
inv.name = update.message.text
|
||||
await inv.asave()
|
||||
res = await update.effective_message.reply_text('Ок, сохранено', reply_markup=ReplyKeyboardRemove())
|
||||
await res.delete()
|
||||
else:
|
||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||
|
||||
|
|
Loading…
Reference in New Issue