def checkout(): user = get_user() page = Page() if request.method == "POST": req = request.form user = get_user() email = req.get("email") one_sitting = req.get("one_sitting") task1_like = req.get("task1_like") task2_like = req.get("task2_like") if email != user.email or one_sitting != user.one_sitting or task1_like != user.task1_like or task2_like != user.task2_like: user.update_user_checkout_Info(email, one_sitting, task1_like, task2_like) flash("Email saved successfully", "success") if request.form['dir'] == 'back': return redirect(url_for(page.page_handler('back', user))) else: return redirect(url_for(page.page_handler('next', user))) # add action to user log user_log = UserLog(user.id, "checkout", datetime.now().replace(microsecond=0)) user_log.add() return render_template( "public/checkout.html", email=user.email if user.email is not None else '', one_sitting=user.one_sitting, task1_like=user.task1_like if user.task1_like is not None else '', task2_like=user.task2_like if user.task2_like is not None else '', page=page.get_page_number(user))
def upload(): user = get_user() # add action to user history user_log = UserLog(user.id, "upload", datetime.now().replace(microsecond=0)) user_log.add() page = Page() try: path = os.path.join(app.config["FILE_UPLOADS"]) + ("/{}".format( user.username)) + ("/obs") files = [ f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) ] except: files = [] # add action to user log user_log = UserLog(user.id, "upload", datetime.now().replace(microsecond=0)) user_log.add() return render_template("public/upload.html", files=files, file_count=len(files))
def signin(): if request.method == "POST": req = request.form username = req.get("username") password = req.get("password") print(username, password) user = User() if user.check_password(username, password): user = User() user = user.get_user(username) # update last time logged in user.update_last_time_loggedin( datetime.now().replace(microsecond=0)) session["SECRETKEY"] = user.secret_key flash("Signed in", "success") # add action to user history user_log = UserLog(user.id, "signin", datetime.now().replace(microsecond=0)) user_log.add() return redirect(url_for("welcome")) else: flash("Wrong credentials", "danger") return render_template("public/signin.html")
def data_preview(): user = get_user() page = Page() data_type = "" df3_html = "" if request.method == "POST": req = request.form data_type = req.get("data_type") # add action to user log user_log = UserLog(user.id, "data_preview", datetime.now().replace(microsecond=0)) user_log.add() # convert obs file to df path = os.path.join(app.config["OBS_FILES_DIR"] ) #+ ("/{}".format(user.username)) + ("/obs") files = [ name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name)) ] obs_file_1 = path + '/' + 'file1.obs' obs_file_2 = path + '/' + 'file2.obs' df1 = converttoDF(obs_file_1) df2 = converttoDF(obs_file_2) df1[df1.columns[1]] = df1[df1.columns[1]].astype(float) df1[df1.columns[2]] = df1[df1.columns[2]].astype(float) df1[df1.columns[3]] = df1[df1.columns[3]].astype(float) df2[df2.columns[1]] = df2[df2.columns[1]].astype(float) df2[df2.columns[2]] = df2[df2.columns[2]].astype(float) df2[df2.columns[3]] = df2[df2.columns[3]].astype(float) #df1['SWE(1) 1'] = df1['SWE(1) 1'].astype(float) #df1_style = df1.style.apply(highlight_diff_2,threshold=0,column_1=df1.columns, column_2=df2.columns, axis=1) #df1_html = df1_style.render(classes="table table-hover table-striped table-sm table-bordered") #df1.to_html(classes="table table-hover table-striped table-sm table-bordered") #df2_html = df2.to_html(classes="table table-hover table-striped table-sm table-bordered") df3 = df1.merge(df2, on='time', how='outer') df3_style = df3.style.apply(highlight_diff, threshold=1.0, column=df3.columns, axis=1) df3_html = df3_style.render( classes="table table-hover table-striped table-sm table-bordered") #df4 = df1.merge(df2, how ='outer', left_index=True, right_index=True) #df4_html = df4.to_html(classes="table table-hover table-striped table-sm table-bordered") return render_template("public/data_preview.html", data_type=data_type, df3=df3_html, page=page.get_page_number(user))
def plot(): user = get_user() # add action to user log user_log = UserLog(user.id, "plot", datetime.now().replace(microsecond=0)) user_log.add() page = Page() return render_template("public/plot.html", page=page.get_page_number(user))
def questions(): user = get_user() # add action to user log user_log = UserLog(user.id, "questions", datetime.now().replace(microsecond=0)) user_log.add() return render_template("public/questions.html")
def profile(): user = get_user() # add action to user log user_log = UserLog(user.id, "profile", datetime.now().replace(microsecond=0)) user_log.add() return render_template("public/profile.html", user=user)
def plot(): user = get_user() if user is None: return redirect(url_for("signin")) # add action to user log user_log = UserLog(user.id, "plot", datetime.now().replace(microsecond=0)) user_log.add() return render_template("public/plot.html", username=user.username)
def signout(): user = get_user() session.pop("SECRETKEY", None) # add action to user log user_log = UserLog(user.id, "signout", datetime.now().replace(microsecond=0)) user_log.add() return redirect(url_for("signin"))
def signout(): user = get_user() logout_user() # add action to user log user_log = UserLog(user.id, "signout", datetime.now().replace(microsecond=0)) user_log.add() return redirect(url_for("users.signin"))
def download_obs(file_name): user = get_user() # add action to user history user_log = UserLog(user.id, "download_" + file_name, datetime.now().replace(microsecond=0)) user_log.add() try: return send_from_directory(app.config["OBS_FILES_DIR"], filename=file_name, as_attachment=True) except: abort(404)
def download_crhm(): user = get_user() # add action to user history user_log = UserLog(user.id, "download_crhm", datetime.now().replace(microsecond=0)) user_log.add() try: return send_from_directory(app.config["CRHM_APP_DIR"], filename='crhm.zip', as_attachment=True) except: abort(404)
def data_preview(): user = get_user() if user is None: return redirect(url_for("signin")) data_type = "" df1_html = "" df2_html = "" df3_html = "" df4_html = "" if request.method == "POST": req = request.form data_type = req.get("data_type") print('*************', data_type) # add action to user log user_log = UserLog(user.id, "data_preview", datetime.now().replace(microsecond=0)) user_log.add() # convert obs file to df path = os.path.join(app.config["FILE_UPLOADS"]) + ("/{}".format( user.username)) + ("/obs") files = [ name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name)) ] obs_file_1 = path + '/' + files[0] obs_file_2 = path + '/' + files[1] df1 = converttoDF(obs_file_1) df1_html = df1.to_html( classes="table table-hover table-striped table-sm table-bordered") df2 = converttoDF(obs_file_2) df2_html = df2.to_html( classes="table table-hover table-striped table-sm table-bordered") df3 = df1.merge(df2, on='time', how='outer') df3_html = df3.to_html( classes="table table-hover table-striped table-sm table-bordered") df4 = df1.merge(df2, how='outer', left_index=True, right_index=True) df4_html = df4.to_html( classes="table table-hover table-striped table-sm table-bordered") return render_template("public/data_preview.html", username=user.username, data_type=data_type, df1=df1_html, df2=df2_html, df3=df3_html, df4=df4_html)
def new_intro(): user = get_user() # add action to user history user_log = UserLog(user.id, "new_intro", datetime.now().replace(microsecond=0)) user_log.add() page = Page() if request.method == "POST": return redirect(url_for(page.page_handler('back', user))) return render_template("public/new_intro.html", page=page.get_page_number(user))
def download(): user = get_user() # add action to user log user_log = UserLog(user.id, "download", datetime.now().replace(microsecond=0)) user_log.add() page = Page() if request.method == "POST": return redirect(url_for(page.page_handler('back', user))) return render_template("public/download.htm", page=page.get_page_number(user))
def update_password(): user = get_user() # add action to user history user_log = UserLog(user.id, "update_password", datetime.now().replace(microsecond=0)) user_log.add() if request.method == "POST": req = request.form password = req.get("password") re_password = req.get("re_password") if password != re_password: flash("Passwords don't match", "danger") else: user.update_password(req.get("password")) flash("Password updated", "success") return render_template("public/profile.html")
def upload_obs(): user = get_user() # add action to user history user_log = UserLog(user.id, "upload_obs", datetime.now().replace(microsecond=0)) user_log.add() path = os.path.join(app.config["FILE_UPLOADS"]) + ("/{}".format( user.username)) + ("/obs") # create a directory for user if not os.path.exists(path): os.makedirs(path) if request.method == "POST": if request.files: obs = request.files["obs_input"] if obs.filename == "": flash("Select a file", "danger") return redirect(url_for("users.dashboard")) if not allowed_file(obs.filename): flash("File extention not allowed", "danger") return redirect(url_for("users.dashboard")) else: path = os.path.join(app.config["OBS_FILES_DIR"]) + ( "/{}".format(user.username)) + ("/obs") number_of_files = len([ name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name)) ]) if number_of_files >= 2: flash("Too many files!", "danger") return redirect(url_for("users.dashboard")) else: filename = secure_filename(obs.filename) obs.save(os.path.join(path, filename)) flash("File uploaded", "success") return redirect(url_for("users.dashboard"))
def show_plot(): user = get_user() # add action to user history user_log = UserLog(user.id, "show_plot", datetime.now().replace(microsecond=0)) user_log.add() path = os.path.join(app.config["OBS_FILES_DIR"]) + ("/{}".format( user.username)) + ("/obs") html_path = os.path.join(app.config["HTML_FILE_PATH"]) + ("/{}".format( user.username)) if not os.path.exists(html_path): os.makedirs(html_path) files = [ name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name)) ] if len(files) == 1: obs_file_1 = path + '/' + files[0] df1 = converttoDF(obs_file_1) plot_go(df1, os.path.basename(obs_file_1), html_path) elif len(files) == 2: obs_file_1 = path + '/' + files[0] obs_file_2 = path + '/' + files[1] df1 = converttoDF(obs_file_1) df2 = converttoDF(obs_file_2) df3 = df1.merge(df2, on='time', how='outer') plot_go( df3, os.path.basename(obs_file_1) + ' and ' + os.path.basename(obs_file_2), html_path) return render_template('public/user_html/' + user.username + '/temp-plot.html')
def participants_info(): user = get_user() # add action to user history user_log = UserLog(user.id, "participants_info", datetime.now().replace(microsecond=0)) user_log.add() page = Page() if request.method == "POST": req = request.form age = req.get("age") gender = req.get("genderRadios") crhm_exp = req.get("crhmRadios") dev_exp = req.get("dev_exp") test_exp = req.get("test_exp") role_exp = req.get("role_exp") degree = req.get("degree") if degree == user.degree and age == user.age and crhm_exp == user.crhm_exp and gender == user.gender and dev_exp == user.dev_exp_years and test_exp == user.test_exp_years and role_exp == user.role_exp: return redirect(url_for(page.page_handler('next', user))) else: user.update_userInfo(age, crhm_exp, gender, dev_exp, test_exp, role_exp, degree) flash("Information saved successfully", "success") return redirect(url_for(page.page_handler('next', user))) return render_template( "public/participants_info.html", crhm_exp=user.crhm_exp, gender=user.gender, age=user.age, dev_exp=user.dev_exp_years, test_exp=user.test_exp_years, role=user.role_exp if user.role_exp is not None else '', degree=user.degree, page=page.get_page_number(user))
def signin(): if request.method == "POST": req = request.form username = req.get("username").lower() password = req.get("password") user = User() if user.check_password(username, password): user = User() user = user.get_user(username) if user.check_active(username): # update last time logged in user.update_last_time_loggedin( datetime.now().replace(microsecond=0)) login_user(user) # add action to user history user_log = UserLog(user.id, "signin", datetime.now().replace(microsecond=0)) user_log.add() return redirect(url_for("users.dashboard")) else: flash("Your user has been deactivated.", "danger") return redirect(url_for("users.signin")) else: flash("Wrong credentials", "danger") return redirect(url_for("users.signin")) return render_template("public/signin.html")
def new_tlx(): user = get_user() # add action to user history user_log = UserLog(user.id, "new_txl", datetime.now().replace(microsecond=0)) user_log.add() page = Page() tlx = NasaTLX.get_user_tlx(userId=user.id, page='new') questions = [ ['How mental demanding was the task?', 'mental_demanding'], ['How physically demanding was the task?', 'physically_demanding'], ['How hurried or rushed was the pace of the task?', 'hurried_rushed'], [ 'How successful were you in accomplishing what you were asked to do?', 'successful_accomplishing' ], [ 'How hard did you have to work to accomplish your level of performance?', 'hard_performance' ], [ 'How insecure, discouraged, irritated stressed and annoyed were you?', 'insecure_discouraged' ] ] answers = range(1, 11) if tlx is not None: questions = [ [ 'How mental demanding was the task?', 'mental_demanding', int(tlx.mental_demanding) ], [ 'How physically demanding was the task?', 'physically_demanding', int(tlx.physically_demanding) ], [ 'How hurried or rushed was the pace of the task?', 'hurried_rushed', int(tlx.hurried_rushed) ], [ 'How successful were you in accomplishing what you were asked to do?', 'successful_accomplishing', int(tlx.successful_accomplishing) ], [ 'How hard did you have to work to accomplish your level of performance?', 'hard_performance', int(tlx.hard_performance) ], [ 'How insecure, discouraged, irritated stressed and annoyed were you?', 'insecure_discouraged', int(tlx.insecure_discouraged) ] ] answers = range(1, 11) if request.method == "POST": req = request.form new_nasa_tlx = NasaTLX(user.id, 'new', req.get("mental_demanding"), req.get("physically_demanding"), req.get("hurried_rushed"), req.get("successful_accomplishing"), req.get("hard_performance"), req.get("insecure_discouraged"), req.get("new_time"), req.get("new_mismatch")) if tlx is None: new_nasa_tlx.add() else: tlx.update_user_tlx(req.get("mental_demanding"), req.get("physically_demanding"), req.get("hurried_rushed"), req.get("successful_accomplishing"), req.get("hard_performance"), req.get("insecure_discouraged"), req.get("new_time"), req.get("new_mismatch")) return redirect(url_for(page.page_handler('next', user))) return render_template("public/new_tlx.html", answers=answers, questions=questions, time=tlx.time if tlx is not None else '', mismatch=tlx.mismatch if tlx is not None else '', page=page.get_page_number(user))