Commit Graph

36168 Commits

Author SHA1 Message Date
Anju Reddy 2bba234b35 spec: unskip and fix MsgStudentWhoDialog JS tests
closes ADMIN-2821

Change-Id: I22804b27c16df5dc1e4dda56268619a77bded20b
Reviewed-on: https://gerrit.instructure.com/204313
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Anju Reddy <areddy@instructure.com>
2019-08-08 17:11:33 +00:00
Landon Gilbert-Bland fb1b058a76 Fix displaying previous submissions in A2
Test Plan:
  - Jenkins passes
  - You can once again view previous submission in A2 student view

Fixes COMMS-2279

flag = assignments_2

Change-Id: Ie0da4fb3e7725dba37dd8e2d95b7a2cb89298e62
Reviewed-on: https://gerrit.instructure.com/204217
Tested-by: Jenkins
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Michelle Simmons <misimmons@instructure.com>
2019-08-08 16:55:45 +00:00
Robin Kuss f18ee228e8 spec: add quiz_lti contract test info for enrollment
Closes: QUIZ-6655

Test Plan:  See https://gerrit.instructure.com/#/c/quiz_lti/+/204264

Change-Id: If2fe159ec156675c00cb90043b9a6733d60a7941
Reviewed-on: https://gerrit.instructure.com/204274
Tested-by: Jenkins
Reviewed-by: Tyler Burraston <tburraston@instructure.com>
QA-Review: Tyler Burraston <tburraston@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
2019-08-08 16:23:58 +00:00
James Williams ca6e290045 fix unescaped regex slash
Change-Id: Ia5fce6c54b48d3d4ab5a8270bc6d3f61fe53fc4d
Reviewed-on: https://gerrit.instructure.com/204359
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: James Williams <jamesw@instructure.com>
2019-08-08 15:14:42 +00:00
Jeremy Neander f07702a206 do not clip assignment link focus indicator
fixes GRADE-2309

test plan:
 1. Visit New Gradebook
 2. Set focus on any assignment column header link
 3. Verify the focus indicator is visible

Change-Id: I59ba7ed979b5f0aed06b8c3618d0cddd7ef8d43b
Reviewed-on: https://gerrit.instructure.com/204250
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2019-08-08 14:01:54 +00:00
James Williams 16d4c834c5 clear todo_list cache register key in course#resubmission_for
Change-Id: I25df3541a1dfaf9996ee5906b9d3be0fff16a8f7
Reviewed-on: https://gerrit.instructure.com/204215
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2019-08-08 12:16:22 +00:00
Ed Schiebel 3d435b52de Remove special-case styleing for h3 in rce generated content
we had a rule that increased the top/bottom margins for h3 when
contained within content created by the user with the rce. Deleting
this rule fixes this ticket, and I can't find a reason for why the h3
would be singled out for special spacing.

closes COREFE-197

test plan:
  - using the rce html edit mode, add an h3 with some text around it
  > expect 6px margins above and below, not 24px

Change-Id: I9332c5320ea87d37d21bf84ca7a06c3e2797ea3e
Reviewed-on: https://gerrit.instructure.com/204191
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2019-08-08 12:10:27 +00:00
Simon Williams a0b58d02c1 api: allow graders to upload and submit for students
closes ADMIN-2795
flag: none

Test plan
- As a teacher, submit an assignment
  for a student with a submitted_at date
  that will override the submission time
- Do this with other grader types also
- Verify that you can't submit for a student
  who shouldn't have access to the assignment
  (excused, lock dates, grading periods, etc)
- Verify you can't change the submission
  time as the student

Change-Id: I86b7e6d3b03c9fe9b1c15908a3d0a5f88d5202f5
Reviewed-on: https://gerrit.instructure.com/167638
Tested-by: Jenkins
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ethan Knapp <eknapp@instructure.com>
2019-08-07 23:04:00 +00:00
wdransfield 04de6d4dbb Generate asset_accessed event in files API
Closes PLAT-3858

Test Plan:
- Make a get request to /api/v1/courses/:id/files
- Verify an asset accessed event is created
- Make a get request to /api/v1/users/id/files
- Verify an asset accessed event is created
- Use one of the file download urls from the
  to download a file
- Validate an asset accessed event is created
  with and without a Canvas session

Change-Id: I3551ad683ed3a6d328a166482206defddd9bfef1
Reviewed-on: https://gerrit.instructure.com/203903
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Tested-by: Jenkins
Product-Review: Oxana Jurosevic
Reviewed-by: Marc Phillips <mphillips@instructure.com>
2019-08-07 21:54:44 +00:00
Marc Phillips de41aa4c94 Fix learning_out_result event
Event was not added as an observer to the model for
live events to trigger.

closes PLAT-4639

Test Plan:
 - create an outcome result and see that it gets
   put on the stream

Change-Id: If81565ce9498a03f3c1967759edcc2db9b2a24a5
Reviewed-on: https://gerrit.instructure.com/204273
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Oxana Jurosevic
2019-08-07 21:47:10 +00:00
Ryan Shaw 68d976be4b always give edge <=42 (aka 17) the fetch polyfill
fixes: CORE-3225

this is to work around this issue:
https://instructure.slack.com/archives/C02945PB7/p1565022713106300

Test plan:
* in edge 42, load the assignment show page
* you should not get an error in the console like:
HTTP401: DENIED - The requested resource requires user authentication.
(Fetch)GET - https://<canvas>/api/v1/courses/11/lti_apps
/launch_definitions?placements%5B%5D=assignment_edit

Change-Id: I2d5d1a031b79a5ec1ea35675a00795cc284fbb6a
Reviewed-on: https://gerrit.instructure.com/203850
Tested-by: Jenkins
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
2019-08-07 21:07:24 +00:00
Drake Harper 96b6be4d2d Fix follow oauth2 flow for scopes error handling
Fixes PLAT-4681

Test Plan:
-set up an lti key
-hit /login/oauth2/auth?client_id=tool_id&response_type=code
	&state=YYY&redirect_uri=some_url&scope=url:GET
-verify that redirect was redirected to with error type and description

Change-Id: I724f503e31edd449f29e3a894d492a11cca61279
Reviewed-on: https://gerrit.instructure.com/203250
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2019-08-07 21:04:12 +00:00
Landon Gilbert-Bland 960ec59f94 Fix n+1 with submission comments unread count in gql
Test Plan:
  - Jenkins passes

Fixes COMMS-2280
flag = none

Change-Id: I03293bca06450f07d78e834ec9f61eaf611a11de
Reviewed-on: https://gerrit.instructure.com/204216
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2019-08-07 21:00:56 +00:00
Jeremy Putnam d3e32695fb spec: add test to verify lti button displays with tools enabled
Change-Id: I7b90ade487db89a8745189075d465bb9619d8127
Reviewed-on: https://gerrit.instructure.com/197774
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jeremy Putnam <jeremyp@instructure.com>
2019-08-07 19:48:17 +00:00
Aaron Griffin b8135f38b8 Quiz Statistics: Support i18n numbers
Also includes some small fixes to this deterioriating codebase

Test Plan:
- Given a quiz with more than one student
- And a quiz with 3 questions, each worth 1.2 points (or similar)
- Take the quiz with each student, getting some right and some wrong
  each time
- Then view the statistics page in a locale with a different decimal
  separator
- See the separator appear where needed

Closes QO-448

Change-Id: Ie0fceb3ff827bcc68aff9c6e60292768d43410b3
Reviewed-on: https://gerrit.instructure.com/204141
Reviewed-by: Bryan Petty <bpetty@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
2019-08-07 19:34:35 +00:00
Carl Kibler 0c5af58292 use color and icons to improve a11y of left menu
fixes ADMIN-2577

flag: Accessible Sidebar Menu

test plan:
 - Check left side menu in Courses with regular mode and High Contrast
   first, to make sure nothing changed or broke.
 - Enable the 'Accessible Sidebar Menu' release flag
 - As teacher or admin:
 - Check criteria #1-6 from the jira ticket to ensure nothing missed
 - Check High Contrast also, ensure it works correctly
 - Disable 'Announcements' and ensure the eye-off icon doesn't wrap
   weirdly and is all on one line
 - Unused nav items also get icon and slightly different tooltip
 - Tooltips for unused & hidden nav items show when navigated to with
   keyboard
 - Check student view also, to verify those items don't show
 - As admin:
 - Go edit the theme, and check that the theme preview for the nav
   works (it required an adjustment for extra padding) so
   the new outlining wasn't cut off)

Change-Id: I778a155bce0bb32117abf8ee5d7fe327a7fb0b34
Reviewed-on: https://gerrit.instructure.com/199404
Tested-by: Jenkins
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Daniel Sasaki <dsasaki@instructure.com>
Product-Review: Daniel Sasaki <dsasaki@instructure.com>
2019-08-07 19:29:07 +00:00
Marc Phillips f1e254e5fe Update liveEvents stubbed output
focus on event names for easy grokking of output.

Change-Id: I5d79b684a189f2969768b55859ba23d23cd1f1cb
Reviewed-on: https://gerrit.instructure.com/204213
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Marc Phillips <mphillips@instructure.com>
Tested-by: Jenkins
2019-08-07 19:08:46 +00:00
Ryan Norton 3820a966c6 allow creation of text entry drafts in A2
we need to be able to save, clear, and display text entry
drafts in A2 text entry assignments

note: this does not yet interact with the pizza tracker

Test Plan:
* as a teacher, create a text entry assignment
* as a student in A2, navigate to the assignment
* with no draft, you should navigate to the Start Entry page
* click Start Entry
** the RCE should load
** confirm in a rails console that the SubmissionDraft is
   now an empty string
** confirm on refresh that the page still loads the RCE

* type some text and refresh without saving
** confirm the text is not saved

* type some text and click Save
** confirm the text persists on refresh
** confirm in a rails console that the SubmissionDraft has
   saved the text

* click Cancel
** it should navigate to the Start Entry page
** confirm on refresh that the Start Entry page still loads
** confirm in a rails console that the SubmissionDraft body is
   null

fixes COMMS-2264
fixes COMMS-2266

flag: assignments_2

Change-Id: Ia6232b8b378f6bd7a273fd81ef9ce8c4eac7e9f1
Reviewed-on: https://gerrit.instructure.com/204094
Reviewed-by: Michelle Simmons <misimmons@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
2019-08-07 18:50:26 +00:00
Adrian Packel 196d69e53e Change post/hide grades wording for anonymous
fixes GRADE-2288

Test plan:
- Have a course with New Gradebook and Post Policies enabled
- Create an anonymous assignment
  - Adjudicate
- Post grades
  - Check that the wording of the anonymous-assignment alert in the tray
    matches what's in the acceptance criteria for the ticket
- Hide grades
  - Check that the wording of the anonymous-assignment alert in the tray
    matches what's in the acceptance criteria for the ticket

Change-Id: I04faafe3c3f96336e88433175dcfe619de3db7f7
Reviewed-on: https://gerrit.instructure.com/204149
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2019-08-07 18:11:42 +00:00
Matthew Lemon 404d78fbe2 handle lti file upload in A2
fixes COMMS-2230
flags assignments 2

Test Plan:
* Create a course and add a student
* On the course install an LTI tool with a homework_submissions placment
* Create an assignment for the course with an online upload assignment
  type
* Masquerade as the student and compose a submission draft using both
  LTI and regular files
* Submit the draft and view the submission.

Change-Id: I5935da3f1f728ce7551aad617e00adf71e85a7f8
Reviewed-on: https://gerrit.instructure.com/203634
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Ben Nelson <bnelson@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
2019-08-07 16:52:43 +00:00
Ryan Shaw 5138d75624 silence `Cannot read property 'renderIntoDiv’`
test plan
* once this is merged, this will make it so all those annoying errors 
  stop getting posted in #canvas-builds

Change-Id: I1f4c356d30e1f57fc3cb13c788f479f4d551866b
Reviewed-on: https://gerrit.instructure.com/204171
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-08-07 16:39:18 +00:00
Aaron Griffin 3e041ecc3e Old Quizzes: support i18n numbers on moderate page
Bonus: found a missing number in the student details on the show page

Test Plan:
- Given a course with a student
- Made a quiz with decimal points (say 5.5)
- Take the quiz as a student
- Switch to French (or similar) and view the moderate page
- See points properly localized

Closes QO-445

Change-Id: I3dc797ecbdd22af8478fd847924759f4554a40e0
Reviewed-on: https://gerrit.instructure.com/203900
Tested-by: Jenkins
Reviewed-by: Jim Simon <jsimon@instructure.com>
QA-Review: Jonathan Holt <jholt@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
2019-08-07 16:28:49 +00:00
Drake Harper 6098648b5a Fix duplicates in viewing json in developer key
Fixes PLAT-4600

Test Plan:
-create an LTI key verify there are not duplicate placements
	when editin json
-install tool
-verify tool is available in placements

Change-Id: I4593a3bd5ecacd24012123af54612308572281ce
Reviewed-on: https://gerrit.instructure.com/204127
Reviewed-by: Marc Phillips <mphillips@instructure.com>
Tested-by: Jenkins
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2019-08-07 16:09:24 +00:00
wdransfield cbbe1dda87 Send default URL to assignment new/edit page
Closes PLAT-4693

Test Plan:
- Add a 'default_assignment_tool_url' value to your root
  account settings hash
- Navigate to the new assignments page and validate
  the value you set is in the JS ENV

Change-Id: I427172f2e011d3de11c8dc10fdea7cda020c8a53
Reviewed-on: https://gerrit.instructure.com/204059
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2019-08-07 15:59:27 +00:00
Marc Phillips f7356e5977 Add LiveEvents Stubbing
Stub the aws kinsesis stream if
STUBBED_KINESIS_STREAM is set in the ENV.
This will print the event out to terminal so you
can see what events are being submitted.

refs PLAT-4639

Test Plan:
 - live events doesn't break when configured

Change-Id: Ic182551e3304c9c6241091b7ae9988703093dfb2
Reviewed-on: https://gerrit.instructure.com/204138
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Marc Phillips <mphillips@instructure.com>
2019-08-07 15:56:58 +00:00
Jeremy Putnam d9f4516e65 spec: add folder and file lock and hidden tests for RCS sidebar
Change-Id: I02733e086e260d6c18463f3e0426645b30a63c2b
refs: COREFE-34
Reviewed-on: https://gerrit.instructure.com/202906
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jeremy Putnam <jeremyp@instructure.com>
2019-08-07 15:43:45 +00:00
Jeremy Stanley 88457d638b course groups page a11y fixes
test plan:
 - the expand/contract buttons for each group, and also the
   kebab menus and menu items, should be identified by screen
   readers as buttons rather than links to '#'

fixes ADMIN-2789

Change-Id: I8adcb14ce439d2288277f0259b45e1926a578083
Reviewed-on: https://gerrit.instructure.com/203542
Tested-by: Jenkins
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Daniel Sasaki <dsasaki@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2019-08-07 15:29:52 +00:00
Ryan Shaw d00f74a2d7 Drop IE 11 support
closes: CORE-3175

based on our browser support documentation
(https://community.canvaslms.com/docs/doc-10720) "On August 3, 2019,
Internet Explorer 11 will no longer be supported as a Canvas browser."

and since any code being merged to master now won't hit prod until after
august 3rd, we can safely drop IE11 support now

test plan:
* look at the code generated by webpack
* you should see things like "class" and arrow functions "() => {}"
* if you go to canvas in IE 11, it should not work
* if you go to canvas in the next oldest browsers we support (which
  would probably be Edge 42 or Safari 11) it should still work the same
  as it did before

Change-Id: Ifc7f64902a333fd0f662ff6a68eb8f4353f01130
Reviewed-on: https://gerrit.instructure.com/197827
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-07 14:40:40 +00:00
Ryan Shaw 74a142ba19 Spec: make a spec work w real async/await
test plan:
* with or without the “drop IE 11” commit applied (which stops 
  transpiling async/await with regenerator-runtime)
yarn jspec-watch app/coffeescripts/ember/screenreader_gradebook/tests/controllers/screenreader_gradebook.spec.js
Should pass

Change-Id: I331bae1291ad74b193c6a0c910be77057bbc470d
Reviewed-on: https://gerrit.instructure.com/204153
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-07 14:39:04 +00:00
Jon Willesen bde5064510 direct share discussion menu items
On the discussions index page, each discussion has two new menu items
for direct sharing.

flag: direct_share
closes: ADMIN-2783

test plan:
- new menu items are only there when the feature flag is on
- new menu items are only there when the user can actually manage
  discussions, not just create or moderate.

Change-Id: I8769cbd99f506663157c3efe470d80aa7eac5b34
Reviewed-on: https://gerrit.instructure.com/203038
Tested-by: Jenkins
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
2019-08-06 23:34:56 +00:00
Adrian Packel a2e475c727 Don't require group filter for group assignments
For group assignments that aren't set to grade students individually,
don't require a student group to be selected, since SpeedGrader will
show a single entry for each group. (For group assignments that *do*
grade students individually, we still require and apply the filter.)

fixes GRADE-2352

Test plan:
- Enable the "Filter SpeedGrader by Student Group" feature in the root
  account
- Have a course with new gradebook and the above-derived course setting
  enabled, and at least one group set w/ groups
- Set up three assignments:
  - A plain old invidiually-graded assignment (A1)
  - A group assignment that does *not* grade students individually (A2)
  - A group assignment that *does* grade students individually (A3)
- In new Gradebook:
  - For each assignment above, check the behavior of the SpeedGrader
    link in the submission tray for a student in that assignment:
    - A1 and A3 should disable the link unless you are filtering by a
      student group
    - A2 should always have the link enabled
- On the assignment view page, check the behavior of the SpeedGrader
  link for each assignment:
  - A1 and A3 should require a student group to be selected before the
    link is enabled
  - A2 should always have the link enabled, and not bother showing the
    group dropdown
- On loading SpeedGrader for an assignment:
  - A1 and A3 should only show students for the selected group, as you'd
    expect
  - A2 should show the all the groups in the assignment's selected
    group set as individual "students", while showing separate
    individual entries for any students not assigned to any of those
    groups

Change-Id: Id797040518f3596ace5c05e6ed189fad19ffef78
Reviewed-on: https://gerrit.instructure.com/203502
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2019-08-06 23:27:58 +00:00
Steven Burnett 237b233131 fix submission comment justification in a2
fixes COMMS-2276

Test Plan:
- in A2 create a mix of read and unread submission comments
- notice the rows all align

Change-Id: I04c58616b7e3bef872dc93da6a7cab0da0e96297
Reviewed-on: https://gerrit.instructure.com/204123
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
2019-08-06 21:52:26 +00:00
Ryan Shaw d2967cbf81 Make a file work if we drop IE 11
My previous attempt to get this to work with or without the “Drop ie 11”
commit applied fixed one thing but with the “drop ie 11” commit applied
it would fail on another thing. This avoids the issue altogether by just
not using a real es `class` as the parent class

Test plan: 
* with “drop IE 11” applied:
bin/rspec ./spec/selenium/quizzes/quizzes_question_creation_spec.rb:66
  Should pass

Change-Id: Iefb92d103ff0f6d4993fd73bb3f3b41eb3e9d1e3
Reviewed-on: https://gerrit.instructure.com/204096
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
2019-08-06 21:47:19 +00:00
Ed Schiebel fd2c5093bf Be more careful about selected text
when creating a new link, only use text that's actually selected
to populate the Text field of the create link dialog.
when editing a link, pull all the link text to populate the dialog

closes COREFE-6

test plan:
  - load a page with the RCE
  - type in some text, leave the text caret adjacent to the text
  - clink Links > External Links
  > expect the Insert Link modal's Text field to be empty
  - create a link
  - with the text caret adjacent or w/in the link, click
    Links > Edit link
  > expect the Text field to be populated with the link's text
  - type some more text, select it, and click Links > External Links
  > expect the Text field to be populated with the selected text
  - from Documents > Course Documents, add a link to a course document
  - put the text cursor in or adjacent to the link
  - click on the popup Options button
  > expect the Text field in the Link Options tray to be populated
    with the link text

Change-Id: Ice7a9500befaaf7957982387ba5ea8a0223f2b47
Reviewed-on: https://gerrit.instructure.com/204002
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2019-08-06 21:00:30 +00:00
Landon Gilbert-Bland 69b64d1f62 Do not load external_tool assignments through A2 page
The external tools can do all sorts of things. They might pass their
submissions back to canvas or not, have their own commenting system,
their own retry system, etc. Talking to product, we agreed that these
should not be rendered inside of the A2 student view, and stick to the
A1 behaivor

Test Plan:
  - Jenins passes
  - With the A2 feature flag turned on:

    * LTI loads when we have an assignment of the external_tool type
    * A2 loads for all other assignment types

closes COMMS-2274
flag = assignments_2

Change-Id: I7f9f3e5f14f7836214b9d2680a90c6cc82740d2e
Reviewed-on: https://gerrit.instructure.com/204072
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2019-08-06 20:40:08 +00:00
Steven Burnett 479b66347d fix n+1 on submission comment read field
fixes COMMS-2273

Test Plan:
- Tests pass
- mark a submission as read and query a submission comment for its read
  field
- mark a submission comment as read and query for its read field
- notice both return read for the user and false for another user
- celebrate

Change-Id: I9dd9a4e919e7e60f13b1b18ef56da61cbb9055f6
Reviewed-on: https://gerrit.instructure.com/203936
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
2019-08-06 19:58:09 +00:00
James Williams d67aadab11 add fallback when searching wiki pages in link validator
test plan:
* a link to a wiki page with a "+" in the title
 shouldn't cause a warning in the course link validator

closes #ADMIN-2801

Change-Id: I1ac5843c40b4c7067e5fc7a6eb9b7ccd5a99e220
Reviewed-on: https://gerrit.instructure.com/203727
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2019-08-06 19:34:05 +00:00
Ryan Shaw f103ec2cca Make a couple files work when using real `class`es
Test plan:
* with or without the “drop IE 11” commit applied
  (Which stops using babel to transpile `class` syntax)
* bin/rspec ./spec/selenium/people_settings_spec.rb:144
  should not fail with:
TypeError: Class constructor TokenInput cannot be invoked without 'new'

Or to test manually:
* go to /courses/1/users
* click the 3dots on a student row
* click “edit sections”
* it should not throw that ^ js error

Change-Id: I1846b968fbfcb9043fe1040a098499450887510b
Reviewed-on: https://gerrit.instructure.com/204060
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-06 19:26:39 +00:00
Ryan Shaw e1a70a3fb6 Decaffeinate: convert syntax for EntryEditor.js
This was to get it to work when the “Drop IE 11” commit is applied.
Without changing it, it would die on 
bin/rspec ./spec/selenium/discussions/discussions_threaded_spec.rb:146
With:
TypeError: Class constructor blah cannot be invoked without 'new'

The one thing I had to change manually was to handle
setting this.view in a way that that it can be accessed in the parent
constructor

Test plan:
* bin/rspec ./spec/selenium/discussions/discussions_threaded_spec.rb:146
  Should work with or without the “Drop IE 11” commit applied

Or to test manually:
* go to /courses/x/discussions/y
* edit a discussion reply
* it should work

Change-Id: I835d9b251ab31455f93dc8d09d47edbbfa3dcb97
Reviewed-on: https://gerrit.instructure.com/204017
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-06 19:13:28 +00:00
Ryan Shaw 381bfe7eb6 decaffinate: rename EntryEditor.coffee to .js
This is the first step in a coffee to js conversion and is so the diff
On the actual conversion doesn’t show up as a deleted file and a new 
file. It will not pass Jenkins since it is a js file with coffee script
Syntax and that is expected

Change-Id: Ieec30e98bc15c8c650be0df7c02b03fa6a1b34d3
Reviewed-on: https://gerrit.instructure.com/204016
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-06 19:13:12 +00:00
Adrian Packel 83102cef94 Save post policy in content migrations
closes GRADE-2289

Test plan:

Course copy:
- Have a course with New Gradebook and post policies enabled
- Create the following assignments/post policies:
  - A Manual posting policy for the course overall
  - An auto-posted assignment (A1)
  - A manually-posted assignment (A2)
  - An anonymous assignment (A3)
  - A moderated assignment (A4)
- From the course's Settings screen, make a copy of the course
- Enable New Gradebook for the new course if needed
- Check that the newly-created copy has retained the overall post policy
  for the course and the individual post policies for the assignments
  (i.e., A1 should be auto-posted and A2-A4 should be manually-posted)
  - Note that A4 should be manually-posted, even if you had previously
    released grades and set the policy to automatic (course copy does
    not carry over the grade-publishing status)

Blueprint:
- Enable the "Blueprint Course" account feature option
- Create a new course with the same assignment/post policy loadout as
  the course in the above step
- In the Settings menu, check the "Blueprint Course" checkbox for the
  course
- Set up another course using this one as a blueprint
- Change around some of the assignment post policies in the blueprint
  - Make sure these register as unsynced changes for the assignments,
    and check that syncing carries them over
- Change the course post policy for the blueprint
  - Make sure that syncing the course carries the new post policy over
    (it should not apply the new course policy to any assignments, only
    set it on the course level)
  - To have the policy transfer over, you'll need to make sure you
    include course settings in the sync

Change-Id: I1fec3d5e88a8aa333ba511780d3934e98a4d7c2c
Reviewed-on: https://gerrit.instructure.com/203194
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
2019-08-06 18:47:57 +00:00
Gary Mei 0647461bbb fix late policy running twice on a submission
fixes GRADE-2149

Test Plan
- Set a late policy with a fractional value. Example: 2.35% per day.
- Create an assignment with a due 1 day ago and points possible of 10.
- As a student, submit to the assignment.
- Grade the student. Note the grade after the late policy has applied.
- Edit the assignment and add an override for a *different* student.
- Check the first student's grades again. It should not have changed
  from the value previously noted.

Change-Id: I0206847439d94042f27782d825669bf5be1e4c86
Reviewed-on: https://gerrit.instructure.com/202222
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
2019-08-06 18:47:07 +00:00
Gary Mei 80177704c6 fix gradebook sort when filtering by student group
When New Gradebook is sorted by total grade, filtering by student
group now works.

fixes GRADE-2276

Test Plan
- Create at least 2 groups.
- Add some students to one group, and some students to another group.
- Navigate to the New Gradebook.
- Sort by Total Grade.
- Filter by student group.
- Verify that only students in the selected student group appear.

Change-Id: Ib690569b679956bff60d7bf801edf906fdf0a76e
Reviewed-on: https://gerrit.instructure.com/203373
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
2019-08-06 18:44:13 +00:00
Ryan Norton b54f9f6a8f add body to submission draft mutation in graphql
we need to allow setting a 'body' in the submission draft
mutation in graphql for text entry assignments

Test Plan:
* create an assignment as a teacher
* add a student to that assignment
* as a student, navigate to /graphiql
* run the following mutation
** set the submissionId to whatever your latest submissionId is
```
mutation {
  createSubmissionDraft(input: {submissionId: "1", attempt: 1, body: "stuff"}) {
    errors {
      message
      attribute
    }
    submissionDraft {
      _id
      body
    }
  }
}
```

* you should get a result like:
```
{
  "data": {
    "createSubmissionDraft": {
      "errors": null,
      "submissionDraft": {
        "_id": "42"
        "body": "stuff",
      }
    }
  }
}
```

* in the rails console, confirm the data (especially the body)
  is correct: SubmissionDraft.find(<id>)

fixes COMMS-2265

Change-Id: I6ba6a67e3a592e295c62365ca7fa13250d05e837
Reviewed-on: https://gerrit.instructure.com/203731
QA-Review: Matthew Lemon <mlemon@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Norton <rnorton@instructure.com>
2019-08-06 18:14:20 +00:00
Ryan Norton d790a76222 add body to submission draft in graphql
we need to add a 'body' field to the submission draft type
in graphql to allow us to store text entry drafts going forward.

Test Plan:
* run the db migration to add body to submission draft:
** bundle exec rake db:migrate:up VERSION=20190801215707

* create an assignment as a teacher
* add a student to that assignment
* run the following in the /graphiql endpoint to locate the
  submissions for that assignment

  ```query MyQuery {
  assignment(id: "1") {
    submissionsConnection(filter: {states: [unsubmitted, submitted, graded, pending_review]}) {
      nodes {
        _id
        submissionDraft {
          body
        }
      }
    }
  }
}```

** you should see a submission with a null submission draft

* in the rails console, you will need to add a submission
  draft with a body to that submission
** sub = Submission.find(1) // or whatever your submission ID is
** draft = SubmissionDraft.create!(submission: sub,
   submission_attempt = sub.attempt + 1)
** draft.body = 'some text'
** draft.save!
** sub.submission_drafts = [draft]
** sub.save!

* run the query in graphql again, and you should see something
  like:

```
{
  "data": {
    "assignment": {
      "submissionsConnection": {
        "nodes": [
          {
            "_id": "31",
            "submissionDraft": {
              "body": "some text"
            }
          }
        ]
      }
    }
  }
}
```

fixes COMMS-2263

Change-Id: I62877ac43727f02191c84a98e2609bd8f9987733
Reviewed-on: https://gerrit.instructure.com/203674
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
2019-08-06 17:37:15 +00:00
Ed Schiebel 7e41826748 fix <Select> deprecation in NewCourseModal
Replace Select with CanvasSelect
Replace legacy TextInput with the new TextInput

fixes ADMIN-2771

test plan:
  - go to account courses page, /accounts/self
  - click the "+Course" button
  > expect the 2 TextInputs to accept input
  > expect the subaccount and term selects to work as expected
  > expect some nice screenreader messages as you interact with the
    selects
  > expect the course to be created with the right data
    when clicking on the "Add Course" button
  - try it again, but do something to make it fail (I set a breakpoint
    at courses_controller.rb line 791 and set @course=nil)
  > expect to get an error flash message
  - click on the "details" button
  > expect the details popup to be above the Modal's overlay and you
    can dismiss it.

Change-Id: I8612b086a8812660c82c9d243746ed211deb5a59
Reviewed-on: https://gerrit.instructure.com/202575
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2019-08-06 17:23:46 +00:00
Matt Sessions eec763a245 Add grading status filter to submissions connection
refs: MBL-12809

Test Plan:
 - Create an assignment with a submission that needs grading, and
   a submission that is already graded
 - request submissions for the assignment through gql using the
   gradingStatus filter for needs_grading
 - It should return the submission requiring grading and
   not the other one

Change-Id: I2ac6b7e95819122d085898255a352a002aefa9f7
Reviewed-on: https://gerrit.instructure.com/202156
Tested-by: Jenkins
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Matt Sessions <msessions@instructure.com>
Product-Review: Matt Sessions <msessions@instructure.com>
2019-08-06 16:27:32 +00:00
Ryan Shaw f0858936ab Backport instUI fix to allow themeable w/ `class`es
We made this change in @instructure/ui-themeable in g/203714
but that is for the current master on instUI 6, we need it now even
though we are still on instUI 5 so this will back port it in so we can
use it now.

Test plan:
* Things that use `themeable` should work both with and without the
  “Drop ie11” commit applied.

Specifically:
bin/rspec ./spec/selenium/dashboard/planner/student_planner_assignments_spec.rb:88
Should not fail with
TypeError: Class constructor Yr cannot be invoked without 'new'

Change-Id: I7ef8ef9eda1057badabbb08fcdd6875ad8064e89
Reviewed-on: https://gerrit.instructure.com/203950
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-06 16:07:55 +00:00
Ryan Shaw 0da4de9d32 fix more specs relying on babel ie11 transpilation
Change-Id: I8141f30b9da5ba2a91791f02e4755d5df13a0ea1
Reviewed-on: https://gerrit.instructure.com/203949
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-08-06 15:34:17 +00:00
Jeremy Neander 0ddb2f5e62 recalculate grades when assignment groups load
fixes GRADE-2064

test plan:
 A. Setup
    1. Create a course
    2. Enroll 11 students
    3. Ensure two assignment groups exist (A and B)
    4. Keep the first assignment group empty (A)
    5. Create 100 assignments in group B
       * all worth 10 points
    6. Ensure the assignment groups are ordered A, then B

 B. Verify
    1. Visit Default Gradebook
    2. Grade each student for at least one assignment
    3. Visit Screenreader Gradebook
    4. For each student:
       a. Select the student in the dropdown menu
       b. Verify the student's course grade is calculated

Change-Id: Icc880e3c83a9fda549664be7083a551a018541c5
Reviewed-on: https://gerrit.instructure.com/203617
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2019-08-06 15:21:45 +00:00