示例#1
0
def admin_store(req):
    check_login(req)
    check_right(req, module_right)

    pager = Pager(sort='desc')
    pager.bind(req.args)

    show = req.args.getfirst('show', '', uni)
    if show == 'visible':
        kwargs = {'state': STATE_VISIBLE}
        pager.set_params(show=show)
    elif show == 'hidden':
        kwargs = {'state': STATE_HIDDEN}
        pager.set_params(show=show)
    elif show == 'disabled':
        kwargs = {'state': STATE_DISABLED}
        pager.set_params(show=show)
    else:
        kwargs = {}

    items = Item.list(req, pager, **kwargs)

    return generate_page(req, "admin/eshop/store.html",
                         token=create_token(req),
                         pager=pager, items=items, show=show)
示例#2
0
def eshop_orders_detail(req, id):
    do_check_mgc(req)
    item = Item(id)
    if not item.get(req):
        raise SERVER_RETURN(state.HTTP_NOT_FOUND)
    item.attachments = Attachment.list(req, Pager(),
                                       object_type='eshop_item', object_id=id)
    return generate_page(req, "eshop/item_detail.html",
                         token=create_token(req),
                         item=item, cfg_currency=req.cfg.eshop_currency)
示例#3
0
def eshop_orders_eshop(req):
    do_check_mgc(req)
    pager = Pager()
    pager.bind(req.args)

    items = Item.list(req, pager, state=STATE_VISIBLE)
    return generate_page(req, "eshop/eshop.html",
                         token=create_token(req),
                         cfg_currency=req.cfg.eshop_currency,
                         pager=pager, items=items)
示例#4
0
def admin_orders_mod(req, id):
    check_login(req)
    check_right(req, module_right)

    order = Order(id)
    if order.get(req) is None:
        raise SERVER_RETURN(state.HTTP_NOT_FOUND)

    cfg = Object()
    cfg.addresses_country = req.cfg.addresses_country
    cfg.addresses_region = req.cfg.addresses_region
    cfg.eshop_currency = req.cfg.eshop_currency

    order.calculate()
    return generate_page(req, "admin/eshop/orders_mod.html",
                         token=create_token(req),
                         order=order, cfg=cfg)
示例#5
0
def admin_item_mod(req, id):
    check_login(req)
    check_right(req, module_right)

    item = Item(id)
    if req.method == 'POST':
        check_token(req, req.form.get('token'))
        item.bind(req.form)
        error = item.mod(req)
        if error != item:
            return generate_page(req, "admin/eshop/item_mod.html",
                                 item=item, error=error)

    if not item.get(req):    # still fresh data
        raise SERVER_RETURN(state.HTTP_NOT_FOUND)

    return generate_page(req, "admin/eshop/item_mod.html",
                         token=create_token(req), item=item)
示例#6
0
def admin_codebook_view(req, codebook):
    check_login(req)
    check_right(req, module_right)

    Codebook = build_class(codebook)
    search = req.args.getfirst('search', fce=nuni)

    pager = Pager(order='value')
    pager.bind(req.args)

    if search:
        pager.set_params(search=search)

    items = Codebook.list(req, Codebook, pager, search=search)

    return generate_page(req, "admin/codebook.html",
                         token=create_token(req), codebook=codebook,
                         pager=pager, items=items, search=search)
示例#7
0
def admin_item_add(req):
    check_login(req)
    check_right(req, module_right)

    item = Item()
    if req.method == 'POST':
        check_token(req, req.form.get('token'), uri='/admin/eshop/store/add')
        item.bind(req.form)
        error = item.add(req)

        if error != item:
            return generate_page(req, "admin/eshop/item_mod.html",
                                 item=item, error=error)

        redirect(req, '/admin/eshop/store/%d' % item.id)
    # endif

    return generate_page(req, "admin/eshop/item_mod.html",
                         token=create_token(req), item=item)
示例#8
0
def eshop_cart_address(req, cart=None, error=None):
    do_check_mgc(req)
    cart = cart or ShoppingCart(req)

    # get method returns HTML Form
    cfg = Object()
    cfg.addresses_country = req.cfg.addresses_country
    cfg.addresses_region = req.cfg.addresses_region
    cfg.eshop_currency = req.cfg.eshop_currency
    # all defined transportation (for universal use):
    for key, val in req.cfg.__dict__.items():
        if key.startswith('eshop_transportation_'):
            cfg.__dict__[key[6:]] = val
        elif key.startswith('eshop_payment_'):
            cfg.__dict__[key[6:]] = val

    # GET method only view shopping cart - no store was needed
    return generate_page(req, "eshop/shopping_address.html",
                         token=create_token(req),
                         cfg=cfg, cart=cart, error=error)
示例#9
0
def eshop_cart(req):
    do_check_mgc(req)
    cart = ShoppingCart(req)

    if req.method == 'PATCH':
        check_token(req, req.json.get('token'), uri='/eshop/cart')
        cart.merge_items(req.json.get('items', []))
        req.content_type = 'application/json'
        cart.store(req)     # store shopping cart
        cart.calculate()
        return json.dumps({'cart': cart.dict()})

    cart.calculate()
    if req.is_xhr:
        check_origin(req)
        req.content_type = 'application/json'
        return json.dumps({'cart': cart.dict()})

    # GET method only view shopping cart - no store was needed
    return generate_page(req, "eshop/shopping_cart.html",
                         token=create_token(req),
                         cfg_currency=req.cfg.eshop_currency, cart=cart)