From 540aa16daeafa62f8e7deaf52341d944ed2a1172 Mon Sep 17 00:00:00 2001 From: Michael Anderson Date: Sun, 27 Mar 2022 22:31:29 -0400 Subject: [PATCH] Database Updating --- backend/AdminPortal/update.py | 42 ++++++++++++++++++++++++++++++++++ frontend/src/assets/logo.png | Bin 26516 -> 0 bytes 2 files changed, 42 insertions(+) create mode 100644 backend/AdminPortal/update.py delete mode 100644 frontend/src/assets/logo.png diff --git a/backend/AdminPortal/update.py b/backend/AdminPortal/update.py new file mode 100644 index 00000000..f632a59d --- /dev/null +++ b/backend/AdminPortal/update.py @@ -0,0 +1,42 @@ +import boto3 +import json +import os +import decimal +from datetime import datetime + +session = boto3.Session(region_name='us-east-1', profile_name='auto') +db = session.resource('dynamodb') + +tab = db.Table('course_database').scan() + +for i in tab['Items']: + for j in i: + if(type(i[j]) == decimal.Decimal): + i[j] = int(i[j]) + +courses = [] +for x in range(len(tab['Items'])): + outerFields = dict() + outerFields["info"] = datetime.now().strftime("%d/%m/%Y %H:%M:%S") + outerFields["pk"] = tab['Items'][x]['pk'] + outerFields["model"] = "database.course" + innerFields = dict() + innerFields["prefix"] = tab['Items'][x]['prefix'] + innerFields["ID"] = tab['Items'][x]['ID'] + innerFields["name"] = tab['Items'][x]['name'] + innerFields["description"] = tab['Items'][x]['description'] + innerFields["HI"] = tab['Items'][x]['HI'] + innerFields["CI"] = tab['Items'][x]['CI'] + innerFields["DI"] = tab['Items'][x]['DI'] + innerFields["major_restrictive"] = tab['Items'][x]['major_restrictive'] + innerFields["fall"] = tab['Items'][x]['fall'] + innerFields["spring"] = tab['Items'][x]['spring'] + innerFields["summer"] = tab['Items'][x]['summer'] + outerFields["fields"] = innerFields + courses.append(outerFields) + +print(courses) +courseDataFile = open("courses.json", 'w') +courseDataFile.truncate() +courseDataFile.write(json.dumps(courses, sort_keys=True, indent=4)) +courseDataFile.close() diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png deleted file mode 100644 index 5c6843730bb2a93b854fd4c0d1b00bd2ca30777c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26516 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 Lrc!~z{lNbMq1fm<