1010from conditional .util .ldap import ldap_is_eval_director
1111from conditional .util .flask import render_template
1212
13- from conditional .models .models import Conditional
13+ from conditional .models .models import Conditional , SpringEval , FreshmanEvalData
1414
1515from 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 ()
0 commit comments