@@ -230,72 +230,85 @@ def member_management_edituser(uid):
230230 post_data = request .get_json ()
231231
232232 if not uid .isdigit ():
233- active_member = post_data ['activeMember' ]
234-
235- if ldap_is_eval_director (user_name ):
236- logger .info ('backend' , action = "edit %s room: %s onfloor: %s housepts %s" %
237- (uid , post_data ['roomNumber' ], post_data ['onfloorStatus' ],
238- post_data ['housingPoints' ]))
239- room_number = post_data ['roomNumber' ]
240- onfloor_status = post_data ['onfloorStatus' ]
241- housing_points = post_data ['housingPoints' ]
242-
243- ldap_set_roomnumber (uid , room_number )
244- if onfloor_status :
245- ldap_add_member_to_group (uid , "onfloor" )
246- else :
247- ldap_remove_member_from_group (uid , "onfloor" )
248- ldap_set_housingpoints (uid , housing_points )
249-
250- # Only update if there's a diff
251- logger .info ('backend' , action = "edit %s active: %s" % (uid , active_member ))
252- if ldap_is_active (uid ) != active_member :
253- if active_member :
254- ldap_set_active (uid )
255- else :
256- ldap_set_inactive (uid )
257-
258- if active_member :
259- db .session .add (SpringEval (uid ))
260- else :
261- SpringEval .query .filter (
262- SpringEval .uid == uid and
263- SpringEval .active ).update (
264- {
265- 'active' : False
266- })
267- clear_active_members_cache ()
233+ edit_uid (uid , user_name , post_data )
268234 else :
269- logger .info ('backend' , action = "edit freshman account %s room: %s onfloor: %s eval_date: %s sig_missed %s" %
270- (uid , post_data ['roomNumber' ], post_data ['onfloorStatus' ],
271- post_data ['evalDate' ], post_data ['sigMissed' ]))
235+ edit_fid (uid , post_data )
272236
273- name = post_data ['name' ]
237+ db .session .flush ()
238+ db .session .commit ()
239+ return jsonify ({"success" : True }), 200
274240
275- if post_data ['roomNumber' ] == "" :
276- room_number = None
277- else :
278- room_number = post_data ['roomNumber' ]
241+ def edit_uid (uid , user_name , post_data ):
242+ active_member = post_data ['activeMember' ]
279243
244+ if ldap_is_eval_director (user_name ):
245+ logger .info ('backend' , action = "edit %s room: %s onfloor: %s housepts %s" %
246+ (uid , post_data ['roomNumber' ], post_data ['onfloorStatus' ],
247+ post_data ['housingPoints' ]))
248+ room_number = post_data ['roomNumber' ]
280249 onfloor_status = post_data ['onfloorStatus' ]
281- eval_date = post_data ['evalDate ' ]
250+ housing_points = post_data ['housingPoints ' ]
282251
283- if post_data ['sigMissed' ] == "" :
284- sig_missed = None
252+ ldap_set_roomnumber (uid , room_number )
253+ if onfloor_status :
254+ db .session .add (OnFloorStatusAssigned (uid , datetime .now ()))
255+ ldap_add_member_to_group (uid , "onfloor" )
285256 else :
286- sig_missed = post_data ['sigMissed' ]
287-
288- FreshmanAccount .query .filter (FreshmanAccount .id == uid ).update ({
289- 'name' : name ,
290- 'eval_date' : datetime .strptime (eval_date , "%Y-%m-%d" ),
291- 'onfloor_status' : onfloor_status ,
292- 'room_number' : room_number ,
293- 'signatures_missed' : sig_missed
294- })
257+ for ofs in OnFloorStatusAssigned .query .filter (OnFloorStatusAssigned .uid == uid ):
258+ db .session .delete (ofs )
259+ db .session .flush ()
260+ db .session .commit ()
261+
262+ ldap_remove_member_from_group (uid , "onfloor" )
263+ ldap_set_housingpoints (uid , housing_points )
264+
265+ # Only update if there's a diff
266+ logger .info ('backend' , action = "edit %s active: %s" % (uid , active_member ))
267+ if ldap_is_active (uid ) != active_member :
268+ if active_member :
269+ ldap_set_active (uid )
270+ else :
271+ ldap_set_inactive (uid )
295272
296- db .session .flush ()
297- db .session .commit ()
298- return jsonify ({"success" : True }), 200
273+ if active_member :
274+ db .session .add (SpringEval (uid ))
275+ else :
276+ SpringEval .query .filter (
277+ SpringEval .uid == uid and
278+ SpringEval .active ).update (
279+ {
280+ 'active' : False
281+ })
282+ clear_active_members_cache ()
283+
284+
285+ def edit_fid (uid , post_data ):
286+ logger .info ('backend' , action = "edit freshman account %s room: %s onfloor: %s eval_date: %s sig_missed %s" %
287+ (uid , post_data ['roomNumber' ], post_data ['onfloorStatus' ],
288+ post_data ['evalDate' ], post_data ['sigMissed' ]))
289+
290+ name = post_data ['name' ]
291+
292+ if post_data ['roomNumber' ] == "" :
293+ room_number = None
294+ else :
295+ room_number = post_data ['roomNumber' ]
296+
297+ onfloor_status = post_data ['onfloorStatus' ]
298+ eval_date = post_data ['evalDate' ]
299+
300+ if post_data ['sigMissed' ] == "" :
301+ sig_missed = None
302+ else :
303+ sig_missed = post_data ['sigMissed' ]
304+
305+ FreshmanAccount .query .filter (FreshmanAccount .id == uid ).update ({
306+ 'name' : name ,
307+ 'eval_date' : datetime .strptime (eval_date , "%Y-%m-%d" ),
308+ 'onfloor_status' : onfloor_status ,
309+ 'room_number' : room_number ,
310+ 'signatures_missed' : sig_missed
311+ })
299312
300313
301314@member_management_bp .route ('/manage/user/<uid>' , methods = ['GET' ])
0 commit comments