diff --git a/atst/routes/applications/settings.py b/atst/routes/applications/settings.py index 56ef25ba..0e07f917 100644 --- a/atst/routes/applications/settings.py +++ b/atst/routes/applications/settings.py @@ -13,60 +13,46 @@ from atst.utils.flash import formatted_flash as flash def get_environments_obj_for_app(application): - environments_obj = {} + environments_obj = [] for env in application.environments: - environments_obj[env.name] = { - "edit_form": EditEnvironmentForm(obj=env), + env_data = { "id": env.id, + "name": env.name, + "edit_form": EditEnvironmentForm(obj=env), + "members_form": EnvironmentRolesForm(data=data_for_env_members_form(env)), + "members": sort_env_users_by_role(env), } - - environments_obj[env.name]["members"] = sort_env_users_by_role(env) + environments_obj.append(env_data) return environments_obj - # {env_name: {edit_form, env_id, members: {csp_role: [], csp_role: []}}} def sort_env_users_by_role(env): - users_dict = {} + users_dict = {"no_access": []} for role in CSPRole: users_dict[role.value] = [] - for r in env.roles: - users_dict[r.displayname].append( - {"name": r.user.full_name, "user_id": r.user_id} - ) + for user in env.application.users: + if user in env.users: + role = EnvironmentRoles.get(user.id, env.id) + users_dict[role.displayname].append( + {"name": user.full_name, "user_id": user.id} + ) + else: + users_dict["no_access"].append({"name": user.full_name, "user_id": user.id}) return users_dict - # {csp_role: [{user info}, {user info}], csp_role: [...]} -def serialize_env_member_forms(application): - environments_list = [] - - for env in application.environments: - env_info = {"env_name": env.name, "no_access": []} - env_team_list = [] - - for user in application.users: - if user in env.users: - env_role = EnvironmentRoles.get(user.id, env.id) - env_team_list.append( - { - "name": user.full_name, - "user_id": user.id, - "role": env_role.displayname, - } - ) - else: - env_info["no_access"].append( - {"name": user.full_name, "user_id": user.id} - ) - - env_info["form"] = EnvironmentRolesForm( - data={"env_id": env.id, "team_roles": env_team_list} +def data_for_env_members_form(environment): + data = {"env_id": environment.id, "team_roles": []} + for user in environment.users: + env_role = EnvironmentRoles.get(user.id, environment.id) + data["team_roles"].append( + {"name": user.full_name, "user_id": user.id, "role": env_role.displayname} ) - environments_list.append(env_info) - return environments_list + + return data @applications_bp.route("/applications//settings") @@ -81,7 +67,6 @@ def settings(application_id): application=application, form=form, environments_obj=get_environments_obj_for_app(application=application), - env_forms=serialize_env_member_forms(application=application), ) @@ -129,7 +114,6 @@ def update(application_id): application=application, form=form, environments_obj=get_environments_obj_for_app(application=application), - env_forms=serialize_env_member_forms(application=application), ) @@ -157,7 +141,6 @@ def update_env_roles(environment_id): name=application.name, description=application.description ), environments_obj=get_environments_obj_for_app(application=application), - env_forms=env_roles_form, ) diff --git a/templates/fragments/applications/edit_environments.html b/templates/fragments/applications/edit_environments.html index c629c440..46c8afdf 100644 --- a/templates/fragments/applications/edit_environments.html +++ b/templates/fragments/applications/edit_environments.html @@ -3,8 +3,12 @@ {% from "components/text_input.html" import TextInput %} {% from "components/save_button.html" import SaveButton %} -{% macro RolePanel(users=[], role='Unassigned(No Access)') %} - {% set unassigned = role == 'Unassigned(No Access)' %} +{% macro RolePanel(users=[], role='no_access') %} + {% if role == 'no_access' %} + {% set role = 'Unassigned (No Access)' %} + {% set unassigned = True %} + {% endif %} +

{{ role }}