Commit graph

11 commits

Author SHA1 Message Date
Scott Erickson
7bab895dee Generalize new I18N view system
Previously, when diplomats submit translations, the system
would try to figure out whether it should be a 'patch' or a 'change',
and then would either create a patch for an admin or artisan to
review and accept or reject, or would apply the changes immediately
and they would be live. This was done as a compromise between
getting translations live quickly, but also preventing already-translated
text from getting overwritten without oversight.

But having the client handle this added logical complexity. So
this makes all diplomats submit patches, no matter what. The server
is then in charge of deciding if it should auto-accept the patch or not.
Either way, a patch is created.

There was also much refactoring. This commit includes:

* Update jsondiffpatch so changes within array items are handled correctly
* Refactor posting patches to use the new auto-accepting logic, and out of Patch model
* Refactor POST /db/patch/:handle/status so that it doesn't rely on handlers
* Refactor patch stat handling to ensure auto-accepted patches are counted
* Refactor User.incrementStat to use mongodb update commands, to avoid race conditions
* Refactor Patch tests
2016-09-09 10:59:26 -07:00
Matt Lott
e43d90ae23 🐛Fix auto level solutions numbering
Practice levels were being numbered normally.
2016-08-31 17:34:15 -07:00
Scott Erickson
300c81e72b Course translations fixes
* Restrict patch handling properly
* Fix #3860, CS 2 description
* i18nCoverage is updated when new translations are auto-accepted
* Course patches are listed on PendingPatchesView properly
* 'Artisan' permission allows editing course translations
2016-08-18 13:29:52 -07:00
Scott Erickson
d4af931e05 Add course (name, description) translations 2016-08-18 10:10:18 -07:00
Matt Lott
5a6bed96b2 🐛Fix course solutions level ordering 2016-08-11 22:26:47 -07:00
Matt Lott
a7e290fffe Replace course guide PDFs with solutions pages 2016-08-11 15:29:56 -07:00
phoenixeliot
f1f020a50d Use course.releasePhase instead of .adminOnly
Remove old comment
2016-07-25 11:29:30 -07:00
Nick Winter
d37527d21b Ordering/labeling courses: CS1, CS2, GD1, WD1, CS3, etc 2016-07-16 00:35:52 -07:00
Scott Erickson
486949d07c Admin only courses (#3797)
* adminOnly course field

* Properly check not-admin-only when fetching courses
2016-07-15 13:28:35 -07:00
Scott Erickson
0581ffde82 Clean server test logging 2016-06-17 10:35:22 -07:00
phoenixeliot
91fa467251 Fix teacher sessionless play; uses default campaign levels
Fix typo

Fix race condition with loading next level

Return an empty object for next level instead of an error;
Supermodel has a race condition when some of the models fail to load,
when we override an error response as "success".

Fix next level spec

Remove comment per Scott's request
2016-04-28 12:46:09 -07:00