Fixes FOO-4808
Refs FOO-4794
flag=none
It was discovered after merge that the "delete help links"
data fixup migration was missing a test... if the account
is part of a consortium, the help links are "root_only"
settings and some plugins validate the assignment to
root_only settings and disallow their assignment if the
account is a consortium member.
Test plan:
* If you have consortium accounts, the original migration
should no longer fail
Change-Id: Ife8369263be71aeca10f8c78ecfb9f046545b15a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/358369
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
the legacy block editor code assumed the json format for
the block_editors.blocks column was
blocks: [data: {editor data}, id, timestamp]
that was an artifact of the data structure emitted by editor.js.
Now we just want to put the craft.js editor's json output directly
into the blocks column.
The data migration also changes the editor_version value
from '1' to '0.1' because '1' doesn't seem right
this commit also introduces data transformations to update the data
to the latest version on the fly
closes RCX-2369
flag=block_editor
test plan:
- before checking this branch out, have a block editor page
- after checking this branch out
- run bundle exec rake db:migrate RAILS_ENV=development
- run psql canvas_development
- select id, editor_version from block_editors;
> expect your pages to have version 0.1
- edit the old v0.1 page
> expect it to work
- save
> expect it to have v0.2 in the block_editors table
- from the pages index page, choose Duplicate from a
page's kabob menu
> expect the correct type of page (rce or block) icon
to be displyed
> expect to be able to view the copy of the page
> expect to be able to edit the copy of the page
- run:
bundle exec rake db:migrate:down VERSION=20220228162704
- select id, editor_version from block_editors;
> expect the old v0.1 pages to revert to '1'
> expect the new v0.2 pages to remain '0.2'
Change-Id: I592bffc11018ab3c4f7d7cc4752202088d5700c5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357583
Migration-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
closes VICE-4434
flag=discussion_checkpoints
Test plan:
- Test passes
- Go to Screen Reader Grade Book and try grading
different types of checkpoints, it should work
and persist as expected.
Change-Id: If37afc92f62b76f14b518a1a1cb84e2eb74f1256
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/358144
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Chris Soto <christopher.soto@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
refs RCX-2417
flag=none
Test plan:
- Get media into notorious but not instfs
- Downloads shouldnt be working from the files page (nor previews)
- Run the datafix
- Check that all of them made their way into intfs
Change-Id: I7d419824bc44338704fd60b22b842d18bea152ac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/358040
Reviewed-by: Mysti Lilla <mysti@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
closes VICE-4653
flag=discussion_checkpoints
Test Plan:
- Create a Course and set the Home Page to Assignments
- Create a Discussion Checkpoint and use the Assign To to set
the due date within 1 week
- Go to the Home Page of the course and observe the Upcoming
Assignments list on the right side includes the checkpoints
Change-Id: I09b3320b905b51ed4f8e4c8e8823adb1e3e5d87d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357757
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
[skip-stages=Flakey]
mostly done manually, since many of these calls weren't even necessary,
or can easily be replaced with `super`
Change-Id: I1a5a38a1332a26a11c6041a005d691730206fc10
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/344440
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
closes VICE-4299
flag=discussion_checkpoint
Note: Updating checkpointed dates from the tray
will not work until VICE-4300
Test Plan
1. Create a checkpointed discussion with
various states of override due dates and availability
2. Compare the discussion edit page with the assignTo tray
cards
3. Should display all override due dates corectly
3a. assign to tray locations
discussion show, discussion index, assignment index
Change-Id: Ia7125e027370ee7e96cfd8482e5592961316e59a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357825
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Juan Chavez <juan.chavez@instructure.com>
QA-Review: Juan Chavez <juan.chavez@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
This patchset enables generating Canvas API documentation
in Markdown format. The goal of the work is to be able to import
the whole Canvas API documentation into the new Documentation Portal
(developerdocs.instructure.com).
refs: https://instructure.atlassian.net/browse/SAS-3699
How to generate the docs in Markdown format?
Run this command from a Canvas box:
`OUTPUT_FORMAT=markdown rake doc:api`
The generated documentation will be available in `public/doc/api_md`.
test-plan:
- Backward compatibility: I regenerated the documentation in HTML format
and compared each file with the output from an original documentation.
Only the timestamps in the footer differed; everything else was the same.
- Content parity: I compared the content of each generated Markdown file
with its "twin brother" HTML file. While there are differences in look and
feel, the content is consistent. This is how it looks like in Markdown
format:
https://inst.gitbook.io/sandbox-instructure-developer-portal/0hk9uatQ63bsQYSzZzF2/
Note:
The change does not influence in any way the HTML formatted
Canvas Documentation or the way is generated.
Change-Id: If4f11a35e7cea77f434faa3c699937a11fa24d51
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357227
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Jozsef Kercso <jozsef.kercso@instructure.com>
Closes FOO-4794
Refs FOO-4735
flag=none
We've already removed the Covid help link from the Rails
model, but most production accounts have it saved as a
custom help link setting, after having edited their
account settings. It was decided to remove it everywhere
so this is a database migration to do so in all accounts.
Test plan:
* needs migration review
Change-Id: Ie2c7004c31fde321a95f26202d508ba588d34af0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357864
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Migration-Review: Jake Oeding <jake.oeding@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
closes VICE-4551
flag=discussion_checkpoints
Test plan:
- Go to SiteAdmin -> Feature Options and enable
Discussion Checkpoints feature flag
- Create course with student
- Create graded discussion with checkpoints and assign due dates
- Act as student and go to Dashboard -> Recent Activity
- Click on the X next to each discussion checkpoint in the
sidebar To Do list and verify that it is removed from the list
- Reload the page and verify that the discussion checkpoints
do not show in the sidebar To Do list
- Go to Dashboard -> View List and uncheck both checkpoints
- Switch to Dashboard -> Recent Activity and verify that the
discussion checkpoints show in the sidebar To Do list
- Go to the course home page and verify that the discussion
checkpoints show in the sidebar To Do list
Change-Id: Ic0b8780d3485450cafffc3cf3ab273a2af59eb8a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357585
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Harden against things like consul being down.
test plan:
- specs pass
Change-Id: I1f1bdc88daabc9a4e6bc4a22d36acb731a36505d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357796
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
This change was made to the wrong file, reverting
it.
test plan:
- specs pass
Change-Id: Ie04bec7568a19d3efcb02d81457b8a6a648a20de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357795
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-4549
flag=discussion_checkpoints
Test plan:
- Go to SiteAdmin -> Feature Options and enable Discussion
Checkpoints FF
- Create course with student
- Create graded discussion with checkpoints and assign due dates
- Act as student and go to Dashboard -> Recent Activity
- Verify that the two discussion checkpoints are listed in the
To Do list in the sidebar
- Click on each checkpoint and verify that you are taken to the
discussion topic page
- Go to Dashboard -> View List
- Verify that the two discussion checkpoints are listed in the
list view
- Go to the course home page
- Verify that the two discussion checkpoints are listed in the
To Do list in the sidebar
Change-Id: I3b71c800d78174d2da05e9f02cf0c0ad548e11ef
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357127
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Roberto Noguera <roberto.noguera@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Harden against things like consul being down.
test plan:
- specs pass
Change-Id: I90cddd056463ad299e37e17ddeff492d16e5b976
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357418
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
closes LX-1070
flag=selective_release_ui_api
[fsc-max-nodes=20]
[fsc-timeout=50]
test plan:
> Check all overrides showed in assign to tray
are showed in the table.
>> Check that the overrides are now showed in
the same row, grouped by same due_at, lock_at and
unlock_at.
>> Check that the sections and groups are now
showed like "2 Sections", instead of
"Section A,Section B".
>> Check that the table is asc sorted by due_at.
>> Check there are not duplicated overrides if
has module overrides.
>> Check unassign_item=true are not showed.
Change-Id: Ibaeb349965965759efb1dbd7901ee5a38ed758de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356102
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
Product-Review: Juan Chavez <juan.chavez@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
fixes EGG-63
flag=selective_release
flag=discussion_checkpoints
test plan:
- must have all checkpoints and selective_release feature flags ON
- create a checkpointed discussion, assign it to only 1 student (no everyone)
- verify creation successful
- view gradebook
- verify gradebook loads
- visit /modules
- create a new module and publish
- open module ... and click Assign to
- in the modal, add a different student and save
- visit the gradebook
- verify it loads successfully
- visit the discussion
- verify when you click Assign to,
you see your original override, and a
new override that was inherited from your module
- visit modules again
- this time add another different student as an override to your
module, save
- revisit gradebook
- verify it loads successfully
- revisit your discussion
- click assign to
- verify the override section for your module now has 2 students
Change-Id: Ic8e85651f43a29e2551cd48d8afdb8eb558e7bcd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357120
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
from updating the required ruby version to 3.3
[skip-stages=Flakey]
Change-Id: Ic37811a58ff48d213f56d5b143b5a09c23aa3a27
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357314
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
display_type is a Canvas extension. The check in
the InternalLtiConfiguration schema is stricter (it actually checks the
value is one of the valid types) than the Dyn Reg schema in
lib/schemas/lti/ims/lti_tool_configuration.rb, so will cause problems
later when we convert the Dyn Reg tool config to the internal tool
config.
refs INTEROP-8538
Test plan:
- specs
- we also need to make sure in the DB there are no invalid values here.
Change-Id: I138473265cdc57b979fa79068c716a32f9f64feb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357129
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steven McGee <steve.mcgee@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
fixes RCX-2326
flag=rce_linked_file_urls
Test plan
- Have a couple of different types of file
urls (for rich content)
- Send a request to /api/v1/rce_linked_file_instfs_ids
with a body like { user: <user_uuid>, file_urls:
["url", ...] }
- If the file is an image type, ensure the instfs_id
is returned in the instfs_ids values
- If the file is a previewable type (DocViewer or
video/audio) ensure the instfs_id is returned
in the canvas_instfs_ids values
Change-Id: Ic834ee58050fd42bf7e595d664d130bc92f4d64c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356758
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Griffin Zody <griffin.zody@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>
This includes pulling JWKS URI from the discovery document
if it has it, or manually configuring it. And then updating
the JWKS from the JWKS URI periodically as well.
Several pieces of functionality in the Apple provider are
now no longer necessary, and it just uses the base OIDC
implementation now
Closes AE-1138
flag=oidc_full_token_validation
Change-Id: I8647e12d8ddd0f20aa746050e1650e679fdba3cb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356345
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
flag=none
closes INTEROP-8820
Test plan:
* Install yaltt
* edit registration
* note that the new copy is displayed and there is no longer a checkbox
with no label
* build documentation with 'docker compose run web rake doc:api'. Go to
canvas-web.inst.test/doc/api/file.tools_intro.html and check that the
new scope displays nicely in the table and links to the postmessage.
* try adding and remove a scope (or change a description where possible)
to each of the following places and check there are failures:
* in LtiScope.ts -- LtiScopes
("npx jest shared/lti/model/__tests__/LtiScope.test.ts" will fail)
* in LtiScope.ts -- AllLtiScopes (
("npx jest shared/lti/model/__tests__/LtiScope.test.ts" will fail)
* in i18nLtiScope.ts -- LtiScopeTranslations (add scope or change a
description)
(there will be TS type errors, or the jest test will fail)
* in lib/token_scopes.rb -- LTI_HIDDEN_SCOPES
("rspec spec/lib/token_scopes_spec.rb" will fail)
* in lib/token_scopes.rb -- LTI_SCOPES
("rspec spec/lib/token_scopes_spec.rb" will fail)
* tools_intro.md -- try adding a scope that is supposed to be
undocumented, and removing documentation for one documented scope
("rspec spec/lib/token_scopes_spec.rb" will fail)
* lti_scopes.yml (adding scope, removing scope, changing a
description) -- both TS and Ruby tests should fail
Change-Id: Id7597629cf4454d143cbc28f7859b4486d34cb52
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355832
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Paul Gray <paul.gray@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Closes LX-2043
Test Plan:
- Set up scenario with module overrides that have due_at_overridden,
unlock_at_overriden, lock_at_overridden set to "true." You can do this
by commenting out lines 128-133 in app/models/assignment_override.rb,
making the change to one or more overrides in the rails console, and
then uncommenting the lines in that file.
- Run the datafixup via the test included.
- Run locally...somehow?
Change-Id: I3a115b1ed9f5d8014430697522169ebf58d36ca5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356824
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
Migration-Review: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
why
* make it easy and clear what users can edit on an LTI
Registration
closes INTEROP-8774
flag=none
test plan:
* create an Lti::Overlay in a rails console and assign
things to its `data` attribute and try `.save!`ing it
* use the schema to figure out what's valid or not
* try saving some invalid things like bad disabled_scopes
or invalid placement names - it should fail
* try saving some valid things - it should succeed
Change-Id: I4711e3e86adcae908351892ca5146eff95cf340a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356726
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Hawkins <ryan.hawkins@instructure.com>
QA-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
refs RCX-2188
flag=none
Test plan
- Set up a blueprint child with locked
rich content and a bad link that looks like
/courses/:course_id/file_contents/course%20files
/media_objects/:media_id.mp4
- Run the data fix up and ensure the Blueprint child
is able to show the video
Change-Id: Ife7ea69b0f9195b3e4b105d70d56d84103d816ad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355396
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Luis Oliveira <luis.oliveira@instructure.com>
QA-Review: Luis Oliveira <luis.oliveira@instructure.com>
Migration-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
this removes any references to the old visibility
views and drops them from the database. These views
were extremely slow and are uneccessary with the new
student visibility services. The original views (pre
selective release, for assignments and quizzes) should
still remain.
closes LX-1747
flag=none
test plan:
- run migrations - bin/rails db:migrate
- in a rails console run ActiveRecord::Base.connection.views
- ensure that the only views in the list are
assignment_student_visibilities and
quiz_student_visibilities
Change-Id: Ia4cce9ad83e3e8fb749d5148c60ed1a8df53ba46
Change-Id: I63504469e50a4c62f1e10328d7668a9fdae76052
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356753
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Migration-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Sarah Gerard <sarah.gerard@instructure.com>
we should be able to lock availability dates for pages in
blueprint courses, and availability dates should copy over
when doing course copy, and they should be able to be shifted
when adjusted dates is requested.
closes LX-1849
flag=selective_release_backend
test plan:
- For blue print locking:
- create a blue print course by checking Enable course
as a Blueprint Course in the settings page
- under 'Locked Objects by Type', under pages,
check the 'availability dates' check box
- create a page and add availability dates, and then lock
the page by clicking the blueprint button on the show page
- associate and sync a course
- in the associated course, check any place where the assign to
tray is and ensure that you cannot edit the availability
dates
- For course copy:
- create a course that has a page with availability dates
- copy the course, ensure that the page in the copied course
has availability dates
- copy the course again, this time checking the 'adjust events
and due dates' box, and enter dates to shift the copied
course to. Ensure that the dates of the page are shifted in
the copied course
- copy the original course one more time, this time checking
the 'adjust events and due dates' box, and checking 'remove
dates'. Ensure that the page's availability dates have been
removed in the copied course.
Change-Id: I932dbabc968316b5be367ea02d6dd7af255af35a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356510
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
Product-Review: Sarah Gerard <sarah.gerard@instructure.com>
Fix the API response if the user and the annoucement
have the same section
fixes VICE-4540
flag = none
Test plan:
- Create an annoucement, remove the all section and add the one section
- Create or use a student with the same section
- Call the /api/v1/courses/{course_id}/discussion_topics/{annoucement_id}
?as_user_id={student_user_id}
- The response should be 200 and should contains the annoucement details
Change-Id: I977541057526e6dfbe6d93b91f01b39c0553dfe1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356434
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
Reviewed-by: Theo Sorriaux <theo.sorriaux@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
refs: VICE-4575
Test plan:
- Export a discussion with not_threaded type
- Import the discussion
- Note that import works and the discussion has not_threaded type
Change-Id: I79d8327816dfb1b8b3a8f8452dfa17f7e1301785
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356034
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
Reviewed-by: Theo Sorriaux <theo.sorriaux@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
flag=none
closes INTEROP-8679
Test plan:
* docker compose run web rake doc:api
* check updated copy at /doc/api/file.lti_dev_key_config.html
* check that the permissions variable expansions is documented at
/doc/api/file.tools_variable_substitutions.html
Change-Id: Ia9e530b57ec26f5ca1d467be5a623b87cd4308dc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356190
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Before processing the zipfile we were still allowing filenames
through that had the potential to be too long when combined with
the Attachment uniqueness helper if duplicate entry slugs were present.
closes FOO-4612
flag = none
test plan |
- create a _long_ ePortfolio section name
- create a _long_ ePortfolio page name within that section
- duplicate the page name within the same section
- both should exceed 255 characters when combined
- click "Download the contents of this ePortfolio as a zip file"
- the zip file should be created without error
Change-Id: I78382efc351a52de4a22fd7a7931d43be643b5ff
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356367
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Imre Foldes <imre.foldes@instructure.com>
Reviewed-by: Jason Perry <jason.perry@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
refs VICE-4299
flag=discussion_checkpoints
Next patchset will handle hooking up this data to display it
to the user
Test Plan
1. Open the assign to tray on a checkpointed discussion
2. Check network request
3. Verify that checkpoints information is in the request
Change-Id: I4a6045030318477463cc2b087e6e0eb97ff684c1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356478
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
refs: VICE-4496
flag=discussion_checkpoints
Test plan:
- Turn on Discussion Checkpoints and Discussions/Announcements Redesign
- Create a discussion with checked Graded and
Assign graded checkpoints
- set Additional Replies Required
- Click on Manage Due Dates and Assign To and
on the open tray set
Reply to Topic Due Date and
Required Replies Due Date
- Save
- Create an export from the course
- the discussion xml contains the new fields
- turn off Discussion Checkpoints
- export again
- see if the xml not contains the new fields
Change-Id: I224150fc26f54b9297f11b88644375d31d53edcf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354121
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Dániel Török <daniel.torok@instructure.com>
Reviewed-by: Rajmund Csehil <rajmund.csehil@instructure.com>
Reviewed-by: Roland Beres <roland.beres@instructure.com>
Reviewed-by: Theo Sorriaux <theo.sorriaux@instructure.com>
QA-Review: Dániel Török <daniel.torok@instructure.com>
Product-Review: Kata Virag Keri <kata.keri@instructure.com>
Test plan:
- Install yaltt dev key with dynamic registation. Include at least one
placement
- Edit the key and change something like a placement title or icon url
and make sure it works
- Modify the schema in lib/schemas/lti/ims/registration_overlay.rb,
e.g. make icon_url (under placements items, line 54) be a number. Try
saving. It will fail, and showing detalis will show useful
(developer-friendly at least) JSON schema error messages.
closes INTEROP-8538
flag=none
Change-Id: Ib4629138df0e668bc1e77f275965bc4a3789efe5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356051
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Reviewed-by: Csaba Csuzdi <csaba.csuzdi@instructure.com>
QA-Review: Csaba Csuzdi <csaba.csuzdi@instructure.com>
* validation previously done in controllr is not part of
Schemas::Lti::IMS::OidcRegistration and the already-existing
(now stricter) Schemas::Lti::IMS::ToolConfiguration
* old "simple_validation_errors" only returned the first error so has
been renamed. The new method returns all errors.
Test plan:
* Run yaltt locally, make a registration and go through the Dynamic Flow
("+ Lti Registration" on the Developer keys page). Continue to create
the dev key and install the tool in a context and make sure the tool
works.
* delete the tool and dev key. modify app/models/lti/ims/registration.rb
and change some of the REQUIRED_* to the wrong values. Try to install
yaltt again and note the error that yaltt gets (it will show you) when
trying to install.
flag=none
refs INTEROP-8538
Change-Id: Idffcb4b17a3fabf118825565c3f62baaee0f20c2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355399
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Csaba Csuzdi <csaba.csuzdi@instructure.com>
QA-Review: Csaba Csuzdi <csaba.csuzdi@instructure.com>
closes EVAL-4437
flag=none
Test Plan:
- Create an assignment using a points-based grading scheme
- Submit to the assignment as a student
- Grade the student as a teacher
- Submit to the assignment as a student again
- Grade the student as a teacher, again (different grade this time)
- Go to SpeedGrader for the student. notice in the dropdown for previous
grades that it shows the correct grades
- Go into a rails console and manually change the `grade` and
`published_grade` (without triggering callbacks) on the Version
objects associated with the grades:
sub = Submission.find_by(
user_id: <student id>,
assignment_id: <assignment id>
)
sub.versions.each do |version|
model = version.model
model.grade = "bad grade!"
model.published_grade = "bad grade!"
version.update_columns(yaml: model.attributes.to_yaml)
end
- Go to SpeedGrader for the student. notice in the dropdown for previous
grades that it shows the incorrect grades ("bad grade!")
- Run migrations
- Go to SpeedGrader for the student. notice in the dropdown for the most
recent grade that it shows the correct grade. For the previous grades,
it should show "bad grade!".
Change-Id: I874bbf30e5f8988cbce1c27786cac2be121948bd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354429
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
The majority of the changes are in the password policy enforcement
if a common passwords file is uploaded via the Password Options
UI for Canvas authentication. (When the FF is enabled)
closes FOO-4631
closes FOO-4630
flag = password_complexity
test plan:
- enable the feature flag for password_complexity
- go to Authentication --> Canvas auth --> Password Options
- upload the common password file and choose any other options you
want to enforce
- go to /register and sign up as a student
- make sure the password policy is enforced, i.e.
- confirm that the password must be at least 6 chars
- confirm that the password cannot be a common one (e.g. football)
- confirm that the password cannot contain a run of 4 or more chars
(e.g. abc123lol is ok, abcd1234 is not)
- confirm that the password cannot have the same char repeated 4 or
more times (e.g. aaa000bb is ok aaaabbbb is not)
- verify the password policy is enforced when changing your password as
an existing user (via user profile/settings)
- verify the password policy is enforced when adding a login for a user
- verify the password policy is enforced when resetting your password
(via forgot password on login page)
- invite a new user into a course, and as that user verify the password
policy is enforced when you set up your account
Change-Id: I1e5d351f59e545c0f7b24056f6018290ce609d81
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356171
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>
this commit fixes rating order not being applied in speed grader page
fixes EVAL-4516
flag=enhanced_rubrics
test plan:
- create a rubric with multiple ratings
- update the rating order to low to high
- go to speed grader page and verify the rating order is low to high
Change-Id: I191018436293d39b378c807999c72472a5e19d40
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356069
Reviewed-by: Rohan Chugh <rohan.chugh@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
refs QUIZ-14260
flag = new_quizzes_enable_quiz_visibility_after_course_conclusion
test plan:
- with the flag enabled, students in concluded courses should
be able to launch New Quizzes
- with the flag disabled, students should not be able to launch
New Quizzes in concluded courses
- regardless of flag state, admins and teachers should be able
to launch New Quizzes
Change-Id: I8df5db131243910f8e32685fd07d814b5cd1f051
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355264
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Marleny Parmenter <mparmenter@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
fixes CLAB-445
flag=none
Test plan:
- enable Smart Search feature flag
- go to course -> settings -> import course content
- choose 'Copy a Canvas course'
and check 'Import existing quizzes as New Quizzes' checkbox
- click 'Import'
- the course copy should be success
Change-Id: I4c80af9f2d162b2d01e4118cecd94890c10ee6ff
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355649
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tamas Barna <tamas.barna@instructure.com>
Reviewed-by: Ferenc Marcsó <ferenc.marcso@instructure.com>
QA-Review: Tamas Barna <tamas.barna@instructure.com>
Product-Review: Peipei Zhou <peipei.zhou@instructure.com>
In preloading module ids we ended up with loops within loops leading to
long run times in the ruby code. This optimizes the code to reduces the
number of times we need to pass over the data. (Local testing shows up
to a 450x improvement with 2900ish content items.)
test plan:
- specs pass
Change-Id: Ied699aee0ee3373ee01a6ebbce6c23d9927e7bf3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356063
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
`with_pgvector` is supposed to add the schema to the search path
and make this unnecessary, but for whatever reason it's not working
in the docker build environment. or beta, apparently.
test plan:
- search works
flag=smart_search
closes FOO-4694
Change-Id: Ica9519269c4f170066ac9a92f1c974d531abf9d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354250
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
QA-Review: Dustin Cowles <dustin.cowles@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-4301
flag=discussion_checkpoints
Test plan:
- Test passes
- Go to Discussions > + Discussion
- Fill the title and description
- Select the option "Graded"
- Select the option "Assign graded checkpoints"
- Add points
- Click on "Manage Due Dates and Assign To"
- Fill in "Reply to Topic Due Date" and
"Required Replies Due Date"
- click on Apply
- Clck "Save and Publish"
- Go back to the discussion pages
- the newly created Discussion should show the
"Reply to topic" and "Required Replies" due dates
Change-Id: Icda226183560dcd6bbad9a3c4df312013205b486
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355284
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
closes FOO-4696
flag = password_complexity
test plan
- enable password complexity feature flag
- set password policy settings via API or rails console
- leverage the API:
- GET /api/v1/accounts/:account_id/settings
- verify the password policy settings are returned
- with the feature flag disabled, verify the password policy settings
are not returned
Change-Id: Ifd51a5594ef673258d1608b94a3883b4d0f54762
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355991
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>
Correct Data will be displayed in VICE-4299
Next Ticket will handle Discussion Show Assign to tray
refs VICE-4298
flag=discussion_checkpoints
Test Plan
1. Have an ungraded, graded, checkpointed discussion
2. In discussion index page open assign to tray
3. Verify that the checkpoint date inputs appear in
only the checkpointed assign to tray
Change-Id: I6dfbc29c8532414008d283666151c3e14cd725c4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355700
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>