def create_default_kb( cls, actions: List[Union[str, Dict[str, Union[str, bool]]]], schema: List[int], ) -> ReplyKeyboardMarkup: kb = ReplyKeyboardMarkup() kb.row_width = max(schema) buttons = [] for a in actions: if isinstance(a, str): a = {"text": a} data: Dict[str, Union[str, bool]] = {} for k, v in cls.aliases.items(): if k in a: a[v] = a[k] del a[k] for k in a: if k in cls.available_properities["default"]: data[k] = a[k] else: break if "callback_data" in data: data["callback_data"] = data["callback_data"][1].new( **data["callback_data"][0]) buttons.append(KeyboardButton(**data)) kb.keyboard = create_keyboard_layout(buttons, schema) kb.resize_keyboard = True return kb
def create_kb_coustom_main_menu(user_id): from loader import db from data.config import super_admins if not user_id in super_admins: user_status = db.get_user_status(id=user_id) else: user_status = 'admin' keyboard = ReplyKeyboardMarkup() if user_status == 'admin': keyboard.add(KeyboardButton(text='права пользователей')) # keyboard.insert(KeyboardButton(text='информация о смс')) keyboard.add(KeyboardButton(text='создать заявку')) keyboard.insert(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.insert(KeyboardButton(text='создать пропуск')) keyboard.add(KeyboardButton(text='балансы')) keyboard.insert(KeyboardButton(text='отчетность')) elif user_status == 'changer': keyboard.add(KeyboardButton(text='создать заявку')) keyboard.insert(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.insert(KeyboardButton(text='создать пропуск')) keyboard.add(KeyboardButton(text='балансы')) keyboard.insert(KeyboardButton(text='отчетность')) elif user_status == 'executor': keyboard.add(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='балансы')) keyboard.add(KeyboardButton(text='отчетность')) elif user_status == 'secretary': # keyboard.add(KeyboardButton(text='информация о смс')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.add(KeyboardButton(text='создать пропуск')) elif user_status == 'permit': keyboard.add(KeyboardButton(text='создать пропуск')) else: pass keyboard.resize_keyboard = True keyboard.one_time_keyboard = True return keyboard # main_menu = ReplyKeyboardMarkup ( # keyboard = [ # [ # KeyboardButton(text='права пользователей'), # KeyboardButton(text='информация о смс') # ], # [ # KeyboardButton(text='создать заявку'), # KeyboardButton(text='в работе') # ], # [ # KeyboardButton(text='пропуска'), # ] # ], # resize_keyboard=True, # one_time_keyboard=True # )