Пример #1
0
def teachers_schelude(call):
    file_name = 'Розклад викладачів'
    file_path = os.path.dirname(
        os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/'

    doc = open(f'{file_path}{file_name}.xls', 'rb')

    bot.send_document(chat_id=call.from_user.id, data=doc)
Пример #2
0
def send_message_or_file(message, subject_id):
    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)
    elif message.content_type not in ['text', 'photo', 'document']:
        bot.send_message(chat_id=message.from_user.id,
                         text=f'Файл/повідомлення не відправлено {emojize(":x:", use_aliases=True)}\n'
                              'Некорректний формат\n\n'
                              'Відправте файл/повідомлення боту і він його передасть всім студентам цього предмету\n\n'
                              'Щоб скасувати дію можна скористатися командою /cancel')

        bot.register_next_step_handler(message, send_message_or_file, subject_id)
    else:
        subject = Subject.get_subject_fullname_by_id(subject_id)
        students = []

        for group in Group.get_groups():
            for student in Student.get_students_by_group(group.id):
                students.append(student)

        caption = '' if message.caption is None else message.caption

        if message.content_type == 'text':
            for student in students:
                try:
                    bot.send_message(chat_id=student.id,
                                     text=f'Повідомлення по предмету {subject}:\n\n{message.text}')
                except ApiException:
                    continue
            bot.send_message(chat_id=message.from_user.id,
                             text=f'Повідомлення було відправлено '
                                  f'{emojize(":white_check_mark:", use_aliases=True)}')
        elif message.content_type == 'document':
            for student in students:
                try:
                    bot.send_document(chat_id=student.id,
                                      data=message.document.file_id,
                                      caption=f'Методичний матеріал з предмету {subject} '
                                              f'\n\n{caption}')
                except ApiException:
                    continue
            bot.send_message(chat_id=message.from_user.id,
                             text=f'Файл було відправлено {emojize(":white_check_mark:", use_aliases=True)}')
            save_file_to_local(message.document.file_id, subject)
        elif message.content_type == 'photo':
            for student in students:
                try:
                    bot.send_photo(chat_id=student.id,
                                   photo=message.photo[-1].file_id,
                                   caption=f'Методичний матеріал з предмету {subject} '
                                           f'\n\n{caption}')

                except ApiException:
                    continue
            bot.send_message(chat_id=message.from_user.id,
                             text=f'Фото було відправлено {emojize(":white_check_mark:", use_aliases=True)}')
            save_file_to_local(message.photo[-1].file_id, subject)
Пример #3
0
def send_props(call):
    file_name = 'Платіжні реквізити'
    file_path = os.path.dirname(
        os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/'

    doc = open(f'{file_path}{file_name}.docx', 'rb')

    bot.delete_message(chat_id=call.from_user.id,
                       message_id=call.message.message_id)

    bot.send_document(chat_id=call.from_user.id, data=doc)
Пример #4
0
def send_student_events_file(call):
    file_name = 'Відвідування заходів'
    file_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/'

    group_dict = prepare_student_events_table()
    make_student_events_table(group_dict=group_dict, file_name=file_name, file_path=file_path)

    doc = open(f'{file_path}{file_name}.xlsx', 'rb')

    bot.edit_message_text(chat_id=call.from_user.id,
                          message_id=call.message.message_id,
                          text='Документ з відвідуваннями заходів:')
    bot.send_document(chat_id=call.from_user.id, data=doc)
Пример #5
0
def send_event_visitors_file(call):
    event_id = call.data.split('_')[1]
    event_name = Event.get_event(event_id).name

    file_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/'

    stud_dict, otherfac_list = prepare_event_visitors_table(event_id)
    make_event_visitors_table(visitors_dict=stud_dict, otherfac_list=otherfac_list, event_name=event_name, file_path=file_path)

    doc = open(f'{file_path}{event_name}.xlsx', 'rb')

    bot.edit_message_text(chat_id=call.from_user.id,
                          message_id=call.message.message_id,
                          text='Документ з учасниками:')
    bot.send_document(chat_id=call.from_user.id, data=doc)
Пример #6
0
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)
Пример #7
0
def get_study_methods(call):
    subject_id = call.data.split('_')[1]
    subject_name = Subject.get_subject_name_by_id(subject_id)

    subject_path = os.path.dirname(
        os.path.dirname(os.path.dirname(
            os.path.abspath(__file__)))) + f'/tmp/{subject_name}'
    if os.path.exists(subject_path) and os.listdir(subject_path):
        bot.edit_message_text(
            chat_id=call.from_user.id,
            message_id=call.message.message_id,
            text=f'Методичні матеріали по предмету {subject_name}')

        for file_name in next(os.walk(subject_path))[2]:
            doc = open(f'{subject_path}/{file_name}', 'rb')
            bot.send_document(chat_id=call.from_user.id, data=doc)
    else:
        bot.edit_message_text(chat_id=call.from_user.id,
                              message_id=call.message.message_id,
                              text='Методичних матеріалів немає')