Beispiel #1
0
def entries():
    if "username" not in session:
        # if user is not logged in,
        return redirect(url_for("login"))
        # redirect to login page
    blog_title = request.args["blog_name"]
    # set blog_title to blog name acquired from GET request
    user = session["username"]
    # set user to username of person logged in
    blog_owner = user
    # blog_owner is set to user by default
    if "user" in request.args and request.args["user"] != "Your":
        blog_owner = request.args["user"]
    if "blog_id" in request.args:
        # if blog_id is in GET request (which happens when blog is just created),
        blog_id = request.args["blog_id"]
        # set blog_id to that GET request
    else:
        # else if blog_id is not in GET request
        blog_id = db_manager.get_blog_id_from_title(blog_owner, blog_title)
        # get blog_id from database based on the username and blog_title
        # if user is not the owner of the blog, None is returned
    if len(request.args) == 4:
        # if the length of GET requests is 4, meaning user is updating, deleting,
        # or creating entries,
        entry_title = request.args["entry_title"]
        entry_content = request.args["entry_content"]
        # set entry_title and entry_content based on the GET requests
    if "update" in request.args:
        # if user is updating an entry
        db_manager.remove_entry(db_manager.get_entry_id(entry_title, blog_id))
        # tell database to remove the entry
        db_manager.add_entry(entry_title, entry_content, blog_id)
        # create a new entry in database with the same blog_id and entry_title,
        # but with the updated content
    if "delete" in request.args:
        # if user is deleting an entry
        db_manager.remove_entry(db_manager.get_entry_id(entry_title, blog_id))
        # tell database to remove the entry after getting its entry_id given
        # entry_title and blog_id
    if "create" in request.args:
        # if user is creating entry
        if entry_title == "":
            # if entry_title is blank,
            flash("Please do not have a blank entry title")
            # flash an error
        else:
            response = db_manager.add_entry(entry_title, entry_content,
                                            blog_id)
            # tell database to add entry given the entry_title, entry_content,
            # and blog_id
            if response != "":
                # if entry was not added successfully (because of duplicate title),
                flash(response)
                # flash an error
    return render_template("entries.html",
                           blog_name=blog_title,
                           entries=db_manager.get_entries_for_blog(blog_id),
                           isOwner=db_manager.is_owner(user, blog_id))
Beispiel #2
0
def blogs():
    if "username" not in session:
        # if user is not logged in,
        return redirect(url_for("login"))
        # redirect to login page
    user = session["username"]
    # user is set to username of logged in user
    blog_owner = user
    # blog_owner is set to user by default
    if "user" in request.args:
        # if user is not blog_owner
        blog_owner = request.args["user"][:len(request.args["user"]) - 8]
        #set blog_owner to the username of the actual owner of the blog
    if "blog_creation" in request.args:
        # if the blog_owner clicked on create blog button,
        title = request.args["blog_name"]
        # set title to the blog title that user entered
        if title == "":
            flash("Please do not have an empty blog title")
        else:
            response = db_manager.create_blog_for_username(user, title)
            # verify blog title with database
            if response == "":
                # if blog title is unique
                return redirect(
                    url_for("entries",
                            blog_id=db_manager.get_blog_id_from_title(
                                user, title),
                            blog_name=title))
                # redirect to the entries page of the new blog with
                # the blog title and blog id as GET requests
            flash(response)
            # else flash error if blog with the same title already exists
    return render_template("blogs.html",
                           username=user,
                           name=("Your" if blog_owner == user else blog_owner),
                           isOwner=(blog_owner == user),
                           blogs=db_manager.get_blogs_for_username(blog_owner))