diff --git a/atst/domain/environments.py b/atst/domain/environments.py index 90755052..be007740 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -10,3 +10,9 @@ class Environments(object): db.session.commit() return environment + @classmethod + def create_many(cls, project, names): + for name in names: + environment = Environment(project=project, name=name) + db.session.add(environment) + db.session.commit() diff --git a/atst/domain/projects.py b/atst/domain/projects.py index 16e0fc4c..d3b2848a 100644 --- a/atst/domain/projects.py +++ b/atst/domain/projects.py @@ -1,11 +1,13 @@ from atst.database import db from atst.models.project import Project +from atst.domain.environments import Environments class Projects(object): @classmethod - def create(cls, workspace, name, description): + def create(cls, workspace, name, description, environment_names): project = Project(workspace=workspace, name=name, description=description) + Environments.create_many(project, environment_names) db.session.add(project) db.session.commit() diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index 6b25a04d..bfb5a428 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -67,10 +67,16 @@ def update_project(workspace_id): if form.validate(): project_data = form.data - project = Projects.create( - workspace, project_data["name"], project_data["description"] + Projects.create( + workspace, + project_data["name"], + project_data["description"], + project_data["environment_names"], ) - Environments.create(project, project_data["environment_name"]) return redirect( url_for("workspaces.workspace_projects", workspace_id=workspace.id) ) + else: + return render_template( + "workspace_project_new.html", workspace=workspace, form=form + )