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