Skip to content

Commit b0758ae

Browse files
committed
Link conditionals created during evaluations
1 parent e1d7072 commit b0758ae

File tree

4 files changed

+41
-8
lines changed

4 files changed

+41
-8
lines changed

conditional/blueprints/conditional.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from conditional.util.ldap import ldap_is_eval_director
1111
from conditional.util.flask import render_template
1212

13-
from conditional.models.models import Conditional
13+
from conditional.models.models import Conditional, SpringEval, FreshmanEvalData
1414

1515
from conditional import db
1616

@@ -63,8 +63,22 @@ def create_conditional():
6363
uid = post_data['uid']
6464
description = post_data['description']
6565
due_date = datetime.strptime(post_data['dueDate'], "%Y-%m-%d")
66+
if post_data['evaluation'] == 'spring':
67+
current_eval = SpringEval.query.filter(SpringEval.status == "Pending",
68+
SpringEval.uid == uid,
69+
SpringEval.active == True).first().id # pylint: disable=singleton-comparison
70+
db.session.add(Conditional(uid, description, due_date, s_eval=current_eval))
71+
elif post_data['evaluation'] == 'intro':
72+
if uid.isdigit():
73+
current_eval = FreshmanEvalData.query.filter(FreshmanEvalData.freshman_eval_result == "Pending",
74+
FreshmanEvalData.id == uid).first().id
75+
else:
76+
current_eval = FreshmanEvalData.query.filter(FreshmanEvalData.freshman_eval_result == "Pending",
77+
FreshmanEvalData.uid == uid).first().id
78+
db.session.add(Conditional(uid, description, due_date, i_eval=current_eval))
79+
else:
80+
db.session.add(Conditional(uid, description, due_date))
6681

67-
db.session.add(Conditional(uid, description, due_date))
6882
db.session.flush()
6983
db.session.commit()
7084

@@ -89,12 +103,23 @@ def conditional_review():
89103
status = post_data['status']
90104

91105
logger.info(action="updated conditional-%s to %s" % (cid, status))
92-
Conditional.query.filter(
93-
Conditional.id == cid). \
94-
update(
106+
conditional = Conditional.query.filter(Conditional.id == cid)
107+
cond_obj = conditional.first()
108+
109+
conditional.update(
95110
{
96111
'status': status
97112
})
113+
if cond_obj.s_evaluation:
114+
SpringEval.query.filter(SpringEval.id == cond_obj.s_evaluation).update(
115+
{
116+
'status': status
117+
})
118+
elif cond_obj.i_evaluation:
119+
FreshmanEvalData.query.filter(FreshmanEvalData.id == cond_obj.i_evaluation).update(
120+
{
121+
'freshman_eval_result': status
122+
})
98123

99124
db.session.flush()
100125
db.session.commit()

conditional/models/models.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,18 @@ class Conditional(db.Model):
219219
status = Column(Enum('Pending', 'Passed', 'Failed',
220220
name="conditional_enum"),
221221
nullable=False)
222+
s_evaluation = Column(ForeignKey('spring_evals.id'))
223+
i_evaluation = Column(ForeignKey('freshman_eval_data.id'))
222224

223-
def __init__(self, uid, description, due):
225+
def __init__(self, uid, description, due, s_eval=None, i_eval=None):
224226
self.uid = uid
225227
self.description = description
226228
self.date_due = due
227229
self.date_created = datetime.now()
228230
self.status = "Pending"
229231
self.active = True
232+
self.s_evaluation = s_eval
233+
self.i_evaluation = i_eval
230234

231235

232236
class EvalSettings(db.Model):

frontend/javascript/modules/conditionalActions.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export default class ConditionalActions {
2828
});
2929
} else {
3030
const actionExt = (action === "pass") ? "Passed" : "Failed";
31-
3231
let payload = {
3332
id: this.id,
3433
status: actionExt

frontend/javascript/modules/conditionalForm.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ export default class ConditionalForm {
1616
_submitForm(e) {
1717
e.preventDefault();
1818
let uid = this.form.uid.value;
19+
let evaluation = null;
20+
if (location.pathname.split('/')[1] === "slideshow") {
21+
evaluation = location.pathname.split('/')[2];
22+
}
1923
let payload = {
2024
uid: uid,
2125
description: this.form.querySelector('input[name=description]').value,
22-
dueDate: this.form.querySelector('input[name=due_date]').value
26+
dueDate: this.form.querySelector('input[name=due_date]').value,
27+
evaluation: evaluation
2328
};
2429
FetchUtil.postWithWarning(this.endpoint, payload, {
2530
warningText: "Are you sure you want to create this conditional?",

0 commit comments

Comments
 (0)