def project_components(project_id): from models.project import Project, Component project_id = urllib.unquote_plus(project_id) project = Project.query.filter_by(id=project_id).first() if not project: abort(404) elif not app.access('project', action='update', project=project): abort(403) title = g._t('project components') breadcrumbs = ( (g._t('projects'), url_for('project_index')), (project.__str__(), url_for('project_view', project_id=urllib.quote_plus(str(project_id)))), (title, "#") ) if (request.form.get('method') == 'PUT' or request.method == 'PUT') and request.form.get('csrf_token'): submittedComponent = Component.query.filter_by(id=request.form.get('component_id')).first() if submittedComponent: submittedComponent.alias = request.form.get('component_alias', '') submittedComponent.title = request.form.get('component_title', '') submittedComponent.info = request.form.get('component_info', '') if not submittedComponent.validate(): submittedComponent.save() flash( g._t('component update success')) return redirect(url_for('project_components', project_id=urllib.quote_plus(str(project_id)))) else: flash( g._t('component not found'), 'error') elif (request.form.get('method') == 'DELETE' or request.method == 'DELETE') and request.form.get('csrf_token'): submittedComponent = Component.query.filter_by(id=request.form.get('component_id')).first() if submittedComponent: submittedComponent.delete() flash( g._t('component delete success')) return redirect(url_for('project_components', project_id=urllib.quote_plus(str(project_id)))) else: flash( g._t('component not found'), 'error') elif (request.form.get('method') == 'POST' or request.method == 'POST') and request.form.get('csrf_token'): submittedComponent = Component() submittedComponent.project_id = project.id submittedComponent.alias = request.form.get('component_alias', '') submittedComponent.title = request.form.get('component_title', '') submittedComponent.info = request.form.get('component_info', '') if not submittedComponent.validate(): submittedComponent.save() flash( g._t('component create success')) return redirect(url_for('project_components', project_id=urllib.quote_plus(str(project_id)))) else: submittedComponent = Component() return render_template('project/components.html', project_id=project_id, project=project, submittedComponent=submittedComponent, title=title, breadcrumbs=breadcrumbs)