From b35e8cfe8e7bba0acaaef2c090faafdd8d3e5618 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Wed, 18 Sep 2019 10:53:09 -0400 Subject: [PATCH] Update NewMemberForm so that it has the same data structure as the UpdateMemberForm --- atst/forms/application_member.py | 19 +++++++++---------- atst/routes/applications/settings.py | 13 +++++++++---- .../member_perms_form_fields.html | 16 ++++++++-------- .../new_member_modal_content.html | 2 +- .../portfolios/applications/settings.html | 2 +- tests/routes/applications/test_settings.py | 6 +++--- 6 files changed, 31 insertions(+), 27 deletions(-) diff --git a/atst/forms/application_member.py b/atst/forms/application_member.py index a6af78e3..cc5dc2fa 100644 --- a/atst/forms/application_member.py +++ b/atst/forms/application_member.py @@ -50,18 +50,17 @@ class PermissionsForm(FlaskForm): ), ) - -class NewForm(BaseForm): - user_data = FormField(BaseNewMemberForm) - permission_sets = FormField(PermissionsForm) - environment_roles = FieldList(FormField(EnvironmentForm)) - - -class UpdateMemberForm(PermissionsForm): - environment_roles = FieldList(FormField(EnvironmentForm)) - @property def data(self): _data = super().data _data.pop("csrf_token", None) return _data + + +class NewForm(PermissionsForm): + user_data = FormField(BaseNewMemberForm) + environment_roles = FieldList(FormField(EnvironmentForm)) + + +class UpdateMemberForm(PermissionsForm): + environment_roles = FieldList(FormField(EnvironmentForm)) diff --git a/atst/routes/applications/settings.py b/atst/routes/applications/settings.py index 379b9370..8fa056cf 100644 --- a/atst/routes/applications/settings.py +++ b/atst/routes/applications/settings.py @@ -166,6 +166,12 @@ def perm_sets_obj_to_list(perms_obj): return perm_sets +def get_perms_set_form_data(form_data): + return { + key: value for key, value in form_data.items() if key != "environment_roles" + } + + @applications_bp.route("/applications//settings") @user_can(Permissions.VIEW_APPLICATION, message="view application edit form") def settings(application_id): @@ -301,11 +307,12 @@ def create_member(application_id): if form.validate(): try: + perm_sets = get_perms_set_form_data(form.data) invite = Applications.invite( application=application, inviter=g.current_user, user_data=form.user_data.data, - permission_sets_names=perm_sets_obj_to_list(form.permission_sets.data), + permission_sets_names=perm_sets_obj_to_list(perm_sets), environment_roles_data=form.environment_roles.data, ) @@ -370,9 +377,7 @@ def update_member(application_id, application_role_id): form = UpdateMemberForm(http_request.form) if form.validate(): - perm_sets = { - key: value for key, value in form.data.items() if key != "environment_roles" - } + perm_sets = get_perms_set_form_data(form.data) new_perm_sets_names = perm_sets_obj_to_list(perm_sets) ApplicationRoles.update_permission_sets(app_role, new_perm_sets_names) diff --git a/templates/fragments/applications/member_perms_form_fields.html b/templates/fragments/applications/member_perms_form_fields.html index 5467dc33..c0261ed3 100644 --- a/templates/fragments/applications/member_perms_form_fields.html +++ b/templates/fragments/applications/member_perms_form_fields.html @@ -1,27 +1,27 @@ {% from "components/checkbox_input.html" import CheckboxInput %} -{% macro MemberPermsFields(app_perms_form, env_roles_form, new=False, member_role_id=None) %} +{% macro MemberPermsFields(form, new=False, member_role_id=None) %}

{{ "portfolios.applications.members.form.project_perms" | translate }}

{% if new %} - {% set team_mgmt = app_perms_form.perms_team_mgmt.name %} - {% set env_mgmt = app_perms_form.perms_env_mgmt.name %} - {% set del_env = app_perms_form.perms_del_env.name %} + {% set team_mgmt = form.perms_team_mgmt.name %} + {% set env_mgmt = form.perms_env_mgmt.name %} + {% set del_env = form.perms_del_env.name %} {% else %} {% set team_mgmt = "perms_team_mgmt-{}".format(member_role_id) %} {% set env_mgmt = "perms_env_mgmt-{}".format(member_role_id) %} {% set del_env = "perms_del_env-{}".format(member_role_id) %} {% endif %} - {{ CheckboxInput(app_perms_form.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt, optional=True) }} - {{ CheckboxInput(app_perms_form.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt, optional=True) }} - {{ CheckboxInput(app_perms_form.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env, optional=True) }} + {{ CheckboxInput(form.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt, optional=True) }} + {{ CheckboxInput(form.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt, optional=True) }} + {{ CheckboxInput(form.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env, optional=True) }}

{{ "portfolios.applications.members.form.env_access" | translate }}


- {% for environment_data in env_roles_form %} + {% for environment_data in form.environment_roles %}