From 42ef2876d71b9c276125043b9274df505cf64d11 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 11 Feb 2020 23:48:53 +0100 Subject: [PATCH] visualization: add a duplicate button (#39637) --- bijoe/templates/bijoe/visualization.html | 2 ++ bijoe/visualization/utils.py | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/bijoe/templates/bijoe/visualization.html b/bijoe/templates/bijoe/visualization.html index d81c6e7..db43726 100644 --- a/bijoe/templates/bijoe/visualization.html +++ b/bijoe/templates/bijoe/visualization.html @@ -15,6 +15,8 @@ {% block actions %} {% trans "Rename" %} {% trans "Delete" %} + {% trans "Duplicate" %} {% trans "Export as ODS" %} {% trans "Export as JSON" %} {% trans "URL for IFRAME" %} diff --git a/bijoe/visualization/utils.py b/bijoe/visualization/utils.py index 0c6e1ed..cfe01fa 100644 --- a/bijoe/visualization/utils.py +++ b/bijoe/visualization/utils.py @@ -28,7 +28,7 @@ from django.core.cache import cache from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ from django.utils import six -from django.http import Http404 +from django.http import Http404, QueryDict from django.conf import settings from ..utils import get_warehouses @@ -364,3 +364,19 @@ class Visualization(object): else: self.table_title = self.title() yield self + + @property + def query_dict(self): + q = QueryDict(mutable=True) + for key in self.filters: + q.setlist('filter__' + key, self.filters[key]) + if self.drilldown_x: + q['drilldown_x'] = self.drilldown_x.name + if self.drilldown_y: + q['drilldown_y'] = self.drilldown_y.name + if self.loop: + q['loop'] = self.loop.name + q['measure'] = self.measure.name + q['representation'] = self.representation + q._mutable = False + return q -- 2.24.0