Add addFundingStreamInDefaultMSCA in migration script.
This commit is contained in:
parent
e363a04f84
commit
31f758d534
93
update_db.js
93
update_db.js
|
@ -369,7 +369,7 @@ function statsProfileOfIndicatorsAsVariable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// save indicator
|
// save indicator
|
||||||
// db.indicator.save(indicator);
|
db.indicator.save(indicator);
|
||||||
}
|
}
|
||||||
print("\n");
|
print("\n");
|
||||||
print("numOfNumbers: "+numOfNumbers);
|
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 monitordb;
|
||||||
// use 1_openaire-mongodb-beta; // dev db
|
// use 1_openaire-mongodb-beta; // dev db
|
||||||
|
|
||||||
|
@ -409,4 +497,5 @@ use monitordb;
|
||||||
// addFooterHelpTextForPortalType("organization");
|
// addFooterHelpTextForPortalType("organization");
|
||||||
|
|
||||||
// 11-04-2023
|
// 11-04-2023
|
||||||
statsProfileOfIndicatorsAsVariable();
|
statsProfileOfIndicatorsAsVariable();
|
||||||
|
addFundingStreamInDefaultMSCA();
|
||||||
|
|
Loading…
Reference in New Issue