Glossary exercise overview

Variables used

lookup_conditions

(dict) словарь условий пользователя для формирования задания, хранится в базе данных (необязательно), модель GlossaryParams;

exercise_choices
(dict) словарь возможного выбора для условий:
exercise_params

(dict) json response сервера с параметрами упражнения.

see also:
exercise_params = {
    'lookup_conditions': lookup_conditions,
    'exercise_choices': {
        'edge_period_items': EDGE_PERIOD_ALIASES,
        'categories': categories,
        'progress': PROGRESS_ALIASES,
    },
}
lookup_parameters

tuple[Q, …] - кортеж инкапсулированых фильтров запроса к модели, формируется контролером при выполнении задания.

Цикл упражнения:

Пользователь наполняет коллекцию терминов глоссария.

Пользователь выбирает условия фильтрации терминов для изучения, при выполнении упражнения, что в включает в себя цепочку событий:

  • пользователь:
    • отправляет запрос (GET request params) на получение параметров упражнения по умолчанию;

  • сервер, представление glossary_exercise_parameters():
  • пользователь:
  • сервер, представление glossary_exercise_parameters():
    • выполняет запрос на сохранение измененных параметров lookup_conditions (необязательно);

  • пользователь:
    • отправляет запрос (POST request exercise) на выполнение упражнения, передает неизмененные/измененные параметры lookup_conditions для текущего упражнения.

  • сервер, представление glossary_exercise():
  • пользователь:
    • отмечает "знаю" / "не знаю" значение термина (необязательно), оправляя запрос на POST request progress;

    • отправляет запрос на новое задание (POST request exercise).

  • сервер:
    • представление update_term_study_progress() сохраняет обновленный прогресс изучения в базе данных;

    • возвращает новое задание.

  • в цикле выполнения упражнения:
    • пользователь отправляет запрос "знаю" / "не знаю" (необязательно);

    • пользователь отправляет запрос на новое задание;

    • сервер обновляет прогресс изучения термина (необязательно);

    • возвращает новое задание.