@@ -18,7 +18,7 @@ def main():
18
18
filter_model = '<model_name>'
19
19
filter_explore = '<explore_name>'
20
20
filter_dimension = '<view_name.field_name>' # Requires a fully-scoped dimension
21
-
21
+
22
22
filter = create_filter (dash_id , filter_name , filter_model , filter_explore , filter_dimension )
23
23
elements = sdk .dashboard_dashboard_elements (dash_id )
24
24
for element in elements :
@@ -27,7 +27,6 @@ def main():
27
27
if element .type != 'text' :
28
28
update_elements_filters (element , filter )
29
29
30
-
31
30
def create_filter (dash_id : str , filter_name : str , filter_model : str , filter_explore : str , filter_dimension : str ) -> DashboardFilter :
32
31
"""Creates a dashboard filter object on the specified dashboard. Filters must be tied to a specific LookML Dimension.
33
32
@@ -67,9 +66,13 @@ def update_elements_filters(element: DashboardElement, filter: DashboardFilter)
67
66
new_listens = []
68
67
for each in filterable .listen :
69
68
new_listens .append (each )
70
- # Add listener for new filter
71
- new_listens .append (models .ResultMakerFilterablesListen (dashboard_filter_name = filter .name , field = filter .dimension ))
72
- filterable .listen = new_listens
69
+
70
+ # Add listener for new filter, if model and explore is the same
71
+ # You can easily add further restrictions to what tiles or queries within merged results will listen to the new tile
72
+ # If you don't want to restrict what tiles or queries this listen to this filter, just remove this if
73
+ if filter .model == filterable .model and filter .explore == filterable .view :
74
+ new_listens .append (models .ResultMakerFilterablesListen (dashboard_filter_name = filter .name , field = filter .dimension ))
75
+ filterable .listen = new_listens
73
76
# Append the new filterables to a result maker that we can use for the dashboard element
74
77
element .result_maker .filterables .append (
75
78
models .ResultMakerFilterables (
0 commit comments