2121from conditional .util .ldap import ldap_is_intromember
2222from conditional .util .ldap import ldap_get_member
2323
24-
25- @service_cache (maxsize = 1024 )
26- def get_voting_members ():
27-
28- if datetime .today () < datetime (start_of_year ().year , 12 , 31 ):
29- semester = 'Fall'
30- else :
31- semester = 'Spring'
32-
33- active_members = set (member .uid for member in ldap_get_active_members ())
34- intro_members = set (member .uid for member in ldap_get_intro_members ())
35- on_coop = set (member .uid for member in CurrentCoops .query .filter (
36- CurrentCoops .date_created > start_of_year (),
37- CurrentCoops .semester == semester ).all ())
38- voting_set = active_members - intro_members - on_coop
39-
40- passed_fall = FreshmanEvalData .query .filter (
41- FreshmanEvalData .freshman_eval_result == "Passed" ,
42- FreshmanEvalData .eval_date > start_of_year ()
43- ).distinct ()
44-
45- for intro_member in passed_fall :
46- voting_set .add (intro_member .uid )
47-
48- voting_list = list (username for username in voting_set if gatekeep_status (username )["result" ])
49- return voting_list
50-
51-
5224@service_cache (maxsize = 1024 )
5325def get_members_info ():
5426 members = ldap_get_current_students ()
@@ -166,7 +138,8 @@ def req_cm(member):
166138 return 15
167139 return 30
168140
169- def get_gatekeep_passed ():
141+ @service_cache (maxsize = 256 )
142+ def get_voting_memberse ():
170143 if datetime .today () < datetime (start_of_year ().year , 12 , 31 ):
171144 semester = "Fall"
172145 semester_start = datetime (start_of_year ().year ,6 ,1 )
@@ -175,7 +148,7 @@ def get_gatekeep_passed():
175148 semester_start = datetime (start_of_year ().year + 1 ,1 ,1 )
176149
177150 active_members = set (ldap_get_active_members ())
178- intro_memberes = set (ldap_get_intro_members ())
151+ intro_members = set (ldap_get_intro_members ())
179152
180153 coop_members = CurrentCoops .query .filter (
181154 CurrentCoops .date_created > start_of_year (),
@@ -202,7 +175,10 @@ def get_gatekeep_passed():
202175 else :
203176 passed_fall_members = set (passed_fall_members )
204177
205- elligible_members = (active_members - intro_memberes - coop_members ) | passed_fall_members
178+ active_not_intro = active_members - intro_members
179+ active_not_intro = set (map (lambda member : member .uid , active_not_intro ))
180+
181+ elligible_members = (active_not_intro - coop_members ) | passed_fall_members
206182
207183 passing_dm = set (member .uid for member in MemberCommitteeAttendance .query .join (
208184 CommitteeMeeting ,
@@ -244,17 +220,17 @@ def get_gatekeep_passed():
244220 ).filter (
245221 HouseMeeting .date >= semester_start , or_ (
246222 MemberHouseMeetingAttendance .attendance_status == 'Attended' ,
247- MemberHouseMeetingAttendance .attendance_status == 'Excused'
223+ # MemberHouseMeetingAttendance.attendance_status == 'Excused'
248224 )
249225 ).with_entities (
250226 MemberHouseMeetingAttendance .uid
251227 ).group_by (
252228 MemberHouseMeetingAttendance .uid
253229 ).having (
254- func .count (MemberHouseMeetingAttendance .uid ) >= 2
230+ func .count (MemberHouseMeetingAttendance .uid ) >= 6
255231 ).all ())
256232
257- passing_reqs = passing_dm | passing_ts | passing_hm
233+ passing_reqs = passing_dm & passing_ts & passing_hm
258234
259235 return elligible_members & passing_reqs
260236
0 commit comments