Отделить код различных методов получения заданий от остальной системы

Issue #25 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 25 ``` Возможно огромное количество методик выдачи индивидуальных заданий.

Для того, чтобы упростить их добавление и реализацию они должны быть выделены как мини-плагины, реализованные в виде наследников от абстрактного класса, чтобы их легко было дополнять...

Начать следует с разработки абстрактного класса и выделения кода существующих методов как его детей. ```

Reported by `oasychev` on 2011-02-15 10:21:16

Comments (11)

  1. Former user Account Deleted

    ``` Выдача заданий тесно связана со страницей заданий. Сделать для выдачи отдельную страницу или пускай остается как было? ```

    Reported by `oggfire` on 2011-02-18 13:00:11

  2. Oleg Sychev reporter

    ``` Тут надо думать лучше.

    Она может быть связана с разными данными: выбор конкретного задания привязан к отдельному заданию, а случайный выбор - к общему списку например. Иногда (как в случайном выборе с учетом параметра) нужно вводить дополнительные параметры.

    Так что я думаю надо дать ей возможность вставлять HTML-код в разные места - заголовок/подвал списка заданий, отдельное задание и т.д. (подумать, какие именно, анализируя текущие варианты) - а если какому-то методу понадобится отдельная страница, нет ничего проще вставить код со ссылкой на нее. Наше дело скорее ГДЕ может понадобится это вставить... ```

    Reported by `oasychev` on 2011-02-18 20:12:19

  3. Oleg Sychev reporter

    ``` Когда пользователь в форме выбирает метод выдачи заданий - надо проанализировать имеющиеся плагины и дать их список (и выработать режим хранения чтобы данные не сбивались при добавлении нового плагина). Как его называть пользователю плагин должен также сообщать сам. ```

    Reported by `oasychev` on 2011-03-07 20:42:16

  4. Former user Account Deleted

    ``` Пусть плагины-раздатчики заданий тоже получат таблицу в базе - как плагины ответов. Но как плагин будет сообщать свое имя, если все строки хранятся в lang ? ```

    Reported by `oggfire` on 2011-03-11 13:48:23

  5. Oleg Sychev reporter

    ``` А в чем проблема? Пусть функция вернет имя строки из lang.

    Кстати, lang - это php файл и никто ему не мешал делать require/include, в т.ч. в циклах и т.д. ```

    Reported by `oasychev` on 2011-03-11 15:50:16

  6. Oleg Sychev reporter

    ``` Добавить стратегию, имитирующую выдачу модификации на основании варианта из другого экземпляра. И (совместимую) стратегию выбора уровня сложности при перекрывающихся значениях коэффициента сложности.

    Кроме того, возможно данные о том, какие поля использовать при случайном выборе по параметру следует сделать данными стратегии, а не поля, раз уж стратегии стали плагинами - для пользователя будет же логичнее вводить их при стратегии, а не в полях... ```

    Reported by `oasychev` on 2011-04-21 18:35:23 - Status changed: `InProgress`

  7. Former user Account Deleted

    ``` Добавить вызов действий плагина выдачи заданий на странице просмотра задания. Возможно, нужно добавить вызов на главную страницу - например случайное задание можно было бы выдавать сразу как студент зашел в модуль. ```

    Reported by `oggfire` on 2011-06-21 14:05:39

  8. Log in to comment