Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • c22064609/tramshed-tech-client-project-team-15
1 result
Show changes
Commits on Source (25)
......@@ -7,108 +7,142 @@ DATABASE = "project_db.db"
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
#Error handling for common database connection.
#Parameter optional. Defaults to DATABASE.
def connect_db(db_file=DATABASE):
conn = None
try:
conn = sqlite3.connect(db_file)
except:
print("Error connecting to database.")
return conn
@app.route("/", methods=['GET'])
def returnTemplate():
return render_template("test.html")
def returnIndex():
if (request.method == 'GET'):
return render_template("test.html")
@app.route("/SearchRecord", methods=['POST'])
@app.route("/Manage_Coworking_Spaces", methods=['GET'])
def returnManageCoworkingSpaces():
if (request.method == 'GET'):
return render_template("Manage_Coworking_Spaces.html")
@app.route("/SearchRecord", methods=['POST', 'GET'])
def searchRecord():
if request.method =='POST':
if (request.method =='POST'):
recordName = request.form.get('recordName', default="Error")
print(f"Searching for '{recordName}' in the database.")
try:
recordName = request.form.get('recordName', default="Error")
conn = sqlite3.connect(DATABASE)
conn = connect_db()
cur = conn.cursor()
cur.execute("SELECT * FROM coworking_spaces WHERE Name=?;", [recordName])
recordData = cur.fetchall()
except:
print(f"Error: {recordData}")
conn.close()
print(f"Encountered an error whilst searching for record.")
finally:
conn.close()
print(f"{str(recordData)} Record found.")
return str(recordData)
# Adds a record to the CSV file.
@app.route("/AddRecord", methods=['POST'])
def addRecord():
if not recordData: #If recordData is an empty list...
print(f"'{recordName}' not found.")
return (f"'{recordName}' not found.")
print('Processing record.')
infoMessage = ('Add record failed.')
else:
print(f"Found: {recordData}")
return (recordData)
@app.route('/AddRecord', methods=['POST'])
def addRecord():
if (request.method == 'POST'):
recordName = request.form['recordName']
recordAddress = request.form['recordAddress']
recordMainPhotos = request.form['recordMainPhotos']
recordAdditionalPhotos = request.form['recordAdditionalPhotos']
recordDescription = request.form['recordDescription']
recordWebsite = request.form['recordWebsite']
recordEmail = request.form['recordEmail']
recordPhoneNumber = request.form['recordPhoneNumber']
recordOpeningHours = request.form['recordOpeningHours']
recordCheckinInstructions = request.form['recordCheckinInstructions']
recordName = request.form.get('recordName', default="Error")
recordAddress = request.form.get('recordAddress', default="Error")
recordMainPhotos = request.form.get('recordMainPhotos', default="Error")
recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error")
recordDescription = request.form.get('recordDescription', default="Error")
recordWebsite = request.form.get('recordWebsite', default="Error")
recordEmail = request.form.get('recordEmail', default="Error")
recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error")
recordOpeningHours = request.form.get('recordOpeningHours', default="Error")
recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error")
recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions]
print(f"Adding '{recordName}' to the database.")
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\
VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions))
conn.commit()
conn.close()
try:
conn = connect_db()
cur = conn.cursor()
cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\
VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions))
conn.commit()
infoMessage = (f"Added: {recordData}")
infoMessage = (f'{recordData} Record added.')
except:
conn.rollback()
infoMessage = (f"Error adding record.")
print(infoMessage)
return (infoMessage)
finally:
conn.close()
print(infoMessage)
return (infoMessage)
@app.route("/DeleteRecord", methods=['POST'])
@app.route('/DeleteRecord', methods=['POST'])
def deleteRecord():
if request.method =='POST':
if (request.method =='POST'):
recordName = request.form.get('recordName', default="Error")
print(f"Deleting '{recordName}' from the database.")
try:
recordName = request.form.get('recordName', default="Error")
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("DELETE FROM coworking_spaces WHERE Name=?;", [recordName])
conn.commit()
infoMessage = (f"Deleted: '{recordName}'.")
except:
print(f"Error: {recordData}")
conn.close()
conn.rollback()
infoMessage = (f"Error deleting record.")
finally:
conn.close()
print("Record deleted.")
return ("Record deleted.")
@app.route("/EditRecord", methods=['POST'])
def editRecord():
print(infoMessage)
return (infoMessage)
print('Processing record.')
infoMessage = ('Add record failed.')
@app.route('/UpdateRecord', methods=['POST'])
def updateRecord():
if (request.method == 'POST'):
recordName = request.form['recordName']
recordAddress = request.form['recordAddress']
recordMainPhotos = request.form['recordMainPhotos']
recordAdditionalPhotos = request.form['recordAdditionalPhotos']
recordDescription = request.form['recordDescription']
recordWebsite = request.form['recordWebsite']
recordEmail = request.form['recordEmail']
recordPhoneNumber = request.form['recordPhoneNumber']
recordOpeningHours = request.form['recordOpeningHours']
recordCheckinInstructions = request.form['recordCheckinInstructions']
recordName = request.form.get('recordName', default="Error")
recordAddress = request.form.get('recordAddress', default="Error")
recordMainPhotos = request.form.get('recordMainPhotos', default="Error")
recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error")
recordDescription = request.form.get('recordDescription', default="Error")
recordWebsite = request.form.get('recordWebsite', default="Error")
recordEmail = request.form.get('recordEmail', default="Error")
recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error")
recordOpeningHours = request.form.get('recordOpeningHours', default="Error")
recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error")
recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions]
print(f"Updating '{recordName}' in the database.")
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName])
conn.commit()
conn.close()
try:
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName])
conn.commit()
infoMessage = (f"Updated: '{recordName}'.")
infoMessage = (f'{recordData} Record amended.')
except:
conn.rollback()
infoMessage = (f"Error updating record.")
print(infoMessage)
return (infoMessage)
finally:
conn.close()
print(infoMessage)
return (infoMessage)
if __name__ == "__main__":
app.run(debug=True)
......@@ -19,6 +19,11 @@ overflow, float, display
body {
margin: 0;
padding: 0;
/* Below styling used for footer position. */
display: flex;
min-height: 100vh;
flex-direction: column;
}
ul, li {
......@@ -48,6 +53,7 @@ a {
header #pageHeader
div #headerDiv
a #headerText #headerImg
nav #headerNav .navBar
ul .Right, ul .Left
li a
......@@ -71,11 +77,11 @@ header #pageHeader
#headerText {
width: 100%;
margin-left: -220px;
margin-left: -240px;
}
#headerImg {
width: 180px;
width: 200px;
height: 65px;
margin-top: -10px;
margin-right: 20px;
......@@ -93,11 +99,6 @@ header #pageHeader
padding: 7.5px 10px;
}
#headerNav img {
width: 55px;
height: 20px;
}
/* [#2] Page navigation styling. Used in [#1] and [#4]. */
.navBar {
......@@ -130,7 +131,10 @@ main #pageMain
*/
#pageMain {}
#pageMain {
/* Below styling used for footer position. */
flex: 1;
}
#recordForm {
margin-left: 5px;
......
......@@ -22,4 +22,8 @@ body{
font-family: 'Sora', sans-serif;
background-color: #212529;
color: white;
<<<<<<< HEAD
}
=======
}
>>>>>>> 9c7255d510762a8f16afeba2657cad4a0f8b8239
......@@ -52,6 +52,17 @@ function searchRecord(e) {
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
console.log(xhttp.responseText);
serverResponse = JSON.parse(xhttp.responseText);
document.getElementById("recordName").value = serverResponse[0][0];
document.getElementById("recordAddress").value = serverResponse[0][1];
document.getElementById("recordMainPhotos").value = serverResponse[0][2];
document.getElementById("recordAdditionalPhotos").value = serverResponse[0][3];
document.getElementById("recordDescription").value = serverResponse[0][4];
document.getElementById("recordWebsite").value = serverResponse[0][5];
document.getElementById("recordEmail").value = serverResponse[0][6];
document.getElementById("recordPhoneNumber").value = serverResponse[0][7];
document.getElementById("recordOpeningHours").value = serverResponse[0][8];
document.getElementById("recordCheckinInstructions").value = serverResponse[0][9];
document.getElementById("DEBUGserverMessage").innerHTML = xhttp.responseText;
} else {
console.error(`Status Text: ${xhttp.statusText}.`);
......@@ -61,7 +72,6 @@ function searchRecord(e) {
xhttp.send(params);
}
// Adds a record to the database.
function addRecord(e) {
// Removes the standard form processing.
......
<!DOCTYPE html>
<html lang="EN" dir="ltr">
<head>
<meta charSet="UTF-8">
<title> Manage Coworking Spaces </title>
<link rel="stylesheet" href="CSS/Manage_Coworking_Spaces.css">
</head>
<body onLoad="pageLoad()">
<header id="pageHeader" class="pageHeader">
<div id="headerDiv">
<a href="Manage_Coworking_Spaces.html">
<img id="headerImg" class="headerImg"
src="Media/Tramshed-Logo-Main-Black.png"></img></a>
<a id="headerText" class="headerText"
href="Manage_Coworking_Spaces.html">
Manage Coworking Spaces</a>
</div>
<nav id="headerNav" class="navBar">
<ul class="Left">
<li><a href="Manage_Coworking_Spaces.html">
<img id="navImg" class="navImg"
src="Media/Tramshed-Logo-Main-White.png"></img></a></li>
<li><a href="Manage_Coworking_Spaces.html">Home</a></li>
<li><a href="Manage_Coworking_Spaces.html">Locations</a></li>
</ul>
<ul class="Right">
<li><a href="Manage_Coworking_Spaces.html">Manage</a></li>
<li><a href="Manage_Coworking_Spaces.html">Login</a></li>
<li><div class="navHamburger">
<span></span>
<span></span>
<span></span>
</div></li>
</ul>
</nav>
</header>
<main id="pageMain">
<form id="recordForm" title="Record Form">
<label>Name: <input id="recordName" class="formTextInput"
name="record_name" type="text"></label><br>
<label>Address: <input id="recordAddress" class="formTextInput"
name="record_address" type="text"></label><br>
<label>Main Photograph: <input id="recordMainPhotos" class="formTextInput"
name="record_MP" type="text"></label><br>
<label>Additional Photographs: <input id="recordAdditionalPhotos" class="formTextInput"
name="record_AP" type="text"></label><br>
<label>Description: <input id="recordDescription" class="formTextInput"
name="record_description" type="text"></label><br>
<label>Website: <input id="recordWebsite" class="formTextInput"
name="record_website" type="text"></label><br>
<label>Email: <input id="recordEmail" class="formTextInput"
name="record_email" type="text"></label><br>
<label>Phone Number: <input id="recordPhoneNumber" class="formTextInput"
name="record_PN" type="text"></label><br>
<label>Opening Hours: <input id="recordOpeningHours" class="formTextInput"
name="record_OH" type="text"></label><br>
<label>Checkin Instructions: <input id="recordCheckinInstructions" class="formTextInput"
name="record_CI" type="text"></label>
<br><br>
<button id="searchButton" type="submit">Search</button>
<button id="addButton" type="submit">Add</button>
<button id="editButton" type="submit">Edit</button>
<button id="deleteButton" type="submit">Delete</button>
</form>
<br>
<span id="DEBUGserverMessage"> </span>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
</main>
<footer id="pageFooter">
<nav id="footerNav" class="navBar">
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Left</a></li>
</ul>
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Center</a></li>
</ul>
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Right</a></li>
</ul>
</nav>
</footer>
<script src="JS/Manage_Coworking_Spaces.js"></script>
</body>
</html>
......@@ -12,7 +12,7 @@
<a class="nav-link" href="locations.html">Coworking locations</a>
</li>
<li class="nav-item">
<a class="nav-link" href="Manage_Coworking_Spaces.html">Manage locations</a>
<a class="nav-link" href="/Manage_Coworking_Spaces">Manage locations</a>
</li>
</ul>
</div>
......@@ -31,7 +31,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="landingstyle.css">
<link rel="stylesheet" href="CSS/landingstyle.css">
<title>Tramshed Tech</title>
<img id="tramshed" src="Media/tramshed.jpg">
<div class="bg-dark p-3">
......
......@@ -25,13 +25,21 @@
<form>
<!-- Email input -->
<div class="form-outline mb-4">
<<<<<<< HEAD
<input type="email" id="recordEmail" class="form-control" />
=======
<input type="email" id="form2Example1" class="form-control" />
>>>>>>> 9c7255d510762a8f16afeba2657cad4a0f8b8239
<label class="form-label" for="form2Example1">Email address</label>
</div>
<!-- Password input -->
<div class="form-outline mb-4">
<<<<<<< HEAD
<input type="password" id="recordPassword" class="form-control" />
=======
<input type="password" id="form2Example2" class="form-control" />
>>>>>>> 9c7255d510762a8f16afeba2657cad4a0f8b8239
<label class="form-label" for="form2Example2">Password</label>
</div>
......@@ -60,4 +68,8 @@
<p>Not a member? <a href="#!">Register</a></p>
</form>
</body>
<<<<<<< HEAD
</html>
=======
</html>
>>>>>>> 9c7255d510762a8f16afeba2657cad4a0f8b8239
{%extends "base_template.html"%}
{%block headblock%}
<title> Manage Coworking Spaces </title>
{%endblock%}
{%block headerblock%}
<a id="headerText"
href="Manage_Coworking_Spaces">
Manage Coworking Spaces</a>
{%endblock%}
{%block mainblock%}
<form id="recordForm" title="Record Form">
<label>Name: <input id="recordName" class="formTextInput"
name="record_name" type="text"></label>
<button id="searchButton" type="submit">Search</button><br>
<label>Address: <input id="recordAddress" class="formTextInput"
name="record_address" type="text"></label><br>
<label>Main Photograph: <input id="recordMainPhotos" class="formTextInput"
name="record_MP" type="url"></label><br>
<label>Additional Photographs: <input id="recordAdditionalPhotos" class="formTextInput"
name="record_AP" type="url"></label><br>
<label>Description: <input id="recordDescription" class="formTextInput"
name="record_description" type="text"></label><br>
<label>Website: <input id="recordWebsite" class="formTextInput"
name="record_website" type="url"></label><br>
<label>Email: <input id="recordEmail" class="formTextInput"
name="record_email" type="email"></label><br>
<label>Phone Number: <input id="recordPhoneNumber" class="formTextInput"
name="record_PN" type="text"></label><br>
<label>Opening Hours: <input id="recordOpeningHours" class="formTextInput"
name="record_OH" type="text"></label><br>
<label>Checkin Instructions: <input id="recordCheckinInstructions" class="formTextInput"
name="record_CI" type="text"></label>
<br><br>
<button id="addButton" type="submit">Add</button>
<button id="editButton" type="submit">Edit</button>
<button id="deleteButton" type="submit">Delete</button>
<button id="clearButton" type="reset">Clear</button>
</form>
<br>
<span id="DEBUGserverMessage"> </span>
{%endblock%}
{%block jsblock%}
/static/JS/Manage_Coworking_Spaces.js
{%endblock%}
......@@ -2,9 +2,9 @@
<html lang="EN" dir="ltr">
<head>
<meta charSet="UTF-8">
<title> Manage Coworking Spaces </title>
{%block headblock%}
{%endblock%}
<link rel="stylesheet" href="/static/CSS/Manage_Coworking_Spaces.css">
</head>
<body onLoad="pageLoad()">
......@@ -12,22 +12,18 @@
<div id="headerDiv">
<a href="Manage_Coworking_Spaces.html">
<img id="headerImg" class="headerImg"
src="Media/Tramshed-Logo-Main-Black.png"></img></a>
<a id="headerText" class="headerText"
href="Manage_Coworking_Spaces.html">
Manage Coworking Spaces</a>
src="/static/Media/Tramshed-Logo-Main-Black.png"></img></a>
{%block headerblock%}
{%endblock%}
</div>
<nav id="headerNav" class="navBar">
<ul class="Left">
<li><a href="Manage_Coworking_Spaces.html">
<img id="navImg" class="navImg"
src="Media/Tramshed-Logo-Main-White.png"></img></a></li>
<li><a href="Manage_Coworking_Spaces.html">Home</a></li>
<li><a href="Manage_Coworking_Spaces.html">Locations</a></li>
<li><a href="/static/landingpage.html">Home</a></li>
<li><a href="/static/locations.html">Locations</a></li>
</ul>
<ul class="Right">
<li><a href="Manage_Coworking_Spaces.html">Manage</a></li>
<li><a href="Manage_Coworking_Spaces.html">Login</a></li>
<li><a href="Manage_Coworking_Spaces">Manage</a></li>
<li><a href="/static/login.html">Login</a></li>
<li><div class="navHamburger">
<span></span>
<span></span>
......@@ -38,7 +34,6 @@
</header>
<main id="pageMain">
<br><br>
{%block mainblock%}
{%endblock%}
</main>
......@@ -46,17 +41,17 @@
<footer id="pageFooter">
<nav id="footerNav" class="navBar">
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Left</a></li>
<li><a href="Manage_Coworking_Spaces">Left</a></li>
</ul>
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Center</a></li>
<li><a href="Manage_Coworking_Spaces">Center</a></li>
</ul>
<ul class="Center">
<li><a href="Manage_Coworking_Spaces.html">Right</a></li>
<li><a href="Manage_Coworking_Spaces">Right</a></li>
</ul>
</nav>
</footer>
<script src="/static/JS/Manage_Coworking_Spaces.js"></script>
<script src="{%block jsblock%}{%endblock%}"></script>
</body>
</html>
import os
import sqlite3
from flask import Flask, redirect, request, render_template, jsonify
app = Flask(__name__)
DATABASE = "login.db"
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
@app.route("/SearchRecord", methods=['POST'])
def searchRecord():
if request.method =='POST':
try:
recordEmail = request.form.get('recordEmail', default="Error")
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("SELECT * FROM login WHERE Email=?;", [recordEmail])
recordData = cur.fetchall()
except:
print(f"Error: {recordData}")
conn.close()
finally:
conn.close()
print(f"{str(recordData)} Record found.")
return str(recordData)
@app.route("/AddRecord", methods=['POST'])
def addRecord():
if (request.method == 'POST'):
recordEmail = request.form['recordEmail']
recordPassword = request.form['recordPassword']
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("INSERT INTO login ('Email', 'Password')\
VALUES (?,?)", (recordEmail, recordPassword))
conn.commit()
conn.close()
infoMessage = (f'{recordData} Record added.')
print(infoMessage)
return (infoMessage)
if __name__ == "__main__":
app.run(debug=True)
\ No newline at end of file