async def enter_name(message: types.Message, state: FSMContext): name = message.text item = Item() item.name = name await message.answer(_("Введите описание услуги или введите /cancel")) await NewItem.Description.set() await state.update_data(item=item)
async def enter_name(message: types.Message, state: FSMContext): title = message.text item = Item() item.title = title await message.answer( "<b>Шаг 2 из 8</b>\nВведите бренд вещи с хештегом\n<i>Пример:#palace</i>", reply_markup=cancel_markup) await NewItem.Brand.set() await state.update_data(item=item)
async def enter_name(message: types.Message, state: FSMContext): name = message.text item = Item() item.name = name await message.answer( _("Название: {name}" "\nПришлите мне фотографию товара (не документ) или нажмите /cancel" ).format(name=name)) await NewItem.Photo.set() await state.update_data(item=item)
def dispatchBarcode(self, code: str) -> Item: try: if len(code) == 13: return Item(self.db[int(code)]) elif len(code) == 32: code, weight, date = code[:13], code[13:19], code[19:25] product = Item(self.db[int(code)]) product.weight = float(weight) product.date = datetime.datetime.strptime(date, "%d%m%Y").date() return product else: raise UnsupportedBarcode except Exception as e: self.onException(e)
def item_new(category_id): if not is_loggedin() and USING_AUTH: flash(MSG_NOT_AUTHORIZED.format('add a new item')) return redirect('/') category = dbsession.query(Category).filter_by(id=category_id).one() if request.method == 'POST': if not correct_csrf(): return redirect(url_for('item_new', category_id=category_id)) name = request.form['name'] description = request.form['description'] item = Item( name=name, description=description, category_id=category.id, gplus_id=get_userid() ) dbsession.add(item) dbsession.commit() flash('New Item added in {}!'.format(category.name)) return redirect(url_for('category_view', category_id=category.id)) csrf_token = update_csrf_token() # Google Auth session['state'] = get_state_token() return render_template( 'item/new.html', category=category, csrf_token=csrf_token )
def create_item(session, name, description, category_ids, owner_id=None, image_url=None): ''' Creates an item in the database Also raises an Exception if there is an existing item of the same name ''' item = session.query(Item).filter_by(name=name).first() if item is not None: raise Exception('Item "{}" already exists!'.format(name)) cats = session.query(ItemCategory).filter( ItemCategory.id.in_(category_ids)).all() if len(cats) != len(category_ids): raise Exception('Invalid category IDs!') item = Item(name=name, description=description, image_url=image_url) session.add(item) session.commit() for cat in cats: item_to_cat = ItemToItemCategory(item_id=item.id, item_category_id=cat.id) session.add(item_to_cat) session.commit() return item
def addItem(category_id): user = find_logged_user() category = findCategory(category_id) if user and category: # check ownership of category if user.id == category.user_id: # POST method add authorized if request.method == 'POST': item = Item(name=request.form['name'], description=request.form['description'], picture=request.form['picture'], date_added=datetime.datetime.now(), category_id=category_id, user_id=user.id) session.add(item) session.commit() return redirect( url_for('showUserCategory', category_id=category_id)) # GET method show add item page return render_template('additem.html', category=category, user=user) else: return render_template('error.html', message='Not authorized to add item', user=user) else: return render_template('error.html', message='Unable to find user / category', user=user)
def newItem(): # not a valid user so redirect to catalog page if 'username' not in login_session: print 'not here' flash('You have to log in to create items!') return redirect('/catalog') # posting so create item if request.method == 'POST': # create item and assign it to its category category = session.query(Category).filter_by( name=request.form['category']).one() newItem = Item(name=request.form['name'], description=request.form['description'], category_id=category.id, user_id=login_session['user_id']) session.add(newItem) session.commit() flash('New %s Item Successfully Created' % (newItem.name)) return redirect(url_for('showCategoryItems', category_id=category.id)) else: #render the form page categories = session.query(Category).order_by(asc(Category.name)) return render_template('newitem.html', user=login_session['username'], categories=categories)
def novoItem(nome, descricao, categoria_id, user): newItem = Item(nome=nome, descricao=descricao, data_inclusao=datetime.now(), categoria_id=categoria_id, user=user) session.add(newItem) session.commit()
def addItem(item): for i in item: items = Item(name=i[0], price=i[1], description=i[2], category_ID=i[3], user_ID=i[4]) session.add(items) session.commit """If the table is empty, create dummy user and execute the helper""" """functions to populate the tables"""
def mutate(self, info, owner_id, item_name): sqlItem = Item(owner_id=owner_id, item_name=item_name) db.session.add(sqlItem) db.session.flush() item = itemInfo(id=sqlItem.id, owner_id=owner_id, item_name=item_name) db.session.commit() ok = True print(item) return newItem(item=item, ok=ok)
def newItem(category_name): # Check for authentication if 'user_id' in login_session: signin = 'Logout' else: signin = 'Login' flash('You must be logged in to create a new item.') return redirect(url_for('categoryPage', category_name=category.name)) category = session.query(Category).filter_by( name=category_name.capitalize()).first() if category is not None: if request.method == 'GET': return render_template('add_item.html', category_found=True, category=category, signin=signin) if request.method == 'POST': #Check if form details are legit, otherwise keep rendering edit form. availability = request.form['availability'] if availability == "Yes": avail = True elif availability == "No": avail = False (everything_alright, errors, critical_error) = checkFormInputs(request, category_name) # Fake form, because categories of url and post request don't match. if critical_error: flash('Something went wrong. Try again.') return redirect(url_for('categoryPage', category_name=category_name)) if everything_alright: new_item = Item(name = request.form['item_name'], price = request.form['item_price'], available = avail, description = request.form['item_description'], category_id = category.id, user_id = login_session['user_id']) # Update the item and send it back to database. session.add(new_item) session.commit() # Reload item page with new details return redirect(url_for('itemsPage', category_name=category.name, item_id=new_item.id)) else: return render_template('add_item.html', category=category, signin=signin, errors = errors) else: return render_template('add_item.html', category_found=False, fault=category_name, signin=signin)
def upload(): if request.method == 'GET': return render_template('upload.html') else: new_itmname = request.form['itmname'] new_itmprice = request.form['itmprice'] new_itmdis = request.form['itmdis'] new_itmpic = request.form['itmpic'] itm = Item(itmname = new_itmname, itmprice = new_itmprice, itmpic = new_itmpic, itmdis = new_itmdis) session.add(itm) session.commit() return redirect(url_for('item', item_id = itm.id))
def add_item(): categories = session.query(Category).all() email = login_session['email'] user_info = session.query(User).filter_by(email=email).one() if request.method == 'POST' and ('username' in login_session): newItem = Item(name=request.form['name'], description=request.form['description'], category_id=request.form['category_dropdown'], user_id = user_info.id) session.add(newItem) session.commit() return redirect(url_for('main')) else: categories = session.query(Category).all() return render_template('add.html', categories = categories)
def new_item(): redirect_when_user_not_logged() if request.method == "POST": name = request.form["name"] description = request.form["description"] category_id = request.form["category"] image_filename = "" url_image = "" image = request.files["image"] if image: image_filename = images.save(image) url_image = images.url(image_filename) if not name: flash("Item should have a name!", "negative") if not description: flash("Item should have a description!", "negative") if not category_id: flash("Item should have a category!", "negative") if not name or not description or not category_id: categories = session.query(Category).all() return render_template("form.html", item=None, categories=categories, mode="Create") item = Item(name=name, description=description, category_id=category_id, image_filename=image_filename, image_url=url_image, user_id=login_session["user_id"]) session.add(item) session.commit() flash("New item created!", "positive") return render_template("item.html", item=item) else: categories = session.query(Category).all() return render_template("form.html", item=None, categories=categories, mode="Create")
def add(self, name, src=None): try: item = Item(name=name) db.session.add(item) if src is not None: src_item = db.session.query(Item).get(src) if src_item is None: return False db.session.flush() db.session.add(ItemLink(src=src, dst=item.id)) db.session.commit() return True except: db.session.rollback() return False
def newItem(catalog_name): """ Create new item in selected catalog catalog_name - The name of the catalog """ catalog = session.query(Catalog).filter_by(name=catalog_name).one() if request.method == 'POST': item = Item(name=request.form['name'], description=request.form['description'], catalog_id=catalog.id) session.add(item) session.commit() return redirect(url_for('showItems', catalog_name=catalog_name)) return render_template('newItem.html', catalog=catalog)
def newItem(category_id): """ Add a new item within a category. This page will provide a form for the user to create a new item within a category. This page is only accessible once logged in and if the user has ownership of the category that the item is being added to. """ state = generateState(login_session, 'state') if request.method == 'GET': try: user = login_session['username'] owner = session.query(User).filter_by(email=login_session['email']) owner = owner.one() user_id = owner.id category = session.query(Category).filter_by(id=category_id).one() # Double check that user is authorised to make an item # in this category if category.user_id != user_id: flash("Please log in!") return redirect(url_for('showItems', category_id=category_id)) return render_template('newItem.html', category_id=category_id, STATE=state) except KeyError: flash("Please log in!") return redirect(url_for('showItems', category_id=category_id)) else: user = session.query(User).filter_by(email=login_session['email']) user = user.one() user_id = user.id category = session.query(Category).filter_by(id=category_id).one() title = request.form['title'] description = request.form['description'] # Double check that user is authorised to make an item in this category if category.user_id != user_id: flash("You are not authorised to create an item in this category.") return redirect(url_for('showItems', category_id=category_id)) if title and description: newItem = Item(title=title, description=description, category_id=category_id, user_id=user_id) session.add(newItem) session.commit() flash("Item successfully created!") return redirect(url_for('showItems', category_id=category_id)) flash("Please complete the form!") return redirect(url_for('newItem', category_id=category_id))
def newItem(): """Create a new item.""" if request.method == 'POST': if not checkLogin(): return requests(url_for('catelog')) if request.form['name'].strip() == '': flash('item create failed: name is empty!') return redirect(url_for('newItem')) category = session.query( Category).filter_by( name=request.form['category']).one() ifCategory = session.query(Category).filter_by( name=request.form['category']).one() ifItem = session.query(Item).filter_by( category_id=ifCategory.id, name=request.form['name']).all() if (len(ifItem) > 0): flash('item create failed: item(%s) \ is already exist in category(%s)' % ( ifItem[0].name, ifCategory.name)) return redirect(url_for('catelog')) newItem = Item( name=request.form['name'], description=request.form['description'], category=category, auth=getLoginUser(), time=getIntTime()) session.add(newItem) session.commit() flash('new item created: %s' % newItem.name) return redirect(url_for( 'itemDetail', category_name=category.name, item_name=newItem.name)) else: all_category = session.query(Category).all() return render_template( 'new-item.html', all_category=all_category, isLogin=checkLogin())
def newItem(): if 'username' not in login_session: return redirect(url_for('showLogin')) if request.method == 'POST': catalog_id = session.query(Catalog).filter_by( name=request.form['catalog']).one().id newItem = Item(name=request.form['name'], description=request.form['description'], catalog_id=catalog_id, user_id=login_session['user_id'], create_time=datetime.now()) session.add(newItem) flash('New Item %s Successfully Creadted' % newItem.name) session.commit() return redirect(url_for('showCatalogs')) else: catalogs = session.query(Catalog).all() return render_template('newItem.html', catalogs=catalogs)
def add_item(list_id, tasklist): description = request.form.get('description') if description: completed = True if request.form.get('completed') else False item = Item(list_id=tasklist.id, description=description[:MAX_INPUT_LENGTH], completed=completed) db.session.add(item) db.session.commit() return render_template('tasklist/item.html', tasklist=tasklist, item=item) return Response(response='A description is required', status=400)
def saveItemToCategory(category_id): itemName = request.form.get('i_name') itemDescription = request.form.get('i_description') category = session.query(Category).filter_by(id=category_id).one() item = Item( name=itemName, description=itemDescription, category_id=category.id, user_id=login_session.get('user_id') ) session.add(item) session.commit() flash( "Item %s successfully added for the category %s" % (item.name, category.name), 'success' ) return redirect(url_for('index'))
def add_item(category): """Route for item adding page or to process form submission. The item data from form will be added in the database. """ if request.method == 'GET': return render_template('add_item.html', categories=categories, category=category) elif request.method == 'POST': cat = db_session.query(Category).filter_by( name=request.form['category']).one() item = Item(name=request.form['name'], description=request.form['description'], category_id=cat.id, user_id=g.user.id) db_session.add(item) db_session.commit() return redirect(url_for('catalog'), code=303)
def createItem(): """takes user to the create item page if user is logged in,otherwise""" """redirect to the login page""" category = session.query(Categories).all() if 'username' not in login_session: return redirect('/login') if request.method == "POST": itemCreated = Item(name=request.form['name'], price = request.form['price'], description = request.form['description'], category_ID=request.form['category'], user_ID = login_session['email']) session.add(itemCreated) session.commit() flash("your item has been created!") return redirect(url_for('showItem', name=itemCreated.category_ID)) else: return render_template('create.html', Categories=category)
def get_items(user_id): if request.method == 'POST': # get data from post request data = request.get_json() if data.keys() >= {'name', 'description'}: # create new item new_item = Item(user_id=user_id, name=data['name'], description=data['description']) session.add(new_item) session.commit() # return success status and new item return jsonify(status=201, item=new_item.serialize) else: # return error status return jsonify(status=400) else: # get all items for user items = session.query(Item).filter_by(user_id=user_id).all() return jsonify(status=200, items=[i.serialize for i in items])
def new_item(category_id): if 'name' in request.form: try: new_item = Item( name=request.form['name'], description=(request.form['description'] if 'description' in request.form else None), category_id=category_id, user_id=1) db_session.add(new_item) db_session.commit() return redirect( url_for('get_item', category_id=category_id, item_id=new_item.id)) except Exception as e: print('Error: ') print(e) return abort(Response('An unexpected error occurred', 500)) else: return abort(Response('Required form parameters are missing', 400))
def addItem(categoryName=''): dbsession = DBSession() if session['logged_in']: if request.method == 'POST': categoryName = request.form['categoryName'] category = \ dbsession.query(Category).filter_by(name=categoryName).first() newItem = Item(name=request.form['name'], category_id=category.id, description=request.form['description']) dbsession.add(newItem) dbsession.commit() return redirect(url_for('categoryItems', categoryName=categoryName)) else: categories = dbsession.query(Category).all() return render_template('newItem.html', categoryName=categoryName, categories=categories) else: return render_template('loginWarning.html')
def addItem(category_id): # This if statement prevents the user # from accessing directly from link if 'username' not in login_session: return redirect('/login') # Query all categories to be able to select a category from the # dropdown menu in the html form categories = session.query(Category).all() # Query the category where user selected to add item. # This will be default option in the dropdown menu category = session.query(Category).filter_by(id=category_id).one() # Get the category id selected in the form. cat_id = request.form.get('cat-name') # Get the user id of the user creating the item. itemCreator = getUserId(login_session['email']) # Location of default image to load if no url provided by user default_img = '/static/random_item.jpg' if request.method == 'POST': # If the user does not provide a url for the image, load default if not (request.form['pic_url']): url = default_img else: url = request.form['pic_url'] # Add form info to new item newItem = Item(name=request.form['itemName'], description=request.form['description'], url=url, category_id=int(cat_id), user_id=itemCreator) # Add new item to database session.add(newItem) session.commit() # returns to the page of the selected category of the new item return redirect(url_for('viewCategory', category_id=int(cat_id))) else: return render_template('addItem.html', category=category, categories=categories, login=login_session)
def Item_for_filename(filename): fname = filename item = DatabaseItem() item.filename = fname if '://' in fname: item.text = fname item.genre = 'Misc' else: tail, track = os.path.split(fname) genre, disc = os.path.split(tail) track = track.replace('.ogg', '') if track[2] == '_': track = track[3:] item.text = '%s - %s' % (disc, track) if not genre in CATEGORIES: genre = 'Misc' item.genre = genre return item
def newItem(category_id): """ Provides a form interface for creating a new database item, and handles form submissions. Argument: category_id (int) : The category ID of the new item """ if 'user_id' not in login_session: flash("Please log in to continue") return redirect(url_for('showLogin')) elif request.method == 'POST': newItem = Item(name=request.form['name'], description=request.form['description'], category_id=category_id, user_id=login_session['user_id']) updateDB(newItem) return redirect(url_for('showCategory', category_id=category_id)) else: categories = getCategories() return render_template('newitem.html', category=getCategory(category_id), categories=categories)
session.commit() User2 = User(name="Testy McTester", email="*****@*****.**") session.add(User2) session.commit() # Items for Football category = Category(name="Football", image="football.jpg", user_id=1) session.add(category) session.commit() description = "Protective pads to be worn on your shins, essential for " description += "competitive football matches. Created from a mix of carbon " description += "fibre and polythene, these shin pads can take the equivalent " description += "of 5G of force before breaking." Items = Item(title="Shin Pads", description=description, category_id=1, user_id=1) session.add(Items) session.commit() description = "Soft and sturdy gloves that will protect and reinforce saving " description += "the ball, whilst providing incomparable warmth and touch " description += "when distributing to your team." Items = Item(title="Goalkeeper Gloves", description=description, category_id=1, user_id=1) session.add(Items) session.commit() description = "The essential piece of equipment for playing football on soft " description += "grass, a reliable pair of football boots designed to give " description += "ultimate touch, strength and agility on the field."