Esempio n. 1
0
def create_blog():
    if 'userid' not in session:
        flash('Must be logged in to create blog', 'error')
        return redirect('/')
    if request.method == 'POST':
        tags = None
        if len(request.form['tags']) > 0:
            tags = [x.strip() for x in request.form['tags'].split(',')]
        validate_blog = Blog.validate_blog(request.form)
        if validate_blog:
            blog_data = blog_schema.dump(request.form)
            blog_data.data['content'] = request.form['editordata']
            blog_data.data['user_id'] = session['userid']
            new_blog = Blog.create_blog(blog_data.data)
            if tags:
                Tag.create_tags(data={'tags': tags, 'blog': new_blog.id})
            file = request.files['file']
            # if user does not select file, browser also
            # submit an empty part without filename
            if file and allowed_file(file.filename):
                filename = '{}_'.format(new_blog.id) + secure_filename(
                    file.filename)
                file.save(
                    os.path.join(app.config['BLOG_UPLOAD_FOLDER'], filename))
                Blog.update_picture(data={
                    'id': new_blog.id,
                    'filepath': filename
                })
            return redirect('/blogs/{}'.format(new_blog.id))
    tags = Tag.query.all()
    for tag in tags:
        tag.usage = len(tag.tag_has_blogs)
    return render_template('create_blog.html', tags=tags)
Esempio n. 2
0
def edit_blog(id):
    if 'userid' not in session:
        return redirect('/')
    blog = Blog.query.get(id)
    if blog.user_id != session['userid']:
        flash('You cannot edit this blog', 'warning')
        return redirect('/blogs/{}'.format(id))
    if request.method == 'POST':
        print(request.form)
        tags = None
        validate_blog = blog_schema.dump(request.form)
        if validate_blog:
            if blog.blog_has_tags:
                BlogTag.query.filter_by(blog_id=id).delete()
            if len(request.form['tags']) > 0:
                tags = [x.strip() for x in request.form['tags'].split(',')]
            if tags:
                Tag.create_tags(data={'tags': tags, 'blog': id})
            if request.files['file']:
                if blog.pic_filepath is not None:
                    delete_blog_picture(blog.pic_filepath)
                file = request.files['file']
                if file and allowed_file(file.filename):
                    filename = '{}_'.format(id) + secure_filename(
                        file.filename)
                    file.save(
                        os.path.join(app.config['BLOG_UPLOAD_FOLDER'],
                                     filename))
                    Blog.update_picture(data={'id': id, 'filepath': filename})
            blog.content = request.form['editordata']
            blog.title = request.form['title']
            db.session.commit()
        return redirect('/blogs/{}'.format(id))
    blog.tags = ''
    for i, tag in enumerate(blog.blog_has_tags):
        if i == 0:
            blog.tags += tag.tag.text
        else:
            blog.tags += ', ' + tag.tag.text
    return render_template('edit_blog.html', blog=blog)