Beispiel #1
0
 def add(cls, socket):
     response = receive(socket=socket)
     if response == ERROR:
         print("Среди пользователей нет экспертов")
         enter_to_continue()
         return
     obj = {"description": string_input("Введите описание проблемы")}
     num = 1
     obj["decisions"] = [string_input(f"Введите решение проблемы №{num}")]
     num += 1
     decision = string_input(f"Введите решение проблемы №{num}")
     while decision in obj["decisions"]:
         print("Решения одной проблемы должны быть уникальны")
         decision = string_input(f"Введите решение проблемы №{num}")
     obj["decisions"].append(decision)
     while True:
         choice = menu(title="Добавить ещё?", options=["Да"])
         if choice == "1":
             num += 1
             decision = string_input(f"Введите решение проблемы №{num}")
             while decision in obj["decisions"]:
                 print("Решения одной проблемы должны быть уникальны")
                 decision = string_input(f"Введите решение проблемы №{num}")
             obj["decisions"].append(decision)
         elif choice == "2":
             send(socket=socket, data=obj)
             print("Проблема добавлена успешно")
             enter_to_continue()
             break
Beispiel #2
0
 def admin_menu(socket):
     while True:
         choice = menu(
             title="Меню администратора",
             options=[
                 "Услуги",
                 "Заказы",
                 "Пользователи",
                 "Компании",
                 "Принятие решений",
             ],
         )
         if choice == "1":
             send(socket=socket, data=choice)
             Service.menu(socket=socket)
         elif choice == "2":
             send(socket=socket, data=choice)
             Order.menu(socket=socket)
         elif choice == "3":
             send(socket=socket, data=choice)
             Users.menu(socket=socket)
         elif choice == "4":
             send(socket=socket, data=choice)
             Company.menu(socket=socket)
         elif choice == "5":
             send(socket=socket, data=choice)
             Problems.menu(socket=socket)
         elif choice == "6":
             send(socket=socket, data=BREAK)
             break
Beispiel #3
0
 def filter(cls, socket):
     while True:
         choice = menu(
             title="Фильтрация по заказам",
             options=[
                 "По id",
                 "По услуге",
                 "По покупателю",
                 "По количеству",
                 "Вывод",
             ],
         )
         if choice == "1":
             send(socket=socket, data=choice)
             obj = {
                 "min": integer_input("Введите минимальный id"),
                 "max": integer_input("Введите максимальный id"),
             }
             while int(obj["min"]) > int(obj["max"]):
                 print(
                     "Минимальное значение не должно быть больше максимального"
                 )
                 obj = {
                     "min": integer_input("Введите минимальный id"),
                     "max": integer_input("Введите максимальный id"),
                 }
             send(socket=socket, data=obj)
         elif choice == "2":
             send(socket=socket, data=choice)
             clear()
             receive_and_print(socket=socket)
             send(socket=socket, data=integer_input("Введите id услуги"))
         elif choice == "3":
             send(socket=socket, data=choice)
             clear()
             receive_and_print(socket=socket)
             send(socket=socket,
                  data=integer_input("Введите id покупателя"))
         elif choice == "4":
             send(socket=socket, data=choice)
             obj = {
                 "min": integer_input("Введите минимальное количество"),
                 "max": integer_input("Введите максимальное количество"),
             }
             while int(obj["min"]) > int(obj["max"]):
                 print(
                     "Минимальное значение не должно быть больше максимального"
                 )
                 obj = {
                     "min": integer_input("Введите минимальное количество"),
                     "max":
                     integer_input("Введите максимальное количество"),
                 }
             send(socket=socket, data=obj)
         elif choice == "5":
             send(socket=socket, data=choice)
             cls.print(socket=socket)
         elif choice == "6":
             send(socket=socket, data=BREAK)
             break
Beispiel #4
0
 def edit(cls, socket):
     clear()
     receive_and_print(socket=socket)
     id_ = integer_input("Введите id")
     send(socket=socket, data=id_)
     response = receive(socket=socket)
     if response == GOOD:
         while True:
             choice = menu(title="Изменение услуги",
                           options=["Название", "Цену"])
             if choice == "1":
                 send(socket=socket, data=choice)
                 name = string_input("Введите название")
                 send(socket=socket, data=name)
                 print("Успешно изменено")
                 enter_to_continue()
             elif choice == "2":
                 send(socket=socket, data=choice)
                 price = integer_input("Введите цену")
                 send(socket=socket, data=price)
                 print("Успешно изменено")
                 enter_to_continue()
             elif choice == "3":
                 send(socket=socket, data=BREAK)
                 break
     else:
         print("Неверный id")
         enter_to_continue()
Beispiel #5
0
    def login(socket):
        while True:
            choice = menu(
                title="Главное меню",
                exit_option="Выход",
                options=[
                    "Вход как администратор",
                    "Вход как пользователь",
                    "Вход как эксперт",
                ],
            )
            if choice == "1":
                obj = {
                    "login": login_input(),
                    "password": password_input(),
                    "permissions": "admin",
                }
                send(socket=socket, data=obj)
                response = receive(socket=socket)
                if response == GOOD:
                    User.admin_menu(socket=socket)
                else:
                    print("Неверный логин или пароль")
                    enter_to_continue()
            elif choice == "2":
                obj = {
                    "login": login_input(),
                    "password": password_input(),
                    "permissions": "default",
                }

                send(socket=socket, data=obj)
                response = receive(socket=socket)
                if response == GOOD:
                    User.default_menu(socket=socket)
                else:
                    print("Неверный логин или пароль")
                    enter_to_continue()
            elif choice == "3":
                obj = {
                    "login": login_input(),
                    "password": password_input(),
                    "permissions": "expert",
                }
                send(socket=socket, data=obj)
                response = receive(socket=socket)
                if response == GOOD:
                    User.expert_menu(socket=socket)
                else:
                    print("Неверный логин или пароль")
                    enter_to_continue()
            elif choice == "4":
                send(socket=socket, data=BREAK)
                break
Beispiel #6
0
 def sort(cls, socket):
     while True:
         choice = menu(
             title="Сортировка компаний",
             options=["По id", "По названию", "По количеству услуг"],
         )
         if choice in ("1", "2", "3"):
             send(socket=socket, data=choice)
             cls.print(socket=socket)
         elif choice == "4":
             send(socket=socket, data=BREAK)
             break
Beispiel #7
0
 def sort(cls, socket):
     while True:
         choice = menu(
             title="Сортировка по услугам",
             options=["По id", "По названию", "По цене", "По компании"],
         )
         if choice in ("1", "2", "3", "4"):
             send(socket=socket, data=choice)
             cls.print(socket=socket)
         elif choice == "5":
             send(socket=socket, data=BREAK)
             break
Beispiel #8
0
    def filter(cls, socket):
        while True:
            choice = menu(
                title="Фильтрация по услугам",
                options=[
                    "По id", "По названию", "По цене", "По компании", "Вывод"
                ],
            )

            if choice == "1":
                send(socket=socket, data=choice)
                obj = {
                    "min": integer_input("Введите минимальный id"),
                    "max": integer_input("Введите максимальный id"),
                }
                while int(obj["min"]) > int(obj["max"]):
                    print(
                        "Минимальное значение не должно быть больше максимального"
                    )
                    obj = {
                        "min": integer_input("Введите минимальный id"),
                        "max": integer_input("Введите максимальный id"),
                    }
                send(socket=socket, data=obj)
            elif choice == "2":
                send(socket=socket, data=choice)
                name = string_input("Введите название")
                send(socket=socket, data=name)
            elif choice == "3":
                send(socket=socket, data=choice)
                obj = {
                    "min": integer_input("Введите минимальную цену"),
                    "max": integer_input("Введите максимальную цену"),
                }
                while int(obj["min"]) > int(obj["max"]):
                    print(
                        "Минимальное значение не должно быть больше максимального"
                    )
                    obj = {
                        "min": integer_input("Введите минимальную цену"),
                        "max": integer_input("Введите максимальную цену"),
                    }
                send(socket=socket, data=obj)
            elif choice == "4":
                send(socket=socket, data=choice)
                send(socket=socket,
                     data=string_input("Введите название компании"))
            elif choice == "5":
                send(socket=socket, data=choice)
                cls.print(socket=socket)
            elif choice == "6":
                send(socket=socket, data=BREAK)
                break
Beispiel #9
0
 def sort(cls, socket):
     while True:
         choice = menu(
             title="Сортировка по заказам",
             options=[
                 "По id", "По услугам", "По покупателю", "По количеству"
             ],
         )
         if "1" <= choice <= "4":
             send(socket=socket, data=choice)
             cls.print(socket=socket)
         elif choice == "5":
             send(socket=socket, data=BREAK)
             break
Beispiel #10
0
 def expert_menu(socket):
     while True:
         choice = menu(
             title="Меню эксперта",
             options=["Проголосовать", "Просмотреть принятые решения"],
         )
         if choice == "1":
             send(socket=socket, data=choice)
             Problems.vote(socket=socket)
         elif choice == "2":
             send(socket=socket, data=choice)
             Problems.print_voted(socket=socket)
         elif choice == "3":
             send(socket=socket, data=BREAK)
             break
Beispiel #11
0
 def default_menu(socket):
     while True:
         choice = menu(
             title="Меню компании",
             options=[
                 "Купить услугу",
                 "Просмотр заказанных услуг",
                 "Сменить пароль",
             ],
         )
         if choice == "1":
             send(socket=socket, data=choice)
             Order.add(socket=socket)
         elif choice == "2":
             send(socket=socket, data=choice)
             Order.print_for_user(socket=socket)
         elif choice == "3":
             send(socket=socket, data=choice)
             Users.change_password(socket=socket)
         elif choice == "4":
             send(socket=socket, data=BREAK)
             break
Beispiel #12
0
 def choose(cls, **kwargs):
     choice = menu(title=cls.menu_title, options=cls.menu_options)
     send(socket=kwargs["socket"], data=choice)
     return choice
Beispiel #13
0
    def add(cls, socket):
        user = {}
        while True:
            role_choice = menu(
                title="Добавление пользователя",
                options=["Администратор", "Покупатель", "Эксперт"],
            )
            if role_choice == "1":
                send(socket=socket, data=role_choice)
                user["permissions"] = "admin"
                user["login"] = login_input()
                send(socket=socket, data=user["login"])
                response = receive(socket=socket)
                if response == GOOD:
                    user["password"] = password_input()
                    send(socket=socket, data=user)
                    print("Пользователь добавлен успешно")
                    enter_to_continue()
                else:
                    print("Такой логин уже существует")
                    enter_to_continue()
            elif role_choice == "2":
                send(socket=socket, data=role_choice)
                user["permissions"] = "default"
                user["login"] = login_input()
                send(socket=socket, data=user["login"])
                response = receive(socket=socket)
                if response == GOOD:
                    user["password"] = password_input()
                    send(socket=socket, data=user)
                    print("Пользователь добавлен успешно")
                    enter_to_continue()
                else:
                    print("Такой логин уже существует")
                    enter_to_continue()
            elif role_choice == "3":
                send(socket=socket, data=role_choice)
                user["permissions"] = "expert"
                user["login"] = login_input()
                send(socket=socket, data=user["login"])
                response = receive(socket=socket)
                if response == GOOD:
                    clear()
                    pos_mess = ("Выберете должнсть\n"
                                f"1. {Position.engineer.value}\n"
                                f"2. {Position.head_laboratory.value}\n"
                                f"3. {Position.complex_manager.value}\n"
                                f"4. {Position.director.value}\n")

                    send(socket=socket, data=select_position(pos_mess))
                    receive(socket=socket)
                    clear()
                    academic_degree_mess = (
                        "Выберете ученую степень\n"
                        f"1. {AcademicDegree.no_degree.value}\n"
                        f"2. {AcademicDegree.candidate.value}\n"
                        f"3. {AcademicDegree.phd.value}\n"
                        f"4. {AcademicDegree.academic.value}\n")
                    send(socket=socket,
                         data=select_academic_degree(academic_degree_mess))
                    receive(socket=socket)

                    user["password"] = password_input()
                    send(socket=socket, data=user)
                    print("Пользователь добавлен успешно")
                    enter_to_continue()
                else:
                    print("Такой логин уже существует")
                    enter_to_continue()
            elif role_choice == "4":
                send(socket=socket, data=BREAK)
                break