Skip to content

Commit 9b2279a

Browse files
authored
Merge pull request #63 from ComputerScienceHouse/packet-failures
Add Ability for Freshmen who Failed Packet to Have Missed Signatures
2 parents 99fcb51 + 456e389 commit 9b2279a

File tree

7 files changed

+59
-9
lines changed

7 files changed

+59
-9
lines changed

.pylintrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ bad-functions=apply,input
8080
[DESIGN]
8181
max-args = 10
8282
ignored-argument-names = _.*
83-
max-locals = 15
83+
max-locals = 20
8484
max-returns = 6
85-
max-branches = 12
85+
max-branches = 13
8686
max-statements = 55
8787
max-parents = 7
8888
max-attributes = 10

conditional/blueprints/intro_evals.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,17 @@ def get_fid_cm_count(member_id):
5858
).filter(
5959
FreshmanHouseMeetingAttendance.attendance_status == "Absent"
6060
)]
61+
62+
if fid.signatures_missed is None:
63+
signatures_missed = -1
64+
else:
65+
signatures_missed = fid.signatures_missed
66+
6167
freshman = {
6268
'name': fid.name,
6369
'uid': fid.id,
6470
'eval_date': fid.eval_date.strftime("%Y-%m-%d"),
65-
'signatures_missed': -1,
71+
'signatures_missed': signatures_missed,
6672
'committee_meetings': get_fid_cm_count(fid.id),
6773
'committee_meetings_passed': get_fid_cm_count(fid.id) >= 10,
6874
'house_meetings_missed':

conditional/blueprints/member_management.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,20 +266,26 @@ def member_management_edituser(uid):
266266
})
267267
clear_active_members_cache()
268268
else:
269-
logger.info('backend', action="edit freshman account %s room: %s onfloor: %s eval_date: %s" %
269+
logger.info('backend', action="edit freshman account %s room: %s onfloor: %s eval_date: %s sig_missed %s" %
270270
(uid, post_data['roomNumber'], post_data['onfloorStatus'],
271-
post_data['evalDate']))
271+
post_data['evalDate'], post_data['sigMissed']))
272272

273273
name = post_data['name']
274274
room_number = post_data['roomNumber']
275275
onfloor_status = post_data['onfloorStatus']
276276
eval_date = post_data['evalDate']
277277

278+
if post_data['sigMissed'] == "":
279+
sig_missed = None
280+
else:
281+
sig_missed = post_data['sigMissed']
282+
278283
FreshmanAccount.query.filter(FreshmanAccount.id == uid).update({
279284
'name': name,
280285
'eval_date': datetime.strptime(eval_date, "%Y-%m-%d"),
281286
'onfloor_status': onfloor_status,
282-
'room_number': room_number
287+
'room_number': room_number,
288+
'signatures_missed': sig_missed
283289
})
284290

285291
db.session.flush()
@@ -333,7 +339,8 @@ def get_hm_date(hm_id):
333339
'eval_date': acct.eval_date.strftime("%Y-%m-%d"),
334340
'missed_hm': hms_missed,
335341
'onfloor_status': acct.onfloor_status,
336-
'room_number': acct.room_number
342+
'room_number': acct.room_number,
343+
'sig_missed': acct.signatures_missed
337344
}), 200
338345

339346
if ldap_is_eval_director(user_name):

conditional/models/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ class FreshmanAccount(db.Model):
1414
eval_date = Column(Date, nullable=False)
1515
onfloor_status = Column(Boolean)
1616
room_number = Column(String)
17+
signatures_missed = Column(Integer)
1718

18-
def __init__(self, name, onfloor, room=None):
19+
def __init__(self, name, onfloor, room=None, missed=None):
1920
self.name = name
2021
today = date.fromtimestamp(time.time())
2122
self.eval_date = today + timedelta(weeks=10)
2223
self.onfloor_status = onfloor
2324
self.room_number = room
25+
self.signatures_missed = missed
2426

2527

2628
class FreshmanEvalData(db.Model):

conditional/templates/member_management.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,10 +271,14 @@ <h4 class="modal-title" id="editFreshmanTitle">Edit Freshman Account</h4>
271271
</label>
272272
</div>
273273
</div>
274-
<div class="col-xs-8">
274+
<div class="col-xs-4">
275275
<label class="control-label" for="evalDate">Evaluation Date</label>
276276
<input class="form-control" id="evalDate" name="evalDate" type="text">
277277
</div>
278+
<div class="col-xs-4">
279+
<label class="control-label" for="sigMissed">Signatures Missed</label>
280+
<input class="form-control" id="sigMissed" name="sigMissed" type="number">
281+
</div>
278282
</div>
279283

280284
<p class="lead">Missed House Meetings</p>

frontend/javascript/modules/editUser.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,10 @@ export default class EditUser {
191191
this.data.eval_date;
192192
new DatePicker(modal.querySelector('input[name=evalDate]'));
193193

194+
// Freshmen Signatures Missed
195+
modal.querySelector('input[name=sigMissed]').value =
196+
this.data.sig_missed;
197+
194198
// Missed House Meetings
195199
if (this.data.missed_hm.length > 0) {
196200
modal.querySelector('.modal-body')
@@ -326,6 +330,7 @@ export default class EditUser {
326330
} else if (this.type === "freshman") {
327331
payload.name = modal.querySelector('input[name=name]').value;
328332
payload.evalDate = modal.querySelector('input[name=evalDate]').value;
333+
payload.sigMissed = modal.querySelector('input[name=sigMissed]').value;
329334
}
330335

331336
let roomNumber = modal.querySelector('input[name=room]').value;

migrations/versions/218de3b34a6f_.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"""empty message
2+
3+
Revision ID: 218de3b34a6f
4+
Revises: 9c57eb87e918
5+
Create Date: 2016-09-07 23:39:18.246359
6+
7+
"""
8+
9+
# revision identifiers, used by Alembic.
10+
revision = '218de3b34a6f'
11+
down_revision = '9c57eb87e918'
12+
13+
from alembic import op
14+
import sqlalchemy as sa
15+
16+
17+
def upgrade():
18+
### commands auto generated by Alembic - please adjust! ###
19+
op.add_column('freshman_accounts', sa.Column('signatures_missed', sa.Integer(), nullable=True))
20+
### end Alembic commands ###
21+
22+
23+
def downgrade():
24+
### commands auto generated by Alembic - please adjust! ###
25+
op.drop_column('freshman_accounts', 'signatures_missed')
26+
### end Alembic commands ###

0 commit comments

Comments
 (0)