Commit Graph

57290 Commits

Author SHA1 Message Date
Cody Cutrer 6dff8b8bfe bundle update factory_bot
Change-Id: I8a72032faaa8aa359a7b34b041633c947f3801b9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326814
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 16:04:11 +00:00
Cody Cutrer 0138d600d0 bundle update dogstatsd-ruby
Change-Id: I9f739bc9e4e787eba9b659308e2deeab403c5495
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327167
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 16:03:51 +00:00
Cody Cutrer fda6f1e0d2 bundle update pact_broker-client
Change-Id: Ic3af33916b8cbda6221e6986483291f38a754529
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327170
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 16:00:35 +00:00
Cody Cutrer 1513f08447 bundle update twilio-ruby
Change-Id: I3db3cf4e5cbec20b5a044fd9a6d80d8d60090d5e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327171
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 16:00:16 +00:00
Cody Cutrer 38f902c055 use the rubocop gemfile for script/rlint
instead of an inline gemfile. this ensures the same lockfile is used as well

Change-Id: I885c6af20950ca331992e3ba0a0c06ef5ec673d5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327177
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 16:00:00 +00:00
Cody Cutrer 12a2c3784f bundle update rubocop-rspec
[skip-stages=Flakey]
[skip-crystalball]

and apply updated copys (RSpec/Eq and RSpec/MetadataStyle, and one
instance that the split RSpec/SpecFilePathSuffix caught)

Change-Id: I3872458f35b791f1ce3f8108a2aaf4fff2cfd612
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327204
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 15:59:30 +00:00
Cody Cutrer 2a841c66cd bundle update googleauth
Change-Id: I9930389d8d6af37b38ebc94c7c0fb58d63101cc0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327203
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2023-09-11 15:56:39 +00:00
Cody Cutrer a717c78947 bundle update inst-jobs
closes AE-468

Change-Id: I7cc556b80c880fa8d13a14848124e0f013734ed7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327264
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-11 15:49:23 +00:00
Jason Gillett 9a351454a3 Default to plain text if incoming html is too long
There are cases where an incoming reply to a canvas message
has html that is too long when the plain text content is not too long.

Submission and inbox messages do NOT use the HTML at all
Discussion entry replies can use it, but if it is nil, then it defaults to
use the plaintext over the html.

example in discussion entry reply_from
    if opts[:html]
      message = opts[:html].strip
    else
      message = opts[:text].strip
      message = format_message(message).first
    end

This should allow our users to send messages even if they have an
email signature that contains lots of html

refs VICE-3773
flag=none

Test Plan
1. Verify specs
2. Once deployed to an environment with email setup do:
2a. Send a message that contains html that is longer than 64kb
2b verify the message sent in canvas but only with plaintext contents

Change-Id: If1d90e8e63c9d333f005827839b5d2aaa0a1d4cb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327236
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
2023-09-11 15:42:10 +00:00
Jeremy Stanley c67a94a3d8 smart search: schema-qualify vector type
test plan:
 - predeploys run

flag=smart_search
refs ADV-22

Change-Id: I3c1c303e804307b154cc5ca8dfb4280ea161c601
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327269
Migration-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2023-09-11 15:41:05 +00:00
Chawn Neal c42517b74a Increase discussion per_page and fix pagination
flag=none
fixes VICE-3690

Test Plan:
- Create a course.
- Create 1000 discussion topics for it.
- go to the discussion topics index.
-- look at the network request.
-- you should see 10.
in a request it will have 100.

Notes:
- increase discussion per page from 50 to 100.
- now per page propogates on BE and FE.

Change-Id: Ib018a9b0652839f2b7a7dc93a48b015852185b28
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327189
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-11 15:35:59 +00:00
Ed Schiebel e76fd77358 Upgrade react-dnd to v6.0
I tried v7.5.0, the last version before the api became soley
react hook based, but it didn't work

closes LF-46
flag=none

test plan:
  - you can drag cards around on the card dashbaord

  - you can drag discussions around on the /discussion_topics page

  - check Mastery Paths in course settings
  - create a couple assignments
  - edit an assignmenet and go to the Mastery Paths tab
  - put a couple assignments in there
  - you can drag assignments between sections
  - you can drag an assignment on top of another and they will
    be joined together
  - you can drag them apart

Change-Id: Iedf956e45ebd995e6b30e7df0a993bffb3a96f4f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327233
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2023-09-11 15:30:14 +00:00
Roland Beres 14cf0a4961 Do not enforce module type in grading-utils packages
Quizzes not able to upgrade to node 18 with enforced module type

refs: QUIZ-11747

Test plan:
  - Existing tests work

flag=none

Change-Id: I71821d47753f960c0d7a039c930848c87434f3ad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327285
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-11 15:25:07 +00:00
Aaron Shafovaloff d5ea6fa3d7 TypeScript cleanup
flag=none

Test plan:
  - build passes

Change-Id: I1b16b9e065d5834fd48e3560f3da48310dbd63ad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327205
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
2023-09-08 22:29:07 +00:00
Cody Cutrer 8355867fc2 bundle update inst_statsd
refs AE-438

Change-Id: I56f55b2a34a17d1b09a9954623816444db6f4fcb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327243
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-08 20:46:10 +00:00
Jackson Howe ed313fcaf9 Compare IDs properly for account contexts in planner
In the planner, we test if a user has access to an account context
by getting a list of the account IDs they're requesting and a list of
account calendar IDs they have access to. If an account ID appears
in the first but not the second, we run additional permission checks
(which most non-admin users won't pass). However, the IDs that the
user passes are transposed into local or global IDs relative to the
user's shard, while the account calendar IDs were previously relative
to the domain root account. Thus, if a user was requesting access
to a calendar on a different shard than the domain root account (but
also on the same shard as the user themself), we'd be comparing
local to global IDs and the check would fail. This commit transposes
the enabled account calendar IDs to be relative to the user's shard
to enable proper comparison of IDs.

flag = none
closes LF-570

Test plan:
 (Requires trust setup)
 - Enable the root account calendar on shard A
 - Enroll a shard A user in a course on shard A and in a course on
   shard B
 - Visit the calendar as that user on shard B's domain
 - Subscribe to shard's A root account calendar
 - Expect no errors (specifically, the planner items request should
   return a 2xx response)

Change-Id: I2fb572e342633805fa0d017041eb5f032f247eef
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327180
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
2023-09-08 20:17:06 +00:00
August Thornton d5b5a8c79e separate temporary enrollment pairings on the user profile page
closes FOO-3339
flag=temporary_enrollments

Test plan:
 • Enable the temporary enrollments feature flag
 • Have a temporary enrollment recipient and provider pairing
 • Navigate to /accounts/self/users/<recipient_id>
    • Verify there is a separate section for temporary enrollments
      that lists the course enrollment, start date, end date, and
      the provider's name
 • Navigate to /accounts/self/users/<provider_id>
    • Verify there is *not* a separate section for temporary enrollments
      unless the provider is also a recipient of a temporary enrollment

Change-Id: Ic24162b84f31f988e53ffdea51a51edb596a12a0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327164
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2023-09-08 20:13:18 +00:00
Jonathan Featherstone 169de2e776 Add initial smart search implementation
still very much a prototype

test plan:
 - install pgvector extension
   (i.e. `brew install pgvector` or your operating system's
    package manager)
 - run db migrations and verify the "vector" extension
   gets enabled
 - set up OpenAI API key via `bin/rails credentials:edit`
   and add
    smart_search:
      openai_api_token: <...>
 - enable the smart_search feature flag in an account
 - in a course under that account, create some wiki pages
   with nontrivial content
 - as a user who can see those pages, using the magnifying
   glass that appears in the global nav, search for things
   (by ideas and concepts rather than just keywords)
 - it should find results

limitations:
 - lots, please refer to the ADV-22 epic for next steps

flag=smart_search
closes ADV-21

Change-Id: I4a6cf4bc98cb144707df156baf143c3f9b70acdf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/325880
Build-Review: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
2023-09-08 18:52:53 +00:00
Omar Gerardo Soto-Fortuño ba38ce8d02 Refactor discussion_create check to edit method
closes VICE-3756
flag=discussion_create

test plan:
  - Specs pass.
  - Cursory testing of current state of the
      Discussions Create/Edit work

qa risk: low

Change-Id: I18d563f4483e8dc72f009e14fb3788d748f7e5f2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327202
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
2023-09-08 18:44:06 +00:00
Jeremy Stanley 92e6666689 don't add students to blueprints from account course list
enrolling students or observers in a blueprint course will fail
but not with a useful error message, and it'd be better to
exclude those types from the add-users dialog to begin with,
like we do with types the user doesn't have permission to add

test plan:
 - set up a blueprint course
 - find it in the account courses page
 - click the + to add users
 - student and observer-based roles should not appear

flag=none
closes FOO-3754

Change-Id: Ia304b1b95cdb8f00734d0c4db6e739ba4ca029cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327166
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2023-09-08 18:21:37 +00:00
jake.oeding 3cc6e3462c mutate UI on update
closes LF-611
flag=differentiated_modules
qa risk: low

test plan:
-go to modules, open the tray, switch to settings
-perform a module name upate
>confirm that the UI updates and reflects the current
 name of the module
-change the unlock date to a time in the future
>make sure that the 'will unlock at ...' text appears
-change the unlock date to a time in the past
>make sure the 'will unlock at ...' text disappears

Change-Id: I1796e6e46aa90bc324d01dff466d3b39ddd34002
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327062
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Jake Oeding <jake.oeding@instructure.com>
2023-09-08 18:10:44 +00:00
Jen Smith d11ef7170a add feature flag for enhanced docviewer url security
flag = enhanced_docviewer_url_security

Test Plan:
  Tests pass

closes CAS-1462

Change-Id: I5bce4160eadd40115264f5244635b909633cc09f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327238
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Juan Leyva <juan.leyva@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
QA-Review: Juan Leyva <juan.leyva@instructure.com>
Product-Review: Juan Leyva <juan.leyva@instructure.com>
2023-09-08 18:04:57 +00:00
Ed Schiebel da7aa173bf Permit events at midnight less than 30 minutes long
When an event started at midnight the calendar code
moved the start time to 00:30 without adjusting the
end time. I simply changed this to advance the start
time to 00:02. Since the time select dropdown is in
increments of 5 minutes, this should handle all but
the most ridiculous of cases.

closes LF-715
flag=none

test plan:
  - create an event starting at midnight and 10
    minutes long
  - edit the event
  > expect the edit to succeed
  - create an event starting after 11:30 PM
  - edit the event
  > expect the edit to succeed

Change-Id: I44cee291a3ecb2a7ca3a7416d0c1ee4669f1e362
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327173
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2023-09-08 17:59:53 +00:00
Aaron Shafovaloff b8b77a2638 Prepare for InstUI 8 upgrade
refs FOO-3190

flag=none

Test plan:
  build passes

Change-Id: I565239c71d769a3b8359221422a972780306c04c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327200
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
2023-09-08 15:56:48 +00:00
Cameron Ray 6b476aa665 Monitor usage of "Hide in Gradebook" feature
closes EVAL-3407
flag=none

Test plan:
  tests pass

Change-Id: I1cae894e307fba1553c362c5a62c56211389fbd4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327218
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
2023-09-08 15:53:40 +00:00
Jacob Burroughs 191abd5f4b simplify update_account_associations
Makes the DB do most of the work instead of doing it in-process

fixes AE-467

Change-Id: If019a97e8137264f70cac4c819f97e4c12f77f5f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327147
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
2023-09-08 13:28:44 +00:00
Samuel Lee 6cb51e912c add pagination and search bar to peer review page
add pagination and search bar to peer review page in the teacher view
in order to fix page timeout when there are many peer reviews

closes EVAL-2762
flag=none

test plan:
- have a course with over 10 students and a peer review assignment
- as the teacher go to the assignment peer review page
- see that there are only 10 students on each page and the pagination
  works
- use the search bar and enter search keywords
- see that page displays names relevant to the search keyword

Change-Id: Iaf6e2c81b8699fb4291b1ac6713b3004bc278f80
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326958
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Jackson Huang <jackson.huang@instructure.com>
QA-Review: Christopher Soto <christopher.soto@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
2023-09-08 13:28:41 +00:00
Chris Soto 7350963b8e grade override tray fixes
this commit fixes the following issues: the tray was not enabling the
radio buttons when a brand new override score was entered, the tray was
displaying a saved grade message if there was not an update to the
override score, and the tray now only shows the radio inputs for
statuses if the account has any statuses.

closes EVAL-3462
flag=grading_scheme_updates
flag=custom_gradebook_statuses

test plan:
- delete all custom statuses for the account
- verify that when opening the grade override tray, that the statuses
  section and radio inputs are not displayed
- add new custom statuses for the account
- verify for an override score of null, that the tray has the radio
  inputs disabled
- verify that when entering a new override score within the tray, that
  radio inputs become enabled
- verify that for a student with a null override score, clicking into
  and out of the textbox without making any changes does not display
  the saved grade message

Change-Id: I0a3be67432ed6f783fc83c73ce78202630f3a2b9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326716
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rohan Chugh <rohan.chugh@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
2023-09-08 13:14:22 +00:00
Ed Schiebel c6f26f0c99 Add aria-expanded to show more/less in recent activity dashboard
closes LF-719
flag=none

test plan:
  - in a course create a new announcement or assignment
  - as a student go to the Recent Activity dashboard
  - you should see some recent activity
  - using a screenreader, navigate to the "show more" toggle button
  > expect the SR to say the button is collapsed
    (or look at the DOM and see aria-expanded="false")
  - click the button
  - navigate back to the button (since we focus the first thing
    just exposed)
  > expect the SR to say the button is expanded
    (or look at the DOM and see aria-expanded="true")

Change-Id: If1adba592b513c877b8cdc0378c74947e4260882
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327165
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-08 12:41:56 +00:00
Cody Cutrer c8210bee69 use a normal NOT NULL constraint for scores.course_score
it's O(1) to set the column NOT NULL once the check constraint exists

Change-Id: I5b0be774b1dea598d8c3d9a5d271e057e2f117cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327176
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
2023-09-07 23:01:14 +00:00
Cody Cutrer 2039924c66 use helper methods for check constraints on old migrations
not that we really need to change, but it serves as an example for future
migrations

Change-Id: Ie1a1975311c81b0c145c17af46e57e604a01eca5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327026
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
2023-09-07 23:01:00 +00:00
Andrea Cirulli b75528cc31 update snyk org
[canvas-builds-refspec=8f775a14385cfd426592eecdd14d0226f3cac9d1]
[build-registry-path=jenkins/canvas-lms-snyk-test]
[change-merged]

Change-Id: I4b33786da4dc0a03c4638931df0a03c54950c72b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327107
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hargiss <mhargiss@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2023-09-07 21:53:59 +00:00
Isaac Moore 188863119f Read pandata secrets from Vault
refs AE-76
flag=none

test plan:
- secrets are read from Vault
- URL is read from Consul

Change-Id: Ie8fc4da260a36cab6446fcc15ab951a18df1c106
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326917
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
2023-09-07 21:07:31 +00:00
Jason Perry 689a420eca Replace plain input with InstUI Search component
Fixes FOO-3759
flag=none

Test plan:
  * Setup App Center plugin
  * Visit the apps tab on account settings.
  * Ensure the filter still behaves as expected.

Change-Id: I96acdd957cc60966f45d68dadeed1d661b344805
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327143
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: Jason Perry <jason.perry@instructure.com>
2023-09-07 21:03:52 +00:00
Jason Anderson f6598e18d6 Fix Icons in LMGB to Match Design
closes OUT-5837
flag=improved_lmgb

This ticket focuses on updating icons to match design as well as a
couple of other small things
Summary:
 - "Star" icon has been changed to "Target" icon for exceeding
     mastery level
 - "Below Mastery" has been replaced by "Remediation"
 - Gradebook menu has changed to match design
 - Cell heights and widths have slightly changed

Test Plan:
 - Tests are sufficient and pass in Jenkins
 - Enable Improved LMGB and Account Level Mastery Scales FF
 - Perform a visual analysis on the gradebook in any course
  - check that changes to UI reflect the new designs
   - (See OUT-5837) ticket for reference

Note: There are only 4 pills in the legend according to the
  new design, but this descision is still in progress.
  I decided to leave the additional pills
  until a final descision is made

Change-Id: I34108aafcc018faeedbfc9e70f5b6492f0f9d5f6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/325873
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2023-09-07 20:04:17 +00:00
jonathan 60dc505ce6 “Assign to” tab UI on differentiated modules tray
Add the access type options to the “Assign to” tab

closes LF-591
flag= differentiated_modules

Test plan

- With the differentiated_modules FF on
- go to the modules page of a course
- open the module menu
- click on the Assign to option
- Expect to see the two access type radio buttons and the UI to match
the design

Change-Id: Ibbf329e3a690ec00150bcde5d0d5757fa288ef90
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327008
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jake Oeding <jake.oeding@instructure.com>
QA-Review: Jake Oeding <jake.oeding@instructure.com>
Product-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
2023-09-07 19:33:05 +00:00
jonathan 40eb610c91 Read quiz answers when using equations
Neither aria-labelledby nor aria-describedby worked when the
referenced element is math. They both read a very inaccurate
description of the equation.

Using aria-label to provide a textual representation of the equation
seems to be the best option for now, VO announces the radio input
value in the same way as when reading the alt text of image
equations.

fixes LF-575
flag = none

Test plan:

- Create quiz with multiple choice or multiple answer questions
- Add equations as answers.
- Preview the quiz.
- Turn on VO
- Select the radio button or check box
- Notice that the answer equation gets read.

Change-Id: I1a82f92214bf5e35c1411ef43d3a2178ad29c420
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326731
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
2023-09-07 19:10:11 +00:00
jake.oeding 21969d7517 update package translations build
builds are failing with npm version issues

Change-Id: Ib627f9946c2346a6bcc7dcc5ad4bf49f083669d9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327138
Build-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Davis Hyer <dhyer@instructure.com>
QA-Review: Davis Hyer <dhyer@instructure.com>
Product-Review: Davis Hyer <dhyer@instructure.com>
2023-09-07 17:06:33 +00:00
Jason Gillett c540daa56c Set LiveEvent context for graphql
flag=react_discussions_post
closes VICE-3706

Test Plan
1. Create a new discussion Entry
2. Verify that the discussion_entry_created event contains context info
2a. IF you don't want to set up liveEvents to QA:
2b. You can put a byebug on post_event in live_events.rb
2c. create a new discussion entry on react discussions
2d. Verify that the materialized_context contains the course context


Change-Id: I41c5170d3a75a1c93641e0dd027bdddba44b2d48
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327017
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-07 15:52:30 +00:00
Matheus dfa5c70a01 Add aria-label to to-do items
fixes LF-706
flag=none

Test Plan:
- As a student with different to-do
items (discussions, assignments...)
- Inside the course
- Navigate your todo items with a screen
reader
- Ensure the nature of the item is read to
you along with the item name

Change-Id: I077384490d53a6f5247e9498e73efe0b1d9d20cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327031
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
2023-09-07 14:43:34 +00:00
Ed Schiebel 73a9db0983 Update calendar_events api docs
closes LF-631
flag=none

test plan:
  - run bin/rake doc:api
  - go to /doc/api/calendar_events.html
  > expect the docs to include all the recurring event details

Change-Id: Ia3fcd4b61a17e759e9c822775c1c1357f2f795a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327043
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-07 12:36:16 +00:00
Jenkins 782b080b9d update ja translation
Change-Id: I4aa05140eedbad4e707e8d9d28311d9ee003fd2d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327072
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-07 05:42:09 +00:00
Jenkins 1c69863795 update de translation
Change-Id: Ie7fbdec1c99f8b2e67477b1b26ff4c7afa79f3d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327071
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2023-09-07 05:37:50 +00:00
August Thornton 0d69d6f422 add account user search filtering for temporary enrollments
This change adds the ability to filter the user search results by
temporary enrollment recipients and providers, or both. Later we will
identify the temporary enrollments in the search results by adding a
temporary enrollment icon to the user list rows. This will come in the
form of a provider or recipient specific icon.

closes FOO-3327
flag=temporary_enrollments

test plan:
 • head on over to /accounts/self/users
 • with the temporary enrollments FF enabled, you should see new
   filter option checkboxes for temporary enrollments recipients and
   providers
 • in order for the temporary enrollments filters to work, you must
   also have some temporary enrollment recipients and providers to
   test with
 • the filtering will work in conjunction with the existing search
   filters, so you can filter by temporary enrollments and other
   filters at the same time
 • with the feature flag disabled, you shouldn't see the filter
   checkboxes for temporary enrollment recipients and providers

Change-Id: I1da0cda2a8968982a3401efaf9f5bd4122463830
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327057
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2023-09-06 22:33:52 +00:00
Mysti Lilla 83d23cf666 Fix selenium specs for syllabus edit button
fixes LF-731
flag=none

Test plan
- Specs pass

Change-Id: I5e0e5a2ddd0ae1703312d8ef9fb521717d7d6485
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327060
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Luis Oliveira <luis.oliveira@instructure.com>
Reviewed-by: Davis Hyer <dhyer@instructure.com>
QA-Review: Luis Oliveira <luis.oliveira@instructure.com>
QA-Review: Davis Hyer <dhyer@instructure.com>
Product-Review: Davis Hyer <dhyer@instructure.com>
2023-09-06 22:11:26 +00:00
Drake Harper ff7cbae433 Create score details component
closes VICE-3731
flag=student_grade_summary_upgrade

Test Plan:
- go to student grade summary page
> should see stats button for applicable assignment rows
- click stats button
> should see high, low, mean
> should see score distribution graph

Change-Id: Ibff14be9e2151393be0009e78da06e01fd6411bb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326242
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
2023-09-06 20:26:47 +00:00
Mysti Lilla 69c44d299e Ensure home page links with query params migrate
fixes LF-656
flag=none

Test plan
- Set up a course with a page (or other rich content)
- Using the link insertion tray, insert a link to the
  home page
- Copy the course
- Verify that the home page link you made points to
  the new course after the course copy
- If you want, you can also export the course and
  make sure that the link is a $CANVAS_COURSE_REFERENCE$
  token and not a regular URL

Change-Id: Iffa27ea35b37e44bc33276baecb739d68b15b998
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326795
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob DeWar <jacob.dewar@instructure.com>
QA-Review: Jacob DeWar <jacob.dewar@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
2023-09-06 20:05:09 +00:00
Jackson Howe d7756aad50 Add unassign_item to assignment_overrides
A boolean column which defaults to false. Will be used to indicate
that the AssignmentOverride's presence unassigns the item from
the linked set.

closes LF-665
flag = none

Test plan:
 - Run migrations
 - In a rails console, find an Assignment and run:
   `assignment.assignment_overrides.create!`
 - Expect assignment_override.unassign_item? to be false

Change-Id: I61e1bfb46f2a4b5434d439576769be11bdf953aa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326726
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
2023-09-06 19:20:09 +00:00
Jackson Howe 0a43833574 Add context_module_id to assignment_override_students
flag = none
closes LF-650

Test plan:
 - Run the migration
 - In a rails console, find a module and run:
   `ao = context_module.assignment_overrides.create!
    ao.assignment_override_students.create!(user: <a student>,
    context_module: context_module)`
 - Expect an AssignmentOverrideStudent to be created with a
   reference to the module and the assignment override
 - In psql, run `\d assignment_override_students` and observe that
   the column is created along with the unique index and foreign key

Change-Id: I36d5d4250df09a67a2a27152bf6abc1c43d9f181
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326702
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
2023-09-06 19:20:01 +00:00
Jackson Howe dc31f3d2f1 Add context_module_id to assignment_overrides
Also updates the check constraint to allow AssignmentOverride to
have an assignment, a quiz, or a module. Changes the original
migration which created this check constraint to a predeploy to
match this migration (so that the 2 migrations are run in
chronological order on fresh databases).

flag = none
closes LF-649

Test plan:
 - Run the migration
 - In a rails console, find a module and run:
   `context_module.assignment_overrides.create!`
 - Expect an AssignmentOverride to be created with a
   context_module_id pointing to the module
 - In psql, run `\d assignment_overrides` and observe that the
   column was created, the index was created, the foreign key
   exists, and the check constraint also checks for a
   context_module_id

Change-Id: I93195e28d082411ac43ed715f8eab5b42bd0094c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326620
Reviewed-by: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
2023-09-06 19:19:55 +00:00