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"] = "[email protected]" | |
| 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('[email protected]', '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'] = 'sql12660485' | |
| 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"] = "[email protected]" | |
| 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('[email protected]', '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'] = 'sql12660485' | |
| 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) | |