diff --git a/conditional/blueprints/attendance.py b/conditional/blueprints/attendance.py index 16c0f081..6ebb4d6c 100644 --- a/conditional/blueprints/attendance.py +++ b/conditional/blueprints/attendance.py @@ -3,7 +3,7 @@ import structlog from flask import Blueprint, jsonify, redirect, request -from conditional import db, start_of_year, auth +from conditional import db, start_of_year, auth, ldap from conditional.models.models import CommitteeMeeting from conditional.models.models import CurrentCoops from conditional.models.models import FreshmanAccount @@ -19,8 +19,6 @@ from conditional.models.models import TechnicalSeminar from conditional.util.auth import get_user from conditional.util.flask import render_template -from conditional.util.ldap import ldap_get_active_members -from conditional.util.ldap import ldap_get_current_students from conditional.util.ldap import ldap_get_member from conditional.util.ldap import ldap_is_eboard from conditional.util.user_dict import user_dict_is_eboard, user_dict_is_eval_director @@ -37,7 +35,8 @@ def get_all_members(user_dict=None): log = logger.new(request=request, auth_dict=user_dict) log.info('Retrieve Technical Seminar Attendance List') - members = ldap_get_current_students() + members = ldap.get_group_member_attributes(groups=['current_student'], + excluded_groups=[], attributes=['uid', 'displayName']) named_members = [ { @@ -50,8 +49,8 @@ def get_all_members(user_dict=None): for account in members: named_members.append( { - 'display': account.displayName, - 'value': account.uid, + 'display': account['displayName'], + 'value': account['uid'], 'freshman': False }) @@ -66,7 +65,8 @@ def get_non_alumni_non_coop(internal=False, user_dict=None): log.info('Retrieve House Meeting Attendance List') # Get all active members as a base house meeting attendance. - active_members = ldap_get_active_members() + active_members = ldap.get_group_member_attributes(groups=['active'], + excluded_groups=[], attributes=['uid', 'displayName']) if datetime.today() < datetime(start_of_year().year, 12, 31): semester = 'Fall' @@ -86,14 +86,14 @@ def get_non_alumni_non_coop(internal=False, user_dict=None): FreshmanAccount.eval_date > datetime.now())] for account in active_members: - if account.uid in coop_members: + if account['uid'] in coop_members: # Members who are on co-op don't need to go to house meeting. continue eligible_members.append( { - 'display': account.displayName, - 'value': account.uid, + 'display': account['displayName'], + 'value': account['uid'], 'freshman': False }) @@ -110,7 +110,8 @@ def get_non_alumni(user_dict=None): log = logger.new(request=request, auth_dict=user_dict) log.info('Retrieve Committee Meeting Attendance List') - current_students = ldap_get_current_students() + current_students = ldap.get_group_member_attributes(groups=['current_student'], + excluded_groups=[], attributes=['uid', 'displayName']) eligible_members = [ { @@ -123,8 +124,8 @@ def get_non_alumni(user_dict=None): for account in current_students: eligible_members.append( { - 'display': account.displayName, - 'value': account.uid, + 'display': account['displayName'], + 'value': account['uid'], 'freshman': False }) diff --git a/conditional/blueprints/dashboard.py b/conditional/blueprints/dashboard.py index 0bd5f951..67b2db7b 100644 --- a/conditional/blueprints/dashboard.py +++ b/conditional/blueprints/dashboard.py @@ -12,8 +12,9 @@ from conditional.util.auth import get_user from conditional.util.flask import render_template from conditional.util.housing import get_queue_position +from conditional.util.ldap import ldap_get_active_member_uids from conditional.util.major_project import get_project_list -from conditional.util.member import gatekeep_values, get_active_members, get_freshman_data, get_voting_members, \ +from conditional.util.member import gatekeep_values, get_freshman_data, get_voting_members, \ get_cm, get_hm, is_gatekeep_active, req_cm from conditional.util.user_dict import user_dict_is_active, user_dict_is_bad_standing, user_dict_is_intromember, \ user_dict_is_onfloor @@ -49,7 +50,7 @@ def display_dashboard(user_dict=None): data['voting'] = bool(uid in can_vote) data['voting_count'] = {"Voting Members": len(can_vote), - "Active Members": len(get_active_members())} + "Active Members": len(ldap_get_active_member_uids())} # freshman shit if user_dict_is_intromember(user_dict): data['freshman'] = get_freshman_data(uid) diff --git a/conditional/blueprints/gatekeep.py b/conditional/blueprints/gatekeep.py index 1eba8668..4b799588 100644 --- a/conditional/blueprints/gatekeep.py +++ b/conditional/blueprints/gatekeep.py @@ -2,13 +2,12 @@ from flask import Blueprint, request from sqlalchemy import func -from conditional import start_of_year, auth +from conditional import start_of_year, auth, ldap from conditional.models.models import CommitteeMeeting, HouseMeeting, MemberCommitteeAttendance, \ MemberSeminarAttendance, MemberSeminarHost, TechnicalSeminar from conditional.models.models import MemberHouseMeetingAttendance from conditional.util.auth import get_user from conditional.util.flask import render_template -from conditional.util.ldap import ldap_get_active_members from conditional.util.member import get_semester_info, is_gatekeep_active gatekeep_bp = Blueprint('gatekeep_bp', __name__) @@ -89,9 +88,9 @@ def display_spring_evals(internal=False, user_dict=None): ).all()} gk_members = [] - for account in ldap_get_active_members(): - uid = account.uid - name = account.cn + for account in ldap.get_group_member_attributes(groups=['active'], excluded_groups=[], attributes=['uid', 'cn']): + uid = account['uid'] + name = account['cn'] member_missed_hms = [] diff --git a/conditional/blueprints/housing.py b/conditional/blueprints/housing.py index 45b25476..0cbc9cdd 100644 --- a/conditional/blueprints/housing.py +++ b/conditional/blueprints/housing.py @@ -1,7 +1,7 @@ import structlog from flask import Blueprint, request, jsonify -from conditional import db, auth +from conditional import db, auth, ldap from conditional.models.models import FreshmanAccount from conditional.models.models import InHousingQueue from conditional.util.auth import get_user @@ -9,7 +9,6 @@ from conditional.util.housing import get_housing_queue from conditional.util.ldap import ldap_get_current_students from conditional.util.ldap import ldap_get_member -from conditional.util.ldap import ldap_get_onfloor_members from conditional.util.ldap import ldap_get_roomnumber from conditional.util.ldap import ldap_is_eval_director from conditional.util.ldap import ldap_set_active @@ -28,7 +27,8 @@ def display_housing(user_dict=None): log.info('Display Housing Board') housing = {} - onfloors = ldap_get_onfloor_members() + onfloors = ldap.get_group_member_attributes(groups=['onfloor', 'current_student'], + excluded_groups=[], attributes=['cn', 'roomNumber']) onfloor_freshmen = FreshmanAccount.query.filter( FreshmanAccount.room_number is not None ) @@ -36,12 +36,15 @@ def display_housing(user_dict=None): room_list = set() for member in onfloors: - room = ldap_get_roomnumber(member) + if 'roomNumber' not in member: + continue + + room = member['roomNumber'] if room in housing and room is not None: - housing[room].append(member.cn) + housing[room].append(member['cn']) room_list.add(room) elif room is not None: - housing[room] = [member.cn] + housing[room] = [member['cn']] room_list.add(room) for f in onfloor_freshmen: diff --git a/conditional/blueprints/intro_evals.py b/conditional/blueprints/intro_evals.py index 3787fefb..a41b23e6 100644 --- a/conditional/blueprints/intro_evals.py +++ b/conditional/blueprints/intro_evals.py @@ -2,7 +2,7 @@ from flask import Blueprint, request from sqlalchemy import func -from conditional import start_of_year, auth +from conditional import start_of_year, auth, ldap from conditional.models.models import CommitteeMeeting from conditional.models.models import FreshmanAccount from conditional.models.models import FreshmanCommitteeAttendance @@ -18,7 +18,6 @@ from conditional.models.models import TechnicalSeminar from conditional.util.auth import get_user from conditional.util.flask import render_template -from conditional.util.ldap import ldap_get_intro_members from conditional.util.member import get_semester_info intro_evals_bp = Blueprint('intro_evals_bp', __name__) @@ -157,7 +156,7 @@ def display_intro_evals(internal=False, user_dict=None): log = logger.new(request=request, auth_dict=user_dict) log.info('Display Intro Evals Listing') - members = ldap_get_intro_members() + members = ldap.get_group_member_attributes(groups=['intromembers'], excluded_groups=[], attributes=['uid', 'cn']) ie_members = get_intro_members_without_accounts() @@ -240,8 +239,8 @@ def display_intro_evals(internal=False, user_dict=None): # freshmen who have accounts for member in members: - uid = member.uid - name = member.cn + uid = member['uid'] + name = member['cn'] freshman_data = FreshmanEvalData.query.filter( FreshmanEvalData.eval_date >= semester_start, FreshmanEvalData.uid == uid).first() diff --git a/conditional/blueprints/member_management.py b/conditional/blueprints/member_management.py index e3714e90..7af8d02b 100644 --- a/conditional/blueprints/member_management.py +++ b/conditional/blueprints/member_management.py @@ -6,7 +6,7 @@ import structlog from flask import Blueprint, request, jsonify, make_response -from conditional import app, get_user, auth, db, start_of_year +from conditional import app, get_user, auth, db, start_of_year, ldap from conditional.models.models import FreshmanAccount from conditional.models.models import FreshmanEvalData @@ -26,7 +26,7 @@ from conditional.blueprints.cache_management import clear_members_cache -from conditional.util.ldap import ldap_is_eval_director +from conditional.util.ldap import ldap_get_active_member_uids, ldap_get_onfloor_member_uids, ldap_is_eval_director from conditional.util.ldap import ldap_is_active from conditional.util.ldap import ldap_is_onfloor from conditional.util.ldap import ldap_set_roomnumber @@ -42,8 +42,6 @@ from conditional.util.ldap import _ldap_add_member_to_group as ldap_add_member_to_group from conditional.util.ldap import _ldap_remove_member_from_group as ldap_remove_member_from_group -from conditional.util.member import get_members_info_active_and_onfloor - from conditional.util.flask import render_template from conditional.models.models import attendance_enum from conditional.util.user_dict import user_dict_is_active, user_dict_is_bad_standing, user_dict_is_current_student, \ @@ -64,7 +62,20 @@ def display_member_management(user_dict=None): if not user_dict_is_eval_director(user_dict) and not user_dict_is_financial_director(user_dict): return "must be eval director", 403 - member_list, active_members, onfloor_members = get_members_info_active_and_onfloor() + active_members = set(ldap_get_active_member_uids()) + onfloor_members = set(ldap_get_onfloor_member_uids()) + + member_list = ldap.get_group_member_attributes(groups=["current_student"], + excluded_groups=[], attributes=['uid', 'housingPoints', 'roomNumber', 'cn']) + + for member in member_list: + member['name'] = member['cn'] + member['active'] = member['uid'] in active_members + member['onfloor'] = member['uid'] in onfloor_members + + if 'roomNumber' in member: + member['room'] = member['roomNumber'] + freshmen = FreshmanAccount.query freshmen_list = [] diff --git a/conditional/blueprints/spring_evals.py b/conditional/blueprints/spring_evals.py index 80c91943..40756240 100644 --- a/conditional/blueprints/spring_evals.py +++ b/conditional/blueprints/spring_evals.py @@ -2,12 +2,11 @@ from flask import Blueprint, request from sqlalchemy import func -from conditional import db, start_of_year, auth +from conditional import db, start_of_year, auth, ldap from conditional.models.models import CommitteeMeeting, CurrentCoops, HouseMeeting, MemberCommitteeAttendance from conditional.models.models import MajorProject, MemberHouseMeetingAttendance, SpringEval from conditional.util.auth import get_user from conditional.util.flask import render_template -from conditional.util.ldap import ldap_get_active_members from conditional.util.member import req_cm spring_evals_bp = Blueprint('spring_evals_bp', __name__) @@ -22,7 +21,7 @@ def display_spring_evals(internal=False, user_dict=None): log = logger.new(request=request, auth_dict=user_dict) log.info('Display Membership Evaluations Listing') - active_members = ldap_get_active_members() + active_members = ldap.get_group_member_attributes(groups=['active'], excluded_groups=[], attributes=['uid', 'cn']) cm_count = dict([tuple(row) for row in MemberCommitteeAttendance.query.join( CommitteeMeeting, @@ -78,8 +77,8 @@ def display_spring_evals(internal=False, user_dict=None): sp_members = [] for account in active_members: - uid = account.uid - name = account.cn + uid = account['uid'] + name = account['cn'] spring_entry = SpringEval.query.filter( SpringEval.date_created >= start_of_year(), diff --git a/conditional/templates/housing.html b/conditional/templates/housing.html index 4fbcb9bb..8992b71e 100644 --- a/conditional/templates/housing.html +++ b/conditional/templates/housing.html @@ -31,8 +31,8 @@