[cache] Fixing cache key w/ merged extra filters (#3809)
This commit is contained in:
parent
aee8438924
commit
ba89b2d091
|
|
@ -668,8 +668,8 @@ def get_celery_app(config):
|
|||
def merge_extra_filters(form_data):
|
||||
# extra_filters are temporary/contextual filters that are external
|
||||
# to the slice definition. We use those for dynamic interactive
|
||||
# filters like the ones emitted by the 'Filter Box' visualization
|
||||
if form_data.get('extra_filters'):
|
||||
# filters like the ones emitted by the "Filter Box" visualization
|
||||
if 'extra_filters' in form_data:
|
||||
# __form and __to are special extra_filters that target time
|
||||
# boundaries. The rest of extra_filters are simple
|
||||
# [column_name in list_of_values]. `__` prefix is there to avoid
|
||||
|
|
|
|||
|
|
@ -220,7 +220,9 @@ class BaseViz(object):
|
|||
|
||||
@property
|
||||
def cache_key(self):
|
||||
s = str([(k, self.form_data[k]) for k in sorted(self.form_data.keys())])
|
||||
form_data = self.form_data.copy()
|
||||
merge_extra_filters(form_data)
|
||||
s = str([(k, form_data[k]) for k in sorted(form_data.keys())])
|
||||
return hashlib.md5(s.encode('utf-8')).hexdigest()
|
||||
|
||||
def get_annotations(self):
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ class UtilsTestCase(unittest.TestCase):
|
|||
expected = {'A': 1, 'B': 2, 'c': 'test'}
|
||||
merge_extra_filters(form_data)
|
||||
self.assertEquals(form_data, expected)
|
||||
# does nothing if empty extra_filters
|
||||
# empty extra_filters
|
||||
form_data = {'A': 1, 'B': 2, 'c': 'test', 'extra_filters': []}
|
||||
expected = {'A': 1, 'B': 2, 'c': 'test', 'extra_filters': []}
|
||||
expected = {'A': 1, 'B': 2, 'c': 'test', 'filters': []}
|
||||
merge_extra_filters(form_data)
|
||||
self.assertEquals(form_data, expected)
|
||||
# copy over extra filters into empty filters
|
||||
|
|
|
|||
Loading…
Reference in New Issue