Commit graph

1733 commits

Author SHA1 Message Date
Matt Lott
951db5a721 🐛Fix course ordering and furthest logic in dashboard
Also speeding up server APIs via lean() db calls
2016-09-19 13:17:02 -07:00
Scott Erickson
be1c1323ac Patch fixes
* Partially revert GET /db/:collection/:handle/patches, as it returned limited results for versioned docs
* Fix POST /db/:collection/:handle/patch to:
   * normalize diffs based on latest doc version
   * handle empty deltas
   * not swallow thrown errors due to _.curry
   * Set 'target.original' correctly for versioned collections
2016-09-16 16:02:56 -07:00
Nick Winter
6b75fb0a76 Use old China server behavior for users who have paid in the past but aren't currently subscribed 2016-09-16 10:49:05 -07:00
Matt Lott
c92f2e152e Increase course trial request delighted delay to 10 days 2016-09-14 11:50:25 -07:00
Rob
2a6e186c98 Also make redirect_uri configurable. 2016-09-13 15:33:58 -07:00
Rob
8359c95489 Initial draft of clever integration. 2016-09-13 15:18:19 -07:00
Rob
6e2e3d5cb7 Check if searching for an id 2016-09-13 11:49:18 -07:00
Rob
61bf5824ac Query sphinx search if configured. 2016-09-13 11:48:49 -07:00
Matt Lott
b803080bed Only return member sessions for assigned courses
Closes #3906
2016-09-12 09:24:20 -07:00
Matt Lott
ed8e36f5cd Put student pages under /students
Closes #3909
2016-09-12 06:20:59 -07:00
Scott Erickson
6ac854c40a Add update classroom buttons to AdministerUserModal 2016-09-09 16:05:03 -07:00
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
Scott Erickson
1fb7996f6c Fix EarnedAchievement.upsertFor to handle achievements that had no rewards 2016-09-08 10:32:59 -07:00
Scott Erickson
9088f98eae Add function to properties that trigger achievement updates 2016-09-06 10:32:54 -07:00
Scott Erickson
2fe28852b4 More achievement tweaks
* Clients check updated achievements as well as new ones
* Clients do not wait to keep checking
* Update achievement points along with everything else in EarnedAchievement.upsertFor
* Fix various bugs
2016-09-06 09:37:02 -07:00
Rob
9888bb7cef Display info when connected to analytics mongo like we do for LS and main. 2016-09-02 16:00:50 -07:00
Rob
888d43fc5c Change how we connect to the analytics database. 2016-09-02 15:57: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
Phoenix Eliot
663c220eaf Show wev-dev iFrame error messages like Aether's
This heavily refactors SpellView and adds infrastructure for receiving and reporting Errors raised by the web-dev iFrame. The web-dev error system, the Aether error system, and the Ace html-worker avoid disturbing each others' errors/annotations (though currently Aether+web-dev errors won't coexist), and they clear/update their own asynchronously.

Show web-dev iFrame errors as Ace annotations

Add functional error banners (with poor messages)

Improve error banners, don't allow duplicate Problems

Refactor setAnnotations override

Convert all constructor calls for Problems

Add comments, clean up

Clean up

Don't clear things unnecessarily

Clean up error message sending from iFrame

Add web-dev:error schema

Clarify error message attributes

Refactor displaying AetherProblems

Refactor displaying user problem banners

Refactor onWebDevError

Set ace styles on updating @problems

Clean up, fix off-by-1 error

Add comment

Show stale web-dev errors differently
Some web-dev errors are generated by "stale" code — code that's still running in the iFrame but doesn't have the player's recent changes.
This shows those errors differently than if they weren't "stale", and suggests they re-run their code.

Hook up web-dev event schema

Destroy ignored duplicate problems

Functionalize a bit of stuff

Fix ProblemAlertView never loading
2016-08-31 10:59:06 -07:00
Scott Erickson
273845ce2e Fix POST /db/earned_achievement to be accessible to anonymous users 2016-08-31 10:07:19 -07:00
Scott Erickson
956ff3300b Fix POST /db/level/:names 2016-08-31 09:56:41 -07:00
Scott Erickson
cf9d082ffa Have client check for achievement updates 2016-08-29 16:32:42 -07:00
Scott Erickson
139efe4cf7 Implement POST /db/user/:handle/check-for-new-achievement, couple tweaks
* Enforce being logged in for POST /db/earned_achievement
* Extend timeout for race condition user tests
2016-08-29 14:53:51 -07:00
Scott Erickson
f509c95a4b Refactor POST /db/earned_achievement 2016-08-29 14:53:36 -07:00
Scott Erickson
5c8b8832b3 Refactor and better test EarnedAchievement.createForAchievement 2016-08-29 14:52:50 -07:00
Scott Erickson
ae82875c57 Refactor post new level version handler, add failed save handling
When a new version is created, the latest version is updated, then
the new one is made. If making a new one fails (most commonly due to
a name conflict), the latest version is left in a broken state. Set up
the new middleware to revert changes to latest version in this case,
and update the level handler to use the middleware. Also added
warning logs if models do not have editableProperties or postEditableProperties
set.
2016-08-25 10:28:46 -07:00
Matt Lott
22e3f445c0 Add achievement hidden property 2016-08-24 07:37:11 -07:00
Nick Winter
bfa49cbbc6 Fix sending too much and not enough data on arena sessions 2016-08-23 16:02:03 -07:00
Scott Erickson
09a9358b9e Modify courses i18n edit view to be less error-prone
* Do not use 'backup' system
* Warn when about to lose changes
* Show list of patches and their statuses
2016-08-23 14:36:45 -07:00
Matt Lott
61be34a0f4 Sort courses in teacher ux
Closes #3870
2016-08-22 11:18:26 -07:00
Scott Erickson
cdba1788e7 Tweak username-should-not-be-email error message 2016-08-22 11:02:40 -07:00
Matt Lott
05159ff7c2 Support course slugs that match course names
Must be backwards compatible until we update the course slugs.

Closes #3867
2016-08-19 16:05:37 -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
Nick Winter
8ec17265dc Give China server all free levels but hide paid levels (#3855)
* Give China server all free levels but hide paid levels

* Don't prompt to buy gmes on free-only server on insufficient gems for item/hero purchases
2016-08-17 10:00:56 -07:00
Matt Lott
84e3ee270a Add primer level support to classroom Ux
Exclude levels if classroom.aceConfig.language == level.primerLanguage

Closes #3856
2016-08-16 16:52:17 -07:00
Rob
07f6f98c24 Refactor remote server readpref and connection strings. 2016-08-16 13:35:15 -07:00
Scott Erickson
a5f18f88be Add script that migrates users with email-formatted usernames 2016-08-12 14:34:08 -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
Matt Lott
eaddf2fa8d Add level schema primerLanguage
For web-dev 2 course in the short term
2016-08-11 06:08:58 -07:00
Scott Erickson
2e5c15cc6d Internationalize student UI for game dev levels 2016-08-10 12:47:34 -07:00
Matt Lott
1439016f9b Remove schoolName from school-counts user query 2016-08-09 06:33:31 -07:00
Scott Erickson
c89ee139ed Have GET param 'project' work with [] notation
Otherwise queries like $.ajax('/db/campaign', {data: {project:['name','slug']}})
cause 500 errors.
2016-08-08 09:35:42 -07:00
Matt Lott
6f08d5e422 Add required district field to teacher trial request forms
School now optional
N/A placeholder on district field and don't save it if it's n/a
Updating required field error UI a bit, and there is some larger
refactoring needed here later.
NCES phone number for district only entries will currently be a child
school, will fix later.

Closes #3818
2016-08-05 13:25:19 -07:00
Matt Lott
96cbcfada2 🐛Fix prepaids middleware missing this.logError 2016-08-05 09:21:37 -07:00
Nick Winter
246469bdde A couple fixes for demo flow 2016-08-04 18:37:13 -07:00
phoenixeliot
5f560f3e7d Don't allow conversion to student without a ClassCode
Fix i18n and tests
2016-08-01 16:44:57 -07:00
phoenixeliot
94e3c5a2b5 Add first/last names to Account Settings 2016-08-01 14:12:35 -07:00
Matt Lott
00221e6c91 🐛Fix license inquiry contact lookup boolean 2016-07-28 15:14:38 -07:00