Skip to content

Commit 3015a08

Browse files
committed
Update calculations based on new co-op changes
1 parent 52b1fda commit 3015a08

File tree

3 files changed

+31
-10
lines changed

3 files changed

+31
-10
lines changed

conditional/blueprints/attendance.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,15 @@ def get_non_alumni_non_coop(internal=False):
6767

6868
# Get all active members as a base house meeting attendance.
6969
active_members = ldap_get_active_members()
70-
coop_members = [u.uid for u in CurrentCoops.query.all()]
70+
71+
if datetime.today() < datetime(start_of_year().year, 12, 31):
72+
semester = 'Fall'
73+
else:
74+
semester = 'Spring'
75+
76+
coop_members = [u.uid for u in CurrentCoops.query.filter(
77+
CurrentCoops.date_created > start_of_year(),
78+
CurrentCoops.semester == semester).all()]
7179

7280
eligible_members = [
7381
{

conditional/blueprints/co_op.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@
1414
logger = structlog.get_logger()
1515

1616
@co_op_bp.route('/co_op/')
17-
def display_conditionals():
17+
def display_co_op_form():
1818
log = logger.new(user_name=request.headers.get("x-webauth-user"),
1919
request_id=str(uuid.uuid4()))
2020
log.info('frontend', action='display conditional listing page')
2121

2222
# get user data
2323
user_name = request.headers.get('x-webauth-user')
24-
co_op = CurrentCoops.query.filter(CurrentCoops.uid == user_name, CurrentCoops.date_created > start_of_year()).first()
24+
co_op = CurrentCoops.query.filter(
25+
CurrentCoops.uid == user_name, CurrentCoops.date_created > start_of_year()).first()
2526

2627
return render_template(request,
2728
'co_op.html',
@@ -31,7 +32,7 @@ def display_conditionals():
3132

3233

3334
@co_op_bp.route('/co_op/submit', methods=['POST'])
34-
def submit_major_project():
35+
def submit_co_op_form():
3536
log = logger.new(user_name=request.headers.get("x-webauth-user"),
3637
request_id=str(uuid.uuid4()))
3738

@@ -41,13 +42,13 @@ def submit_major_project():
4142
semester = post_data['semester']
4243

4344
log.info('api', action='Submit %s Co-Op' % semester)
44-
45+
4546
if CurrentCoops.query.filter(CurrentCoops.uid == user_name, CurrentCoops.date_created > start_of_year()).first():
4647
return "User has already submitted this form!", 403
47-
48+
4849
co_op = CurrentCoops(uid=user_name, semester=semester)
4950
db.session.add(co_op)
5051
db.session.flush()
5152
db.session.commit()
52-
53-
return jsonify({"success": True}), 200
53+
54+
return jsonify({"success": True}), 200

conditional/util/member.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from functools import lru_cache
2+
from datetime import datetime
23

34
from conditional.util.ldap import ldap_get_active_members
45
from conditional.util.ldap import ldap_get_intro_members
@@ -15,21 +16,32 @@
1516
from conditional.models.models import MemberCommitteeAttendance
1617
from conditional.models.models import TechnicalSeminar
1718
from conditional.models.models import HouseMeeting
19+
from conditional.models.models import CurrentCoops
1820

1921
from conditional import start_of_year
2022

2123

2224
@lru_cache(maxsize=1024)
2325
def get_voting_members():
26+
27+
if datetime.today() < datetime(start_of_year().year, 12, 31):
28+
semester = 'Fall'
29+
else:
30+
semester = 'Spring'
31+
2432
voting_list = [uid for uid in [member.uid for member in ldap_get_active_members()]
25-
if uid not in [member.uid for member in ldap_get_intro_members()]]
33+
if uid not in [member.uid for member in ldap_get_intro_members()] and
34+
uid not in [member.uid for member in CurrentCoops.query.filter(
35+
CurrentCoops.date_created > start_of_year(),
36+
CurrentCoops.semester == semester).all()]]
2637

2738
passed_fall = FreshmanEvalData.query.filter(
2839
FreshmanEvalData.freshman_eval_result == "Passed"
2940
).distinct()
3041

3142
for intro_member in passed_fall:
32-
voting_list.append(intro_member.uid)
43+
if intro_member.uid not in voting_list:
44+
voting_list.append(intro_member.uid)
3345

3446
return voting_list
3547

0 commit comments

Comments
 (0)