flag=differentiation_tags
fixes EGG-165
test plan:
- must have both collaborative and non_collaborative
group categories in a course
- create a new assignment, make it a group assignment
- in the group category dropdown, verify only
the collaborative group is listed
- repeat for a new graded discussion
- repeat for editing an existing assignment
- repeat for editing an existing discussion
Change-Id: I8942532a0a0c36bfe15beea4fee6492cbf2a249c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361933
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
closes AE-1376
flag=login_registration_ui_identity
test plan:
1. Log in to Canvas as an admin
2. Navigate to /accounts/<account_id>/settings#tab-features
3. Enable “New Login/Registration UI for Identity”
4. Visit /accounts/<id>/authentication_providers
5. Set up identity providers like GitHub, Facebook, or Google
6. In a new incognito window, visit /login/canvas
7. Expect to see SSO provider buttons appear
8. Expect the SSO buttons to stack on mobile viewports
and form a two-column grid on larger viewports
Change-Id: Ia63ed0809b6cddd7b2580b9200bd9f2e6e77a539
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361481
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Reviewed-by: AJ Esa <ajmal.esa@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes AE-1294
flag=login_registration_ui_identity
[skip-crystalball]
test plan:
1. Log in to Canvas as an admin
2. Navigate to /accounts/<account_id>/settings#tab-features
3. Enable “New Login/Registration UI for Identity”
4. visit the theme editor
/accounts/<id>/brand_configs
5. edit your current theme
6. upload a custom “Login Logo”
7. save and apply theme
8. In a new incognito window, visit /login/canvas
9. expect the custoom logo to show with a description
10. expect custom logo to respond responsively
11. expect custom logo to match Figma designs
https://www.figma.com/design/U5LmsOE5Ft7HWxTnRjq4vt/%E2%8F%B3-%
5BWIP%5D-Identity-Updates---Tom?node-id=15660-7357&t=TH3yPQ5Uu2
WqpvHL-1
Change-Id: Idb83a83a73764a3056e9e2446a67a0bb5863e5b0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361554
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Reviewed-by: AJ Esa <ajmal.esa@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
We missed validating the section start/end dates in
the index and show pages of assignments, quizzes, and
discussions. Lets make sure that the correct ENV variables
are passed so the date validator is able to work properly.
refs LX-2057
flag=none
test plan:
- have a course section with a start and end date
- in the index and show page for each learning object
(quizzes, assignments, pages, and discussions) ensure
that putting a date outside of the course section dates
is invalid.
- note that unless you check 'Students can only participate
in the course between these dates' when setting the section
dates, dates outside of the section dates but within the
course dates will still be valid.
Change-Id: Iff18a86776a4243058e4c6f815263da25ab9f73e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361919
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
QA-Review: Drake Harper <drake.harper@instructure.com>
Product-Review: Sarah Gerard <sarah.gerard@instructure.com>
closes LX-2030
flag=selective_release_edit_page
test plan:
- go to an assignment edit page
- put a date with 2 digits in the due date field
- check that is displayed properly
Change-Id: I3d6b8a7b51b8e3ecf80d839008811bffcc545609
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361897
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jonathan Guardado <jonathan.guardado@instructure.com>
QA-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
Product-Review: Alvaro Talavera <alvaro.talavera@instructure.com>
if a section has a start date before the course start date, or
and end date after a course end date, then dates in those
ranges should still be valid, even when 'Students can only
participate in the course between these dates' is not checked
closes LX-2085
flag=none
test plan:
- create a course with at least one section
- add a start date and end date to the course.
- add a start date to the section that is before the course
start date.
- add an end date to the section that is after the course end
date.
- do not check 'Students can only participate in the course
between these dates'
- create a learning object and add dates to the section. Assign a date
that is before the course start but not before the section start.
The date should be valid.
- assign a date that is after course end but not after section end.
the date should be valid.
- dates outside of the section's dates should still be invalid.
- change the start/end dates of the section so the start date is after
course start date and the end date is before the course end date.
- ensure that you can still assign the section to dates within the
course start/end dates even if they are outside the section dates.
Change-Id: I274c5d09f2f2831e403091d0cb53c51bd1dd1036
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361783
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
QA-Review: Drake Harper <drake.harper@instructure.com>
Product-Review: Sarah Gerard <sarah.gerard@instructure.com>
flag=none
Change-Id: Iae72e2709a98f29c25f2f133fe72d8a3fb08d731
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361941
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Following the recent changes in the grade calcualtor, add some IS
DISTRINCT FROM directives to avoid writes that would only update the
updated_at. Also, instead of using a large values string, switch to
using json as the input.
closes EVAL-4811
flag=none
test plan:
- specs pass
Change-Id: Ib3b712842e7e267fff137a1b7b415be71a0d6afe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361757
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
closes RCX-2581
flag=block_editor
test plan:
- create a block page
- open the block toolbox
> expect to see the new section templates
- Callout Card Section
- Hero Secdtion, full-width
- Hero Section with Navigation
- Hero Section, two-columns
- Navigation section
- the old knowledge check section (soon to be replaced)
- click on them to add to the page
> expect it to work as expected
Change-Id: I4807712e3de6f2c85cbe30fa83eb11895149795d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361728
Reviewed-by: Luis Oliveira <luis.oliveira@instructure.com>
QA-Review: Luis Oliveira <luis.oliveira@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
why
* this and other LTI deep linking flags have been enabled for
everyone for a long time and are no longer needed
refs INTEROP-7909
flag=none
test plan:
* specs pass
Change-Id: Ib37f9d93e3d9fa84dbe692ad29e050802a98b903
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360114
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Hawkins <ryan.hawkins@instructure.com>
Reviewed-by: Steven McGee <steve.mcgee@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
why:
- It's being used in the main Canvas repo now, not just in gems/, so we
need to list our dependencies properly.
test-plan:
- When running a production build of Canvas, there are no requiring
issues and Canvas starts properly.
Change-Id: Ie2627c2a044694017ea8cc02d4502feaad45f5b2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361943
Reviewed-by: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
Product-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
why
* this and other LTI deep linking flags have been enabled for
everyone for a long time and are no longer needed
refs INTEROP-7909
flag=none
test plan:
* specs pass
Change-Id: Ied9257c9177c5ddbaa243792b7e5355b38b471b3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/359996
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Hawkins <ryan.hawkins@instructure.com>
Reviewed-by: Steven McGee <steve.mcgee@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
closes FOO-4892
flag=inbox_settings
Test plan:
- Exercise the API
- /api/v1/settings/environment
- ensure pertaining settings are returned if inbox_settings is enabled
- This endpoint is cached, so ensure that the cache is invalidated
when the root account settings are changed
- This endpoint also requires a user session, so ensure that the
settings are only returned when a user is logged in
or an access token is provided
Change-Id: I0236569701fc97f2671486632618137b0d00f809
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361772
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
test plan:
- feature_flags.root_account_ids column should be created
and initialized as an empty array
- new feature flags in each context type (root account, subaccount,
course, user) should have the column populated
(for user flags, user.root_account_ids will be copied, for other
types, the array will have one entry referring to the course
or account's root account)
- existing feature flags in each context type should be backfilled
flag=none
closes FOO-4879
Change-Id: If2335f76c1a11f48367039b71d52377ae6067761
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361566
Reviewed-by: August Thornton <august@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Migration-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
why:
- For a historical record of who changed what whenever an Lti::Overlay
is changed
flag=none
closes INTEROP-8780
test-plan:
- We don't currently use the Lti::Overlay (yet!) in the UI, so you'll
need to do this in the Rails console.
- Grab a registration that doesn't have an overlay (none of them should):
`registration = Lti::Registration.where(lti_overlay: nil).first`
- Get the count of OverlayVersions (should be zero unless you're
testing out the backfill commit)
- Create a new overlay associated with your registration
```
overlay = Lti::Overlay.create!(
account: registration.account,
registration:,
updated_by: User.first,
data: {
"title" => "foobarbaz",
"disabled_placements" => [
"course_navigation",
"account_navigation"
]
}
)
```
- Ensure that no OverlayVersions were created.
- Update the overlay with the following:
```
overlay.update!(data: overlay.data.merge({
"disabled_placements" => [
"account_navigation",
"course_navigation"
]
}))
```
- No new versions should be created, as the disabled_placements only
changed ordering, which shouldn't matter for comparison.
- Update the overlay to have some different data:
`overlay.update!(data: {"description" => "great description"})`
- Ensure that a new overlay version was created and that it's diff shows
the deletion of the title and disabled_placements fields, and the
addition of the description field. We're using the Hashdiff library
to generate these diffs, so it should be a nested array, like
`[["-", "title", "foobarbaz"], <all the rest>]`
- Ensure that updating the `updated_by` user without also updating
the data doesn't create a new overlay version.
```
overlay.update!(updated_by: User.second)
```
Change-Id: Ie9fb7292e1e73f7ac177bafdd8a068bfb1787bae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360977
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
Designer and TA roles are covered in the teacher granular setting
for pronunciation. UI also uses phrase "Course Admin" instead
of teacher to be more clear.
flag=none
test-plan:
- tests pass
Change-Id: Iba83c0335539a7167c02891ee97cf313be4393c2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361768
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Maya Tyner <maya.tyner@instructure.com>
Product-Review: Maya Tyner <maya.tyner@instructure.com>
Migration-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
fixes RCX-2609
flag=new_quizzes_common_cartridge, common_cartridge_qti_new_quizzes_import
Test plan
- Get an import with a new quiz QTI (I'll attach one to the
ticket)
- Ensure you have the feature flags on
- Import the package to a course in Canvas
- In the Rails console, find the content migration
and ensure the asset_map_attachment_id for the content
migration points to an attachment
Change-Id: I7b160e331631d359e60d80646aba4dfbd594f96b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361765
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>
Reviewed-by: James Logan <james.logan@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
fixes EVAL-4748
flag=none
Test Plan:
- call the endpoint
courses/7/assignments/11/rubric/assessments/export
-validate is downloading the csv
Change-Id: I0b536bec0f43cb80fc073f6c243482635d3b1012
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360434
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Chris Soto <christopher.soto@instructure.com>
QA-Review: Chris Soto <christopher.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
refs AE-1316
flag=none
Test plan
- Jenkins build is successful and all tests pass
Change-Id: Icfaac0b50846ceb987966e8e77921e5fba81c42d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361446
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Product-Review: Dave Wenzlick <david.wenzlick@instructure.com>
test plan:
- create an account report in the API using a json request body
and a numeric `enrollment_term_id`
- it should work without error
flag=none
closes FOO-4893
Change-Id: I7f9c913598ac35a25d72e04ec6aff713e159bd31
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/361737
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
closes VICE-4625
flag=none
Test plan:
- open the inbox page
- turn on the voiceover (or any screenreader)
- click on the "compose new message" button
- go trought the fields with the tab keyboard
- make the addressbook icon in focus and hit Enter
- the focus should be on the input field
- the screen reader should read out the drilldown options
Change-Id: I3d3ea94fe9521eec0b74c4531cb1c1599f23a928
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/359835
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
Reviewed-by: Ádám Molnár <adam.molnar@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Roland Beres <roland.beres@instructure.com>