def edit(name): """Edit.""" if name not in _USER_SETTINGS: flash(_('Invalid plugin name'), 'error') return redirect(url_for('.index')) plugin = _USER_SETTINGS[name]() form = None if request.method == 'POST': if plugin.form_builder: form = plugin.form_builder(request.form) if not form or form.validate(): if form: # use the form to interpret data settings_data = form.data else: # no form provided, save the POST request values settings_data = flatten_multidict(request.values) plugin.store(settings_data) plugin.save() flash(_('Data has been saved.'), 'success') return redirect(url_for('.index')) flash(_('Please, corrent errors.'), 'error') # get post data or load data from settings if not form and plugin.form_builder: form = plugin.build_form() return render_template(getattr(plugin, 'edit_template', '') or 'accounts/edit.html', plugin=plugin, form=form)
def edit(name): if name not in _USER_SETTINGS: flash(_('Invalid plugin name'), 'error') return redirect(url_for('.index')) plugin = _USER_SETTINGS[name]() form = None if request.method == 'POST': if plugin.form_builder: form = plugin.form_builder(request.form) if not form or form.validate(): if form: # use the form to interpret data settings_data = form.data else: # no form provided, save the POST request values settings_data = flatten_multidict(request.values) plugin.store(settings_data) plugin.save() flash(_('Data has been saved.'), 'success') return redirect(url_for('.index')) flash(_('Please, corrent errors.'), 'error') # get post data or load data from settings if not form and plugin.form_builder: form = plugin.build_form() return render_template(getattr(plugin, 'edit_template', '') or 'accounts/edit.html', plugin=plugin, form=form)
def get_post_form(self): """ Returns only POST form. """ self.__tainted = True form = flatten_multidict(request.values) if request.files: form.update(request.files.to_dict()) return form
def get_post_form(self): """ Returns only POST form. """ self.__tainted = True form = flatten_multidict(request.values) if request.files: for name, file_ in iteritems(request.files): setattr(file_, "file", file_.stream) form[name] = file_ return form
def get_post_form(self): """ Returns only POST form. """ self.__tainted = True form = flatten_multidict(request.values) if request.files: for name, file_ in iteritems(request.files): setattr(file_, 'file', file_.stream) form[name] = file_ return form
def test_flatten_multidict(self): d = MultiDict({'a': 3, 'b': {'c': 5}}) d2 = flatten_multidict(d) self.assertEqual(d2, {'a': 3, 'b': {'c': 5}})