diff --git a/db/cv/okennedy.json b/db/cv/okennedy.json index c93d4c17..bb0926c0 100644 --- a/db/cv/okennedy.json +++ b/db/cv/okennedy.json @@ -239,7 +239,7 @@ "service" : { "general" : [ { "description" : "WebDB Session Chair", "years" : [ 2013 ] }, - { "description" : "NSF Panel Member", "years" : [ 2014, 2015, 2016, 2018, 2020 ] }, + { "description" : "NSF Panel Member", "years" : [ 2014, 2015, 2016, 2018, 2020, 2021 ] }, { "description" : "SIGMOD Reproducability Committee", "years" : [ 2015, 2016, 2017 ] } ], "dept" : [ diff --git a/db/cv/okennedy/grants.json b/db/cv/okennedy/grants.json index 795d0c4e..025f9fcc 100644 --- a/db/cv/okennedy/grants.json +++ b/db/cv/okennedy/grants.json @@ -1,4 +1,30 @@ [ + { "title" : "HDR Institute: Institute for data enabled functional soft material innovation", + "agency" : "NSF: HDR", + "role" : "Co-PI", + "amount" : 1700000, + "effort" : "??", + "status" : "submitted", + "start" : "08/01/2021", "end" : "09/30/2026", + "type" : "grant", + "commitment" : { + "summer" : 0.5, + "by_year" : { + "2021" : "xxx" + } + }, + "projects" : ["vizier", "mimir", "jitds"], + "copis" : [ + "Olga Wodo", + "Jaroslaw Zola" + ], + "collaborative" : [ + { "institution" : "Illinois Inst. Tech.", + "pis" : ["Boris Glavic"], + "amount" : 466569 + } + ] + }, { "title" : "SCC-CIVIC-PG Track B: Food System Research, Education, Action, and Policy for Resilience (REAP Resilience)", "agency" : "NSF: CIVIC", "role" : "Co-PI", @@ -8,6 +34,7 @@ "start" : "11/01/2020", "end" : "02/28/2021", "type" : "grant", "commitment" : { }, + "agency_id" : "CNS-2043891", "projects" : ["vizier"], "copis" : [ "Samina Raja", @@ -206,7 +233,7 @@ "status" : "rejected", "start" : "01/2019", "end" : "12/2021", "type" : "grant", - "projects" : ["vizier"], + "projects" : ["jitds"], "supports" : ["Darshana Balakrishnan"], "commitment" : { "summer" : 0.75 }, "feedback" : "2x VG, 1x VG/G, 1x G, Panel: Low Competitive", @@ -250,7 +277,15 @@ "start" : "01/2018", "end" : "01/2023", "type" : "grant", "projects" : ["mimir"], - "commitment" : { "summer" : "0,0,¾,1½,1½" }, + "commitment" : { + "summer" : "0,0,¾,1½,1½", + "by_year" : { + "2020" : 0.75, + "2021" : 1.5, + "2022" : 1.25, + "2023" : 1.25 + } + }, "supports": ["Poonam Kumari"], "agency_id" : "IIS-1750460", "urls" : { @@ -319,11 +354,18 @@ "amount" : 2725699, "effort" : "33%", "status" : "accepted", - "start" : "01/2017", "end" : "12/2019", + "start" : "01/2017", "end" : "06/2021", "type" : "grant", "projects" : ["mimir", "vizier"], "copis" : ["Boris Glavic", "Juliana Freire"], - "commitment" : { "summer" : 1 }, + "commitment" : { + "summer" : 0.6, + "by_year" : { + "2017" : 1, + "2019" : 0.75, + "2020" : 1.25 + } + }, "agency_id" : "ACI-1640864", "urls" : { "whitepaper" : "https://odin.cse.buffalo.edu/grants/2016-NSF-Vizier-Whitepaper.pdf", @@ -373,7 +415,12 @@ "copis" : ["Lukasz Ziarek", "Geoffrey Challen"], "agency_id" : "CNS-1629791", "projects" : ["pocketdata"], - "commitment" : { "summer" : 0.25 }, + "commitment" : { + "summer" : 0.25, + "by_year" : { + "2017" : 0.25 + } + }, "urls" : { "proposal" : "https://odin.cse.buffalo.edu/grants/2016-NSF-PocketData.pdf" }, @@ -408,7 +455,14 @@ "projects" : ["astral"], "agency_id" : "IIS-1617586", "supports" : [ "Saurav Singhi", "Hank Lin", "Darshana Balakrishnan" ], - "commitment" : { "summer" : "0.75, 1.25, 1" }, + "commitment" : { + "summer" : "0.75, 1.25, 1", + "by_year" : { + "2017" : 0.75, + "2018" : 1, + "2019" : 1.25 + } + }, "urls" : { "abstract" : "https://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Abstract.txt", "proposal" : "https://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Full.pdf" @@ -546,7 +600,14 @@ "proposal" : "https://odin.cse.buffalo.edu/grants/2014-NSF-SatC-InsiderThreats-Full.pdf" }, "supports" : [ "Ting Xie", "Gökhan Kul", "Duc Thanh Luong" ], - "commitment" : { "summer" : "1, 2, 0, 1" } + "commitment" : { + "summer" : "1, 2, 0, 1", + "by_year" : { + "2015" : 1, + "2016" : 2, + "2018" : 1 + } + } }, { "title" : "Intuitive Data Interpretation", "agency" : "Oracle University Relations", diff --git a/db/people.json b/db/people.json index 04fdf1f1..7c6fa542 100644 --- a/db/people.json +++ b/db/people.json @@ -1,4 +1,24 @@ { + "Jaroslaw Zola" : { + "institution" : "University at Buffalo", + "updated" : "2021" + }, + "Olga Wodo" : { + "institution" : "University at Buffalo", + "updated" : "2021" + }, + "Samina Raja" : { + "institution" : "University at Buffalo", + "updated" : "2021" + }, + "Srirangaraj Setlur" : { + "institution" : "University at Buffalo", + "updated" : "2021" + }, + "Ying Lu" : { + "institution" : "Oracle, Inc.", + "updated" : "2021" + }, "Fatemeh Nargesian" : { "institution" : "University of Rochester", "updated" : "2020" diff --git a/lib/nsfcp.rb b/lib/nsfcp.rb index af2b525a..aa31e7f5 100644 --- a/lib/nsfcp.rb +++ b/lib/nsfcp.rb @@ -1,6 +1,7 @@ require "prawn" require "prawn/measurement_extensions" require "util.rb" +require "text.rb" class NSFCnP @@box_heights = [ 8.66.in, 7.085.in, 5.52.in, 3.97.in, 2.42.in ] @@ -49,7 +50,8 @@ class NSFCnP puts " * #{record.fetch(:title)} ($#{record.fetch(:amount).to_s}#{status})" puts " #{record.fetch(:start)} -- #{record.fetch(:end)}; Calendar: #{NSFCnP::commitment_string(record, :calendar)} mo, School: #{NSFCnP::commitment_string(record, :schoolyear)} mo, Summer: #{NSFCnP::commitment_string(record, :summer)} mo" - puts " Submitted to #{record.fetch(:agency)}" + puts(" Submitted to #{record.fetch(:agency)}"+(if record.include? :agency_id then " (#{record.fetch(:agency_id)})" else "" end)) + end end @@ -107,7 +109,7 @@ class NSFCnP ######## Amount ######## bounding_box([1.5.in, 0.6.in], width: 1.4.in, height: 0.19.in) do stroke_bounds if @@debug - text record.fetch(:amount).to_s + text TextUtils.format_money(record.fetch(:amount), currency: "") end ######## Period ######## diff --git a/lib/text.rb b/lib/text.rb index f96351a9..8b007b01 100644 --- a/lib/text.rb +++ b/lib/text.rb @@ -107,7 +107,7 @@ module Text end end - def format_money(k) + def format_money(k, kvargs = {}) if k.is_a? String return k elsif k.is_a? Numeric @@ -117,7 +117,7 @@ module Text rest, curr = rest.divmod(1000) ret = sprintf(rest > 0 ? "%03d" : "%d", curr)+","+ret end - return "$#{ret}" + return "#{kvargs.fetch(:currency, "$")}#{ret}" else raise "Invalid Currency Value: #{k}" end