Exemplo n.º 1
0
def category(key_id, page):
    view_type = util.param('product_view_type', int)
    session_view_type = flask.session.get('product_view_type', None)
    if session_view_type is None or session_view_type not in PRODUCT_VIEW_TYPES.itervalues(
    ):
        if view_type in PRODUCT_VIEW_TYPES.itervalues():
            flask.session['product_view_type'] = view_type
        else:
            flask.session['product_view_type'] = PRODUCT_VIEW_TYPES['tile']
    else:
        if view_type in PRODUCT_VIEW_TYPES.itervalues():
            flask.session['product_view_type'] = view_type
    category_obj = Category.retrieve_by_id(key_id)
    if not category_obj:
        return flask.redirect(flask.url_for('pages.index'))
    products = Product\
        .query(Product.category == category_obj.name)\
        .order(-Product.leftovers_on_way)\
        .order(-Product.leftovers)
    products = get_paginator(products, page)
    return flask.render_template('pages/category.html',
                                 title=u'{} "{}"'.format(
                                     u'Категория', category_obj.name),
                                 category=category_obj,
                                 products=products,
                                 key_id=key_id)
Exemplo n.º 2
0
def category(key_id, page):
    view_type = util.param('product_view_type', int)
    session_view_type = flask.session.get('product_view_type', None)
    if session_view_type is None or session_view_type not in PRODUCT_VIEW_TYPES.itervalues():
        if view_type in PRODUCT_VIEW_TYPES.itervalues():
            flask.session['product_view_type'] = view_type
        else:
            flask.session['product_view_type'] = PRODUCT_VIEW_TYPES['tile']
    else:
        if view_type in PRODUCT_VIEW_TYPES.itervalues():
            flask.session['product_view_type'] = view_type
    category_obj = Category.retrieve_by_id(key_id)
    if not category_obj:
        return flask.redirect(flask.url_for(
            'pages.index'
        ))
    products = Product\
        .query(Product.category == category_obj.name)\
        .order(-Product.leftovers_on_way)\
        .order(-Product.leftovers)
    products = get_paginator(products, page)
    return flask.render_template(
        'pages/category.html',
        title=u'{} "{}"'.format(u'Категория', category_obj.name),
        category=category_obj,
        products=products,
        key_id=key_id
    )
Exemplo n.º 3
0
def category_json():
    key_id = param('id')
    if not key_id:
        raise ApiException('Invalid request: category "id" not found.')
    category = Category.retrieve_by_id(key_id)
    if not category:
        raise ApiException(
            'Invalid request: Category with "id" == %s not found' % key_id)
    id_1c = param('id_1c')
    if id_1c is not None:
        category._PROPERTIES = category._PROPERTIES.union(
            ['products_by_id_1c'])
        return jsonify_model_db(category)
    return jsonify_model_db(category)
Exemplo n.º 4
0
def category_edit(key_id):
    category = Category.retrieve_by_id(key_id)
    if not category:
        return redirect(url_for('admin.product.categories'))
    form = CategoryForm(obj=category)
    if request.method == 'POST' and 'delete_category' in request.form:
        category.key.delete()
        return redirect(url_for('admin.product.categories'))
    if form.is_submitted() and form.validate(is_edit=True):
        form.populate_obj(category)
        category.put()
        return redirect(url_for('admin.product.categories'))
    return render_template('product/admin/category/edit.html',
                           category=category,
                           form=form)
Exemplo n.º 5
0
def category_edit(key_id):
    category = Category.retrieve_by_id(key_id)
    if not category:
        return redirect(url_for('admin.product.categories'))
    form = CategoryForm(obj=category)
    if request.method == 'POST' and 'delete_category' in request.form:
        category.key.delete()
        return redirect(url_for('admin.product.categories'))
    if form.is_submitted() and form.validate(is_edit=True):
        form.populate_obj(category)
        category.put()
        return redirect(url_for('admin.product.categories'))
    return render_template(
        'product/admin/category/edit.html',
        category=category,
        form=form
    )