88from app .models .student import Student
99from app .logic .tracy import Tracy
1010from app .logic .userInsertFunctions import createStudentFromTracy , createSupervisorFromTracy , createUser
11- from app .logic .adminManagement import searchForAdmin , getUser , addAdmin , removeAdmin
11+ from app .logic .adminManagement import searchForAdmin , getUser
1212from app .logic .utils import adminFlashMessage
1313
1414
@@ -25,7 +25,9 @@ def admin_Management():
2525 elif currentUser .supervisor :
2626 return render_template ('errors/403.html' ), 403
2727
28- users = User .select ()
28+ users = (User .select (User ,Supervisor ,Student )
29+ .join (Supervisor ,join_type = JOIN .LEFT_OUTER ).switch ()
30+ .join (Student ,join_type = JOIN .LEFT_OUTER ))
2931 return render_template ( 'admin/adminManagement.html' ,
3032 title = ('Admin Management' ),
3133 users = users
@@ -47,35 +49,43 @@ def adminSearch():
4749
4850@admin .route ("/adminManagement/userInsert" , methods = ['POST' ])
4951def manageLaborAdmin ():
50- if request .form .get ("addAdmin" ):
51- newAdmin = getUser ('addAdmin' )
52- addAdmin (newAdmin , 'labor' )
53- adminFlashMessage (newAdmin , 'added' , 'Labor' )
52+ actionMap = {
53+ "addLaborAdmin" : {"selectPickerID" : "addAdmin" , "type" : "Labor" , "action" : "add" , "pretty" : "Labor" },
54+ "removeLaborAdmin" : {"selectPickerID" : "removeAdmin" , "type" : "Labor" , "action" : "remove" , "pretty" : "Labor" },
55+ "addFinAidAdmin" : {"selectPickerID" : "addFinancialAidAdmin" , "type" : "FinancialAid" , "action" : "add" , "pretty" : "Financial Aid" },
56+ "removeFinAidAdmin" : {"selectPickerID" : "removeFinancialAidAdmin" , "type" : "FinancialAid" , "action" : "remove" , "pretty" : "Financial Aid" },
57+ "addSaasAdmin" : {"selectPickerID" : "addSAASAdmin" , "type" : "Saas" , "action" : "add" , "pretty" : "SAAS" },
58+ "removeSaasAdmin" : {"selectPickerID" : "removeSAASAdmin" , "type" : "Saas" , "action" : "remove" , "pretty" : "SAAS" },
59+ }
5460
55- elif request .form .get ("removeAdmin" ):
56- oldAdmin = getUser ('removeAdmin' )
57- removeAdmin (oldAdmin , 'labor' )
58- adminFlashMessage (oldAdmin , 'removed' , 'Labor' )
61+ key = request .form .get ('action' )
62+ meta = actionMap [key ]
63+ user = getUser (actionMap [key ]['selectPickerID' ])
5964
60- elif request .form .get ("addFinancialAidAdmin" ):
61- newAdmin = getUser ('addFinancialAidAdmin' )
62- addAdmin (newAdmin , 'finAid' )
63- adminFlashMessage (newAdmin , 'added' , 'Financial Aid' )
64-
65- elif request .form .get ("removeFinancialAidAdmin" ):
66- oldAdmin = getUser ('removeFinancialAidAdmin' )
67- removeAdmin (oldAdmin , 'finAid' )
68- adminFlashMessage (oldAdmin , 'removed' , 'Financial Aid' )
65+ # pick addAdmin or removeAdmin dynamically
66+ if meta ['action' ] == 'add' :
67+ addAdmin (user , meta ['type' ])
68+ else :
69+ removeAdmin (user , meta ['type' ])
70+
71+ flashMessage (user ,
72+ 'added' if meta ["action" ] == "add" else 'removed' ,
73+ meta ["pretty" ])
74+
75+ return redirect (url_for ('admin.admin_Management' ))
6976
70- elif request .form .get ("addSAASAdmin" ):
71- newAdmin = getUser ('addSAASAdmin' )
72- addAdmin (newAdmin , 'saas' )
73- adminFlashMessage (newAdmin , 'added' , 'SAAS' )
77+ def addAdmin (user , adminType ):
78+ setattr (user , f"is{ adminType } Admin" , True )
79+ user .save ()
7480
75- elif request .form .get ("removeSAASAdmin" ):
76- oldAdmin = getUser ('removeSAASAdmin' )
77- removeAdmin (oldAdmin , 'saas' )
78- adminFlashMessage (oldAdmin , 'removed' , 'SAAS' )
81+ def removeAdmin (user , adminType ):
82+ setattr (user , f"is{ adminType } Admin" , False )
83+ user .save ()
7984
80- return redirect (url_for ('admin.admin_Management' ))
85+ def flashMessage (user , action , adminType ):
86+ message = "{} has been {} as a {} Admin" .format (user .fullName , action , adminType )
8187
88+ if action == 'added' :
89+ flash (message , "success" )
90+ elif action == 'removed' :
91+ flash (message , "danger" )
0 commit comments