diff --git a/seed_database.py b/seed_database.py index 3ce171aab1f30229344ce10018e9eb136d23edc5..4547c07fa371ca535714747ea5cd3d2564ed418c 100644 --- a/seed_database.py +++ b/seed_database.py @@ -2,6 +2,7 @@ ### LOAD PROVIDED DATA ### import csv from datetime import datetime +from store.models import * items = [] # A list of items, where each item is a list that contains an id, description, price, and date sold. with open('example_data/Online Store Project Items for Sale.csv', newline='') as csvfile: @@ -76,4 +77,16 @@ with app.app_context(): flask_item_sets[index].items.append(flask_item) db.session.add(flask_item) + # Create an admin user + password_hash1 = generate_password_hash("admin") + Admin_user = User( + username="admin", + email="admin@admin.com", + phone_number="1234567890", + password_hash = password_hash1, # + securityQ1="red", + userType="admin", + ) + db.session.add(Admin_user) + db.session.commit() # Apply changes diff --git a/store/models.py b/store/models.py index 80e89cfa9c49e6db5316083262cf9b96606db83b..025907a5b5746d3ba4a2309e6c7052c6551f8dc8 100644 --- a/store/models.py +++ b/store/models.py @@ -140,6 +140,13 @@ class Adresses( db.Model): country = db.Column(db.String(256), nullable=False) homeNumber = db.Column(db.String(256), nullable=False, unique=True) streetName = db.Column(db.String(256), nullable=False) - town = db.Column(db.String(30), nullable=False) + city = db.Column(db.String(30), nullable=False) phoneNumber = db.Column(db.String(30), nullable=False) contactEmail = db.Column(db.String(50), nullable=False) + + @classmethod + def create_Adresses(cls, user_id: int, country: str, homeNumber: str , streetName: str, city : str,phoneNumber : str, contactEmail : str ) : + adresses = cls(user_id=user_id, country= country, homeNumber=homeNumber, streetName=streetName, city = city, phoneNumber=phoneNumber, contactEmail = contactEmail) + db.session.add(adresses) + db.session.commit() + return adresses \ No newline at end of file diff --git a/store/routes.py b/store/routes.py index 6e06fdd049cb5311cd4c5b23de3fc83efd9a68d4..8949f975096dbce268eff163f0813ae18880e4a0 100644 --- a/store/routes.py +++ b/store/routes.py @@ -1,7 +1,6 @@ from store import app, db from flask import render_template, request, flash, redirect, url_for, Flask, session from store.utility import * -import requests # Official flask-login doc free liecense # https://flask-login.readthedocs.io/en/latest/ @@ -259,7 +258,7 @@ def standardUser(): return render_template('userContent/user.html') -@app.route("/admin") +@app.route("/admin/") @login_required def admin(): if current_user.userType != 'admin': @@ -320,7 +319,6 @@ def ChangeEmail(): @app.route("/ChangePhNumber/", methods=['GET', 'POST']) @login_required def ChangePhNumber(): - if request.method == 'POST': user_id = current_user.user_id password = request.form['password'] @@ -339,3 +337,23 @@ def ChangePhNumber(): flash('Wrong password.') return render_template('userContent/ChangePhNumber.html') + + +@app.route("/addAdress", methods=['GET', 'POST']) +@login_required +def addAdress(): + if request.method == 'POST': + user_id = current_user.user_id + country = request.form['country'] + homeNumber = request.form['homeNumber'] + streetName = request.form['streetName'] + city = request.form['city'] + phoneNumber = request.form['phoneNumber'] + contactEmail = request.form['contactEmail'] + + #user = User.query.get(user_id) + + newAdress = Adresses.create_Adresses(user_id = user_id, country = country, homeNumber = homeNumber , streetName = streetName, city = city,phoneNumber = phoneNumber, contactEmail = contactEmail ) + flash('Your address has been added!') + return redirect(url_for('addAdress')) + return render_template('userContent/address.html') diff --git a/store/templates/userContent/address.html b/store/templates/userContent/address.html new file mode 100644 index 0000000000000000000000000000000000000000..542a90495a38726e21cafe4bfe44a20800784c1d --- /dev/null +++ b/store/templates/userContent/address.html @@ -0,0 +1,37 @@ + + +{%extends 'base.html' %} +{% block content %} + {% block title %} Add shipping address | Antiques Online {% endblock %} + + +<form method="POST" action="{{ url_for('addAdress') }}" style="float: center; text-align: center;"> + + <div class="container"> + <h1>Add shipping address</h1> + + <label for="country"><b>Enter country</b></label> + <input type="country" placeholder="Enter country" value= "United Kingdom" name="country" id="country" required> + + <label for="homeNumber"><b>Enter home Number</b></label> + <input type="homeNumber" placeholder="Enter home Number" name="homeNumber" id="homeNumber" required> + + <label for="streetName"><b>Enter street name</b></label> + <input type="streetName" placeholder="Enter street name" name="streetName" id="streetName" required> + + <label for="city"><b>Enter town or city </b></label> + <input type="city" placeholder="Enter town or city" name="city" id="city" required> + + <label for="phoneNumber"><b>Enter phone number </b></label> + <input type="phoneNumber" placeholder="Enter phone number" value= "{{current_user.phone_number}}" name="phoneNumber" id="phoneNumber" required> + + <label for="contactEmail"><b>Enter contact e-mail </b></label> + <input type="contactEmail" placeholder="Enter contact e-mail " value= "{{current_user.email}}" name="contactEmail" id="contactEmail" required> + + + <input class="button" type="submit" value="submit" > + + </div> + + </form> +{% endblock %} \ No newline at end of file diff --git a/store/templates/userContent/admin.html b/store/templates/userContent/admin.html index 02d4df714c32970c36c0da5aa8929fce26e51ef4..771dbcb0bd0650bb0c355ef301d884b826e704db 100644 --- a/store/templates/userContent/admin.html +++ b/store/templates/userContent/admin.html @@ -4,7 +4,7 @@ {% block title %} Account{% endblock %} <h1>Admin usertype account Information</h1> <ul> - <li><a href="{{ url_for('accountDetails', user_id=current_user.id)}}">View my Account details</a></li> - <li><a href="{{ url_for('#', user_id=current_user.id)}}">Add items</a></li> + <li><a href="{{ url_for('accountDetails')}}">View my Account details</a></li> + </ul> {% endblock %} \ No newline at end of file diff --git a/store/templates/userContent/user.html b/store/templates/userContent/user.html index d0bdc290b3775eea3d827b09d6837cec1d219b22..c4bf183b1831e148004d5f3724cd2f685fe44bfa 100644 --- a/store/templates/userContent/user.html +++ b/store/templates/userContent/user.html @@ -4,6 +4,7 @@ {% block title %} Account{% endblock %} <h1>Standard usertype account Information</h1> <ul> - <li><a href="{{ url_for('accountDetails', user_id=current_user.id)}}">View my Account details</a></li> + <li><a href="{{ url_for('accountDetails', user_id=current_user.id)}}">View my Account details</a></li> + <li><a href="{{ url_for('addAdress', user_id=current_user.id)}}">Add shipping address</a></li> </ul> {% endblock %}