Add addFundingStreamInDefaultMSCA in migration script.
This commit is contained in:
parent
e363a04f84
commit
31f758d534
91
update_db.js
91
update_db.js
|
@ -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
|
||||
|
||||
|
@ -410,3 +498,4 @@ use monitordb;
|
|||
|
||||
// 11-04-2023
|
||||
statsProfileOfIndicatorsAsVariable();
|
||||
addFundingStreamInDefaultMSCA();
|
||||
|
|
Loading…
Reference in New Issue