Пример #1
0
    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
Пример #2
0
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()
Пример #3
0
    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