ADDED views for /accounts/users routes, ADDED started a template for user dashboard route, UPDATED account/views package imports for new users view

This commit is contained in:
Andrew Bryant 2024-04-26 14:48:23 -04:00
parent 7d5fc7428a
commit 6d3df90b29
5 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,19 @@
{% extends 'base.html' %}
{% set title %}{{ user.username }} - Dashboard{% endset %}
{% block content %}
<h1>Account Overview<h1>
<hr>
<h3>User Details</h3>
{% include 'users/dashboard/user_details_table.html' %}
<hr>
<h3>Booking History</h3>
{% include 'users/dashboard/user_history_table.html' %}
{% endblock %}

View File

@ -0,0 +1,15 @@
<table>
<tr>
<td>Username:</td>
<td>{{ user.username }}</td>
</tr>
<tr>
<td>Email Address:</td>
<td>{{ user.email }}</td>
</tr>
<tr>
<td>Dogs:</td>
<td>{{ user_dogs }}</td>
</tr>
</table>

View File

@ -0,0 +1,4 @@
<table>
{{ user_book_history }}
</table>

View File

@ -1,3 +1,4 @@
from accounts.views import login
from accounts.views import register
from accounts.views import users

42
accounts/views/users.py Normal file
View File

@ -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/<username>/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/<username>', 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/<username>/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