Skip to content

Commit 84cc47f

Browse files
committed
Add rit_id column
Prevent stripping of leading zeros by using a string column and an auto incrementing id Fixes #44
1 parent 8b4dea9 commit 84cc47f

8 files changed

Lines changed: 61 additions & 11 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
"""Add application rit_id
2+
3+
Revision ID: 65977197d0bd
4+
Revises: f7fc75087f9f
5+
Create Date: 2021-04-11 22:15:29.825856
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
from sqlalchemy import orm
11+
from sqlalchemy.ext.declarative import declarative_base
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision = '65977197d0bd'
16+
down_revision = 'f7fc75087f9f'
17+
branch_labels = None
18+
depends_on = None
19+
20+
Base = declarative_base()
21+
22+
23+
class Applicant(Base):
24+
__tablename__ = 'application'
25+
id = sa.Column(sa.Integer, primary_key=True)
26+
rit_id = sa.Column(sa.String(20), nullable=False)
27+
28+
29+
def upgrade():
30+
op.add_column('application', sa.Column('rit_id', sa.String(20), nullable=False))
31+
32+
bind = op.get_bind()
33+
session = orm.Session(bind=bind)
34+
35+
for application in session.query(Applicant):
36+
application.rit_id = str(application.id)
37+
38+
session.commit()
39+
40+
def downgrade():
41+
op.drop_column('application', 'rit_id')

selections/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ def main(info=None):
8888
'gender': a.gender,
8989
'reviewed': a.id in reviewed_apps,
9090
'interview': a.phone_int,
91-
'review_count': Submission.query.filter_by(application=a.id).count()
91+
'review_count': Submission.query.filter_by(application=a.id).count(),
92+
'rit_id': a.rit_id,
9293
} for a in Applicant.query.filter_by(team=member.team).all()
9394
]
9495

selections/blueprints/application.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ def get_application(app_id, info=None):
3939
@app.route('/application', methods=['POST'])
4040
@auth.oidc_auth
4141
@before_request
42-
def create_application():
43-
applicant_id = request.form.get('id')
42+
def create_application(info=None):
43+
applicant_rit_id = request.form.get('rit_id')
4444
applicant = Applicant(
45-
id=applicant_id,
4645
body=request.form.get('application'),
4746
team=request.form.get('team'),
48-
gender=request.form.get('gender'))
47+
gender=request.form.get('gender'),
48+
rit_id=applicant_rit_id,
49+
)
4950
db.session.add(applicant)
5051
db.session.flush()
5152
db.session.commit()
@@ -66,7 +67,7 @@ def import_application():
6667
unparsed_applications = defaultdict(list)
6768
applications = {}
6869

69-
old_apps = [int(app.id) for app in Applicant.query.all()]
70+
old_apps = [app.id for app in Applicant.query.all()]
7071

7172
try:
7273
document = docx.Document(word_file)
@@ -83,10 +84,10 @@ def import_application():
8384

8485
for array in unparsed_applications:
8586
app_info = unparsed_applications[array][0].split('\t')
86-
app_id = app_info[0]
87+
app_rit_id = app_info[0]
8788
app_gender = gender[app_info[1]]
8889
app_text = app_info[2]
89-
if int(app_id) in old_apps:
90+
if app_rit_id in old_apps:
9091
# If the application is already in the DB, skip it.
9192
continue
9293

@@ -96,9 +97,9 @@ def import_application():
9697
else:
9798
app_text += '\n{}'.format(line)
9899

99-
applications[app_id] = [app_gender, app_text]
100+
applications[app_rit_id] = [app_gender, app_text]
100101
new_app = Applicant(
101-
id=app_id,
102+
rit_id=app_rit_id,
102103
body=app_text,
103104
team=-1,
104105
gender=app_gender)

selections/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class Applicant(db.Model):
1515
team = Column(Integer, nullable=False)
1616
gender = Column(gender_enum, nullable=False)
1717
phone_int = Column(Boolean, server_default='0', nullable=False)
18+
rit_id = Column(String(20), nullable=False)
1819

1920

2021

selections/templates/create.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="card-body">
66
<h3 class="card-title">Add Application</h3>
77
<form action="/application" method="post" id="evals-create-application">
8-
<input type="text" class="form-control" placeholder="Application ID" name="id"></input> <br>
8+
<input type="text" class="form-control" placeholder="Application ID" name="rit_id"></input> <br>
99
<textarea class="form-control" placeholder="Application Text" name="application"
1010
rows="10"></textarea>
1111
<br>

selections/templates/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ <h4 class="card-title">Pending Applications</h4>
3939
<thead>
4040
<tr>
4141
<th scope="col">ID</th>
42+
<th scope="col">RIT ID</th>
4243
<th scope="col">Gender</th>
4344
</tr>
4445
</thead>
@@ -51,6 +52,7 @@ <h4 class="card-title">Pending Applications</h4>
5152
<i class="fas fa-clipboard-list"></i> {{ person.id }}
5253
</a>
5354
</th>
55+
<td>{{ person.rit_id }}</td>
5456
<td>{{ person.gender }}</td>
5557
</tr>
5658
{% endif %}
@@ -70,6 +72,7 @@ <h4 class="card-title">All Applications</h4>
7072
<thead>
7173
<tr>
7274
<th>ID</th>
75+
<th>RIT ID</th>
7376
<th>Gender</th>
7477
<th>Reviewers</th>
7578
<th>Interview</th>
@@ -82,6 +85,7 @@ <h4 class="card-title">All Applications</h4>
8285
<th>
8386
<a href="/application/review/{{ application.id }}"><i
8487
class="fas fa-clipboard-check"></i> {{ application.id }}</a></th>
88+
<td>{{ application.rit_id }}</td>
8589
<td>{{ application.gender }}</td>
8690
<td>
8791
{% for member in reviewers[application.id] %}

selections/templates/review_app.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ <h3 class="card-title" style="text-align:left;">Application {{ application.id }}
2121
{% endif %}
2222

2323
</span></h3>
24+
<h6 class="card-subtitle mb-2 text-muted">RIT ID: {{ application.rit_id }}</h6>
2425
<h6 class="card-subtitle mb-2 text-muted">Gender: {{ application.gender }}</h6>
2526
<h6 class="card-subtitle mb-2 text-muted">Team: {{ application.team }}</h6>
2627
{% for paragraph in split_body %}

selections/templates/vote.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<div class="card">
88
<div class="card-body">
99
<h3 class="card-title">Application {{ application.id }}</h3>
10+
<h6 class="card-subtitle mb-2 text-muted">RIT ID: {{ application.rit_id }}</h6>
1011
<h6 class="card-subtitle mb-2 text-muted">Gender: {{ application.gender }}</h6>
1112
{% for paragraph in split_body %}
1213
<p class="card-text">{{ paragraph }}</p>

0 commit comments

Comments
 (0)