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)
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)
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)
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)
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)
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)
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)
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)
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)