Exemplo n.º 1
0
def new_item():
    form = NewItemForm()
    form.category.choices = crud.get_categories()
    form.subcategory.choices = crud.get_subcategories()

    # POST
    if form.validate_on_submit() and \
            form.image.validate(form, extra_validators=(FileRequired(),)):
        filename = save_image_upload(form.image)

        # create data
        # escape()したデータはテンプレートでsafeフィルターを併用すること
        crud.create_item(
            title=escape(form.title.data),
            description=escape(form.description.data),
            price=float(form.price.data),
            image=filename,
            category_id=form.category.data,
            subcategory_id=form.subcategory.data,
        )

        # Redirect to some page
        flash(
            "Item {} has been successfully submitted".format(
                request.form.get("title")), "success")
        return redirect(url_for("home"))

    # GET
    return render_template("new_item.html", form=form)
Exemplo n.º 2
0
def wishlist(userid):
    # file_folder = app.config['UPLOAD_FOLDER']
    form = NewItemForm()
    form2 = ShareForm()
    form3 = LoginForm()

    if request.method == "POST":
        if form.validate_on_submit():
            # generate item id
            id = str(uuid.uuid4().fields[-1])[:8]

            # get data from form
            title = form.title.data
            description = form.description.data
            webaddress = form.webaddress.data
            thumbnail = request.form['thumbnail']

            # retrieve item from database
            item = WishlistItem.query.filter_by(
                title=title, owner=current_user.get_id()).first()

            # if the item already exists then flash error message and redirect back to the wishlist page
            if item is not None:
                flash('' + title + ' already exists in your wishlist',
                      'danger')
                return redirect(
                    url_for('wishlist', userid=current_user.get_id()))

            # create wishlist object
            item = WishlistItem(id=id,
                                owner=current_user.get_id(),
                                title=title,
                                description=description,
                                webaddress=webaddress,
                                thumbnail=thumbnail)

            # insert item into WishlistItem
            db.session.add(item)
            db.session.commit()

            flash('' + title + ' was added to your wishlist', 'success')

            # redirect user to their wishlist page
            return redirect(url_for("wishlist", userid=current_user.get_id()))
        else:
            # flash message for failed item addition
            flash('Invalid item data, please try again', 'danger')

            # redirect user to their wishlist page
            return redirect(url_for("wishlist", userid=current_user.get_id()))
    else:
        # retrieve user wishlist items from database
        items = WishlistItem.query.filter_by(owner=current_user.get_id()).all()
    return render_template("wishlist.html",
                           userid=current_user.get_id(),
                           form=form,
                           form2=form2,
                           form3=form3,
                           items=items)
def create_item():
    ''' Save a new Item in the database '''
    owner_id = session.get('user_id')
    if not owner_id:
        return ("You must be logged in to be able to create items", 401)
    form = NewItemForm()
    if form.validate_on_submit():
        file = request.files.get(form.image_file.name)
        saved_path = save_image(file) if file else None
        new_item = Item(name=form.data["name"],
                        category_id=form.data["category_id"],
                        description=form.data["description"],
                        image_file=saved_path,
                        owner_id=owner_id)
        db.session.add(new_item)
        db.session.commit()
        return "ok"
    return render_template('edit_item.html', form=form, action="/items")
Exemplo n.º 4
0
def new_listing():
    tut_completed = User.query.filter_by(id=current_user.id).first().tutorial_completed
    """Create a new item."""
    form = NewItemForm()
    if form.validate_on_submit():
        listing = Listing(
            name=form.listing_name.data,
            description=form.listing_description.data,
            available=True,
            unit= form.listing_unit.data,
            quantity= form.listing_quantity.data,
            price=form.listing_price.data,
            vendor_id=current_user.id,
            product_id=form.listing_productID.data
        )
        db.session.add(listing)
        db.session.commit()
        flash('Item {} successfully created'.format(listing.name),
              'form-success')
        return redirect(url_for('.new_listing', tut_completed=tut_completed))
    return render_template('vendor/new_listing.html', form=form, tut_completed=tut_completed)
Exemplo n.º 5
0
def new_listing():
    tut_completed = User.query.filter_by(id=current_user.id).first().tutorial_completed
    """Create a new item."""
    form = NewItemForm()
    if form.validate_on_submit():
        listing = Listing(
            name=form.listing_name.data,
            description=form.listing_description.data,
            available=True,
            unit= form.listing_unit.data,
            quantity= form.listing_quantity.data,
            price=form.listing_price.data,
            vendor_id=current_user.id,
            product_id=form.listing_productID.data
        )
        db.session.add(listing)
        db.session.commit()
        flash('Item {} successfully created'.format(listing.name),
              'form-success')
        return redirect(url_for('.new_listing', tut_completed=tut_completed))
    return render_template('vendor/new_listing.html', form=form, tut_completed=tut_completed)
def update_item(id):
    ''' Updates an Item in the database '''
    user_id = session.get('user_id')
    if not user_id:
        return ("You must be logged in to be able to edit items", 401)
    item = Item.query.filter_by(id=id).first()
    if not item:
        return "Not Found", 404
    if item.owner_id != user_id:
        return ("This item doesn't belong to you", 401)
    form = NewItemForm(obj=item)
    if form.validate_on_submit():
        file = request.files.get(form.image_file.name)
        saved_path = save_image(file) if file else None
        if saved_path:
            item.image_file = saved_path
        item.name = form.data["name"]
        item.description = form.data["description"]
        db.session.commit()
        return "ok"
    return render_template('edit_item.html', form=form, action=item.url)
Exemplo n.º 7
0
def add():
    form = NewItemForm()

    if form.validate_on_submit():
        #filename = secure_filename(form.image.data.filename)

        # save new data here
        file = form.image.data

        if file:
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

            key = form.key.data

            new_item = Item(key=key, image=filename)
            db.session.add(new_item)
            db.session.commit()

            return redirect('/')
    else:
        return render_template('add.html', 
            title = 'Add new item',
            form=form)