本文整理汇总了Python中oasis.lib.DB.add_qt_variation方法的典型用法代码示例。如果您正苦于以下问题:Python DB.add_qt_variation方法的具体用法?Python DB.add_qt_variation怎么用?Python DB.add_qt_variation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oasis.lib.DB
的用法示例。
在下文中一共展示了DB.add_qt_variation方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_do_question
# 需要导入模块: from oasis.lib import DB [as 别名]
# 或者: from oasis.lib.DB import add_qt_variation [as 别名]
def test_do_question(self):
""" Do a question"""
course_id = Courses.create("TEST102", "Test question logic", 1, 1)
self.assertGreater(course_id, 0)
topic1_id = Topics.create(course_id, "TESTQUESTIONS1", 1, 2)
self.assertGreater(topic1_id, 0)
qt1_id = DB.create_qt(1, "TESTQ9", "Test question 9", 0, 5.0, 1, topic_id=topic1_id)
self.assertIsNotNone(qt1_id)
ver = DB.get_qt_version(qt1_id)
self.assertGreater(ver, 0)
data = "2\n|1\n|2\n"
qvars = [{'A1': "2"}, {'A1': "3"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt1_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt1_id, "datfile.dat", "text/plain", data , ver)
DB.create_qt_att(qt1_id, "qtemplate.html", "text/html", "What is <VAL A1>? <ANSWER 1>", ver)
q_id = DB.get_q_by_qt_student(qt1_id, 1)
self.assertFalse(q_id) # Not generated yet
q_id = General.gen_q(qt1_id, 1)
self.assertGreater(q_id, 0)
q_id = DB.get_q_by_qt_student(qt1_id, 1)
self.assertTrue(qt1_id) # Better be there now
DB.update_qt_maxscore(qt1_id, 7.0)
score = DB.get_qt_maxscore(qt1_id)
self.assertEqual(score, 7.0)
DB.set_q_viewtime(q_id)
self.assertIsNotNone(DB.get_q_viewtime(q_id))
示例2: import_qts_from_zip
# 需要导入模块: from oasis.lib import DB [as 别名]
# 或者: from oasis.lib.DB import add_qt_variation [as 别名]
def import_qts_from_zip(data, topic_id):
""" Open the given OAQ file and import any qtemplates found.
Return False if it's not valid
Return 0 if it's valid but has no qtemplates
Return NUM of templates imported.
"""
# TODO: How do we protect against malicious uploads?
# At the moment they're allowed for trusted people only,
# but we'll eventually want this in the UI for end users.
# eg. unzip to huge size
# add digital signatures?
sdata = StringIO(data)
tmpd = tempfile.mkdtemp(prefix="oa")
qdir = os.path.join(tmpd, "oasisqe")
os.mkdir(qdir)
num = 0
try:
with zipfile.ZipFile(sdata, "r") as zfile:
zfile.extractall(qdir)
data = open("%s/info.json" % qdir, "r").read()
info = json.loads(data)
qtids = info['qtemplates'].keys()
qtids.sort()
for qtid in qtids:
qtemplate = info['qtemplates'][qtid]['qtemplate']
attachments = info['qtemplates'][qtid]['attachments']
if 'position' in info['qtemplates'][qtid]:
position = info['qtemplates'][qtid]['position']
else:
position = 0
newid = DB.create_qt(owner=1, # ownerid
title=qtemplate['title'],
desc=qtemplate['description'],
marker=qtemplate['marker'],
score_max=qtemplate['scoremax'],
status=qtemplate['status'],
topic_id=topic_id)
DB.update_qt_practice_pos(newid, position)
num += 1
# print "%s attachments" % len(attachments)
for att in attachments:
(att_name, att_type, att_size) = att
data = open("%s/%s/attach/%s" % (qdir, qtemplate['id'], att_name)).read()
DB.create_qt_att(newid, att_name, att_type, data, 1)
if att_name == "datfile.txt" or att_name == "datfile.dat" or att_name == "datfile" or att_name == "_datfile" or att_name == "__datfile":
qvars = QEditor.parse_datfile(data)
for row in range(0, len(qvars)):
DB.add_qt_variation(newid, row + 1, qvars[row], 1)
except zipfile.BadZipfile:
return False
Topics.flush_num_qs(topic_id)
return num
示例3: test_export_questions
# 需要导入模块: from oasis.lib import DB [as 别名]
# 或者: from oasis.lib.DB import add_qt_variation [as 别名]
def test_export_questions(self):
""" Make some questions and export them."""
course_id = Courses.create("TEST106", "Test Question Export", 1, 1)
self.assertGreater(course_id, 0)
topic1_id = Topics.create(course_id, "TESTEXPORT1", 1, 2)
self.assertGreater(topic1_id, 0)
qt1_id = DB.create_qt(1, "TESTQ1", "Test question 1", 0, 5.0, 1, topic_id=topic1_id)
self.assertIsNotNone(qt1_id)
ver = DB.get_qt_version(qt1_id)
self.assertGreater(ver, 0)
data = "2\n|1\n|2\n"
qvars = [{'A1': "2"}, {'A1': "3"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt1_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt1_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt1_id, "qtemplate.html", "text/html", "What is <VAL A1>? <ANSWER 1>", ver)
qt2_id = DB.create_qt(1, "TESTQ2", "Test question 2", 0, 5.0, 1, topic_id=topic1_id)
self.assertIsNotNone(qt2_id)
ver = DB.get_qt_version(qt2_id)
self.assertGreater(ver, 0)
data = "2\n|6\n|7\n"
qvars = [{'A1': "6"}, {'A1': "7"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt2_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt2_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt2_id, "qtemplate.html", "text/html", "Question 2: What is <VAL A1>? <ANSWER 1>", ver)
qt3_id = DB.create_qt(1, "TESTQ3", "Test question 3", 0, 5.0, 1, topic_id=topic1_id)
self.assertIsNotNone(qt3_id)
ver = DB.get_qt_version(qt3_id)
self.assertGreater(ver, 0)
data = "3\n|9\n|10\n|11\n"
qvars = [{'A1': "9"}, {'A1': "10"}, {'A1': "11"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt3_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt3_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt3_id, "qtemplate.html", "text/html", "Question 3: What is <VAL A1>? <ANSWER 1>", ver)
data = External.topic_to_zip(topic1_id)
f = open("%s" % self.test_question_fname, mode='w')
f.write(data)
f.close()
示例4: create_exported_questions
# 需要导入模块: from oasis.lib import DB [as 别名]
# 或者: from oasis.lib.DB import add_qt_variation [as 别名]
def create_exported_questions(fname):
""" Make some questions and export them."""
# Not really related to assessment, but can use this to create some questions to import and use multiple times
course_id = Courses.create("TEST106", "Test Question Export", 1, 1)
topic1_id = Topics.create(course_id, "TESTEXPORT1", 1, 2)
qt1_id = DB.create_qt(1, "TESTQ1", "Test question 1", 0, 5.0, 1, topic_id=topic1_id)
ver = DB.get_qt_version(qt1_id)
data = "2\n|1\n|2\n"
qvars = [{'A1': "2"}, {'A1': "3"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt1_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt1_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt1_id, "qtemplate.html", "text/html", "What is <VAL A1>? <ANSWER 1>", ver)
qt2_id = DB.create_qt(1, "TESTQ2", "Test question 2", 0, 5.0, 1, topic_id=topic1_id)
ver = DB.get_qt_version(qt2_id)
data = "2\n|6\n|7\n"
qvars = [{'A1': "6"}, {'A1': "7"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt2_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt2_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt2_id, "qtemplate.html", "text/html", "Question 2: What is <VAL A1>? <ANSWER 1>", ver)
qt3_id = DB.create_qt(1, "TESTQ3", "Test question 3", 0, 5.0, 1, topic_id=topic1_id)
ver = DB.get_qt_version(qt3_id)
data = "3\n|9\n|10\n|11\n"
qvars = [{'A1': "9"}, {'A1': "10"}, {'A1': "11"}]
for row in range(0, len(qvars)):
DB.add_qt_variation(qt3_id, row + 1, qvars[row], ver)
DB.create_qt_att(qt3_id, "datfile.dat", "text/plain", data, ver)
DB.create_qt_att(qt3_id, "qtemplate.html", "text/html", "Question 3: What is <VAL A1>? <ANSWER 1>", ver)
data = External.topic_to_zip(topic1_id)
f = open("%s" % fname, mode='w')
f.write(data)
f.close()