Commit Graph

26014 Commits

Author SHA1 Message Date
Tyler Pickett 823cda8924 Move MathMan to being configured by Consul
Fixes: CNVS-35833

There is a lot more than just moving to Consul going on here. The whole
PrefixProxy business wouldn't be required for this change, but it will
be really useful as we move to adding cluster awareness.

Test Plan:
- Have MathMan running
- Update config/consul.yml to enable use_for_svg and
  use_for_mml under the math-man init values key
- Start Canvas
- Build an equation with the rich content editor
- The equation should be rendered as usual.

Change-Id: I650527ebaecb6224c6ee6ba26346d27dee33b9d7
Reviewed-on: https://gerrit.instructure.com/111543
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Tyler Pickett <tpickett@instructure.com>
2017-06-26 15:54:38 +00:00
Robert Lamb 8700cffa99 spec: un-bluprint a course C3077134
Change-Id: I6fb81ebfd5767e9fb49a07dd60cd5955783707cb
Reviewed-on: https://gerrit.instructure.com/116840
Tested-by: Jenkins
Reviewed-by: Heath Hales <hhales@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-26 15:25:58 +00:00
Rob Orton e5d794475e allow destroy and replace to be used on user files
fixes CNVS-37803

test plan
 - call destroy with replace on user attachment
 - it should work if caller has permission to
   masquerade as the attachments owner

Change-Id: Id74c37bfa5c2d775ba0d4d091b0fced3a05cd062
Reviewed-on: https://gerrit.instructure.com/116904
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2017-06-26 02:54:48 +00:00
Cody Cutrer 4cb8fa541b move report reloading into master block
if the slave is behind, it would cause the report to fail immediately

Change-Id: I7b92c05d8bafcbd6f554b8095dd70fcbb2911a6e
Reviewed-on: https://gerrit.instructure.com/116902
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2017-06-25 19:55:37 +00:00
Cody Cutrer bb3f567983 write directly to zipstream
fixes CNVS-37802

Change-Id: I715f6e6c2a45c505e1f3c9e3757ea5cfce0e632f
Reviewed-on: https://gerrit.instructure.com/116890
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Pedro Fajardo <pfajardo@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
2017-06-24 23:15:36 +00:00
Mysti Sadler fc576aaf72 Set new user tutorial FF to on
refs FALCOR-210

Test plan
- Ensure the new user tutorial feature is on for all new users

Change-Id: Iba1ae69526ab4e6c8776cfb175940cc1614a99f7
Reviewed-on: https://gerrit.instructure.com/116894
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
2017-06-24 23:06:31 +00:00
Dan Minkevitch fcd7816d00 Sort PlannerItems API by applicable dates
Closes FALCOR-391

Test Plan:
* As a student
* In a course with Student Planner enabled
* GET /api/v1/planner/items
* The response should be returned in order by the objects'
  due dates, todo dates, or posted dates
* GET the next page (bookmark) of results
* The response should continue in the same order

Change-Id: Ic0b6ed8f51551ff8839cc11913e94b26709bc0c7
Reviewed-on: https://gerrit.instructure.com/116478
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2017-06-24 21:50:06 +00:00
Cody Cutrer e736fc2020 bump saml2 gem
fixes CNVS-37804

Change-Id: Iad81cde41f80c32b82b4daea82f1d0c01ecf4784
Reviewed-on: https://gerrit.instructure.com/116891
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2017-06-24 17:03:55 +00:00
Shahbaz Javeed 6ed695d730 spec: remove unnecessary wait_for_ajaximations from specs
closes CNVS-37800

test plan:
* Ensure specs pass

Change-Id: I3b070b131f60c8437c4e7e79aba6d5f0e6a6ccea
Reviewed-on: https://gerrit.instructure.com/116879
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
QA-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-24 04:01:14 +00:00
Shahbaz Javeed 15de5fa40c aggregate columns are now always initialized even when not needed
closes CNVS-37800

test plan:
* Create a course with multiple grading periods and at least one
  student enrolled in it and at least two assignments, one in
  each GP
* Ensure the grading periods have "show total for all grading
  periods" unchecked
* Go to Gradezilla
* Show the Grading Period filter and choose "All Grading Periods"
* Reload Gradezilla
* Verify you don't see any total column and the filter continues
  to say "All Grading Periods"
* Switch to another grading period
* Verify you do see the total column now and the filter says the
  name of the grading period
* Verify the assignments are filtered to just the ones that
  belong in that grading period

Change-Id: I09c1a7f336cbd141442179aad1c2d3cae0ae5af0
Reviewed-on: https://gerrit.instructure.com/116871
Tested-by: Jenkins
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-24 03:28:58 +00:00
Clay Diffrient d928873ff7 Remove theme from being passed from canvas to canvas-planner
This was causing some warnings to show up because this triggered
ApplyTheme to be called which should not be the case when canvas-planner
is used within Canvas.

closes FALCOR-396

Test Plan:
  - Enable planner
  - It should load fine
  - Enable High Contrast Mode
  - It should load properly

Change-Id: Ief193f2bf72c0badc503579a61f2c61909398320
Reviewed-on: https://gerrit.instructure.com/116662
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
2017-06-23 23:24:05 +00:00
Jeremy Neander 9883d07cac fix section filter
fixes CNVS-37775

test plan:
* visit gradebook for a course with multiple sections
* enable visibility of the section filter
* ensure all students are visible when "All Section" is selected
* ensure selecting sections filters out unrelated students

Change-Id: I5bc0afd2dd8402bb31a806089bf43389d3b3de96
Reviewed-on: https://gerrit.instructure.com/116862
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
2017-06-23 23:05:06 +00:00
Brent Burgoyne aee3a584ca upgrade canvas-rce and tinymce-light-skin
the new version of the rce and skin no longer incorrectly display the
font size of text in tables. many of the canvas style overrides have
also been moved to the skin and are no longer needed in canvas.

the initial push of this fix broke several rcs selenium tests due to a
circular destroy chain. https://gerrit.instructure.com/#/c/116660/ fixes
that and has been published to npm as v2.2.0-alpha.1. we should test this
patchset against that npm version

fixes CNVS-37517

test plan:
- run yarn install first to get new dependency versions. canvas-lms should
  be version 2.2.0-alpha.1
- test rcs and legacy editors
- insert a table, type in a cell, text should be same size as outside
  the table (shows as 11pt in toobar)
- test the toolbar nav with and without high contrast (alt+f10)
- toolbar styles should match colors and have a triangle under for
  active state, and a border for focus state, and both when focusing
  on an active button
- create a discussion thread
- add a reply to the discussion thread
- edit the reply to the discussion thread
- verify that this works and has no console errors

Change-Id: I7e8696cf54afda6de08fa729452f14fc1868510a
Reviewed-on: https://gerrit.instructure.com/116036
Tested-by: Jenkins
Product-Review: brian kirkby <bkirkby@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Reviewed-by: brian kirkby <bkirkby@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
2017-06-23 22:55:06 +00:00
Tucker McKnight 0faff2d038 Use a different function when submitting a form
Avoids unclickable submit button error in Selenium.

Change-Id: Icd257341937d51aa5d334393f547976e52a32bde
Reviewed-on: https://gerrit.instructure.com/116658
Tested-by: Jenkins
Reviewed-by: brian kirkby <bkirkby@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Tucker McKnight <tmcknight@instructure.com>
2017-06-23 22:08:53 +00:00
Dan Minkevitch 728f1f37c3 Add datetime support for SimpleBookmarker
Refs FALCOR-391

Change-Id: Ie4cb9c167458aad956511c6d3782a96c3a52da84
Reviewed-on: https://gerrit.instructure.com/116467
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Dan Minkevitch <dan@instructure.com>
2017-06-23 21:55:20 +00:00
Venk Natarajan 51a8d87c45 Remove "Duplicating Objects" feature flag.
Closes FALCOR-233

Test Plan:
* Go to Account->Settings->Feature Options. There should now not
  be any setting for "Duplicate Objects"
* It should still be possible to duplicate assignments and wiki
  pages (except for discussion topics and quizzes)

Change-Id: Ib75ebdbc7852e1e11e455e4c72633b6bc9d64385
Reviewed-on: https://gerrit.instructure.com/116813
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2017-06-23 21:49:14 +00:00
August Thornton 0cbc08777d set default value to optional argument
refs PLAT-2647

test plan:
• using an lti2 JWT
• create several hundred subscriptions
• do a GET request to /api/lti/subscriptions
• expect to see a list of subscriptions up to the default limit of
  100 per result set
• look for an 'EndKey' header and put that value in your next request
  as a header field called `StartKey`
• repeat this process until you have fetched all pages

Change-Id: I74c4029a245716a1f4bc6648348f52426d447e9b
Reviewed-on: https://gerrit.instructure.com/116795
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Product-Review: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2017-06-23 21:12:28 +00:00
Rob Orton 6e7aae4047 use Setting correctly in user merge data
this is working and has a spec, but it is using it wrong
this makes it user it better

Change-Id: I966167664e24b5bbff32d5afc367245ed8ad634c
Reviewed-on: https://gerrit.instructure.com/116708
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-06-23 21:03:25 +00:00
Matt Taylor 29280fc2fc assignment group filter for new gradebook
closes CNVS-36725

Test Plan:
  1. Create a new course
  2. Add a "Homework" assignment group to the course
  3. Create two assignments in each assignment group
  4. Enable "New Gradebook" for the course
  5. Make sure grading period and module filters are set
      to their default settings (no filtering)
  6. Navigate to the gradebook; no filter dropdowns
     should be visible, all assignment columns visible
  7. Check "Filter > Assignment Groups" under "View";
     dropdown should appear with "All Assignment Groups"
  8. Select "Assignments" from the dropdown, only
     assignments in the selected group should be shown
  9. Select "Homework" from the dropdown, only
     assignments in the selected group should be shown
 10. Uncheck "Filter > Assignment Groups" under "View";
     The assignment group dropdown should disappear, but
     only the "Homework" the assignment columns should
     be shown.

Change-Id: I834571a9423d4c885c894cd2855cb9aa79059b9f
Reviewed-on: https://gerrit.instructure.com/115250
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 20:48:24 +00:00
Rob Orton e843c360ba document that we have an attachment on account reports
Change-Id: I109366e608467f1272ddbe6796925ac560561b67
Reviewed-on: https://gerrit.instructure.com/116525
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-06-23 20:31:55 +00:00
Rob Orton 508d3d2d89 change the wording on content export availability
fixes CNVS-37703

test plan
 - it should not say expired.

Change-Id: Ib42bec23749ab0e0d825ab9c6f934cd3f1b93bc0
Reviewed-on: https://gerrit.instructure.com/116702
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-06-23 20:31:34 +00:00
Venk Natarajan 972a1155b7 Add the ability to duplicate pages.
* Closes FALCOR-139
* Closes FALCOR-140
* Closes FALCOR-141

Test Plan:
  * Create a course, and make a wiki page.
  * If "Duplicate Enabled" feature option is set, then a duplicate
    option should occur on the cog next to the page you created.
  * When this is clicked, a new page should pop up below unpublished,
    with focus on the cog of the new page.
  * (If you make a page that is an assignment, the new page will also
     show up on the assignments list)
  * A student should not be able to see this option, and if the
    feature flag is off, this option also should not appear.
  * A wiki page assignment can now also be duplicated from the
    "Assignments" list as well.
  * Discussion and Quizzes still cannot be duplicated from the
    "Assignments" list
  * Title convention: If title does not end in "Copy" or "Copy #"
    will append "Copy" to the end of the title.
  * After doing the above, finds the lowest number that doesn't
    duplicate an existing assignment or wiki page name (if a number
    is needed to effect this)
  * In the above search, if a "#" is present on the title, *always*
    starts from the # given.  So "Copy 7" will go to "Copy 8" even
    if 1-6 are not used.

Change-Id: Ib595a859b9186f934626b56e94a00eea231baa5a
Reviewed-on: https://gerrit.instructure.com/115934
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
2017-06-23 20:03:28 +00:00
Rob Orton 0956afd9e6 show errors_attachment in sis import api and ui
fixes CNVS-37717

test plan
 - run sis import that would generate errors
 - the json for the import api should have an
   errors_attachment object
 - the ui should have a download file option

Change-Id: I2c6f94b601be5777b8a57f4b5b56f9f2215869ec
Reviewed-on: https://gerrit.instructure.com/116523
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-06-23 19:51:25 +00:00
Rob Orton ff1589f408 log all sis errors and warnings to a file
refs CNVS-37717

test plan
 - run sis import that would generate errors
 - in console it should have an errors_attachment
 - the attachment should contain all the errors

Change-Id: I8e76d29395047b1ee743e42394432baea27d7c3a
Reviewed-on: https://gerrit.instructure.com/116522
Tested-by: Jenkins
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-06-23 18:59:17 +00:00
Brian Park a05e102e68 restore column header focus after dialog close
fixes: CNVS-37602

Test Plan:
1. Navigate to GradeZilla
2. Open an assignment column header menu
3. Press keys while the menu is open
  - When you press TAB:
     Observe that the menu closes and the next item
     in the normal grid navigation flow is focused
  - When you press SHIFT+TAB:
     Observe that the menu closes and the previous item
     in the normal grid navigation flow is focused
  - When you press ESC:
     Observe that the menu closes and the menu trigger
     is focused
  - Other keys should behave as before
     a. up/down arrow keys focus menu items
     b. left/right arrow keys expand/collapse flyouts
  - Nested flyouts should also trigger navigation upon
    these key presses
4. Select a menu item
 - If a modal appears:
  a. Observe that the focus is placed within the modal
  b. Observe the header menu trigger is refocused
     when the modal is closed
 - If a modal doesn't appear:
  a. Observe the header menu trigger is refocused
5. Repeat 2-4 with all column header types
 - Assignment Group column headers
 - Student column headers
 - Total Grade column header

Change-Id: I7cd50a5bc2c598b5bf899f7a5d17998fc4f4ec04
Reviewed-on: https://gerrit.instructure.com/115864
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
Reviewed-by: Sheldon Leibole <sheldon@siimpl.io>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 18:55:11 +00:00
Robert Lamb 070f643531 Change test_id numbers for course picker specs
Change-Id: Icf05f59c300d726d154c578124e7c0746ab072f3
Reviewed-on: https://gerrit.instructure.com/116670
Tested-by: Jenkins
Reviewed-by: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-23 17:44:47 +00:00
David Mirabile acb01e3807 spec: Add specs to test course associatons
Edit some spec numbers in other specs,
clean some code.
add dropdown specs.
Patch set 22: ALL HAIL GERGICH

Change-Id: Iaaddae9a2d75e28284f940d93fbee12c240bd77c
Reviewed-on: https://gerrit.instructure.com/116272
Tested-by: Jenkins
Reviewed-by: David Tan <dtan@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-23 17:31:29 +00:00
Spencer Olson 2d8b7f302a new gradebook: optionally exclude unposted menu item
The "Unposted" menu item is now only shown in New Gradebook if the
New Gradebook Development feature flag is enabled.

closes CNVS-37763

Test Plan:
1. In a course that has the "New Gradebook" feature enabled and the
   "New Gradebook Development" feature disabled at the account-level,
   go to the gradebook.
2. Click on the menu toggle in an assignment header cell. Click on
   "Sort by". Verify there is no option for "Unposted" in the
   flyout menu for "Sort by" options.
3. Enable "New Gradebook Development" at the account-level. Go to the
   gradebook.
4. Click on the menu toggle in an assignment header cell. Click on
   "Sort by". Verify there is an option for "Unposted" in the
   flyout menu for "Sort by" options.

Change-Id: I091971741ad0b585218827153744a716e899fb5b
Reviewed-on: https://gerrit.instructure.com/116750
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 17:15:10 +00:00
Neil Gupta a24f8c3fe8 Update scores for inactive students too
refs CNVS-37743

Test plan:
* Create a course with an assignment and a student
* Mark the student as inactive
* Mute the assignment
* Grade the student
* Unmute the assignment
* The score in the backend should match the student's grade in the GB

  Enrollment.find_by(course_id: <course_id>, user_id: <user_id>).computed_current_score

Change-Id: Ifa7f3c7c1b6880eb5e9114878fee5a3579343384
Reviewed-on: https://gerrit.instructure.com/116651
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 16:55:41 +00:00
Jeremy Neander 3f473a63ba spec: restore skipped selenium spec for gradebook
test plan:
* ensure Jenkins passes

Change-Id: I4c7859b79c3103c1c4bee4a564dbcbd4628dc613
Reviewed-on: https://gerrit.instructure.com/116751
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Product-Review: Jeremy Neander <jneander@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
2017-06-23 16:42:04 +00:00
Clay Diffrient 46b2d8daf0 Send application DOMElement to planner
refs FALCOR-406

Test Plan:
  - Automated tests pass

Change-Id: Ibe2c7fcfc71b5529e8c5906cec907b38a73b3ceb
Reviewed-on: https://gerrit.instructure.com/116714
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2017-06-23 16:28:01 +00:00
Jeremy Neander a9568d3bb8 load sorted and filtered user ids in gradebook
closes CNVS-37607

QA Note:

"works as intended" means that behavior should not have changed.

test plan:
A. create a course with:
   * active, inactive, and concluded students
   * grading periods
   * multiple sections
   * at least one assignment
B. visit New Gradebook
C. verify that:
   1. filtering by grading periods:
      a. updates grades accurately
      b. re-sorts students (when sorting by grades)
   2. filtering by sections:
      a. renders the grid with only students in that section
      b. renders the grid with all students when unfiltering
      c. re-sorts students according to persisted settings
   3. sorting by any setting works as intended when applied
   4. filtering by search term works as intended
   5. enabling inactive or concluded enrollments inserts student
      rows in pre-sorted positions
   6. disabling inactive or concluded enrollments removes the
      relevant student rows

Caveats:

Assignment Group and Total Grade sorting do not persist.
Filtering will reload students, causing a re-sort. For assignment
group and total grade sorting, the previous persisted sort
setting will be applied.

Change-Id: Iadbd50df48adfc337a40b29bc68d1dd0b7a73533
Reviewed-on: https://gerrit.instructure.com/115693
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 16:27:58 +00:00
Keith Garner 8c41c78d63 new gradebook: include concluded user_ids for concluded courses
closes CNVS-37758

test plan:
 - Create a course that has some active students, grade the students,
   and conclude the course. Enable New Gradebook and go to the
   gradebook.
 - hit the user_ids endpoint and confirm that the once active students
   still show up now that they are concluded

Change-Id: Id9c3ddacf07b3a8b6b7c9d0a04f005d006747aa5
Reviewed-on: https://gerrit.instructure.com/116726
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 15:15:45 +00:00
James Williams 7041fd25ca spec: make recurrent calendar specs ignore time zone
closes #CNVS-37756

Change-Id: I7bbde3d6d9c61d37b2f2ac083aad9119dbf5aaca
Reviewed-on: https://gerrit.instructure.com/116722
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2017-06-23 14:54:47 +00:00
Transifreq 5c9d6d7719 update tr translation
Change-Id: I80bec64e35dae5a3857d0ebf108110865d49581d
2017-06-23 05:52:27 -06:00
Steven Burnett 56d1378c32 change name of FF for planner
fixes FALCOR-409

Test Plan:
- Notice FF for planner has changed

Change-Id: Ibc965176cfacb8de2e462c2c332dc6594eb4fbd0
Reviewed-on: https://gerrit.instructure.com/116678
Tested-by: Jenkins
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2017-06-23 03:55:30 +00:00
Spencer Olson 9d798709e0 new gradebook: fake student ids always sort last
closes CNVS-37752

Test Plan:
1. Create a course that has some active students, inactive students,
   concluded students, and a fake student. Enable New Gradebook and go
   to the gradebook.
2. Click on the student header and select 'Inactive enrollments' and
   'Concluded enrollments'. Then select 'Sort by -> A-Z'.
3. As a teacher in the course, hit the user_ids endpoint and verify you
   get a list of user IDs back. The user IDs should be ordered such
   that their corresponding users' names are in alpha ascending order.
   The list of user IDs should also include inactive and concluded
   students' IDs. The fake student's ID should always be last.
4. Go to the gradebook and click on the student header. Select 'Sort by
   -> Z-A'.
5. Hit the user_ids endpoint and verify the returned user IDs are now
   ordered such that their corresponding users' names are in alpha
   descending order. The list of user IDs should also include inactive
   and concluded students' IDs. The fake student's ID should be last.
6. Go to the gradebook and click on the student column header. Deselect
   the 'Inactive enrollments' and 'Concluded enrollments' options.
7. Hit the user_ids endpoint and verify the returned user IDs no longer
   include IDs for inactive or concluded students. The IDs should still
   be ordered such that their corresponding users' names are in alpha
   descending order. The fake student's ID should be last.
8. Go to the gradebook and click on the total grade header. Select
   'Sort by Grade -> Low to High'
9. Hit the user_ids endpoint and verify the returned user IDs are
   ordered such that their corresponding users' current total grades
   are in ascending order. The fake student's ID should be last.
10. Go to the gradebook and click on the total grade header. Select
   'Sort by Grade -> High to Low'
11. Hit the user_ids endpoint and verify the returned user IDs are
    ordered such that their corresponding users' current total grades
    are in descending order. The fake student's ID should be last.
12. In the same manner as the steps above, make sure changing the
    following settings in the gradebook causes the user_ids
    endpoint to return an array of IDs ordered according to the
    gradebook sort preferences, with the fake student's ID sorted last:
    a) Assignment column header -> Sort by Grade -> Low to High
    b) Assignment column header -> Sort by Grade -> High to Low
    c) Assignment column header -> Sort by -> Missing (the user_ids
       endpoint should return all users with a missing submission for
       that assignment first)
    d) Assignment column header -> Sort by -> Late (the user_ids
       endpoint shoudl return all users with a late submission for that
       assignment first)
    e) Select a grading period and sort by total grade. The user_ids
       endpoint should return user IDs that are ordered such that their
       corresponding users' grades are in ascending or descending order
       for the selected grading period.
13. Conclude the course. Hit the user_ids endpoint as the teacher and
    verify you do not get a 401 response.
* Note: Sorting by assignment group totals is not currently supported.

Change-Id: I6c4b16b72e051d46cc7b7521949d5c82b92960b9
Reviewed-on: https://gerrit.instructure.com/116698
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 02:31:06 +00:00
Spencer Olson f556eb7fb0 sort by missing: use missing attribute on submission
When sorting an assignment by "Missing" in the New Gradebook, we will
now sort submissions based on their 'missing' attribute, instead
of checking the workflow state of the submission.

closes CNVS-37747

Test Plan:
1. In a course with multiple students and New Gradebook enabled, create
   an assignment that is due in the past. Submit to the assignment for
   some students and don't submit to the assignment for other students,
   so that some students are missing and others are not.
2. For one of the not-missing students, go into the rails console
   and set the late_policy_status on their submission to "missing".

   submission = Assignment.find(<assignment_id>).submissions
     .find_by(user_id: <user_id>)
   submission.update!(late_policy_status: "missing")

3. Go to the New Gradebook and sort by missing for the assignment from
   step 1. Verify all missing submissions are sorted to the top rows
   (including the submission that you set the late_policy_status to
   "missing" for)

Change-Id: Ibbb3ced15c76c81b5feb468a9bef42cc07e8800e
Reviewed-on: https://gerrit.instructure.com/116676
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-23 00:41:29 +00:00
Jeremy Stanley 7a7273c88d fix Inbox keyboard focus issues
test plan: On the Inbox page,

* From each of the three places on the page you can Reply, Reply All, or
  Forward, after an action is completed (or canceled by closing the
  dialog without sending), focus should return to the button or cog menu
  that initiated the action.
  1. From the toolbar at the very top of the page
  2. From the toolbar at the top of the right-side column
     after a conversation has been selected on the left side
  3. From the reply button or cog menu that appears next to
     a single message when you hover over it
* When a conversation is deleted via the garbage can icon at the top
  of the page, the "compose" button should receive focus afterward
* When a conversation is deleted via the cog menu at the top of the
  right-hand column, focus should proceed to
   (a) the star icon on the last conversation in the left column, or
   (b) the search box at the top right, if no conversations remain
* When a message is deleted via the cog menu that appears on hover,
  the previous message's cog menu should be focused (or the cog menu
  on the top of the right-side column, if the first message is deleted,
  or follow the previous asterisk point if the only remaining message
  in the conversation is deleted)
* When a deletion is canceled (from any of the three places you can
  delete), focus should return to the button or cog that initiated
  the action

closes CNVS-37079
closes CNVS-37082

Change-Id: If656f03f588fa2423eab9a05cd370e53a19c3205
Reviewed-on: https://gerrit.instructure.com/115919
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-06-22 22:33:59 +00:00
Spencer Olson d831a9f7e2 add user_ids endpoint to gradebooks_controller
Add endpoint to gradebooks controller which returns user ids sorted
according to the user's gradebook sort preferences.

closes CNVS-37608

Test Plan:
1. Create a course that has some active students, inactive students,
   and concluded students. Enable New Gradebook and go to the
   gradebook.
2. Click on the student header and select 'Inactive enrollments' and
   'Concluded enrollments'. Then select 'Sort by -> A-Z'.
2. As a student in the course, hit the new endpoint to get user IDs
   (GET /courses/:course_id/gradebook/user_ids). Verify you get a 401
   unauthorized response.
3. As a teacher in the course, hit the user_ids endpoint and verify you
   get a list of user IDs back. The user IDs should be ordered such
   that their corresponding users' names are in alpha ascending order.
   The list of user IDs should also include inactive and concluded
   students' IDs.
4. Go to the gradebook and click on the student header. Select 'Sort by
   -> Z-A'.
5. Hit the user_ids endpoint and verify the returned user IDs are now
   ordered such that their corresponding users' names are in alpha
   descending order. The list of user IDs should also include inactive
   and concluded students' IDs.
6. Go to the gradebook and click on the student column header. Deselect
   the 'Inactive enrollments' and 'Concluded enrollments' options.
7. Hit the user_ids endpoint and verify the returned user IDs no longer
   include IDs for inactive or concluded students. The IDs should still
   be ordered such that their corresponding users' names are in alpha
   descending order.
8. Go to the gradebook and click on the total grade header. Select
   'Sort by Grade -> Low to High'
9. Hit the user_ids endpoint and verify the returned user IDs are
   ordered such that their corresponding users' current total grades
   are in ascending order.
10. Go to the gradebook and click on the total grade header. Select
   'Sort by Grade -> High to Low'
11. Hit the user_ids endpoint and verify the returned user IDs are
    ordered such that their corresponding users' current total grades
    are in descending order.
12. In the same manner as the steps above, make sure changing the
    following settings in the gradebook causes the user_ids
    endpoint to return an array of IDs ordered according to the
    gradebook sort preferences:
    a) Assignment column header -> Sort by Grade -> Low to High
    b) Assignment column header -> Sort by Grade -> High to Low
    c) Assignment column header -> Sort by -> Missing (the user_ids
       endpoint should return all users with a missing submission for
       that assignment first)
    d) Assignment column header -> Sort by -> Late (the user_ids
       endpoint shoudl return all users with a late submission for that
       assignment first)
    e) Select a grading period and sort by total grade. The user_ids
       endpoint should return user IDs that are ordered such that their
       corresponding users' grades are in ascending or descending order
       for the selected grading period.
* Note: Sorting by assignment group totals is not currently supported.

Change-Id: I4a36aa5b82d87f49d2396bbc16e1cc56e89eba0f
Reviewed-on: https://gerrit.instructure.com/116491
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-06-22 22:05:39 +00:00
Chris Hart 71904c87f9 Fix sticky header issues in IE
Fixes: FALCOR-378

Note for CR:
Sticky positioning CSS has to be applied to the outermost dashboard
header DIV for it to work (it needs to be a sibling of the main dashboard
content).

Unfortunately, the dashboard header DIV is also the mount point for the
<DashboardHeader /> component, and I couldn't figure out how to add
classes to it based on what dashboard view was showing.

This is why I'm adding classes to the body :(

Test plan:

Log into Canvas as a student. Make sure the planner
is turned on in accounts settings first.

Chrome, Firefox, Safari:
- All dashboard headers (Cards, List, Recent Activity) should be sticky

IE:
- The dashboard header will only be sticky for Planner
- You should no longer see the bug described in the JIRA ticket

Change-Id: Ie1bcf30567ff91413ee0b569c9ed434d1fd1320f
Reviewed-on: https://gerrit.instructure.com/116620
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2017-06-22 22:05:09 +00:00
hh- 37753813a6 spec: 3265210 ready sync modal
Change-Id: Iaacefbea3c345a7206deab9045de5b4177948c62
Reviewed-on: https://gerrit.instructure.com/116465
Tested-by: Jenkins
Reviewed-by: David Mirabile <dmirabile-c@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-22 21:43:45 +00:00
wdransfield 52104e725f Allow nil originality score in UI for new plag. platform
Closes PLAT-2624

Test Plan:
- Create an OriginalityReport with an originality score
  set to nil and a workflow state of pending.
- Verify that a clock icon appears in the UI for that
  originality report
- Set the workflow state to 'error'
- Verify that a `!` icon appears in the UI for that
  originality report in gradebook and on the
  student grade page.
- Set the originality score
- Verify that the report icon is rendered as before
- Verify TII and Vericite originality reports render
  as before

Change-Id: Ia8d0f9718a41380341ba3e5e985105a363d617ef
Reviewed-on: https://gerrit.instructure.com/116154
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
2017-06-22 19:43:05 +00:00
Ed Schiebel 7b06148392 Test add/remove associations
closes MC-266

Test plan:
  - the spec passes

Change-Id: I7433e526f8d3ac0f99ba75c75d34df8ff392af99
Reviewed-on: https://gerrit.instructure.com/116166
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-22 19:32:34 +00:00
wdransfield 9ac4eea42d Fix n+1 query in gradebook history feed endpoint
Closes PLAT-2686

Test Plan:
- As a student create submissions for several assignments
- Retrieve gradebook history via the api for that student:
  /api/v1/courses/<id>/gradebook_history/feed?user_id=<id>
- Verify that an n+1 query does not occure for originality
  reports. (the repeating query we want to avoid look something like this:
  SQL OriginalityReport Load (4.1ms)  SELECT "originality_reports"
  .* FROM "originality_reports" WHERE "originality_reports"
  ."submission_id" = 55487625)

Change-Id: Id5ba23772bc3eaa3b7ac253b4e6c61a8744ed6b3
Reviewed-on: https://gerrit.instructure.com/116270
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2017-06-22 19:27:11 +00:00
James Williams 6f532cdd21 master courses: prevent rubrics from changing assignment points
test plan:
* have a blueprint course with an assignment
 with points locked
* sync to an associated course
* add a rubric to the assignment with a different
 points possible than the assignment and
 check to use it for grading
* it should not change the assignment points

closes #MC-263

Change-Id: If403205efdddb0489e9590ac4e0770afb926d025
Reviewed-on: https://gerrit.instructure.com/116375
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-06-22 19:25:40 +00:00
Ed Schiebel 103cb24a65 Automate course searching test
the user enters text in the Associations modal search text box, and
the UI shows the courses that match on name, short name or sis id

closes MC-264

Test plan:
  - run the test and it passes

Change-Id: I859abca242a7fbf396c13bb5c3a28443da3e74c7
Reviewed-on: https://gerrit.instructure.com/116107
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
2017-06-22 19:04:45 +00:00
Jesse Poulos 8652238b78 Switch url in variable sub docs to html instead of markdown
The current markdown for the IMS LTI specification link invariable
substitutions documentation is terribad. This changes it to html so the
link actually works

Test plan:
1) run localhost Canvas
2) build the API docs (docker-compose run --rm web bundle exec rake doc:api)
3) navigate to <your host url>/doc/api/file.tools_xml.html
4) make sure the IMS LTI specification link works

Fixes PLAT-2630

Change-Id: I64f23030aeb7236b86eec945b2db3d53f9528c42
Reviewed-on: https://gerrit.instructure.com/116596
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2017-06-22 18:43:07 +00:00
James Williams e2b249b744 master courses: use quiz restrictions on quiz assignment
test plan:
* have a graded quiz in a blueprint course
* use granular locking with different settings
 for quizzes and assignments
* lock the quiz on the assignments page
* it should use the quiz locking scheme

closes #MC-278

Change-Id: I2b2cb78fc701878c5fb8028fdf56cc07e32b6e90
Reviewed-on: https://gerrit.instructure.com/116560
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-06-22 18:40:46 +00:00
Nick Houle f4ba7fa95d Change description for SIS integration settings
Fixes: SIS-2682

Test plan:
- Navigate to the Feature Options tab in the Account Settings page
- Confirm the new description is present for the "Enable new SIS
  integration settings"

Change-Id: I877c16a7407fcf77ef5a4ad1b029f61dc2a5257d
Reviewed-on: https://gerrit.instructure.com/115698
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Oxana
2017-06-22 17:28:12 +00:00