From 53a1f201f89eaab1a9955afd5eacfa9b2178b129 Mon Sep 17 00:00:00 2001 From: raphael Date: Fri, 10 Apr 2020 09:53:25 +0000 Subject: [PATCH] adds template structure --- app.py | 45 +++++++++++++++++++++++++++-------------- template/account.html | 8 ++++++++ template/calendar.html | 35 ++++++++++++++++++++++++++++++++ template/login.html | 46 ++++++++++++++++++++++++++++++++++++++++++ template/sidebar.html | 31 ++++++++++++++++++++++++++++ 5 files changed, 150 insertions(+), 15 deletions(-) create mode 100644 template/account.html create mode 100644 template/calendar.html create mode 100644 template/login.html create mode 100644 template/sidebar.html diff --git a/app.py b/app.py index 1e7bb89..cb8eafb 100644 --- a/app.py +++ b/app.py @@ -42,7 +42,9 @@ GOOGLE_DISCOVERY_URL = ( "https://accounts.google.com/.well-known/openid-configuration" ) # Flask app setup -app = Flask(__name__) +app = Flask(__name__, + static_folder='static', + template_folder='template') app.secret_key = os.environ.get("SECRET_KEY") or os.urandom(24) # User session management setup @@ -66,27 +68,43 @@ def load_user(user_id): return User.get(user_id) @app.route("/") +def account(): + return flask.redirect('account') + +@app.route("/account") def index(): if current_user.is_authenticated: - return ( - "

Hello, {}! You're logged in! Email: {}

" - "

Google Profile Picture:

" - 'Google profile pic
' - 'Logout' - 'test API'.format( - current_user.name, current_user.email, current_user.profile_pic + return (flask.render_template('account.html', + username = current_user.name, email = current_user.email, profile_img=current_user.profile_pic ) ) else: - return 'Google Login' + return flask.render_template('login.html') def get_google_provider_cfg(): return requests.get(GOOGLE_DISCOVERY_URL).json() +class Calendar: + def __init__(self, name, color): + self.name = name + self.color = color + +@app.route("/calendar") +def calendar(): + ca1 = Calendar("Hightower", "#30ff30") + ca2 = Calendar("Toast", "#66e230") + calendars = [ca1, ca2] + return flask.render_template('calendar.html', calendars=calendars) + + + + + + @app.route('/test') def test_api_request(): if 'credentials' not in flask.session: - return flask.redirect('login') + return flask.redirect('login/google') # Load credentials from the session. credentials = google.oauth2.credentials.Credentials( @@ -102,7 +120,7 @@ def test_api_request(): return flask.jsonify(todaysCal) -@app.route("/login") +@app.route("/login/google") def login(): ''' @@ -140,12 +158,9 @@ def login(): # Store the state so the callback can verify the auth server response. flask.session['state'] = state - print("auth_url: " + authorization_url) - print("state: " + state) - return flask.redirect(authorization_url) -@app.route("/login/callback") +@app.route("/login/google/callback") def callback(): # Specify the state when creating the flow in the callback so that it can # verified in the authorization server response. diff --git a/template/account.html b/template/account.html new file mode 100644 index 0000000..4266499 --- /dev/null +++ b/template/account.html @@ -0,0 +1,8 @@ +{% extends "sidebar.html" %} +{% block body%} +

Hello, {{ username }}! You're logged in! Email: {{email}}

+

Google Profile Picture:

+Google profile pic
+Logout +test API +{% endblock %} \ No newline at end of file diff --git a/template/calendar.html b/template/calendar.html new file mode 100644 index 0000000..d0de596 --- /dev/null +++ b/template/calendar.html @@ -0,0 +1,35 @@ +{% extends "sidebar.html" %} +{% block body%} +
+
Calendar
+
Show on device
+
Color
+
+ +
+ {% for item in calendars %} +
{{ item.name }}
+ +
+ + +
+ +
+
+ + +
+ +
+ + {% endfor %} + +
+{% endblock %} \ No newline at end of file diff --git a/template/login.html b/template/login.html new file mode 100644 index 0000000..44c2f07 --- /dev/null +++ b/template/login.html @@ -0,0 +1,46 @@ + + + + + + + + + Index + + + +

Login Page

+ + +
+ + + + +
+ + + + + + + + + diff --git a/template/sidebar.html b/template/sidebar.html new file mode 100644 index 0000000..e2791ec --- /dev/null +++ b/template/sidebar.html @@ -0,0 +1,31 @@ + + + + + + + + + Index + + + + +
+ View + Calendar + Account + Devices +
+ + +
+ + {% block body %} + // content here + {% endblock %} + +
+ + +