def edit_user(user_id): """ (str) -> rendered_template Returns the rendered template of admin-users.html with data from user input into User Object, after the user makes a POST request to 'admin/user/<user_id>' """ if request.form['submit'] == 'Save': user = UserModel.get(ObjectId(user_id)) user.user_type = request.form['user-type'].lower() UserModel.update(user) elif request.form['submit'] == 'Delete': db.accounts.remove(ObjectId(user_id)) return redirect(url_for('get_user_list'))
def edit_user(user_id): """ (str) -> rendered_template Returns the rendered template of admin-users.html with data from user input into User Object, after the user makes a POST request to 'admin/user/<user_id>' """ if request.form['submit'] == 'Save': user = UserModel.get(ObjectId(user_id)) user.user_type = request.form['user-type'].lower() UserModel.update(user) elif request.form['submit'] == 'Delete': db.accounts.remove(ObjectId(user_id)) return redirect(url_for('get_user_list'))
def answer_question(question_id): """ (str) -> str Return success message if answer is correct, Otherwise return the failure message """ session['try'] = session.get('try', 0) + 1 question = GetQuestion(ObjectId(question_id)).get() if not question: return 'Question not found', 404 given_order = json.loads(request.form.get('order', '[]')) given_indentation = json.loads(request.form.get('indentation', '[]')) user = UserModel.get({'username': session['username']}) if ObjectId(question_id) not in user.completed: question.attempts += 1 if check_answer(question, given_order, given_indentation): if ObjectId(question_id) not in user.completed: user.completed.append(ObjectId(question_id)) if session["try"] > 10: user.xp += question.difficulty else: user.xp += ceil(int(question.difficulty) * 10 / int(session["try"])) user.level = ceil(user.xp / 25) question.success += 1 UpdateQuestion(question).post() UserModel.update(user) session.pop("try", None) return RESPONSE_SUCCESS + "<br>Return to home for more challenges" else: return RESPONSE_FAILED + "<br>Failed Attempt: " + str( session["try"]) + "<br>More failed attempts results in less trophies"