Skip to content

Commit

Permalink
Merge branch 'staging' of https://github.com/dataesr/bso-ui into staging
Browse files Browse the repository at this point in the history
  • Loading branch information
ericjeangirard committed Jan 10, 2025
2 parents 6235b46 + a969f34 commit cf1d5fe
Show file tree
Hide file tree
Showing 8 changed files with 182 additions and 34 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bso-ui",
"version": "1.13.3",
"version": "1.13.5",
"private": true,
"dependencies": {
"@dataesr/react-dsfr": "^3.9.1",
Expand Down
20 changes: 20 additions & 0 deletions src/pages/About/Citation/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,26 @@ function Citation() {
</p>
</Col>
</section>
<section className='content py-4'>
<Col n='12 lg-10'>
<strong>
<FormattedMessage id='app.citation5' />
</strong>
<p>
Laetitia Bracco, Eric Jeangirard, Anne L'Hôte, Laurent Romary.
How to build an Open Science Monitor based on publications? A
French perspective ? 2024. hal:
{' '}
<a
href='https://hal.science/hal-04854788'
target='_blank'
rel='noreferrer'
>
hal-04854788
</a>
</p>
</Col>
</section>
</Row>
</section>
</Container>
Expand Down
20 changes: 20 additions & 0 deletions src/pages/About/Methodology/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,26 @@ function Methodology() {
</p>
</Col>
</section>
<section className='content py-4'>
<Col n='12 lg-10'>
<strong>
<FormattedMessage id='app.citation5' />
</strong>
<p>
Laetitia Bracco, Eric Jeangirard, Anne L'Hôte, Laurent Romary.
How to build an Open Science Monitor based on publications? A
French perspective ? 2024. hal:
{' '}
<a
href='https://hal.science/hal-04854788'
target='_blank'
rel='noreferrer'
>
hal-04854788
</a>
</p>
</Col>
</section>
</Row>
</section>
</Container>
Expand Down
154 changes: 129 additions & 25 deletions src/pages/Declinaisons/Policy/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { getGraphOptions } from '../../../utils/chartOptions';
import { getCSSValue, getPercentageYAxis } from '../../../utils/helpers';

const { REACT_APP_OPENDATASOFT_API_KEY } = process.env;
const END_YEAR = 2024;
const OPENDATASOFT_LIMIT = 100;
const START_YEAR = 2016;

Expand All @@ -35,7 +36,7 @@ const Policy = () => {
offset = 0,
} = {}) => {
let url = 'https://data.enseignementsup-recherche.gouv.fr/api/explore/v2.1/catalog/datasets';
url += `/fr-esr-resultats-de-l-enquete-sur-la-mise-en-oeuvre-des-politiques-de-science-ou/records?limit=${limit}&offset=${offset}`;
url += `/fr-esr-enquete-etablissements-pnso2/records?limit=${limit}&offset=${offset}&order_by=uo_lib`;
url += `&apikey=${REACT_APP_OPENDATASOFT_API_KEY}`;
const response = await axios.get(url, {
headers: { accept: 'application/json; charset=utf-8' },
Expand All @@ -59,15 +60,15 @@ const Policy = () => {
}, []);

useEffect(() => {
const years = [
...Array(new Date().getFullYear() - START_YEAR + 1).keys(),
].map((year) => year + START_YEAR);
const years = [...Array(END_YEAR - START_YEAR + 1).keys()].map(
(year) => year + START_YEAR,
);
const tmp = {};
// eslint-disable-next-line no-return-assign
years.forEach((year) => (tmp[year] = { y: 0, y_percent: 0 }));
data.forEach((item) => {
if (item?.first_year_of_publication) {
tmp[item.first_year_of_publication].y += 1;
if (item?.['1_annee_publi_doc_cadre']) {
tmp[item['1_annee_publi_doc_cadre']].y += 1;
}
});
const series1 = {};
Expand Down Expand Up @@ -115,30 +116,31 @@ const Policy = () => {
),
};

const orderFromPolicyExists = {
Oui: 3,
Non: 2,
'Pas encore, mais nous y travaillons': 1,
};

let series2 = [];
data.forEach((item) => {
if (
!series2.find(
(serie) => serie.name === item.charter_policy_open_science_exists,
)
) {
if (!series2.find((serie) => serie.name === item['1_doc_cadre'])) {
series2.push({
color:
colorFromPolicyExists?.[item.charter_policy_open_science_exists]
?? getCSSValue('--g-500'),
name: item?.charter_policy_open_science_exists,
name: item['1_doc_cadre'],
y: 0,
});
}
series2.find(
(serie) => serie.name === item.charter_policy_open_science_exists,
).y += 1;
series2.find((serie) => serie.name === item['1_doc_cadre']).y += 1;
});
series2 = series2.map((item) => ({
...item,
name: item?.name ?? 'Pas de réponse',
y_percent: (item.y / data.length) * 100,
}));
series2 = series2
.map((item) => ({
...item,
color: colorFromPolicyExists[item?.name] ?? getCSSValue('--g-500'),
name: item?.name ?? 'Pas de réponse',
order: orderFromPolicyExists[item?.name] ?? 0,
y_percent: (item.y / data.length) * 100,
}))
.sort((a, b) => b.order - a.order);
const options2Tmp = getGraphOptions({ id: id2, intl });
options2Tmp.chart.type = 'pie';
options2Tmp.series = [
Expand All @@ -160,8 +162,26 @@ const Policy = () => {
}, [data, intl]);

useEffect(() => {
setChartComments1(customComments({ comments: {} }, id1, intl));
setChartComments2(customComments({ comments: {} }, id2, intl));
setChartComments1(
customComments(
{
comments: {},
ctas: ['https://hal-lara.archives-ouvertes.fr/hal-04842977'],
},
id1,
intl,
),
);
setChartComments2(
customComments(
{
comments: {},
ctas: ['https://hal-lara.archives-ouvertes.fr/hal-04842977'],
},
id2,
intl,
),
);
}, [id2, intl]);

return (
Expand All @@ -177,6 +197,31 @@ const Policy = () => {
</Row>
<Row>
<Col n='12'>
<FormattedMessage
id='other.policy.open-science-policy-contact'
values={{
cta: (chunks) => (
<a
className='external_link'
href='mailto:[email protected]'
rel='noreferrer'
target='_blank'
>
{chunks}
</a>
),
linebreak: (chunks) => (
<>
{chunks}
<br />
</>
),
}}
/>
</Col>
</Row>
<Row>
<Col n='12' className='fr-mt-5w'>
<ChartWrapper
chartRef={chartRef1}
domain=''
Expand Down Expand Up @@ -219,6 +264,65 @@ const Policy = () => {
</ChartWrapper>
</Col>
</Row>
<Row>
<Col n='12' className='fr-mt-5w'>
<table>
<thead>
<tr>
<th scope='col'>Établissement</th>
<th scope='col'>Année de publication du document-cadre</th>
<th scope='col'>
Lien vers le document-cadre le plus récent
</th>
</tr>
</thead>
<tbody>
{data
.filter((item) => item?.['1_url_doc_cadre'])
.map((item) => (
<tr>
<td>{item.uo_lib}</td>
<td>{item['1_annee_publi_doc_cadre']}</td>
<td>
<a
href={item['1_url_doc_cadre']}
rel='noreferrer'
target='_blank'
>
lien
</a>
</td>
</tr>
))}
</tbody>
</table>
</Col>
</Row>
<Row>
<Col n='12' className='fr-mt-5w'>
<FormattedMessage
id='other.policy.open-science-policy-contact'
values={{
cta: (chunks) => (
<a
className='external_link'
href='mailto:[email protected]'
rel='noreferrer'
target='_blank'
>
{chunks}
</a>
),
linebreak: (chunks) => (
<>
{chunks}
<br />
</>
),
}}
/>
</Col>
</Row>
</section>
</Container>
</div>
Expand Down
6 changes: 4 additions & 2 deletions src/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@
"app.citation2": "About the automatic detection of affiliations:",
"app.citation3": "About the extension of open access indicators and monitoring of clinical trials:",
"app.citation4": "About the extension to research data, codes and software using text mining techniques:",
"app.citation5": "About the building of an open science monitor based on publications:",
"app.health-home.numbers": "Key figures of open science in health research",
"app.health-interventional.caracteristiques": "Characteristics",
"app.health-interventional.caracteristiques.combien.title": "How many patients are involved in registered clinical trials?",
Expand Down Expand Up @@ -930,11 +931,12 @@
"app.national-publi.others.retractions.chart-by-reason.title": "Reason of retraction for French publications",
"app.national-publi.others.retractions.chart-by-reason.tooltip": "<b>{point.y} retracted publications</b> for reason {point.reason}",
"app.national-other.policy.open-science-policy.title": "Number of institutions with an open science policy",
"other.policy.open-science-policy-contact": "TO_BE_TRANSLATED",
"other.policy.open-science-policy.tooltip": "In {point.x}, <b>{point.y}</b> institution(s) had an open science policy,<br>ie. <b>{point.y_percent:.2f}%</b> des respondents.",
"other.policy.open-science-policy.comments": "This gaph shows the evolution of the number of institutions declaring having an open science policy. In green is the PNSO1 (National Plan for Open Science) period between 2018 and 2021, and in yellow is the PNSO2 period between 2021 and 2024. These data come from a survey carried out in early 2024.",
"other.policy.open-science-policy.comments": "TO_BE_TRANSLATED",
"app.national-other.policy.open-science-document.title": "Existence of an open science policy document",
"other.policy.open-science-document.tooltip": "<b>{point.y_percent:.2f}%</b> of respondents answered {point.name} to the question<br>of the existence of a document specifying the open science policy either <b>{point.y}</b> institution(s)",
"other.policy.open-science-document.comments": "This graph represents the proportion of institutions declaring the existence of a document specifying the open science policy, among respondents. These data come from a survey carried out in early 2024.",
"other.policy.open-science-document.comments": "TO_BE_TRANSLATED",
"other.policy.open-science-document.label.not_yet": "Not yet,<br/>but we are working on it",
"app.navigation.objet-recherche": "Research object navigation",
"app.methodologie.publication": "Methodology for monitoring open access to publications",
Expand Down
8 changes: 5 additions & 3 deletions src/translations/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,8 @@
"app.citation1": "Sur la mise en place du Baromètre sur l'accès ouvert aux publications :",
"app.citation2": "Sur la détection automatique des affiliations :",
"app.citation3": "Sur l'extension des indicateurs sur l'accès ouvert et suivi des essais cliniques :",
"app.citation4": "Sur l'extension aux données de la recherche, codes et logiciels grâce à des techniques de fouille de texte ",
"app.citation4": "Sur l'extension aux données de la recherche, codes et logiciels grâce à des techniques de fouille de texte:",
"app.citation5": "Sur la construction d'un baromètre de la science ouverte basé sur les publications:",
"app.health-home.numbers": "Les chiffres-clés de la science ouverte dans les recherches en santé",
"app.health-interventional.caracteristiques": "Caractéristiques",
"app.health-interventional.caracteristiques.combien.title": "Combien de patients sont impliqués dans les essais cliniques enregistrés ?",
Expand Down Expand Up @@ -1165,11 +1166,12 @@
"app.national-publi.others.retractions.chart-by-reason.title": "Raison du retrait des publications françaises",
"app.national-publi.others.retractions.chart-by-reason.tooltip": "<b>{point.y} publications retirées</b> pour raison {point.reason}",
"app.national-other.policy.open-science-policy.title": "Evolution du nombre d'établissements qui se sont dotés d'une politique de science ouverte",
"other.policy.open-science-policy-contact": "Pour nous signaler l’adoption d’un document par votre établissement, la mise à jour d’une politique existante, ou un lien cassé, n’hésitez pas à nous écrire à l’adresse <cta>[email protected]</cta>.",
"other.policy.open-science-policy.tooltip": "En {point.x}, <b>{point.y}</b> établissement(s) avai(en)t une politique de science ouverte,<br>soit <b>{point.y_percent:.2f} %</b> des répondants.",
"other.policy.open-science-policy.comments": "Ce graphique présente l'évolution du nombre d'établissements déclarant avoir une politique de science ouverte. On retrouve en vert la période du PNSO1 (Plan National pour la Science Ouverte) entre 2018 et 2021 et en jaune le PNSO2 entre 2021 et 2024. Ces données sont issues d'une enquête réalisée début 2024.",
"other.policy.open-science-policy.comments": "Ce graphique présente l'évolution du nombre d'établissements déclarant avoir une politique de science ouverte. L'année de référence est l'année d'adoption d'une première politique de science ouverte. On retrouve en vert la période du premier Plan National pour la Science Ouverte, entre 2018 et 2021, et en jaune, la période du deuxième Plan national, depuis 2021. Ces données sont issues d'une enquête réalisée début 2024 par le MESR, dont les résultats ont été publiés dans un rapport (DOI: <cta0>10.52949/80</cta0>). A partir de 2025, les données sont collectées par signalement effectué par les établissements et par une veille systématique du ministère.",
"app.national-other.policy.open-science-document.title": "Existence d'un document précisant la politique de science ouverte",
"other.policy.open-science-document.tooltip": "<b>{point.y_percent:.2f} %</b> des répondants ont répondu {point.name} à la question<br>de l'existence d'un document précisant la politique de science ouverte<br>soit <b>{point.y}</b> établissement(s)",
"other.policy.open-science-document.comments": "Ce graphique représente la proportion d'établissements déclarant l'existence d'un document précisant la politique de science ouverte, parmi les répondants. Ces données sont issues d'une enquête réalisées début 2024.",
"other.policy.open-science-document.comments": "Ce graphique représente la proportion d'établissements qui ont déclaré l'existence d'un document précisant la politique de science ouverte. Ces données sont issues d'une enquête réalisées début 2024 par le MESR et dont les résultats ont été publiés dans un rapport (DOI : <cta0>10.52949/80</cta0>). A partir de 2025, les données sont collectées par signalement effectué par les établissements et par une veille systématique du ministère.",
"other.policy.open-science-document.label.not_yet": "Pas encore,<br/>mais nous y travaillons",
"app.navigation.objet-recherche": "Navigation par objet de recherche",
"app.navigation.methodologies": "Navigation dans les méthodologies",
Expand Down
2 changes: 1 addition & 1 deletion src/utils/chartFetchOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,7 @@ export default function getFetchOptions({
{
range: {
study_completion_year: {
gte: yearMin,
gt: yearMin,
lte: yearMax,
},
},
Expand Down

0 comments on commit cf1d5fe

Please sign in to comment.