From faaec06541737da81b6503f005816b195a927775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anne=20L=27H=C3=B4te?= Date: Fri, 19 Jan 2024 15:16:57 +0100 Subject: [PATCH] fix(graph): No OA status for retracted publications --- .../others/retractions/get-data-by-year.js | 48 +++++-------------- src/utils/chartFetchOptions.js | 7 --- src/utils/chartOptions.js | 16 +------ 3 files changed, 14 insertions(+), 57 deletions(-) diff --git a/src/components/Charts/publications/others/retractions/get-data-by-year.js b/src/components/Charts/publications/others/retractions/get-data-by-year.js index a28e2d42..fcd2ef7f 100644 --- a/src/components/Charts/publications/others/retractions/get-data-by-year.js +++ b/src/components/Charts/publications/others/retractions/get-data-by-year.js @@ -1,18 +1,15 @@ import Axios from 'axios'; import { useCallback, useEffect, useState } from 'react'; -import { useIntl } from 'react-intl'; import { ES_API_URL, HEADERS } from '../../../../../config/config'; import getFetchOptions from '../../../../../utils/chartFetchOptions'; -import { cleanNumber, getCSSValue } from '../../../../../utils/helpers'; import useGlobals from '../../../../../utils/Hooks/useGetGlobals'; -function useGetData(observationSnaps, domain = '', isPercent = false) { +function useGetData(observationSnaps, domain = '') { const [data, setData] = useState({}); const [isError, setError] = useState(false); const [isLoading, setLoading] = useState(true); const { lastObservationSnap } = useGlobals(); - const intl = useIntl(); const getDataByObservationSnaps = useCallback(async () => { const query = getFetchOptions({ @@ -24,41 +21,22 @@ function useGetData(observationSnaps, domain = '', isPercent = false) { const response = await Axios.post(ES_API_URL, query, HEADERS); const buckets = response?.data?.aggregations?.by_year?.buckets?.sort( (a, b) => a.key - b.key, - ); - const categories = buckets.map((item) => item.key - .toString() - .concat('
(') - .concat(intl.formatMessage({ id: 'app.effectif-short' })) - .concat(' = ') - .concat(cleanNumber(item.doc_count)) - .concat(')')); - const closedData = []; - const oaData = []; - buckets.forEach((item) => { - const retracted = item.by_retraction.buckets.find((i2) => i2.key === 1); - const closedPublications = retracted.by_oa.buckets.find((i2) => i2.key === 0)?.doc_count ?? 0; - closedData.push((closedPublications / item.doc_count) * 100); - const oaPublications = retracted.by_oa.buckets.find((i2) => i2.key === 1)?.doc_count ?? 0; - oaData.push((oaPublications / item.doc_count) * 100); - }); - const dataGraph = [ - { - color: getCSSValue('--blue-soft-175'), - data: closedData, - name: intl.formatMessage({ id: 'app.type-hebergement.closed' }), - }, - { - color: getCSSValue('--orange-soft-100'), - data: oaData, - name: intl.formatMessage({ id: 'app.type-hebergement.open' }), - }, - ]; + ) ?? []; + + const categories = buckets.map((item) => item.key.toString()); + const dataGraph = { + data: buckets.map((item, catIndex) => ({ + y: item.doc_count, + x: catIndex, + year: categories[catIndex], + })), + }; return { categories, dataGraph, }; - }, [domain, intl, lastObservationSnap]); + }, [domain, lastObservationSnap]); useEffect(() => { async function getData() { @@ -74,7 +52,7 @@ function useGetData(observationSnaps, domain = '', isPercent = false) { } } getData(); - }, [getDataByObservationSnaps, isPercent, observationSnaps]); + }, [getDataByObservationSnaps, observationSnaps]); return { data, isError, isLoading }; } diff --git a/src/utils/chartFetchOptions.js b/src/utils/chartFetchOptions.js index 29c80754..bf7f2220 100644 --- a/src/utils/chartFetchOptions.js +++ b/src/utils/chartFetchOptions.js @@ -2082,13 +2082,6 @@ export default function getFetchOptions({ terms: { field: 'retraction_details.is_retracted', }, - aggs: { - by_oa: { - terms: { - field: `oa_details.${lastObservationSnap}.is_oa`, - }, - }, - }, }, }, }, diff --git a/src/utils/chartOptions.js b/src/utils/chartOptions.js index 1a68ae0a..65af14d1 100644 --- a/src/utils/chartOptions.js +++ b/src/utils/chartOptions.js @@ -4367,27 +4367,13 @@ export const chartOptions = { title: { text: intl.formatMessage({ id: 'app.publication-year' }) }, categories, }; - options.yAxis = getPercentageYAxis(true, null, false, 3); - options.yAxis.title.text = intl.formatMessage({ - id: 'app.publi.percent-publications-retracted', - }); - options.legend.enabled = true; - options.legend.reversed = true; + options.legend.enabled = false; options.plotOptions = { series: { dataLabels: { enabled: true, }, }, - column: { - stacking: 'normal', - dataLabels: { - enabled: true, - formatter() { - return this.y === 0 ? '' : this.y.toFixed(3).concat(' %'); - }, - }, - }, }; options.series = data; options.exporting.chartOptions.legend.enabled = false;