예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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")
예제 #5
0
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
                           )
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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
예제 #9
0
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)
예제 #10
0
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)
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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
예제 #14
0
파일: catalog.py 프로젝트: gitzart/catalog
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)
예제 #15
0
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)
예제 #16
0
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)
예제 #17
0
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'))
예제 #18
0
파일: views.py 프로젝트: iredkoz/testapp
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'))
예제 #19
0
파일: views.py 프로젝트: iredkoz/testapp
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'))
예제 #20
0
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)
예제 #21
0
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
            )
예제 #22
0
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)
예제 #23
0
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)
예제 #24
0
파일: views.py 프로젝트: qgreg/itemcatalog
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)
예제 #25
0
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))
예제 #26
0
파일: views.py 프로젝트: f-enye/Lister
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."})
예제 #27
0
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)
예제 #28
0
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'))