Реализация класса вопроса Correct Writing
Originally reported on Google Code with ID 98
Реализовать класс вопроса для типа вопроса Correct Writing
Reported by oasychev
on 2012-02-26 20:23:49
Comments (8)
-
reporter -
reporter ``` Дмитрий, следите пожалуйста за коммит-сообщениями. Что такое "дополнительные методы" или "базовые функции"?! Их что, сложно было перечислить в сообщении (если вы не можете подобрать им единого названия)?
И делайте коммиты атомарными! Mercurial может коммиттить часть ваших изменений, если вы сделали их несколько штук за раз, если вы используете современную версию Hg то для этого нужно использовать shelve - откладывание на полку части изменений перед коммитом. Не надо исправление одного увязывать с другим - если придется отменять такой коммит, много проблем.
Строки из shortanswer копировать не обязательно - никто не запрещает вам ссылаться в get_string на shortanswer-строки.
И разберитесь с именем юзера, под которым идут ваши коммиты - это в ваших же интересах... ```
Reported by `oasychev` on 2012-04-07 11:30:29
-
reporter ``` 30. На рисунке странности с отсутствующими и лишними лексемами. Предлагаю лишние зачеркнуть, отсутствующие обвести.
31. Класс вопроса: дублирование кода в конце функций поиска точных и неточных совпадений; вообще не объединить ли их в одну? 32. Класс вопроса: сейчас точное совпадение с низкой оценкой превалирует над (возможно тоже точным) совпадением с высокой... Зачем делать две функции? Не проще ставить условия в зависимости от оценки и прерывать цикл если найдено полное совпадение? 33. Класс вопроса: по требованиям валидации в вопросе должен быть хотя бы один ответ с оценкой 100%, достаточно найти его при поиске максимума...
```
Reported by `oasychev` on 2012-08-09 15:37:09
-
reporter ``` 33. Класс вопроса: по требованиям валидации в вопросе должен быть хотя бы один ответ с оценкой 100%, достаточно найти его при поиске максимума...
public function grade_as_wrong_response_to_max_fraction($response) { $fraction = -1; $maxid = null; foreach($this->answers as $id => $answer) { if (($answer->fraction >= $fraction) || ($maxid == null)) { $maxid = $id; $fraction = $answer->fraction; } } Не совсем понятно зачем искать максимум, когда известно что он равен 100%. Можно найти id первого ответа на 100% и все.
Пишите, пожалуйста, уточняющие вопросы здесь - письмо на почту мне придет, а вспомнить о чем шла речь почти месяц назад будет легче...
```
Reported by `oasychev` on 2012-09-10 16:33:37
-
Account Deleted ``` Все правки по данному issue выполнены. ```
Reported by `mamontov.dp` on 2012-09-25 17:18:48
-
reporter ``` 34. Там есть функция с комментарием / Flushes cached data. TODO: Remove
- / Она еще нужна или TODO пора выполнить?
Над check_match_answer я еще подумаю, не очень она мне нравится. ```
Reported by `oasychev` on 2012-09-30 19:31:25
-
reporter У вас после правок get_correct_response кнопка показа правильного ответа заработала в предпросмотре? Что-то глядя на код мне это сомнительно...
Reported by
oasychev
on 2012-11-08 15:43:27 -
reporter Reported by
oasychev
on 2012-12-14 17:11:10 - Status changed:Done
- Log in to comment
``` В Moodle для класса вопроса принято, что все параметры вопроса (задаваемые на форме ее редактирования и т.д.) являются публичными свойствами. Вы могли видеть это на примере. Функции для доступа к ним не нужны, должны быть только соответствующие свойства.
Это нужно, в частности, для создания объектов вопроса при юнит-тестировании без БД.
Поэтому исправьте свой код.
И для логических операций в Moodle принят С++ стиль, а вы кое где на and or по паскалевскому перешли (PHP допускает оба). Исправьте. У них и приоритеты разные... ```
Reported by `oasychev` on 2012-02-26 20:27:51