Example #1
0
 def post(self):
     fs = FieldSet(self.instance,
                   data=self.request.POST)
     if fs.validate():
         fs.sync()
         self.session.flush()
         return HTTPFound(location=fs.model.getUrl())
Example #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)
Example #3
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)
Example #4
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)
Example #5
0
File: fa.py Project: sergeyv/crud
 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
Example #6
0
 def post(self):
     fs = FieldSet(self.cls, session=self.session).\
          bind(self.cls(), data=self.request.POST)
     if fs.validate():
         fs.sync()
         self.session.flush()
         return HTTPFound(location=fs.model.getUrl())
     else:
         return {'fs': fs, 'cls': self.cls}
Example #7
0
 def new(self, req, model_name):
     model = self.model.get_model_or_404(model_name)
     if req.method == 'POST':
         item = model()
         fs = FieldSet(item, session=session, data=req.form)
         if fs.validate():
             fs.sync()
             item.save()
             session.commit()
             return self.redirect_to('list', model_name=model_name)
     else:
         fs = FieldSet(model, session=session)
     return self.render_response('_admin/new.jinja',
         item=None, model_name=model_name, fs=fs)
Example #8
0
 def edit(self, req, model_name, id):
     model = self.model.get_model_or_404(model_name)
     item = model.query.get(id)
     if req.method == 'POST':
         fs = FieldSet(item, data=req.form)
         if fs.validate():
             fs.sync()
             item.save()
             session.commit()
             return self.redirect_to('list', model_name=model_name)
     else:
         fs = FieldSet(item)
     return self.render_response('_admin/new.jinja',
         item=item, model_name=model_name, fs=fs, crumbs=[model_name, 'Edit'])
Example #9
0
def edit(request):
    model = meta.__dict__.get(request.matchdict["model"])

    if "id" in request.matchdict:
        obj = request.db.query(model).filter(model.id==request.matchdict["id"]).first()
        fs = FieldSet(obj, request=request)
    else:
        fs = FieldSet(model, session=request.db, request=request)

    if "POST"==request.environ.get("REQUEST_METHOD", "").upper() and request.POST:
        if fs.validate():
            request.db.add(fs.model)
            fs.sync()
            return HTTPFound(location=request.route_url("list", model=request.matchdict["model"]))

    return { 'fs': fs }
Example #10
0
def saveedit(request):
    model = meta.__dict__.get(request.matchdict["model"])

    if "id" in request.matchdict:
        obj = request.db.query(model).filter(model.id==request.matchdict["id"]).first()
        fs = FieldSet(obj, request=request)
    else:
        fs = FieldSet(model, session=request.db, request=request)

    if fs.validate():
        request.db.add(fs.model)
        fs.sync()
    else:
        return { "fs": fs }

    return HTTPFound(location=request.route_url("list", model=request.matchdict["model"]))