@@ -32,10 +32,24 @@ def display_intro_evals(internal=False, user_dict=None):
3232 log .info ('Display Intro Evals Listing' )
3333
3434 # get user data
35- def get_fid_cm_count (member_id ):
36- return len ([a for a in FreshmanCommitteeAttendance .query .filter (
37- FreshmanCommitteeAttendance .fid == member_id )
38- if CommitteeMeeting .query .filter (CommitteeMeeting .id == a .meeting_id ).first ().approved ])
35+ def get_fid_cm (member ):
36+ c_meetings = [{
37+ "uid" : cm [0 ],
38+ "timestamp" : cm [1 ],
39+ "committee" : cm [2 ]
40+ } for cm in CommitteeMeeting .query .join (
41+ FreshmanCommitteeAttendance ,
42+ FreshmanCommitteeAttendance .meeting_id == CommitteeMeeting .id
43+ ).with_entities (
44+ FreshmanCommitteeAttendance .fid ,
45+ CommitteeMeeting .timestamp ,
46+ CommitteeMeeting .committee
47+ ).filter (
48+ CommitteeMeeting .timestamp > start_of_year (),
49+ FreshmanCommitteeAttendance .fid == member ,
50+ CommitteeMeeting .approved == True # pylint: disable=singleton-comparison
51+ ).all ()]
52+ return c_meetings
3953
4054 members = ldap_get_intro_members ()
4155
@@ -64,8 +78,12 @@ def get_fid_cm_count(member_id):
6478 'uid' : fid .id ,
6579 'eval_date' : fid .eval_date .strftime ("%Y-%m-%d" ),
6680 'signatures_missed' : signatures_missed ,
67- 'committee_meetings' : get_fid_cm_count (fid .id ),
68- 'committee_meetings_passed' : get_fid_cm_count (fid .id ) >= 6 ,
81+ 'committee_meetings' : [{
82+ "uid" : cm ['uid' ],
83+ "timestamp" : cm ['timestamp' ].strftime ("%Y-%m-%d" ),
84+ "committee" : cm ['committee' ]
85+ } for cm in get_fid_cm (fid .id )],
86+ 'committee_meetings_passed' : len (get_fid_cm (fid .id )) >= 6 ,
6987 'house_meetings_missed' :
7088 [
7189 {
@@ -113,7 +131,11 @@ def get_fid_cm_count(member_id):
113131 'uid' : uid ,
114132 'eval_date' : freshman_data .eval_date .strftime ("%Y-%m-%d" ),
115133 'signatures_missed' : freshman_data .signatures_missed ,
116- 'committee_meetings' : len (get_cm (member )),
134+ 'committee_meetings' : [{
135+ "uid" : cm ['uid' ],
136+ "timestamp" : cm ['timestamp' ].strftime ("%Y-%m-%d" ),
137+ "committee" : cm ['committee' ]
138+ } for cm in get_cm (member )],
117139 'committee_meetings_passed' : len (get_cm (member )) >= 6 ,
118140 'house_meetings_missed' :
119141 [
@@ -147,7 +169,7 @@ def get_fid_cm_count(member_id):
147169 ie_members .append (member_info )
148170
149171 ie_members .sort (key = lambda x : len (x ['house_meetings_missed' ]))
150- ie_members .sort (key = lambda x : x ['committee_meetings ' ], reverse = True )
172+ ie_members .sort (key = lambda x : x ['committee_meetings_passed ' ], reverse = True )
151173 ie_members .sort (key = lambda x : x ['signatures_missed' ])
152174 ie_members .sort (key = lambda x : x ['status' ] == "Passed" )
153175
0 commit comments