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 +