Example #1
0
def add_section(exam_in_db,section_dict):
	# add simple properties
	properties_to_add=["name","info","comment","postinfo",
		"allowed_attempts",
		"show_correct_answer",
		"show_solution",
		"max_questions_to_attempt"]
	section = Section()
	for key in properties_to_add:
		if key in section_dict and hasattr(section,key):
			setattr(section,key,section_dict[key])
	section.exam = exam_in_db

	# add compound properties
	if "marking_scheme" in section_dict:
		subdict = section_dict["marking_scheme"]
		if "correct" in subdict:
			section.correct_marks = subdict["correct"]
		if "wrong" in subdict:
			section.wrong_marks = subdict["wrong"]
		if "na" in subdict:
			section.na_marks = subdict["na"]
		if "hint_deduction" in subdict:
			section.hint_deduction = subdict["hint_deduction"]
	if "unlock" in section_dict:
		subdict = section_dict["unlock"]
		if "marks" in subdict:
			section.unlock_marks = subdict["marks"]
		if "questions" in subdict:
			section.unlock_questions = subdict["questions"]
		if "both_needed" in subdict:
			section.unlock_both_needed = subdict["both_needed"]
	if "shuffle" in section_dict:
		subdict = section_dict["shuffle"]
		if "questions" in subdict:
			section.shuffle_questions = subdict["questions"]
		if "options" in subdict:
			section.shuffle_options = subdict["options"]
	section.save()

	# add tags
	if "tags" in section_dict:
		for tagname in section_dict["tags"]:
			section.add_tag(tagname)

	# add questions
	for question_dict in section_dict["questions"]:
		add_question(section,question_dict)
Example #2
0
def add_section(exam_in_db, section_dict):
    # add simple properties
    properties_to_add = [
        "name", "info", "comment", "postinfo", "allowed_attempts",
        "show_correct_answer", "show_solution", "max_questions_to_attempt"
    ]
    section = Section()
    for key in properties_to_add:
        if key in section_dict and hasattr(section, key):
            setattr(section, key, section_dict[key])
    section.exam = exam_in_db

    # add compound properties
    if "marking_scheme" in section_dict:
        subdict = section_dict["marking_scheme"]
        if "correct" in subdict:
            section.correct_marks = subdict["correct"]
        if "wrong" in subdict:
            section.wrong_marks = subdict["wrong"]
        if "na" in subdict:
            section.na_marks = subdict["na"]
        if "hint_deduction" in subdict:
            section.hint_deduction = subdict["hint_deduction"]
    if "unlock" in section_dict:
        subdict = section_dict["unlock"]
        if "marks" in subdict:
            section.unlock_marks = subdict["marks"]
        if "questions" in subdict:
            section.unlock_questions = subdict["questions"]
        if "both_needed" in subdict:
            section.unlock_both_needed = subdict["both_needed"]
    if "shuffle" in section_dict:
        subdict = section_dict["shuffle"]
        if "questions" in subdict:
            section.shuffle_questions = subdict["questions"]
        if "options" in subdict:
            section.shuffle_options = subdict["options"]
    section.save()

    # add tags
    if "tags" in section_dict:
        for tagname in section_dict["tags"]:
            section.add_tag(tagname)

    # add questions
    for question_dict in section_dict["questions"]:
        add_question(section, question_dict)