本文整理汇总了Python中oasis.lib.Topics.get_qts方法的典型用法代码示例。如果您正苦于以下问题:Python Topics.get_qts方法的具体用法?Python Topics.get_qts怎么用?Python Topics.get_qts使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oasis.lib.Topics
的用法示例。
在下文中一共展示了Topics.get_qts方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_topic_position
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def test_topic_position(self):
""" Test putting qtemplates into topics and moving them around
"""
course_id = Courses.create("TEST101", "Test topic position logic", 1, 1)
topic1_id = Topics.create(course_id, "TESTTOPIC1", 1, 2)
topic2_id = Topics.create(course_id, "TESTTOPIC2", 3, 3)
qt1_id = DB.create_qt(1, "TESTQ1", "Test question 1", 0, 5.0, 1)
qt2_id = DB.create_qt(1, "TESTQ2", "Test question 2", 0, 4.1, 2, topic1_id)
DB.move_qt_to_topic(qt1_id, topic1_id)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 0)
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), 0)
self.assertEqual(DB.get_topic_for_qtemplate(qt1_id), topic1_id)
self.assertEqual(DB.get_topic_for_qtemplate(qt2_id), topic1_id)
DB.update_qt_practice_pos(qt1_id, 3)
DB.update_qt_practice_pos(qt2_id, 2)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 3)
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), 2)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 3, "Broken cache?")
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), 2, "Broken cache?")
DB.update_qt_practice_pos(qt1_id, 0)
DB.update_qt_practice_pos(qt2_id, -1)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 0)
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), -1)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 0, "Broken cache?")
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), -1, "Broken cache?")
qts = Topics.get_qts(topic1_id)
self.assertIn(qt1_id, qts)
self.assertIn(qt2_id, qts)
self.assertEqual(len(qts), 2)
DB.move_qt_to_topic(qt1_id, topic2_id)
qts = Topics.get_qts(topic1_id)
self.assertNotIn(qt1_id, qts)
self.assertIn(qt2_id, qts)
self.assertEqual(len(qts), 1)
示例2: topic_to_zip
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def topic_to_zip(topic_id):
"""
:param topic_id: ID of the topic to export
:return: binary string containing ZIPped data
"""
topic = Topics.get_topic(topic_id)
qts = Topics.get_qts(topic_id)
return qts_to_zip(qts, extra_info={'topic': topic})
示例3: topic_to_zip
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def topic_to_zip(topic_id, fname='oa_export', suffix='oaq'):
"""
:param topic_id: ID of the topic to export
:param fname: filename to create
:param suffix: suffix
:return: binary string containing ZIPped data
"""
topic = Topics.get_topic(topic_id)
qts = Topics.get_qts(topic_id)
return qts_to_zip(qts, fname=fname, extra_info={'topic': topic})
示例4: cadmin_edit_topic
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def cadmin_edit_topic(course_id, topic_id):
""" Present a page to view and edit a topic, including adding/editing
questions and setting some parameters.
"""
user_id = session['user_id']
if not course_id:
abort(404)
course = Courses2.get_course(course_id)
topic = {
'id': topic_id,
'position': Topics.get_pos(topic_id),
'name': Topics.get_name(topic_id)
}
questions = [question
for question in Topics.get_qts(topic_id).values()]
for question in questions:
question['embed_id'] = DB.get_qt_embedid(question['id'])
if question['embed_id']:
question['embed_url'] = "%s/embed/question/%s/question.html" % \
(OaConfig.parentURL, question['embed_id'])
else:
question['embed_url'] = None
question['editor'] = DB.get_qt_editor(question['id'])
all_courses = Courses2.get_course_list()
all_courses = [crse
for crse in all_courses
if satisfy_perms(user_id, int(crse['id']),
("questionedit", "courseadmin",
"sysadmin"))]
all_courses.sort(lambda f, s: cmp(f['name'], s['name']))
all_course_topics = []
for crse in all_courses:
topics = Courses.get_topics_all(crse['id'], numq=False)
if topics:
all_course_topics.append({'course': crse['name'], 'topics': topics})
questions.sort(key=lambda k: k['position'])
return render_template(
"courseadmin_edittopic.html",
course=course,
topic=topic,
questions=questions,
all_course_topics=all_course_topics
)
示例5: test_topic_nextprev
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def test_topic_nextprev(self):
""" Do the "next/previous" options in practice work?
"""
course_id = Courses.create("TEST101", "Test topic next/prev logic", 1, 1)
topic1_id = Topics.create(course_id, "TESTTOPIC1", 1, 2)
qt1_id = DB.create_qt(1, "TESTQ1", "Test question 1", 0, 5.0, 1)
qt2_id = DB.create_qt(1, "TESTQ2", "Test question 2", 0, 4.1, 2)
qt3_id = DB.create_qt(1, "TESTQ3", "Test question 3", 0, 0.0, 2)
qt4_id = DB.create_qt(1, "TESTQ4", "Test question 4", 0, 2.0, 2)
DB.move_qt_to_topic(qt1_id, topic1_id)
DB.move_qt_to_topic(qt2_id, topic1_id)
DB.move_qt_to_topic(qt3_id, topic1_id)
DB.move_qt_to_topic(qt4_id, topic1_id)
DB.update_qt_practice_pos(qt1_id, 1)
DB.update_qt_practice_pos(qt2_id, 2)
DB.update_qt_practice_pos(qt3_id, 3)
DB.update_qt_practice_pos(qt4_id, 4)
qts = Topics.get_qts(topic1_id)
self.assertIn(qt1_id, qts)
self.assertIn(qt2_id, qts)
self.assertIn(qt3_id, qts)
self.assertIn(qt4_id, qts)
self.assertEqual(len(qts), 4)
self.assertTupleEqual(Practice.get_next_prev_pos(qt1_id, topic1_id), (None, 2))
self.assertTupleEqual(Practice.get_next_prev_pos(qt2_id, topic1_id), (1, 3))
self.assertTupleEqual(Practice.get_next_prev_pos(qt3_id, topic1_id), (2, 4))
self.assertTupleEqual(Practice.get_next_prev_pos(qt4_id, topic1_id), (3, None))
DB.update_qt_practice_pos(qt2_id, 3)
self.assertEqual(DB.get_qtemplate_practice_pos(qt1_id), 1)
self.assertEqual(DB.get_qtemplate_practice_pos(qt2_id), 3)
self.assertEqual(DB.get_qtemplate_practice_pos(qt3_id), 3)
self.assertEqual(DB.get_qtemplate_practice_pos(qt4_id), 4)
self.assertTupleEqual(Practice.get_next_prev_pos(qt1_id, topic1_id), (None, 3))
self.assertTupleEqual(Practice.get_next_prev_pos(qt2_id, topic1_id), (1, 4))
self.assertTupleEqual(Practice.get_next_prev_pos(qt3_id, topic1_id), (1, 4))
self.assertTupleEqual(Practice.get_next_prev_pos(qt4_id, topic1_id), (3, None))
self.assertTupleEqual(Practice.get_next_prev_pos(qt4_id, None), (None, None))
示例6: cadmin_view_topic
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def cadmin_view_topic(course_id, topic_id):
""" Present a page to view a topic, including basic stats """
user_id = session["user_id"]
if not course_id:
abort(404)
course = Courses2.get_course(course_id)
topic = {"id": topic_id, "position": Topics.get_pos(topic_id), "name": Topics.get_name(topic_id)}
questions = [question for question in Topics.get_qts(topic_id).values()]
for question in questions:
question["embed_id"] = DB.get_qt_embedid(question["id"])
if question["embed_id"]:
question["embed_url"] = "%s/embed/question/%s/question.html" % (OaConfig.parentURL, question["embed_id"])
else:
question["embed_url"] = None
question["editor"] = DB.get_qt_editor(question["id"])
all_courses = Courses2.get_course_list()
all_courses = [
crse
for crse in all_courses
if satisfy_perms(user_id, int(crse["id"]), ("questionedit", "courseadmin", "sysadmin"))
]
all_courses.sort(lambda f, s: cmp(f["name"], s["name"]))
all_course_topics = []
for crse in all_courses:
topics = Courses.get_topics_all(crse["id"], numq=False)
if topics:
all_course_topics.append({"course": crse["name"], "topics": topics})
questions.sort(key=lambda k: k["position"])
return render_template(
"courseadmin_viewtopic.html",
course=course,
topic=topic,
questions=questions,
all_course_topics=all_course_topics,
)
示例7: get_q_list
# 需要导入模块: from oasis.lib import Topics [as 别名]
# 或者: from oasis.lib.Topics import get_qts [as 别名]
def get_q_list(tid, uid=None, numdone=True):
""" Return a list of dicts with question template information for the topic.
[{ qtid: int QTemplate ID
name: string Name of Question
position: int Position of Question in topic
done: Number of times the given user has submitted a question
for practice
},]
"""
qlist = []
qtemplates = Topics.get_qts(int(tid))
for qtid in qtemplates:
if uid and numdone:
num = DB.get_student_q_practice_num(uid, qtid)
else:
num = 0
qlist.append({'qtid': qtid,
'name': qtemplates[qtid]['name'],
'position': qtemplates[qtid]['position'],
'done': num})
# Sort them by position
qlist.sort(lambda f, s: cmp(f["position"], s["position"]))
return qlist