Website/old/stages/build-grants.js

65 lines
1.8 KiB
JavaScript

module.exports = plugin;
var formatAuthor = require("../lib/format-name.js");
function plugin() {
return function (files, smith, done){
var lab = smith.metadata().labMembers;
var grants = smith.metadata().okennedy.data.grants;
var grantsByYear = {}
for(i in grants){
var grant = grants[i]
if(!(grant.status == "accepted" || grant.status == "completed")){ continue; }
var year = grant.start.split(/\//)[1]
var pis = [ smith.metadata().okennedy.data.name ]
if(typeof grant.copis != 'undefined'){
pis = grant.copis.concat(pis)
}
// console.log(pis)
var piFormat = pis.map(formatAuthor(lab)).join(", ")
// console.log(grant.supports)
var supportsFormat = null;
if(typeof grant.supports != 'undefined'){
supportsFormat = grant.supports.map(formatAuthor(lab)).join(", ")
}
var amount = parseInt(grant.amount)
var resourcesFormat = ""
if(typeof grant.urls == 'object') {
var resources = []
for(cat in grant.urls){
resources.push("<a href="+grant.urls[cat]+">"+cat+"</a>");
}
resourcesFormat = resources.join("&nbsp;//&nbsp;");
}
if(typeof grantsByYear[year] == 'undefined') {
grantsByYear[year] = []
}
grantsByYear[year].push(
{
title: grant.title,
agency: grant.agency,
amount: amount,
pis: pis,
piFormat: piFormat,
supports: grant.supports,
supportsFormat: supportsFormat,
resources: grant.urls,
resourcesFormat: resourcesFormat
}
)
}
var out = []
for(i in grantsByYear) {
out.push({year: i, grants: grantsByYear[i]})
}
// console.log(out)
smith.metadata()["allGrants"] = out.reverse()
done()
}
}