Example #1
0
def edit_collection(collection_id):
    categories = EnumValues.type_filter(const.PHOTO_CATEGORY_KEY).all()
    styles = EnumValues.type_filter(const.PHOTO_STYLE_KEY).all()
    photo_collection = PhotoCollection.query.get(collection_id)
    if photo_collection.photographer != current_user:
        flash("您没有权限编辑本作品集,将返回网站主页")
        return redirect(url_for("index"))
    form = PhotoCollectionForm(categories, styles)
    if request.method == "POST":
        if (
            request.form.get("photo-collection-to-delete") is not None
            and len(request.form.get("photo-collection-to-delete")) != 0
        ):
            id_to_delete = int(request.form.get("photo-collection-to-delete"))
            delete_by_id(PhotoCollection, id_to_delete)
            flash("作品集删除成功")
            return redirect(url_for("my_photos"))
        elif request.form.get("photo-works-to-delete") is not None:
            works_to_delete = request.form.get("photo-works-to-delete").split(",")
            delete_photo_works(works_to_delete)
            files = request.files.getlist("photos[]")
            if not (len(files) == 1 and files[0].filename == u""):
                add_photo_works(files, photo_collection)
        else:
            save_photo_collection(form, photo_collection)
        AppInfo.get_db().session.commit()
    return rt(
        "edit_collection.html", photo_collection=photo_collection, categories=categories, form=form, styles=styles
    )
Example #2
0
def create_collection():
    categories = EnumValues.type_filter(const.PHOTO_CATEGORY_KEY).all()
    styles = EnumValues.type_filter(const.PHOTO_STYLE_KEY).all()
    photo_collection = PhotoCollection()
    form = PhotoCollectionForm(categories, styles)
    if request.method == "POST":
        if form.validate_on_submit():
            photo_collection.photographer_id = current_user.id
            photo_collection.uploader_id = current_user.id
            save_photo_collection(form, photo_collection)
            save_obj_commit(photo_collection)
            flash("作品集创建成功,您可以在本界面上传作品集中的作品")
            return redirect(url_for("edit_collection", collection_id=photo_collection.id))
        else:
            flash("请填写所有信息并再次尝试创建(作品集的拍摄价格为必填字段)")
    return rt(
        "create_collection.html", photo_collection=photo_collection, categories=categories, form=form, styles=styles
    )