99from conditional .util .ldap import ldap_get_housing_points
1010from conditional .util .ldap import ldap_is_intromember
1111from conditional .util .ldap import ldap_get_name
12+ from conditional .util .ldap import ldap_get_active_members
13+ from conditional .util .ldap import ldap_get_intro_members
1214
1315from conditional .models .models import FreshmanEvalData
1416from conditional .models .models import MemberCommitteeAttendance
@@ -63,6 +65,26 @@ def get_freshman_data(user_name):
6365 return freshman
6466
6567
68+ def get_voting_members ():
69+ voting_list = []
70+ active_members = [x ['uid' ][0 ].decode ('utf-8' ) for x
71+ in ldap_get_active_members ()]
72+ intro_members = [x ['uid' ][0 ].decode ('utf-8' ) for x
73+ in ldap_get_intro_members ()]
74+ passed_fall = FreshmanEvalData .query .filter (
75+ FreshmanEvalData .freshman_eval_result == "Passed"
76+ ).distinct ()
77+
78+ for intro_member in passed_fall :
79+ voting_list .append (intro_member .uid )
80+
81+ for active_member in active_members :
82+ if active_member not in intro_members :
83+ voting_list .append (active_member )
84+
85+ return voting_list
86+
87+
6688@dashboard_bp .route ('/dashboard/' )
6789def display_dashboard ():
6890 log = logger .new (user_name = request .headers .get ("x-webauth-user" ),
@@ -73,6 +95,8 @@ def display_dashboard():
7395
7496 user_name = request .headers .get ('x-webauth-user' )
7597
98+ can_vote = get_voting_members ()
99+ logger .info ('backend' , action = can_vote )
76100 data = dict ()
77101 data ['username' ] = user_name
78102 data ['name' ] = ldap_get_name (user_name )
@@ -81,7 +105,7 @@ def display_dashboard():
81105 # On-Floor Status
82106 data ['onfloor' ] = ldap_is_onfloor (user_name )
83107 # Voting Status
84- data ['voting' ] = ldap_is_active (user_name ) # FIXME: unimplemented
108+ data ['voting' ] = bool (user_name in can_vote )
85109
86110 # freshman shit
87111 if ldap_is_intromember (user_name ):
0 commit comments