From 6d3df90b29d4368e2d5d882f89f0937475245f60 Mon Sep 17 00:00:00 2001 From: awkawb Date: Fri, 26 Apr 2024 14:48:23 -0400 Subject: [PATCH] ADDED views for /accounts/users routes, ADDED started a template for user dashboard route, UPDATED account/views package imports for new users view --- accounts/templates/users/dashboard/base.html | 19 +++++++++ .../users/dashboard/user_details_table.html | 15 +++++++ .../users/dashboard/user_history_table.html | 4 ++ accounts/views/__init__.py | 1 + accounts/views/users.py | 42 +++++++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 accounts/templates/users/dashboard/base.html create mode 100644 accounts/templates/users/dashboard/user_details_table.html create mode 100644 accounts/templates/users/dashboard/user_history_table.html create mode 100644 accounts/views/users.py diff --git a/accounts/templates/users/dashboard/base.html b/accounts/templates/users/dashboard/base.html new file mode 100644 index 0000000..073b796 --- /dev/null +++ b/accounts/templates/users/dashboard/base.html @@ -0,0 +1,19 @@ +{% extends 'base.html' %} + +{% set title %}{{ user.username }} - Dashboard{% endset %} + +{% block content %} +

Account Overview

+ +
+ + +

User Details

+{% include 'users/dashboard/user_details_table.html' %} + +
+ +

Booking History

+{% include 'users/dashboard/user_history_table.html' %} +{% endblock %} + diff --git a/accounts/templates/users/dashboard/user_details_table.html b/accounts/templates/users/dashboard/user_details_table.html new file mode 100644 index 0000000..f1428a1 --- /dev/null +++ b/accounts/templates/users/dashboard/user_details_table.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + +
Username:{{ user.username }}
Email Address:{{ user.email }}
Dogs:{{ user_dogs }}
+ diff --git a/accounts/templates/users/dashboard/user_history_table.html b/accounts/templates/users/dashboard/user_history_table.html new file mode 100644 index 0000000..569f041 --- /dev/null +++ b/accounts/templates/users/dashboard/user_history_table.html @@ -0,0 +1,4 @@ + +{{ user_book_history }} +
+ diff --git a/accounts/views/__init__.py b/accounts/views/__init__.py index 6ba3881..1ebe8b2 100644 --- a/accounts/views/__init__.py +++ b/accounts/views/__init__.py @@ -1,3 +1,4 @@ from accounts.views import login from accounts.views import register +from accounts.views import users diff --git a/accounts/views/users.py b/accounts/views/users.py new file mode 100644 index 0000000..930e680 --- /dev/null +++ b/accounts/views/users.py @@ -0,0 +1,42 @@ +# Library imports +from flask import jsonify +from flask import render_template + +# Import accounts blueprint +from accounts import accounts + +# Import db +from accounts.models import db + +# Import db models +from accounts.models.dog import Dog +from accounts.models.user import User +from accounts.models.visit import Visit + +@accounts.route('/users//dashboard', methods=['GET']) +def user_dashboard(username): + # Retrieve user data + user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one() + + # Gather names of dogs for this client + dogs = list() + for dog in user.dogs: + dogs.append(dog.name) + + return render_template('users/dashboard/base.html', user=user, user_dogs=dogs, user_book_history=user.get_bookings()) + +@accounts.route('/users/', methods=['POST']) +def user(username): + user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one() + return jsonify(user.to_dict()), 201 + +@accounts.route('/users//pets', methods=['POST']) +def user_pets(username): + user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one() + + dogs = list() + for dog in user.dogs: + dogs.append(dog.name) + + return jsonify(dogs), 201 +