Skip to content

Commit 764af0f

Browse files
committed
fix calculations and remove old function
1 parent 2add2e7 commit 764af0f

File tree

2 files changed

+12
-36
lines changed

2 files changed

+12
-36
lines changed

conditional/blueprints/dashboard.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from conditional.util.ldap import ldap_is_active
1717
from conditional.util.ldap import ldap_is_intromember
1818
from conditional.util.ldap import ldap_is_onfloor
19-
from conditional.util.member import get_freshman_data, get_voting_members, get_gatekeep_passed, get_cm, get_hm, req_cm
19+
from conditional.util.member import get_freshman_data, get_voting_memberse, get_cm, get_hm, req_cm
2020

2121
logger = structlog.get_logger()
2222

@@ -37,7 +37,7 @@ def display_dashboard(user_dict=None):
3737

3838
# Get the list of voting members.
3939

40-
can_vote = get_gatekeep_passed()
40+
can_vote = get_voting_memberse()
4141

4242
data = {}
4343
data['username'] = user_dict['account'].uid

conditional/util/member.py

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,6 @@
2121
from conditional.util.ldap import ldap_is_intromember
2222
from 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)
5325
def 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

Comments
 (0)