CHANGELOG.rst 22 KB
Newer Older
1 2 3 4 5 6
Change Log
----------

These are notable changes in edx-platform.  This is a rolling list of changes,
in roughly chronological order, most recent first.  Add your entries at or near
the top.  Include a label indicating the component affected.
polesye committed
7

8 9
LMS: Fix answer distribution download for small courses. LMS-922, LMS-811

10 11
Blades: Add template for the zooming image in studio. BLD-206.

12 13
Blades: Update behavior of start/end time fields. BLD-506.

14 15
Blades: Make LTI module not send grade_back_url if has_score=False. BLD-561.

16 17
Blades: Show answer for imageresponse. BLD-21.

18 19 20
Blades: LTI additional Python tests. LTI must use HTTPS for
lis_outcome_service_url. BLD-564.

polesye committed
21
Blades: Fix bug when Image mapping problems are not working for students in IE. BLD-413.
22

23 24 25
Blades: Add template that displays the most up-to-date features of
drag-and-drop. BLD-479.

26
Blades: LTI fix bug e-reader error when popping out window. BLD-465.
27

28 29 30 31
Common: Switch from mitx.db to edx.db for sqlite databases. This will effectively
  reset state for local instances of the code, unless you manually rename your
  mitx.db file to edx.db.

32 33 34 35 36
Common: significant performance improvement for authorization checks and location translations.
  Ensure all auth checks, check all possible permutations of the auth key (Instructor dashboard
  now shows when it should for all courses in lms).
  Made queries for Studio dashboard 2 orders of magnitude faster (and fewer).

37 38
Blades: Video Transcripts: Fix clear and download buttons. BLD-438.

39 40 41 42
Common: Switch over from MITX_FEATURES to just FEATURES. To override items in
  the FEATURES dict, the environment variable you must set to do so is also
  now called FEATURES instead of MITX_FEATURES.

43 44 45 46
LMS: Change the forum role granted to global staff on enrollment in a
course. Previously, staff were given the Moderator role; now, they are
given the Student role.

47 48
Blades: Fix Numerical input to support mathematical operations. BLD-525.

49 50 51
Blades: Improve calculator's tooltip accessibility. Add possibility to navigate
  through the hints via arrow keys. BLD-533.

52 53 54 55
LMS: Add feature for providing background grade report generation via Celery
  instructor task, with reports uploaded to S3. Feature is visible on the beta
  instructor dashboard. LMS-58

56 57 58 59
Blades: Added grading support for LTI module. LTI providers can now grade
student's work and send edX scores. OAuth1 based authentication
implemented. BLD-384.

60 61 62 63 64
LMS: Beta-tester status is now set on a per-course-run basis, rather than being
  valid across all runs with the same course name. Old group membership will
  still work across runs, but new beta-testers will only be added to a single
  course run.

65 66
Blades: Enabled several Video Jasmine tests. BLD-463.

67 68 69 70
Studio: Continued modification of Studio pages to follow a RESTful framework.
includes Settings pages, edit page for Subsection and Unit, and interfaces
for updating xblocks (xmodules) and getting their editing HTML.

71 72
LMS: Improve accessibility of inline discussions in courseware.

73 74 75
Blades: Put 2nd "Hide output" button at top of test box & increase text size for
code response questions. BLD-126.

76 77
Blades: Update the calculator hints tooltip with full information. BLD-400.

78 79
Blades: Fix transcripts 500 error in studio (BLD-530)

80 81 82
LMS: Add error recovery when a user loads or switches pages in an
inline discussion.

83 84
Blades: Allow multiple strings as the correct answer to a string response
question. BLD-474.
85

86 87
Blades: a11y - Videos will alert screenreaders when the video is over.

88 89 90
LMS: Trap focus on the loading element when a user loads more threads
in the forum sidebar to improve accessibility.

91
LMS: Add error recovery when a user loads more threads in the forum sidebar.
92

93 94
LMS: Add a user-visible alert modal when a forums AJAX request fails.

95 96
Blades: Add template for checkboxes response to studio. BLD-193.

97 98 99 100 101 102 103
Blades: Video player:
  - Add spinner;
  - Improve initialization of modules;
  - Speed up video resizing during page loading;
  - Speed up acceptance tests. (BLD-502)
  - Fix transcripts bug - when show_captions is set to false. BLD-467.

cahrens committed
104 105
Studio: change create_item, delete_item, and save_item to RESTful API (STUD-847).

106 107 108
Blades: Fix answer choices rearranging if user tries to stylize something in the
text like with bold or italics. (BLD-449)

109 110 111
LMS: Beta instructor dashboard will only count actively enrolled students for
course enrollment numbers.

112 113
Blades: Fix speed menu that is not rendered correctly when YouTube is
unavailable. (BLD-457).
114

115 116 117
LMS: Users with is_staff=True no longer have the STAFF label appear on
their forum posts.

118 119 120 121
Blades: Video start and end times now function the same for both YouTube and
HTML5 videos. If end time is set, the video can still play until the end, after
it pauses on the end time.

122 123
Blades: Disallow users to enter video url's in http.

124 125
LMS: Improve the acessibility of the forum follow post buttons.

126 127 128
Blades: Latex problems are now enabled via use_latex_compiler
key in course settings. (BLD-426)

polesye committed
129 130
Blades: Fix bug when the speed can only be changed when the video is playing.

131 132 133
LMS: The dialogs on the wiki "changes" page are now accessible to screen
readers.  Now all wiki pages have been made accessible. (LMS-1337)

134 135 136
LMS: Change bulk email implementation to use less memory, and to better handle
duplicate tasks in celery.

137 138 139 140 141 142
LMS: When a topic is selected in the forums navigation sidebar, fetch
the thread list using the /threads endpoint of the comments service
instead of /search/threads, which does not sort and paginate
correctly. This requires at least version 31ef160 of
cs_comments_service.

143 144 145 146
LMS: Improve forum error handling so that errors in the logs are
clearer and HTTP status codes from the comments service indicating
client error are correctly passed through to the client.

polesye committed
147
LMS: Improve performance of page load and thread list load for
148 149
discussion tab

150 151
LMS: The wiki markup cheatsheet dialog is now accessible to screen readers.
(LMS-1303)
Diana Huang committed
152

153 154
Common: Add skip links for accessibility to CMS and LMS. (LMS-1311)

cahrens committed
155
Studio: Change course overview page, checklists, assets, import, export, and course staff
156 157
management page URLs to a RESTful interface. Also removed "\listing", which
duplicated "\index".
158

159 160
LMS: Fixed accessibility bug where users could not tab through wiki (LMS-1307)

161 162 163 164
Blades: When start time and end time are specified for a video, a visual range
will be shown on the time slider to highlight the place in the video that will
be played.

polesye committed
165 166
Studio: added restful interface for finding orphans in courses.
An orphan is an xblock to which no children relation points and whose type is not
167
in the set contentstore.views.item.DETACHED_CATEGORIES nor 'course'.
polesye committed
168
    GET http://host/orphan/org.course returns json array of ids.
169
        Requires course author access.
polesye committed
170
    DELETE http://orphan/org.course deletes all the orphans in that course.
171 172
        Requires is_staff access

173 174 175
Studio: Bug fix for text loss in Course Updates when the text exists
before the first tag.

176 177 178 179 180
Common: expect_json decorator now puts the parsed json payload into a json attr
on the request instead of overwriting the POST attr

---------- split mongo backend refactoring changelog section ------------

181
Studio: course catalog, assets, checklists, course outline pages now use course
182 183 184 185 186 187 188 189
id syntax w/ restful api style

Common:
  separate the non-sql db connection configuration from the modulestore (xblock modeling) configuration.
  in split, separate the the db connection and atomic crud ops into a distinct module & class from modulestore

Common: location mapper: % encode periods and dollar signs when used as key in the mapping dict

190
Common: location mapper: added a bunch of new helper functions for generating
191 192 193 194 195 196
old location style info from a CourseLocator

Common: locators: allow - ~ and . in course, branch, and block ids.

---------- end split mongo backend section ---------

197 198 199 200 201
Blades: Hovering over CC button in video player, when transcripts are hidden,
will cause them to show up. Moving the mouse from the CC button will auto hide
them. You can hover over the CC button and then move the mouse to the
transcripts which will allow you to select some video position in 1 click.

polesye committed
202 203
Blades: Add possibility to use multiple LTI tools per page.

204 205
Blades: LTI module can now load external content in a new window.

Adam Palay committed
206
LMS: Disable data download buttons on the instructor dashboard for large courses
Diana Huang committed
207

Adam Palay committed
208 209 210
Common: Adds ability to disable a student's account. Students with disabled
accounts will be prohibited from site access.

Diana Huang committed
211 212
LMS: Fix issue with CourseMode expiration dates

213 214
LMS: Ported bulk emailing to the beta instructor dashboard.

215 216
LMS: Add monitoring of bulk email subtasks to display progress on instructor dash.

Diana Huang committed
217 218
LMS: Refactor and clean student dashboard templates.

Diana Huang committed
219 220
LMS: Fix issue with CourseMode expiration dates

221 222 223 224
CMS: Add text_customization Dict to advanced settings which can support
string customization at particular spots in the UI.  At first just customizing
the Check/Final Check buttons with keys: custom_check and custom_final_check

Ned Batchelder committed
225 226
LMS: Add PaidCourseRegistration mode, where payment is required before course
registration.
Jason Bau committed
227

228 229
Studio: Switched to loading Javascript using require.js

Julian Arni committed
230 231
Studio: Better feedback during the course import process

232 233
Studio: Improve drag and drop on the course overview and subsection views.

Renzo Lucioni committed
234 235
LMS: Add split testing functionality for internal use.

236 237 238
CMS: Add edit_course_tabs management command, providing a primitive
editing capability for a course's list of tabs.

Ned Batchelder committed
239 240
Studio and LMS: add ability to lock assets (cannot be viewed unless registered
for class).
cahrens committed
241

242 243
Studio: add restful interface for paging assets (no UX yet, but just add
/start/45/max/50 to end of url to get items 45-95, e.g.)
Don Mitchell committed
244

245 246 247
LMS: First round of improvements to New (beta) Instructor Dash:
improvements, fixes, and internationalization to the Student Info section.

248 249
LMS: Improved accessibility of parts of forum navigation sidebar.

Ned Batchelder committed
250 251
LMS: enhanced accessibility labeling and aria support for the discussion forum
new post dropdown as well as response and comment area labeling.
252

253 254
Blades: Add Studio timed transcripts editor to video player.

Jason Bau committed
255
LMS: enhanced shib support, including detection of linked shib account
Jason Bau committed
256 257
at login page and support for the ?next= GET parameter.

258
LMS: Experimental feature using the ICE change tracker JS pkg to allow peer
Jason Bau committed
259 260
assessors to edit the original submitter's work.

261 262 263
LMS: Fixed a bug that caused links from forum user profile pages to
threads to lead to 404s if the course id contained a '-' character.

Ned Batchelder committed
264 265 266
Studio/LMS: Added ability to set due date formatting through Studio's Advanced
Settings.  The key is due_date_display_format, and the value should be a format
supported by Python's strftime function.
267

268 269 270
Common: Added configurable backends for tracking events. Tracking events using
the python logging module is the default backend. Support for MongoDB and a
Django database is also available.
271

272
Blades: Added Learning Tools Interoperability (LTI) blade. Now LTI components
273 274
can be included to courses.

275 276 277
LMS: Added alphabetical sorting of forum categories and subcategories.
It is hidden behind a false defaulted course level flag.

Peter Fogg committed
278 279 280
Studio: Allow course authors to set their course image on the schedule
and details page, with support for JPEG and PNG images.

281 282 283
LMS, Studio: Centralized startup code to manage.py and wsgi.py files.
Made studio runnable using wsgi.

284 285
Blades: Took videoalpha out of alpha, replacing the old video player

286 287 288 289
Common: Allow instructors to input complicated expressions as answers to
`NumericalResponse`s. Prior to the change only numbers were allowed, now any
answer from '1/3' to 'sqrt(12)*(1-1/3^2+1/5/3^2)' are valid.

290 291 292 293 294
Studio/LMS: Allow for 'preview' and 'published' in a single LMS instance. Use
middlware components to retain the incoming Django request and put in thread
local storage. It is recommended that all developers define a 'preview.localhost'
which maps to the same IP address as localhost in his/her HOSTS file.

295 296 297 298
LMS: Enable beta instructor dashboard. The beta dashboard is a rearchitecture
of the existing instructor dashboard and is available by clicking a link at
the top right of the existing dashboard.

299 300 301 302 303 304 305 306 307
Common: CourseEnrollment has new fields `is_active` and `mode`. The mode will be
used to differentiate different kinds of enrollments (currently, all enrollments
are honor certificate enrollments). The `is_active` flag will be used to
deactivate enrollments without deleting them, so that we know what course you
*were* enrolled in. Because of the latter change, enrollment and unenrollment
logic has been consolidated into the model -- you should use new class methods
to `enroll()`, `unenroll()`, and to check `is_enrolled()`, instead of creating
CourseEnrollment objects or querying them directly.

308 309 310
LMS: Added bulk email for course feature, with option to optout of individual
course emails.

311 312 313
Studio: Email will be sent to admin address when a user requests course creator
privileges for Studio (edge only).

314 315 316
Studio: Studio course authors (both instructors and staff) will be auto-enrolled
for their courses so that "View Live" works.

317 318 319 320
Common: Add a new input type ``<formulaequationinput />`` for Formula/Numerical
Responses. It periodically makes AJAX calls to preview and validate the
student's input.

Diana Huang committed
321 322
Common: Added ratelimiting to our authentication backend.

323 324
Common: Add additional logging to cover login attempts and logouts.

cahrens committed
325 326 327 328
Studio: Send e-mails to new Studio users (on edge only) when their course creator
status has changed. This will not be in use until the course creator table
is enabled.

329 330 331
Studio: Added improvements to Course Creation: richer error messaging, tip
text, and fourth field for course run.

332 333 334 335 336 337 338 339 340 341
Blades: New features for VideoAlpha player:
1.) Controls are auto hidden after a delay of mouse inactivity - the full video
becomes visible.
2.) When captions (CC) button is pressed, captions stick (not auto hidden after
a delay of mouse inactivity). The video player size does not change - the video
is down-sized and placed in the middle of the black area.
3.) All source code of Video Alpha 2 is written in JavaScript. It is not a basic
conversion from CoffeeScript. The structure of the player has been changed.
4.) A lot of additional unit tests.

342 343 344 345 346
LMS: Added user preferences (arbitrary user/key/value tuples, for which
which user/key is unique) and a REST API for reading users and
preferences. Access to the REST API is restricted by use of the
X-Edx-Api-Key HTTP header (which must match settings.EDX_API_KEY; if
the setting is not present, the API is disabled).
347

348 349 350
LMS: Added endpoints for AJAX requests to enable/disable notifications
(which are not yet implemented) and a one-click unsubscribe page.

351 352 353
Studio: Allow instructors of a course to designate other staff as instructors;
this allows instructors to hand off management of a course to someone else.

Ned Batchelder committed
354 355
Common: Add a manage.py that knows about edx-platform specific settings and
projects
356

jkarni committed
357 358
Common: Added *experimental* support for jsinput type.

359 360 361
Studio: Remove XML from HTML5 video component editor. All settings are
moved to be edited as metadata.

362 363
Common: Added setting to specify Celery Broker vhost

364 365
Common: Utilize new XBlock bulk save API in LMS and CMS.

366 367 368 369
Studio: Add table for tracking course creator permissions (not yet used).
Update rake django-admin[syncdb] and rake django-admin[migrate] so they
run for both LMS and CMS.

370 371 372 373
LMS: Added *experimental* crowdsource hinting manager page.

XModule: Added *experimental* crowdsource hinting module.

David Baumgold committed
374 375
Studio: Added support for uploading and managing PDF textbooks

Ned Batchelder committed
376 377
Common: Student information is now passed to the tracking log via POST instead
of GET.
378

Ned Batchelder committed
379 380
Blades: Added functionality and tests for new capa input type:
choicetextresponse.
381

382 383
Common: Add tests for documentation generation to test suite

Ned Batchelder committed
384 385
Blades: User answer now preserved (and changeable) after clicking "show answer"
in choice problems
386

387 388
LMS: Removed press releases

389 390
Common: Updated Sass and Bourbon libraries, added Neat library

Ned Batchelder committed
391 392
LMS: Add a MixedModuleStore to aggregate the XMLModuleStore and
MongoMonduleStore
Chris Dodge committed
393

Jason Bau committed
394 395 396 397
LMS: Users are no longer auto-activated if they click "reset password"
This is now done when they click on the link in the reset password
email they receive (along with usual path through activation email).

398 399
LMS: Fixed a reflected XSS problem in the static textbook views.

400 401 402 403 404
LMS: Problem rescoring.  Added options on the Grades tab of the
Instructor Dashboard to allow a particular student's submission for a
particular problem to be rescored.  Provides an option to see a
history of background tasks for a given problem and student.

Jason Bau committed
405
Blades: Small UX fix on capa multiple-choice problems.  Make labels only
Jason Bau committed
406 407
as wide as the text to reduce accidental choice selections.

408
Studio:
409
- use xblock field defaults to initialize all new instances' fields and
Ned Batchelder committed
410
  only use templates as override samples.
411
- create new instances via in memory create_xmodule and related methods rather
Ned Batchelder committed
412 413 414
  than cloning a db record.
- have an explicit method for making a draft copy as distinct from making a
  new module.
415

416 417 418
Studio: Remove XML from the video component editor. All settings are
moved to be edited as metadata.

419 420
XModule: Only write out assets files if the contents have changed.

421 422
Studio: Course settings are now saved explicitly.

423 424 425 426
XModule: Don't delete generated xmodule asset files when compiling (for
instance, when XModule provides a coffeescript file, don't delete
the associated javascript)

427 428 429
Studio: For courses running on edx.org (marketing site), disable fields in
Course Settings that do not apply.

430 431 432
Common: Make asset watchers run as singletons (so they won't start if the
watcher is already running in another shell).

433 434
Common: Use coffee directly when watching for coffeescript file changes.

435 436
Common: Make rake provide better error messages if packages are missing.

437 438
Common: Repairs development documentation generation by sphinx.

Brian Wilson committed
439 440 441 442 443 444 445
LMS: Problem rescoring.  Added options on the Grades tab of the
Instructor Dashboard to allow all students' submissions for a
particular problem to be rescored.  Also supports resetting all
students' number of attempts to zero.  Provides a list of background
tasks that are currently running for the course, and an option to
see a history of background tasks for a given problem.

446 447
LMS: Fixed the preferences scope for storing data in xmodules.

Valera Rozuvan committed
448
LMS: Forums.  Added handling for case where discussion module can get `None` as
Jason Bau committed
449
value of lms.start in `lms/djangoapps/django_comment_client/utils.py`
450

451 452
Studio, LMS: Make ModelTypes more strict about their expected content (for
instance, Boolean, Integer, String), but also allow them to hold either the
Ned Batchelder committed
453 454 455
typed value, or a String that can be converted to their typed value. For
example, an Integer can contain 3 or '3'. This changed an update to the xblock
library.
456

457 458 459
LMS: Courses whose id matches a regex in the COURSES_WITH_UNSAFE_CODE Django
setting now run entirely outside the Python sandbox.

Valera Rozuvan committed
460
Blades: Added tests for Video Alpha player.
461

462 463
Common: Have the capa module handle unicode better (especially errors)

464 465
Blades: Video Alpha bug fix for speed changing to 1.0 in Firefox.

Ned Batchelder committed
466 467
Blades: Additional event tracking added to Video Alpha: fullscreen switch,
show/hide captions.
468

469 470
CMS: Allow editors to delete uploaded files/assets

471
XModules: `XModuleDescriptor.__init__` and `XModule.__init__` dropped the
Ned Batchelder committed
472 473
`location` parameter (and added it as a field), and renamed `system` to
`runtime`, to accord more closely to `XBlock.__init__`
474

475 476 477 478 479
LMS: Some errors handling Non-ASCII data in XML courses have been fixed.

LMS: Add page-load tracking using segment-io (if SEGMENT_IO_LMS_KEY and
SEGMENT_IO_LMS feature flag is on)

Ned Batchelder committed
480 481
Blades: Simplify calc.py (which is used for the Numerical/Formula responses);
add trig/other functions.
Peter Baratta committed
482

483 484 485 486 487 488 489 490 491 492 493 494 495 496 497
LMS: Background colors on login, register, and courseware have been corrected
back to white.

LMS: Accessibility improvements have been made to several courseware and
navigation elements.

LMS: Small design/presentation changes to login and register views.

LMS: Functionality added to instructor enrollment tab in LMS such that invited
student can be auto-enrolled in course or when activating if not current
student.

Blades: Staff debug info is now accessible for Graphical Slider Tool problems.

Blades: For Video Alpha the events ready, play, pause, seek, and speed change
498
are logged on the server (in the logs).
499

Ned Batchelder committed
500 501
Common: all dates and times are not time zone aware datetimes. No code should
create or use struct_times nor naive datetimes.
502

503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
Common: Developers can now have private Django settings files.

Common: Safety code added to prevent anything above the vertical level in the
course tree from being marked as version='draft'. It will raise an exception if
the code tries to so mark a node. We need the backtraces to figure out where
this very infrequent intermittent marking was occurring. It was making courses
look different in Studio than in LMS.

Deploy: MKTG_URLS is now read from env.json.

Common: Theming makes it possible to change the look of the site, from
Stanford.

Common: Accessibility UI fixes.

Common: The "duplicate email" error message is more informative.

Studio: Component metadata settings editor.

522
Studio: Autoplay for Video Alpha is disabled (only in Studio).
523 524 525 526 527 528 529 530 531 532 533

Studio: Single-click creation for video and discussion components.

Studio: fixed a bad link in the activation page.

LMS: Changed the help button text.

LMS: Fixed failing numeric response (decimal but no trailing digits).

LMS: XML Error module no longer shows students a stack trace.

Chris Dodge committed
534 535 536 537
Studio: Add feedback to end user if there is a problem exporting a course

Studio: Improve link re-writing on imports into a different course-id

Chris Dodge committed
538 539
Studio: Allow for intracourse linking in Capa Problems

540 541 542 543 544 545 546 547
Blades: Videoalpha.

XModules: Added partial credit for foldit module.

XModules: Added "randomize" XModule to list of XModule types.

XModules: Show errors with full descriptors.

548 549 550 551
Studio: Add feedback to end user if there is a problem exporting a course

Studio: Improve link re-writing on imports into a different course-id

552 553 554 555 556 557 558 559 560 561 562 563 564
XQueue: Fixed (hopefully) worker crash when the connection to RabbitMQ is
dropped suddenly.

XQueue: Upload file submissions to a specially named bucket in S3.

Common: Removed request debugger.

Common: Updated Django to version 1.4.5.

Common: Updated CodeJail.

Common: Allow setting of authentication session cookie name.

565
LMS: Option to email students when enroll/un-enroll them.
jmclaus committed
566 567

Blades: Added WAI-ARIA markup to the video player controls. These are now fully
568
accessible by screen readers.