Skip to content

Commit 5c141db

Browse files
committed
Add Committee Meetings to Intro Evals Page
1 parent 9788bee commit 5c141db

File tree

2 files changed

+57
-16
lines changed

2 files changed

+57
-16
lines changed

conditional/blueprints/intro_evals.py

+30-8
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,24 @@ def display_intro_evals(internal=False, user_dict=None):
3232
log.info('Display Intro Evals Listing')
3333

3434
# get user data
35-
def get_fid_cm_count(member_id):
36-
return len([a for a in FreshmanCommitteeAttendance.query.filter(
37-
FreshmanCommitteeAttendance.fid == member_id)
38-
if CommitteeMeeting.query.filter(CommitteeMeeting.id == a.meeting_id).first().approved])
35+
def get_fid_cm(member):
36+
c_meetings = [{
37+
"uid": cm[0],
38+
"timestamp": cm[1],
39+
"committee": cm[2]
40+
} for cm in CommitteeMeeting.query.join(
41+
FreshmanCommitteeAttendance,
42+
FreshmanCommitteeAttendance.meeting_id == CommitteeMeeting.id
43+
).with_entities(
44+
FreshmanCommitteeAttendance.fid,
45+
CommitteeMeeting.timestamp,
46+
CommitteeMeeting.committee
47+
).filter(
48+
CommitteeMeeting.timestamp > start_of_year(),
49+
FreshmanCommitteeAttendance.fid == member,
50+
CommitteeMeeting.approved == True # pylint: disable=singleton-comparison
51+
).all()]
52+
return c_meetings
3953

4054
members = ldap_get_intro_members()
4155

@@ -64,8 +78,12 @@ def get_fid_cm_count(member_id):
6478
'uid': fid.id,
6579
'eval_date': fid.eval_date.strftime("%Y-%m-%d"),
6680
'signatures_missed': signatures_missed,
67-
'committee_meetings': get_fid_cm_count(fid.id),
68-
'committee_meetings_passed': get_fid_cm_count(fid.id) >= 6,
81+
'committee_meetings': [{
82+
"uid": cm['uid'],
83+
"timestamp": cm['timestamp'].strftime("%Y-%m-%d"),
84+
"committee": cm['committee']
85+
} for cm in get_fid_cm(fid.id)],
86+
'committee_meetings_passed': len(get_fid_cm(fid.id)) >= 6,
6987
'house_meetings_missed':
7088
[
7189
{
@@ -113,7 +131,11 @@ def get_fid_cm_count(member_id):
113131
'uid': uid,
114132
'eval_date': freshman_data.eval_date.strftime("%Y-%m-%d"),
115133
'signatures_missed': freshman_data.signatures_missed,
116-
'committee_meetings': len(get_cm(member)),
134+
'committee_meetings': [{
135+
"uid": cm['uid'],
136+
"timestamp": cm['timestamp'].strftime("%Y-%m-%d"),
137+
"committee": cm['committee']
138+
} for cm in get_cm(member)],
117139
'committee_meetings_passed': len(get_cm(member)) >= 6,
118140
'house_meetings_missed':
119141
[
@@ -147,7 +169,7 @@ def get_fid_cm_count(member_id):
147169
ie_members.append(member_info)
148170

149171
ie_members.sort(key=lambda x: len(x['house_meetings_missed']))
150-
ie_members.sort(key=lambda x: x['committee_meetings'], reverse=True)
172+
ie_members.sort(key=lambda x: x['committee_meetings_passed'], reverse=True)
151173
ie_members.sort(key=lambda x: x['signatures_missed'])
152174
ie_members.sort(key=lambda x: x['status'] == "Passed")
153175

conditional/templates/intro_evals.html

+27-8
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,15 @@ <h6 class="eval-uid">{{ m['uid'] }}</h6>
7474
{% endif %}
7575
</div>
7676
<div class="text-center">
77-
{% if m['committee_meetings'] < 6 %}
77+
{% if m['committee_meetings']|length < 6 %}
7878
<div class="eval-info-label">
7979
<span class="glyphicon glyphicon-remove-sign red eval-info-status"></span>Directorship Meetings
80-
<span class="eval-info-number">{{m['committee_meetings']}} / 6</span>
80+
<span class="eval-info-number">{{m['committee_meetings']|length}} / 6</span>
8181
</div>
8282
{% else %}
8383
<div class="eval-info-label">
8484
<span class="glyphicon glyphicon-ok-sign green eval-info-status"></span>Directorship Meetings
85-
<span class="eval-info-number">{{m['committee_meetings']}} / 6</span>
85+
<span class="eval-info-number">{{m['committee_meetings']|length}} / 6</span>
8686
</div>
8787
{% endif %}
8888

@@ -136,8 +136,27 @@ <h4>Missed House Meetings</h4>
136136
</table>
137137
{% endif %}
138138
<!-- ^^ HOUSE MEETINGS TABLE -->
139-
{% if m['technical_seminars']|length > 0 %}
139+
{% if m['committee_meetings']|length > 0 %}
140+
<h4>Directorship Meetings</h4>
141+
<table class="table">
142+
<thead>
143+
<tr>
144+
<th>Date</th>
145+
<th>Directorship</th>
146+
</tr>
147+
</thead>
148+
<tbody>
149+
{% for meeting in m['committee_meetings'] %}
150+
<tr>
151+
<td>{{meeting['timestamp']}}</td>
152+
<td>{{meeting['committee']}}</td>
153+
</tr>
154+
{% endfor %}
140155

156+
</tbody>
157+
</table>
158+
{% endif %}
159+
{% if m['technical_seminars']|length > 0 %}
141160
<h4>Technical Seminars</h4>
142161
<table class="table">
143162
<tbody>
@@ -203,11 +222,11 @@ <h4>Other Comments</h4>
203222
<span class="glyphicon glyphicon-remove red"></span> Failed
204223
{% endif %}
205224
</td>
206-
<td data-sort="{{ m['committee_meetings'] }}">
207-
{% if m['committee_meetings'] < 6 %}
208-
<span class="glyphicon glyphicon-remove-sign red eval-info-status"></span> {{m['committee_meetings']}}
225+
<td data-sort="{{ m['committee_meetings']|length }}">
226+
{% if m['committee_meetings']|length < 6 %}
227+
<span class="glyphicon glyphicon-remove-sign red eval-info-status"></span> {{m['committee_meetings']|length}}
209228
{% else %}
210-
<span class="glyphicon glyphicon-ok-sign green eval-info-status"></span> {{m['committee_meetings']}}
229+
<span class="glyphicon glyphicon-ok-sign green eval-info-status"></span> {{m['committee_meetings']|length}}
211230
{% endif %}
212231
</td>
213232
<td data-sort="{{ m['signatures_missed'] }}">

0 commit comments

Comments
 (0)