Skip to content

Commit 94ee197

Browse files
committed
added v1 skill tagger
1 parent 02d8a5d commit 94ee197

File tree

5 files changed

+43
-7
lines changed

5 files changed

+43
-7
lines changed

conditional/blueprints/major_project_submission.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,15 @@ def submit_major_project(user_dict=None):
9191

9292
post_data = request.get_json()
9393
name = post_data['projectName']
94+
tldr = post_data['projectTldr']
95+
time_spent = post_data['projectTimeSpent']
9496
description = post_data['projectDescription']
97+
9598
user_id = user_dict['username']
9699

97100
if name == "" or len(description.strip().split()) < 50: # check for 50 word minimum
98101
return jsonify({"success": False}), 400
99-
project = MajorProject(user_id, name, description)
102+
project = MajorProject(user_id, name, tldr, time_spent, description)
100103

101104
db.session.add(project)
102105
db.session.commit()

conditional/templates/major_project_submission.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ <h3 class="page-title">Major Project Form</h3>
3535
<div class="row">
3636
<div class="col-lg-6">
3737
<label class="form-label" for="skills-applied">Skills Applied</label>
38-
<div id="skills-applied" class="form-control form-textarea">
39-
List what skills you meaningfully used while working on this project (at least 2!)</div>
40-
<textarea id="skills-applied-old" name="skills-applied" class="form-control form-textarea"
38+
<div id="skills-applied" class="form-control form-skilltags">
39+
<input id="skill-input" name="skill" type="text" maxlength="16" placeholder="Add a skill">
40+
41+
<span class="placeholder">List what skills you meaningfully used while working on this project (at least 2!)</span></div>
42+
<!--<textarea id="skills-applied" name="skills-applied" class="form-control form-textarea"
4143
rows="5"
42-
placeholder="List what skills you meaningfully used while working on this project (at least 2!)"><span>Test</span></textarea>
44+
placeholder="List what skills you meaningfully used while working on this project (at least 2!)"><span>Test</span></textarea>-->
4345
</div>
4446
<div class="col-lg-6">
4547
<label class="form-label" for="time-commitment">Time Commitment</label>

frontend/javascript/modules/majorProjectForm.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import FetchUtil from "../utils/fetchUtil";
22

33
export default class MajorProjectForm {
4+
5+
tags_written = false;
6+
47
constructor(form) {
58
this.form = form;
69
this.endpoint = '/major_project/submit';
@@ -10,13 +13,30 @@ export default class MajorProjectForm {
1013
render() {
1114
this.form.querySelector('input[type=submit]')
1215
.addEventListener('click', e => this._submitForm(e));
16+
this.form.querySelector('input[id=skill-input]')
17+
.addEventListener('focusout')
18+
}
19+
20+
onWriteSkill(e) {
21+
let input = document.getElementById("skill-input")
22+
if (!this.tags_written) {
23+
this.tags_written = true
24+
document.getElementsByClassName("placeholder").item(0).remove()
25+
}
26+
let txt = input.value.replace(/[^a-zA-Z0-9\+\-\.\#]/g, ''); // allowed characters list
27+
if (txt) input.before('<span class="skill-tag">' + txt + '</span>');
28+
input.value = "";
29+
input.focus();
30+
1331
}
1432

1533
_submitForm(e) {
1634
e.preventDefault();
1735

1836
let payload = {
1937
projectName: this.form.querySelector('input[name=name]').value,
38+
projectTldr: this.form.querySelector('input[name=tldr]').value,
39+
projectTimeSpent: this.form.querySelector('textarea[name=time-commitment]').value,
2040
projectDescription:
2141
this.form.querySelector('textarea[name=description]').value
2242
};

frontend/stylesheets/pages/_major-project.scss

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,15 @@
1010

1111
.form-textarea {
1212
resize: vertical;
13+
}
14+
15+
.form-skilltags {
16+
box-shadow: inset 0 -1px 0 #ddd;
17+
border: none;
18+
padding: 0;
19+
}
20+
21+
.placeholder {
22+
color: #bbb;
23+
font-size: 16px;
1324
}

migrations/versions/05126dcdf40e_add_mp_fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ def upgrade():
2525
op.alter_column('freshman_hm_attendance', 'attendance_status',
2626
existing_type=postgresql.ENUM('Attended', 'Excused', 'Absent', name='attendance_enum'),
2727
nullable=True)
28-
op.add_column('major_projects', sa.Column('time', sa.Text(), nullable=False))
29-
op.add_column('major_projects', sa.Column('tldr', sa.String(length=128), nullable=False))
28+
op.add_column('major_projects', sa.Column('time', sa.Text(), nullable=False, server_default='N/A'))
29+
op.add_column('major_projects', sa.Column('tldr', sa.String(length=128), nullable=False, server_default='N/A'))
3030
op.alter_column('major_projects', 'description',
3131
existing_type=sa.TEXT(),
3232
nullable=False)

0 commit comments

Comments
 (0)