Move modal outside of table and add csrf token
This commit is contained in:
parent
89cb5a160c
commit
d296d3c237
@ -1,5 +1,6 @@
|
|||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from wtforms.fields import FormField, FieldList, HiddenField, BooleanField
|
from wtforms.fields import FormField, FieldList, HiddenField, BooleanField
|
||||||
|
from wtforms import Form
|
||||||
|
|
||||||
from .forms import BaseForm
|
from .forms import BaseForm
|
||||||
from .member import NewForm as BaseNewMemberForm
|
from .member import NewForm as BaseNewMemberForm
|
||||||
@ -9,7 +10,7 @@ from atst.forms.fields import SelectField
|
|||||||
from atst.utils.localization import translate
|
from atst.utils.localization import translate
|
||||||
|
|
||||||
|
|
||||||
class EnvironmentForm(FlaskForm):
|
class EnvironmentForm(Form):
|
||||||
environment_id = HiddenField()
|
environment_id = HiddenField()
|
||||||
environment_name = HiddenField()
|
environment_name = HiddenField()
|
||||||
role = SelectField(
|
role = SelectField(
|
||||||
@ -27,7 +28,7 @@ class EnvironmentForm(FlaskForm):
|
|||||||
return _data
|
return _data
|
||||||
|
|
||||||
|
|
||||||
class PermissionsForm(FlaskForm):
|
class PermissionsForm(Form):
|
||||||
perms_env_mgmt = BooleanField(
|
perms_env_mgmt = BooleanField(
|
||||||
translate("portfolios.applications.members.form.env_mgmt.label"),
|
translate("portfolios.applications.members.form.env_mgmt.label"),
|
||||||
default=False,
|
default=False,
|
||||||
|
@ -363,3 +363,13 @@ def remove_member(application_id, application_role_id):
|
|||||||
fragment="application-members",
|
fragment="application-members",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@applications_bp.route(
|
||||||
|
"/applications/<application_id>/members/<application_role_id>/update",
|
||||||
|
methods=["POST"],
|
||||||
|
)
|
||||||
|
@user_can(Permissions.EDIT_APPLICATION_MEMBER, message="update application member")
|
||||||
|
def update_member(application_id, application_role_id):
|
||||||
|
import ipdb; ipdb.set_trace()
|
||||||
|
pass
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
<legend>
|
<legend>
|
||||||
{{ field(id=id, checked=True, **{"v-model": "isChecked"}) }}
|
{{ field(id=id, checked=True, **{"v-model": "isChecked"}) }}
|
||||||
{{ field.label(for=id) | safe }}
|
{{ field.label(for=id) | safe }}
|
||||||
|
{{ field.data }}
|
||||||
|
|
||||||
{% if field.description %}
|
{% if field.description %}
|
||||||
<p class='usa-input__help'>
|
<p class='usa-input__help'>
|
||||||
|
@ -119,6 +119,56 @@
|
|||||||
{% if g.matchesPath("application-members") %}
|
{% if g.matchesPath("application-members") %}
|
||||||
{% include "fragments/flash.html" %}
|
{% include "fragments/flash.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% for member in members %}
|
||||||
|
{% set modal_name = "edit_member-{}".format(loop.index) %}
|
||||||
|
{% call Modal(modal_name, dismissable=True) %}
|
||||||
|
<form id='{{ modal_name }}' method="POST" action="{{ url_for('applications.update_member', application_id=application.id, application_role_id=member.role_id) }}">
|
||||||
|
{{ member.form.csrf_token() }}
|
||||||
|
<h4>{{ "portfolios.applications.members.form.project_perms" | translate }}</h4>
|
||||||
|
<div class="application-perms">
|
||||||
|
{% 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) %}
|
||||||
|
{{ CheckboxInput(member.form.permission_sets.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt) }}
|
||||||
|
{{ CheckboxInput(member.form.permission_sets.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt) }}
|
||||||
|
{{ CheckboxInput(member.form.permission_sets.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env) }}
|
||||||
|
</div>
|
||||||
|
<div class="environment-roles-new">
|
||||||
|
<h4>{{ "portfolios.applications.members.form.env_access" | translate }}</h4>
|
||||||
|
<hr>
|
||||||
|
{% for environment_data in member.form.environment_roles %}
|
||||||
|
<optionsinput inline-template
|
||||||
|
v-bind:initial-value="'{{ environment_data.role.data | string }}'"
|
||||||
|
v-bind:name="'{{ environment_data.name | string }}'"
|
||||||
|
v-bind:optional="true">
|
||||||
|
<div class="usa-input">
|
||||||
|
<fieldset data-ally-disabled="true" class="usa-input__choices">
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-col form-col--two-thirds">
|
||||||
|
<legend>
|
||||||
|
<div v-bind:class='["usa-input__title-inline", {"environment-name--gray": value === "None" }]'>
|
||||||
|
{{ environment_data.environment_name.data }}
|
||||||
|
</div>
|
||||||
|
</legend>
|
||||||
|
</div>
|
||||||
|
<div class="form-col form-col--third">
|
||||||
|
{{ environment_data.role(**{"v-model": "value"}) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</optionsinput>
|
||||||
|
{{ environment_data.environment_id() }}
|
||||||
|
<hr>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<input
|
||||||
|
type="submit"
|
||||||
|
class='action-group__action usa-button'
|
||||||
|
value='Update'>
|
||||||
|
</form>
|
||||||
|
{% endcall %}
|
||||||
|
{% endfor %}
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -130,51 +180,7 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for member in members %}
|
{% for member in members %}
|
||||||
{% import "fragments/applications/new_member_modal_content.html" as member_steps %}
|
|
||||||
{% set modal_name = "edit_member-{}".format(loop.index) %}
|
{% set modal_name = "edit_member-{}".format(loop.index) %}
|
||||||
{% call Modal(modal_name, dismissable=True) %}
|
|
||||||
<form id='{{ modal_name }}'>
|
|
||||||
<h4>{{ "portfolios.applications.members.form.project_perms" | translate }}</h4>
|
|
||||||
<div class="application-perms">
|
|
||||||
{% 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) %}
|
|
||||||
{{ CheckboxInput(member.form.permission_sets.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt) }}
|
|
||||||
{{ CheckboxInput(member.form.permission_sets.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt) }}
|
|
||||||
{{ CheckboxInput(member.form.permission_sets.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env) }}
|
|
||||||
</div>
|
|
||||||
<div class="environment-roles-new">
|
|
||||||
<h4>{{ "portfolios.applications.members.form.env_access" | translate }}</h4>
|
|
||||||
<hr>
|
|
||||||
{% for environment_data in member.form.environment_roles %}
|
|
||||||
<optionsinput inline-template
|
|
||||||
v-bind:initial-value="'{{ environment_data.role.data | string }}'"
|
|
||||||
v-bind:name="'{{ environment_data.name | string }}'"
|
|
||||||
v-bind:optional="true"
|
|
||||||
>
|
|
||||||
<div class="usa-input">
|
|
||||||
<fieldset data-ally-disabled="true" class="usa-input__choices">
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-col form-col--two-thirds">
|
|
||||||
<legend>
|
|
||||||
<div v-bind:class='["usa-input__title-inline", {"environment-name--gray": value === "None" }]'>
|
|
||||||
{{ environment_data.environment_name.data }}
|
|
||||||
</div>
|
|
||||||
</legend>
|
|
||||||
</div>
|
|
||||||
<div class="form-col form-col--third">
|
|
||||||
{{ environment_data.role(**{"v-model": "value"}) }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</optionsinput>
|
|
||||||
{{ environment_data.environment_id() }}
|
|
||||||
<hr>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endcall %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
{{ member.user_name }}
|
{{ member.user_name }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user