Browse Source

Автоматическая регистрация на редактирование всех полей

pull/3/head
Alexei 2 years ago
parent
commit
7ab55fb27d
  1. 8
      bot_modules/access.py
  2. 22
      bot_modules/buttons.py
  3. 22
      bot_modules/comments.py
  4. 22
      bot_modules/groups.py
  5. 22
      bot_modules/languages.py
  6. 22
      bot_modules/messages.py
  7. 79
      bot_modules/mod_table_operate.py
  8. 22
      bot_modules/needs.py
  9. 47
      bot_modules/orders.py
  10. 22
      bot_modules/projects.py
  11. 22
      bot_modules/tasks.py
  12. 8
      bot_modules/user_in_groups.py
  13. 22
      bot_modules/users.py
  14. 1
      bot_sys/bd_table.py
  15. 8
      template/bd_item_edit.py

8
bot_modules/access.py

@ -87,8 +87,8 @@ moduleaccess_success_edit_message = '''✅ Доступ к модулю успе
button_names = {
mod_simple_message.ButtonNames.START: start_button_name,
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать доступ",
mod_table_operate.ButtonNames.EDIT_ACCESS: edit_moduleaccess_access_button_name,
mod_table_operate.ButtonNames.EDIT_DEFAULT_ACCESS: edit_moduleaccess_default_access_button_name,
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): edit_moduleaccess_access_button_name,
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DEFAULT_ACCESS): edit_moduleaccess_default_access_button_name,
}
messages = {
@ -97,8 +97,8 @@ messages = {
Пожалуйста, выберите действие:
''',
mod_table_operate.Messages.SELECT_TO_EDIT: moduleaccess_select_to_edit_message,
mod_table_operate.Messages.EDIT_ACCESS: moduleaccess_edit_access_message,
mod_table_operate.Messages.EDIT_DEFAULT_ACCESS: moduleaccess_edit_default_access_message,
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): moduleaccess_edit_access_message,
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DEFAULT_ACCESS): moduleaccess_edit_default_access_message,
mod_table_operate.Messages.SUCCESS_EDIT: moduleaccess_success_edit_message,
}

22
bot_modules/buttons.py

@ -47,10 +47,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список названий кнопок",
mod_table_operate.ButtonNames.ADD: "☑ Добавить название кнопки",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать названия кнопок",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение у названия кнопок",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название у названия кнопок",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание у названия кнопок",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к названию кнопки",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение у названия кнопок",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название у названия кнопок",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание у названия кнопок",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к названию кнопки",
mod_table_operate.ButtonNames.DEL: "❌ Удалить название кнопки",
}
@ -72,17 +72,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание названия кнопки Шаг 1
Введите название название кнопки:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание названия кнопки. Шаг 2
Введите описание название кнопки:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание названия кнопки
Загрузите обложку для названия кнопок (Фото):
На данный момент не поддерживается!
@ -95,23 +95,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите название кнопки, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для названия кнопок (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название названия кнопок:
#{name_field}
Введите новое название названия кнопки:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание названия кнопок:
#{desc_field}
Введите новое описание названия кнопки:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к названию кнопки:
#{access_field}

22
bot_modules/comments.py

@ -39,10 +39,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список комментариев",
mod_table_operate.ButtonNames.ADD: "☑ Добавить комментарий",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать комментарий",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение у комментария",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название у комментария",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание у комментария",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к комментарию",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение у комментария",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название у комментария",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание у комментария",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к комментарию",
mod_table_operate.ButtonNames.DEL: "❌ Удалить комментарий",
}
@ -64,17 +64,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание комментария. Шаг 1
Введите название комментария:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание комментария. Шаг 2
Введите описание комментария:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание комментария. Шаг 3
Загрузите обложку для комментария (Фото):
@ -87,23 +87,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите комментарий, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для комментария (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название комментария:
#{name_field}
Введите новое название комментария:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание комментария:
#{desc_field}
Введите новое описание комментария:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к комментарийу:
#{access_field}

22
bot_modules/groups.py

@ -44,10 +44,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список групп",
mod_table_operate.ButtonNames.ADD: "✅ Добавить группу",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать группу",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в группе",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в группе",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в группе",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к группе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение в группе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название в группе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание в группе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к группе",
mod_table_operate.ButtonNames.DEL: "❌ Удалить группу",
}
@ -69,17 +69,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание группы. Шаг 1
Введите название группы:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание группы. Шаг 2
Введите описание группы:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание группы. Шаг 3
Загрузите обложку для группы (Фото):
@ -92,23 +92,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите группу, которого вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для группы (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название группы:
#{name_field}
Введите новое название группы:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание группы:
#{desc_field}
Введите новое описание группы:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к группе:
#{access_field}

22
bot_modules/languages.py

@ -44,10 +44,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список языков",
mod_table_operate.ButtonNames.ADD: "✅ Добавить язык",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать язык",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в языке",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в языке",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в языке",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к языку",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение в языке",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название в языке",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание в языке",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к языку",
mod_table_operate.ButtonNames.DEL: "❌ Удалить язык",
}
@ -69,17 +69,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание языка. Шаг 1
Введите название языка:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание языка. Шаг 2
Введите описание языка:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание языка. Шаг 3
Загрузите обложку для языка (Фото):
@ -92,23 +92,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите язык, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для языка (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название языка:
#{name_field}
Введите новое название языка:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание языка:
#{desc_field}
Введите новое описание языка:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к языку:
#{access_field}

22
bot_modules/messages.py

@ -47,10 +47,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список сообщений",
mod_table_operate.ButtonNames.ADD: "☑ Добавить сообщение",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать сообщение",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение у сообщения",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название у сообщения",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание у сообщения",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к сообщению",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение у сообщения",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название у сообщения",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание у сообщения",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к сообщению",
mod_table_operate.ButtonNames.DEL: "❌ Удалить сообщение",
}
@ -72,17 +72,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание сообщения. Шаг 1
Введите название сообщения:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание сообщения. Шаг 2
Введите описание сообщения:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание сообщения. Шаг 3
Загрузите обложку для сообщения (Фото):
@ -95,23 +95,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите сообщение, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для сообщения (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название сообщения:
#{name_field}
Введите новое название сообщения:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание сообщения:
#{desc_field}
Введите новое описание сообщения:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к сообщениеу:
#{access_field}

79
bot_modules/mod_table_operate.py

@ -13,36 +13,28 @@ from aiogram.dispatcher.filters.state import State, StatesGroup
from enum import Enum
from enum import auto
def EditButton(a_BDTableDestiny):
return 'edit' + str(a_BDTableDestiny)
def EditMessage(a_BDTableDestiny):
return 'edit' + str(a_BDTableDestiny)
def CreateMessage(a_BDTableDestiny):
return 'create' + str(a_BDTableDestiny)
class ButtonNames(Enum):
LIST = auto()
ADD = auto()
EDIT = auto()
EDIT_PHOTO = auto()
EDIT_NAME = auto()
EDIT_DESC = auto()
EDIT_ACCESS = auto()
EDIT_DEFAULT_ACCESS = auto()
EDIT_ADDRESS = auto()
EDIT_STATUS = auto()
DEL = auto()
class Messages(Enum):
SELECT = auto()
ERROR_FIND = auto()
OPEN = auto()
CREATE_NAME = auto()
CREATE_DESC = auto()
CREATE_PHOTO = auto()
SUCCESS_CREATE = auto()
START_EDIT = auto()
SELECT_TO_EDIT = auto()
EDIT_PHOTO = auto()
EDIT_NAME = auto()
EDIT_DESC = auto()
EDIT_ACCESS = auto()
EDIT_DEFAULT_ACCESS = auto()
EDIT_ADDRESS = auto()
EDIT_STATUS = auto()
SUCCESS_EDIT = auto()
SELECT_TO_DELETE = auto()
SUCCESS_DELETE = auto()
@ -134,13 +126,13 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
def GetEditKeyboardButtons(self, a_Message, a_UserGroups):
mod_buttons = keyboard.MakeButtons(self.m_Bot, self.GetButtons(self.m_EditModuleNameList), a_UserGroups)
cur_buttons = [
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_PHOTO), user_access.AccessMode.VIEW, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_NAME), user_access.AccessMode.ADD, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_DESC), user_access.AccessMode.DELETE, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_ACCESS), user_access.AccessMode.DELETE, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_DEFAULT_ACCESS), user_access.AccessMode.EDIT, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_ADDRESS), user_access.AccessMode.EDIT, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.EDIT_STATUS), user_access.AccessMode.EDIT, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.PHOTO)), user_access.AccessMode.VIEW, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.NAME)), user_access.AccessMode.ADD, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.DESC)), user_access.AccessMode.DELETE, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.ACCESS)), user_access.AccessMode.DELETE, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.DEFAULT_ACCESS)), user_access.AccessMode.EDIT, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.ADDRESS)), user_access.AccessMode.EDIT, self.GetAccess()),
keyboard.ButtonWithAccess(self.GetButton(EditButton(bd_table.TableFieldDestiny.STATUS)), user_access.AccessMode.EDIT, self.GetAccess()),
]
return mod_buttons + keyboard.MakeButtons(self.m_Bot, cur_buttons, a_UserGroups)
@ -173,6 +165,13 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
a_Item[key_name_id],\
a_Item[access_field_id]
def UpdateMessage(self, a_Msg, a_Lang, a_Item):
a_Msg.UpdateDesc(self.m_Table.ReplaceAllFieldTags(a_Msg.GetDesc(), a_Item))
photo_field = self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.PHOTO)
if photo_field:
a_Msg.UpdatePhotoID(a_Item[photo_field])
return a_Msg
def ShowMessageTemplate(self, a_Message, Inline_keyboard_template_func = None):
async def ShowMessage(a_CallbackQuery, a_Item):
msg = a_Message.StaticCopy()
@ -185,10 +184,7 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
elif len(a_Item) == self.m_Table.GetFieldsCount():
lang = str(a_CallbackQuery.from_user.language_code)
msg = msg.GetMessageForLang(lang).StaticCopy()
msg.UpdateDesc(self.m_Table.ReplaceAllFieldTags(msg.GetDesc(), a_Item))
photo_field = self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.PHOTO)
if photo_field:
msg.UpdatePhotoID(a_Item[photo_field])
msg = self.UpdateMessage(msg, lang, a_Item)
item_access = a_Item[self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.ACCESS)]
if Inline_keyboard_template_func:
Inline_keyboard_func = Inline_keyboard_template_func(a_Item[self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.KEY)])
@ -272,8 +268,16 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
return a_Prefix
def RegisterEdit(self, a_ButtonName, a_EditMessage, a_FieldName, a_FieldType, a_AccessMode = user_access.AccessMode.EDIT):
if not a_ButtonName:
def RegisterEdit(self, a_Field, a_AccessMode = user_access.AccessMode.EDIT):
a_ButtonName = self.GetButton(EditButton(a_Field.m_Destiny))
a_EditMessage = self.GetMessage(EditMessage(a_Field.m_Destiny))
a_FieldName = a_Field.m_Name
a_FieldType = bd_item.FieldType.text
if a_Field.m_Destiny == bd_table.TableFieldDestiny.PHOTO:
a_FieldType = bd_item.FieldType.photo
if not a_ButtonName or not a_EditMessage:
return
def OnChange():
@ -382,9 +386,9 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
self.GetFSM(FSMs.CREATE).desc, \
self.GetFSM(FSMs.CREATE).photo,\
self.m_AddBDItemFunc, \
self.ShowMessageTemplate(self.GetMessage(Messages.CREATE_NAME)), \
self.ShowMessageTemplate(self.GetMessage(Messages.CREATE_DESC)), \
self.ShowMessageTemplate(self.GetMessage(Messages.CREATE_PHOTO)), \
self.ShowMessageTemplate(self.GetMessage(CreateMessage(bd_table.TableFieldDestiny.NAME))), \
self.ShowMessageTemplate(self.GetMessage(CreateMessage(bd_table.TableFieldDestiny.DESC))), \
self.ShowMessageTemplate(self.GetMessage(CreateMessage(bd_table.TableFieldDestiny.PHOTO))), \
self.ShowMessageTemplate(self.GetMessage(Messages.SUCCESS_CREATE)), \
a_Prefix,\
parent_table_name, \
@ -415,13 +419,8 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
address_field = self.m_Table.GetFieldNameByDestiny(bd_table.TableFieldDestiny.ADDRESS)
status_field = self.m_Table.GetFieldNameByDestiny(bd_table.TableFieldDestiny.STATUS)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_NAME), self.GetMessage(Messages.EDIT_NAME), name_field, bd_item.FieldType.text)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_DESC), self.GetMessage(Messages.EDIT_DESC), desc_field, bd_item.FieldType.text)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_PHOTO), self.GetMessage(Messages.EDIT_PHOTO), photo_field, bd_item.FieldType.photo)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_ACCESS), self.GetMessage(Messages.EDIT_ACCESS), access_field, bd_item.FieldType.text)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_DEFAULT_ACCESS), self.GetMessage(Messages.EDIT_DEFAULT_ACCESS), def_access_field, bd_item.FieldType.text)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_ADDRESS), self.GetMessage(Messages.EDIT_ADDRESS), address_field, bd_item.FieldType.text)
self.RegisterEdit(self.GetButton(ButtonNames.EDIT_STATUS), self.GetMessage(Messages.EDIT_STATUS), status_field, bd_item.FieldType.text)
for f in self.m_Table.GetFields():
self.RegisterEdit(f)
def OnChange(self):
pass

22
bot_modules/needs.py

@ -39,10 +39,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список потребностей",
mod_table_operate.ButtonNames.ADD: "☑ Добавить потребность",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать потребность",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение у потребности",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название у потребности",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание у потребности",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к потребности",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение у потребности",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название у потребности",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание у потребности",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к потребности",
mod_table_operate.ButtonNames.DEL: "❌ Удалить потребность",
}
@ -64,17 +64,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание потребности. Шаг 1
Введите название потребности:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание потребности. Шаг 2
Введите описание потребности:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание потребности. Шаг 3
Загрузите обложку для потребности (Фото):
@ -87,23 +87,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите потребность, которую вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для потребности (Фото):
Она будет отображаться в её описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название потребности:
#{name_field}
Введите новое название потребности:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание потребности:
#{desc_field}
Введите новое описание потребности:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к потребности:
#{access_field}

47
bot_modules/orders.py

@ -57,12 +57,12 @@ button_names = {
ButtonNames.LIST_CURRENT: "📃 Список текущих заказов",
mod_table_operate.ButtonNames.ADD: "✅ Добавить заказ",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать заказ",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в заказе",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в заказе",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в заказе",
mod_table_operate.ButtonNames.EDIT_ADDRESS: "𝌴 Изменить адрес в заказе",
mod_table_operate.ButtonNames.EDIT_STATUS: "𝌴 Изменить статус в заказе",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к заказу",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение в заказе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название в заказе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание в заказе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ADDRESS): "𝌴 Изменить адрес в заказе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.STATUS): "𝌴 Изменить статус в заказе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к заказу",
mod_table_operate.ButtonNames.DEL: "❌ Удалить заказ",
}
@ -80,7 +80,7 @@ messages = {
mod_table_operate.Messages.OPEN: f'''
<b>Заказ: #{name_field}</b>
#{desc_field}
<b>Описание и состав заказа:</b> #{desc_field}
<b>Статус:</b> #{status_field}
@ -88,17 +88,17 @@ messages = {
<b>Время создания:</b> #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание заказа. Шаг 1
Введите название заказа:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание заказа. Шаг 2
Введите описание заказа:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание заказа. Шаг 3
Загрузите обложку для заказа (Фото):
@ -111,35 +111,35 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите заказ, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для заказа (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название заказа:
#{name_field}
Введите новое название заказа:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание заказа:
#{desc_field}
Введите новое описание заказа:
''',
mod_table_operate.Messages.EDIT_ADDRESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ADDRESS): f'''
Текущий адрес заказа:
#{desc_field}
Введите новый адрес доставки заказа (укажите, кто, когда и где его сможет забрать):
''',
mod_table_operate.Messages.EDIT_STATUS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.STATUS): f'''
Текущий статус заказа:
#{status_field}
Введите новый статус заказа:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к заказу:
#{access_field}
@ -155,6 +155,15 @@ messages = {
mod_table_operate.Messages.SUCCESS_DELETE: '''✅ Заказ успешно удалён!''',
}
messages_order_status = {
OrderStatus.NEW: f'''Заказ создан, ожидает модерации''',
OrderStatus.PAY: f'''Заказ ожидает оплаты''',
OrderStatus.ADDRESS: f'''Заказ ожидает указания адреса доставки''',
OrderStatus.FINISH: f'''Заказ выполнен''',
}
messages.update(messages_order_status)
def GetCurItemsTemplate(a_Bot, a_TableName, a_UserIDFieldName, a_StatusFieldName):
def GetBDItems(a_Message, a_UserGroups, a_ParentID):
request = f'SELECT * FROM {a_TableName} WHERE {a_UserIDFieldName} = ? AND {a_StatusFieldName} != ?'
@ -212,6 +221,12 @@ class ModuleOrders(mod_table_operate.TableOperateModule):
]
return parent_buttons + keyboard.MakeButtons(self.m_Bot, cur_buttons, a_UserGroups)
def UpdateMessage(self, a_Msg, a_Lang, a_Item):
a_Msg = super().UpdateMessage(a_Msg, a_Lang, a_Item)
for s in OrderStatus:
a_Msg.UpdateDesc(a_Msg.GetDesc().replace(str(s), str(self.GetMessage(s).GetMessageForLang(a_Lang).StaticCopy())))
return a_Msg
def RegisterHandlers(self):
super().RegisterHandlers()
table_name = self.m_Table.GetName()

22
bot_modules/projects.py

@ -37,10 +37,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список проектов",
mod_table_operate.ButtonNames.ADD: "✅ Добавить проект",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать проект",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в проекте",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в проекте",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в проекте",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к проекту",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение в проекте",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название в проекте",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание в проекте",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к проекту",
mod_table_operate.ButtonNames.DEL: "❌ Удалить проект",
}
@ -62,17 +62,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание проекта. Шаг 1
Введите название проекта:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание проекта. Шаг 2
Введите описание проекта:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание проекта. Шаг 3
Загрузите обложку для проекта (Фото):
@ -85,23 +85,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите проект, который вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для проекта (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название проекта:
#{name_field}
Введите новое название проекта:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание проекта:
#{desc_field}
Введите новое описание проекта:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к проекту:
#{access_field}

22
bot_modules/tasks.py

@ -39,10 +39,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список задач",
mod_table_operate.ButtonNames.ADD: "☑ Добавить задачу",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать задачу",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение у задачи",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название у задачи",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание у задачи",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к задаче",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение у задачи",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название у задачи",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание у задачи",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к задаче",
mod_table_operate.ButtonNames.DEL: "❌ Удалить задачу",
}
@ -64,17 +64,17 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание задачи. Шаг 1
Введите название задачи:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание задачи. Шаг 2
Введите описание задачи:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание задачи. Шаг 3
Загрузите обложку для задачи (Фото):
@ -87,23 +87,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите задачу, которую вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для задачи (Фото):
Она будет отображаться в её описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название задачи:
#{name_field}
Введите новое название задачи:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание задачи:
#{desc_field}
Введите новое описание задачи:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к задаче:
#{access_field}

8
bot_modules/user_in_groups.py

@ -55,7 +55,7 @@ button_names = {
mod_simple_message.ButtonNames.START: "🗫 Пользователи в группах",
mod_table_operate.ButtonNames.LIST: "📃 Список пользователей в группах",
ButtonNames.ADD_USER: "✅ Добавить пользователя в группу",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Доступ к пользователю в группе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Доступ к пользователю в группе",
mod_table_operate.ButtonNames.DEL: "❌ Удалить пользователя из группы",
}
@ -77,7 +77,7 @@ messages = {
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание пользователя в группе.
Укажите ID пользователя:
@ -89,7 +89,7 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите пользователя в группе, которого вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к пользователю в группе:
#{access_field}
@ -145,7 +145,7 @@ class ModuleUserInGroups(mod_table_operate.TableOperateModule):
check_func,\
FSMAddUserInGroups,\
self.m_AddBDItemFunc,\
self.ShowMessageTemplate(self.GetMessage(mod_table_operate.Messages.CREATE_NAME)),\
self.ShowMessageTemplate(self.GetMessage(mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME))),\
self.ShowMessageTemplate(self.GetMessage(mod_table_operate.Messages.SUCCESS_CREATE)),\
a_Prefix,\
parent_table_name,\

22
bot_modules/users.py

@ -44,10 +44,10 @@ button_names = {
mod_table_operate.ButtonNames.LIST: "📃 Список пользователей",
# mod_table_operate.ButtonNames.ADD: "✅ Добавить пользователя",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать пользователя",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в пользователяе",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в пользователяе",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в пользователяе",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к пользователю",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.PHOTO): "☐ Изменить изображение в пользователяе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.NAME): "≂ Изменить название в пользователяе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.DESC): "𝌴 Изменить описание в пользователяе",
mod_table_operate.EditButton(bd_table.TableFieldDestiny.ACCESS): "✋ Изменить доступ к пользователю",
mod_table_operate.ButtonNames.DEL: "❌ Удалить пользователя",
}
@ -72,17 +72,17 @@ messages = {
<b>Код языка:</b> #{language_code_field}
<b>Дата добавления:</b> #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.NAME): '''
Создание пользователя. Шаг 1
Введите название пользователя:
''',
mod_table_operate.Messages.CREATE_DESC: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.DESC): '''
Создание пользователя. Шаг 2
Введите описание пользователя:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
mod_table_operate.CreateMessage(bd_table.TableFieldDestiny.PHOTO): '''
Создание пользователя. Шаг 3
Загрузите обложку для пользователя (Фото):
@ -95,23 +95,23 @@ messages = {
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите пользователя, которого вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.PHOTO): '''
Загрузите новую обложку для пользователя (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.NAME): f'''
Текущее название пользователя:
#{name_field}
Введите новое название пользователя:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.DESC): f'''
Текущее описание пользователя:
#{name1_field}
Введите новое описание пользователя:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
mod_table_operate.EditMessage(bd_table.TableFieldDestiny.ACCESS): f'''
Текущий доступ к пользователю:
#{access_field}

1
bot_sys/bd_table.py

@ -119,6 +119,7 @@ def Test():
assert table.GetFieldNameByDestiny(TableFieldDestiny.PHOTO) == None
assert table.GetFieldsCount() == 3
assert len(table.GetFields()) == 3
print(table.GetInitTableRequest())
assert table.GetInitTableRequest() == 'CREATE TABLE IF NOT EXISTS tname(f1 INTEGER PRIMARY KEY, f2 TEXT, f3 TEXT, UNIQUE(f1), UNIQUE(f2, f3));'

8
template/bd_item_edit.py

@ -33,13 +33,13 @@ def FinishEditBDItemTemplate(a_Bot, a_FSM, a_TableName, a_KeyName, a_FieldName,
return bd_item_add.FinishAddBDItemTemplate(a_Bot, a_FSM, EditBDItemFunc, a_TableName, a_KeyName, a_FieldName, a_MessageFunc, a_AccessFunc, a_ButtonFunc, access_mode = access_mode, field_type = field_type)
def EditBDItemRegisterHandlers(a_Bot, a_SelectSource, a_FSM, a_StartMessage, a_EditMessageFunc, a_FinishMessageFunc, a_TableName : str, a_KeyName, a_FieldName, a_GetButtonNameAndKeyValueAndAccessFunc, a_AccessFunc, a_ButtonFunc, a_OnChangeFunc, access_mode = user_access.AccessMode.EDIT, field_type = bd_item.FieldType.text):
def EditBDItemRegisterHandlers(a_Bot, a_SelectSource, a_FSM, a_StartMessage, a_EditMessageFunc, a_FinishMessageFunc, a_TableName : str, a_KeyName, a_FieldName, a_GetButtonNameAndKeyValueAndAccessFunc, a_AccessFunc, a_FinishButtonFunc, a_OnChangeFunc, access_mode = user_access.AccessMode.EDIT, field_type = bd_item.FieldType.text):
keyboard_cancel = bd_item.GetCancelKeyboardButtonsTemplate(a_Bot, a_AccessFunc, access_mode)
a_Prefix = bd_item_select.SelectRegisterHandlers(a_Bot, a_SelectSource, a_GetButtonNameAndKeyValueAndAccessFunc, a_StartMessage, a_AccessFunc, access_mode = access_mode)
a_Bot.RegisterCallbackHandler(StartEditBDItemTemplate(a_Bot, a_FSM, a_EditMessageFunc, a_TableName, a_KeyName, a_Prefix, a_AccessFunc, keyboard_cancel, a_ButtonFunc, access_mode), bd_item.GetCheckForPrefixFunc(a_Prefix))
a_Bot.RegisterCallbackHandler(StartEditBDItemTemplate(a_Bot, a_FSM, a_EditMessageFunc, a_TableName, a_KeyName, a_Prefix, a_AccessFunc, keyboard_cancel, a_FinishButtonFunc, access_mode), bd_item.GetCheckForPrefixFunc(a_Prefix))
if field_type == bd_item.FieldType.photo:
a_Bot.RegisterMessageHandler(FinishEditBDItemTemplate(a_Bot, a_FSM, a_TableName, a_KeyName, a_FieldName, a_FinishMessageFunc, a_AccessFunc, a_ButtonFunc, a_OnChangeFunc, access_mode, field_type = field_type), content_types = ['photo', 'text'], state = a_FSM.item_field)
a_Bot.RegisterMessageHandler(FinishEditBDItemTemplate(a_Bot, a_FSM, a_TableName, a_KeyName, a_FieldName, a_FinishMessageFunc, a_AccessFunc, a_FinishButtonFunc, a_OnChangeFunc, access_mode, field_type = field_type), content_types = ['photo', 'text'], state = a_FSM.item_field)
else:
a_Bot.RegisterMessageHandler(FinishEditBDItemTemplate(a_Bot, a_FSM, a_TableName, a_KeyName, a_FieldName, a_FinishMessageFunc, a_AccessFunc, a_ButtonFunc, a_OnChangeFunc, access_mode, field_type = field_type), state = a_FSM.item_field)
a_Bot.RegisterMessageHandler(FinishEditBDItemTemplate(a_Bot, a_FSM, a_TableName, a_KeyName, a_FieldName, a_FinishMessageFunc, a_AccessFunc, a_FinishButtonFunc, a_OnChangeFunc, access_mode, field_type = field_type), state = a_FSM.item_field)

Loading…
Cancel
Save