Add addFundingStreamInDefaultMSCA in migration script.

This commit is contained in:
Konstantinos Triantafyllou 2023-05-30 16:26:45 +03:00
parent e363a04f84
commit 31f758d534
1 changed files with 91 additions and 2 deletions

View File

@ -369,7 +369,7 @@ function statsProfileOfIndicatorsAsVariable() {
}
// save indicator
// db.indicator.save(indicator);
db.indicator.save(indicator);
}
print("\n");
print("numOfNumbers: "+numOfNumbers);
@ -383,6 +383,94 @@ function statsProfileOfIndicatorsAsVariable() {
}
}
function addFundingLevelInFilters(filter) {
if(filter.groupFilters && filter.groupFilters.length > 0) {
let index = filter.groupFilters.findIndex(filter => filter.field.includes('project'));
if(index !== -1) {
print('before: ' + JSON.stringify(filter));
let prefix = filter.groupFilters[index].field.substring(0, filter.groupFilters[index].field.indexOf('project'));
if(!filter.groupFilters.find(filter => filter.field === prefix + "project.funding level 1")) {
filter.groupFilters.push({
"field": prefix + "project.funding level 1",
"type": "contains",
"values": [
'((__index_shortName__))'
]
});
print('after: ' + JSON.stringify(filter));
} else {
print('Already added');
}
}
return filter;
}
}
function addFundingStreamInDefaultMSCA() {
print("addFundingStreamInDefaultMSCA")
let stakeholder = db.stakeholder.findOne({"alias": "default-funding-stream"});
if(stakeholder) {
stakeholder.topics.forEach((topic) => {
let topicObj = db.topic.findOne({"_id": ObjectId(topic)});
topicObj.categories.forEach((category) => {
let categoryObj = db.category.findOne({"_id": ObjectId(category)});
categoryObj.subCategories.forEach((subCategory) => {
let subCategoryObj = db.subCategory.findOne({"_id": ObjectId(subCategory)});
subCategoryObj.numbers.forEach((number) => {
let section = db.section.findOne({"_id": ObjectId(number)});
section.indicators.forEach((indicator) => {
let indicatorObject = db.indicator.findOne({"_id": ObjectId(indicator)});
if(indicatorObject.indicatorPaths[0].parameters) {
indicatorObject.indicatorPaths[0].parameters['index_shortName'] = stakeholder.index_shortName.toLowerCase();
if(indicatorObject.indicatorPaths[0] && indicatorObject.indicatorPaths[0].chartObject) {
let json = JSON.parse(indicatorObject.indicatorPaths[0].chartObject);
if(json.series && json.series.length > 0) {
json.series.forEach(query => {
if(query.query && query.query.filters && query.query.filters.length > 0) {
query.query.filters.forEach(filter => {
filter = addFundingLevelInFilters(filter);
});
}
});
indicatorObject.indicatorPaths[0].chartObject = JSON.stringify(json);
db.indicator.save(indicatorObject);
}
}
}
});
});
subCategoryObj.charts.forEach((chart) => {
let section = db.section.findOne({"_id": ObjectId(chart)});
section.indicators.forEach((indicator) => {
let indicatorObject = db.indicator.findOne({"_id": ObjectId(indicator)});
if(indicatorObject.indicatorPaths[0] && indicatorObject.indicatorPaths[0].chartObject) {
let json = JSON.parse(indicatorObject.indicatorPaths[0].chartObject);
if(json.chartDescription && json.chartDescription.queries && json.chartDescription.queries.length > 0) {
json.chartDescription.queries.forEach(query => {
if(query.query && query.query.filters && query.query.filters.length > 0) {
query.query.filters.forEach(filter => {
filter = addFundingLevelInFilters(filter);
})
}
});
indicatorObject.indicatorPaths[0].chartObject = JSON.stringify(json);
db.indicator.save(indicatorObject);
}
}
});
});
});
});
});
} else {
print("Profile doesn't exist")
}
}
use monitordb;
// use 1_openaire-mongodb-beta; // dev db
@ -409,4 +497,5 @@ use monitordb;
// addFooterHelpTextForPortalType("organization");
// 11-04-2023
statsProfileOfIndicatorsAsVariable();
statsProfileOfIndicatorsAsVariable();
addFundingStreamInDefaultMSCA();