refac
This commit is contained in:
1 parent
b3ba6823a9
commit
7d694570aa
1 file changed
+13
-1
@@ -10,10 +10,16 @@ log = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class FilterContext:
|
class FilterContext:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self.active_filters = None
|
||||||
self.valves_by_id = None
|
self.valves_by_id = None
|
||||||
self.function_valves = {}
|
self.function_valves = {}
|
||||||
self.user_valves = {}
|
self.user_valves = {}
|
||||||
|
|
||||||
|
async def get_active_filters(self):
|
||||||
|
if self.active_filters is None:
|
||||||
|
self.active_filters = await Functions.get_active_filter_ids()
|
||||||
|
return self.active_filters
|
||||||
|
|
||||||
async def get_function_valves(self, filter_ids, filter_id, Valves):
|
async def get_function_valves(self, filter_ids, filter_id, Valves):
|
||||||
if filter_id not in self.function_valves:
|
if filter_id not in self.function_valves:
|
||||||
if self.valves_by_id is None:
|
if self.valves_by_id is None:
|
||||||
@@ -29,6 +35,12 @@ class FilterContext:
|
|||||||
return self.user_valves[user_valves_key]
|
return self.user_valves[user_valves_key]
|
||||||
|
|
||||||
|
|
||||||
|
def get_filter_context(request):
|
||||||
|
if not hasattr(request.state, 'filter_context'):
|
||||||
|
request.state.filter_context = FilterContext()
|
||||||
|
return request.state.filter_context
|
||||||
|
|
||||||
|
|
||||||
async def get_user_valves(filter_id, user_id, UserValves):
|
async def get_user_valves(filter_id, user_id, UserValves):
|
||||||
user_valves_data = await Functions.get_user_valves_by_id_and_user_id(filter_id, user_id)
|
user_valves_data = await Functions.get_user_valves_by_id_and_user_id(filter_id, user_id)
|
||||||
return UserValves(**(user_valves_data if user_valves_data else {}))
|
return UserValves(**(user_valves_data if user_valves_data else {}))
|
||||||
@@ -57,7 +69,7 @@ async def resolve_filter_pipeline(request, model: dict, enabled_filter_ids: list
|
|||||||
if not ENABLE_PLUGINS:
|
if not ENABLE_PLUGINS:
|
||||||
return [], []
|
return [], []
|
||||||
|
|
||||||
active_filters = await Functions.get_active_filter_ids()
|
active_filters = await get_filter_context(request).get_active_filters()
|
||||||
filter_ids = get_model_filter_ids(model, active_filters)
|
filter_ids = get_model_filter_ids(model, active_filters)
|
||||||
functions_by_id = {function.id: function for function in await Functions.get_functions_by_ids(filter_ids)}
|
functions_by_id = {function.id: function for function in await Functions.get_functions_by_ids(filter_ids)}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user