Beispiel #1
0
def object_edit(model_slug, model_key=None, **attrs):
	if model_slug not in models:
		abort(404)
	model = models[model_slug]
	sk = attrdict()
	if model_key:
		try: data = model.q.get_by(id=model_key)
		except NoData: abort(404)
	else:
		data = model
		sk.session = db

	if model_key:
		obj = model.q.get_by(id=int(model_key))
	else:
		obj = None

	fields = FieldSet(data, **sk)
	_fixup_fs(fields,model_key,attrs)

	if request.method == 'POST':
		fields.rebind(data=request.form)
		if fields.validate():
			fields.sync()
			next_url = url_for('_admin.object_list', model_slug=model_slug)
			return redirect(next_url)
	context = {
		'model_slug': model_slug,
		'model': model,
		'fields': fields,
	}
	template_name = '_admin/edit.html' if model_key else '_admin/new.html'
	return render_template(template_name, **context)
Beispiel #2
0
def object_edit(model_slug, model_key=None, **attrs):
    if model_slug not in models:
        abort(404)
    model = models[model_slug]
    sk = attrdict()
    if model_key:
        try:
            data = model.q.get_by(id=model_key)
        except NoData:
            abort(404)
    else:
        data = model
        sk.session = db

    if model_key:
        obj = model.q.get_by(id=int(model_key))
    else:
        obj = None

    fields = FieldSet(data, **sk)
    _fixup_fs(fields, model_key, attrs)

    if request.method == 'POST':
        fields.rebind(data=request.form)
        if fields.validate():
            fields.sync()
            next_url = url_for('_admin.object_list', model_slug=model_slug)
            return redirect(next_url)
    context = {
        'model_slug': model_slug,
        'model': model,
        'fields': fields,
    }
    template_name = '_admin/edit.html' if model_key else '_admin/new.html'
    return render_template(template_name, **context)
Beispiel #3
0
def task_add():
    """Add a new task command to be executed, added by only Supreme Admin by careful planning"""
    task = Task()
    fs = FieldSet(task)

    stage_options = [('', ''), ('Deployment', 'Deployment'),
                     ('Maintenance', 'Maintenance'), ('General', 'General')]
    fs.configure(options=[
        fs.name.label('Task Name'),
        fs.cmd.label('Command'),
        fs.params.label('Parameters'),
        fs.stage.dropdown(stage_options)
    ])

    if request.method == 'POST':
        fs.rebind(data=request.form)
        if fs.validate():
            fs.sync()
            db.session.add(task)
            db.session.commit()
            flash('Task successfully added!')

    fs.rebind(model=Task)

    return render_template('tasks/task_add.html', form=fs)
Beispiel #4
0
 def save(self, model, data, session):
     fs = FieldSet(model, session=session)
     fs.rebind(model, data=data)
     if fs.validate():
         fs.sync()
         return True
     #TODO: need to return validation result
     return False