From 8c3bbfa4804a0ae2c11af531849d23d31576294c Mon Sep 17 00:00:00 2001
From: Remco Tukker <remco.tukker@geant.org>
Date: Tue, 25 Apr 2023 11:56:48 +0200
Subject: [PATCH 1/2] fix parsing of income sources from excel for 2016 and
 2017

---
 .../background_task/parse_excel_data.py       | 60 ++++++++++++-------
 1 file changed, 40 insertions(+), 20 deletions(-)

diff --git a/compendium_v2/background_task/parse_excel_data.py b/compendium_v2/background_task/parse_excel_data.py
index 4148c91e..c02cde43 100644
--- a/compendium_v2/background_task/parse_excel_data.py
+++ b/compendium_v2/background_task/parse_excel_data.py
@@ -66,29 +66,49 @@ def fetch_funding_excel_data():
             return float(0)
 
     # iterate over the rows in the worksheet
+    def create_points_for_year_until_2017(start_row, end_row, year, col_nren, col_start):
+        for row in range(start_row, end_row):
+            # extract the data from the row
+            nren = ws.cell(row=row, column=col_nren).value
+            client_institution = ws.cell(row=row, column=col_start).value
+            commercial = ws.cell(row=row, column=col_start + 1).value
+            geant_subsidy = ws.cell(row=row, column=col_start + 2).value
+            gov_public_bodies = ws.cell(row=row, column=col_start + 3).value
+            other_european_funding = ws.cell(row=row, column=col_start + 4).value
+            other = ws.cell(row=row, column=col_start + 5).value
+            print(nren, client_institution, commercial, geant_subsidy, gov_public_bodies, other_european_funding, other)
+
+            client_institution = hard_number_convert(client_institution, "client institution", nren, year)
+            commercial = hard_number_convert(commercial, "commercial", nren, year)
+            geant_subsidy = hard_number_convert(geant_subsidy, "geant subsidy", nren, year)
+            gov_public_bodies = hard_number_convert(gov_public_bodies, "gov/public_bodies", nren, year)
+            other_european_funding = hard_number_convert(other_european_funding, "other european funding", nren, year)
+            other = hard_number_convert(other, "other", nren, year)
+
+            european_funding = geant_subsidy + other_european_funding  # TODO check with Daniel
 
-    def create_points_for_year(start_row, end_row, year, col_start):
+            # process the data (e.g. save to database)
+            if nren is not None:
+                yield (nren.upper(), year, client_institution,
+                       european_funding,
+                       gov_public_bodies,
+                       commercial, other)
+
+    def create_points_for_year_from_2018(start_row, end_row, year, col_start):
         for row in range(start_row, end_row):
             # extract the data from the row
             nren = ws.cell(row=row, column=col_start).value
-            client_institution = ws.cell(row=row,
-                                         column=col_start + 3).value
+            client_institution = ws.cell(row=row, column=col_start + 3).value
             european_funding = ws.cell(row=row, column=col_start + 4).value
-            gov_public_bodies = ws.cell(row=row,
-                                        column=col_start + 5).value
+            gov_public_bodies = ws.cell(row=row, column=col_start + 5).value
             commercial = ws.cell(row=row, column=col_start + 6).value
             other = ws.cell(row=row, column=col_start + 7).value
 
-            client_institution = hard_number_convert(
-                client_institution, "client institution", nren, year)
-            european_funding = hard_number_convert(
-                european_funding, "european funding", nren, year)
-            gov_public_bodies = hard_number_convert(
-                gov_public_bodies, "gov/public_bodies", nren, year)
-            commercial = hard_number_convert(
-                commercial, "commercial", nren, year)
-            other = hard_number_convert(
-                other, "other", nren, year)
+            client_institution = hard_number_convert(client_institution, "client institution", nren, year)
+            european_funding = hard_number_convert(european_funding, "european funding", nren, year)
+            gov_public_bodies = hard_number_convert(gov_public_bodies, "gov/public_bodies", nren, year)
+            commercial = hard_number_convert(commercial, "commercial", nren, year)
+            other = hard_number_convert(other, "other", nren, year)
 
             # process the data (e.g. save to database)
             if nren is not None:
@@ -98,19 +118,19 @@ def fetch_funding_excel_data():
                        commercial, other)
 
     # For 2016
-    yield from create_points_for_year(8, 50, 2016, 43)
+    yield from create_points_for_year_until_2017(8, 50, 2016, 43, 45)
 
     # For 2017
-    yield from create_points_for_year(8, 50, 2017, 32)
+    yield from create_points_for_year_until_2017(8, 50, 2017, 32, 35)
 
     # For 2018
-    yield from create_points_for_year(8, 50, 2018, 21)
+    yield from create_points_for_year_from_2018(8, 50, 2018, 21)
 
     # For 2019
-    yield from create_points_for_year(8, 50, 2019, 12)
+    yield from create_points_for_year_from_2018(8, 50, 2019, 12)
 
     # For 2020
-    yield from create_points_for_year(8, 50, 2020, 3)
+    yield from create_points_for_year_from_2018(8, 50, 2020, 3)
 
 
 def fetch_charging_structure_excel_data():
-- 
GitLab


From 9a7228bb3c289445075717ec38e94a63876f927e Mon Sep 17 00:00:00 2001
From: Remco Tukker <remco.tukker@geant.org>
Date: Tue, 25 Apr 2023 14:23:16 +0200
Subject: [PATCH 2/2] remove TODO

---
 compendium_v2/background_task/parse_excel_data.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compendium_v2/background_task/parse_excel_data.py b/compendium_v2/background_task/parse_excel_data.py
index c02cde43..d599f477 100644
--- a/compendium_v2/background_task/parse_excel_data.py
+++ b/compendium_v2/background_task/parse_excel_data.py
@@ -85,7 +85,7 @@ def fetch_funding_excel_data():
             other_european_funding = hard_number_convert(other_european_funding, "other european funding", nren, year)
             other = hard_number_convert(other, "other", nren, year)
 
-            european_funding = geant_subsidy + other_european_funding  # TODO check with Daniel
+            european_funding = geant_subsidy + other_european_funding
 
             # process the data (e.g. save to database)
             if nren is not None:
-- 
GitLab