From 4a9795150e283e3d8e065179333d6267d637cfae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=9B=BD=E7=92=87?= Date: Wed, 19 Jun 2024 17:07:20 +0800 Subject: [PATCH] fix: department filters --- dtable_events/utils/sql_generator.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dtable_events/utils/sql_generator.py b/dtable_events/utils/sql_generator.py index 7b30e087..3748c805 100644 --- a/dtable_events/utils/sql_generator.py +++ b/dtable_events/utils/sql_generator.py @@ -1206,6 +1206,15 @@ def __init__(self, table, statistic_type, statistic, username, id_in_org, curren item['filter_term'] = current_user_department_ids if filter_term == 'current_user_department_and_sub': item['filter_term'] = current_user_department_and_sub_ids + if isinstance(filter_term, list): + if 'current_user_department' in filter_term or 'current_user_department_and_sub' in filter_term: + for i in range(len(filter_term)): + if filter_term[i] == 'current_user_department': + filter_term[i] = current_user_department_ids + elif filter_term[i] == 'current_user_department_and_sub': + filter_term[i] = current_user_department_and_sub_ids + flat_result = [item for sublist in filter_term for item in (sublist if isinstance(sublist, list) else [sublist])] + item['filter_term'] = list(set(flat_result)) self.filters = filters filter_conjunction = statistic.get('filter_conjunction', 'and')