Ejemplo n.º 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")
Ejemplo n.º 2
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")