def add_to_basket(self, p_id): user = User.current() basket = DBSession. \ query(Purchase). \ filter(Purchase.user_id == user.user_id). \ order_by(Purchase.id.desc()). \ first() product = DBSession.query(Product).filter(Product.id == p_id).one_or_none() if product.quantity < 1: return dict(ok=False) if basket and basket.status == 'Selection': if product in basket.product: return dict(ok=True) elif product not in basket.product: basket.product.append(product) tmp = basket.items tmp[product.id] = 1 basket.items = tmp DBSession.flush() return dict(ok=True) if not basket or basket.status != 'Selection': basket = Purchase( user_id=user.user_id, items={} ) basket.set_uid() basket.product.append(product) tmp = basket.items tmp[product.id] = 1 basket.items = tmp DBSession.add(basket) DBSession.flush() return dict(ok=True)
def comment(self, **kwargs): text = kwargs.get('text') product_id = kwargs.get('product_id') product_title = kwargs.get('product_title') c = Comment(text=text, product_id=product_id, user_id=User.current().user_id) DBSession.add(c) DBSession.flush() redirect('/p/{}/{}'.format(product_id, product_title))
def submit_article(self, **kw): image = StorageManager().store(kw.get('image')) del kw['image'] a = Article() a.image = image for k, v in kw.items(): a.__setattr__(k, v) DBSession.add(a) DBSession.flush() redirect('/area51')
def submit_product(self, **kw): images = ','.join([StorageManager().store(i) for i in kw.get('form-images')]) del kw['form-images'] p = Product() p.images = images for k, v in kw.items(): p.__setattr__(k, v) DBSession.add(p) DBSession.flush() redirect('/area51')
def register_handler(self, **kwargs): username = kwargs.get('username') password = kwargs.get('password') DBSession.add(User( user_name=username, password=password )) try: DBSession.flush() return dict(ok=True) except IntegrityError: return dict(ok=False)
def setUp(self): """Setup test fixture for each model test method.""" try: new_attrs = {} new_attrs.update(self.attrs) new_attrs.update(self.do_get_dependencies()) self.obj = self.klass(**new_attrs) DBSession.add(self.obj) DBSession.flush() return self.obj except: DBSession.rollback() raise