refs CLAB-515
flag=instui_for_import_page
Test plan:
- go to course -> settings -> import course content
- select "Copy a Canvas Course"
- the "Include completed courses" checkbox is
checked in default
Change-Id: Ic54000b17364fc0602763749c4d880c50c1bc048
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361637
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Viktor Szpisják <viktor.szpisjak@instructure.com>
QA-Review: Viktor Szpisják <viktor.szpisjak@instructure.com>
Product-Review: Kata Virag Keri <kata.keri@instructure.com>
refs VICE-4664
flag = react_discussions_post
Test plan:
- Go to discussions
- Check if outline for buttons in discussion displays properly
Change-Id: Ieb3f04e714f183c7fbd8970429cc1935c714d6a5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361134
QA-Review: Roland Beres <roland.beres@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mario Hegyi <mario.hegyi@instructure.com>
Allow the graphql to load more than 20 attachments
without pagination
closes VICE-4753
flag = none
Test plan:
- Create a conversation with more than 20 attachments
- Reply to the conversation with more than 20 attachments
- All the attachments should be displayed for both messages
Change-Id: I987092648b44ddea9ab97ec52903c4101fd8ca63
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360715
Reviewed-by: Maciej Sasinsk <maciej.sasinsk@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>
there was a special CSS rule applied which was only
intended for desktop view. that change was implemented
because of an a11y issue. this current change excludes the
change from the mobile view.
fixes VICE-4670
flag=react_discussions_post
test plan:
- check the sticky header issue on mobile (ticket desc.)
- ALSO check VICE-4094 (the original issue)
Change-Id: I76dd06c356d00cace412b8330eabc868f2061d8e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360293
Reviewed-by: Daniel Matyas Vincze <daniel.vincze@instructure.com>
QA-Review: Roland Beres <roland.beres@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
refs VICE-4677
flag=rce_lite_enabled_speedgrader_comments
test plan:
- enable "RCE lite in Speedgrader comments" feature flag
- enable "Submission Comments" notification setting for user
- create a graded discussion and reply with a student
- open the discussion in speedgrader
- grade the reply, add some formatting in the comment
- check the submission comment in the user's notifications (/messages)
- check the submission comment in the user's inbox under
Submission Comments
- they should be formatted, without colors
Change-Id: Id25d2db2efefab391651fbb80fa15790ac7a7d7a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361049
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Roland Beres <roland.beres@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>
Reviewed-by: Janos Csizmas <janos.csizmas@instructure.com>
The AUP was previously shown in a modal, which doesn’t support
the new Identity service's needs, as passing AUP data to them
isn't required.
The product team requested a dedicated AUP page that can be
linked from both the login page and the identity service.
This commit removes an older, undocumented api/v1 endpoint:
`terms_of_service_custom_content`
The legacy code now uses the new endpoint: `acceptable_use_policy`
Additional changes:
- fixed missing html/body closing tags in `bare.html.erb`
- updated `account_settings/jquery/index.js` to use `doFetchApi()`
- added link to new AUP page from the `new_login` package
- updated `terms_of_service_modal/index.tsx` to use `createRoot()`
- updated `terms_of_service_modal/react/TermsOfServiceModal.jsx`
to use `doFetchApi()`
closes AE-1299
closes AE-1300
flag=login_registration_ui_identity
[skip-crystalball]
test plan:
1. start Canvas
- in an incognito window, visit `/acceptable_use_policy`
- confirm default AUP loads
2. change AUP Setting to "Internet2" in `/accounts/<id>/settings`
- click "Update Settings"
- visit `/acceptable_use_policy` in incognito
- confirm the selected AUP loads
3. change AUP Setting to "Custom" in `/accounts/<id>/settings`
- modify AUP text, click "Preview"
- confirm modal preview loads updated AUP
- click "Update Settings"
- visit `/acceptable_use_policy` in incognito
- confirm changes are reflected
4. change AUP Setting to "No Terms" in `/accounts/<id>/settings`
- click "Update Settings"
- visit `/acceptable_use_policy` in incognito
- expect an alert stating the AUP is unavailable
5. visit `/login/canvas`
- click "Acceptable Use Policy"
- confirm AUP modal loads with chosen AUP
Change-Id: I5f1c76362a23ee9c1d9d7cc38ecdeb53a1086bca
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360839
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
closes INTEROP-8896
flag=platform_notification_service
test plan:
- specs pass
- create a developer key with LTI dynamic registration (you can use
local yaltt in dev environment)
- check that notice_types_supported was filled with list of
supported notice types in the
https://purl.imsglobal.org/spec/lti-platform-configuration claim.
Change-Id: I11b23598f2cbad07d22777ece70c3d2275c9ef0e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361353
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: David Varga <d.varga@instructure.com>
QA-Review: David Varga <d.varga@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
why: Collaborations edit launches seem to be matching via the tool's
associated dev key domain instead of the tool that created the
collaboration. This can be problematic if 2 Developer Keys sharing the
same domain are installed.
fixes INTEROP-8865
flag=none
test plan:
- prerequisites: have two developer keys (and associated tools) with
the same domain.
- create a course collaboration with each of the tools
- in a rails console find your collaboration(s) and update it to make it
editable, like: `collab.data["updateUrl"] = "http://lti13testtool.docker/launch?deep_link_location/DX5etdRmlBw_edit"
collab.save!
- visit course collaborations in the UI
- each of the collaborations displayed should have `data-update-launch-url`
that contains `...retrieve?client_id=<global_id_of_assoc_tool's_dev_key>&...`
Change-Id: Id105911fc1da889e6b9a9f540cac761b77f9c164
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360818
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: Alexis Nast <alexis.nast@instructure.com>
why:
* as part of the work to revamp LTI tool management, we have
firmed up the schema of a ToolConfiguration, which represents
a manual LTI 1.3 configuration
* this has led to some new validation errors that weren't previously
seen before, which is not ideal and needs to be gated behind
a 90-day change notice
* remove these validations for now to prevent unwanted save
errors and replace them in INTEROP-8921
closes INTEROP-8920
flag=none
test plan:
* pick one of the "newly invalid" schema changes from the tests
(an easy one is `"enabled": "true"` in a placement)
* install an LTI 1.3 tool (not dynamic reg) with that config
* before this commit, it should fail to save with a wordy error
* with this commit, it should save without errors
Change-Id: I967747d69ef9f7adeeffc6af53b69d1b71bffa7c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361753
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: Xander Moffatt <xmoffatt@instructure.com>
For our internal configuration, we now use
lib/schemas/internal_lti_configuration.rb.
And before the configuration is transformed to our
new schema, we use lib/schemas/lti_configuration.rb.
flag = none
test plan:
- specs pass
Change-Id: Ifd3dc6092d7368554b9342a92eed5b1a6a9ef1cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
why
* the current job will fail and stop processing Lti::ToolConfigurations
once one TC fails to transform
* TCs are failing to transform because of invalid configuration, which should
not be the case - this configuration is newly invalid based on
Schemas::InternalLtiConfiguration, which is more strict than the old
Schemas::Lti::ToolConfiguration
closes INTEROP-8919
flag=none
test plan:
* with an LTI 1.3 test tool installed, in a rails console:
* introduce some newly invalid configuration, like changing a placement's
"enabled" value to the string "true", or a value for "windowTarget" that
is not "_blank"
* save the ToolConfiguration without running validations:
`tc.save!(validate: false)`
* transform the ToolConfiguration: `tc.transform!`
* it should succeed, and the TC's settings should now be in its columns
instead of in the settings hash, including the bit of invalid config
* `tc.untransform!` to reset it, and confirm that all config is back in
the settings hash
* create another ToolConfiguration (most easily done by installing another
dev key)
* run the data fixup: `DataFixup::Lti::TransformToolConfigurations.run`
* `tc.reload` should show that the config is now back in the columns
* the newly created valid TC should also have been transformed
Change-Id: I148cf71f9554c7be1795188e6011742c9792322b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361590
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Paul Gray <paul.gray@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
Following the DBAs advice, this refactor uses json arrays to send data
to postgres for the grade insert/updates, which should be more
performant, and easier for humans to read/debug in the field. This also
removed a huge string concatenation in favor of using json as well. Both
of these changes allowed for some code removal and simplification.
fixes EVAL-4808
flag=none
test plan:
- specs pass
Change-Id: Ia52bba04819b550ec2ea57e8179e99787575927f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361725
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 EGG-161
flag=differentiated_tags
Test plan:
- Create course
- Enable the Differentiated Tags feature flag in the course
- Create a non-collaborative group set in the course with rails:
Course.last.group_categories.create!(name: "NC group set",
non_collaborative: true)
- Go to canvas.docker/graphiql, replace the group name and
group set id as needed and run the following mutation:
mutation CreateHiddenGroup{
createGroupInSet(input: {
name: "group name"
groupSetId: "1"
nonCollaborative: true
}) {
group {
_id
}
errors {
attribute
message
}
}
}
- Verify that the query returns the id of the newly created group
- Verify that there are no errors
- Disable the Differentiated Tags feature flag in the course
- Rerun the mutation and verify that the query returns an error
Change-Id: Ia164df29480f380f1250f9863c1f1c455ba7e814
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360907
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
fixes LX-2073
flag=selective_release_ui_api
test plan:
- Create an ungraded discussion with
available from dates for a Student A and
Everyone Else.
- Impersonate Student A.
- Navigate discussions index page.
> Verify that "Not available until" shows the
respective date for the Student A.
- Impersonate other student.
- Navigate discussions index page.
> Verify that "Not available until" shows the
respective date for Everyone Else.
test plan 2:
- Repeat the same steps for until dates and
verify that it shows the correct dates too.
test plan 3:
- Repeat the same for from/until dates for
GRADED discussions and check it still shows
the correct dates.
Change-Id: I175ef54e132e0abc1be5c56f078861723fb51833
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361565
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Alvaro Talavera <alvaro.talavera@instructure.com>
Reviewed-by: Alvaro Talavera <alvaro.talavera@instructure.com>
Product-Review: Alvaro Talavera <alvaro.talavera@instructure.com>
We want operations performed on non_collaborative groups
and group_categories to rely on the manage_tag permissions
closes EGG-254
flag=non_collaborative_groups
Test Plan
1. Verify that the following operations can only occur with
the correct permission for non_collaborative_group_categories
2a. show
-- any differentiated tag permission
2b. create
-- :manage_tags_add
2c. import
-- :manage_tags_add
2d. update
-- :manage_tags_manage
2e. destroy
-- :manage_tags_delete
2f. groups
-- any differentiated tag permission
2g. export
-- :manage_tag_manage
2h. clone
-- :manage_tag_add
The UI and behavior is not implemented for these operations,
so it may or may not work. You should only test that the authorization
is correctly working
Change-Id: I2cb79ac6f8d874420b7e0ccfe4ec89d3edfb60b4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360886
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
this commit adds a new table to store rubric assessment imports. This
table will be used to store the rubric assessment imports that are
created when a user imports a rubric assessment from a CSV file. it also
creates the rubric_assessment_import model.
closes EVAL-4745
flag=enhanced_rubrics
flag=rubric_assessment_imports_exports
test plan:
- run migrations
- verify specs pass
- in rails console, verify that RubricAssessmentImport.first returns a
nil object
- in the rails console, verify that
RubricAssessment.last.rubric_assessment_import_id returns nil
Change-Id: I400b5a69b39faea53933d9f34e8f87a68fc32638
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361540
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Migration-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Chris Soto <christopher.soto@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
closes AE-1298
flag=login_registration_ui_identity
[skip-crystalball]
test plan:
1. login to Canvas as an admin
2. navigate to
/accounts/<account_id>/settings#tab-features
3. enable “New Login/Registration UI for Identity”
4. open a new icognito window
5. navigate to
/login/canvas
6. expect the top navigation to render with a Canvas logo
Change-Id: I91b03ec61f928c69c7d1689c55cf75215d7ec5da
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360910
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
An user discussion's threads visibility preference is now made persistent in the db.
fixes VICE-4767
flag=react_discussions_post
Test plan:
- Create a threaded discussion
- Create a few replies
- Create a few threaded replies
- Switch the collapse/expand button
- Refresh
- It should have been saved
Change-Id: I59112c0d55503fe07e093ecebe3e8d9bd68539b5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361133
Reviewed-by: Adam Szabo <adam.szabo@instructure.com>
Reviewed-by: Daniel Matyas Vincze <daniel.vincze@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
Migration-Review: Jake Oeding <jake.oeding@instructure.com>
Issue due to caching
refs EGG-276
flag=none
test plan:
- Create a self-sign-up group set
- Create a group inside the group set
- Act as student
- Join to the group
- In the People/Groups area a 'visit' link appears
next to the name of the group
- Click on the link
- Click on the 'back' button in your browser
- The Visit link remains there
Change-Id: I2f6b1a12b90ebad160f6d7c2b77c39b1d1cef7d5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361549
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
ensure date calcuations run on a specified past date to make the test
invariant to whether DST is currently in effect
test plan: specs pass
closes FOO-4895
Change-Id: I2b5fb804cc841fa646cd7368c03338c92b4732f4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361726
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
Reviewed-by: Adrián Grúber <adrian.gruber@instructure.com>
QA-Review: Adrián Grúber <adrian.gruber@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Recent graphlQl update had limited the pagination to 20 item
this update allows to load all groups in a discussion topic again.
refs VICE-4754
flag=none
Test plan
- create a discussion topic
- set it as a group discussion
- displays it
- you should be able to see all groups
- success
Change-Id: Ie49031320ff84e78166305729030deeb44a597a2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360543
Reviewed-by: Roland Beres <roland.beres@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
refs VICE-4776
flag = discussion_checkpoints
Test plan:
- Go to discussion
- Check "Graded" Checkbox
- Check if the Assign Graded Checkpoints has proper indentation
Change-Id: I654915b6de9c087e085f6d6c50c56fcb0b2082a8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361296
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Daniel Matyas Vincze <daniel.vincze@instructure.com>
QA-Review: Daniel Matyas Vincze <daniel.vincze@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>
test plan: scan the discover and details page with
an a11y checker
flag=lti_registrations_page
refs LRN-8818
Change-Id: I4d0d28438548e9810cbed1827b752a2be4d94546
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360596
Reviewed-by: Westin Humble <westin.humble@instructure.com>
Reviewed-by: Tamás Ángyán <tamas.angyan@instructure.com>
QA-Review: Tamás Ángyán <tamas.angyan@instructure.com>
Product-Review: Tamás Ángyán <tamas.angyan@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=files_a11y_rewrite
closes RCX-2509
Test Plan:
- Go to files
- Table is displayed as expected
* Repeat for user files
Change-Id: I9e63d05cc2de560b830aa7c1aada46a96dc80228
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361411
Reviewed-by: Luis Hilario <luis.hilario@instructure.com>
QA-Review: Luis Hilario <luis.hilario@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jacob DeWar <jacob.dewar@instructure.com>
flag=files_a11y_rewrite
closes RCX-2513
Test Plan:
- All My Files button appears in Course Files
- Button does not appear in User Files
- Clicking the button takes you to User Files
* Other buttons do nothing
- Buttons are displayed properly for desktop/tablet/mobile views
Change-Id: Ica456f076ea92c344592470f92a58b053caeda48
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361327
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Luis Hilario <luis.hilario@instructure.com>
QA-Review: Luis Hilario <luis.hilario@instructure.com>
Product-Review: Jacob DeWar <jacob.dewar@instructure.com>