예제 #1
0
파일: accounts.py 프로젝트: IviDim/invenio
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)
예제 #2
0
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)
예제 #3
0
    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
예제 #4
0
파일: __init__.py 프로젝트: k3njiy/invenio
    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
예제 #5
0
    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
예제 #6
0
    def test_flatten_multidict(self):
        d = MultiDict({'a': 3, 'b': {'c': 5}})
        d2 = flatten_multidict(d)

        self.assertEqual(d2, {'a': 3, 'b': {'c': 5}})
예제 #7
0
    def test_flatten_multidict(self):
        d = MultiDict({'a': 3, 'b': {'c': 5}})
        d2 = flatten_multidict(d)

        self.assertEqual(d2, {'a': 3, 'b': {'c': 5}})