connect assessments engine (selects next exercise) to frontend via new API routes
change assessments API route as suggested in review K100348
Merge branch 'master' into assessment
moved setting of assementMode into prepareSite which is called after Exercises.init()

Summary: assessmentMode wasn't being set correctly because Exercise.init() had not been called yet

Test Plan: Load /labs/assessments/fractions page and get a problem wrong and make sure that it doesn't say try again

Reviewers: chris, jace

CC: alpert, eater

Differential Revision: http://phabricator.khanacademy.org/D1074
Brit's dice probability exercise originated by David Sissitka, improved by Kitt, Eater, and Alpert

Test Plan: Local

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D1075
Basic set notation exercise

Added a basic set notation exercise covering unions, intersections and
differences.
Changed from 2 space indents to 4

Whoops. Bad Sublimetext - no donut!
Missing div tag in the vars section

Missed it when reformatting the code. Isn't caching swell.
changed the api call to use user_assessment_key rather than the assessment slug
Merge branch 'assessment'
fixed bug that occured when tmplCleanup gets called before MathJax's typesetting finishes
Merge branch 'assessment'
Domain of a function: Specify that f(x) is a real-valued function.

Summary:
If f(x) is a complex-valued function, the answers may be wrong for sqrt problem
types.

In the knowledge map, it's implicit that this exercise is from R->R because of
where it is in the knowledge map. However, when this question comes up in an
assessment, there is no such context to indicate this to the customer.

Test Plan:
locally, Chrome/OS X

Open the problem and verify the modified problem text appears for a couple of
different seeds / problem types.

Auditors: alpert, eater, jace
CSS nit for Telling Time 0.5 on iPad.

Summary: Trivial change to see if arc diff is working again.

Test Plan: none

Reviewers: csilvers

Reviewed By: csilvers

CC: alpert, eater

Differential Revision: http://phabricator.khanacademy.org/D2013
Make unit circle accept fractions

Summary: Closes #39525.

Test Plan: Answered -1/2 and 0.866 (to two different questions), both were accepted.

Reviewers: eater

Reviewed By: eater

Differential Revision: http://phabricator.khanacademy.org/D2016
A few docstring additions, style cleanups, etc.  No functional change.

Summary:
Rewrite so extract_files() sorts the matches-map, rather than make_potfile.

I think this fits the API abstraction layer, because now we can
promise extract_files() always gives reproducible results, which all
callers of extract_files() are likely to want.

In particular, the json output is now in a fixed order, whereas before
the order was arbitrary.  (The json output is now also a bunch of
lists rather than a map of lists.)

This will also make it easier to add pybabel support.

Add pybabel support via a babel_extract() method.

This just wraps the existing extraction functionality into the API
that pybabel expects.  To be able to share code from the main routine
and pybabel a bit better, I created a new _filename_to_url() method.
To make pybabel runs a bit quieter, I added a --quiet flag.

Also, to make these urls consistent with the ones from the datastore,
I use http://khanacademy.org, not https://.

Test Plan:
Added these lines to babel.ini:
  [exercises: khan-exercises/**.html]
  [extractors]
  exercises = extract_strings:babel_extract

and then ran
   tools/pybabel extract -F tools/babel.ini .

I saw two good things:
1) We were correctly merging the exercise titles with their copies in
the datastore:
  #. -- Pretty display name for exercise
  #. http://www.khanacademy.org/exercise/balancing_chemical_equations
  #. -- Text is in
  #. http://www.khanacademy.org/exercise/balancing_chemical_equations
  #: datastore/current.sqlite:1
  #: khan-exercises/exercises/balancing_chemical_equations.html:1
  msgid "Balancing chemical equations"
  msgstr ""

2) We had exercise-only text:
  #. -- Text is in http://www.khanacademy.org/exercise/z_scores_3
  #: khan-exercises/exercises/z_scores_3.html:1
  msgid ""
  "<code>1 - <var>ZGRID[ROW_INDEX_1][COL_INDEX_1]</var> = <var>roundTo(4, 1 "
  "- ZGRID[ROW_INDEX_1][COL_INDEX_1])</var></code>. This value, <code "
  "class=\"hint_orange\"><var>roundTo(4, 1 - "
  "ZGRID[ROW_INDEX_1][COL_INDEX_1])</var></code>, represents the portion of "
  "the population that scored lower than <code><var>GRADES[0]</var></code> "
  "on the exam."
  msgstr ""

Reviewers: john

Reviewed By: john

CC: alpert

Differential Revision: http://phabricator.khanacademy.org/D2021
Don't accept decimals for the 'integer' form

Summary: Closes #39522. :(

Test Plan:
Verified converting_decimals_to_fractions_2 does not take a decimal, that
converting_fractions_to_decimals does, and that area_of_squares_and_rectangles
still works with integer answers.

Reviewers: eater

Reviewed By: eater

CC: cbhl

Differential Revision: http://phabricator.khanacademy.org/D2023
ensure growth mindset header is not shown in assessment mode

Test Plan: tested locally by hard refreshing without cache before and after the change. saw the header disappear.

Reviewers: jascha

Reviewed By: jascha

CC: alpert

Differential Revision: http://phabricator.khanacademy.org/D2024
Add hints for matrix determinant exercises & split up 2x2 and 3x3 into separate files.

Summary: It is what it is.

Test Plan: Tested locally

Reviewers: eater, alpert

Reviewed By: eater

Differential Revision: http://phabricator.khanacademy.org/D2018
Make sure "question" part of inverse exercises is bolded.

Auditors: eater