@@ -230,72 +230,85 @@ def member_management_edituser(uid):
230
230
post_data = request .get_json ()
231
231
232
232
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 )
268
234
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 )
272
236
273
- name = post_data ['name' ]
237
+ db .session .flush ()
238
+ db .session .commit ()
239
+ return jsonify ({"success" : True }), 200
274
240
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' ]
279
243
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' ]
280
249
onfloor_status = post_data ['onfloorStatus' ]
281
- eval_date = post_data ['evalDate ' ]
250
+ housing_points = post_data ['housingPoints ' ]
282
251
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" )
285
256
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 )
295
272
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
+ })
299
312
300
313
301
314
@member_management_bp .route ('/manage/user/<uid>' , methods = ['GET' ])
0 commit comments