Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions conditional/blueprints/attendance.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 = [
{
Expand All @@ -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
})

Expand All @@ -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'
Expand All @@ -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
})

Expand All @@ -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 = [
{
Expand All @@ -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
})

Expand Down
5 changes: 3 additions & 2 deletions conditional/blueprints/dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
9 changes: 4 additions & 5 deletions conditional/blueprints/gatekeep.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)
Expand Down Expand Up @@ -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 = []

Expand Down
15 changes: 9 additions & 6 deletions conditional/blueprints/housing.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
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
from conditional.util.flask import render_template
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
Expand All @@ -28,20 +27,24 @@ 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
)

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:
Expand Down
9 changes: 4 additions & 5 deletions conditional/blueprints/intro_evals.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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__)
Expand Down Expand Up @@ -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()

Expand Down Expand Up @@ -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()
Expand Down
21 changes: 16 additions & 5 deletions conditional/blueprints/member_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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, \
Expand All @@ -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 = []
Expand Down
9 changes: 4 additions & 5 deletions conditional/blueprints/spring_evals.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)
Expand All @@ -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,
Expand Down Expand Up @@ -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(),
Expand Down
4 changes: 2 additions & 2 deletions conditional/templates/housing.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ <h3 class="panel-title">Housing Queue
<tbody>
{% for m in queue %}
<tr{% if not m['in_queue'] %} class="disabled"{% endif %}>
<td>{{m['name']}}</td>
<td>{{m['points']}}</td>
<td>{{m['cn']}}</td>
<td>{{m['housingPoints']}}</td>
{% if is_eval_director %}
<td class="col-in-queue"><input type="checkbox" data-uid="{{m['uid']}}"{% if m['in_queue'] %} checked="checked"{% endif %}></td>
{% endif %}
Expand Down
12 changes: 6 additions & 6 deletions conditional/templates/intro_evals.html
Original file line number Diff line number Diff line change
Expand Up @@ -88,28 +88,28 @@ <h6 class="eval-uid">{{ m['uid'] }}</h6>

</div>
<div class="text-center">
{% if m['technical_seminars_hosted'] < 1 or m['technical_seminars'] < 2 %}
{% if m['technical_seminars_hosted']|length < 1 or m['technical_seminars']|length < 2 %}
<div class="eval-info-label">
<i class="bi bi-x-circle-fill red eval-info-status"></i>Technical Seminars - Hosted
<span class="eval-info-number">{{m['technical_seminars_hosted']}} / 1</span>
<span class="eval-info-number">{{m['technical_seminars_hosted']|length}} / 1</span>
</div>
{% else %}
<div class="eval-info-label">
<i class="bi bi-check-circle-fill green eval-info-status"></i>Technical Seminars - Hosted
<span class="eval-info-number">{{m['technical_seminars_hosted']}} / 1</span>
<span class="eval-info-number">{{m['technical_seminars_hosted']|length}} / 1</span>
</div>
{% endif %}
</div>
<div class="text-center">
{% if m['technical_seminars'] < 2 or m['technical_seminars_hosted'] < 1 %}
{% if m['technical_seminars']|length < 2 or m['technical_seminars_hosted']|length < 1 %}
<div class="eval-info-label">
<i class="bi bi-x-circle-fill red eval-info-status"></i>Technical Seminars - Attended
<span class="eval-info-number">{{m['technical_seminars_attended']}} / 2</span>
<span class="eval-info-number">{{m['technical_seminars_attended']|length}} / 2</span>
</div>
{% else %}
<div class="eval-info-label">
<i class="bi bi-check-circle-fill green eval-info-status"></i>Technical Seminars - Attended
<span class="eval-info-number">{{m['technical_seminars']}} / 2</span>
<span class="eval-info-number">{{m['technical_seminars']|length}} / 2</span>
</div>
{% endif %}
</div>
Expand Down
2 changes: 1 addition & 1 deletion conditional/templates/member_management.html
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ <h3 class="panel-title">
{% if m['onfloor'] %} &#10003; {% endif %}
</td>
<td>{% if m['room'] %}{{m['room']}}{% endif %}</td>
<td>{{m['hp']}}</td>
<td>{{m['housingPoints']}}</td>
</tr>
{% endfor %}
</tbody>
Expand Down
Loading
Loading