From 109249d95344ab1bd92b82a078f10dc866bd8f6a Mon Sep 17 00:00:00 2001 From: Montana Date: Wed, 5 Sep 2018 13:51:07 -0400 Subject: [PATCH] Allow user to save without changing user's role --- atst/forms/update_member.py | 2 +- atst/models/user.py | 4 ++++ atst/routes/workspaces.py | 9 +++++++-- templates/workspace_members.html | 7 ++++--- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/atst/forms/update_member.py b/atst/forms/update_member.py index e569d05b..2d60d33d 100644 --- a/atst/forms/update_member.py +++ b/atst/forms/update_member.py @@ -9,5 +9,5 @@ from .data import WORKSPACE_ROLES class UpdateMemberForm(Form): workspace_role = SelectField( - "Workspace Role", choices=WORKSPACE_ROLES, validators=[Optional()], default="" + "Workspace Role", choices=WORKSPACE_ROLES, validators=[Optional()] ) diff --git a/atst/models/user.py b/atst/models/user.py index 643fd3f5..0d8f0dc6 100644 --- a/atst/models/user.py +++ b/atst/models/user.py @@ -21,6 +21,10 @@ class User(Base): first_name = Column(String) last_name = Column(String) + @property + def role(self): + return self.atat_role.name + @property def atat_permissions(self): return self.atat_role.permissions diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index 3be5c097..80f35741 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -134,7 +134,7 @@ def view_member(workspace_id, member_id): "edit this workspace user", ) member = WorkspaceUsers.get(workspace_id, member_id) - form = UpdateMemberForm(http_request.form) + form = UpdateMemberForm(workspace_role=member.role) return render_template( "member_edit.html", form=form, workspace=workspace, member=member ) @@ -155,14 +155,19 @@ def update_member(workspace_id, member_id): form = UpdateMemberForm(http_request.form) if form.validate(): + if form.data["workspace_role"]: + role = form.data["workspace_role"] + else: + role = member.user.role Workspaces.update_member( - g.current_user, workspace, member, form.data["workspace_role"] + g.current_user, workspace, member, role ) return redirect( url_for( "workspaces.workspace_members", workspace_id=workspace.id, memberName=member.user.full_name, + updatedRole=form.data["workspace_role"], ) ) else: diff --git a/templates/workspace_members.html b/templates/workspace_members.html index 0c1f3c7e..34761341 100644 --- a/templates/workspace_members.html +++ b/templates/workspace_members.html @@ -33,10 +33,11 @@ ) }} {% endif %} -{% set updated_member_name = request.args.get("memberName") %} -{% if updated_member_name %} +{% set member_name = request.args.get("memberName") %} +{% set updated_role = request.args.get("updatedRole") %} +{% if updated_role %} {% set message -%} -

{{ updated_member_name }}'s role was successfully updated.

+

{{ member_name }}'s role was successfully updated to {{ updated_role }}

{%- endset %} {{ Alert('Workspace role updated successfully',