def token2operand( me, token): d = id_and_name o = me.db.first( me.db.get_item( id_=d.get_id( token), name=d.get_name( token))) if not o: o = Archive.Item( name=token) o.set_full_path( me.context) return o
def init( me, context): t2i = me.tag2items db = context.db for (tag_id, tag_name, item_id, item_name) in db.get_tagging(): t2i.setdefault( Tags.Tag( id=tag_id, name=tag_name), set()).add( Archive.Item( id=item_id, name=item_name))
def get_untagged( me): q = me.query(''' select id, name from items where not exists (select * from tagging where tagging.item_id == items.id) ''') return [ Archive.Item( id=_id, name=name) for _id, name in q ]
def init( me): me.item = Archive.Item() me.tag = Tags.Tag()
def query_by_tags(me, tags_tree): return [ Archive.Item(id=id_, name=name) for id_, name in me.query(me.build_tags_sql(tags_tree)) ]