From 7e4b83f646d851a6b79494f603d3772536088e11 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Fri, 2 May 2025 10:04:54 +0000 Subject: [PATCH] update sharepoint automation script --- etl/osmosis_data/asset_list.xlsx | Bin 22573 -> 11718 bytes ...osmosis_monday_to_sharepoint_automation.py | 41 ++++++++++-------- etl/scraper/scraper.py | 3 +- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/etl/osmosis_data/asset_list.xlsx b/etl/osmosis_data/asset_list.xlsx index 965de921bacdb372bf04ccc09def9b1b72fc1851..d891cb51fa1b88279d37a20c0d2be33a60a3be4f 100644 GIT binary patch delta 7328 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 diff --git a/etl/osmosis_monday_to_sharepoint_automation.py b/etl/osmosis_monday_to_sharepoint_automation.py index 58c094d..313bccf 100644 --- a/etl/osmosis_monday_to_sharepoint_automation.py +++ b/etl/osmosis_monday_to_sharepoint_automation.py @@ -7,46 +7,49 @@ os.environ["SHAREPOINT_TENANT_ID"] = "10d5af8b-2cfd-4882-9ccd-b96e4812dacf" from etl.scraper.scraper import SharePointInstaller from etl.scraper.scraper import SharePointScraper import pandas as pd +from tqdm import tqdm -osmosis = SharePointScraper(SharePointInstaller.OSMOSIS) -parent_folder = "Automated Example" -osmosis.create_dir(parent_folder, "/JTK Test Folder") +osmosis = SharePointScraper(SharePointInstaller.OSMOSIS_WAVE_2) -asset_list = pd.read_excel("osmosis_data/asset_list.xlsx", sheet_name="2502 accent housing") + +parent_folder = "/Osmosis ACD/Osmosis ACD Projects/Stonewater/Stonewater Property ID Folders/12. Decent Homes" + +asset_list = pd.read_excel("osmosis_data/asset_list.xlsx", sheet_name="Sheet1") new_asset_list = [] -parent_folder = "JTK Test Folder/Automated Example" # Create asset list and location -for index, address in asset_list.iterrows(): - webUrl = osmosis.create_dir(address['Name'], parent_folder) +for index, address in tqdm(asset_list.iterrows()): + folder_name = address['Name'] + " " + address['Postcode'] + webUrl = osmosis.create_dir(folder_name, parent_folder) first_folder = "1. Retrofit Assessment" - osmosis.create_dir(first_folder, parent_folder + f"/{address['Name']}") - osmosis.create_dir("A. Assessment", parent_folder + f"/{address['Name']}/{first_folder}") - osmosis.create_dir("B. Air Tightness Tests", parent_folder + f"/{address['Name']}/{first_folder}") + osmosis.create_dir(first_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("A. Assessment", parent_folder + f"/{folder_name}/{first_folder}") + osmosis.create_dir("B. Air Tightness Tests", parent_folder + f"/{folder_name}/{first_folder}") second_folder = "2. RC Mid-Term Plan" - osmosis.create_dir(second_folder, parent_folder + f"/{address['Name']}") - osmosis.create_dir("SAP", parent_folder + f"/{address['Name']}/{second_folder}") + osmosis.create_dir(second_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("SAP", parent_folder + f"/{folder_name}/{second_folder}") third_folder = "3. Retrofit Design" - osmosis.create_dir(third_folder, parent_folder + f"/{address['Name']}") + osmosis.create_dir(third_folder, parent_folder + f"/{folder_name}") fourth_folder = "4. Post EPC" - osmosis.create_dir(fourth_folder, parent_folder + f"/{address['Name']}") - osmosis.create_dir(f"{address['Name']} - POST EPC Photos", parent_folder + f"/{address['Name']}/{fourth_folder}") + osmosis.create_dir(fourth_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir(f"{address['Name']} - POST EPC Photos", parent_folder + f"/{folder_name}/{fourth_folder}") fifth_folder = "5. Trustmark Lodgement" - osmosis.create_dir(fifth_folder, parent_folder + f"/{address['Name']}") - osmosis.create_dir("1. Works", parent_folder + f"/{address['Name']}/{fifth_folder}") + osmosis.create_dir(fifth_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("1. Works", parent_folder + f"/{folder_name}/{fifth_folder}") - osmosis.create_dir("2. Required Documents", parent_folder + f"/{address['Name']}/{fifth_folder}") - osmosis.create_dir("3. Additional Documents", parent_folder + f"/{address['Name']}/{fifth_folder}") + osmosis.create_dir("2. Required Documents", parent_folder + f"/{folder_name}/{fifth_folder}") + osmosis.create_dir("3. Additional Documents", parent_folder + f"/{folder_name}/{fifth_folder}") asset_data = { "Name": address['Name'], + "Postcode": address['Postcode'], "Sharepoint": webUrl, } diff --git a/etl/scraper/scraper.py b/etl/scraper/scraper.py index a379894..ffe1075 100644 --- a/etl/scraper/scraper.py +++ b/etl/scraper/scraper.py @@ -26,7 +26,8 @@ class SharePointInstaller(Enum): SGEC = os.getenv("SGEC_SERVICE_SHAREPOINT_ID", None) BAXTER_KELLY = os.getenv("BAXTER_KELLY_SERVICE_SHAREPOINT_ID", "6f930bf3-572d-4f91-b1ae-ec536fa319e2") DOMNA = os.getenv("DOMNA_SHAREPOINT_ID", "8ab64924-ccde-4b56-b0dc-4e11596446e4") - OSMOSIS = os.getenv("OSMOSIS_SHAREPOINT_ID", "350a3b48-8311-4506-8abb-69bafc280d6f") + OSMOSIS_WAVE_3 = os.getenv("OSMOSIS_SHAREPOINT_ID", "350a3b48-8311-4506-8abb-69bafc280d6f") + OSMOSIS_WAVE_2 = os.getenv("OSMOSIS_SHAREPOINT_ID", "bc925a9a-ad0b-4de9-9a3c-e61014cc7489") WARMFRONT = os.getenv("WARMFRONT_SHARPOINT_ID", "bea71c30-d366-454c-a484-ae4d6fd95bc4") class SharePointScraper():