def create_exam(course_id, content_id, exam_name, time_limit_mins, is_proctored=True, is_practice_exam=False, external_id=None, is_active=True): """ Creates a new ProctoredExam entity, if the course_id/content_id pair do not already exist. If that pair already exists, then raise exception. Returns: id (PK) """ if ProctoredExam.get_exam_by_content_id(course_id, content_id) is not None: raise ProctoredExamAlreadyExists proctored_exam = ProctoredExam.objects.create( course_id=course_id, content_id=content_id, external_id=external_id, exam_name=exam_name, time_limit_mins=time_limit_mins, is_proctored=is_proctored, is_practice_exam=is_practice_exam, is_active=is_active) log_msg = ( u'Created exam ({exam_id}) with parameters: course_id={course_id}, ' u'content_id={content_id}, exam_name={exam_name}, time_limit_mins={time_limit_mins}, ' u'is_proctored={is_proctored}, is_practice_exam={is_practice_exam}, ' u'external_id={external_id}, is_active={is_active}'.format( exam_id=proctored_exam.id, course_id=course_id, content_id=content_id, exam_name=exam_name, time_limit_mins=time_limit_mins, is_proctored=is_proctored, is_practice_exam=is_practice_exam, external_id=external_id, is_active=is_active)) log.info(log_msg) return proctored_exam.id
def get_exam_by_content_id(course_id, content_id): """ Looks up exam by the course_id/content_id pair. Raises exception if not found. Returns dictionary version of the Django ORM object e.g. { "course_id": "edX/DemoX/Demo_Course", "content_id": "123", "external_id": "", "exam_name": "Midterm", "time_limit_mins": 90, "is_proctored": true, "is_active": true } """ proctored_exam = ProctoredExam.get_exam_by_content_id(course_id, content_id) if proctored_exam is None: raise ProctoredExamNotFoundException serialized_exam_object = ProctoredExamSerializer(proctored_exam) return serialized_exam_object.data
def create_exam(course_id, content_id, exam_name, time_limit_mins, is_proctored=True, is_practice_exam=False, external_id=None, is_active=True): """ Creates a new ProctoredExam entity, if the course_id/content_id pair do not already exist. If that pair already exists, then raise exception. Returns: id (PK) """ if ProctoredExam.get_exam_by_content_id(course_id, content_id) is not None: raise ProctoredExamAlreadyExists proctored_exam = ProctoredExam.objects.create( course_id=course_id, content_id=content_id, external_id=external_id, exam_name=exam_name, time_limit_mins=time_limit_mins, is_proctored=is_proctored, is_practice_exam=is_practice_exam, is_active=is_active ) log_msg = ( u'Created exam ({exam_id}) with parameters: course_id={course_id}, ' u'content_id={content_id}, exam_name={exam_name}, time_limit_mins={time_limit_mins}, ' u'is_proctored={is_proctored}, is_practice_exam={is_practice_exam}, ' u'external_id={external_id}, is_active={is_active}'.format( exam_id=proctored_exam.id, course_id=course_id, content_id=content_id, exam_name=exam_name, time_limit_mins=time_limit_mins, is_proctored=is_proctored, is_practice_exam=is_practice_exam, external_id=external_id, is_active=is_active ) ) log.info(log_msg) return proctored_exam.id
def get_exam_by_content_id(course_id, content_id): """ Looks up exam by the course_id/content_id pair. Raises exception if not found. Returns dictionary version of the Django ORM object e.g. { "course_id": "edX/DemoX/Demo_Course", "content_id": "123", "external_id": "", "exam_name": "Midterm", "time_limit_mins": 90, "is_proctored": true, "is_active": true } """ proctored_exam = ProctoredExam.get_exam_by_content_id( course_id, content_id) if proctored_exam is None: raise ProctoredExamNotFoundException serialized_exam_object = ProctoredExamSerializer(proctored_exam) return serialized_exam_object.data