def link_item(self, name, *args): item = Item.query.get(name=name) if not item: item = Item(name=name, values=[], groups=[]) if args: for arg in args: group = Group.query.get(name=arg) if not group: Group(name=arg, item_order=[item.name]) else: group.item_order.append(item.name) item.groups.append(arg) session.flush() return item.groups
def save_item(item, session=None): """ Insert an item into the database :param item: item dictionary :param session: session object (testing util) """ if not session: session = Session() if item.get('new_cart'): session.add(Cart(id=item.get('cart_id'))) session.add( Item(external_id=item.get('external_id'), cart_id=item.get('cart_id'), name=item.get('name'), value=item.get('value'))) # errors should be caught in celery logs session.commit()
def add_item(self, name, *values): date = self.date or None # TODO: fuzzy logic search to avoid creating weird new items item = Item.query.get(name=name) if not item: item = Item(name=name, values=[], groups=[]) if not date: date = datetime.now() if values: for arg in values: print(' adding ', arg, ' to ', item.name) item.values.append({'timestamp': date, 'value': arg}) session.flush() return item