예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
 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)
예제 #5
0
파일: app.py 프로젝트: klassmann/catalog
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
예제 #7
0
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)
예제 #8
0
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()
예제 #10
0
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"""
예제 #11
0
    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)
예제 #12
0
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)
예제 #13
0
파일: webapp.py 프로젝트: musa17-hawa/MVP
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))
예제 #14
0
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)
예제 #15
0
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")
예제 #16
0
 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
예제 #17
0
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)
예제 #18
0
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))
예제 #19
0
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)
예제 #21
0
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)
예제 #22
0
파일: app.py 프로젝트: Ghaihab/item-catelog
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'))
예제 #23
0
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)
예제 #24
0
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)
예제 #25
0
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])
예제 #26
0
파일: server.py 프로젝트: spellew/itemize
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))
예제 #27
0
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')
예제 #28
0
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)
예제 #29
0
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 
예제 #30
0
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)
예제 #31
0
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."