Add in templates for ccpo user form and sketch out route functions
This commit is contained in:
parent
8420a78392
commit
01ba73ef42
13
atst/forms/ccpo_user.py
Normal file
13
atst/forms/ccpo_user.py
Normal file
@ -0,0 +1,13 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms.validators import Required, Length
|
||||
from wtforms.fields import StringField
|
||||
|
||||
from atst.forms.validators import IsNumber
|
||||
from atst.utils.localization import translate
|
||||
|
||||
|
||||
class CCPOUserForm(FlaskForm):
|
||||
dod_id = StringField(
|
||||
translate("forms.new_member.dod_id_label"),
|
||||
validators=[Required(), Length(min=10), IsNumber()],
|
||||
)
|
@ -21,8 +21,10 @@ from atst.domain.authnid import AuthenticationContext
|
||||
from atst.domain.audit_log import AuditLog
|
||||
from atst.domain.auth import logout as _logout
|
||||
from atst.domain.common import Paginator
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.authz.decorator import user_can_access_decorator as user_can
|
||||
from atst.forms.ccpo_user import CCPOUserForm
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.utils.context_processors import atat as atat_context_processor
|
||||
from atst.utils.flash import formatted_flash as flash
|
||||
@ -141,6 +143,35 @@ def ccpo_users():
|
||||
return render_template("ccpo/users.html", users=users)
|
||||
|
||||
|
||||
@bp.route("/ccpo-users/new")
|
||||
@user_can(Permissions.CREATE_CCPO_USER, message="create ccpo user")
|
||||
def add_new_ccpo_user():
|
||||
form = CCPOUserForm()
|
||||
return render_template("ccpo/add_user.html", form=form)
|
||||
|
||||
|
||||
@bp.route("/ccpo-users/new", methods=["POST"])
|
||||
@user_can(Permissions.CREATE_CCPO_USER, message="create ccpo user")
|
||||
def submit_add_new_ccpo_user():
|
||||
try:
|
||||
new_user = Users.get_by_dod_id(request.form['dod_id'])
|
||||
form = CCPOUserForm(obj=new_user)
|
||||
except NotFoundError:
|
||||
new_user = None
|
||||
form = CCPOUserForm()
|
||||
|
||||
return render_template("ccpo/confirm_user.html", new_user=new_user, form=form)
|
||||
|
||||
|
||||
@bp.route("/ccpo-users/confirm-new", methods=["POST"])
|
||||
@user_can(Permissions.CREATE_CCPO_USER, message="create ccpo user")
|
||||
def confirm_new_ccpo_user():
|
||||
new_user = Users.get_by_dod_id(request.form['dod_id'])
|
||||
# give new perms here
|
||||
# flash w/ success message
|
||||
return redirect(url_for("atst.ccpo_users"))
|
||||
|
||||
|
||||
@bp.route("/about")
|
||||
def about():
|
||||
return render_template("about.html")
|
||||
|
27
templates/ccpo/add_user.html
Normal file
27
templates/ccpo/add_user.html
Normal file
@ -0,0 +1,27 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% from "components/text_input.html" import TextInput %}
|
||||
|
||||
{% block content %}
|
||||
{% set ccpo_user_form = "add-ccpo-user-form" %}
|
||||
|
||||
<form id="{{ ccpo_user_form }}" action="{{ url_for('atst.submit_add_new_ccpo_user') }}" method="POST">
|
||||
{{ form.csrf_token }}
|
||||
<div class="modal__form--header">
|
||||
<h1>Add new CCPO user</h1>
|
||||
</div>
|
||||
<div class='form-row'>
|
||||
<div class='form-col'>
|
||||
{{ TextInput(form.dod_id, validation='dodId') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class='action-group'>
|
||||
<input
|
||||
type='submit'
|
||||
v-bind:disabled="invalid"
|
||||
class='action-group__action usa-button'
|
||||
value='Next'>
|
||||
<a class='action-group__action icon-link icon-link--default' href="{{ url_for('atst.ccpo_users') }}">{{ "common.cancel" | translate }}</a>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
35
templates/ccpo/confirm_user.html
Normal file
35
templates/ccpo/confirm_user.html
Normal file
@ -0,0 +1,35 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% from "components/alert.html" import Alert %}
|
||||
{% from "components/text_input.html" import TextInput %}
|
||||
|
||||
{% block content %}
|
||||
{% set ccpo_user_form = "add-ccpo-user-form" %}
|
||||
|
||||
{% call Alert('Confirm new CCPO user') %}
|
||||
|
||||
<form id="{{ ccpo_user_form }}" action="{{ url_for('atst.confirm_new_ccpo_user') }}" method="POST">
|
||||
{{ form.csrf_token }}
|
||||
<input type="hidden" name="dod_id" value="{{ form.dod_id.data }}">
|
||||
<div>
|
||||
<p>
|
||||
Please confirm that the user details below match the user being given CCPO permissions.
|
||||
</p>
|
||||
<p>
|
||||
{{ new_user.full_name }}
|
||||
</p>
|
||||
<p>
|
||||
{{ new_user.email }}
|
||||
</p>
|
||||
</div>
|
||||
<div class='action-group'>
|
||||
<input
|
||||
type='submit'
|
||||
v-bind:disabled="invalid"
|
||||
class='action-group__action usa-button'
|
||||
value='Confirm and Add User'>
|
||||
<a class='action-group__action icon-link icon-link--default' href="{{ url_for('atst.ccpo_users') }}">{{ "common.cancel" | translate }}</a>
|
||||
</div>
|
||||
</form>
|
||||
{% endcall %}
|
||||
{% endblock %}
|
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
|
||||
{% if user_can(permissions.CREATE_CCPO_USER) %}
|
||||
<a class="icon-link modal-link" v-on:click="openModal()">
|
||||
<a class="icon-link modal-link" href="{{ url_for('atst.add_new_ccpo_user')}}">
|
||||
Add new CCPO user {{ Icon("plus") }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user