@@ -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
7362def 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
113102from conditional .util import context_processors
114103from conditional .util .auth import get_user
104+ from conditional .util .member import gatekeep_status
115105from .blueprints .dashboard import dashboard_bp # pylint: disable=ungrouped-imports
116106from .blueprints .attendance import attendance_bp
117107from .blueprints .major_project_submission import major_project_bp
@@ -140,7 +130,7 @@ def database_processor(logger, log_method, event_dict): # pylint: disable=unuse
140130app .register_blueprint (co_op_bp )
141131app .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