def submit(): user = validate_user() q_id = request.args.get("q_id") question = get_question(q_id) responses = request.form.getlist('responses') out = question.submit_response(user.stuid, responses) return json.dumps(out, cls=NewEncoder)
def to_html(self): # not good to have imports here... from queries import get_question, get_last_question_response, get_peer_tasks_for_grader, get_self_tasks_for_student from auth import validate_user self.set_metadata() user = validate_user() if user.type == "guest": return "Sorry, but only students can view peer assessment questions." vars = {"question": get_question(self.question_id)} # if peer assessment was assigned if len(self.peer_pts): peer_tasks = get_peer_tasks_for_grader(self.question_id, user.stuid) vars['peer_responses'] = [get_last_question_response(self.question_id, task.student) for task in peer_tasks] # if self assessment was assigned if self.self_pts is not None: # add the task if it hasn't been already response = get_last_question_response(self.question_id, user.stuid) if response and not get_self_tasks_for_student(self.question_id, user.stuid): session.add(GradingTask(grader=user.stuid, student=user.stuid, question_id=self.question_id)) session.commit() vars['self_response'] = response # jinja2 to get template for peer review questions from jinja2 import Environment, PackageLoader env = Environment(autoescape=True, loader=PackageLoader("ohms", "templates")) template = env.get_template("peer_review_question.html") return template.render(**vars)
def move_question(): admin = validate_admin() q_id = int(request.form['q_id']) hw_id = int(request.form['hw_id']) question = get_question(q_id) question.hw_id = hw_id if hw_id else None session.commit() if hw_id: return "Question ID %d moved to <a href=hw?id=%d>%s</a>." % (q_id, question.homework.id, question.homework.name) else: return "Question ID %d has been deleted!" % q_id
def move_question(): admin = validate_admin() q_id = int(request.form['q_id']) hw_id = int(request.form['hw_id']) question = get_question(q_id) question.hw_id = hw_id if hw_id else None session.commit() if hw_id: return "Question ID %d moved to <a href=hw?id=%d>%s</a>." % ( q_id, question.homework.id, question.homework.name) else: return "Question ID %d has been deleted!" % q_id
def load(): user = validate_user() q_id = request.args.get("q_id") question = get_question(q_id) return json.dumps(question.load_response(user), cls=NewEncoder)