diff --git a/bot_modules/all_orders.py b/bot_modules/all_orders.py
index 8894daf..7fbf33c 100644
--- a/bot_modules/all_orders.py
+++ b/bot_modules/all_orders.py
@@ -89,7 +89,8 @@ messages_notification = {
Описание заказа:
#{orders.desc_field}
-Оплатите заказ и прикрепите чек об оплате к заказу. Для этого проследуйте по пути "Главное меню"->"Заказы"->"Загрузить чек по оплате моего заказа"''',
+Оплатите заказ и прикрепите чек об оплате к заказу. Для этого проследуйте по пути "Главное меню"->"Заказы"->"Загрузить чек по оплате моего заказа"
+Или воспользуйтесь кнопкой:''',
mod_table_operate.NotificationMessage(orders.OrderStatus.ADDRESS): f'''Статус заказа "#{orders.name_field}" изменён на - Заказ ожидает указания адреса доставки.
Описание заказа:
@@ -152,8 +153,28 @@ class ModuleAllOrders(orders.ModuleOrders):
n, k, a = super().GetButtonNameAndKeyValueAndAccess(a_Item)
return str(a_Item[key_field_id]) + ":" + n + "," + str(a_Item[user_field_id]), k, a
+ def GetPayInlineKeyboardFunc(self, a_ItemID):
+ def PayInlineKeyboard(a_Message, a_UserGroups):
+ print('PayInlineKeyboard', a_Message, a_UserGroups, a_ItemID)
+ cur_buttons = []
+
+ orders_mod = self.GetModule(orders.module_name)
+ dst = bd_table.TableFieldDestiny.PHOTO_PAY
+ if orders_mod:
+ prefix = orders_mod.m_EditPrefix.get(dst, None)
+ if prefix:
+ access = orders_mod.GetAccessForEditKeyboardButtons(orders_mod.m_Table.GetFieldByDestiny(dst))
+ cur_buttons += [
+ keyboard.InlineButtonWithAccess(orders_mod.GetButton(mod_table_operate.EditButton(dst)), prefix, a_ItemID, orders_mod.GetAccess(), access),
+ ]
+
+ print('cur_buttons', cur_buttons, a_Message, a_UserGroups, a_ItemID)
+ return keyboard.MakeInlineKeyboardButtons(self.m_Bot, cur_buttons, a_UserGroups)
+ return PayInlineKeyboard
+
+
async def OnChangeField(self, a_Field, a_ItemID, a_ItemData, a_EditUserID):
- super().OnChangeField(a_Field, a_ItemID, a_ItemData, a_EditUserID)
+ await super().OnChangeField(a_Field, a_ItemID, a_ItemData, a_EditUserID)
if a_Field.m_Destiny == bd_table.TableFieldDestiny.STATUS:
key_field = self.m_Table.GetFieldNameByDestiny(bd_table.TableFieldDestiny.KEY)
item = bd_item.GetBDItemsTemplate(self.m_Bot, self.m_Table.GetName(), key_field)(a_ItemID)
@@ -181,7 +202,12 @@ class ModuleAllOrders(orders.ModuleOrders):
self.m_Log.Error(f'Не удалось оповестить по заказу №{a_ItemID}. Пустое сообщение для нового статуса {new_status}')
return
msg = self.UpdateMessage(msg, None, item)
- await self.SendMessageToUser(msg, owner_id)
+ inline_keyboard = None
+ print('new_status', str(orders.OrderStatus.PAY), new_status)
+ if new_status == str(orders.OrderStatus.PAY):
+ inline_keyboard = self.GetPayInlineKeyboardFunc(a_ItemID)
+
+ await self.SendMessageToUser(msg, owner_id, a_GetInlineButtonsFunc = inline_keyboard)
def GetStartButtons(self, a_Message, a_UserGroups):
return [
@@ -203,7 +229,7 @@ class ModuleAllOrders(orders.ModuleOrders):
user_id = cur_item[user_id_field_index]
if not user_id:
- return None
+ return keyboard.MakeInlineKeyboardButtons(self.m_Bot, [], a_UserGroups)
cur_buttons = []
@@ -213,7 +239,7 @@ class ModuleAllOrders(orders.ModuleOrders):
prefix = self.m_EditPrefix.get(dst, None)
if prefix:
cur_buttons += [
- keyboard.InlineButtonWithAccess(self.GetButton(btn), prefix, cur_item[key_field_index], access, user_access.AccessMode.EDIT),
+ keyboard.InlineButtonWithAccess(self.GetButton(btn), prefix, cur_item[key_field_index], self.GetAccess(), access),
]
user_message_mod = self.GetModule(user_message.module_name)
@@ -222,13 +248,11 @@ class ModuleAllOrders(orders.ModuleOrders):
keyboard.InlineButtonWithAccess(self.GetButton(ButtonNames.SEND_USER_MESSAGE), user_message_mod.GetAddPrefix(), user_id, user_message_mod.GetAccess(), user_access.AccessMode.ADD),
]
- users_mod = self.GetModule(users.module_name)
- if users_mod:
- cur_buttons += [
- keyboard.InlineButtonWithAccess(self.GetButton(ButtonNames.SHOW_USER_INFO), users_mod.GetShowPrefix(), user_id, users_mod.GetAccess(), user_access.AccessMode.VIEW),
- ]
+ #users_mod = self.GetModule(users.module_name)
+ #if users_mod:
+ # cur_buttons += [
+ # keyboard.InlineButtonWithAccess(self.GetButton(ButtonNames.SHOW_USER_INFO), users_mod.GetShowPrefix(), user_id, users_mod.GetAccess(), user_access.AccessMode.VIEW),
+ # ]
- if len(cur_buttons) == 0:
- return None
return keyboard.MakeInlineKeyboardButtons(self.m_Bot, cur_buttons, a_UserGroups)
diff --git a/bot_modules/mod_table_operate.py b/bot_modules/mod_table_operate.py
index c46d811..ae6c11a 100644
--- a/bot_modules/mod_table_operate.py
+++ b/bot_modules/mod_table_operate.py
@@ -4,7 +4,7 @@
# Модуль для редактирования и просмотра таблицы в БД
from bot_sys import keyboard, user_access, bd_table, bot_bd, bot_subscribes
-from bot_modules import access_utils, mod_simple_message
+from bot_modules import access_utils, mod_simple_message, groups_utils
from template import simple_message, bd_item, bd_item_select, bd_item_view, bd_item_delete, bd_item_add, bd_item_edit
from aiogram.dispatcher import FSMContext
@@ -363,7 +363,7 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
async def SendMessageToUser(self, a_Message, a_UserID, a_GetButtonsFunc = None, a_GetInlineButtonsFunc = None, parse_mode = None):
a_Message = a_Message.StaticCopy()
a_MessageFromUSer = None
- user_groups = None
+ user_groups = groups_utils.GetUserGroupData(self.m_Bot, a_UserID)
try:
print('SendMessage', self.m_Bot, a_Message, a_GetButtonsFunc, a_GetInlineButtonsFunc, a_UserID, a_MessageFromUSer, user_groups, parse_mode)
await simple_message.SendMessage(self.m_Bot, a_Message, a_GetButtonsFunc, a_GetInlineButtonsFunc, a_UserID, a_MessageFromUSer, user_groups, parse_mode=parse_mode)
@@ -372,6 +372,10 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
return False
async def SendSubscribe(self, a_Type, a_ItemID, a_OwnerUserID):
+ table_name = self.m_Table.GetName()
+ key_name = self.GetKeyFieldName()
+
+ cur_item = GetCurItem(self.m_Bot, table_name, key_name, a_ItemID)
for s_user_id in self.m_BotSubscribes.GetUserIDs(self.GetName(), a_Type, a_ItemID = a_ItemID):
a_BotMessage = self.GetMessage(SubscribeMessage(a_Type))
if not a_BotMessage:
@@ -381,6 +385,9 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
a_UserID = s_user_id
a_BotMessage = a_BotMessage.StaticCopy()
a_BotMessage.UpdateDesc(a_BotMessage.GetDesc().replace("#item_id", str(a_ItemID)))
+ if cur_item:
+ a_BotMessage.UpdateDesc(self.m_Table.ReplaceAllFieldTags(a_BotMessage.GetDesc(), cur_item))
+
await self.SendMessageToUser(a_BotMessage, a_UserID)
diff --git a/bot_modules/orders.py b/bot_modules/orders.py
index 63f3a95..41fd866 100644
--- a/bot_modules/orders.py
+++ b/bot_modules/orders.py
@@ -86,7 +86,7 @@ messages = {
mod_table_operate.Messages.OPEN: f'''
Номер заказа: #{key_name}
-Заказ: #{name_field}
+Имя заказа: #{name_field}
Описание и состав заказа: #{desc_field}
@@ -175,8 +175,18 @@ messages_subscribes = {
mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_DEL):f'''Заказ удалён''',
mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ITEM_EDIT):f'''Заказ отредактирован #item_id''',
mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ITEM_DEL):f'''Заказ удалён #item_id''',
- mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_ADD_WITH_PARENT):f'''Заказ создан''',
- mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_EDIT_WITH_PARENT):f'''Заказ отредактирован''',
+ mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_ADD_WITH_PARENT):f'''Заказ создан
+Номер заказа: #{key_name}
+
+Имя заказа: #{name_field}
+
+Описание и состав заказа: #{desc_field}''',
+ mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_EDIT_WITH_PARENT):f'''Заказ отредактирован
+Номер заказа: #{key_name}
+
+Имя заказа: #{name_field}
+
+Описание и состав заказа: #{desc_field}''',
mod_table_operate.SubscribeMessage(bot_subscribes.SubscribeType.ANY_ITEM_DEL_WITH_PARENT):f'''Заказ удалён''',
}