this commit adds a confirmation modal to the enhanced rubric assignment
page if the user does not have permissions to edit the rubric. The modal
lets the user know that editing the rubric will create a copy of the
rubric because they lack the permissions to do so. this commit also
fixes a caching issue with useQuery that was causing rubrics for courses
not to be refetched int the rubric search tray.
closes EVAL-4766
closes EVAL-4765
flag=enhanced_rubrics
flag=enhanced_rubrics_assignments
setup:
- in order to test the permissions, you must have 2 different rubrics
created.
- Rubric A should not have any associations or assessments and
at the account level.
- Rubric B should have at least 2 associations and assessments
and be at the account level.
test plan:
- navigate to an assignment and attach Rubric A. Verify that clicking
the edit button does not show the confirmation modal.
- reload the page and verify that clicking on the edit button still
does not show the confirmation modal.
- remove the rubric and attach Rubric B. Verify that clicking the edit
button shows the confirmation modal.
- verify clicking on Cancel just closes the modal and clicking on
Confirm opens the edit rubric full screen modal.
- reload the page and verify that clicking on the edit button still
shows the confirmation modal.
Change-Id: If5fffab912bcbbc4a4206f3fe60fa5c547ae15ab
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360648
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
QA-Review: Derek Williams <derek.williams@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
why:
- This is a bug found during testing the React 18 upgrade. Clicking the
Sync URIs button never actually synced with the target_link_uri in the
JSON config. The previous implementation was also buggy because you
had to hit the button twice to get it to sync properly. This has now
been rectified
flag=none
test-plan:
- Create an LTI Dev Key.
- Choose the Paste JSON Configuration Method
- Paste in a valid tool config, such as one from yaltt or the LTI 1.3
Test Tool.
- Notice the Redirect URIs field get's autopopulated.
- Change the target_link_uri in the JSON config.
- Notice how the Redirect URIs field stays the same.
- Click the Sync URIs button. The Redirect URIs field should now match
the value in the JSON.
Change-Id: Ia706c39d1783248115cea3b0b2f5c362dc69e6c3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360824
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
Product-Review: Ryan Hawkins <ryan.hawkins@instructure.com>
If there's no password provided and the password has changed or
crypted_password_field is blank we'll reset it to a random token using
Authlogic's reset_password method (Authlogic::Random.friendly_token)
and set `self.password_auto_generated = true` on the user's Pseudonym
record. For this use case we don't want to validate the password
meets the password complexity requirements until the password has been
set by the user / institution.
fixes FOO-4869
flag = password_complexity
Test plan:
Prerequisite: Enhance password options feature option enabled in the
Authentication for Canvas Auth
- Select the option in Authentication for password to require symbol
characters
- Import a users.csv file to create a new user without the password
column
- Verify the user imports successfully without an error
Change-Id: Id826831089f518acf50b844e4997984e74a00ba0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360804
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
fixes LX-2069
flag=selective_release_ui_api
test plan:
- Edit an assignment with a valid due date.
- Click due date (date field) and manually
clear it (using backspace key).
- Blur.
> Verify that the date/time fields are
cleared without errors.
- Save.
> Verify that the dates are saved correctly.
Change-Id: I14a3eadcfe13828c13d2e60e1d61a1ddb348d977
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360836
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: Drake Harper <drake.harper@instructure.com>
if your local computer has 5900 already bound, this will let you continue to VNC into the container
Change-Id: I3b7e0b27203057755e525d5b29a9d9a761e23a89
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360850
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
this commit adds a feature flag check around the new options added for
enhanced_rubrics_assignments when viewing the rubric builder form.
currently if enhanced rubrics is on, the options are always displayed
but you can't take advantage of the options until the
enhanced_rubrics_assignments is ON when creating outside an assignment.
closes EVAL-4771
flag=enhanced_rubrics_assignments
flag=enhanced_rubrics
test plan:
- verify when opening the rubric builder from the /rubrics page and the
assignments page, that the new options are only displayed when the
enhanced_rubrics_assignments flag is ON
Change-Id: Id6798ddfc66673ce5e43b5964e2d806c42c5a7a6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360783
Reviewed-by: Kai Bjorkman <kbjorkman@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>
User interface to match Figma
closes AE-1264
closes AE-1301
flag=login_registration_ui_identity
[fsc-max-nodes=30]
[skip-crystalball]
test plan:
1. login to Canvas as an admin
2. navigate to
/accounts/<account_id>/settings
3. enable “New Login/Registration UI for Identity” feature flag
4. set “Multi-Factor Authentication” to “Required”
5. open a new icognito window
6. navigate to
/login/canvas
7. expect new UI to match Figma designs
Change-Id: If7113fd0b3790bdc51566aba5e540d1198055689
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/359894
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
this commit changes the ff from course level to site admin level for
rubric assignments enhancements
closes EVAL-4767
flag=enhanced_rubrics_assignments
flag=enhanced_rubrics
test plan:
- verify that the new rubrics UI is not available on the assignments
page when the site admin FF is ON and it is available when the FF is
OFF
Change-Id: I961c0b5426a43dd9734bc1081658e50485e86f6c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360774
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Chris Soto <christopher.soto@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
fixes EGG-168
flag=differentiation_tags
test plan:
- seed a non collaborative group category in rails console
category = @course.group_categories.build(
name: "category 1",
non_collaborative: true
)
category.save!
- visit /courses/:id/groups and go to the category
you created
- create a group in it
- for the group, click ...,
- verify there is no Visit Group Homepage option
Change-Id: Ie04e09b08f8cfa0ee440954b73f0a92eb2fa6ec4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360787
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Reviewed-by: Wilmer Corrales <wilmer.corrales@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
flag=discussion_checkpoints
fixes EGG-267
test plan:
- visiually test
how the alert looks like
when you visit the speedgrader on
a rubricc'ed, checkpointed assignment
Change-Id: I2f328aa473913995d0dfa4ae39fa998a70c250fb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360790
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
refs RCX-2387
flag=none
Test Plan: Running it on beta
Change-Id: If3f8b21b67f7288f55aa3054e2d23277048f56b2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360612
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: Jacob DeWar <jacob.dewar@instructure.com>
react-apollo is deprecated, and we should be using the more
modular package imports
flag=none
Test Plan
1. Build passes
Change-Id: Ieecc1708e55bac0bc4bd836f3a0b9afbba4804b5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360833
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes EVAL-4373
flag=default_account_grading_scheme
Test Plan:
- turn ON default account grading scheme FF
- create 2 grading standards that look very different so you can tell
if one is being used to grade an assignment or the other
- Set one as the account default for the root account
- create an assignment in a course in that account and a sub account
of that root account
- Create two assignments in each course. One using the course/account
default and the other using the grading standard directly(not inherited)
- Grade the assignments in the root account course and
sub account course
- Change the account default grading scheme to the other grading scheme
- WHen changing the account default grading scheme, the user should be
prompted to confirm that they want to change the grades of all the
assignments that are inheriting the grading scheme
- ensure all the grades changed on the inheriting assignments, but not
the ones using the grading scheme directly
- Ensure SpeedGrader and Individual Gradebook show the correct new
grades along with the traditional gradebook
Change-Id: Ide343a5f3ba010abd4d13c52a8b391d74c2b81c4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/353614
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Rohan Chugh <rohan.chugh@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes EVAL-4742
flag=none
Test Plan:
* Prereq: A course with two student enrollments, an assignment, really bad internet speed.
1. Navigate to the speedgrader page of the assignment, and start
creating a media comment.
2. Let the recording run for at least 2-5 minutes.
3. Click save on the recording, click X in the top right of the upload
pop up, and quickly navigate to the next student. When you get the
warning pop up, click proceed.
4. See that the video you recorded for Student A got posted to Student
A (without this fix, it would get posted to student B).
Change-Id: I4382dcbdcc1c94879856c9f31a0946e7dfdaae67
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360792
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chris Soto <christopher.soto@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Derek Williams <derek.williams@instructure.com>
A discussion sorting preference is now saved in the database.
fixes VICE-4672
flag=react_discussions_post
Test plan:
- Go to a discussion
- Change the sorting order
- refresh/go elsewere
- come back to the discussion
- the sorting order you chose is used
Change-Id: I713b0b36b625d2399b737ca47dfef30db9f950c1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/359689
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mario Hegyi <mario.hegyi@instructure.com>
QA-Review: Dora Csolakov <dora.csolakov@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
refs VICE-4666
flag=none
test plan:
1.Go to the create/edit page
2.The buttons should be the same in the desktop view
3.Switch to mobile view
4.The buttons on the bottom of the page are full width
5.Check the space between the buttons horizontally and vertically,
there should be 12px(0.75rem) between them
Change-Id: Iad2585998e654bcc7470b8b0e900b645bda758b5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360515
Reviewed-by: Daniel Matyas Vincze <daniel.vincze@instructure.com>
QA-Review: Theo Sorriaux <theo.sorriaux@instructure.com>
Product-Review: Tamás Balogh <tamas.balogh@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
refs LX-2086
flag=none
test plan:
- create a wiki page and assign it to a student or section.
remove everyone else
- save and ensure that everyone else is no longer assigned
- from the edit page, assign everyone else back so you have
the student override and everyone assigned
- save and ensure that everyone is still assigned
Change-Id: I6aaf221ec4188db476741c78a9ec7aadfb813ed6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360784
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Sarah Gerard <sarah.gerard@instructure.com>
When a search is performed, if a request is active,
it should be aborted;
otherwise, these results will be concatenated to the search
closes EGG-125
flag=none
test plan:
- Create a course with at least 200 students.
- Create a group set
- In the ‘Unassigned Students’ search bar,
start typing or copy/paste a full name.
Do this several times. Refreshing the page occasionally.
- Results match the search criterion
Change-Id: I745ca456d1d4394da0ad9a89d5c3f62216e6d49e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360482
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Sam Garza <sam.garza@instructure.com>
fixes QUIZ-14305
flag = new_quizzes_common_cartridge
test plan:
- create a course with a couple of new quizzes
- in the canvas rails console, change the workflow_state of each
of the Assignment records to 'fail_to_import'
- in the quiz_lti rails console, destroy all assignments
- export the course
- it must export without new quizzes and without errors
Change-Id: Iac406dde590b2f505ead4090759389d2be5fd719
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/357324
Reviewed-by: Adrian Diaz <adrian.diaz@instructure.com>
QA-Review: Adrian Diaz <adrian.diaz@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Marleny Parmenter <mparmenter@instructure.com>
closes RCX-2508
flag=files-a11y-rewrite
Test Plan:
- Go to Site Admin Feature Flags;
- Enable Files a11y Rewrite flag;
- Go to User Files, you should see "All My Files" heading;
- Go to Course Files, you should see "Files" heading.
Change-Id: Ic8927f07777e3cc1247d16b0f070e04b75367a92
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360629
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: Murilo Paiva <murilo.paiva@instructure.com>
refs AE-1272
flag=none
Test Plan:
Set up several pseudonyms in your local database with hashed password
types by manipulating the crypted_password and sis_ssha columns. Invoke
the new method on each and validate the return the expected type:
- Blank crypted_password and sis_ssha -> nil
- Scrypt crypted_password (current KDF) -> :script
- SHA512 crypted_password -> :SHA512
- Any other present value -> :unknown
Change-Id: I75aaac6b3352d9f5302e2a060a0cd9add435495d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/360356
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>