Commit Graph

21193 Commits

Author SHA1 Message Date
Erin Hallmark 3d78088308 Clarify language for files hidden link
CLOSES: LA-442
flag = none

Test plan:
- When restricted files is enabled in account/course settings,
the radio button to hide files to students should read
Only available to students with link

Change-Id: I6597160c1c26f99be00d3f643ea39f476b5144f3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222658
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Erin Hallmark <erin@instructure.com>
2020-01-17 16:55:28 +00:00
Michael Brewer-Davis 4198952be4 collapse AcademicBenchmark columns
refs OUT-1107

flag = none

Test plan:
Check the following operations in canvas:
- manually create outcomes, groups
- import outcomes, groups from csv
- import outcomes, groups from Academic Benchmarks
- course copy with outcomes, groups, and rubrics
- account reports with outcomes export and outcome
  results reports

Change-Id: I15d20d216515d0a29d6a5812ac153dd65a15569b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221528
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
2020-01-16 19:54:58 +00:00
Rob Orton 57eca46f87 fix n+1 in group_category api
Change-Id: I236d2d1c128b02acbef15735221d882948b8b818
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222951
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2020-01-16 17:43:36 +00:00
Tyler Burraston 3eb57d0489 Add the choose quiz engine modal
closes QUIZ-7285

Test Plan
---------
- Test with canvas provisioned with quiz_lti/quiz_api
- With the new quizzes on quiz page FF enabled:
-- Navigate to the quizzes page and click the |+ Quiz| button
-- Ensure a modal is shown and is a11y compliant
-- Ensure canceling/submitting with either option works as expected
-- Ensure new quizzes created are shown on the quizzes page

- With the new quizzes on quiz page FF disabled:
-- Navigate to the quizzes page and click the |+ Quiz| button
-- Ensure you are taken to the quizzes old creation flow
-- Ensure new quizzes are not shown on the quizzes page
-- Navigate to the Assignments page and click the |+ Quiz/Test| button
-- Ensure you can create new quizzes and they are displayed only on the
assignments page

Change-Id: I022a0f857d74cf4d315a7c69e467c450889e4aad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223118
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jared Crystal <jcrystal@instructure.com>
QA-Review: Jared Crystal <jcrystal@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
2020-01-15 23:17:51 +00:00
Jacob Fugal 498b95b6b8 capture sha512 digest after inst-fs upload
closes LA-370

note per the comment this is captured into the md5 column. from here on
out, we're treating the md5 column as a more generic "digest" column,
but without the ideal rename.

Change-Id: I9ca75593470c5ba622529e17fb1cd2a95bfb61de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222596
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrew Huff <ahuff@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2020-01-15 21:38:49 +00:00
James Williams 5642712bfb include deleting quiz questions as a downstream change
deleting a question in a quiz should mark it as an exception and
 prevent syncs from upstream (as any other content change)
 unless the quiz is locked for content

test plan:
* create a blueprint course with a quiz with two questions
* sync to an associated course
* in the associated course, delete one of the questions
* in the blueprint, make a change to a date on the quiz
 (or something else to trigger a syncable change)
* re-sync
* it should not have restored the deleted question in the
 associated course quiz

closes #LA-435

Change-Id: I5659b0500729186c95d29f7b252b197a8b960795
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223128
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-15 21:31:50 +00:00
Mysti Lilla 0c224b8b47 Don't check each child discussion permission to redirect
fixes LA-446
flag=discussion_topic_performance_enhancement

Test plan
- Create a group discussion that is linked to a large number
  of groups
- Add students to the groups
- Verify that it doesn't take a long time to load the
  first time for each student
- Verify that you can't see groups you shouldn't see

Change-Id: Iddfb88136c2ecd960f3cc92326e507aad49a690d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222694
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
2020-01-15 20:32:11 +00:00
Charley Kline b162396e05 Fix up brand collection view to use InstUI menu
Refs USERS-201
Closes USERS-202
flag=none

Test plan:
* Visit accounts/1/brand_configs (or whatever account you
  want to use for testing)
* The page should work exactly as it used to
* Especially, the "+ Theme" button in the upper right
  should work just as the old one did (it looks very slightly
  different due to the use of InstUI)
* A11y keyboard nav and screenreader work appropriately

Change-Id: I48f16d72692242768114e2ae8c97d6cb5e57a64b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221332
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
2020-01-15 19:31:44 +00:00
Charley Kline dcaf1fd4b6 Upgrade INST-UI dependencies to latest (6.16.0)
Closes USERS-205
flag=none

Also had to make a slight tweak to a Canvas Planner file to reflect
a change in ui-forms -> ui-checkbox

In addition, several imports from InstUI had to be changed from
their legacy locations to their currently-documented ones, in
order for all the tests to pass. Using the old import sources
apparently causes two components of the same name to be rendered
which breaks assumptions in some tests that there will be only one.

Eventually we'll have to fix up all the imports which will be a
bit of a slog.

INST-UI changes notes for 6.16.0:
---------------------------------

Bug Fixes:

ui-a11y-utils: fix ui-a11y-utils dependencies
ui-docs-client:
    remove unnecessary import of ScreenReaderContent
ui-modal: update deprecated lifecycles in modal
ui-tooltip: uncontrolled example broken

Features:

instui-cli,ui-scripts,ui-template-scripts:
    add a new ui-template-scripts package
instui-cli,ui-upgrade-scripts:
    add a new ui-upgrade-scripts package
ui-badge: add ui-badge package
ui-buttons: add a CondensedButton component
ui-buttons: add an IconButton component
ui-byline,ui-layout: add ui-byline package
ui-checkbox: add ui-checkbox package
ui-docs-client:
    make content within docs pages navigable via linking
ui-docs-client: updates to compileMarkdown for id generation
ui-drawer-layout: add ui-drawer-layout package
ui-elements: add isWithinText prop to ui-element Link
ui-elements,ui-truncate-text: add ui-truncate-text package
ui-expandable: add ui-expandable package
ui-forms,ui-radio-input: add ui-radio-input package
ui-forms,ui-text-area: add ui-text-area package
ui-navigation: remove experimental pill from AppNav
ui-range-input: ui-range-input package
ui-responsive: add ui-responsive package
ui-spinner: ui-spinner and design updates
ui-themeable: update deprecated lifecycles in themeable
ui-tray: ui-tray package

Test plan:
* Review changelog above
* Test on master thoroughly.

Change-Id: I9f4552f18b2a48a626e7bb2102f8b3def46eb775
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221466
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
2020-01-15 18:22:03 +00:00
Michael Brewer-Davis d6a9564128 ensure root outcome group emits live event
closes OUT-3469

flag = none

Test plan:
- In docker-compose.override.yml, set
    STUB_LIVE_EVENTS_KINESIS: "true"
  in the jobs container's environment config.
- restart canvas
- watch logs of web and jobs containers
  in the console:
    dc logs -f web jobs | grep stubbed_kinesis_stream
- create a course called "Downstream"
- create a course called "Blueprint"
- in Blueprint's settings, enable as a blueprint
  course
- Add course outcomes and groups to the Blueprint course
- In the blueprint sidebar, add Downstream
  as an associated course
- wait a minute for course copy job to run
- verify that a live event is received
  for the Downstream root outcome group
    event_name: learning_outcome_group_created
    title: 'Downstream'
    parent_outcome_group_id: nil

Change-Id: Ie7a46472e68e6a3f054a0ba628d520bf8e106a6f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223098
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
2020-01-15 16:50:28 +00:00
Clay Diffrient 4eb104961d Make add app dialog remain open on document click
This dialog is large enough and complicated enough that it stinks when you're inputting
lots of data and happen to brush your trackpad or something causing it to close and lose
data. :(

closes #1560

Test Plan:
  - Go to external apps and add an app
  - When the modal to add the app opens, click outside of it.
  - The modal should stay open.

Change-Id: I7878edf85d54e3882aa6729cf4089b828356bbaf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223133
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Trevor Fullwood <tfullwood@instructure.com>
2020-01-14 17:05:09 +00:00
James Williams 55accfa6ac fix group assignment external tool files submission
test plan:
* have google drive or another lti tool configured for
 assignment file submission
* create a group assignment requiring file uploads
* as a student in a group, should be able to submit a file
 through the tool and have it submit

closes #LA-201

Change-Id: I7c98882cc5bb7bcb5e4a585b9c686f3720368293
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221108
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-14 13:31:31 +00:00
James Williams 5d39d11258 add missing blueprint id sis warnings per row
not just per missing blueprint id

test plan:
* import a courses.csv file with multiple rows having
 a blueprint_course_id set to the same non-existent id
* the import should have a warning for each row

closes #LA-410

Change-Id: Id123c73ec27e949da7e0678bc2aa05dfd47b48b2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221870
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-14 13:24:50 +00:00
Ed Schiebel 0c036549d2 close tinymce floating toolbar when the user does something
Converts all the actions taken by our plugins into
ExecCommand calls, and then we close the floating toolbar
on('ExecCommand'). This works, and I actually like the plugins
executing execCommand to do stuff.
We also close the floating toolbar on('blur'), so it closes if
the user moves focus away from the rce.

closes LA-167
flag=rce_enhancements

test plan:
  - enable "Assignment Enhancements - Student" in a course
  - create a Text Entry assignment in the course
  - navigate to the assignment as a student
  - click "Edit" to create the RCE
  - shrink your browser until the ... more button is in the toolbar
  - click it to open the floating toolbar
  - do anything in the rce
    - try the Images > User Images
    - try highlighting some text, then open the More toolbar,
      then click "B"
  > expect the floating toolbar to close
  - try opening the floating toolbar, then click somewhere else
    on the page
  > expect the toolbar to close
  - open the floating toolbar, then click on "Comments" tab
  > expect the toolbar to close
  - return to "Attempt 1" tab, open the editor and the toolbar
  - click "Cancel" or "Save"
  > expect the toolbar to close

Change-Id: Id588c0d744a1ef1301af1ac080c741c94de19937
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221992
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2020-01-13 23:21:21 +00:00
Clint Furse fcc574fd7b add courses and subaccounts to qraphql AccountType
closes PLAT-5253
flag = none

Test Plan:
- verify that you can see courses and sub-accounts
  under the main account type in /graphiql

Change-Id: I98db4a0e64c70c9886171fc3e27bd14cfdc16df7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221285
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Clint Furse <cfurse@instructure.com>
2020-01-13 22:58:43 +00:00
Ed Schiebel d9174cf915 Ensure RCS ENV is set when using a2 student view
closes LA-451
flag=rce_enhancements
flag=assignments_2_student

test plan:
  - with Assignment Enhancements - Student feature on in a course,
    create a text assignment, then navigate to it as a student.
  - click the edit button
  - click Documents > User Documents
  > expect files to be listed, or if there are none, no error

Change-Id: I56fafefeae4d1b356915ce8cf28cfc537371774f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222949
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2020-01-13 19:16:52 +00:00
Landon Gilbert-Bland 3e4c938595 Clean up account users when account is destroyed
Test Plan:
  - Jenkins passes

fixes USERS-199

flag = none

Change-Id: Ib286e538b64324fb773cc8a8817037ff72cca57b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221908
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2020-01-13 19:02:25 +00:00
wdransfield 8430f519ed Back-end: "allow includes" checkbox
The "allow_includes" field on the developer
key is used to control what access tokens
can use "include" parameters when making
API requests.

refs PLAT-5152
flag = developer_key_support_includes

Test Plan:
Verify you can set the "allow_includes" field
when creating a new developer key

Verify you can update the "allow_includes" field
when editing an existing developer key

Change-Id: Ibcfb7a2cdd06793483421b1ad6a8c0a8d7b99ed6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222617
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
QA-Review: Clint Furse <cfurse@instructure.com>
2020-01-13 16:10:22 +00:00
wdransfield fa4b232b12 Front-end: "allow includes" checkbox
refs PLAT-5152
flag = developer_key_support_includes

Test Plan:
Verify the new "allow includes" checkbox is present when
the release flat is ON and the require scopes toggle is
ON.

Verify in all other cases the "allow includes" checkbox is not
rendered.

Change-Id: I1d32729a3c63bd6d51ae304d56631dc8a65ad99c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Trevor Fullwood <tfullwood@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
QA-Review: Clint Furse <cfurse@instructure.com>
2020-01-13 16:10:04 +00:00
Gary Mei 0b9dd5ae51 fix missed grade_matches_current_submission value
fixes TALLY-60
flag=none

Test Plan
- Create a missing policy in the gradebook.
- Create an assignment.
- Manually mark a student's submission as missing via the gradebook.
- Verify that the missing policy's score appears for the submission.
- Open SpeedGrader to that student's submission.
- Verify that there is no "Use this same grade for the resubmission"
  text/link in the sidebar.

Change-Id: Ib28b1cc1292f6b12ca0302a89d111495616a5740
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222271
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2020-01-10 22:24:36 +00:00
Marc Phillips 5a1a8d8823 Fix scopes on creation of lti key
This was introduced in
https://gerrit.instructure.com/c/canvas-lms/+/219146
where the code to do customizations was removed. Turns
out that the customization page saved the scopes on the
developer key. This makes it save the scopes from the
tool_configuration settings.

closes PLAT-5285

Test Plan:
 - attempt to make a dev key in any manner
 - check in the console that the newly created dev key
   has scopes attached

Change-Id: I76cd42d15daf6f69bc04ad90768055254b5850b3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222646
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Marc Phillips <mphillips@instructure.com>
2020-01-10 21:59:45 +00:00
Ethan Knapp 9312726174 add live events for assignment overrides
refs PFS-12035, PFS-12662

Change-Id: Ic6dd9d58ecf456256b62212d4f8d7ec37312b449
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/199749
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Tanner <ctanner@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Ethan Knapp <eknapp@instructure.com>
2020-01-10 21:38:13 +00:00
Simon Williams 4693861183 remove action_controller_test_process shim
it was used for two things:
- file_fixture_upload, which now comes from
  ActionDispatch::TestProcess::FixtureFile
- Rack::Test::UploadedFile which comes from the rack-test gem

Change-Id: I27957b410fcf4677dac77aed1b00b04dfd1b012e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222555
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2020-01-10 18:54:48 +00:00
Pam Hiett e2f0e1c459 navigation trays ensure links are using the Link component
refs: UIDEV-292
flag=none

TEST PLAN:
- first things first, ensure navigation items that pass an href are
  using the Link component from instui
- ensure ANY long title (more than 51 characters) works in any of the
  navigation trays (Account, Admin, Course, Help)
- ensure the navigation links underline if user has 'HC' or 'underline
  links' option turned on

Change-Id: I7dd185787e88130d77246685f4152c66e3ce361d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222465
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Pam Hiett <phiett@instructure.com>
2020-01-10 18:32:56 +00:00
James Williams a553784c8a remove unnecessary tool_setting preload query in import
we already make another targeted query on tool_settings later
 so the preloaded data isn't even used, and in the meantime
 it's possible to load a lot of rows into memory and eat
 up a lot of time

test plan:
* specs run

closes #LA-438

Change-Id: I6ddfecedafd5602b68d49c65298b7e9c38cc992c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222575
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2020-01-10 16:25:11 +00:00
Cody Cutrer 34b693e978 include canvadocs domain in CSP whitelist automatically
fixes USERS-160

Change-Id: Idc9c62d6aa47694ec36d18e495a9f8bcc398050c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222294
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2020-01-09 22:22:53 +00:00
Gary Mei 6250c99e36 fix utf8 comments crashing prawn
fixes TALLY-158
flag=none

Generating PDF files using the built-in Helvetiva font would cause
prawn to raise an error if a UTF-8 character was present that
Windows-1252 did not support.

This change is a partial revert of
25bd35cf79, but the fonts are only used
in the context of prawn at the moment.

Test Plan
- Create an assignment.
- Leave a comment on one of the assignment's submission using a
  UTF-8 character that Windows-1252 does not support, such as "ă".
- Verify that downloading submission comments generates a PDF, and
  that the "ă" character is present.

Change-Id: Idc7bd1400fb337d384b38a76ebf83639bdc770cf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222482
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2020-01-09 21:26:52 +00:00
Gary Mei b0d07506fd fix total grades column icon appearing
fixes TALLY-357
flag=none

When a manually posting assignment that has unposted grades for
submissions is changed to not be graded, the Totals column in the
Gradebook was still showing the icon indicating that the score is
affected by a hidden grade.

Test Plan
- Create a graded assignment.
- Create a manual posting policy for the assignment.
- Grade a student.
- Verify that the Totals column now has an eye icon next to that
  student's grade.
- Change the assignment to "Not Graded".
- Verify that the Totals column no longer has an eye icon.

Change-Id: I9b734eca0d08e00003eba7aaa9992fb0c84e6893
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222345
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2020-01-09 21:13:35 +00:00
Cody Cutrer a81944a73a rails 6: s/update_attributes/update/g
Change-Id: Ie137c1040260b363979160e1f0558883577ebebd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222510
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-09 20:56:35 +00:00
Jeremy Neander e17afc6376 recalculate student visibility after filtering students
flag = none
fixes TALLY-322

test plan:
 1. Create a course with two student groups
 2. Divide students between the groups
    * must have some students in only one group
 3. Visit New Gradebook
 4. Filter to all student groups
 5. Verify "Set Default Grade" affects all students
 6. Filter to one student group
 7. Verify "Set Default Grade" affects only those students
 8. Filter to a different student group
 9. Verify "Set Default Grade" now affects only those students
10. Filter to all student groups
11. Verify "Set Default Grade" again affects all students

Change-Id: I44fa69ecfe7bc968c3711aa1aca9e7ede4050c74
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222234
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2020-01-09 18:32:01 +00:00
Adrian Packel 953aeb2b7d Restrict anonymize_students to active enrollments
With post policies, ignore submissions belonging to concluded or
inactive enrollments when considering whether an anonymously graded
assignment should anonymize students, rather than simply checking the
assignment's muted attribute (which does not take students' enrollment
states into consideration).

fixes TALLY-151
flag=none

Test plan:
- Have a course with New Gradebook and Post Policies enabled
- Enroll at least three students (S1, S2, S3)
- Set up an anonymous assignment (A1)
- Conclude S2's enrollment in the course
- Deactivate S3's enrollment in the course
- In Gradebook:
  - Check that A1 appears as anonymous and grades are concealed
  - Post grades for A1
  - Reload the page
  - Check that grades for A1 are unconcealed after reload, and that
    "Hide grades" is now possible but posting grades isn't
- Repeat the above in SpeedGrader

Change-Id: I4ae69c088376fe6ba1acc5e8c04dc5abd1706c82
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222155
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
2020-01-09 17:21:07 +00:00
Jeremy Stanley 314b2fc924 respect default sis sync on modules page if possible
test plan:
 - enable new sis integrations feature flag
 - check "sis syncing" and "default sis sync" in account settings
   but do not check "require assignment due date"
 - create a new assignment on the modules index
 - edit the assignment and notice that sis syncing is enabled
 - check the account setting to require due dates
 - create another assignment on the modules index
 - it should create successfully, but not use sis syncing

fixes LA-162
flag=new_sis_integrations

Change-Id: Ibcf4674f46475d00ab2683fd2c81171074d292d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222115
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2020-01-08 22:08:01 +00:00
Landon Gilbert-Bland b36f76617a Check sub accounts for immersive reader flag
Test Plan:
  - Create an account with a sub account
  - Set immersive_reader_wiki_pages feature flag to 'allow' for
    a root account
  - Set immersive_reader_wiki_pages feature flag to 'on' for the
    sub account
  - Create a new wiki page for both a course in the root account
    and for a course in the sub account
  - Verify the sub account course wiki page has the immersive
    reader button displayed
  - Verify the root account course wiki page has the immersive
    reader button hidden

fixes USERS-207

flag = immersive_reader_wiki_pages

Change-Id: I49e9fe72e786eb02fba2394febaa41d149dd1977
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222241
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2020-01-08 22:04:40 +00:00
Matthew Lemon b894dfe1f1 fix calendar todo bug
The Calendar event todo tab was displaying when users didn't have one of
their managed calendars selected. This would allow users to attempt to
create todo events but they would never actually get created. This
removes the todo tab correctly when a user managed calendar isn't
selected.

Test Plan:
- Enroll a student in a published course
- As the student, go to the Calendar page and de-select their personal
  calendar and any user groups they are in
- Click on a calendar date or the plus button to open the "Edit Event"
  popup window
- Note that the todo tab is no longer present
- re-select their personal calendar and open the "Edit Event" popup
  window
- Note that the todo tab is now present

fixes KNO-28
flag=none

Change-Id: Ic1dbda14178c984e7b8952b74302c2d1fe514b59
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221976
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ben Nelson <bnelson@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
2020-01-08 22:04:33 +00:00
Matthew Lemon 1166850967 remove ability to send messages in concluded courses
Test Plan:
- Create a course with a student and a teacher
- Conclude the course
- As both the student and teacher attempt to send a message to the other
  user in the course
- Note that there is no option to select the concluded course in the
  "select course" drop down.

fixes KNO-35
flag=none

Change-Id: Ifa6ba0c810829fd3b26f12acd70ca42523564759
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222116
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2020-01-08 22:03:57 +00:00
Ben Nelson 77766123da don't display Subscribe button on Announcement after reply
Announcements are not subscribe-able so we should not display
the Subscribe button immediately after replying.

Test Plan:
- Create an Announcement that allows replies
- As a student, reply to the Announcement
- The Subscribe button should not appear
- Refresh the page and the Subscribe button should still not appear.

closes KNO-37
flag=none

Change-Id: I130b73f4ca34e883ad0411dcc72e463fe1cc0370
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222296
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2020-01-08 21:41:58 +00:00
James Williams 14e7dc8fc0 don't try to find media objects for null ids in graphql
and skip the search on `old_media_id`

test plan:
* specs run
 (specifically graphql/types/submission_comment_type_spec.rb
 'with no media object returns nil')

closes #LA-414

Change-Id: I5ae325a08c656d22b78e42b688cd4ace3a5d1b52
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221968
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-08 20:56:57 +00:00
Erin Hallmark ad7874f7d4 Remove duplicate word in student comments tab
CLOSES: LA-429

flag = none

Test plan:
- content reads as 'You cannot leave comments until you
submit the assignment'

Change-Id: I6ef5cb56f25c862d92463c9638b6b5d4efbbf5fd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222302
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Erin Hallmark <erin@instructure.com>
Product-Review: Erin Hallmark <erin@instructure.com>
2020-01-08 20:25:35 +00:00
Erin Hallmark 8fc6eca915 Update permissions UI for 2020-01-18 release
This commit adds the What it Does section for the
Users - moderate account role and adds entries
to the course content permission for assignments,
calendar, discussions, and pages. Also standardized
use of a/the user vs users and added missing entry
for Grades - view all grades permission

CLOSES: USERS-213
flag = none

Test plan:
- View permissions UI
- In Account Roles, click Users - moderate content
- View the What it Does section
- In both Account and Course Roles, click Course Content
 add / edit / delete
- In the What it Does section, view additions for assignments,
 calendar, discussions, and pages
- In Grades - view all grades, view the What it Does section
 entry called Grades

Change-Id: Ibeaf1393bf0579c6e78594e8d7978738ce1a1f85
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222212
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Erin Hallmark <erin@instructure.com>
2020-01-08 20:09:16 +00:00
Ed Schiebel 7f250ea705 Fix logic error in MediaObject.ensure_attachment
closes LA-431
flag=none

test plan:
  - spec/models/media_object_spec.rb passes

Change-Id: I42b1138e9f6a89b2b7fda4b1749f70145c439c37
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222360
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2020-01-08 17:55:23 +00:00
Landon Gilbert-Bland 6f906bfc53 Helpful comments for generating schema.graphql locally
Test Plan:
  - Jenkins passes

refs USERS-212

flag = none

Change-Id: Ia417a88a69058e40313e2f6b7273fd8ded843b1d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222203
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2020-01-08 17:08:39 +00:00
James Williams 8357b54f33 fix group weight notification when nothing has changed
test plan:
* for a new course that (by default) already has
 'apply_assignment_group_weights' as false,
 an API update call that includes
 'apply_assignment_group_weights=false' should not trigger
 a notification since nothing (functionally) changed
 (even though technically the db is saving an explicit value now)

closes #LA-412

Change-Id: I15e7288d98bfc910c43e0d5320d90658a24682c1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222027
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-07 21:06:09 +00:00
Matthew Lemon bcdbfb58e1 fix conversations permission bug for groups
When the permission to 'send messages to individual course members' is
disabled, students are no longer able to send Canvas Conversation
messages to group members within the same course-level group using the
group as the context

Test Plan
- In your account permissions, disable "Send messages to individual
  course members" for the student role
- Enroll two students into a course and into the same course-level group
- As one of the students, select your group from the course selector in
  the inbox
- Compose a message leaving the "Course" field as "Select Course"
- Click the "Contacts" icon and select the other student in the group
- Attempt to send the message and notice the red tooltip stating that
  messages can't be sent to users in the selected group

fixes KNO-32
flag=none

Change-Id: Ifa1e8021573d3338a16c95795437576b2d4c32f6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221912
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ben Nelson <bnelson@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
2020-01-07 20:34:30 +00:00
James Williams 45900e97e4 fix content_share_users api call for cross-shard users
quickfix for an underlying switchman bug with shard inference

test plan:
* in an environment with multiple db clusters
 (i.e. production-like), a user whose original shard is
 from a separate cluster should be able to search for users
 using the direct shard modal on another cluster account

1) Have two Shards, Shard1 and Shard2
2) Create a Course1 with an Assignment in Shard2
3) Have User1 (Admin user whose is from Shard1), visit Course1 and launch SendTo dialog from Assignment1 and search for a user(enter 3 chars)
4) Should not throw an error

flag=direct_shard
closes #LA-422

Change-Id: I3c0b6d25183c9bb875ad6d1e543dca86cee67fb6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222204
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-07 20:02:44 +00:00
Ed Schiebel 9d2b7b3435 Ensure media created with old rce renders in new rce
The old rce put a placeholder in the content where the media
was added. This change updates the css so it renders as expected
in the new rce too.

closes LA-107
flags=rce_enhancements

test plan:
  - in a course with rce enhancements turned off
  - edit something and include a video and audio
  > expect to see placeholder images
  - save
  > expect to see placeholders
  - turn rce enhancements feature on
  - edit
  > expect the placeholders to be rendered in the new
    rce like they were in the old rce
  - save
  > expect the placeholders to be rendered
  > expect to be able to click on the placeholder to play
    the media

Change-Id: I491bc06c1e8eef0dcd3352d7dc9214829180554b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221954
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Lauren Williams <lcwilliams@instructure.com>
2020-01-07 18:45:40 +00:00
Jeremy Neander 2001d8f895 remove unused column header bookends
flag = none
fixes TALLY-176

test plan:
 * Verify Jenkins passes
 * Ensure header label is centered

Change-Id: Ib46ff28116807fae84f1f51bf900be977a637a98
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222080
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2020-01-07 16:17:29 +00:00
James Williams fff0d882bb fix broken content notifications when referred from front page
test plan:
* create a wiki page with a broken canvas link
* set the page as the front page of course
* if a student follows the broken link from the
 front page (e.g. /courses/X) it should still
 send the broken link notification to the teacher
 as if they had followed it from the page directly
 (e.g. /courses/X/pages/URL)

closes #KNO-182

Change-Id: Ib4d561997084d7aa167f3a30cf30815f7221b8dc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221660
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Carl Kibler <ckibler@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2020-01-07 13:19:07 +00:00
Evan Battaglia dffd8e03e4 Fix links to originality reports multiple attempts
Commit 39d77b5e added an "attempt" parameter so plagiarism platform
providers can reliably set and update scores for online_text_entry
submissions with multiple attempts. However Canvas also needs to provide
a way for the user to access the report for a given attempt number,
rather than always showing the report for the first submission attempt.

closes PLAT-5232
flag=none

Test plan:
- As in https://github.com/instructure/canvas-lms/commit/39d77b5e test
  plan, make an assignment that accepts online_text_entry, and as a
  student, submit to it twice (making two attempts).
- As before, make originality score for each attempt using the API, this
  time also sending `resource_url`s
  curl -H "Authorization: Bearer MYTOKEN" http://web.canvas-lms.docker/api/lti/assignments/39/submissions/27/originality_report --data 'originality_report[attempt]=1&originality_report[originality_score]=11&originality_report[tool_setting][resource_type_code]=originality_reports&originality_report[tool_setting][resource_url]=http://example.com/eleven'
  (Note: if you comment out `raise Canvas::Security::TokenExpired` in
  lib/canvas/security.rb, you can use an old token from your Plagiarism
  Platform test tool)
- Go to the places in the UI where links to the report appear and make
  sure all links now point to a URL with an `attempt=1` (etc.) query
  param. Make sure the attempt number matches up. The four places are:
  1. In speed grader on the right side
  2. In speed grader on the left side of the page -- this is in a
  partial which is shown in other places like when the student clicks
  details for a submission
  3. In student grades -- as an instructor, go to gradebook and click on
  a student's name. In the table with assignments, on the right, there
  will be a red or green bubble -- clicking that takes you to the
  report. (You can only the last attempt's report here).
  4. In old gradebook there is a link too. In new gradebook there is
  not. (I didn't change gradebook stuff due to new gradebook
  uncertainty)
- Click the link, which should forward to an LTI 2 launch URL. For me,
  this page doesn't work (and didn't for me on Jesse's test account
  either) but you can get the `resource/XXXXX/` parameter in the URL and
  look up the URL by something like `Lti::Link.find_by(resource_link_id:
  'ec2fa300-2c64-432f-83db-8af709059a7c').resource_url`. Make sure this
  matches up to the correct URL you sent for that attempt.
- Optionally, resubmit originality reports using the API, using new
  scores and report URLs. Again click a link in the UI and get the
  resource_link_id (that shouldn't have changed) and check that the URL
  `Lti::Link.find_by(resource_link_id: '...').resource_url` did change.

Change-Id: Ifc8828b4d4486adc2988b7b71cb712821b2b42c2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221399
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
2020-01-06 22:53:45 +00:00
Clint Furse 374bf0ca84 convert placement sizing for tool config to number
closes PLAT-5225

flag = none

Test Plan:
- use JIRA issue steps to reproduce
- verify modifying placement > Selection Height/Width allow saving

Change-Id: I70abaf2f43ee61dc69fb87298fdcfa960d785c55
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221902
Reviewed-by: Marc Phillips <mphillips@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Clint Furse <cfurse@instructure.com>
2020-01-06 22:47:08 +00:00
Landon Gilbert-Bland 9b80b7f52d Send emails when manually generated key is created
Test Plan:
  - Run migrations
  - Navigate to /profile/settings and create a new access token
  - As a site admin, navigate to /users/:user_id/messages and verify
    no notification has been sent
  - As a site admin, navigate to /accounts/site_admin/settings and
    enable the "Send notifications when manually created access tokens
    are made" release flag
  - Make another new access token for a user. Verify they get a message
    saying that a new access token was created.
  - Regenerate an access token. Notice that this should also send them
    a new message

fixes USERS-115

flag = notify_for_manually_created_access_tokens

Change-Id: Ic2760ca20a9dfd40d5dd17339ab42c85c84511b6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220464
Reviewed-by: Charley Kline <ckline@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Matt Meservey
2020-01-06 21:08:45 +00:00