Форум сайта python.su
Здравствуйте все, суть проблемы в следующем: требуется создать систему удаленного контроля знаний типа Moodle( http://moodle.org/, http://demo.moodle.org/ ). Работаю на Zope 3.4.
Поделитесь своими соображенями, на счет того, как лучше построить в ZODB объекты для реализации проведения тестирования, много чего в голову приходит, но чтобы остановиться на чем-то конкретном - не могу =). Меня в первую очередь интересуют сами объекты - тесты ( идея в том, что тест может содержать ‘n’ вопросов различного типа в одном тесте, например с выбором одного варианта ответа, многих (будут проверятся автоматически), с письменным ответом, который потом будет проверятся преподавателем…. )
Заранее спасибо!
Отредактировано (Апрель 17, 2009 15:41:27)
Офлайн
Делал как-то подобное (theorytesting.com напр., хотя и не совсем то же), и ZODB удобен для подобных вещей. Думаю, можно сделать так:
1) Общий контейнер для тестов.
2) В него можно добавлять тесты.
3) Каждый тест - это контейнер, но с дополнительными полями title и description и чего-то там еще.
В него можно добавлять вопросы - это объекты (Persistent, Contained). Поскольку ответы на вопросы могут иметь разную схему, то сделать разные типы, и потом можно добавлять новые.
4) Объект-вопрос имеет схему (пример для варианта список-строк):
class IQuestionBase(Interface):
question = Text(title=u"Сюда создатель теста записывает вопрос")
class IQuestionWithListAnswer(IQuestionBase):
answersTest = List(
title=u"Это список возможных ответов в текстовом виде"
value_type=TextLine())
answersRight = List(
title=u"Это список правильных ответов",
value_type=TextLine())
session = ISession(self.request)
sessionData = session[FOO_BAR]
sessionData[QEUSTIONS] = questionUIDS
Офлайн
Спасибо, astoon за отзывчивость, я вот тоже больше склоняюсь к такому решению.
Офлайн