Ejemplo n.º 1
0
def upload():
    if request.method == 'POST':
        #files = request.files['file']
        files = request.files.getlist('file')
        if files:
            for file in files:
                abs_file_path = uploads.path(secure_filename(file.filename))
                if not os.path.exists(abs_file_path):
                    uploads.save(file)
                    size = os.path.getsize(abs_file_path)
                    result = Uploadfile(name=secure_filename(file.filename),
                                        type=file.content_type,
                                        size=size)
                else:
                    result = Uploadfile(name=secure_filename(file.filename),
                                        type=file.content_type,
                                        size=0,
                                        not_allowed_msg="File already exists!")
        return simplejson.dumps({"files": [result.get_file()]})
    if request.method == 'GET':
        files = [
            f for f in os.listdir(current_app.config['UPLOADED_UPLOADS_DEST'])
            if os.path.isfile(
                os.path.join(current_app.config['UPLOADED_UPLOADS_DEST'], f))
        ]
        file_display = []
        for f in files:
            size = os.path.getsize(
                os.path.join(current_app.config['UPLOADED_UPLOADS_DEST'], f))
            file_saved = Uploadfile(name=f, size=size)
            file_display.append(file_saved.get_file())
        return simplejson.dumps({"files": file_display})
    return render_template("admin/file_uploader.html", title='File Uploader')
Ejemplo n.º 2
0
def upload_files():
    if current_user.is_anonymous or current_user.department not in ['admin']:
        return redirect(url_for('main.index'))
    form = UploadForm()
    if form.validate_on_submit():
        for filename in request.files.getlist('uploads'):
            print(filename)
            uploads.save(filename)
        success = True
    else:
        success = False
    return render_template('admin/upload_files.html',
                           form=form,
                           success=success)
Ejemplo n.º 3
0
def edit_post(post_id):
    post = Post.query.get_or_404(post_id)
    if not (current_user.is_admin or
            int(post.user_id) == int(current_user.user_id)):
        abort(403)
    form = PostForm(form=request.form)
    post_tags = post.tags
    if request.method == 'POST' and form.validate():
        publish = False
        filename = None
        if form.publish.data:
            publish = True
        if 'cover_image' in request.files:
            cover_image = request.files['cover_image']
            image_name = cover_image.filename
            image_name_parts = image_name.split('.')
            image_name = append_timestamp(
                image_name_parts[0]) + '.' + image_name_parts[1]
            filename = uploads.save(cover_image, name=image_name)
        if post.title != form.title.data:
            post.post_title = form.title.data
        post.content = form.content.data
        post.published = publish
        if filename:
            # Remove previous image file, to save space
            if post.cover_image:
                upload_dir = current_app.config.get('UPLOAD_DIR', '')
                os.unlink(os.path.join(upload_dir, post.cover_image))
            post.cover_image = filename
        # remove previous tags
        remove_tags(post_id)
        # add new tags
        tags = form.tags.data
        for tag_id in tags:
            tag = check_tag(tag_id)
            if tag:
                post.tags.append(tag)
        db.session.add(post)
        db.session.commit()

        flash('Post edited successfully', 'success')
        return redirect(url_for('admin.list_posts'))

    form.title.data = post.title
    form.tags.data = [tag.tag_id for tag in post_tags]
    form.content.data = post.content
    form.publish.data = bool(post.published)
    data = {
        'title': 'Edit Post',
        'form': form,
        'post': post,
    }
    return render_template('admin/posts/edit.html', **data)
Ejemplo n.º 4
0
def upload():
    """ User may upload a new BOM File
    """
    form = UploadForm()
    if form.validate_on_submit():
        file_ = request.files['file_']
        filename = uploads.save(file_)
        bom = BillOfMaterials.from_kicad_archive(uploads.path(filename))
        bom.name = form.name.data
        bom.version = form.version.data
        bom.user = g.user
        db.session.add(bom)
        db.session.commit()
        flash("File {} successfully processed.".format(filename),
              category='success')
        return redirect(url_for('bom_summary', id=bom.id))
    return render_template('upload.html', form=form)
Ejemplo n.º 5
0
def upload():
    """ User may upload a new BOM File
    """
    form = UploadForm()
    if form.validate_on_submit():
        file_ = request.files['file_']
        filename = uploads.save(file_)
        bom = BillOfMaterials.from_kicad_archive(uploads.path(filename))
        bom.name = form.name.data
        bom.version = form.version.data
        bom.user = g.user
        db.session.add(bom)
        db.session.commit()
        flash("File {} successfully processed.".format(filename),
              category='success')
        return redirect(url_for('bom_summary', id=bom.id))
    return render_template('upload.html', form=form)
Ejemplo n.º 6
0
def upload():
    for file in request.files.getlist('btn-upload'):
        if not uploads.extension_allowed(extension(file.filename)):
            flash(
                Markup(
                    'File extension "%s" is not allowed to be uploaded to this server'
                    % extension(file.filename)), "warning")
            return redirect(url_for('main.index'))

        # save file
        file_name, file_extension = os.path.splitext(file.filename)
        folder = os.path.join(current_user.email, file_name)
        file_path = helper.resolve_folder_conflict(
            current_app.config['UPLOAD_FOLDER'], folder)
        saved_file_name = uploads.save(file,
                                       folder=file_path,
                                       name=file.filename)

        # get book meta
        meta = book_format.process(uploads.path(saved_file_name), file_path,
                                   file_name, file_extension[1:])

        # move file
        if meta.title != meta.file_name:
            new_file_path = os.path.join(current_app.config['UPLOAD_FOLDER'],
                                         file_path,
                                         meta.title + file_extension)
            move(uploads.path(saved_file_name), new_file_path)
            if meta.cover_path:
                new_cover_path = os.path.join(
                    current_app.config['UPLOAD_FOLDER'], file_path,
                    meta.title + '.jpg')
                move(meta.cover_path, new_cover_path)

        # add book
        Books.add_book(meta)
    flash(Markup('File upload completed.'), "info")
    return redirect(url_for('main.index'))
Ejemplo n.º 7
0
def create_post():
    form = PostForm(form=request.form)
    if request.method == 'POST' and form.validate():
        publish = False
        filename = None
        if form.publish.data:
            publish = True
        if 'cover_image' in request.files:
            cover_image = request.files['cover_image']
            image_name = cover_image.filename
            image_name_parts = image_name.split('.')
            image_name = append_timestamp(
                image_name_parts[0]) + '.' + image_name_parts[1]
            filename = uploads.save(cover_image, name=image_name)
        post = Post()
        post.post_title = form.title.data
        post.content = form.content.data
        post.user_id = current_user.user_id
        post.published = publish
        if filename:
            post.cover_image = filename
        tags = form.tags.data
        for tag_id in tags:
            tag = check_tag(tag_id)
            if tag:
                post.tags.append(tag)
        db.session.add(post)
        db.session.commit()

        flash('Post created successfully', 'success')
        return redirect(url_for('admin.list_posts'))

    data = {
        'title': 'Create Post',
        'form': form,
    }
    return render_template('admin/posts/create.html', **data)