Skip to content

Commit 81aa4d3

Browse files
committed
move gatekeep_status to members.py
1 parent 8342957 commit 81aa4d3

File tree

1 file changed

+5
-91
lines changed

1 file changed

+5
-91
lines changed

conditional/__init__.py

Lines changed: 5 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,7 @@ def start_of_year():
5656

5757

5858
# pylint: disable=C0413
59-
from .models.models import (
60-
CommitteeMeeting,
61-
CurrentCoops,
62-
FreshmanEvalData,
63-
HouseMeeting,
64-
MemberCommitteeAttendance,
65-
MemberHouseMeetingAttendance,
66-
MemberSeminarAttendance,
67-
TechnicalSeminar,
68-
UserLog,
69-
)
70-
59+
from .models.models import UserLog
7160

7261
# Configure Logging
7362
def request_processor(logger, log_method, event_dict): # pylint: disable=unused-argument, redefined-outer-name
@@ -112,6 +101,7 @@ def database_processor(logger, log_method, event_dict): # pylint: disable=unuse
112101
# pylint: disable=wrong-import-order
113102
from conditional.util import context_processors
114103
from conditional.util.auth import get_user
104+
from conditional.util.member import gatekeep_status
115105
from .blueprints.dashboard import dashboard_bp # pylint: disable=ungrouped-imports
116106
from .blueprints.attendance import attendance_bp
117107
from .blueprints.major_project_submission import major_project_bp
@@ -140,7 +130,7 @@ def database_processor(logger, log_method, event_dict): # pylint: disable=unuse
140130
app.register_blueprint(co_op_bp)
141131
app.register_blueprint(log_bp)
142132

143-
from .util.ldap import ldap_get_member, ldap_is_active, ldap_is_intromember
133+
from .util.ldap import ldap_get_member
144134

145135

146136
@app.route('/<path:path>')
@@ -170,88 +160,12 @@ def health():
170160

171161

172162
@app.route("/gatekeep/<username>")
173-
def gatekeep_status(username):
163+
def gatekeep(username):
174164
token = request.headers.get("X-VOTE-TOKEN", "")
175165
if token != app.config["VOTE_TOKEN"]:
176166
return "Users cannot access this page", 403
177167

178-
if datetime.today() < datetime(start_of_year().year, 12, 31):
179-
semester = "Fall"
180-
semester_start = datetime(start_of_year().year,6,1)
181-
else:
182-
semester = "Spring"
183-
semester_start = datetime(start_of_year().year + 1,1,1)
184-
185-
# groups
186-
ldap_member = ldap_get_member(username)
187-
is_intro_member = ldap_is_intromember(ldap_member)
188-
is_active_member = ldap_is_active(ldap_member) and not is_intro_member
189-
190-
is_on_coop = (
191-
CurrentCoops.query.filter(
192-
CurrentCoops.date_created > start_of_year(),
193-
CurrentCoops.semester == semester,
194-
CurrentCoops.uid == username,
195-
).first()
196-
is not None
197-
)
198-
199-
passed_fall = (
200-
FreshmanEvalData.query.filter(
201-
FreshmanEvalData.freshman_eval_result == "Passed",
202-
FreshmanEvalData.eval_date > start_of_year(),
203-
FreshmanEvalData.uid == username,
204-
).first()
205-
is not None
206-
)
207-
eligibility_of_groups = (is_active_member and not is_on_coop) or passed_fall
208-
209-
# number of directorship meetings attended in the current semester
210-
d_meetings = (
211-
MemberCommitteeAttendance.query.join(
212-
CommitteeMeeting,
213-
MemberCommitteeAttendance.meeting_id == CommitteeMeeting.id,
214-
)
215-
.filter(
216-
MemberCommitteeAttendance.uid == username,
217-
CommitteeMeeting.approved is True,
218-
CommitteeMeeting.date >= semester_start,
219-
)
220-
.count()
221-
)
222-
# number of technical seminars attended in the current semester
223-
t_seminars = (
224-
MemberSeminarAttendance.query.join(
225-
TechnicalSeminar,
226-
MemberSeminarAttendance.meeting_id == TechnicalSeminar.id,
227-
)
228-
.filter(
229-
MemberSeminarAttendance.uid == username,
230-
TechnicalSeminar.approved is True,
231-
TechnicalSeminar.date >= semester_start,
232-
)
233-
.count()
234-
)
235-
# number of house meetings attended in the current semester
236-
h_meetings = (
237-
MemberHouseMeetingAttendance.query.join(
238-
HouseMeeting,
239-
MemberHouseMeetingAttendance.meeting_id == HouseMeeting.id,
240-
)
241-
.filter(
242-
MemberHouseMeetingAttendance.uid == username,
243-
HouseMeeting.date >= semester_start
244-
)
245-
.count()
246-
)
247-
result = eligibility_of_groups and (d_meetings >= 6 and t_seminars >= 2 and h_meetings >= 6)
248-
249-
return {
250-
"result": result,
251-
"h_meetings": h_meetings,
252-
"c_meetings": d_meetings,
253-
"t_seminars": t_seminars,
254-
}, 200
168+
return gatekeep_status(username)
255169

256170

257171

0 commit comments

Comments
 (0)