Skip to content

Commit

Permalink
fix(graph): No OA status for retracted publications
Browse files Browse the repository at this point in the history
  • Loading branch information
annelhote committed Jan 19, 2024
1 parent b68c72a commit faaec06
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -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({
Expand All @@ -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('</br>(')
.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() {
Expand All @@ -74,7 +52,7 @@ function useGetData(observationSnaps, domain = '', isPercent = false) {
}
}
getData();
}, [getDataByObservationSnaps, isPercent, observationSnaps]);
}, [getDataByObservationSnaps, observationSnaps]);

return { data, isError, isLoading };
}
Expand Down
7 changes: 0 additions & 7 deletions src/utils/chartFetchOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -2082,13 +2082,6 @@ export default function getFetchOptions({
terms: {
field: 'retraction_details.is_retracted',
},
aggs: {
by_oa: {
terms: {
field: `oa_details.${lastObservationSnap}.is_oa`,
},
},
},
},
},
},
Expand Down
16 changes: 1 addition & 15 deletions src/utils/chartOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit faaec06

Please sign in to comment.