]> git.cworth.org Git - turbot/blobdiff - turbot/sheets.py
Copy template sheets to newly-created spreadsheets
[turbot] / turbot / sheets.py
index 50c472271da8c32dc2c48b664c338ec1b4f2b2f6..81dfec977fd22050eb84b15b57ae56fd46e5b740 100644 (file)
@@ -5,8 +5,8 @@ import os
 
 from googleapiclient.discovery import build
 
-# If modifying these scopes, delete the file token.pickle.
-SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
+TEMPLATE_SHEET_ID = "1drSoyrE4gM3JaGweDkOybwXWdKPIDTfUmB1gQCYS3Uw"
+TEMPLATE_SHEET_SHEETS = ["Text", "Grid"]
 
 turbot_deploy_dir = os.environ.get('TURBOT_DEPLOY_DIR', '.')
 TOKEN_FILE = "{}/.gsheets-token.pickle".format(turbot_deploy_dir)
@@ -33,11 +33,30 @@ def sheets_create(name):
         return None
 
     service = build('sheets', 'v4', credentials=creds)
+    sheets = service.spreadsheets()
 
-    # Create a new sheet
-    spreadsheet_body = {}
+    # Create a new spreadsheet
+    spreadsheet_body = {
+        'properties': {
+            'title': name
+        }
+    }
 
-    request = service.spreadsheets().create(body=spreadsheet_body)
-    response = request.execute()
+    new_sheet = sheets.create(body=spreadsheet_body).execute()
+    spreadsheet_url = new_sheet["spreadsheetUrl"]
+    spreadsheet_id = new_sheet["spreadsheetId"]
 
-    return response["spreadsheetUrl"]
+    # Copy some sheets from the Template spreadsheet
+
+    response = sheets.get(spreadsheetId=TEMPLATE_SHEET_ID).execute()
+
+    for sheet in response["sheets"]:
+        if sheet["properties"]["title"] in TEMPLATE_SHEET_SHEETS:
+            sheets.sheets().copyTo(spreadsheetId=TEMPLATE_SHEET_ID,
+                                   sheetId=sheet["properties"]["sheetId"],
+                                   body={
+                                       "destinationSpreadsheetId":
+                                       spreadsheet_id
+                                   }).execute()
+
+    return spreadsheet_url