@@ -233,18 +233,17 @@ def get_voting_members():
233233 MemberHouseMeetingAttendance .meeting_id == HouseMeeting .id
234234 ).filter (
235235 HouseMeeting .date >= semester_start , or_ (
236- MemberHouseMeetingAttendance .attendance_status == 'Attended' ,
237- # MemberHouseMeetingAttendance.attendance_status == 'Excused'
236+ MemberHouseMeetingAttendance .attendance_status == 'Absent' ,
238237 )
239238 ).with_entities (
240239 MemberHouseMeetingAttendance .uid
241240 ).group_by (
242241 MemberHouseMeetingAttendance .uid
243242 ).having (
244- func .count (MemberHouseMeetingAttendance .uid ) >= 6 # pylint: disable=not-callable
243+ func .count (MemberHouseMeetingAttendance .uid ) > 1 # pylint: disable=not-callable
245244 ).all ())
246245
247- passing_reqs = passing_dm & passing_ts & passing_hm
246+ passing_reqs = ( passing_dm & passing_ts ) - passing_hm
248247
249248 return elligible_members & passing_reqs
250249
@@ -319,22 +318,23 @@ def gatekeep_status(username):
319318 .count ()
320319 )
321320 # number of house meetings attended in the current semester
322- h_meetings = (
321+ h_meetings_missed = (
323322 MemberHouseMeetingAttendance .query .join (
324323 HouseMeeting ,
325324 MemberHouseMeetingAttendance .meeting_id == HouseMeeting .id ,
326325 )
327326 .filter (
327+ MemberHouseMeetingAttendance .attendance_status == 'Absent' ,
328328 MemberHouseMeetingAttendance .uid == username ,
329329 HouseMeeting .date >= semester_start
330330 )
331331 .count ()
332332 )
333- result = eligibility_of_groups and (d_meetings >= 6 and t_seminars >= 2 and h_meetings >= 6 )
333+ result = eligibility_of_groups and (d_meetings >= 6 and t_seminars >= 2 and h_meetings_missed < 2 )
334334
335335 return {
336336 "result" : result ,
337- "h_meetings" : h_meetings ,
337+ "h_meetings" : h_meetings_missed ,
338338 "c_meetings" : d_meetings ,
339339 "t_seminars" : t_seminars ,
340340 }
0 commit comments