Get error state in edit environment name form working

This commit is contained in:
George Drummond
2019-05-02 10:23:01 -04:00
parent 2f75d3b245
commit 430a6493f0
5 changed files with 66 additions and 20 deletions

View File

@@ -1,11 +1,12 @@
from .forms import BaseForm
from wtforms.fields import StringField, TextAreaField, FieldList
from wtforms.fields import StringField, TextAreaField, FieldList, HiddenField
from wtforms.validators import Required
from atst.forms.validators import ListItemRequired, ListItemsUnique
from atst.utils.localization import translate
class EditEnvironmentForm(BaseForm):
id = HiddenField()
name = StringField(
label=translate("forms.environments.name_label"), validators=[Required()]
)

View File

@@ -13,13 +13,20 @@ from atst.models.permissions import Permissions
from atst.utils.flash import formatted_flash as flash
def get_environments_obj_for_app(application):
def get_environments_obj_for_app(application, form=None):
environments_obj = []
for env in application.environments:
edit_form = None
if form == None or form.data["id"] != env.id:
edit_form = EditEnvironmentForm(obj=env)
else:
edit_form = form
env_data = {
"id": env.id,
"name": env.name,
"edit_form": EditEnvironmentForm(obj=env),
"edit_form": edit_form,
"members_form": EnvironmentRolesForm(data=data_for_env_members_form(env)),
"members": sort_env_users_by_role(env),
}
@@ -85,21 +92,35 @@ def update_environment(environment_id):
environment = Environments.get(environment_id)
application = environment.application
form = EditEnvironmentForm(formdata=http_request.form)
env_form = EditEnvironmentForm(obj=environment, formdata=http_request.form)
if form.validate():
Environments.update(environment=environment, name=form.name.data)
if env_form.validate():
Environments.update(environment=environment, name=env_form.name.data)
flash("application_environments_updated")
flash("application_environments_updated")
return redirect(
url_for(
"applications.settings",
application_id=application.id,
fragment="application-environments",
_anchor="application-environments",
return redirect(
url_for(
"applications.settings",
application_id=application.id,
fragment="application-environments",
_anchor="application-environments",
)
)
else:
return (
render_template(
"portfolios/applications/settings.html",
application=application,
form=ApplicationForm(
name=application.name, description=application.description
),
environments_obj=get_environments_obj_for_app(
application=application, form=env_form
),
),
400,
)
)
@applications_bp.route("/applications/<application_id>/edit", methods=["POST"])