# `ReviewController`

class mnemosyne.libmnemosyne.review_controller.ReviewController(component_manager)

  Controls the behaviour of a widget which implements the ReviewWidget interface.

  The review controller is the one that should instantiate the review widget, and only one needed. There could be many review widgets defined in plugins, and instantiating them all when starting the program could be slow, especially on a mobile device.

  component_type = 'review_controller'
  counters()

    Returns tuple (scheduled_count, non_memorised_count, active_count).

  grade_answer(grade)

    All the code that needs to run after the user grades the answer. Note that this also incluse pulling in a new question.

  is_answer_showing()
  is_question_showing()
  reload_counters()

    To be called when counters need to be reloaded from the database.

  reset()
  reset_but_try_to_keep_current_card()

    This is typically called after activities which invalidate the current queue, like ‘Activate cards’ or ‘Configure’. For the best user experience, we try to keep the card that is currently being asked if possible.

  set_render_chain(render_chain)
  set_state(state)
  show_answer()
  show_new_question()
  state()
  update_dialog()
  update_status_bar_counters()