Skip to content
Snippets Groups Projects
Commit 9100b262 authored by mrschnei's avatar mrschnei
Browse files
parents 8a024c92 a13a88a5
No related branches found
No related tags found
No related merge requests found
<!DOCTYPE html>
<html>
<body>
<p>
Your submission has been sent to {{leader}}
</p>
<form action="/accounts/confirmSubmission/" method="post" enctype="multipart/form-data">
<input type="submit" name="return" value="Return to Homepage"/>
</form>
</body>
</html>
\ No newline at end of file
...@@ -7,14 +7,9 @@ ...@@ -7,14 +7,9 @@
<body> <body>
<h1> <h1>
<a href="/">/ </a> <a href="/">Back to Homepage</a>
|
<a href="/u/{{username}}/">{{username}}</a>
</h1> </h1>
<p>{{username}}</p> <p>{{username}}</p>
<p>
{{username}}
</p>
<form action="/accounts/delete/" method="post" enctype="multipart/form-data"> <form action="/accounts/delete/" method="post" enctype="multipart/form-data">
<input type="submit" name="delete" value="confirm delete account"/> <input type="submit" name="delete" value="confirm delete account"/>
</form> </form>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<a href="/accounts/tutorsu/"> <a href="/accounts/tutorsu/">
<img src=/images/tutor.png alt="tutorsu"> <img src=/images/tutor.png alt="tutorsu">
</a> </a>
<a href="/accounts/mask/"> <a href="/accounts/submitPoints/">
<img src=/images/submit.png alt="mask"> <img src=/images/submit.png alt="mask">
</a> </a>
......
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/css/style.css">
<h1 style="text-align:center">Submit Points</h1>
<p>{{username}}</p>
<p>{{org}}</p>
<p>Hours: {{hours}}</p>
<a href="/accounts/index/">Back to Homepage</a>
</head>
<form action="/accounts/submitPoints/" method="post" enctype="multipart/form-data">
<p>
<label for="service">Select the type of service:</label>
<select name="service" id="service">
<option value="mask">Mask-Making</option>
<option value="blood">Donating Blood</option>
<option value="tutor">Tutoring</option>
<option value="food">Donating Food</option>
</select>
</p>
<p>
Photo for proof of service
<input type="file" name="file">
</p>
<p>
<input type="submit" name="update" value="submit" />
</p>
</form>
</html>
\ No newline at end of file
...@@ -2,6 +2,8 @@ import hashlib ...@@ -2,6 +2,8 @@ import hashlib
import uuid import uuid
import os import os
import flask import flask
import shutil
import tempfile
from flask import render_template from flask import render_template
import servicePoints import servicePoints
APP = flask.Flask(__name__) APP = flask.Flask(__name__)
...@@ -68,10 +70,14 @@ def create(): ...@@ -68,10 +70,14 @@ def create():
if cursor.fetchone() is None: if cursor.fetchone() is None:
return flask.redirect(flask.url_for('orgNotFound')) return flask.redirect(flask.url_for('orgNotFound'))
# If a user tries to create an account with an empty string as the if len(str(flask.request.form['password'])) is 0 or len(str(flask.request.form['fullname'])) is 0:
# password, abort(400) return flask.redirect(flask.url_for('incompleteForm', prev="create"))
if password == '':
flask.abort(400) if len(str(flask.request.form['orgName'])) is 0 or len(str(flask.request.form['email'])) is 0:
return flask.redirect(flask.url_for('incompleteForm', prev="create"))
if len(str(flask.request.form['username'])) is 0:
return flask.redirect(flask.url_for('incompleteForm', prev="create"))
flask.session['username'] = flask.request.form['username'] flask.session['username'] = flask.request.form['username']
flask.session['fullname'] = flask.request.form['fullname'] flask.session['fullname'] = flask.request.form['fullname']
...@@ -284,4 +290,79 @@ def tutorsu(): ...@@ -284,4 +290,79 @@ def tutorsu():
return flask.redirect(flask.url_for('index')) return flask.redirect(flask.url_for('index'))
context = {} context = {}
return render_template('tutor.html', **context) return render_template('tutor.html', **context)
\ No newline at end of file
@servicePoints.app.route('/accounts/submitPoints/', methods=['GET', 'POST'])
def submitPoints():
if flask.request.method == 'POST':
dummy, temp_filename = tempfile.mkstemp()
file = flask.request.files["file"]
serviceType = flask.request.form["service"]
file.save(temp_filename)
# Compute filename
hash_txt = sha256sum(temp_filename)
dummy, suffix = os.path.splitext(file.filename)
hash_filename_basename = hash_txt + suffix
hash_filename = os.path.join(
servicePoints.app.config["IMAGES_FOLDER"],
hash_filename_basename
)
# Move temp file to permanent location
shutil.move(temp_filename, hash_filename)
cursor = servicePoints.model.get_db()
username = flask.session["username"]
studentOrgCur = cursor.execute('SELECT orgName FROM users WHERE '
'username =:who',
{"who": username})
results = studentOrgCur.fetchone()
orgName = results["orgName"]
studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE '
'orgName =:who',
{"who": orgName})
results = studentOrgLeader.fetchone()
leader = results["username"]
cursor.execute('INSERT INTO requests(member, leader, service, filename) VALUES '
'(:one,:two,:three,:four)', {"one": username, "two": leader, "three": serviceType, "four": hash_filename_basename})
return flask.redirect(flask.url_for('confirmSubmission'))
username = flask.session["username"]
cursor = servicePoints.model.get_db()
studentOrgCur = cursor.execute('SELECT orgName, hours FROM users WHERE '
'username =:who',
{"who": username})
results = studentOrgCur.fetchone()
context = {'username': username, 'org': results["orgName"], 'hours': results["hours"]}
return render_template('submitPoints.html', **context)
@servicePoints.app.route('/accounts/confirmSubmission/', methods=['GET', 'POST'])
def confirmSubmission():
if flask.request.method == 'POST':
return flask.redirect(flask.url_for('index'))
username = flask.session["username"]
cursor = servicePoints.model.get_db()
studentOrgCur = cursor.execute('SELECT orgName FROM users WHERE '
'username =:who',
{"who": username})
results = studentOrgCur.fetchone()
orgName = results["orgName"]
studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE '
'orgName =:who',
{"who": orgName})
results = studentOrgLeader.fetchone()
leader = results["username"]
studentOrgLeaderFull = cursor.execute('SELECT fullname FROM users WHERE '
'username =:who',
{"who": leader})
results = studentOrgLeaderFull.fetchone()
context = {"leader": results["fullname"]}
return render_template('confirmSubmission.html', **context)
def sha256sum(filename):
"""Return sha256 hash of file content, similar to UNIX sha256sum."""
content = open(filename, 'rb').read()
sha256_obj = hashlib.sha256(content)
return sha256_obj.hexdigest()
...@@ -16,10 +16,20 @@ CREATE TABLE orgs( ...@@ -16,10 +16,20 @@ CREATE TABLE orgs(
PRIMARY KEY(orgName) PRIMARY KEY(orgName)
); );
<<<<<<< HEAD
CREATE TABLE tutors( CREATE TABLE tutors(
username VARCHAR(20) NOT NULL, username VARCHAR(20) NOT NULL,
subject VARCHAR(40) NOT NULL, subject VARCHAR(40) NOT NULL,
time VARCHAR(80) NOT NULL, time VARCHAR(80) NOT NULL,
PRIMARY KEY(username) PRIMARY KEY(username)
=======
CREATE TABLE requests(
postid INTEGER NOT NULL,
member VARCHAR(20) NOT NULL,
leader VARCHAR(40) NOT NULL,
service VARCHAR(40) NOT NULL,
filename VARCHAR(64) NOT NULL,
PRIMARY KEY(postid)
>>>>>>> a13a88a5b357d5ce4091c99247484845da5be53e
); );
\ No newline at end of file
var/images/c0cf17efda2368530bb66b4e2fb68456865edbbdaa67c99783de324711384437.jpg

7.63 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment