示例#1
0
def create():
    if request.method == "POST":
        if request.form["title"] and request.form["body"] and request.form[
                "lead"]:

            db = g.sqlite_db.cursor()

            title = request.form.get("title")
            body = request.form.get("body")
            localtime = time.asctime(time.localtime(time.time()))
            lead = request.form.get("lead")
            url = slugify(title)

            if request.form.get("publish") == "publish":
                mytuple = (title, lead, body, 1, localtime, url)
                db.execute(
                    """insert into fts_entries(title, lead, body, published, date, url) values(?, ?, ?, ?, ?, ?)""",
                    mytuple)

            if request.form.get("save_for_later") == "save_for_later":
                mytuple = (title, lead, body, 0, localtime, url)
                db.execute(
                    """insert into fts_entries(title, lead, body, published, date, url) values(?, ?, ?, ?, ?, ?)""",
                    mytuple)

            flash("Your post has been created successfully")
            get_db().commit()
            return redirect(url_for("admin_posts"))

        else:
            flash("You haven't entered text")
            return render_template('create.html')
    return render_template('create.html')
示例#2
0
def edit():
    db = g.sqlite_db.cursor()

    if request.method == "POST":

        if request.form.get("edit_btn") == "edit":
            entry_id = int(request.form.get("edit_id"))
            mytuple = (entry_id, )
            db.execute("select rowid, * from fts_entries where rowid=?",
                       mytuple)
            entry = db.fetchone()
            return render_template("edit.html", entry=entry)

        # post from home page

        elif request.form.get("publish_index") == "publish_index":
            rowid = int(request.form.get("rowid"))
            mydic = {"published": 1, "rowid": rowid}
            db.execute(
                """update fts_entries set 
                           published=:published
                           where rowid=:rowid""", mydic)
            flash("Post has been published successfully")
            get_db().commit()
            return redirect(url_for("admin_posts"))

        elif request.form.get("unpublish") == "unpublish":
            rowid = int(request.form.get("rowid"))
            mydic = {"published": 0, "rowid": rowid}
            db.execute(
                """update fts_entries set 
                       published=:published
                       where rowid=:rowid""", mydic)
            flash("Post has been unpublished successfully")
            get_db().commit()
            return redirect(url_for("admin_posts"))

    else:
        return redirect(url_for("admin_posts"))
    return redirect(url_for("admin_posts"))
示例#3
0
def top_5():
    if request.method == "POST":
        db = g.sqlite_db.cursor()

        # adding post to TOP-5
        if request.form.get("add_to_top5"):
            # check how many TOP-5 posts already exist
            db.execute(""" select count(*) 
                       from fts_entries
                       where top5 !=0
                       """)
            # fetchone returns a tuple like (1, )
            count = db.fetchone()[0]
            if count < 5:
                rowid = request.form.get("rowid")

                mydic = {"top5": 1, "rowid": rowid}
                db.execute(
                    """update fts_entries set 
                               top5=:top5
                               where rowid=:rowid""", mydic)
                get_db().commit()
                flash("Post has been added to top5 successfully")
                return redirect(url_for("admin_posts"))
            else:
                flash("Too many posts in top5 already. Please, remove some")
                return redirect(url_for("admin_posts"))

        if request.form.get("remove_from_top5"):
            rowid = request.form.get("rowid")
            mydic = {"top5": 0, "rowid": rowid}
            db.execute(
                """update fts_entries set 
                           top5=:top5
                           where rowid=:rowid""", mydic)
            get_db().commit()
            flash("Post has been removed from top5 successfully")
            return redirect(url_for("admin_posts"))

    return redirect(url_for("admin_posts"))
示例#4
0
def subscribe():
    if request.method == "POST":
        form = EmailForm()
        if form.validate_on_submit():

            db = g.sqlite_db.cursor()

            email = request.form.get("email")
            mytuple = (email, )
            db.execute("insert into subscribers (email) values (?)", mytuple)
            get_db().commit()

            flash("You have subscribed successfully!")

            send_email("Hello",
                       sender="*****@*****.**",
                       recipients=[email])

            return redirect(url_for("allposts"))
        else:
            flash("Not valid email")
            return redirect(url_for("allposts"))

    return redirect(url_for("allposts"))
示例#5
0
def before_request():
    """Opens the database before the request."""
    get_db()
示例#6
0
def update():
    if request.method == "POST":

        db = g.sqlite_db.cursor()

        rowid = int(request.form.get("rowid"))
        title = request.form.get("title")
        lead = request.form.get("lead")
        body = request.form.get("body")

        if request.form.get("edit_delete_btn") == "delete":

            mytuple = (rowid, )
            db.execute("delete from fts_entries where rowid=?", mytuple)
            get_db().commit()
            flash("Entry has been deleted successfully")
            return redirect(url_for("admin_posts"))

        if request.form.get("publish") == "publish":
            url = slugify(title)
            mydic = {
                "title": title,
                "lead": lead,
                "body": body,
                "published": 1,
                "url": url,
                "rowid": rowid
            }

            db.execute(
                """update fts_entries set 
                           title=:title, 
                           lead=:lead,
                           body=:body,
                           published=:published,
                           url=:url
                           where rowid=:rowid""", mydic)

            get_db().commit()
            flash("Changes saved successfully")
            return redirect(url_for("admin_show_post", url=url))

        if request.form.get("save_for_later") == "save_for_later":
            url = slugify(title)
            mydic = {
                "title": title,
                "lead": lead,
                "body": body,
                "published": 0,
                "url": url,
                "rowid": rowid
            }

            db.execute(
                """update fts_entries set 
                           title=:title,
                           lead=:lead, 
                           body=:body,
                           published=:published,
                           url=:url
                           where rowid=:rowid""", mydic)

            get_db().commit()
            flash("Changes saved successfully")

        return redirect(url_for("admin_show_post", url=url))
    return redirect(url_for("admin_posts"))