Commit Graph

25871 Commits

Author SHA1 Message Date
Spencer Olson 5f3706b2aa handle 0 point assignments in datafixups
closes EVAL-4564
flag=none

Test Plan:
- specs pass

Change-Id: I33a4eed7aa5efa6da2368df949230e33e9bd6f46
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356633
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
2024-09-05 15:59:17 +00:00
Karoly Pakozdi 24ec070d65 handle selective new quizzes export
closes QUIZ-14120

flag=none

test plan:
prerequisites:
- use the related quiz_lti changes: g/354670
- enable feature flags: new_quizzes_exports

tests:

Test 1
Send to:
1. Press hamburger menu next to the new quiz and press Send to
2. Send this quiz to someone (you can send to yourself)
3. Receiver should be able to find the sent quiz
	on the Shared Content screen
4. Receiver is able to import the shared quiz into a course

Expected: The sent new quiz appears in the course

Test 2
Content export:
1. Send a post message to canvas
- url (replace course_id with a valid course_id)
http://canvas-web.inseng.test/api/v1/courses/:course_id/content_exports

- Body:
{
	"export_type": "common_cartridge",
	"select": {
		"assignments": [ 9, 33, 34 ]
	}
}

replace 9,33,34 with valid assignment ids
add new quiz and not new quiz id

2. Content export result should appear
	on the courses Content Exports page
3. The downloadable imscc package should contains
    only the selected new quizzes not all of them

Test 3
Content export all
1. Go to Course settings and press Export Course Content
2. At the bottom select Course and press Create Export
3. When export finished than all new quizzes
	should be inside the imscc package

Change-Id: I70e521432743b4a85a3123dee7a88ec94d8d4f20
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355964
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jorge Arteaga <jorge.arteaga@instructure.com>
Reviewed-by: Viktor Szpisják <viktor.szpisjak@instructure.com>
QA-Review: Jorge Arteaga <jorge.arteaga@instructure.com>
Product-Review: Cason Snow
2024-09-03 21:05:15 +00:00
Robin Kuss 1ba439aace turn on embedded assign to cards in dev/ci
Closes LX-1974

Test Plan: feature is on in dev automatically and passes Jenkins

[fsc-max-nodes=40]
[fsc-timeout=60]

Change-Id: I38e07fed07d60aae1a82f8a51815e9cc75f656c2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355561
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: Robin Kuss <rkuss@instructure.com>
2024-08-30 15:38:53 +00:00
Imre Foldes 04b1721474 Use ON CONFLICT DO NOTHING when creating a Favorite
refs BUDA-7
flag=none

test plan:
- all tests should work

Change-Id: Ia6ecda055361c165fc0a6b12c0c14805dd402794
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/352819
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Imre Foldes <imre.foldes@instructure.com>
Product-Review: Imre Foldes <imre.foldes@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
2024-08-30 15:25:39 +00:00
Steve McGee 600e0ab666 Lti::LogService accepts a launch_url parameter
Lti::LogService.new needs to accept a launch_url named parameter, that
defaults to nil, and all applicable callers of LogService.new should
pass the actual launch url.

closes INTEROP-8794
flag=none

test plan:
- if you don't have config/vault_content.yml then run
  `cp config/vault_content.yml.example config/vault_content.yml` and
  then uncomment the `pandata_creds` section
- in `config/dynamic_settings.yml` add
  ```
    pandata/events:
    enabled_for_canvas: true
    url: 'http://your.simple.web.server/here'
  ```
  to `development: config: canvas:`
- run a small server that can accept and log POST requests using that
  url
- launch a tool from several placements in Canvas and verify that the
  proper launch_url is included in the POST request body
  - from global navigation
  - from course navigation
  - from assignment

Change-Id: I90f48f9a5e0571da8c87817629a57876179c54e6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356184
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: Alexis Nast <alexis.nast@instructure.com>
2024-08-30 15:02:35 +00:00
jake.oeding bc11b3a9a6 remove WeakParameters
closes AE-1021
flag=none

test plan: n/a

Change-Id: Ibd40a09a65a6d96418f3a47826a2f5dece197661
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356294
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jake Oeding <jake.oeding@instructure.com>
Product-Review: Jake Oeding <jake.oeding@instructure.com>
2024-08-30 12:30:25 +00:00
Spencer Olson 017f8a26aa update version grades on points scheme assignments
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>
2024-08-29 18:15:25 +00:00
Cody Cutrer 83c49252e7 fully implement OIDC RP Initiated Logout
closes AE-1139

passing useful parameters

flag=oidc_rp_initiated_logout_params

Change-Id: I092df5d547fc49e08de317b46c01b6d272afdd61
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355736
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2024-08-29 17:03:34 +00:00
Wilmer Corrales a633efaa5f spec:Add expectation for flash alert
refs EGG-23
flag=none

test plan:
- Jenkins passes

Change-Id: I68ac88f70264b07196f617efafdadc5ac91887ec
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356211
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2024-08-29 15:39:28 +00:00
Chris Soto a036744648 add UI for importing rubrics and connects backend
this commit adds the rubric import tray to the rubrics page. the tray
allows users to upload a CSV file with rubric data. two queries are
added to handle this import:
- one query creates a rubric import object and starts the import process
- the other query fetches the status of the import

closes: EVAL-4403
closes: EVAL-4410
flag=enhanced_rubrics
flag=rubric_imports_exports

test plan:
- create an empty csv file
- navigate to the rubrics page
- click the "Import Rubric" button
- verify the tray opens
- click on the "Download Template" button
- verify the template downloads
- click on the file dialog. verify that you can select a CSV file and
  select the template file that you downloaded
- click the "Upload" button
- verify that the upload status table is displayed with the status of
  the import
- verify that the import is successful and that the new rubric was added
  to the rubrics list
- verify that you can delete the rubric and that it is removed from the
  list
- now upload the empty csv file
- verify that the import fails and that the error message modal is
  displayed
- verify that the import status table is displayed with the status of
  the failed import
- verify clicking on the name of the failed export file will open the
  error message modal

Change-Id: I8730389779601a6d80403e231e5c0309beac7911
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355571
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
QA-Review: Jackson Huang <jackson.huang@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
2024-08-29 14:24:17 +00:00
viktor.szpisjak f3323d25fb Add review tool removal for BP sync
With this fix we started to support clear
review tool on assignment with BP sync

fixes CLAB-101
flag=none
[fsc-max-nodes=20]
[fsc-timeout=45]

test plan:
- Setup example Plagiarism Review tool (ask for help)
- Create a BP course
- Create an assignment in BP
- Set Plagiarism Review tool on the assignment
- Create another course
- Associate it in the BP course
- Sync
- Inspect that the Plagiarism Review get synced
- Change to None in the BP course
- Sync
- Inspect the Plagiarism Review now is None
on the associated side
- Now change back on the BP side
- Sync
- Check if associated side has again the tool
- Repeat with locked assignment

Change-Id: I9afe1ac3349010707ec114d200eaf4cc9f2cc62c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354679
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rajmund Csehil <rajmund.csehil@instructure.com>
QA-Review: Rajmund Csehil <rajmund.csehil@instructure.com>
Product-Review: Viktor Szpisják <viktor.szpisjak@instructure.com>
2024-08-29 12:11:09 +00:00
August Thornton fae48efdd7 integrate common password file upload into Canvas auth
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>
2024-08-29 02:18:27 +00:00
Omar Gerardo Soto-Fortuño 7c4d9d2636 Make excuse work for checkpoints in Individual Gradebook
closes VICE-4432
flag=discussion_checkpoints

Test plan:
 - Test passes.
 - Go to Gradebook: http://canvas-web.inseng.test/courses/[Course ID]/gradebook
 - Choose Individual Gradebook
 - Select a student
 - Select a checkpointed assignment
 - Check "Excuse This Assignment for the Selected Student",
     it should work correctly and excuse the parent submission
     for the student.

Change-Id: Ic5abe6abf5bf447ee182f5c1db0c45d326873c84
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356128
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>
2024-08-28 17:33:13 +00:00
Jason Gillett 5c74896a06 Make assignment list assignTo tray checkpoint aware
closes VICE-4298
flag=discussion_checkpoints

Data will not be displayed correctly. that is handled
in VICE-4299

Test Plan
1. Open the assignto tray from the assignment index page
2. Verify checkpointed discussion display correct inputs

Change-Id: I97a4eed9946fb4d415e027776615c350c117908b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356004
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
2024-08-28 16:59:30 +00:00
Sarah Gerard 6786817d43 Ensure group context discussions can save
closes LX-2015
flag=selective_release_edit_page

test plan:
- create a group in a course
- click on the group kebob and select Visit Home Page
- click on Discussions and then create a new discussion
- ensure you are able to save the discussion, and edit
  the discussion and save as well
- ensure that validations still run for the assign to cards
  on the discussion edit page for course contexts

Change-Id: I01abd2b1391ab950d2c514edeb3951bb913769e8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355847
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: Sarah Gerard <sarah.gerard@instructure.com>
2024-08-28 15:56:14 +00:00
Robert Horvath 5e5bdea498 Allow students to see NQ results after course is concluded
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>
2024-08-28 15:27:18 +00:00
Peipei Zhou 7f94e5ebaa use safe_constantize to ignore unmappable assets
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>
2024-08-28 08:26:49 +00:00
Adam Molnar a9e6247651 fix locked discussions before due date
fixes VICE-4515
flag=discussion_create

test plan:
- create an UNgraded discussion with an
"available until" field
- edit the discussion to be graded
- set a new available until date
- the discussion's available until date should
match the assignment's

Change-Id: Ie385f9ec2c71d02cfa1ccf9a4a4aeeed9231db0c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355570
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
Reviewed-by: Daniel Matyas Vincze <daniel.vincze@instructure.com>
QA-Review: Theo Sorriaux <theo.sorriaux@instructure.com>
2024-08-28 08:21:57 +00:00
Alex Slaughter bf78853f75 Revert "Revert "Cache menu_course Card Counts for Dashboard Rework""
This reverts commit e0c3e85819.

Reason for revert: Reverting a revert

Change-Id: I26e4cfa81e16e465359050ce8375356d976eea51
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355483
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
2024-08-28 00:16:22 +00:00
Alex Slaughter 621f830d33 Revert "Cache menu_course Card Counts for Dashboard Rework"
This reverts commit b0ed9844d2.

Reason for revert: Scope of Risk. Touches Redis in all graphql user responses

Change-Id: Ia77a5dabad2a7fbb9f77bf5fb26e4d190d3978ab
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355482
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Alex Slaughter <aslaughter@instructure.com>
Product-Review: Alex Slaughter <aslaughter@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
2024-08-27 23:32:58 +00:00
Steve McGee 68975e49f5 global_nav display_type should be full_width
This is to prevent the account navigation sidebar from being displayed
when launching from this placement.

fixes INTEROP-8770
flag=none

test plan:
- have a course with an external tool that has the global_nav placement
- launch the tool from the global_nav placement
  - before code change, the acct nav sidebar should be displayed
  - after code change, the acct nav sidebar should not be displayed

Change-Id: I58e63d91425d3e7dceecbc1b497d7aab51e7f057
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355889
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
2024-08-27 22:45:08 +00:00
Xander Moffatt f3e214fe04 do not include deleted registrations in LTI Apps
why
* when the associated developer key or LTI registration
has been deleted, but still has an account binding that is
set to ON, the registration was still appearing in the list

closes INTEROP-8805
flag=lti_registrations_page

test plan
* install an LTI 1.3 developer key, and turn it ON
* delete the key - without this commit, it will still show on the new
LTI Apps page. with this commit it will no longer show there

Change-Id: I40e7cfc03aa31477afbaa40b471eac0b4357c34b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Reviewed-by: Ryan Hawkins <ryan.hawkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
2024-08-27 19:42:36 +00:00
Caleb Guanzon 431157bbe8 spec: add participation tests
skip_fsc=true
fixes EGG-23

Change-Id: Ib207496090466bb3b86319e3997c5329f8fa7ac1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356059
Reviewed-by: Jason Anderson <jason.anderson@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2024-08-27 17:39:07 +00:00
Derek Williams 95f392f77f restrict media object captions to submission comments
currently we request captions on all media object, but
we only want to do this for submission comments

flag=speedgrader_studio_media_capture

test plan:
- create a submission comment in speed grader
- verify that a job was created to request captions

Change-Id: Id71158482339efc438b88c1f297a9656df879a6d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354536
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Derek Williams <derek.williams@instructure.com>
2024-08-27 16:48:46 +00:00
Jason Gillett badf050679 Correctly pass in isCheckpointed prop to discussion show
refs VICE-4298
flag=discussion_checkpoints

Next ticket will work on the modules/assignment index

Data will not be displayed correctly. that is handled
in VICE-4299

Test Plan
1. As a teacher open a checkpointed discussion
2. Click the Assign To button
3. Verify checkpoint inputs appear
4. Verify checkpoints inputs don't appear
for Other discussion types

Change-Id: If5b53327a594436896dedd98eb9845b38c138cf4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355986
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
2024-08-27 15:22:41 +00:00
Jason Gillett 424d09a1f9 Display correct assignto fields for checkpoints - modules
refs VICE-4298
flag=discussion_checkpoints

Next ticket will handle assignment index

Data will not be displayed correctly. that is handled
in VICE-4299

Test Plan
1. Create a checkpointed discussion
2. add it to a module
3. Click the kebab menu
4. Click assign to
5. Verify that the correct date inputs appear for a checkpointed
assignment

Change-Id: I50a6252f1abd7c9629c69fa98e4bf06479e0f7ed
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356000
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
2024-08-27 15:21:31 +00:00
Roberto Noguera 4c382825cb Add checkpoints info to Discussions Index Page
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>
2024-08-27 05:39:23 +00:00
Cody Cutrer b647e8657f use Structs instead of a ton of boilerplate
Change-Id: Ib443d728726304beb4582decd721bc44ccf3695c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355974
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2024-08-26 22:38:22 +00:00
Ed Schiebel ce5c9ab05d Create new block editor start from scratch flow
- columns instead of blank section
- new GroupBlock
  - you can now nest blocks
- columns work differently now
- something about the TabsBlock tests broke
- fixed 1 resizing bug (there are more)
- fixed the About and Hero section layout which the above
  changes broke

closes RCX-2191
flag=block_editor

test plan:
  Start from scratch:
  - from Pages, click +Page
  - Next thru the stepper to create an empty page
  > expect a Blank section (aka Columns Section) with 1 column
  > expect no trash can in the column's toolbar (because you
    can't delete the last child of the blank section
  > expect no trash can in the section's toolbar (becauser you
    can't delete the last section in the page)
  - add some stuff to "Drop a block to add it here"
  > expect the stuff to be in a coumn
  - in the toolbar, change from column to row layout
  > expect the things to be in a row
  - add a group
  - change the group so its layout is opposite its parent
  - put some stuff in there
  > expect a row of stuff in a column or visa versa
  - nest at will
  > you cannot resize the group that is the child of the
    blank section
  > you can resize a group that's a child of something else
  - from the section toolbar, add column(s)
  > expect new group blocks to be added to fill out the new cols.
  - reduce the number of cols.
  > expect the current groups to organize themselves into the current
    number of columns
  > expect to be able to grag the group blocks around to reorder them
  - preview
  > expect the columns to rearrange as the space narrows
  - add About and Hero sections to a page
  > expect them to look correct

Change-Id: I1b854386e90b75fe54b5e567d6934fe09204cc17
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354801
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: Ed Schiebel <eschiebel@instructure.com>
2024-08-26 20:29:30 +00:00
Matheus a89b8c2fa1 Adds track permissions to attachments
fixes RCX-2071
flag=none

Test plan:
- Create a Canvas course with a video and course copy it
- Act as a TA or designer in the resulting course and navigate
  to the files tab and select the video.
- Select the “CC” option at the bottom right. Select a language,
  a subtitle file from your computer and upload it.
- Check the captions were submitted properly.

Change-Id: I670c2f1f90f339fd888b1ab10c57d1a233d97630
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355984
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
2024-08-26 20:26:14 +00:00
Ed Schiebel 0b53c40084 Fix "Users allowed to edit this page" dropdown
when I updated creating the WikiPage model for the block editor
I passed the context options in the wrong place. this changed the
options in the dropdown.

closes RCX-2292
flag=none

test plan:
  - create a new page
  > expect to see "Only teachers", "Teachers and students", and "Anyone"
    in the "Users allowed to edit this page" dropdown

Change-Id: Ibfd4fbf7b54e841e64e8f05f4bf15013524e8ae2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356001
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: Ed Schiebel <eschiebel@instructure.com>
2024-08-26 20:18:57 +00:00
August Thornton 7027a6590a update permitted password policy settings
refs FOO-4696
flag = password_complexity

test plan:
- enable the feature flag `Enhance password options`
- exercise the "Update an account" endpoint with the new parameters
  - `common_passwords_attachment_id: <id>`
  - `common_passwords_folder_id: <id>`
- PUT /api/v1/accounts/:root_account_id

Change-Id: Iae937601accabc4968984d66c6ff01ba5150f5e0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356003
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>
2024-08-26 20:15:35 +00:00
August Thornton 059fa5487d Add attachment/folder attributes to account policy settings
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>
2024-08-26 18:13:03 +00:00
Steve McGee 76adc6c948 find the correct report for the submission
why: There were several students who had assignments who's TII reports
     were showing "pending" because they had resubmitted with a previous
     attachment from their files and we were not finding the correct
     originality report that already existed.
     This change will also cause the updated_at field of the existing
     report to be updated when the data received from TII is the same as
     what we already have. This will indicate that we received a new one
     instead of seeming like nothing happened

fixes INTEROP-8646
flag=none

test plan:
- as a teacher, create an assignment that allows unlimited resubmissions
- as a student, submit to the assignment with an attachment three times
  - the first time upload a file from your computer
  - the second time upload the same file from your computer (it should
    get a display_name of <filename>-1 to distinguish it from the first)
  - the third time upload the same file as the first but do so with the
    "Click here to find a file you've already uploaded" option
    this time it should have the same display_name as the first
- in a rails console create a new OriginalityReport for the first and
  second submissions
- prior to code change the third submission should be the last but have
  no originality report score next to it while the previous two do
- after the code change the third submission should have the same score
  as the first one

Change-Id: Ia09215abd41b1ed25a816e3fff43ff6922e623cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354435
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
2024-08-26 17:45:11 +00:00
Ed Schiebel 884e81bbea Use Moveable package for BlockResizer
it's bigger, but solves some bugs I don't have time to track down
plus it will do clipping and other stuff

closes RCX-2259
flag=block_editor

test plan:
  - resize stuff
  > see that it works even better, and with less (of our) code

Change-Id: Iedb6f3c407a5b687b8e4dd85804436ccb12dcd4c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355618
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Murilo Paiva <murilo.paiva@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2024-08-26 16:52:11 +00:00
Eric Saupe b77ba9b203 Fix Lato Extended not using Lato Extended font
fixes RCX-2163
flag=none

test plan:
- Type text in the RCE
- Select the text
- Choose Lato Extended form the Fonts choices
- Inspect element to verify "Lato Extended" is the font being used.
Firefox's element inspector has a Fonts tab that makes this easier but
can be verified with anything.

Change-Id: Ibec71b62889407823a7c33760b606f1ae5a5ffcf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355851
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>
Product-Review: Eric Saupe <eric.saupe@instructure.com>
2024-08-26 16:27:02 +00:00
Daniel Vincze bdbc4fa3e7 fix: guard close user_can_summarize?
course on discussion topic might not be a course
but an account, for topics on account lvl groups
this fix prevents dt crashes

fixes VICE-4534
flag=discussion_summary

Test plan
- Create an account level group
- In the group context create a discussion topic
- Enable discussion_summary feature flag
- Open the topic, app should not crash

Change-Id: I3ddc7cac72aad7ed0d67150470192fbc34713cd6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355551
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ádám Molnár <adam.molnar@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Ádám Molnár <adam.molnar@instructure.com>
Product-Review: Richard Zana <rzana@instructure.com>
2024-08-26 12:19:17 +00:00
Cody Cutrer aab4365b53 allow filtering auth providers dynamically by user
Change-Id: I5cdb746da898b2a137b87f090b19456d6ccd4c91
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355514
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2024-08-23 21:53:17 +00:00
Jason Gillett c4dcafa801 Correctly pass in isCheckpointed prop to discussion index
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>
2024-08-23 21:07:54 +00:00
Jeremy Stanley 269afdc543 SIS import: don't set pronouns if account setting is off
test plan:
 - render and view API docs and note that the SIS CSV
   format document should indicate the "pronouns" column
   will be ignored if the "Enable Personal Pronouns"
   account setting is off
 - do a SIS import of a file with that column present
   when the setting is off and ensure it does nothing

flag=none
closes FOO-4680

Change-Id: I003238321d2770cfdb2e55214db1d615dae190fe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355814
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>
2024-08-23 17:25:25 +00:00
Adrian Diaz 75c73bac4e fix: exclude failed_to_duplicate lti assignments from cc export
fixes QUIZ-14159

flag = new_quizzes_common_cartridge

Test plan:

- Create a Course with a couple of new quizzes
- Go to the Canvas Rails Console in canvas and
  mark them all as failed_to_duplicate
- Go to Quiz LTI Rails Console and
  archive/destroy all Assignments
- Export Course
- It must export without new quizzes and
  without errors

Change-Id: I7f8a3b758c0afdeb18cc7ae7a9f786db9ff58af9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355602
Reviewed-by: Griffin Zody <griffin.zody@instructure.com>
QA-Review: Griffin Zody <griffin.zody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Stephen Kacsmark <skacsmark@instructure.com>
Product-Review: Cason Snow
2024-08-23 16:26:34 +00:00
theo sorriaux 1bb4cd37f9 Fix error loop when editing announcement section
test plan
- create an announcement in a section
- edit the announcement
- change the section to all section
- save however you want
- it should be saved

flag=none
refs VICE-4502
Change-Id: I475a1f1198913192548652b2c6a73864be2fb806
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354941
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: Tamás Balogh <tamas.balogh@instructure.com>
2024-08-23 14:41:47 +00:00
August Thornton 64257191ab allow account context for API sub-folder creation
closes FOO-4678
flag = none

test plan:
- requires account admin token with files scope
- utilizes the default root folder for the account
- POST to /api/v1/accounts/:account_id/folders
  - params:
    - name: new_folder
    - parent_folder_path: files/
- expect http 200 response
- expect folder to be created in account's files folder

Change-Id: I13e54b3674fe77c3f7a0ce22468ce2c46936088e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355758
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
Reviewed-by: AJ Esa <ajmal.esa@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2024-08-23 01:14:30 +00:00
Matheus 98129687ba Fix attachmentless media objects on migration
fixes RCX-2252 RCX-2211 RCX-2257
flag=none

Test plan:
- Embed a media attachment via rce to a page (or quiz)
- Turn it into a media comment in the following format:
  <a class="instructure_inline_media_comment video_comment"
  id="media_comment_m-TpMWcjWiCErkDoGFGiPHYzcue8L7JmK"></a>
- The id part should have m-TpMWc... part replaced by your
  actual media id
- Delete the attachment for that media object and clear out the
  attachment_id attribute from the media object
- Migrate the content with the media via course copy and expect
  to see it properly copied in the destination

Change-Id: I29ab97c62ee293f102cb685ea6d48b609f17fad9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355687
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2024-08-22 20:38:08 +00:00
Spencer Olson 81dcbbdac6 generate captions for all languages, not just "en"
closes EVAL-4508
flag=speedgrader_studio_media_capture

Test Plan:
- specs pass

Change-Id: I2d24ec63e78d34c5958525c8006e887c732c83a6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355701
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
2024-08-22 20:28:25 +00:00
juan.chavez b62aa88122 Fix announcements/group discussion save
fixes LX-2001
fixes LX-2011

flag=selective_release_ui_api
flag=selective_release_edit_page

test plan:
> Verify that you can create/edit an
Announcement.
> Verify that you can create/edit an
ungraded group discussion.
> Verify that you can create/edit a
graded group discussion.
> Verify old cases still work
(graded/ungraded discussions).

Change-Id: Ia7052b8b2b3229a5e1b834a59923d9486658ff85
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355623
Reviewed-by: Sarah Gerard <sarah.gerard@instructure.com>
QA-Review: Sarah Gerard <sarah.gerard@instructure.com>
Product-Review: Juan Chavez <juan.chavez@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2024-08-22 19:14:10 +00:00
Martin Yosifov 29d3e95b7a Update Calendar UI to display checkpoints
closes VICE-4474
flag=discussion_checkpoints

Test plan:
- Go to SiteAdmin -> Feature Options and enable
the Discussion Checkpoints feature flag
- Create a course and enroll as teacher
- Create a graded discussion topic with checkpoints,
and set due dates and overrides for both checkpoints
- Go to Calendar -> Monthly view and verify that 4 events
are displayed - two checkpoints and two checkpoint overrides
- Click on the first checkpoint event and verify that
"Reply to Topic" is appended to title
- Click on the second checkpoint event and verify that
"Required Replies ({num})" is appended to title
- Click on the first checkpoint override event and verify
that "Reply to Topic ({override title})" is appended to title
- Click on the second checkpoint override event and verify
that "Required Replies ({num}) ({override title})"
is appended to title
- Try to drag and drop a checkpoint event to a different day
- Verify that the checkpoint cannot be dropped and that
a warning message is displayed
- Repeat above two steps for checkpoint override events
- Click on a checkpoint event then in info modal click on Edit
button and verify that the Discusson Topic Edit page is loaded
- Go back to Calendar, click on a checkpoint event and in
the info modal click on Delete button. Verify that all
checkponts and their overrides are deleted from Calendar.
- Reload the page and verify that the deleted checkpoints
and checkpoint overrides are not displayed

Change-Id: I49753044347a43b9c982d09099cabdda441d6d9a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355310
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
2024-08-22 17:43:14 +00:00
Xander Moffatt 7b51334c6e catch all manner of HTTP errors for LTI config
why
* providing a nonexistent url for LTI config validation
produced a 500 and an ErrorReport
* gotta catch them all!

refs INTEROP-8762
flag=none

test plan
* hit this endpoint with `url=http://not.found` and it should return 422

Change-Id: I281b2ec9025e87c339ba4965eb845cd1fd3789fb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355608
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
Reviewed-by: Ryan Hawkins <ryan.hawkins@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
2024-08-22 14:12:13 +00:00
tbarna dd21f41aa2 Prefill shift dates
refs CLAB-82

flag=instui_for_import_page

test plan:
 - Create a course and on the course's settings page
   set the "Participation" to Course and add Start and End date
 - Navigate to Import content page of this course and select
   any option except Unzip or QTI
 - Check the "Adjust events and due dates"
 - The second date fields of "Beginning date"
   and "Ending date" filled in with the Start and End date

Change-Id: I8c04c758c73e44603ace39fb5fa409b928144fff
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354786
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Peipei Zhou <peipei.zhou@instructure.com>
QA-Review: Peipei Zhou <peipei.zhou@instructure.com>
Product-Review: Kata Virag Keri <kata.keri@instructure.com>
2024-08-22 13:00:45 +00:00
Jackson Howe 4f397cf25e Remove all references to UserNote
Note: this doesn't yet drop the tables/columns associated with this
feature, but every reference in application code is removed.

refs LX-157
flag = none
[skip-crystalball]

Test plan:
 - Navigate to the following places in Canvas and verify that there's
   no references to Faculty Journal anywhere:
   - account settings (link removed from sidebar)
   - account permissions (removed permission)
   - student detail page (/accounts/:id/users/:id - no FJ button)
   - activity report (/users/:id/teacher_activity/courses/:id - no
     column for FJ)
   - user show page (/users/:id - no FJ button)
   - inbox (FJ checkbox removed from create message modal)

Change-Id: I698b4c572b577501b7a9fe8b00f9c44608487558
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/355523
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Reviewed-by: Sarah Gerard <sarah.gerard@instructure.com>
QA-Review: Sarah Gerard <sarah.gerard@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2024-08-21 21:45:27 +00:00