You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ar...@apache.org on 2024/02/05 14:08:43 UTC
(superset) branch master updated: fix(plugins): Fix dashboard filter in Period Over Period KPI plugin (#27013)
This is an automated email from the ASF dual-hosted git repository.
arivero pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 607301ad56 fix(plugins): Fix dashboard filter in Period Over Period KPI plugin (#27013)
607301ad56 is described below
commit 607301ad569bd251ec53dabfcb69f6da3ed958ea
Author: Antonio Rivero <38...@users.noreply.github.com>
AuthorDate: Mon Feb 5 15:08:37 2024 +0100
fix(plugins): Fix dashboard filter in Period Over Period KPI plugin (#27013)
---
.../src/plugin/buildQuery.ts | 16 ++++++++++++----
.../src/plugin/transformProps.ts | 12 +++++++++---
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/buildQuery.ts b/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/buildQuery.ts
index 202063c13c..aa0477e48f 100644
--- a/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/buildQuery.ts
@@ -217,7 +217,11 @@ function calculatePrev(
}
export default function buildQuery(formData: QueryFormData) {
- const { cols: groupby, time_comparison: timeComparison } = formData;
+ const {
+ cols: groupby,
+ time_comparison: timeComparison,
+ extra_form_data: extraFormData,
+ } = formData;
const queryContextA = buildQueryContext(formData, baseQueryObject => [
{
@@ -244,9 +248,11 @@ export default function buildQuery(formData: QueryFormData) {
'comparator' in timeFilter &&
typeof timeFilter.comparator === 'string'
) {
- [testSince, testUntil] = getSinceUntil(
- timeFilter.comparator.toLocaleLowerCase(),
- );
+ let timeRange = timeFilter.comparator.toLocaleLowerCase();
+ if (extraFormData?.time_range) {
+ timeRange = extraFormData.time_range;
+ }
+ [testSince, testUntil] = getSinceUntil(timeRange);
}
let formDataB: QueryFormData;
@@ -277,11 +283,13 @@ export default function buildQuery(formData: QueryFormData) {
formDataB = {
...formData,
adhoc_filters: queryBFilters,
+ extra_form_data: {},
};
} else {
formDataB = {
...formData,
adhoc_filters: formData.adhoc_custom,
+ extra_form_data: {},
};
}
diff --git a/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/transformProps.ts b/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/transformProps.ts
index 437641143c..80737f6032 100644
--- a/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-period-over-period-kpi/src/plugin/transformProps.ts
@@ -112,9 +112,15 @@ export default function transformProps(chartProps: ChartProps) {
let valueDifference: number | string = bigNumber - prevNumber;
- const percentDifferenceNum = prevNumber
- ? (bigNumber - prevNumber) / Math.abs(prevNumber)
- : 0;
+ let percentDifferenceNum;
+
+ if (!bigNumber && !prevNumber) {
+ percentDifferenceNum = 0;
+ } else if (!bigNumber || !prevNumber) {
+ percentDifferenceNum = bigNumber ? 1 : -1;
+ } else {
+ percentDifferenceNum = (bigNumber - prevNumber) / Math.abs(prevNumber);
+ }
const compType = compTitles[formData.timeComparison];
bigNumber = numberFormatter(bigNumber);