Exemple #1
0
def admin_file_edit():
    directory_id = request.form.get('directory_id')
    directory = Directory.query.get(directory_id)

    name = request.form.get('name')
    file = File.get_by_directory_and_name(directory, name)
    if file:
        old_description = file.description
    else:
        p = Path(directory.path + '/' + name)
        if not p.is_file():
            raise NotFound
        file = File(name=name, directory_id=directory.id)
        db.session.add(file)
        old_description = "No description"

    form = FileForm(obj=file)
    if form.validate_on_submit():
        form.populate_obj(file)
        message = Entry.make_diff_message(
            {"Description": (old_description, file.description)})
        entry = Entry(user_id=current_user.id,
                      ip=int(ip_address(request.remote_addr)),
                      message="Edited file {0}, {1}".format(
                          directory.path + '/' + file.name, message))

        db.session.add(entry)
        db.session.commit()
        flash(u"File edited", 'success')
        return redirect(url_for('browse_path', name=directory.name))
Exemple #2
0
def admin_show_file_edit(name):
    directory, file, name = get_file_and_directory(name)
    file = File.get_by_directory_and_name(directory, name)
    form = FileForm(obj=file)
    return render_template('edit_file.html.j2',
                           form=form,
                           name=name,
                           directory_id=directory.id)