def add_special_version(project_id): """新增或编辑项目版本类型""" project_obj = Project.query.filter(Project.id == project_id).first() # 系统管理员和配置管理员才能修改项目的源码及发布仓库地址 code_repo_list = Repository.query.filter(Repository.category == 2).all() release_repo_list = Repository.query.filter(Repository.category == 3).all() if request.method == 'POST': name = request.form.get('name') description = request.form.get('description') ftp_path = request.form.get('ftp_path') svn_path = request.form.get('svn_path') code_repo = request.form.get('code_repo') release_repo = request.form.get('release_repo') other_special_version = SpecialVersion.query.filter( db.and_(SpecialVersion.name == name, SpecialVersion.project_id == project_id)).first() if other_special_version: flash(u'同名版本类型已存在', 'danger') else: special_version = SpecialVersion() special_version.name = name special_version.description = description special_version.ftp_path = ftp_path special_version.svn_path = svn_path special_version.code_repo = Repository.query.filter(Repository.id == code_repo).first() special_version.release_repo = Repository.query.filter(Repository.id == release_repo).first() special_version.project = project_obj db.session.add(special_version) db.session.commit() return redirect(url_for('developer.edit_project', project_id=project_id)) return render_template('/scm/edit_special_version.html', project=project_obj, special_version=None, code_repo_list=code_repo_list, special_version_id=0, release_repo_list=release_repo_list )