-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdata_manager.py
More file actions
40 lines (36 loc) · 1.2 KB
/
data_manager.py
File metadata and controls
40 lines (36 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from misc import default_data
from sqlalchemy.exc import OperationalError
from flask import redirect, url_for
from models import Data
from extensions import db
def get_data(homepage=False): # GET CONFIG DATA
def set_default():
update_data(default_data)
try:
data = Data.query.all()[0].json_column
if homepage:
title = data["website_configuration"]["homepage_title"]
subtitle = data["website_configuration"]["homepage_subtitle"]
return title, subtitle
else:
return data
except (KeyError, TypeError, OperationalError):
if homepage:
title = "A website."
subtitle = "A fully-fledged website."
return title, subtitle
else:
return {}
except (AttributeError, IndexError):
set_default()
if homepage:
get_data(homepage=True)
else:
get_data()
return redirect(url_for("home"))
def update_data(given_data):
new_data = Data(json_column=given_data)
if len(Data.query.all()) > 0 and Data.query.all()[0] is not None:
db.session.delete(Data.query.all()[0])
db.session.add(new_data)
db.session.commit()