ANALYSE-8/views/main_menu.py
2022-10-07 22:53:23 +02:00

105 lines
3.7 KiB
Python

import os
from services.state import State
from services.utils import Utils
from ui.selection_menu import SelectionMenu
from views.advisor_menu import AdvisorMenu
from views.backup_menu import BackupMenu
from views.member_menu import MemberMenu
from views.system_admin_menu import SystemAdminMenu
class MainMenu:
@staticmethod
def display():
while True:
Utils.clear_screen()
main_menu = SelectionMenu(f"Welcome {State.CURRENT_USER.username}!")
if State.CURRENT_USER.role == "ADVISOR" or State.CURRENT_USER.role == "SYSTEM_ADMIN":
main_menu.add_option("Update My Password", None)
main_menu.add_option("Manage Members", MainMenu.manage_members)
else:
main_menu.add_option("Manage Members", MainMenu.manage_members)
if State.CURRENT_USER.role == "SYSTEM_ADMIN" or State.CURRENT_USER.role == "SUPER_ADMIN":
main_menu.add_option("Manage Advisors", MainMenu.manage_advisors)
if State.CURRENT_USER.role == "SUPER_ADMIN":
main_menu.add_option("Manage Admins", MainMenu.manage_admins)
main_menu.add_option("Manage Backups", MainMenu.manage_backups)
main_menu.add_option("Exit...", None)
selected_option = main_menu.display().input_option()
if selected_option == None:
exit(0)
selected_option()
@staticmethod
def manage_members():
Utils.clear_screen()
menu = SelectionMenu(f"Manage Members")
menu.add_option("Add Member", MemberMenu.add_member)
menu.add_option("Edit Member", MemberMenu.edit_member)
menu.add_option("Remove Member", MemberMenu.remove_member)
menu.add_option("Browse Member", MemberMenu.browse_member)
menu.add_option("Back to main menu", None)
selected_option = menu.display().input_option()
if selected_option == None:
return
selected_option()
@staticmethod
def manage_advisors():
Utils.clear_screen()
menu = SelectionMenu(f"Manage Advisors")
menu.add_option("Add Advisor", AdvisorMenu.add_advisor)
menu.add_option("Edit Advisor", AdvisorMenu.edit_advisor)
menu.add_option("Remove Advisor", AdvisorMenu.remove_advisor)
menu.add_option("Browse Advisor", AdvisorMenu.browse_advisor)
menu.add_option("Back to main menu", None)
selected_option = menu.display().input_option()
if selected_option == None:
return
selected_option()
@staticmethod
def manage_admins():
Utils.clear_screen()
menu = SelectionMenu(f"Manage System Admins")
menu.add_option("Add System Admin", SystemAdminMenu.add_admin)
menu.add_option("Edit System Admin", SystemAdminMenu.edit_admin)
menu.add_option("Remove System Admin", SystemAdminMenu.remove_admin)
menu.add_option("Browse System Admin", SystemAdminMenu.browse_admins)
menu.add_option("Back to main menu", None)
selected_option = menu.display().input_option()
if selected_option == None:
return
selected_option()
@staticmethod
def manage_backups():
Utils.clear_screen()
menu = SelectionMenu(f"Manage Backups")
menu.add_option("Create Backup", BackupMenu.create_backup)
menu.add_option("Import Backup", BackupMenu.import_backup)
menu.add_option("Back to main menu", None)
selected_option = menu.display().input_option()
if selected_option == None:
return
selected_option()