Example #1
0
def add_folder():
    folders = Folder.query()
    form = FolderForm()
    if form.validate_on_submit():
        folder = Folder()
        form.populate_obj(folder)
        folder.put()
        return flask.redirect(flask.url_for('admin.file.index'))
    return flask.render_template(
        'file/admin/add_folder.html',
        form=form,
        folders=folders
    )
Example #2
0
def add_blob_content():

    response_object = {
      'status': 'success',
      'now': datetime.utcnow().isoformat(),
      'filelink': None,
    }

    folder = Folder.retrieve_by_id(3001)
    if not folder:
        response_object['status'] = 'failure'
        return util.jsonpify(response_object)
    upload_files = get_uploads(flask.request, 'file')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size:
            f = File.create(
                blob_info.key(),
                size=blob_info.size,
                filename=os.path.basename(blob_info.filename.replace('\\','/')),
                content_type=blob_info.content_type)
            f.put()
            if f.get_cached_url():
                folder.files.append(f.key)
                folder.put()
                response_object['filelink'] = f.get_cached_url()
        else:
            blob_info.delete()
    return util.jsonpify(response_object)
Example #3
0
def del_file(key_id, file_key):
    folder = Folder.retrieve_by_id(key_id)
    if not folder:
        return flask.redirect(flask.url_for('admin.file.index'))
    for i, f in enumerate(folder.files):
        if f.id() == file_key:
            f.delete()
            del folder.files[i]
            break
    else:
        return flask.redirect(flask.url_for('admin.file.edit_folder', key_id=key_id))
    folder.put()
    return flask.redirect(flask.url_for('admin.file.edit_folder', key_id=key_id))
Example #4
0
def index():
    folders = Folder.query(Folder.is_public == True).fetch(use_memcache=True, use_cache=True)
    downloads = {}
    for f in folders:
        files = []
        a = lambda key: files.append(key.get())
        map(a, f.files)
        downloads[f.title] = files
    return render_template(
        'portfolio/index.html',
        downloads=downloads,
        apache_docs=create_apache_docs()
    )
Example #5
0
def add_file(key_id):
    folder = Folder.retrieve_by_id(key_id)
    if not folder:
        return flask.redirect(flask.url_for('admin.file.index'))
    upload_files = get_uploads(flask.request, 'file')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size:
            file = File.create(
                blob_info.key(),
                size=blob_info.size,
                filename=os.path.basename(blob_info.filename.replace('\\','/')),
                content_type=blob_info.content_type)
            file.put()
            if file.get_cached_url():
                folder.files.append(file.key)
                folder.put()
        else:
            blob_info.delete()
    return flask.redirect(flask.url_for('admin.file.edit_folder', key_id=key_id))
Example #6
0
def edit_folder(key_id):
    folder = Folder.retrieve_by_id(key_id)
    if not folder:
        return flask.redirect(flask.url_for('admin.file.index'))
    if flask.request.method == 'POST' and 'delete_folder' in flask.request.form:
        folder.key.delete()
        return flask.redirect(flask.url_for('admin.file.index'))
    form = FolderForm(obj=folder)
    if form.validate_on_submit():
        form.populate_obj(folder)
        folder.put()
        return flask.redirect(flask.url_for('admin.file.index'))
    file_form = FileForm()
    add_url = blobstore.create_upload_url(flask.url_for('admin.file.add_file', key_id=folder.key.id()))
    return flask.render_template(
        'file/admin/edit_folder.html',
        form=form,
        folder=folder,
        active_folder=folder.key,
        file_form=file_form,
        add_url=add_url
    )
Example #7
0
def index():
    folders = Folder.query()
    return flask.render_template(
        'file/admin/folders.html',
        folders=folders
    )