(session, task_id, project_string_id, user_id_list, relation, log)
| 37 | |
| 38 | |
| 39 | def task_user_modify_core(session, task_id, project_string_id, user_id_list, relation, log): |
| 40 | result = {} |
| 41 | users_to_remove = session.query(TaskUser).filter(TaskUser.task_id == task_id).filter( |
| 42 | TaskUser.relation == relation) |
| 43 | if (len(user_id_list) > 0): |
| 44 | users_to_remove = users_to_remove.filter(TaskUser.user_id.notin_(user_id_list)) |
| 45 | |
| 46 | for user_to_remove in users_to_remove.all(): |
| 47 | user_to_remove_id = user_to_remove.__dict__["id"] |
| 48 | |
| 49 | if len(log["error"].keys()) >= 1: |
| 50 | return jsonify(log = log), 400 |
| 51 | |
| 52 | result, log = task_user_remove_core( |
| 53 | session = session, |
| 54 | task_user_id = user_to_remove_id, |
| 55 | project_string_id = project_string_id, |
| 56 | log = log |
| 57 | ) |
| 58 | |
| 59 | for user in user_id_list: |
| 60 | user_already_assigned = session.query(TaskUser).filter(TaskUser.user_id == user).filter( |
| 61 | TaskUser.task_id == task_id).filter(TaskUser.relation == relation).all() |
| 62 | if (len(user_already_assigned) > 0): |
| 63 | continue |
| 64 | |
| 65 | result, log = api_task_user_add_core( |
| 66 | session = session, |
| 67 | task_id = task_id, |
| 68 | user_id = user, |
| 69 | relation = relation, |
| 70 | project_string_id = project_string_id, |
| 71 | log = log |
| 72 | ) |
| 73 | return result, log |
| 74 | |
| 75 | |
| 76 | def api_task_user_add_core(session: 'Session', |
no test coverage detected