From 5e6a688be9e7bb598513aebfc73acafa69a98c2a Mon Sep 17 00:00:00 2001
From: Robert Metcalf <metcalfr@cardiff.ac.uk>
Date: Fri, 26 Nov 2021 10:13:56 +0000
Subject: [PATCH] change import database tool to import from JSON

---
 import_database.py | 43 +++++++++++++++++++++++++++++--------------
 workspaces.json    | 13 +++++++++++++
 2 files changed, 42 insertions(+), 14 deletions(-)
 create mode 100644 workspaces.json

diff --git a/import_database.py b/import_database.py
index 0bdd5d3..e5a0e23 100644
--- a/import_database.py
+++ b/import_database.py
@@ -1,17 +1,32 @@
 import database
+import os
+import json
 
-workspace = database.Workspace(
-	"CodeBase",
-	"CodeBase Edinburgh, 37a Castle Terrace, Edinburgh, EH1 2EL",
-	"https://images.squarespace-cdn.com/content/v1/55439320e4b0f92b5d6c4c8b/1505921023376-PAHUDHVOOKIYF4XQPHOO/5951229048_3e3d50fcb1_o.jpg?format=750w",
-	["https://images.squarespace-cdn.com/content/v1/55439320e4b0f92b5d6c4c8b/1636387943314-W9JWMS6ZX4DEZSPUV7T0/Copy+of+Unfiltered_square+%281%29.png?format=500w"],
-	"We've been exploring the world of startups...",
-	"https://www.thisiscodebase.com",
-	"hannah@thisiscodebase.com",
-	"+44 131 560 2003",
-	"Monday - Friday, 9am - 5pm",
-	"Tramsched members should contact Hannah using the email address listed."
-)
+def import_workspace(data):
+	workspace = database.Workspace(
+		data["name"],
+		data["address"],
+		data["main_photo"],
+		data["additional_photos"],
+		data["description"],
+		data["website"],
+		data["email"],
+		data["phone_number"],
+		data["opening_hours"],
+		data["checkin_instructions"]
+	)
 
-database.set_address_latlong(workspace.address, (55.9471623, -3.203928))
-print(database.add_workspace(workspace))
+	latlong = data["latlong"]
+	if latlong != None:
+		database.set_address_latlong(workspace.address, (latlong[0], latlong[1]))
+
+	database.add_workspace(workspace)
+
+file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "workspaces.json")
+
+with open(file, "r", encoding="utf8") as stream:
+	data = json.load(stream)
+	for workspace in data:
+		import_workspace(workspace)
+
+	print(f"Imported {len(data)} workspace(s)")
diff --git a/workspaces.json b/workspaces.json
new file mode 100644
index 0000000..2d7bd8d
--- /dev/null
+++ b/workspaces.json
@@ -0,0 +1,13 @@
+[{
+	"name": "CodeBase",
+	"address": "CodeBase Edinburgh, 37a Castle Terrace, Edinburgh, EH1 2EL",
+	"main_photo": "https://images.squarespace-cdn.com/content/v1/55439320e4b0f92b5d6c4c8b/1505921023376-PAHUDHVOOKIYF4XQPHOO/5951229048_3e3d50fcb1_o.jpg?format=750w",
+	"additional_photos": ["https://images.squarespace-cdn.com/content/v1/55439320e4b0f92b5d6c4c8b/1636387943314-W9JWMS6ZX4DEZSPUV7T0/Copy+of+Unfiltered_square+%281%29.png?format=500w"],
+	"description": "We've been exploring the world of startups...",
+	"website": "https://www.thisiscodebase.com",
+	"email": "hannah@thisiscodebase.com",
+	"phone_number": "+44 131 560 2003",
+	"opening_hours": "Monday - Friday, 9am - 5pm",
+	"checkin_instructions": "Tramsched members should contact Hannah using the email address listed.",
+	"latlong": [55.9471623, -3.203928]
+}]
\ No newline at end of file
-- 
GitLab