예제 #1
0
def about():
    form = AboutForm()
    if request.method == "POST" and form.validate_on_submit():
        s3_client = s3_session.resource("s3")
        file = request.files["image"]

        if file:

            if file.filename == "":
                flash("Image must have file name.")
                return redirect(request.url)

            if not allowed_image(file.filename, current_app):
                flash("That image extension is not allowed.")
                return redirect(request.url)

            filename = secure_filename(str(
                uuid.uuid4())) + f".{image_ext(file.filename)}"
            s3_client.Bucket(current_app.config["S3_BUCKET"]).put_object(
                Key=filename, Body=file, ACL="public-read")

        else:
            filename = None

        new_about = About(
            intro=form.intro.data,
            image=filename,
            general=current_user,
        )

        db.session.add(new_about)
        db.session.commit()
        return redirect(url_for("main_page.home") + "#About")

    return render_template("form_page.html", form=form, title="About")
예제 #2
0
def delete_about():
    s3_client = s3_session.resource("s3")
    about_info = About.query.filter_by(general_id=current_user.id).first()
    image = about_info.image

    try:
        s3_client.Object(current_app.config["S3_BUCKET"], image).delete()
    except:
        pass

    db.session.delete(about_info)
    db.session.commit()
    return redirect(url_for("main_page.home") + "#About")
예제 #3
0
def edit_project(id):
    project_info = Project.query.get(id)
    image = project_info.screenshot
    edit_project = ProjectForm(
        name=project_info.name,
        link=project_info.link,
        github_link=project_info.github_link,
        screenshot=None,
        description=project_info.description,
        tech_list=project_info.tech_list,
    )
    if edit_project.validate_on_submit():
        s3_client = s3_session.resource("s3")
        file = request.files["screenshot"]
        if file:

            if file.filename == "":
                flash("Image must have file name.")
                return redirect(request.url)

            if not allowed_image(file.filename, current_app):
                flash("That image extension is not allowed.")
                return redirect(request.url)

            try:
                s3_client.Object(current_app.config["S3_BUCKET"],
                                 image).delete()
            except:
                pass

            filename = secure_filename(str(
                uuid.uuid4())) + f".{image_ext(file.filename)}"
            s3_client.Bucket(current_app.config["S3_BUCKET"]).put_object(
                Key=filename, Body=file, ACL="public-read")
            project_info.screenshot = filename

        project_info.name = edit_project.name.data
        project_info.link = edit_project.link.data
        project_info.github_link = edit_project.github_link.data
        project_info.description = edit_project.description.data
        project_info.tech_list = edit_project.tech_list.data
        db.session.commit()
        return redirect(url_for("main_page.home") + "#Project")

    return render_template("form_page.html",
                           form=edit_project,
                           title="Project",
                           image=image)
예제 #4
0
def add_project():
    project_query = Project.query.filter_by(general_id=current_user.id)
    form = ProjectForm()
    if request.method == "POST" and form.validate_on_submit():
        project_query_count = 1
        if project_query:
            project_query_count = project_query.count() + 1
        s3_client = s3_session.resource("s3")
        file = request.files["screenshot"]

        if file:

            if file.filename == "":
                flash("Image must have file name.")
                return redirect(request.url)

            if not allowed_image(file.filename, current_app):
                flash("That image extension is not allowed.")
                return redirect(request.url)

            filename = secure_filename(str(
                uuid.uuid4())) + f".{image_ext(file.filename)}"
            s3_client.Bucket(current_app.config["S3_BUCKET"]).put_object(
                Key=filename, Body=file, ACL="public-read")

        else:
            filename = None

        new_project = Project(
            name=form.name.data,
            link=form.link.data,
            github_link=form.github_link.data,
            screenshot=filename,
            description=form.description.data,
            tech_list=form.tech_list.data,
            general=current_user,
            order_project=project_query_count,
        )
        db.session.add(new_project)
        db.session.commit()
        return redirect(url_for("main_page.home") + "#Project")

    return render_template("form_page.html", form=form, title="Project")
예제 #5
0
def edit_about():
    about_info = About.query.filter_by(general_id=current_user.id).first()
    image = about_info.image

    edit_about = AboutForm(
        intro=about_info.intro,
        image=None,
    )

    if edit_about.validate_on_submit():
        s3_client = s3_session.resource("s3")
        file = request.files["image"]

        if file:

            if file.filename == "":
                flash("Image must have file name.")
                return redirect(request.url)

            if not allowed_image(file.filename, current_app):
                flash("That image extension is not allowed.")
                return redirect(request.url)

            try:
                s3_client.Object(current_app.config["S3_BUCKET"],
                                 image).delete()
            except:
                pass

            filename = secure_filename(str(
                uuid.uuid4())) + f".{image_ext(file.filename)}"
            s3_client.Bucket(current_app.config["S3_BUCKET"]).put_object(
                Key=filename, Body=file, ACL="public-read")
            about_info.image = filename

        about_info.intro = edit_about.intro.data
        db.session.commit()
        return redirect(url_for("main_page.home") + "#About")
    return render_template("form_page.html",
                           form=edit_about,
                           image=image,
                           title="About")
예제 #6
0
def delete_project(id):
    s3_client = s3_session.resource("s3")
    project_info = Project.query.get(id)
    image = project_info.screenshot
    project_query_order_by = Project.query.filter_by(
        general_id=current_user.id).order_by("order_project")

    try:
        s3_client.Object(current_app.config["S3_BUCKET"], image).delete()
    except:
        pass

    db.session.delete(project_info)

    range_count = 1
    for project in project_query_order_by:
        project.order_project = range_count
        range_count = range_count + 1

    db.session.commit()
    return redirect(url_for("main_page.home") + "#Project")