Do not attempt to submit comments in SpeedGrader if a submission request
is already in progress. Although we already disable the "Submit" button
while waiting for a response, navigating between students would still
attempt to record the current comment text as a draft (even if the user
had already explicitly saved it) without checking whether a request was
in progress.
flag=none
fixes TALLY-620
Test plan:
- Have a course with an assignment and some students
- Open SpeedGrader for the assignment
- Ensure the server will take a while to process comment requests
- To do this, you can make a change on the server to force a reload
(e.g., add a line to update_submission in gradebooks_controller),
or get yourself a terrible internet connection if you're not testing
locally.
- Ensure non-draft comments aren't wrongly saved as drafts:
- Type some text in the comment box for a student
- Click "Submit"
- Immediately start hitting the "j" and/or "k" keys with great vigor
- This should *not* cause a zillion draft comments to be saved
- Eventually the actual submission request should finish, and should
add a non-draft comment for the intended student (and only that
student)
- Ensure draft comments only get one copy saved:
- Slow down your server again, as above
- Type some comment text, but do not submit it
- Using the arrow buttons at the top, furiously move between students
- This should *not* cause zillions of draft comments to be saved
- Eventually, the actual draft comment should be saved for the
intended student (and only that student)
- Ensure the more civilized behavior below works as expected:
- Submitting a comment and calmly waiting for the submission to go
through
- Typing some comment text, switching students, and waiting for the
draft comment to be saved without making a ruckus
- Typing some comment text, closing the page, and then re-opening the
page with no hullabaloo (the text should have been saved as a draft)
Change-Id: I57e0781333c763ba22842749f0130fe6c21eb319
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237373
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
closes: KNO-514
flag=hide_course_sections_from_students
test plan:
1. Go to root account and look for the feature flag for Hide Course Sections from Students.
2. Enable the feature flag
3. follow the test plan here: https://gerrit.instructure.com/c/canvas-lms/+/234974
4. leave the setting checkmarked so sections are hidden from students, then disable the feature flag
5. Verify sections are no longer hidden for the student, since the ff is now disabled, even though the settings was left on when the ff was disabled.
Change-Id: I2bd003df38d1b232550ca623deb819e19b6b408f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/238231
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Test plan:
-announcements with a greater date should be at the top
fixes KNO-470
flag=past_announcements
Change-Id: I27c9809ab800a02fe2dbe9a7c6807f09f9ba3bc7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/238101
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Adds a new course setting to make it so students
can't see students from other sections when it is
enabled. Behavior only triggers when there is more than
one section.
test plan:
1. As a teacher, create a course and go to the course settings page
2. Under more options, check the "Hide sections on the People page
from students" checkbox and then Click Update Course Details.
3. Leave the course as a single section for now and publish it.
4. Add a student to the course, and then log in as the student.
5. Go to the people page and verify you can see the Section column
on the roster table.
6. Log in as a teacher and add a second section to the course.
7. Add another student and assign them the new section.
8. Log in as either student, and verify on the people page that
the Section column no longer appears.
9. As a teacher turn off the setting and verify the students can
see the Section column again.
10. As a teacher, delete the second section.
11. Turn on the setting again and verify the student can still see
the Section column.
closes: USERS-352
Change-Id: I9a674674424e4d37d23e9df4dea690b1114feb7a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234974
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
refs CAL-37
flag=calendar_conferences
Test plan:
- tests pass
- calendar conference updates occur
when only the conference times are changed
Change-Id: I1a9570b83999b612d9521234f9c1e5ab41a71f74
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236926
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Ken McGrady <kmcgrady@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
Change-Id: I1f6445fa5898c6a9a757a7f7e643ada491703757
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
when a pseudonym is not found for an email we don't have the account to
load the product name, this is set to 'Canvas' for most accounts. This
will allow the email to still send instead of error, but might not be
accurate
test plan
- in console make a user that is unregistered
- make a unconfirmed communication_channel for the user
- it should send an email to it
fixes KNO-474
flag=none
Change-Id: I1855993a07a4edd4ba8d523df7efb29d128eef4d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237933
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>
closes LA-785
flag = none
Test Plan:
- create and override for student
- verify record is created and has correct root_account_id
Change-Id: Idf60a0ff42a75dec5b10d9d6ca9c8d25cf6ffd1f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237809
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: Clint Furse <cfurse@instructure.com>
closes LA-784
flag = none
Test Plan:
- verify that an assignment_override can be saved
- verify that the override contains the correctly root_account_id
Change-Id: I20d048d04ae295ec9cd7820598f058f3ff9be21e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237804
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: Clint Furse <cfurse@instructure.com>
closes LA-783
flag=none
Test Plan:
- verify that we can still create an assignment group
- verify that new groups have the correct root_account_id set
Change-Id: Ibc1314b3eaecf99e46d09583da045513b2cd8314
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237882
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: Clint Furse <cfurse@instructure.com>
Fixes USERS-580
Refs USERS-515
flag=none
Automation testing revealed a sneak circuit through
<SearchableSelect> whereby it could be forced to render its
InstUI <Select> child with zero children of its own. This is
obviously wrong, but it has the additional problem of causing
<Select> to crash the entire app, so it's even worse than normal.
Just had to add some insulation to prevent that from happening
(it had to do with leaving the "bad" matcher RegExp laying around
after a blur... then when the text box was clicked on again,
<Select> requested to show the options, <SearchableSelect>
complied, but there were none because nothing matched, so boom.
Also added a test for this and for some other new functionality
regarding group handling that wasn't tested before.
Test plan:
* Follow the steps to reproduce in USERS-580
* It should no longer crash, and instead pop up a filtered search
for whatever was left in the input box
Change-Id: Ia472433a0c969331ac6c7f0020434ae3d94df14d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237951
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
access tokens cannot be created when masquerading a user on purpose,
because this would allow a user to get the real token and use it when
permissions for the user could change in the future. A commit was made
ee50eec4bd to create the access tokens
used when doing an lti launch on the real_user instead of the user, but
this breaks some tools that are not handling all the masquerade data.
c94b34348a reverted that change to create
them on the user again.
This commit is adding a column to access_token so we can audit usage of
the tokens created from an LTI launch. When a token is created while
masquerading we add the real_user_id to the token and make the token
expire in one hour.
test plan
- masquerade as a user
- launch an lti_tool that creates an access token
- the tool should see the end users token
- in a console verify the token is set to expire in an hour
- verify that real_user_id is used on the token
- the token should expire within an hour
fixes KNO-464
flag=none
Change-Id: I1f8913fc536f4e2c8539551efed69b27fbdb6b1a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236443
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Davis Hyer <dhyer@instructure.com>
QA-Review: Davis Hyer <dhyer@instructure.com>
Product-Review: Davis Hyer <dhyer@instructure.com>
remove course files, since it doesn't make a lot of sense
to submit those, and the entire page broke when the files tab
was disabled in course nav. fix group-context files, which
were not supported by the graphql backend.
test plan:
- enable assignments_2_student feature
- set up an assignment that accepts file submissions
- disable the files tab in course navigation
- as a student, go to the assignment page and click
"more options"
- you should be able to select a file from your files
and submit it
- set up a group in the course
- as a student, upload a file to the group
- you should be able to submit a group file via
"more options"
fixes LA-838
flag = assignments_2_student
Change-Id: Ib1f9e216b8ee9cef59651e1b3e2a50c7ad1ae03e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237762
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Clint Furse <cfurse@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes QO-77
flag = none
test plan:
- create Classic/New Quizzes worth 1 point, 2+ points,
and a decimal point value, such as 1.23
- on the quizzes index page, all point values should
display correctly (i.e. 1 pt, 2 pts, 1.23 pts)
Change-Id: I52221bda7c27d92b9ed2f7bc61ff6f83ee7fa9c0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237896
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
Test plan:
-“Global Announcements” link is working in the account navigation
-page is populated with dismissed/past/current announcements
Fixes KNO-482
flag=past_announcements
Change-Id: I2b06247816254264a44bdb4b0a634503542851f4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237606
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Closes PLAT-5799
flag=none
Test Plan:
1. Install an LTI 1.3 tool in a root account
The LTI 1.3 test tool works well for this
scenario.
2. Create an assignment in a course with
type "External Tool" pointing to the
LTI 1.3 tool.
3. Request a sessionless launch for the
assignment by making a GET request to
/api/v1/courses/:course_id/external_tools/
sessionless_launch?launch_type=assessment&
assignment_id=:assignment_id
Note that an access token must be send
in this request.
4. Navigate to the url in the response in a
browser with no Canvas session and verify
the assignment tool is launched.
Note that the link expires in 30 seconds
Change-Id: Iacc01f47ddf0100a64d3729834812d456df4c318
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237802
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
refs CNVS-48876
flag = none
TEST PLAN:
1) re-schedule a shard for backfill with repair
2) failed cells should be 0 afterwards.
Change-Id: I081da9067eaccc61396b733e73fb68c2c06b307b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/238039
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
test plan:
* enable the "Submission Type LTI Placement" feature
* add an external tool to a course or account with a
"submission_type_selection" placement configured
* should be able to create or edit an assignment and
select the tool directly from the submission type
drop down
* when selected, it should show a button
(that currently does nothing but will be used to
launch the tool for additional configuration)
* should be able to save the assignment with
the tool selected, and it should stay selected
when the saved assignment is edited again
flag=submission_type_tool_placement
closes #LA-725
Change-Id: Ic0dd44f91b61f3300c55db7e7b30d9180c7a14e2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237534
Reviewed-by: Clint Furse <cfurse@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Clint Furse <cfurse@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes KNO-490
flag=none
test plan:
- create a user, set their avatar url to "" via console
> user.update_attributes(avatar_image_url: "")
- add the user to a conversation
- fetch all conversation participants via api
- easiest way:
- log into your local as an admin
- paste into your browser: http://localhost:3000/api/v1/conversations?include[]=participant_avatars
- no curl/tokens necessary \o/
- the user's avatar should be set to empty string, not
"http://localhost:3000"
qa risk: low
Change-Id: I9f766e3f8ac5e5a6ef075b597e8e1f85fad956da
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237863
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>
flag = none
Fixes: QUIZ-7378
NOTE: g/226189 must be deployed to prod first
TEST PLAN:
- Create Quizzes Next Assignment
- Create 1 true / false question
- Take quiz as student
- Verify grade and submitted_at date are sent back correctly
Change-Id: I52110794bbd3ab316f2dce490869ab447e782ae3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226551
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: David Tan <dtan@instructure.com>
Reviewed-by: Jared Crystal <jcrystal@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
Only students/staff who have active enrollments in the current term,
should get global announcements.
fixes KNO-399
flag=none
/ ---- ---- \
| Test Plan |
\ ---- ---- /
- In an account create a user and two sub accounts
- In the parent account navigate to Settings > Feature Options and
enable the `Immediate notifications for global announcements` feature
flag
- As the user navigate to /profile/communication and update the global
announcements preference to be immediate
- In both sub accounts create a course and add a student to it, publish
the course, and as the user accept the enrollment invitation
- In both sub accounts navigate to Settings > Announcements and create
an announcement
- Navigate to /users/<user_id>/messages and note the existence of the
two announcements
- In sub account B navigate to the course settings page, update the
start and end dates to be in the past, check the `Students can only
participate in the course between these dates` check box, and save the
changes
- Again in both sub accounts navigate to Settings > Announcements and
create an announcement
- Navigate back to /users/<user_id>/messages and note that there should
only be a new message from sub account A
Change-Id: I1f1fc7949d394e39ace73adf3d895f98c1c2fcb3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237771
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
fixes KNO-502
flag=none
/ ---- ---- \
| Test Plan |
\ ---- ---- /
- Create a user and add several communication channels to them
- Confirm all the communication channels but one
- Create a course and add the user to it
- Update the users notifications preferences to immediate for all
preferences and channels
- Create a notification
- As an admin navigate to /users/<user_id>/messages
- Note that there should only be a new message sent to active
communication channels
Change-Id: Ib5937526e881ea455addb3e4a173bea19e924d34
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237910
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
refs CNVS-48876
flag = none
TEST PLAN:
1) try to reset a test student
2) auditors should not give an FK error
Change-Id: I10aeca96f9d04ebec171eb0216e185b293724452
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236794
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
refs CNVS-48876
flag = none
TEST PLAN:
1) backfill auditors
2) log show CQL fetchs are max one ID per group
3) throughput on cassandra ring does not spike as sharply with
higher parallelism
Change-Id: I96a24bf7273f089612ddf97fe4c038ff7cab490b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237810
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
flag = calendar_conferences
Conferences created in calendar events are generic for the
conferences page. This change:
* Ties the conference name/schedule date to the calendar event
* Updates it when the calendar event is updated
* Removes LTI Conferences from the Conferences Page
Test Plan:
* Verify Conferences Page loads successfully.
* Add a calendar event with both of the following:
* Plugin Conference (e.g. Big Blue Button)
* LTI Conference (e.g. MS Teams)
* Verify on the Conferences Page
* Plugin Conferences from the calendar event appear
* They include the correct start date/time.
* LTI Conference does not appear on the page
* Update the calendar event with different name and start times
* Verify updates propagate to the Conference Event
Change-Id: I7a73d9f626f036f66efaf9cf34d7b9ced26e134e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236615
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
fixes TALLY-877
flag=none
Group memberships can have moderator status set to nil, and if that was
the case, then sometimes filtering SpeedGrader by student group would
result in incorrectly forcing the selected student group to a non-empty
one when it was already non-empty to begin with. This became more
apparent on differentiated assignments assigned to one group, as the
forced setting of another group would mean SpeedGrader registered 0
eligible students to be viewed.
Test Plan
- Create 2 groups.
- Enroll students into both groups.
- Enable "Launch SpeedGrader Filtered by Student Group".
- In a rails console, pick one of the groups and set its group
memberships' moderator state to nil.
`group.group_memberships.update_all(moderator: nil)`
- Create an assignment, assigned only to that group.
- Filter SpeedGrader by that group.
- Launch SpeedGrader and verify it loads with all the students in that
group.
Change-Id: Ie196b18c3001058227e1456bc856fd17ccdc8d2d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237273
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Closes USERS-559
flag=none
For some customers with MFA enabled, allowing a mobile login
via a QR code is a security issue since that authentication
will not use MFA.
Since the feature flag for QR login was forced on at the top
level, there is no way for customers to turn it off themselves.
So, let's remove the FF entirely, and instead create an account
setting (default true) for allowing mobile QR login. Then a
customer account admin can turn it off if they choose.
This commit leaves a bit of a hole in that it is still possible
to manually issue a POST request to get a QR code. But that
code is in the instructure_misc_plugin repo so I will have to
take care of that in a different commit once this one merges to
canvas_lms.
Test plan:
* You will need instructure_misc_plugin installed and have
gone through the steps to set up an account for QR login
(see the instructions in g/232750 if you have not already
done this)
* Verify that the "QR for Mobile Login" feature flag is gone
* Go to account settings
* Verify that the new setting "Allow logins to the mobile apps
via the use of QR codes" appears (it's right under the MFA
setting since that seemed to be the most relevant place) and
that it is checked (enabled)
* Verify that mobile QR login works as it always has
* Now uncheck that setting and "Update Settings" way at the bottom
* Now the "QR for Mobile Login" link should no longer appear in
the account tray
* Try navigating by hand to /profile/qr_mobile_login ... that
should now 404
Change-Id: Ic513870b00bf1b574bc00d008b4e00a31541bc8a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237658
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Nick Houle <nhoule@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Closes PLAT-5555
flag=none
Test Plan
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on
an AssignmentGroup record
- Verify AssignmentGroup records always
live on the same shard as their root
accounts
Change-Id: Ief704081c8d65b23950bcdb6b3d0d6d3e3bcb7f2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236855
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
fixes KNO-487
flag=none
test plan:
- ensure the confetti flag for assignments is on
- visit student view of an assignment
- /courses/:id/assignments/:id?confetti=true
- refresh until you see the unicycle
-- OR --
- realize this is small and :rubberstamp:
qa risk: low
Change-Id: I6cbb87fa6c62398cd2a3b18f56f5d76e013aac11
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237816
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
Closes USERS-515
flag=none
This makes the "Filter by term" select box on the main courses
page searchable by typing into the box to narrow down the
choices. Similar functionality is already present in the
corresponding selections in the New Course modal.
Because this selection dropdown includes groups, it necessitated
a complete rewrite of the SearchableSelect component so that it
works a little more like CanvasSelect in handling its children.
It no longer depends on CanvasAsyncSelect.
SearchableSelect was almost completely rewritten from scratch so
I would recommend just reviewing the new module an ignoring the
diff from the old one. Hopefully it is more generally useful now
like CanvasSelect is.
In the course of writing tests for this, I discovered that all
our supported browsers implement Array.prototype.flat(), so it
is safe to use. What does NOT implement it, however is Jest 🤦
so I also implemented them as polyfills in the jest-setup.js
and now everyone can use them in the future.
Test plan:
* Have a bunch of terms
* Go to /accounts/default
* Click on "Filter by term" to bring up the selection dropdown
* It should work just like it used to to filter the courses list
* Now try typing in the box... it should filter the available
selections in the dropdown while you type
* If no terms match what you're typing, the dropdown should go
away altogether and the select box itself should get a red
highlight with red error text
* A11y should be okay
Change-Id: I3da8dd681645f83f858996fe42030ad400eada01
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237585
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Matt Meservey
QA-Review: August Thornton <august@instructure.com>
Closes PLAT-5545
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
GradingStandard record
- Verify GradingStandard records always live on the same shard
as their root account
Change-Id: I82f4ec0f897e5116d6d7552816cdd9c83af4e117
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235206
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5542
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
CustomGradebookColumnDatum record
- Verify CustomGradebookColumnDatum records always live on the same shard
as their root account
Change-Id: I8f04212c63564ed22f86207553c08b1069065974
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235222
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5558
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
AttachmentAssociation record
- Verify AttachmentAssociations always live on the same shard
as their root account
Change-Id: I4bbb084e0f9bb22bcf484097b018d8f8e529151e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234751
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5551
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
ScoreStatistic record
- Verify ScoreStatistic always
live on the same shard as their root account
Change-Id: I54e677ac008603e859dd169a68d4f7521d13e70e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235015
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5546
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
LatePolicy record
- Verify LatePolicy records always live on the same shard
as their root account
Change-Id: I135e3312cdb7836b916a509822840a701b8b402e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235204
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5550
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
Scores record
- Verify Scores always
live on the same shard as their root account
Change-Id: I9db823f3aff6c4f6964151eaeb6f8a9bac5ebba5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235017
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5735
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
DiscussionEntry record
- Verify DiscussionEntry records always live on
the same shard as their root account
Change-Id: Ie1350142e3cb42835e3674e997e96dc9dcc4adf5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236291
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Clint Furse <cfurse@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Closes PLAT-5553
flag=none
Test Plan:
- Verify migrations run
- Verify a root_account_id can be set on a
SubmissionComment record
- Verify SubmissionComments always live on the same shard
as their root account
- Create a SubmissionComment and verify the root_account
association is populated
Change-Id: I8493191c94c872b1d378fdb231f4cbf17e3f8097
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235012
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
refs CNVS-48876
flag = none
TEST PLAN:
1) migrate database
2) auditors root partitions should be empty
3) auditors child partitions should have data
Change-Id: I12ef05f882d7cd28261f3d5230de97ce032fd6d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237776
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
spec: Added 'mobile user with conversations' provider state.
closes MBL-14235
Test Plan: Verify that new mobile Pact conversations
api tests pass against the new provider state.
Change-Id: If7daa1348a32896e48c497f06e7c079e534cc036
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237740
Reviewed-by: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Joseph Hoag <jhoag@instructure.com>
closes OUT-3506
flag=limit_section_visibility_in_lmgb
test-plan:
- Create at least two sections in a course
- Enroll one (different) student in each section
- Enroll a teacher into one of those sections and enable the
"limit this user to only see.." option
- Enable the `limit_section_visibility` flag
- Ensure the LMGB feature flag is enabled for the course
- As the teacher, navigate to the LMGB
- Ensure that only one student is visible and the student in the
alternate section is not listed
- Ensure in the section dropdown in the top right that only the
section that the teacher has access to is listed
- Disable the `limit_section_visibility` flag
- Navigate back to the LMGB and confirm that you see both students
and can access the gradebook for each section
Change-Id: I01161007ea6becfc4959b3d862c6e38c1d74de38
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237622
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Jody Sailor
test plan:
see them on splunk, build passes
fixes: CCI-383
flag = none
Change-Id: I7aa85ad4b3ec767314007276d0fd094c31210904
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237760
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
refs CNVS-48876
flag = none
TEST PLAN:
1) backfill auditors
2) bulk records should end up in
correct partitions of auditors tables
Change-Id: I40aaf0587723bab35bc86c695939d529c7a9d624
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237747
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>