def process_project_create(self, project, params, error_form=False): form = ProjectForm(params) if form.validate(): existing_project, error = yield self.structure.get_project_by_name( form.name.data ) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) if existing_project: form.name.errors.append(self.DUPLICATE_NAME) if error_form: raise Return((None, form)) raise Return((None, form.errors)) else: project, error = yield self.structure.project_create( **form.data ) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) raise Return((project, None)) else: if error_form: raise Return((None, form)) raise Return((None, form.errors))
def process_project_edit(self, project, params, error_form=False, patch=True): """ Edit project namespace. """ if not project: raise Return((None, self.PROJECT_NOT_FOUND)) if "name" not in params: params["name"] = project["name"] boolean_patch_data = {} if patch: boolean_patch_data = utils.get_boolean_patch_data( ProjectForm.BOOLEAN_FIELDS, params) form = ProjectForm(params) if form.validate(): if "name" in params and params["name"] != project["name"]: existing_project, error = yield self.structure.get_project_by_name( params["name"]) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) if existing_project: form.name.errors.append(self.DUPLICATE_NAME) if error_form: raise Return((None, form)) raise Return((None, form.errors)) updated_project = project.copy() if patch: data = utils.make_patch_data(form, params) else: data = form.data.copy() updated_project.update(data) if patch: updated_project.update(boolean_patch_data) project, error = yield self.structure.project_edit( project, **updated_project) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) raise Return((project, None)) else: if error_form: raise Return((None, form)) raise Return((None, form.errors))
def process_project_edit(self, project, params, error_form=False, patch=True): """ Edit project namespace. """ if not project: raise Return((None, self.PROJECT_NOT_FOUND)) if "name" not in params: params["name"] = project["name"] namespaces, error = yield self.structure.get_project_namespaces(project) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) boolean_patch_data = {} if patch: boolean_patch_data = utils.get_boolean_patch_data(ProjectForm.BOOLEAN_FIELDS, params) namespace_choices = [(x["_id"], x["name"]) for x in namespaces] namespace_choices.insert(0, ("", "")) form = ProjectForm(params, namespace_choices=namespace_choices) if form.validate(): if "name" in params and params["name"] != project["name"]: existing_project, error = yield self.structure.get_project_by_name(params["name"]) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) if existing_project: form.name.errors.append(self.DUPLICATE_NAME) if error_form: raise Return((None, form)) raise Return((None, form.errors)) updated_project = project.copy() if patch: data = utils.make_patch_data(form, params) else: data = form.data.copy() updated_project.update(data) if patch: updated_project.update(boolean_patch_data) project, error = yield self.structure.project_edit(project, **updated_project) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) raise Return((project, None)) else: if error_form: raise Return((None, form)) raise Return((None, form.errors))
def process_project_edit(self, project, params, error_form=False): """ Edit project namespace. """ if not project: raise Return((None, self.PROJECT_NOT_FOUND)) if "name" not in params: params["name"] = project["name"] namespaces, error = yield self.structure.get_project_namespaces(project) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) namespace_choices = [(x['_id'], x['name']) for x in namespaces] namespace_choices.insert(0, ('', '')) form = ProjectForm(params, namespace_choices=namespace_choices) if form.validate(): if "name" in params and params["name"] != project["name"]: existing_project, error = yield self.structure.get_project_by_name( params["name"] ) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) if existing_project: form.name.errors.append(self.DUPLICATE_NAME) if error_form: raise Return((None, form)) raise Return((None, form.errors)) updated_project = project.copy() updated_project.update(form.data) project, error = yield self.structure.project_edit( project, **updated_project ) if error: raise Return((None, self.INTERNAL_SERVER_ERROR)) raise Return((project, None)) else: if error_form: raise Return((None, form)) raise Return((None, form.errors))
def get_settings(self): data = { 'user': self.current_user, 'project': self.project, 'form': ProjectForm(self, **self.project), 'render_control': render_control, 'render_label': render_label } raise Return((data, None))
def get(self): self.render('project/create.html', form=ProjectForm(self), render_control=render_control, render_label=render_label)