예제 #1
0
파일: views.py 프로젝트: inhabitantx/blog
def blogpost():

    blog = Blog.query.all()

    form = PostForm()
    filename = None

    if form.validate_on_submit():
        image = request.files.get('image')
        if image:
            try:
                filename = uploaded_images.save(image)
            except:
                flash('The image could not be uploaded')
        else:
            print("File error!")

        maincategory = form.maincategory.data

        if form.new_subcategory.data:
            if not SubCategory.query.filter_by(
                    name=form.new_subcategory.data).first():
                maincategory.add_subcategory(form.new_subcategory.data,
                                             maincategory.id)
            subcategory = SubCategory.query.filter_by(
                name=form.new_subcategory.data).first()
        elif form.subcategory.data:
            subcategory = form.subcategory.data
        else:
            if (not SubCategory.query.filter_by(name="No Category")):
                maincategory.add_subcategory("No Category", maincategory.id)

            subcategory = SubCategory.query.filter_by(
                name="No Category").first()

        if form.new_subsubcategory.data:
            if not SubSubCategory.query.filter_by(
                    name=form.new_subsubcategory.data).first():
                subcategory.add_subsubcategory(form.new_subsubcategory.data,
                                               subcategory.id)
            subsubcategory = SubSubCategory.query.filter_by(
                name=form.new_subsubcategory.data).first()

        elif form.subsubcategory.data:
            subsubcategory = form.subsubcategory.data
        else:
            if (not SubSubCategory.query.filter_by(
                    name="No Category").first()):
                subcategory.add_subsubcategory("No Category", subcategory.id)

            subsubcategory = SubSubCategory.query.filter_by(
                name="No Category").first()

        blog = Blog.query.first()
        author = Author.query.filter_by(username=session['username']).first()
        title = form.title.data
        body = form.body.data

        slug = slugify(title)
        post = Post(blog, author, title, body, maincategory.id, subcategory.id,
                    subsubcategory.id, filename, slug)

        # Now add the Keywords

        # Extract Keywords from form and add them to Table
        if form.keywords.data:
            keywordstring = form.keywords.data

            # Remove whitespaces and split
            keywords = keywordstring.replace(' ', '').split(",")

            post.add_keywords(keywords)

        db.session.add(post)
        db.session.commit()

        return redirect(url_for('blog_app.article', slug=slug))

    return render_template("admin/post.html",
                           form=form,
                           action='new',
                           blog=blog)