def univer_info_keyboard(message): keyboard = InlineKeyboardMarkup() keyboard.add( InlineKeyboardButton( text= f'Відділ бухгалтерського обліку {emojize(":dollar:", use_aliases=True)}', callback_data='accounting')) keyboard.add( InlineKeyboardButton( text= f'Центр сприяння працевлаштуванню {emojize(":fax:", use_aliases=True)}', callback_data='employment')) keyboard.add( InlineKeyboardButton( text=f'Профком студентів {emojize(":shield:", use_aliases=True)}', callback_data='profcom')) keyboard.add( InlineKeyboardButton( text=f'Сайт НУ «ЗП» {emojize(":computer:", use_aliases=True)}', callback_data='show_site')) bot.send_message(message.from_user.id, text='Вибери:', reply_markup=keyboard)
def time_event(message, event_id): Event.update_event(event_id=event_id, time=message.text) bot.send_message( chat_id=message.from_user.id, text=f'Захід "{Event.get_event(event_id=event_id).name}" створено ' f'{emojize(":white_check_mark:", use_aliases=True)}')
def get_events_schelude(message): event_list = Event.get_all_events() print(event_list) if event_list: keyboard = InlineKeyboardMarkup(row_width=2) keys_list = [] for event in event_list: keys_list.append( InlineKeyboardButton(text=event.name, callback_data=f'schelude_{event.id}')) keys_list.append( InlineKeyboardButton(text=event.date, callback_data=f'schelude_{event.id}')) keyboard.add(*keys_list) bot.send_message( chat_id=message.from_user.id, text= f'{emojize(":man_juggling:", use_aliases=True)} Розклад заходів ' f'{emojize(":performing_arts:", use_aliases=True)}', reply_markup=keyboard) else: bot.send_message(chat_id=message.from_user.id, text='На даний час ніяких заходів не заплановано')
def assign_grade(message): subjects_keyboard = make_keyboard('subject', Subject.get_subjects(), 'gradesubject_') bot.send_message(chat_id=message.from_user.id, text='Виберіть предмет:', reply_markup=subjects_keyboard)
def change_event_time(message, event_id): Event.update_event(event_id=event_id, time=message.text) bot.send_message( chat_id=message.from_user.id, text= f'Час проведення заходу змінено на {Event.get_event(event_id=event_id).time} ' f'{emojize(":white_check_mark:", use_aliases=True)}')
def change_event_name(message, event_id): Event.update_event(event_id=event_id, name=message.text) bot.send_message( chat_id=message.from_user.id, text= f'Назву заходу змінено на "{Event.get_event(event_id=event_id).name}" ' f'{emojize(":white_check_mark:", use_aliases=True)}')
def step_6(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message(message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nКакие *сторонние сервисы* Вам нужны?", reply_markup=k.keyboard_6_screen, parse_mode='Markdown')
def step_3(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message(message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\n*Сколько примерно экранов* в Вашем приложении?", reply_markup=k.keyboard_3_screen, parse_mode='Markdown')
def event_visits_keyboard(message): keyboard = InlineKeyboardMarkup() keyboard.add(InlineKeyboardButton(text=f'Учасники заходу {emojize(":page_facing_up:", use_aliases=True)}', callback_data='event_visitors')) keyboard.add(InlineKeyboardButton(text=f'Відвідування заходів {emojize(":bar_chart:", use_aliases=True)}', callback_data='student_events')) bot.send_message(chat_id=message.from_user.id, text='Вибери дію:', reply_markup=keyboard)
def step_8(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message( message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nКакие *дополнительные функции* нужны в приложении?", reply_markup=k.keyboard_8_screen, parse_mode='Markdown')
def step_7(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message( message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nКакие элементы управления нужны в *панели Администратора?*", reply_markup=k.keyboard_7_screen, parse_mode='Markdown')
def step_5(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message( message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nКакой *тип безопасности данных* нужно реализовать в приложении?", reply_markup=k.keyboard_5_screen, parse_mode='Markdown')
def step_4(message, price, choice): global app_price app_price[message.chat.id] += price bot.send_message( message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nКак будет реализована *авторизация* пользователей?", reply_markup=k.keyboard_4_screen, parse_mode='Markdown')
def say_goodbye(message): print(message.json) bot.send_message( 382372945, "Пользователь @" + message.from_user.username + " оставил свои контактные данные: " + message.json['text']) bot.send_message( message.chat.id, "Спасибо, что воспользовались нашим калькулятором!\nМы свяжемся с Вами *в ближайшее время*. Хорошего дня!", parse_mode='Markdown')
def get_debtors_by_group(call): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='grdebtor_') bot.send_message(chat_id=call.from_user.id, text='Вибери групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(call.from_user.id, show_debtors_by_group_callback)
def add_profcomdebtor(call): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='debtorgroup_') bot.send_message(chat_id=call.from_user.id, text='Вибери групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(call.from_user.id, get_group_for_profcomdebt)
def step_2(message, price, choice): global app_price app_price[message.chat.id] = 0 app_price[message.chat.id] += price bot.send_message(message.chat.id, "Текущая стоимость: *" + str(app_price[message.chat.id]) + "$*. \n\nНужен ли Вам *дизайн проекта*?", reply_markup=k.keyboard_2_screen, parse_mode='Markdown')
def profcom_debtor_keyboard(message): keyboard = InlineKeyboardMarkup() keyboard.add(InlineKeyboardButton(text=f'Додати боржника {emojize(":heavy_plus_sign:", use_aliases=True)}', callback_data='add_debtor')) keyboard.add(InlineKeyboardButton(text=f'Видалити боржника {emojize(":heavy_minus_sign:", use_aliases=True)}', callback_data='delete_debtor')) keyboard.add(InlineKeyboardButton(text=f'Боржники за групою {emojize(":busts_in_silhouette:", use_aliases=True)}', callback_data='debtors_of_group')) bot.send_message(message.from_user.id, text='Вибери дію:', reply_markup=keyboard)
def headman_assignment(call): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='headmangroup_') bot.send_message(chat_id=call.from_user.id, text='Вибери групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(call.from_user.id, get_group_headman_assign)
def headman_changing(call): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='chheadgroup_') bot.send_message(chat_id=call.from_user.id, text='Змінити старосту групи:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(call.from_user.id, get_group_headman_change)
def add_extragrade(message): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='extragradegroup_') bot.send_message(chat_id=message.from_user.id, text='Вибери групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(message.from_user.id, get_group_for_extragrade)
def register(message): group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='group_') bot.delete_message(chat_id=message.from_user.id, message_id=message.message.message_id) bot.send_message(chat_id=message.from_user.id, text='Вибери свою групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(message.from_user.id, get_group)
def save_extragrade(message, student_id): ExtraGrade.add_extragrade(extra_grade=int(message.text), student_id=student_id) student = Student.get_student_by_id(student_id) bot.send_message(chat_id=message.from_user.id, text=f'Додатковий бал студенту ' f'<a href="t.me/{student.username}">{student.name}</a>' f' було поставлено {emojize(":white_check_mark:", use_aliases=True)}', parse_mode='html') bot.send_message(chat_id=message.from_user.id, text='Вибери пункт меню:', reply_markup=make_role_replykeyboard(studdekan_buttons))
def get_gradebook_id(message, student): gradebook_id = message.text if bool(re.search('^\d+(\.\d+)*$', gradebook_id)) is False: message = bot.send_message( chat_id=message.from_user.id, text='Неккоректний ввід\nВведи номер своєї залікової книжки') bot.register_next_step_handler(message, get_gradebook_id, student) else: student.gradebook_id = gradebook_id message = bot.send_message(chat_id=message.from_user.id, text='Введи свій номер телефону') bot.register_next_step_handler(message, get_phone, student)
def register_for_admins(message): if Student.get_student_by_id(message.from_user.id) is None: group_keyboard = make_keyboard(keyboard_type='group', elem_list=Group.get_groups(), marker='group_') bot.send_message(chat_id=message.from_user.id, text='Вибери свою групу:', reply_markup=group_keyboard) bot.register_next_step_handler_by_chat_id(message.from_user.id, get_group) else: bot.send_message(chat_id=message.from_user.id, text='Ти вже зареєстрований') bot.clear_step_handler_by_chat_id(chat_id=message.from_user.id)
def name_event(message): if message.text == '/cancel': bot.send_message( chat_id=message.from_user.id, text= f'Дія була скасована {emojize(":white_check_mark:", use_aliases=True)}' ) bot.clear_step_handler_by_chat_id(chat_id=message.from_user.id) return event = Event.add_event(name=message.text) message = bot.send_message(chat_id=message.from_user.id, text="Місце проведення") bot.register_next_step_handler(message, place_event, event.id)
def get_group_for_profcomdebt(message): group = message.text group_id = Group.get_id_by_group(group) if group_id is False: bot.clear_step_handler_by_chat_id(message.from_user.id) bot.send_message(chat_id=message.from_user.id, text='Вибери пункт меню:', reply_markup=make_role_replykeyboard(studdekan_buttons)) else: student_keyboard = make_keyboard(keyboard_type='student', elem_list=[student for student in Student.get_students_by_group(group_id)], marker=f'debtor_{Group.get_group_by_id(group_id)}_') bot.send_message(chat_id=message.from_user.id, text='Вибери студента:', reply_markup=student_keyboard)
def send_rating_file(message): file_name = 'Рейтинг' file_path = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' stud_dict = prepare_student_grades_table() make_student_grades_table(students_dict=stud_dict, file_name=file_name, file_path=file_path) doc = open(f'{file_path}{file_name}.xlsx', 'rb') bot.send_message(chat_id=message.from_user.id, text='Документ з рейтингом студентів') bot.send_document(chat_id=message.from_user.id, data=doc)
def get_name(message, student): name = message.text if bool(re.search("[^А-ЯҐЄІIЇа-яiієїґ' -]+", name)) or len(name.split(' ')) != 3 or len(name) > 256: message = bot.send_message( chat_id=message.from_user.id, text=f'Неккоректний ввід {emojize(":x:", use_aliases=True)}' f'\nВведи ПІБ українською мовою') bot.register_next_step_handler(message, get_name, student) else: student.name = name message = bot.send_message(chat_id=message.from_user.id, text='Введи номер своєї залікової книжки') bot.register_next_step_handler(message, get_gradebook_id, student)
def show_studying_keyboard(message): keyboard = InlineKeyboardMarkup() keyboard.add( InlineKeyboardButton( text=f'Методичні матеріали {emojize(":books:", use_aliases=True)}', callback_data='study_methods')) keyboard.add( InlineKeyboardButton( text= f'Моя успішність {emojize(":chart_with_upwards_trend:", use_aliases=True)}', callback_data='my_progress')) bot.send_message(message.from_user.id, text='Вибери:', reply_markup=keyboard)