Exemple #1
0
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)