@@ -230,67 +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 )
236+ 
237+     db .session .flush ()
238+     db .session .commit ()
239+     return  jsonify ({"success" : True }), 200 
240+ 
241+ def  edit_uid (uid , user_name , post_data ):
242+     active_member  =  post_data ['activeMember' ]
272243
273-         name  =  post_data ['name' ]
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' ]))
274248        room_number  =  post_data ['roomNumber' ]
275249        onfloor_status  =  post_data ['onfloorStatus' ]
276-         eval_date  =  post_data ['evalDate ' ]
250+         housing_points  =  post_data ['housingPoints ' ]
277251
278-         if  post_data ['sigMissed' ] ==  "" :
279-             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" )
280256        else :
281-             sig_missed  =  post_data ['sigMissed' ]
282- 
283-         FreshmanAccount .query .filter (FreshmanAccount .id  ==  uid ).update ({
284-             'name' : name ,
285-             'eval_date' : datetime .strptime (eval_date , "%Y-%m-%d" ),
286-             'onfloor_status' : onfloor_status ,
287-             'room_number' : room_number ,
288-             'signatures_missed' : sig_missed 
289-         })
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 )
290272
291-     db .session .flush ()
292-     db .session .commit ()
293-     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+     })
294312
295313
296314@member_management_bp .route ('/manage/user/<uid>' , methods = ['GET' ]) 
0 commit comments