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)
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")
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 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)
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)