   'homework'
 ].concat(PRACTICES)
 
+ALL_TYPES = ['reading'].concat(SEE_AHEAD_ALLOWED)
+
+TYPE_SEPARATOR = '-'
+
 makeStep = (task, step = {}, stepIndex) ->
 
   if step.chapter_section?


hasBeenPlaced = (settingKey) ->
  settings = UiSettings.get(settingKey)
  not _.isEmpty(settings)

isPractice = (task) ->
  _.contains(PRACTICES, task.type)

stepMapOneTimeCard = (condition, type, settingKey, isAvailable, task, step, stepIndex) ->
  settingKeyForTaskType = "#{settingKey}-#{task.type}"

  if hasBeenPlaced(settingKeyForTaskType)
    if isPlacedHere(settingKeyForTaskType, step)

makeUiSettings = (initial) ->
  deepMerge({}, ONE_TIME_CARD_DEFAULTS, initial)

makeKeyForType = (settingKey, taskType) ->
  "#{settingKey}#{TYPE_SEPARATOR}#{taskType}"

isPlacedHere = (settingKey, step) ->
  settings = UiSettings.get(settingKey)
  settings = settings.placement or settings
