From 9c366758665d9cfee7796ee45a8167a5412ae9ae Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Fri, 13 Jan 2023 09:49:10 +0100 Subject: filter early port, parsing adaptions --- tagit/widgets/filter.py | 13 ++++++++++--- tagit/widgets/session.py | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'tagit/widgets') diff --git a/tagit/widgets/filter.py b/tagit/widgets/filter.py index 0152737..332ad34 100644 --- a/tagit/widgets/filter.py +++ b/tagit/widgets/filter.py @@ -23,7 +23,7 @@ import kivy.properties as kp # tagit imports from tagit import config #from tagit.parsing.search import ast, ast_to_string # FIXME: mb/port -from tagit.utils import errors +from tagit.utils import bsfs, errors # inner-module imports from .session import ConfigAwareMixin @@ -108,6 +108,10 @@ class Filter(BoxLayout, ConfigAwareMixin): ## exposed methods def get_query(self): + query = bsfs.ast.filter.And(self.t_head[:]) if len(self.t_head) > 0 else None + sort = None + return query, sort + # FIXME: mb/port.parsing query = ast.AND(self.t_head[:]) if len(self.t_head) else None # sort order is always set to False so that changing the sort order # won't trigger a new query which can be very expensive. The sort @@ -116,6 +120,8 @@ class Filter(BoxLayout, ConfigAwareMixin): return query, sort def abbreviate(self, token): + return 'T' + # FIXME: mb/port/parsing if token.predicate() == 'tag': return ','.join(list(token.condition())) elif token.predicate() == 'entity': @@ -162,8 +168,9 @@ class Filter(BoxLayout, ConfigAwareMixin): if self.changed: self.redraw() # issue search - if self.run_search: - self.root.trigger('Search') + # FIXME: mb/port/parsing + #if self.run_search: + # self.root.trigger('Search') def redraw(self): self.tokens.clear_widgets() diff --git a/tagit/widgets/session.py b/tagit/widgets/session.py index a7c7355..ca8c595 100644 --- a/tagit/widgets/session.py +++ b/tagit/widgets/session.py @@ -14,6 +14,7 @@ from kivy.uix.widget import Widget import kivy.properties as kp # tagit imports +from tagit import parsing from tagit.config.loader import load_settings #from tagit.storage.broker import Broker # FIXME: mb/port #from tagit.storage.loader import load_broker, load_log # FIXME: mb/port @@ -38,6 +39,9 @@ class Session(Widget): self.cfg = cfg self.storage = storage self.log = log + # derived members + self.filter_from_string = parsing.Filter(self.storage.schema) + #self.sort_from_string = parsing.Sort(self.storage.schema) # FIXME: mb/port/parsing def __enter__(self): return self -- cgit v1.2.3