Spaces:
Runtime error
Runtime error
from flask import Flask, render_template, request, redirect, url_for, session | |
from nltk.sentiment.vader import SentimentIntensityAnalyzer | |
import mysql.connector | |
import bcrypt | |
import datetime | |
import json | |
import smtplib | |
from email.message import EmailMessage | |
import secrets | |
import string | |
mysql = mysql.connector.connect( | |
host='sql12.freemysqlhosting.net', | |
user='sql12660485', | |
password='UxU15DlGpj', | |
database='sql12660485', | |
port=3306, | |
) | |
app = Flask(__name__) | |
app.static_folder = 'static' | |
app.static_url_path = '/static' | |
app.secret_key = "smilecheck-abhi-2023" | |
def index(): | |
return render_template("index.html") | |
def home(): | |
if request.method == 'GET': | |
if 'email' in session: | |
app.config['MYSQL_DB'] = 'sql12660485' | |
curh = mysql.cursor() | |
if session['usertype'] == 0: | |
curh.execute("SELECT `assessid`, `name` FROM assessments") | |
typedata = curh.fetchall() | |
converted_tuple = tuple({'assessid': item[0], 'name': item[1]} for item in typedata) | |
curh.execute("SELECT `id`, `type` FROM custom WHERE id=%s", (session['id'],)) | |
given = curh.fetchall() | |
isdone = [] | |
for give in given: | |
isdone.append(give[1]) | |
curh.execute("SELECT `name`, `happy`, `datetime` FROM `custom`, `assessments` WHERE custom.type = assessments.assessId AND id=%s", (session['id'],)) | |
previous = curh.fetchall() | |
preprocessed_data = [] | |
for index, row in enumerate(previous): | |
preprocessed_data.append({ | |
'index': index + 1, | |
'name': row[0], | |
'happy': row[1], | |
'datetime': row[2] | |
}) | |
return render_template("home.html", typedata=converted_tuple, given=isdone, previous=preprocessed_data ) | |
elif session['usertype'] == 1: | |
return redirect(url_for('admin')) | |
mysql.commit() | |
curh.close() | |
else: | |
return redirect(url_for('login')) | |
if request.method == 'POST': | |
if 'email' in session: | |
app.config['MYSQL_DB'] = 'sql12660485' | |
curh = mysql.cursor() | |
if 'fname' in request.form: | |
fname = request.form['fname'] | |
femail = request.form['femail'] | |
feedback = request.form['feedback'] | |
curh.execute("INSERT INTO `feedbacks`(`name`, `email`, `feedback`) VALUES (%s, %s, %s)", (fname, femail, feedback,)) | |
mysql.commit() | |
curh.close() | |
session['feed'] = 1 | |
return redirect(url_for('home')) | |
session['type'] = request.form['type'] | |
curh.execute("SELECT `id`, `type` FROM custom WHERE id=%s AND type=%s", (session['id'], session['type'],)) | |
given = curh.fetchone() | |
mysql.commit() | |
curh.close() | |
if given == None: | |
return redirect(url_for('form')) | |
else: | |
return redirect(url_for('result')) | |
else: | |
return redirect(url_for('login')) | |
return render_template("home.html") | |
def register(): | |
if request.method == 'GET': | |
return render_template("register.html", error_code=999, message_code=999) | |
if request.method == 'POST': | |
database = request.form['database'] | |
if database == 'database1': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
session['database'] = app.config['MYSQL_DB'] | |
elif database == 'database2': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
session['database'] = app.config['MYSQL_DB'] | |
name = request.form['name'] | |
email = request.form['email'] | |
cur = mysql.cursor() | |
cur.execute("SELECT * FROM users WHERE email = %s", (email,)) | |
user = cur.fetchone() | |
mysql.commit() | |
cur.close() | |
if user: | |
error = 'Email address already in use. Please use a different email address.' | |
return render_template('register.html', error=error, error_code=550, message_code=569) | |
else: | |
session['name'] = name | |
session['email'] = email | |
usertype = 'student' | |
session['pretype'] = usertype | |
password = request.form['password'].encode('utf-8') | |
hash_password = bcrypt.hashpw(password, bcrypt.gensalt()) | |
session['hash'] = hash_password | |
msg = EmailMessage() | |
alphabet = string.ascii_letters + string.digits | |
otp = 'smilecheck-user-'+''.join(secrets.choice(alphabet) for i in range(30)) | |
session['otp'] = otp | |
msg["Subject"] = "SmileCheck Verification" | |
msg["From"] = "smilecheck100@gmail.com" | |
msg["To"] = email | |
link = f"https://abhicodes-smilecheck.hf.space/verify/{otp}" | |
html_content = render_template('email.html', name=name, link=link) | |
msg.set_content(html_content, subtype='html') | |
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: | |
smtp.login('smilecheck23@gmail.com', 'dczcfrdkthwcfoqu') | |
smtp.send_message(msg) | |
return render_template('register.html', message='An Verification Email has been sent to your email address.', message_code=560, error_code=568) | |
def verify(otp): | |
if str(session['otp']) == otp: | |
app.config['MYSQL_DB'] = 'sql12660485' | |
cur = mysql.cursor() | |
cur.execute("INSERT INTO users (name, email, password) VALUES (%s,%s,%s)", (session['name'], session['email'], session['hash'],)) | |
if session['pretype'] == 'student': | |
cur.execute("UPDATE `users` SET `usertype` = %s WHERE `email`=%s", (0, session['email'],)) | |
session['usertype'] = 0 | |
elif session['pretype'] == 'admin': | |
cur.execute("UPDATE `users` SET `usertype` = %s WHERE `email`=%s", (1, session['email'],)) | |
session['usertype'] = 1 | |
mysql.commit() | |
cur.close() | |
session.clear() | |
redi = 'login' | |
return render_template('verify.html', message=111, redirect_url=redi) | |
else: | |
redi = 'register' | |
return render_template('verify.html', message=999, redirect_url=redi) | |
def login(): | |
if request.method == 'GET': | |
return render_template("login.html", error_code=999) | |
if request.method == 'POST': | |
now = datetime.datetime.now() | |
database = request.form['database'] | |
if database == 'database1': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
elif database == 'database2': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
email = request.form['email'] | |
password = request.form['password'].encode('utf-8') | |
curl = mysql.cursor() | |
curl.execute("SELECT * FROM users WHERE email=%s", (email,)) | |
user = curl.fetchone() | |
if user != None: | |
if bcrypt.hashpw(password, user[4].encode('utf-8')) == user[4].encode('utf-8'): | |
session['id'] = user[0] | |
session['name'] = user[2] | |
session['email'] = user[3] | |
session['database'] = 'test' | |
print(session) | |
curl.execute("INSERT INTO session (id, email, action, actionC, datetime) VALUES (%s, %s, %s, %s, %s)", (session['id'], session['email'], 'Logged In - Session Started', 1, now,)) | |
mysql.commit() | |
curl.close() | |
if user[1] == 0: | |
session['usertype'] = 0 | |
return redirect(url_for('home')) | |
elif user[1] == 1: | |
session['usertype'] = 1 | |
return redirect(url_for('admin')) | |
else: | |
return render_template("login.html", error="Error: Password or Email are incorrect.", error_code=451) | |
else: | |
return render_template("login.html", error="Error: User not found. Please register.", error_code=452) | |
mysql.commit() | |
curl.close() | |
else: | |
return render_template("login.html") | |
def forgot(): | |
if request.method == 'GET': | |
return render_template("forgot.html") | |
if request.method == 'POST': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
email = request.form['email'] | |
session['email'] = email | |
curl = mysql.cursor() | |
curl.execute("SELECT * FROM users WHERE email=%s", (email,)) | |
user = curl.fetchone() | |
mysql.commit() | |
curl.close() | |
if user != None: | |
msg = EmailMessage() | |
name= user[2] | |
alphabet = string.ascii_letters + string.digits | |
otp = 'smilecheck-pass-' + ''.join(secrets.choice(alphabet) for i in range(30)) | |
session['otp'] = otp | |
msg["Subject"] = "SmileCheck Verification" | |
msg["From"] = "smilecheck100@gmail.com" | |
msg["To"] = email | |
link = f"https://abhicodes-smilecheck.hf.space/password/{otp}" | |
html_content = render_template('pass.html', name=name, link=link) | |
msg.set_content(html_content, subtype='html') | |
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: | |
smtp.login('smilecheck23@gmail.com', 'dczcfrdkthwcfoqu') | |
smtp.send_message(msg) | |
return render_template('register.html', message='An Verification Email has been sent to your email address.', message_code=560, error_code=568) | |
else: | |
return render_template("forgot.html", mess="No such User Found.") | |
def password(otp): | |
if str(session['otp']) == otp: | |
redi = 'change' | |
return render_template('password.html', message=111, redirect_url=redi) | |
else: | |
redi = 'login' | |
return render_template('password.html', message=999, redirect_url=redi) | |
def change(): | |
if request.method == 'GET': | |
return render_template("change.html") | |
if request.method == 'POST': | |
app.config['MYSQL_DB'] = 'sql12660485' | |
password = request.form['password'].encode('utf-8') | |
hash_password = bcrypt.hashpw(password, bcrypt.gensalt()) | |
curl = mysql.cursor() | |
curl.execute("UPDATE `users` SET `password`=%s WHERE email=%s", (hash_password, session['email'],)) | |
mysql.commit() | |
curl.close() | |
session.clear() | |
return redirect(url_for('login')) | |
def admin(): | |
if 'email' in session: | |
if session['usertype'] == 0: | |
return redirect(url_for('home')) | |
else: | |
return redirect(url_for('login')) | |
if request.method == 'GET': | |
if 'email' in session: | |
app.config['MYSQL_DB'] = 'sql12660485' | |
cura = mysql.cursor() | |
cura.execute("SELECT `assessid`, `name` FROM assessments") | |
typedata = cura.fetchall() | |
typedata_tuple = tuple({'assessid': item[0], 'name': item[1]} for item in typedata) | |
cura.execute("SELECT `id`, `type` FROM custom") | |
given = cura.fetchall() | |
given_tuple = tuple({'id': item[0], 'type': item[1]} for item in given) | |
isdone = [] | |
for give in given: | |
isdone.append(give[1]) | |
cura.execute("SELECT `id`, `name`, `email`, `isdone` FROM `users` WHERE `usertype` = 0") | |
res = cura.fetchall() | |
res_tuple = tuple({'id': item[0], 'name': item[1], 'email': item[2], 'isdone': item[3]} for item in res) | |
cura.execute("SELECT `assessId`, `name`, `description`, `Questions`, `average` FROM `assessments`") | |
que = cura.fetchall() | |
que_tuple = tuple({'assessId': item[0], 'name': item[1], 'description': item[2], 'Questions': item[3], 'average': item[4]} for item in que) | |
cura.execute("SELECT `id`, `type`, `name` FROM `custom`, `assessments` WHERE custom.type = assessments.assessId") | |
abc = cura.fetchall() | |
abc_tuple = tuple({'id': item[0], 'type': item[1], 'name': item[2]} for item in abc) | |
ahi = 0.0 | |
for assess in que: | |
if assess[0] == 101: | |
ahi = assess[4] | |
ts = len(res) | |
tas = len(isdone) | |
cura.execute("SELECT `name`, `email`, `feedback` FROM `feedbacks`") | |
feeds = cura.fetchall() | |
feeds_tuple = tuple({'name': item[0], 'email': item[1], 'feedback': item[2]} for item in feeds) | |
mysql.commit() | |
cura.close() | |
return render_template("admin.html", typedata=typedata_tuple, given=given_tuple, result=res_tuple, assess=que_tuple, abc=abc_tuple, ts=ts, ahi=ahi, tas=tas, feeds= feeds_tuple) | |
if request.method == "POST": | |
app.config['MYSQL_DB'] = 'sql12660485' | |
if 'resid' in request.form: | |
resid = request.form.get('resid') | |
types = request.form.get('type') | |
session['id'] = resid | |
session['type'] = types | |
return redirect(url_for('result')) | |
elif 'delete' in request.form: | |
cura = mysql.cursor() | |
deleteId = request.form['delete'] | |
cura.execute("DELETE FROM `assessments` WHERE `assessId`= %s", (deleteId,)) | |
mysql.commit() | |
cura.close() | |
return redirect(url_for('admin')) | |
return render_template('admin.html') | |
def form(): | |
if 'email' not in session: | |
return redirect(url_for('login')) | |
if request.method == "GET": | |
app.config['MYSQL_DB'] = 'sql12660485' | |
typeid = session['type'] | |
curf = mysql.cursor() | |
curf.execute("SELECT `name`, `description`, `Questions`, `types` FROM assessments WHERE assessid = %s", (typeid,)) | |
questions = curf.fetchone() | |
mysql.commit() | |
curf.close() | |
return render_template("form.html", questions=questions) | |
if request.method == "POST": | |
app.config['MYSQL_DB'] = 'sql12660485' | |
data = request.form.to_dict() | |
length = len(request.form) | |
inp = [] | |
for i in range(0, length): | |
inp.append(data['inp' + str(i + 1) + '']) | |
sid_obj = SentimentIntensityAnalyzer() | |
compound = [] | |
for i in range(0, length): | |
compound.append(sid_obj.polarity_scores(data['inp' + str(i + 1) + ''])['compound'] * 100) | |
now = datetime.datetime.now() | |
cur = mysql.cursor() | |
query = "INSERT INTO `custom` (`Id`, `type`, `response`, `result`, `datetime`) VALUES (%s, %s, %s, %s, %s)" | |
cur.execute(query, (session['id'], session['type'], json.dumps(inp), json.dumps(compound), now,)) | |
query = "UPDATE `users` SET `isdone`=%s WHERE `id`=%s" | |
cur.execute(query, (1, session['id'],)) | |
cur.execute("SELECT * FROM `custom` WHERE id=%s AND type=%s", (session['id'], session['type'],)) | |
res = cur.fetchone() | |
cur.execute("SELECT qval FROM `assessments` WHERE assessId=%s", (session['type'],)) | |
qval = cur.fetchone() | |
multi = eval(qval[0]) | |
happy = eval(res[4]) | |
for j in range(len(happy)): | |
happy[j] = happy[j] * multi[j] | |
min_value = min(compound) | |
max_value = max(compound) | |
scaled_values = [(value - min_value) / (max_value - min_value) * 5 for value in compound] | |
happy_index = round(sum(scaled_values) / len(scaled_values), 2) | |
query = "UPDATE `custom` SET `happy`=%s WHERE `id`=%s AND `type`=%s" | |
cur.execute(query, (happy_index, session['id'], session['type'],)) | |
cur.execute("SELECT `happy` FROM `custom` WHERE type=%s", (session['type'],)) | |
avg_dict = cur.fetchall() | |
avg_list = [d[0] for d in avg_dict if isinstance(d[0], float)] + [item for d in avg_dict if isinstance(d[0], (list, tuple)) for item in d[0]] | |
avg_score = round(sum(avg_list)/len(avg_list), 2) | |
query = "UPDATE `assessments` SET `average`=%s WHERE `assessId`=%s" | |
cur.execute(query, (avg_score, session['type'],)) | |
mysql.commit() | |
cur.close() | |
'''Re-render template...''' | |
return redirect(url_for('result')) | |
return redirect(url_for('result')) | |
def custom(): | |
if 'email' not in session: | |
return redirect(url_for('login')) | |
if request.method == "GET": | |
if session['usertype'] == 0: | |
return redirect(url_for('home')) | |
return render_template('custom.html') | |
if request.method == "POST": | |
app.config['MYSQL_DB'] = 'sql12660485' | |
data = request.form.to_dict() | |
length = len(request.form) | |
inp = [] | |
for i in range(0, int((length - 3)/2)): | |
inp.append(data['inpt' + str(i + 1) + '']) | |
sid_obj = SentimentIntensityAnalyzer() | |
compound = [] | |
for i in range(0, int((length - 3)/2)): | |
compound.append(sid_obj.polarity_scores(data['inpt' + str(i + 1) + ''])['compound'] * 100) | |
types = [] | |
for i in range(0, int((length - 3) / 2)): | |
types.append(int(data['select' + str(i + 1) + ''])) | |
for i in range(len(compound)): | |
if compound[i] < 0: | |
compound[i] = -1 | |
elif compound[i] >= 0: | |
compound[i] = 1 | |
name = request.form['name'] | |
describ = request.form['describ'] | |
'''SQL Queries for data storing in database...''' | |
now = datetime.datetime.now() | |
cur = mysql.cursor() | |
query = "INSERT INTO `assessments` (`name`, `description`, `Questions`, `types`, `qval`) VALUES (%s, %s, %s, %s, %s)" | |
cur.execute(query, (name, describ, json.dumps(inp), json.dumps(types), json.dumps(compound),)) | |
mysql.commit() | |
cur.close() | |
return redirect(url_for('admin')) | |
return render_template("custom.html") | |
def result(): | |
if 'email' not in session: | |
return redirect(url_for('home')) | |
app.config['MYSQL_DB'] = 'test' | |
curr = mysql.cursor() | |
curr.execute("SELECT * FROM `custom` WHERE id=%s AND type=%s", (session['id'], session['type'],)) | |
res = curr.fetchone() | |
curr.execute("SELECT result FROM `custom` WHERE type=%s", (session['type'],)) | |
avg = curr.fetchall() | |
dynamic = [list(eval(d[0])) for d in avg] | |
dyna = [] | |
i = 0 | |
for i in range(len(dynamic[i])): | |
temp2 = 0 | |
for j in range(len(dynamic)): | |
temp2 = temp2 + dynamic[j][i] | |
dyna.append(temp2 / len(dynamic)) | |
ques = [] | |
for i in range(1, len(dyna) + 1): | |
ques.append("Question " + str(i) + "") | |
curr.execute("SELECT * FROM assessments WHERE assessid = %s", (session['type'],)) | |
questions = curr.fetchone() | |
curr.execute("SELECT * FROM suggestions") | |
suggests = curr.fetchall() | |
response = [] | |
mapper = eval(questions[4]) | |
score = eval(res[4]) | |
score_dict = {} | |
for i in range(len(mapper)): | |
if mapper[i] not in score_dict: | |
score_dict[mapper[i]] = [] | |
score_dict[mapper[i]].append(score[i]) | |
result_dict = {} | |
for key, value in score_dict.items(): | |
temp_score = sum(value) / len(value) | |
avg_score = round(((temp_score + 100) / 200) * (90 - 10) + 10, 2) | |
if key == 1101: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Psychological well being", | |
"description": "Refers to an individual`s mental state and overall happiness, including feelings of fulfillment, purpose, and contentment.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1101]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Psychological well being", | |
"description": "Refers to an individual`s mental state and overall happiness, including feelings of fulfillment, purpose, and contentment.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1101]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Psychological well being", | |
"description": "Refers to an individual`s mental state and overall happiness, including feelings of fulfillment, purpose, and contentment.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1101]} | |
elif key == 1102: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Health aspects", | |
"description": "Refers to an individual`s physical health, including factors such as nutrition, exercise, and access to medical care.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1102]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Health aspects", | |
"description": "Refers to an individual`s physical health, including factors such as nutrition, exercise, and access to medical care.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1102]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Health aspects", | |
"description": "Refers to an individual`s physical health, including factors such as nutrition, exercise, and access to medical care.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1102]} | |
elif key == 1103: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Time management", | |
"description": "Refers to an individual`s ability to effectively manage their time and prioritize tasks to maximize productivity and reduce stress.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1103]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Time management", | |
"description": "Refers to an individual`s ability to effectively manage their time and prioritize tasks to maximize productivity and reduce stress.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1103]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Time management", | |
"description": "Refers to an individual`s ability to effectively manage their time and prioritize tasks to maximize productivity and reduce stress.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1103]} | |
elif key == 1104: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Educational standards", | |
"description": "Refers to the quality of education provided in a given community, including factors such as curriculum, teaching quality, and access to resources.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1104]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Educational standards", | |
"description": "Refers to the quality of education provided in a given community, including factors such as curriculum, teaching quality, and access to resources.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1104]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Educational standards", | |
"description": "Refers to the quality of education provided in a given community, including factors such as curriculum, teaching quality, and access to resources.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1104]} | |
elif key == 1105: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Cultural diversity", | |
"description": "Refers to the range of cultures, beliefs, and practices within a given community, and the level of acceptance and celebration of diversity.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1105]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Cultural diversity", | |
"description": "Refers to the range of cultures, beliefs, and practices within a given community, and the level of acceptance and celebration of diversity.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1105]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Cultural diversity", | |
"description": "Refers to the range of cultures, beliefs, and practices within a given community, and the level of acceptance and celebration of diversity.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1105]} | |
elif key == 1106: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Social well-being", | |
"description": "Social well-being refers to the quality of an individual`s social interactions, relationships, and sense of community belonging.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1106]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Social well-being", | |
"description": "Social well-being refers to the quality of an individual`s social interactions, relationships, and sense of community belonging.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1106]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Social well-being", | |
"description": "Social well-being refers to the quality of an individual`s social interactions, relationships, and sense of community belonging.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1106]} | |
elif key == 1107: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Good governance", | |
"description": "Refers to the effectiveness and transparency of governing systems and institutions in promoting the well-being of all members of a community.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1107]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Good governance", | |
"description": "Refers to the effectiveness and transparency of governing systems and institutions in promoting the well-being of all members of a community.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1107]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Good governance", | |
"description": "Refers to the effectiveness and transparency of governing systems and institutions in promoting the well-being of all members of a community.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1107]} | |
elif key == 1108: | |
if avg_score >= 66: | |
result_dict[key] = {"average_score": avg_score, "name": "Community vitality", | |
"description": "Refers to the health and vibrancy of a community, including factors such as social cohesion, civic engagement, and access to resources.", | |
"suggestions_text": [list(eval(d[3])) for d in suggests if d[0] == 1108]} | |
elif avg_score >= 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Community vitality", | |
"description": "Refers to the health and vibrancy of a community, including factors such as social cohesion, civic engagement, and access to resources.", | |
"suggestions_text": [list(eval(d[2])) for d in suggests if d[0] == 1108]} | |
elif avg_score < 30: | |
result_dict[key] = {"average_score": avg_score, "name": "Community vitality", | |
"description": "Refers to the health and vibrancy of a community, including factors such as social cohesion, civic engagement, and access to resources.", | |
"suggestions_text": [list(eval(d[1])) for d in suggests if d[0] == 1108]} | |
suggest_dict = dict(sorted(result_dict.items())) | |
curr.execute( | |
"SELECT `Questions`,`response`, `result`, `datetime` FROM `custom`, `assessments` WHERE `id`=%s AND `type`=%s AND custom.type = assessments.assessId", | |
(session['id'], session['type'],)) | |
details = curr.fetchone() | |
mysql.commit() | |
curr.close() | |
return render_template("result.html", ques=ques, res1=res[3], res2=res[4], res3=res[6], res4=res[5], res5=dyna, res6=response, res7=suggest_dict, res8=questions, res9=details) | |
def logout(): | |
app.config['MYSQL_DB'] = 'sql12660485' | |
now = datetime.datetime.now() | |
curo = mysql.cursor() | |
if 'id' in session: | |
curo.execute("INSERT INTO session (id, email, action, actionC, datetime) VALUES (%s, %s, %s, %s, %s)", (session['id'], session['email'], 'Logged Out - Session Terminated', 0, now,)) | |
else: | |
curo.execute("INSERT INTO session (email, action, actionC, datetime) VALUES (%s, %s, %s, %s)", (session['email'], 'Logged Out - Session Terminated', 0, now,)) | |
mysql.commit() | |
curo.close() | |
session.clear() | |
return redirect(url_for("home")) | |
def handle_error(error): | |
app.logger.error(error) | |
error_name = error.__class__.__name__ | |
message = f"{error_name}: {str(error)}" | |
return render_template('error.html', message=message), 500 | |
if __name__=='__main__': | |
app.run(debug=True, host="0.0.0.0") | |
# app.run(debug=True) | |