]> git.cworth.org Git - turbot/blobdiff - turbot/sheets.py
Implement a dialog box to edit a puzzle
[turbot] / turbot / sheets.py
index fbe9e3d7839d2e52a64d43f471a444efa1869fe3..bc7c7c68ceb777a2e0cd86b366264ae1e47da3ae 100644 (file)
@@ -39,14 +39,18 @@ def sheets_create_for_puzzle(turb, puzzle):
     new_sheet = sheets_create(turb, puzzle['name'])
 
     # Insert some useful links into the sheet
+    url_link=''
     if 'url' in puzzle:
         url_text = "Original puzzle is at: {}".format(puzzle['url'])
+        url_link = puzzle['url']
     else:
         url_text = ''
 
+    channel_url_link = ''
     if 'channel_url' in puzzle:
         channel_url_text = "Discussion for this puzzle is at: {}".format(
             puzzle['channel_url'])
+        channel_url_link = puzzle['channel_url']
     else:
         channel_url_text = ''
 
@@ -57,7 +61,10 @@ def sheets_create_for_puzzle(turb, puzzle):
         insertDataOption='INSERT_ROWS',
         body={
             'range': 'A1:A2',
-            'values': [[url_text], [channel_url_text]]
+            'values': [
+                ['=HYPERLINK("'+url_link+'","'+url_text+'")'],
+                ['=HYPERLINK("'+channel_url_link+'","'+channel_url_text+'")']
+            ]
         }).execute()
 
     # Copy some sheets from the Template spreadsheet
@@ -74,3 +81,30 @@ def sheets_create_for_puzzle(turb, puzzle):
                                         }).execute()
 
     return new_sheet
+
+def renameSheet(turb, url, newName):
+    id = extractIdFromSheetUrl(url)
+    requests = []
+    requests.append({
+        'updateSpreadsheetProperties': {
+            'properties': {
+                'title': newName
+            },
+            'fields': 'title'
+        }
+    })
+
+    body = {
+        'requests': requests
+    }
+
+    turb.sheets.batchUpdate(spreadsheetId = id,
+                            body=body
+                            ).execute()
+
+def extractIdFromSheetUrl(url):
+    # Google sheet ids are between the /d/ and /edit in the url, like
+    # https://docs.google.com/spreadsheets/d/1dxHBzjen...-LaXeVPrg/edit#gid=0
+    startIndex = url.find('/d/') + 3
+    endIndex = url.find('/edit')
+    return url[startIndex : endIndex]