Exemplo n.º 1
0
def question_menu():
    """Меню "другие вопросы" """
    q_choice = [[
        KeyboardButton(text="Типичные вопросы" + create_smile("\\u2754"))
    ], [
        KeyboardButton(text="Задать вопрос" + create_smile("\\ud83d\\udcdd"))
    ], [KeyboardButton(text="Моя должность" + create_smile("\\ud83d\\udcbc"))],
                [KeyboardButton(text="В меню")]]
    menu = ReplyKeyboardMarkup(keyboard=q_choice, resize_keyboard=True)
    return menu
Exemplo n.º 2
0
def deadlines_menu(user=None):
    """меню для просмотра и создания событий"""
    q_choice = [[
        KeyboardButton(text="Покажи мне события" +
                       create_smile("\\ud83d\\uddd3")),
    ]]
    if user.id == admin_id:
        q_choice.append([
            KeyboardButton(text="Создать событие" +
                           create_smile("\\ud83d\\uddd3"))
        ])
    q_choice.append([KeyboardButton(text="В меню")])

    menu = ReplyKeyboardMarkup(keyboard=q_choice, resize_keyboard=True)
    return menu
Exemplo n.º 3
0
def main_menu(user=None):
    """Главное меню"""
    keys = [[
        KeyboardButton(text="Покажи мне документацию" +
                       create_smile("\\ud83d\\udcc4")),
        KeyboardButton(text="Сайт компании" + create_smile("\\ud83c\\udf10"))
    ],
            [
                KeyboardButton(text="Другие вопросы" +
                               create_smile("\\u2753")),
                KeyboardButton(text="События" + create_smile("\\ud83d\\uddd3"))
            ]]
    if user:
        if user.id == admin_id:
            keys.append([KeyboardButton(text="Просмотреть новые заявки")])
    menu = ReplyKeyboardMarkup(keyboard=keys, resize_keyboard=True)
    return menu
Exemplo n.º 4
0
async def typical_questions(message: Message):
    """
    Команда типичные вопросы
    To Do: сделать считывание типичных вопросов из файла
    :param message:
    :return:
    """
    with codecs.open("..\\questions\\typical_q.json", "r", "utf_8_sig") as file:
        json_str = file.read()
    list_question_obj = json.loads(json_str)
    for i in range(len(list_question_obj)):
        question = create_smile("\\u2705") + list_question_obj[i]['question'] + "\n\n" + list_question_obj[i]['answer']
        await message.answer(text=f"{question}")
    await message.answer(text="Если остались вопросы, вы можете задать их администатору.", reply_markup=back_to_menu())
Exemplo n.º 5
0
        # await message.answer(text="Запрос на вашу регистрацию направлен администратору", reply_markup=hide_menu())


@dispatcher.message_handler(Command("menu"), state=Authorized_states)
@dispatcher.message_handler(Text("В меню"), state=Authorized_states)
async def general_menu(message: Message):  # , state: FSMContext
    """
    Команда показать меню
    :param message:
    :return:
    """
    # async with state.proxy() as userdata:
    #     userdata.clear()
    await message.answer(text="Выбери действие",
                         reply_markup=main_menu(message.from_user))
    await States.COMMAND_STATE.set()


@dispatcher.message_handler(Text("Сайт компании" +
                                 create_smile("\\ud83c\\udf10")),
                            state=Authorized_states)
async def go_to_web_site(message: Message):
    await message.answer(text=f"<a href=\"{ROSATOM_SITE}\">{ROSATOM_SITE}</a>",
                         parse_mode="HTML")


@dispatcher.errors_handler()
async def on_error(update, error):
    print(error)
    return True
Exemplo n.º 6
0
from aiogram.types import Message
from aiogram.dispatcher.filters import Text

from oauth2client.client import HttpAccessTokenRefreshError

from app import dispatcher
from main.config import States, Authorized_states, admin_id
from main.helpers.menu import back_to_menu, deadlines_menu, hide_menu, main_menu
from main.helpers.smiles import create_smile
from deadlines.helpers.Calendar import Calendar

from datetime import datetime
import time


@dispatcher.message_handler(Text("События" + create_smile("\\ud83d\\uddd3")),
                            state=Authorized_states)
async def show_calendar_menu(message: Message):
    """
    Меню "События" (название может меняться)
    :param message:
    :return:
    """
    await message.answer(text="Выбери действие: \n",
                         reply_markup=deadlines_menu(message.from_user))


@dispatcher.message_handler(Text("Покажи мне события" +
                                 create_smile("\\ud83d\\uddd3")),
                            state=Authorized_states)
async def show_events(message: Message):
Exemplo n.º 7
0
from aiogram.dispatcher import FSMContext
from aiogram.types import Message
from aiogram.dispatcher.filters import Text

from main.config import admin_id, States, Authorized_states
from app import bot, dispatcher
from main.handlers import general_menu
from main.helpers.menu import hide_menu, question_menu, back_to_menu
from main.helpers.smiles import create_smile
from DatabaseModels.Worker import Worker
import json
import codecs


@dispatcher.message_handler(Text("Другие вопросы" + create_smile("\\u2753")), state=Authorized_states)
async def other_questions(message: Message):
    """
    Меню "Другие вопросы" (название может меняться)
    :param message:
    :return:
    """
    await message.answer(text="Другие вопросы:\n", reply_markup=question_menu())


# Другие вопросы -> Типичные вопросы. Типичные вопросы можно прям тут описать - это нормальная практика.
# Штук 6-8 будет достаточно
@dispatcher.message_handler(Text("Типичные вопросы" + create_smile("\\u2754")), state=Authorized_states)
async def typical_questions(message: Message):
    """
    Команда типичные вопросы
    To Do: сделать считывание типичных вопросов из файла
Exemplo n.º 8
0
from aiogram.types import Message
from aiogram.dispatcher.filters import Text

from oauth2client.client import HttpAccessTokenRefreshError

from app import dispatcher
from main.config_dev import States, Authorized_states, admin_id
from main.helpers.menu import back_to_menu, deadlines_menu, hide_menu, main_menu
from main.helpers.smiles import create_smile
from deadlines.helpers.Calendar import Calendar

from datetime import datetime
import time


@dispatcher.message_handler(Text("События" + create_smile("\\ud83d\\uddd3")), state=Authorized_states)
async def show_calendar_menu(message: Message):
    """
    Меню "События" (название может меняться)
    :param message:
    :return:
    """
    await message.answer(text="Выбери действие: \n", reply_markup=deadlines_menu(message.from_user))


@dispatcher.message_handler(Text("Покажи мне события" + create_smile("\\ud83d\\uddd3")), state=Authorized_states)
async def show_events(message: Message):
    """
        Команда показывает события из общедоступного календаря
        :param message:
        :return:
Exemplo n.º 9
0
from aiogram.types import Message
from aiogram.dispatcher.filters import Text

import os

from app import dispatcher
from main.helpers.menu import hide_menu, back_to_menu
from documentation.helpers.send_document import upload_document, get_all_documents
from main.helpers.smiles import create_smile
from main.config import documents_directory, Authorized_states


@dispatcher.message_handler(Text("Покажи мне документацию" +
                                 create_smile("\\ud83d\\udcc4")),
                            state=Authorized_states)
async def show_documentation(message: Message):
    """
    Команда показать документацию
    :param message:
    :return:
    """
    await message.answer(text="Вот список основных документов: \n",
                         reply_markup=back_to_menu())
    # directory = os.path.join("..", "documentation", "documentation_files")
    for file in get_all_documents(documents_directory):
        document = upload_document(os.path.join(documents_directory, file))
        await message.answer_document(document=document)
Exemplo n.º 10
0
from aiogram.dispatcher import FSMContext
from aiogram.types import Message
from aiogram.dispatcher.filters import Text

from main.config_dev import admin_id, States, Authorized_states
from app import bot, dispatcher
from main.handlers import general_menu
from main.helpers.menu import hide_menu, question_menu, back_to_menu
from main.helpers.smiles import create_smile
from DatabaseModels.Worker import Worker
import json
import codecs


@dispatcher.message_handler(Text("Другие вопросы" + create_smile("\\u2753")),
                            state=Authorized_states)
async def other_questions(message: Message):
    """
    Меню "Другие вопросы" (название может меняться)
    :param message:
    :return:
    """
    await message.answer(text="Другие вопросы:\n",
                         reply_markup=question_menu())


# Другие вопросы -> Типичные вопросы. Типичные вопросы можно прям тут описать - это нормальная практика.
# Штук 6-8 будет достаточно
@dispatcher.message_handler(Text("Типичные вопросы" + create_smile("\\u2754")),
                            state=Authorized_states)
async def typical_questions(message: Message):