def managing_users_add_time_final(user : User) -> InlineKeyboardMarkup():
     """Подтверждение добавления времени"""
     keyboard = InlineKeyboardMarkup()
     add = InlineKeyboardButton(get_text_but(user, 'managing_users_add_time_final_add'), callback_data="managing_users_add_time_final_add")
     cancel = InlineKeyboardButton(get_text_but(user, 'managing_users_add_time_final_cancel'), callback_data="managing_users_add_time_final_cancel")
     keyboard.add(add, cancel)
     return keyboard
 def managing_users_delete_course_final(user : User) -> InlineKeyboardMarkup():
     """Возвращает клавиатуру для подтверждения или отмены удаления курса у пользователя"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     successfull = InlineKeyboardButton(get_text_but(user, 'managing_users_delete_course_final_add'), callback_data="managing_users_delete_course_final_add")
     cancel = InlineKeyboardButton(get_text_but(user, 'managing_users_delete_course_final_cancel'), callback_data="managing_users_delete_course_final_cancel")
     keyboard.add(successfull, cancel)
     return keyboard
 def managing_courses_additionaly(user:User) -> InlineKeyboardMarkup():
     """Клавиатура для подтверждния или отмены созданного курса"""
     keyboard = InlineKeyboardMarkup()
     butt_complete = InlineKeyboardButton(get_text_but(user, 'managing_courses_add_additionaly_complete'), callback_data="managing_courses_add_additionaly_complete")
     butt_cancel = InlineKeyboardButton(get_text_but(user, 'managing_courses_add_additionaly_cancel'), callback_data="managing_courses_add_additionaly_cancel")
     keyboard.row(butt_complete, butt_cancel)
     return keyboard
Example #4
0
 def register_button(user: User) -> InlineKeyboardMarkup:
     """Генерирует кнопки регистрации пользователя."""
     keyboard = InlineKeyboardMarkup(row_width=1)
     phone = InlineKeyboardButton(get_text_but(user, 'register_phone'), callback_data="register_phone")
     mail = InlineKeyboardButton(get_text_but(user, 'register_mail'), callback_data="register_mail")
     contact = InlineKeyboardButton(get_text_but(user, 'register_contact'), callback_data="register_contact", url=get_text_but(user, 'register_contact_url'))
     keyboard.add(phone, mail, contact)
     return keyboard
 def admin_menu_managing_courses(user : User) -> InlineKeyboardMarkup():
     """Клавиатура для управления подписками"""
     keyboard = InlineKeyboardMarkup()
     dict_buttons = get_text_but(user, 'admin_menu_managing_courses')
     # butt_add = InlineKeyboardButton(dict_buttons['add'], callback_data='managing_courses_add')
     butt_edit = InlineKeyboardButton(dict_buttons['edit'], callback_data='managing_courses_edit')
     # butt_delete = InlineKeyboardButton(dict_buttons['delete'], callback_data='managing_courses_delete')
     butt_back = InlineKeyboardButton(get_text_but(user,'in_admin_menu'), callback_data='admin_in_admin_menu')
     # keyboard.add(butt_add, butt_edit, butt_delete, butt_back)
     keyboard.add(butt_edit, butt_back)
     return keyboard
 def managing_users_main_menu_add_course_choose_user(user : User) -> InlineKeyboardMarkup():
     """Подтвердить или отменить добавление курса"""
     keyboard = InlineKeyboardMarkup()
     data = get_text_but(user, 'managing_users_main_menu_add_course_choose_user')
     add = InlineKeyboardButton(text = data['add'], callback_data='managing_users_main_menu_add_course_choose_user_add')
     cancel = InlineKeyboardButton(text = data['cancel'], callback_data='managing_users_main_menu_add_course_choose_user_cancel')
     keyboard.add(add, cancel)
     return keyboard
 def managin_users_main_menu_delete_course_choose_use(user : User) -> InlineKeyboardMarkup():
     """Возвращает доступные курсы для удаления"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     buttons = []
     for ph in DataBaseFunc.get_user_subscribes(user):
         buttons.append(InlineKeyboardButton(ph.courses.name, callback_data=f"managin_users_main_menu_delete_course_choose_use_{ph.courses.id}"))
     keyboard.add(*buttons)
     keyboard.add(InlineKeyboardButton(get_text_but(user, 'managin_users_main_menu_delete_course_choose_use_back'), callback_data="managin_users_main_menu_delete_course_choose_use_back"))
     return keyboard
 def managing_users_add_time_choose_course(user : User) -> InlineKeyboardMarkup():
     """Возвращает кнопки с активными подписками пользователя"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     buttons = []
     for ph in DataBaseFunc.get_user_subscribes(user):
         buttons.append(InlineKeyboardButton(ph.courses.name, callback_data=f"managing_users_add_time_choose_course_{ph.courses.id}"))
     keyboard.add(*buttons)
     keyboard.add(InlineKeyboardButton(get_text_but(user, 'managing_users_add_time_choose_course_back'), callback_data="managing_users_add_time_choose_course_back"))
     return keyboard
 def managing_courses_edit(user : User) -> InlineKeyboardMarkup():
     """Отправляет кнопки с выбором курса для редактирования"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     courses = DataBaseFunc.get_courses()
     buttons = []
     for course in courses:
         buttons.append(InlineKeyboardButton(course.name, callback_data=f"managing_course_edit_{course.id}"))
     keyboard.add(*buttons)
     keyboard.add(InlineKeyboardButton(text=get_text_but(user, 'managing_course_edit_back'), callback_data="managing_course_edit_back"))
     return keyboard
Example #10
0
    def profile_button(user: User) -> InlineKeyboardMarkup:
        """Генерирует клавиатуру для кнопки "Профиль" """
        keyboard = InlineKeyboardMarkup(row_width=2)
        buttons = []

        for key, val in get_text_but(user, 'profile_menu').items():
            but = InlineKeyboardButton(val, callback_data=f'profile_menu_{key}')
            buttons.append(but)
        keyboard.add(*buttons)
        return keyboard
 def managing_courses_delete(user) -> InlineKeyboardMarkup():
     """Обработка кнопки удалить курс"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     courses = DataBaseFunc.get_courses()
     buttons = []
     for course in courses:
         buttons.append(InlineKeyboardButton(course.name, callback_data=f"managing_course_delete_{course.id}"))
     keyboard.add(*buttons)
     keyboard.add(InlineKeyboardButton(text=get_text_but(user,'managing_course_delete_back'), callback_data="managing_course_delete_back"))
     return keyboard
Example #12
0
async def register_mail(callback: types.CallbackQuery, state: FSMContext):
    """Обработчик кнопки войти по почте."""
    await callback.answer()
    user = DataBaseFunc.get_user(callback.from_user.id)
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(
        types.InlineKeyboardButton(get_text_but(user, 'register_write_back'),
                                   callback_data="register_write_back"))
    await callback.message.edit_text(get_text(user, 'register_mail_write'),
                                     reply_markup=keyboard)
    await state.update_data(callback_message_id=callback.message.message_id)
    await UserStateRegister.write_mail.set()
 def admin_menu_managing_admins(user : User) -> InlineKeyboardMarkup():
     """Отправляет меню управления администрацией"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     data = get_text_but(user, 'admin_menu_managing_admins')
     list_admins = InlineKeyboardButton(data['list_admins'], callback_data="managing_admins_main_menu_list_admins")
     add_admin = InlineKeyboardButton(data['add_admin'], callback_data="managing_admins_main_menu_add_admin")
     delete_admin = InlineKeyboardButton(data['delete_admin'], callback_data="managing_admins_main_menu_delete_admin")
     back = InlineKeyboardButton(data['back'], callback_data="managing_admins_main_menu_back")
     keyboard.add(list_admins),
     keyboard.add(add_admin, delete_admin)
     keyboard.add(back)
     return keyboard
 def admin_menu_managing_users(user : User) -> InlineKeyboardMarkup():
     """Генерирует клавиатуру для управления пользователями"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     data = get_text_but(user, 'managing_users_main_menu')
     add_course = InlineKeyboardButton(data['add_course'], callback_data="managing_users_main_menu_add_course")
     delete_course = InlineKeyboardButton(data['delete_course'], callback_data="managing_users_main_menu_delete_course")
     add_time = InlineKeyboardButton(data['add_time'], callback_data="managing_users_main_menu_add_time")
     delete_time = InlineKeyboardButton(data['delete_time'], callback_data="managing_users_main_menu_delete_time")
     keyboard.add(add_course, delete_course, add_time, delete_time)
     back = InlineKeyboardButton(data['back'], callback_data='managing_users_main_menu_back')
     keyboard.add(back)
     return keyboard
Example #15
0
    def get_user_courses(user : User) -> InlineKeyboardMarkup:
        """Формирует кнопки с выбором купленных курсов у пользователя."""

        keyboard = InlineKeyboardMarkup(row_width=2)
        buttons = []

        for purch in DataBaseFunc.get_user_subscribes(user):
            buttons.append(InlineKeyboardButton(purch.courses.name, callback_data=f"access_menu_get_course_{purch.courses.id}"))
        
        keyboard.add(*buttons)
        keyboard.add(InlineKeyboardButton(get_text_but(user, 'access_menu_get_course_back'), callback_data="access_menu_get_course_back"))
        return keyboard
Example #16
0
    def main_menu_subscribe(user: User) -> InlineKeyboardMarkup:
        """Генерирует клавиатуру для выбора тарифа"""
        keyboard = InlineKeyboardMarkup()

        courses = DataBaseFunc.get_courses()
        for course in courses:
            but = InlineKeyboardButton(text=f"{course.name}", callback_data=f"main_menu_subscrube_{course.id}")
            keyboard.add(but)

        keyboard.add(InlineKeyboardButton(text=get_text_but(user, "main_menu_back"), callback_data="main_menu_back"))

        return keyboard
Example #17
0
 async def start_button(user: User) -> InlineKeyboardMarkup:
     """Генерирует клавиатуру для команды /start"""
     keyboard = InlineKeyboardMarkup()
     buttons = []
     if (user.subscribe_end == True):
         buttons.append(InlineKeyboardButton(get_text_but(user,'subscribe_continue_pay'), callback_data='subscribe_continue_pay'))
     for key, value in get_text_but(user, 'start_menu').items():
         but = InlineKeyboardButton(value, callback_data=f"start_menu_{key}")
         if (key == 'admin') and (not user.is_admin):
             continue
         buttons.append(but)
     buttons.append(InlineKeyboardButton(text="Расписание", callback_data="start_menu_schedule"))
     if (user.is_have_subscription):
         channels = await UserGeneratorKeyboard.get_user_channel(user)
         for but in channels:
             buttons.append(but)
     buttons.append(InlineKeyboardButton(get_text_but(user, 'register_contact'), callback_data="call_manager", url=get_text_but(user, 'register_contact_url')))
     keyboard.row_width = 1
     keyboard.add(*buttons)
     # keyboard.row(*buttons)
     return keyboard
 def managing_courses_edit_button(user : User) -> InlineKeyboardMarkup():
     """Отправляет кнопки с выбором что отредактировать в боте"""
     keyboard = InlineKeyboardMarkup(row_width=2)
     data_text = get_text_but(user,"managing_courses_edit_buttons")
     name = InlineKeyboardButton(data_text['name'], callback_data="managing_courses_edit_name")
     descripiton = InlineKeyboardButton(data_text['description'], callback_data="managing_courses_edit_description")
     cost = InlineKeyboardButton(data_text['cost'], callback_data="managing_courses_edit_cost")
     time = InlineKeyboardButton(data_text['time'], callback_data="managing_courses_edit_time")
     access_add = InlineKeyboardButton(data_text['access_add'], callback_data="managing_courses_edit_access_add")
     access_delete = InlineKeyboardButton(data_text['access_delete'], callback_data="managing_courses_edit_access_delete")
     back = InlineKeyboardButton(data_text["back"], callback_data="managing_courses_edit_back")
     keyboard.add(name, descripiton, cost, time, access_add, access_delete, back)
     return keyboard
Example #19
0
    async def get_channels_from_course(user : User, course : Course) -> InlineKeyboardMarkup:
        """Формирует кнопки с выбором каналлов или чатов для вступления в них"""

        keyboard = InlineKeyboardMarkup(row_width=2)
        buttons = []

        for channel in course.channels:
            if (channel.channels.link == None):
                await DataBaseFunc.create_link_invoice(channel.channels)
            buttons.append(InlineKeyboardButton(channel.channels.name, callback_data=f"access_menu_get_channels_{channel.channels.id}", url=channel.channels.link))
        keyboard.add(*buttons)
        keyboard.add(InlineKeyboardButton(get_text_but(user, 'get_access_choose_channels_back'), callback_data="get_access_choose_channels_back"))

        return keyboard
    def managing_user_add_course(user : User, user_add_course : User) -> InlineKeyboardMarkup():
        """ Генерирует клавиатуру с выбором курсов для добавления пользователю"""
        keyboard = InlineKeyboardMarkup(row_width=2)
        user_courses = DataBaseFunc.get_user_subscribes(user_add_course)

        courses = DataBaseFunc.get_courses()
        courses = [course for course in courses if ((course.id in [cs.courses.id for cs in user_courses]) == False)]

        buttons = []
        for course in courses:
            buttons.append(InlineKeyboardButton(course.name, callback_data=f"managing_users_add_course_{course.id}"))
        keyboard.add(*buttons)
        keyboard.add(InlineKeyboardButton(get_text_but(user, 'managing_users_add_course_back'), callback_data="managing_users_add_course_back"))
        return keyboard
Example #21
0
    async def get_user_channels(user : User) -> InlineKeyboardMarkup:
        """Формирует кнопки со всеми доступными каналами пользователя"""
        keyboard = InlineKeyboardMarkup(row_width=2)
        buttons = []
        channels = []

        for purch in DataBaseFunc.get_user_subscribes(user):
            for channel in purch.courses.channels:
                ids = [x.id for x in channels]
                if (channel.channel_id in ids) == False:
                    channels.append(channel.channels)
      
        for channel in channels:
            if channel.link == None:
                await DataBaseFunc.create_link_invoice(channel)
            buttons.append(InlineKeyboardButton(channel.name, callback_data=f"access_menu_get_channels_{channel.id}", url=channel.link))

        keyboard.add(*buttons)
        keyboard.add(InlineKeyboardButton(get_text_but(user, 'get_access_choose_channels_back'), callback_data="get_access_choose_channels_back"))

        return keyboard
    def admin_main_menu(user : User) -> InlineKeyboardMarkup:
        """Клавиатура главного меню админ панели."""
        keyboard = InlineKeyboardMarkup(row_width=2)
        ls_dict_buttons = get_text_but(user,'main_admin_menu')
        butt_managing_courses = InlineKeyboardButton(text=ls_dict_buttons['managing_courses'], callback_data='admin_menu_managing_courses')
        butt_managing_users = InlineKeyboardButton(ls_dict_buttons['managing_users'], callback_data='admin_menu_managing_users')
        butt_managing_admins = InlineKeyboardButton(ls_dict_buttons['managing_admins'], callback_data='admin_menu_managing_admins')
        butt_who_used = InlineKeyboardButton(ls_dict_buttons['whos'], callback_data='admin_menu_whos')
        butt_new_shedule = InlineKeyboardButton(ls_dict_buttons['new_shedule'], callback_data='admin_menu_new_shedule')
        # butt_generate_new_link = InlineKeyboardButton(ls_dict_buttons['generate_new_link'], callback_data='admin_menu_generate_new_link')
        # butt_spam = InlineKeyboardButton(ls_dict_buttons['spam'], callback_data='admin_menu_spam')
        butt_back = InlineKeyboardButton(ls_dict_buttons['back'], callback_data='admin_menu_back')

        keyboard.row(butt_managing_courses, butt_managing_users)
        keyboard.add(butt_managing_admins)
        keyboard.add(butt_who_used)
        keyboard.add(butt_new_shedule)
        # keyboard.add(butt_spam)
        # keyboard.add(butt_generate_new_link)
        keyboard.add(butt_back)
        return keyboard
Example #23
0
 def course_back_in_list(user: User) -> InlineKeyboardMarkup:
     """Вовзращает кнопку "Назад" при выборе какого-либо курса"""
     keyboard = InlineKeyboardMarkup()
     keyboard.add(InlineKeyboardButton(text=get_text_but(user, 'profile_menu_back'), callback_data="course_back_in_list"))
     return keyboard
 def admin_menu_managing_users_add_course(user : User) -> InlineKeyboardMarkup():
     """"Генерирует клавиатуру при выборе пользователя курса"""
     keyboard = InlineKeyboardMarkup()
     keyboard.add(InlineKeyboardButton(get_text_but(user, 'admin_menu_managing_users_add_course_back'), callback_data='admin_menu_managing_users_add_course_back'))
     return keyboard
 def managing_courses_add_channels_continue(user:User) -> InlineKeyboardMarkup():
     """Кнопка продолжить при пересылке канналов и чатов при их добавлении"""
     keyboard = InlineKeyboardMarkup()
     butt = InlineKeyboardButton(get_text_but(user, 'managing_courses_add_continue'), callback_data='managing_courses_add_continue')
     keyboard.add(butt)
     return keyboard
 def managing_users_main_menu_delete_course(user : User) -> InlineKeyboardMarkup():
     """Кнопка назад при выборе пользователя для удаления курса."""
     keyboard = InlineKeyboardMarkup()
     back = get_text_but(user, 'managing_users_main_menu_delete_course_back')
     keyboard.add(InlineKeyboardButton(back, callback_data="managing_users_main_menu_delete_course"))
     return keyboard
 def managing_admins_main_menu_delete_admin(user : User):
     keyboard = InlineKeyboardMarkup()
     keyboard.add(InlineKeyboardButton(get_text_but(user,'managing_admins_main_menu_add_admin_back'), callback_data="managing_admins_main_menu_delete_admin_back"))
     return keyboard
 #endregion
 def managing_admin_list_admins(user : User):
     """Кнопка назад после списка админов"""
     keyboard = InlineKeyboardMarkup()
     keyboard.add(InlineKeyboardButton(get_text_but(user, 'managing_admin_list_admins_back'), callback_data="managing_admin_list_admins_back"))
     return keyboard
 def managign_users_add_time(user : User) -> InlineKeyboardMarkup():
     """Кнопка назад для первого этапа добавления времени подписки"""
     keyboard = InlineKeyboardMarkup()
     back = InlineKeyboardButton(get_text_but(user, 'managign_users_add_time_back'), callback_data="managign_users_add_time_back")
     keyboard.add(back)
     return keyboard
 def managing_users_add_time_choose_time(user : User) -> InlineKeyboardMarkup():
     keyboard = InlineKeyboardMarkup()
     back = InlineKeyboardButton(get_text_but(user, 'managing_users_add_time_choose_time_back'), callback_data="managing_users_add_time_choose_time_back")
     keyboard.add(back)
     return keyboard