def newItem(category_id, category_name): category = checkCategory(category_id) form = ItemForm() if form.validate_on_submit(): newItem = Item( name=request.form['name'], description=request.form['description'], price=request.form['price'], category_id=category.id, user_id=login_session['user_id']) session.add(newItem) session.commit() flash("Item %s created" % newItem.name) return redirect( url_for( 'showCategory', category_id=category.id, category_name=category.name ) ) else: if request.method == 'POST': flash("Error while creating the item. \ Please fill all the required fields.") return render_template( 'newitem.html', category=category, form=form)
def add_item(): form = ItemForm() if form.validate_on_submit(): #Through testing, I found this bit of code is what's causing the 504 error. #Took out the date_added variable to see if that was holding it up. #Added datetime back in. It didn't break anything. Still getting outputs like [,,]. item = Items(name=form.name.data, quantity=form.quantity.data, description=form.description.data, date_added=datetime.datetime.now()) ## #Maybe item isn't being populated correctly. Try one attribute at a time. ## #Still getting the same [,,,] type output. ## item = Items() ## item.name = form.name.data ## item.quantity = form.quantity.data ## item.description = form.description.data ## item.date_added = datetime.datetime.now() #More testing shows the error 504 came from calling db_session. #This was because the postgres port was supposed to stay as 5432. #Output after submittion is a list of commas, so maybe item isn't getting #added correctly to the table. db_session.add(item) db_session.commit() return redirect(url_for('success')) return render_template('index.html', form=form)
def addItem(name): """Add an item to a named category or render a form. Args: A category name Returns: Add an item or render a form. """ # Store named category and the logged in user category = Category.query.filter_by(name=name).first_or_404() user = Users.query.filter_by(id=login_session['users_id']).first_or_404() # Verify that the logged in user is creator or admin if category.users_id != login_session['users_id'] and not user.admin: flash(' You are not authorized add items to that category.') return redirect(url_for('category.showCategory', name=name)) # Initiate the form. form = ItemForm() # On POST of a valid form, add the new item. if form.validate_on_submit(): item = Item(form.name.data, form.description.data, form.amazon_asin.data, form.picture.data, category.id, login_session['users_id']) # Check if there is a amazon url, and if so extract asin if form.amazon_url.data is not None: asin = re.search("[A-Z0-9]{10}", form.amazon_url.data) if asin: item.amazon_asin = asin.group(0) db.session.add(item) db.session.commit() flash('New Item %s Successfully Created' % item.name) # Log new item current_app.logger.info('New Item %s Created on %s' % (item.name, str(item.dateCreated))) return redirect(url_for('category.showHome')) else: return render_template('newItem.html', form=form, category=category)
def item_store(category_name): """Store new item in DB""" if 'username' not in login_session: return redirect(url_for('login')) category = Category.query.filter(Category.name == category_name).first() if category.author_id != login_session['user_id']: return render_template('401.html', name='item') form = ItemForm() form.category_id.choices = [(c.id, c.name) for c in Category.query.order_by('name')] form.category_id.data = category.id if form.validate_on_submit(): try: new_item = Item(form.name.data, form.description.data, category.id, login_session['user_id']) if 'image' in request.files and request.files['image']: filename = images.save(request.files['image']) new_item.image_name = filename db_session.add(new_item) db_session.commit() return redirect(url_for('item_view', category_name=category_name, item_name=form.name.data)) except IntegrityError: db_session.rollback() flash("Item name must be unique value") except Exception, e: db_session.rollback() print e flash("Database error encountered")
def wwIndex(): global counter lock=Lock() with lock: counter+=1 print (counter) form=ItemForm() itemsOfInterest = Item.query() if len(itemsOfInterest.fetch(None))==0: mower=Item(id=str(uuid.uuid1()), item='Lawn Mowers') eater=Item(id=str(uuid.uuid1()),item='Weed Eaters') mower.addModel('Honda') mower.addModel('Black & Decker') eater.addModel('Torro') eater.addModel('Echo') print mower.item print eater.item mower.put() eater.put() itemsOfInterest = Item.query() print "The query length is "+str(len(itemsOfInterest.fetch(None))) if form.validate_on_submit(): newItem = Item(id=str(uuid.uuid1()),item=form.item.data) print("myUUID is "+newItem.id) newItem.put() flash('New item added!') return redirect(url_for('index')) return render_template('index.html', title='USI Help System', itemsOfInterest=itemsOfInterest, form=form )
def item_add(type=0): # 商品/服务添加 form = ItemForm(type=type) if form.validate_on_submit(): # 不对名称做校验了 #if Item.query.filter_by(name=form.name.data, type=type).first(): # flash(u'您输入的名称已存在', 'err') # return redirect(url_for('admin.item_add', type=type)) item = Item( name=form.name.data, cate=form.cate.data, type=type, salesprice=float(form.salesprice.data), rewardprice=float(form.rewardprice.data), costprice=float(form.costprice.data), unit=form.unit.data, standard=form.standard.data, valid=form.valid.data, remarks=form.remarks.data, ) oplog = Oplog(user_id=session['user_id'], ip=request.remote_addr, reason=u'添加商品/服务项目:%s' % form.name.data) objects = [item, oplog] db.session.add_all(objects) db.session.commit() flash(u'添加成功', 'ok') return redirect(url_for('admin.item_add', type=type)) return render_template('admin/item_add.html', form=form, type=type)
def item_details(item_id): item = items.get(item_id - 1) form = ItemForm(data=item) if request.method == "POST": if request.form.get('delete'): items.delete(item_id - 1) elif form.validate_on_submit(): items.update(item_id - 1, form.data) return redirect(url_for("items_list")) return render_template("item.html", form=form, item_id=item_id)
def items_list(): form = ItemForm() error = "" if request.method == "POST": if form.validate_on_submit(): items.create((tuple(form.data.values())[:4])) return render_template("items.html", form=form, items=items.all(), error=error) # noqa
def add_item(): form = ItemForm() if form.validate_on_submit(): title = form.title.data description = form.description.data price = form.price.data item = models.Item(title=title, description=description, price=price) db.session.add(item) db.session.commit() flash("Stored '{}'".format(description)) return redirect(url_for('index')) return render_template('add_item.html', form=form)
def add_item(): #raise form = ItemForm() if request.method == 'POST': if form.validate_on_submit(): item = Items(name=form.name.data, quantity=form.quantity.data, description=form.description.data, date_added=datetime.datetime.now()) db_session.add(item) db_session.commit() logging.warn(" after committ...") #return redirect(url_for('success')) return redirect('/success') return render_template('index.html', form=form)
def add_item(): form = ItemForm() if form.validate_on_submit(): item = Items( name=form.name.data, quantity=form.quantity.data, description=form.description.data, date_added=str(datetime.datetime.now()), ) db_session.add(item) db_session.commit() return redirect(url_for("success", _external=True)) return render_template("index.html", form=form)
def publish(): form = ItemForm() if form.validate_on_submit(): item = Item(title=form.title.data, detail=form.detail.data, tag=form.tag.data, before=form.before.data, timestamp=datetime.datetime.now(), user_id=current_user.id) db.session.add(item) db.session.commit() return redirect((url_for('index'))) return render_template('publish.html', form=form)
def items_list(): form = ItemForm() error = "" if request.method == "POST": if form.validate_on_submit(): items.create(form.data) items.save_all() return redirect(url_for("items_list")) # noqa return render_template("items.html", form=form, items=items.all(), error=error) # noqa
def add_item(): u = User.query.get(session.get('uid', 0)) # User must exist cats = Category.query.order_by(Category.name).all() form = ItemForm() form.category_id.choices = [(c.id, c.name) for c in cats] if form.validate_on_submit(): i = Item(form.name.data, form.category_id.data, session['uid'], form.description.data) if 'photos' in request.files: i.photos = get_item_photo_list(i.id) db.session.add(i) db.session.commit() c = i.category return redirect(url_for('item', category=c.slug, item=i.slug)) return render_template('add_item.html', form=form, user=u, categories=cats)
def add_item(): form = ItemForm(request.form) if request.method=="POST" and form.validate_on_submit(): try: item = Items( name=form.name.data, quantity=form.quantity.data, description=form.description.data, date_added=datetime.datetime.now()) db_session.add(item) db_session.commit() return redirect(url_for('success')) except: return 'There was a problem adding an item' return render_template('index.html', form=form)
def update(id): item = db_session.query(Items).filter_by(id=id).first() if item: form = ItemForm(request.form) if request.method=="POST" and form.validate_on_submit(): try: item.name = form.name.data, item.quantity = form.quantity.data, item.description = form.description.data, item.date_added = datetime.datetime.now(), db_session.commit() return redirect(url_for('success')) except: return 'There was an issue updating your item' return render_template('update.html',id=id, form=form)
def newItem(): """ newItem: form to add a new item Args: none Returns: return add a item and redirect to home or show form to add a new item """ if 'username' not in login_session: return redirect('/login') try: form = ItemForm() form.category_id.choices = [(0, 'Select')] form.category_id.choices += [(category.id, category.name) for category in session.query(Categories). order_by('name')] print form.errors if form.validate_on_submit(): title = form.title.data category_id = form.category_id.data description = form.description.data if (form.title.data is not None and form.category_id.data is not None and form.category_id.data is not '0'): newItem = Items(title=title, description=description, category_id=category_id, user_id=login_session['user_id']) session.add(newItem) session.commit() flash("New Item Created") else: flash("Missing required information for Add") else: return render_template('newitem.html', form=form, login_session=login_session) except: flash('Error') return redirect(url_for('showHomepage'))
def editItem(item_id): itemForm = ItemForm() item = Item.query.get(item_id) slist = Slist.query.get(item.slist_id) if itemForm.validate_on_submit(): item.shop = itemForm.shop.data item.qnty=itemForm.quantity.data item.price=itemForm.price.data item.notes=itemForm.notes.data coupon = itemForm.coupon.data if (coupon == u'нет'): coupon = None item.coupon=coupon db.session.commit() return redirect(url_for('shopapp.show_list',slist=slist.name)) else: return redirect(url_for('shopapp.shop_main'))
def newItem(): itemForm = ItemForm() if itemForm.validate_on_submit(): product=Product.query.filter_by(name=itemForm.product_id.data).first() slist = Slist.query.filter_by(name=itemForm.slist_id.data).first() shop=itemForm.shop.data qnty=itemForm.quantity.data price=itemForm.price.data notes=itemForm.notes.data coupon = itemForm.coupon.data if (coupon == u'нет'): coupon = None item = Item(product=product, shop = shop, qnty=qnty, price = price, chk = False, note=notes, slist=slist, coupon=coupon) db.session.add(item) db.session.commit() return redirect(url_for('shopapp.show_list',slist=slist.name)) else: return redirect(url_for('shopapp.shop_main'))
def add_item(cat_id): form = ItemForm() categories = session.query(Category).all() category = session.query(Category).filter_by(id=cat_id).first() if form.validate_on_submit(): new_item = Item(name=form.name.data, description=form.description.data or "No description", category_id=category.id, user_id=login_session['user_id']) print new_item session.add(new_item) session.commit() flash('Item added successfully.', "flash-success") return redirect(url_for('category_list', cat_id=category.id)) return render_template('add_item.html', categories=categories, category=category, form=form)
def editItem(category_id, item_id, item_name): category = checkCategory(category_id) item = checkItem(item_id) categories = session.query(Category).all() form = ItemForm() if form.validate_on_submit(): if item.user_id != login_session['user_id']: flash("User not authorised to edit the item.") return redirect(url_for('showCatalog')) if request.form['name']: item.name = request.form['name'] if request.form['description']: item.description = request.form['description'] if request.form['price']: item.price = request.form['price'] if request.form['category_id']: item.category_id = request.form['category_id'] categoryName = category.name for itemCategory in categories: if itemCategory.id == item.category_id: categoryName = itemCategory.name session.add(item) session.commit() flash("Item %s edited." % item.name) return redirect( url_for( 'showCategory', category_id=item.category_id, category_name=categoryName ) ) else: if request.method == 'POST': flash("Error while editing the item. \ Please fill all the required fields.") return render_template( 'edititem.html', itemCategory=category, item=item, categories=categories, form=form )
def items(): try: log.info('Start reading from DB') i_form = ItemForm() s_form = SearchForm() item_list = db.session.query(Item).all() if i_form.validate_on_submit(): new_item = Item(i_form.sku.data, i_form.title.data) db.session.add(new_item) db.session.commit() i_form.sku.data = '' i_form.title.data = '' item_list = db.session.query(Item).all() return redirect(url_for('items')) return render_template('items.html', i_form=i_form, s_form=s_form, item_list=item_list) except: _, ex, _ = sys.exc_info() log.error(ex.message) return render_template('items.html', i_form=i_form, s_form=s_form, item_list=item_list)
def item_create(category_id): """ This creates a new item only if the user is logged in """ if not logged_in(): flash('Please log in to create items') return redirect(url_for('category_list')) form = ItemForm() if form.validate_on_submit(): item = Item() item.title = form.title.data item.description = form.description.data item.category_id = category_id item.ctlg_user = get_current_user() db.session.add(item) db.session.commit() return redirect(url_for('item_create', category_id=category_id)) return render_template('item_create.html', form=form, category_id=category_id)
def addItem(name): """Add an item to a named category or render a form. Args: A category name Returns: Add an item or render a form. """ # Store named category and the logged in user category = Category.query.filter_by(name=name).first_or_404() user = Users.query.filter_by(id=login_session["users_id"]).first_or_404() # Verify that the logged in user is creator or admin if category.users_id != login_session["users_id"] and not user.admin: flash(" You are not authorized add items to that category.") return redirect(url_for("category.showCategory", name=name)) # Initiate the form. form = ItemForm() # On POST of a valid form, add the new item. if form.validate_on_submit(): item = Item( form.name.data, form.description.data, form.amazon_asin.data, form.picture.data, category.id, login_session["users_id"], ) # Check if there is a amazon url, and if so extract asin if form.amazon_url.data is not None: asin = re.search("[A-Z0-9]{10}", form.amazon_url.data) if asin: item.amazon_asin = asin.group(0) db.session.add(item) db.session.commit() flash("New Item %s Successfully Created" % item.name) # Log new item current_app.logger.info("New Item %s Created on %s" % (item.name, str(item.dateCreated))) return redirect(url_for("category.showHome")) else: return render_template("newItem.html", form=form, category=category)
def item_update(category_name, item_name): """Update item in DB""" if 'username' not in login_session: return redirect(url_for('login')) item = Item.query.\ filter(Item.name == item_name).\ filter(Item.category.has(name=category_name)).\ first() if item.author_id != login_session['user_id']: return render_template('401.html', name='item') form = ItemForm() form.category_id.choices = [(c.id, c.name) for c in Category.query.order_by('name')] if form.validate_on_submit(): try: category = Category.query.\ filter(Category.id == form.category_id.data).\ first() item.name = form.name.data item.description = form.description.data item.category_id = form.category_id.data if 'image' in request.files and request.files['image']: filename = images.save(request.files['image']) item.image_name = filename db_session.add(item) db_session.commit() return redirect(url_for('item_view', category_name=category.name, item_name=form.name.data)) except IntegrityError: db_session.rollback() flash("Item name must be unique value") except Exception: db_session.rollback() flash("Database error encountered") flash_errors(form) return redirect(url_for('item_edit', category_name=category_name, item_name=form.name.data))
def DeleteItem(list_id, item_id): query_list = g.user.lists.filter_by(id = list_id).first() query_list_shared = g.user.shared_lists.filter_by(id = list_id).first() if query_list is not None or query_list_shared is not None: item = Item.query.filter_by(id = item_id).first() form = ItemForm() # We don't need the item name to validate this request. del form.item_name # We don't need the items checked state to validate the form del form.check if item is not None and form.validate_on_submit(): db.session.delete(item) db.session.commit() return jsonify({"status": "success"}) return jsonify({"status": "failed", "errors": "Did not delete item."}) return jsonify({"status": "failed", "errors": "This is not a valid list."})
def editItem(name): """Edit an item for a named item or render a form. Args: An item name Returns: Edit an item or render a form. """ # Store named item and the logged in user item = Item.query.filter_by(name=name).first_or_404() user = Users.query.filter_by( id=login_session['users_id']).first_or_404() # Verify that the logged in user is creator or admin if item.users_id != login_session['users_id'] and not user.admin: flash(' You are not authorized to make that edit.') category = session.query(Category).filter_by(id=item.category_id) return redirect(url_for('category.showCategory', name=category.name)) # Initiate the form. form = ItemForm(obj=item) # On POST of a valid form, edit the item. if form.validate_on_submit(): item.name = form.name.data item.description = form.description.data item.picture = form.picture.data # Check if there is a amazon url, and if so extract asin if form.amazon_url.data is not None: asin = re.search("[A-Z0-9]{10}", form.amazon_url.data) if asin: item.amazon_asin = asin.group(0) else: item.amazon_asin = form.amazon_asin.data db.session.add(item) db.session.commit() flash(' Item %s Successfully Edited' % item.name) category = Category.query.filter_by(id=item.category_id).first_or_404() return redirect(url_for('category.showCategory', name=category.name)) else: return render_template('editItem.html', form=form, item=item)
def editItem(category_name, item_title): """ editItem: form to edit a item Args: category_name (data type: str): category name to filter result item_title (data type: str): item name to filter result Returns: return update a item and redirect to home or show form to edit a item """ if 'username' not in login_session: return redirect(url_for('showLogin')) try: categories = session.query(Categories).order_by('name') category = session.query(Categories)\ .filter_by(name=category_name).one() if category is None: flash('Error unable to retrive category') return redirect(url_for('showHomepage')) except Exception as error: output = '<script>function myFunction(){' output += 'alert("caught this error-cat: %s");}</script>' output += '<body onload="myFunction()">' % (repr(error)) # return output flash('Error cat') return redirect(url_for('showHomepage')) try: item = session.query(Items).filter_by(title=item_title, category_id=category.id).one() if item is None: flash('Error unable to retrive item') return redirect(url_for('showHomepage')) item = session.query(Items).filter_by(id=item.id).one() except Exception as error: output = '<script>function myFunction(){' output += 'alert("caught this error-item: %s");}</script>' output += '<body onload="myFunction()">' % (repr(error)) # return output flash('Error item') return redirect(url_for('showHomepage')) try: creator = getUserInfo(item.user_id) form = ItemForm(obj=item) form.category_id.choices = [(0, 'Select')] form.category_id.choices += [(cat.id, cat.name) for cat in categories] print form.errors """ Validate form on submit Gather user inputs and update the database """ if form.validate_on_submit(): form.populate_obj(item) item.title = form.title.data item.description = form.description.data item.category_id = form.category_id.data item.user_id = creator.id session.add(item) session.commit() flash("Successfully updated item") return redirect(url_for('showHomepage')) return render_template('edititem.html', form=form, categories=categories, category=category, creator=creator, login_session=login_session) except Exception as error: output = '<script>function myFunction(){' output += 'alert("caught this error-2: %s");}</script>' output += '<body onload="myFunction()">' % (repr(error)) # return output flash('Error 2') return redirect(url_for('showHomepage'))