content participation was not being updated for peer review comment or
rubric assessments if a teacher had not already done a comment or
assessment. badge counts should be updated for automatically posted
assignments when another student leaves a comment or rubric assessment.
this change has the content participation only check to make sure
the submission is posted? if it's a manually posted assignment.
fixes EVAL-2860
flag=visibility_feedback_student_grades_page
flag=assignments_2_student
test plan:
- create a peer review assignment with rubric
- assign a student to review another student's assignment
- submit the assignment for both students. then as the reviewer, leave
a comment on the assignment. also do rubric assessment
- as the reviewee student, verify that the badge count increases and you
are also able to mark the comment and rubric assessment as read by
clicking onto the icons in the student grades page
Change-Id: I045cf4bf0ca910bd1bda999bf2c132d6133fd455
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310487
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
currently with peer_reviews_for_a2, if assignment changes to/from
not_graded, the badge count does not update.
fixes EVAL-2863
flag=assignments_2_student
flag=peer_reviews_for_a2
test plan:
- as teacher, create an assignment with points
- leave a comment on the assignment for a student
- as student, verify the badge count is now 1
- as teacher, change the submission_types (Display Grade as) for the
assignment to "Not Graded"
- as student, verify the badge count is now 0
- as teacher, change the submission_types (Display Grade as) back to
points
- as student, verify the badge count is 1 again
Change-Id: I0b9729b1373b2f47303783007e29e96f9109fb25
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310590
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes EVAL-2841
flag=new_quizzes_grade_by_question_in_speedgrader
Test Plan:
1. Enable "Quizzes.Next Grade by Question in SpeedGrader" and
"Single Quizzes.Next Session in SpeedGrader"
2. Go to SpeedGrader for a Quizzes.Next quiz.
3. In the browser console, enter the following and notice SpeedGrader
navigates to the previous student:
window.parent.postMessage({subject: 'quizzesNext.previousStudent'}, '*')
4. In the browser console, enter the following and notice SpeedGrader
navigates to the next student:
window.parent.postMessage({subject: 'quizzesNext.nextStudent'}, '*')
Change-Id: I584d175947f5cf7dfbd243bea39b98dda74c46d6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310488
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
Refs DE-1264
flag=none
Bumps minor version to the most recent, which brings
in some CVE fixes and other stuff that might not matter.
(This change only affects NVM users; the "blessed" node
version is still encoded in the Docker files.)
Test plan:
* you can install node modules and run webpack
Change-Id: I01dd63ce444df254bc5a6ca03aa76b1505b8fe37
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310896
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
closes OUT-5536
flag=none
Code was updated to account for question banks being used
across multiple quizzes, but it did not handle multiple
question abnks being used within a single quiz.
Test plan
- All tests pass. I added a new test case to handle the missing
use case of the same outcome being used across multiple
question banks.
Change-Id: If09c46427aca4e0a3179768d198436e12aa162d6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310796
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Include all the filters except contextIds after removing pace, so
the user will get the table in the same state after refreshing.
fixes LS-3669
flag= course_paces_redesign
test plan
- Go to the course pacing page.
- Apply some filters like page number or search term
- Sort the table in descending order
- Using the modal, remove a pace
- Expect the table remains in the same state after removing the pace
Change-Id: Ia60a45d88869f67cfea41102a337d8ffaf3bc8b6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310875
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
fixes VICE-3314
flag=none
test plan:
- set up google drive plugin locally
- as a student create a google doc collab
- as an admin, create a google doc collab
- this way, the student, and the admin have both
authenticated google
- now log in as the admin again, this time,
masquerade as the student
- visit the course collaborations page
- create a google doc collaboration
- do not invite anyone
- save
- verify that in the auto-opened
google doc tab, that it is logged
in as your own (masquerador's)
google account
- verify that back in the collaborations
tab in canvas, the collaboration you
created while masquerading shows that
you (the masquerador, is the author)
- now click to view a collaboration while
still masquerading
- verify that you are not able to view the document
and that you are sent back to the collaborations page with
a flash error stating that you need to stop masquerading
- stop masquerading
- verify you can visit a collaboration as yourself (admin)
Change-Id: I85704c3a1cdad89cca57b8aee2133ff11af1cd67
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310803
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
closes VICE-3329
flag=none
Test Plan
1. Enable profiles on the account settings
2. Click into a user form the peoples page
3. Verify that the user's display name is shown
3a. should be displayed on the breadcrumb link
Change-Id: I218cea8ecd49e549fd8a639ec91fb6e7d85f1b1c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310847
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=explicit_latex_typesetting
closes MAT-1172
test plan:
-prereq: have a page with some latex on it
-with the flag OFF
>go to the page and make sure the latex renders via MathJax
-with the flag ON
>go to the page and make sure the latex doesn't render via MathJax
-open the NEE and switch to the direct editing mode
>confirm that any latex you enter correctly gets rendered via
MathJax in the preview at the bottom
Change-Id: Ia57fc50faa087b45b105c6f2af8e4203b375d293
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310791
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Jake Oeding <jake.oeding@instructure.com>
test plan:
1. merge two users that already have enrollments
2. merge the merged user into a new user that has never had
any enrollments
3. the user's perceived lti ids from courses enrolled in
before step 2 should not be changed
flag=none
fixes FOO-3374
Change-Id: Ib33e34e92f5a99eddd7802d68d8bea64ea1f0a9f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310907
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>
Test plan:
- All existing tests pass
flag=none
Refs EVAL-2899
Change-Id: I3db7d21152ab4f85c3cec2ab6d5de7a10a29bf71
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310858
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
Test plan:
- Enable the enhanced gradebook filters feature flag
- Create a course with multiple grading periods
- Create assignments for each grading period
- Select "All Grading Periods" in the filters
- The "All Grading Periods" tag should be visible
- After removing the filter, only assignments for the current
grading period should be visible
Closes EVAL-2887
flag=enhanced_gradebook_filters
Change-Id: Ia975cf03146ad63d75507669198bdb1fa11de14d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310718
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-2275
flag=react_inbox
Test Plan
1. Create a message that has a very long link or word
2. Open it in inbox
3. Verify that the word wraps inside of the message container.
Change-Id: I952d7e7c476ede1c40a8bca3d709be5c169ad1d8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310854
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=none
We've got a new locale-sensitive URL which added a line
to the static en.json file, so it gets dirty every time
translations are built. The "correct" version needs to
be on master to avoid dirtying local dev repos.
This is just one big long one-line JSON, but Gerrit's
change highlighting will make it easy to see what has
been made different.
Test plan:
* You agree with the change
Change-Id: Icdffe47a17eea4e0cb78c23ebded2348dd88947a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310852
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
we offer JIT provisioning for a multitude of auth providers. I'm
specifically targeting SAML as that's where most of our reports
are coming from. If in the future we want to update more, we can
in regards to recognizing and dealing with pseudonyms that have
been suspended
this change gives us the flexibility to include pseudonyms
involved in our SSO authentication flow that have been suspended,
bypass the logic for JIT provisioning (thus not duplicating users
and setting federated attributes that don't pertain to the user
in question) and block the login as no user found with pseudonym;
our fallback when pseudonym == nil
fixes FOO-2717
flag = none
test plan:
• set up a SAML IDP to interface with Canvas as a SP
and enabled JIT provisioning with the sis_user_id
attribute being collected
• ensure your IDP is sending the federated attribute
that you have set in the auth provider config for
sis_user_id
• have a user associated with the SAML auth provider
• suspend the user
• attempt to log in as that user via /login/saml and
authenticate
• verify the login is rejected with an error stating
a user was not found with provided unique id
• verify no additional user was provisioned through
JIT
Change-Id: I129ba60a86f90c98416e60b5c76325561e2bbad3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310836
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
In the code, giving a canvas_icon_class instead of a icon_url also makes
the editor_button placement appear, but the tool seems to show up as a
blank icon then... 🤷 So I didn't mention it here.
closes INTEROP-7950
Test plan:
- run docker-compose run web bundle exec rake doc:api
- view /doc/api/file.editor_button_placement.html and make sure the
icon_url section looks good
Change-Id: I92d7025e143b3858d192abbf85aad3a9e52962b8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310567
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Paul Gray <paul.gray@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
When a teacher scores a submission in Speed Grader, the live event
contains the metadata fields `context_account_id` and
`context_sis_source_id`. When a submission is scored with the Grade
Passback API, however, these fields are missing. This commits adds them,
and probably adds the fields for other endpoints that are not normally
run as a user.
There are a few other fields still missing in a Grade Passback
grade_change live event vs. a user-initiated grade_change event, but
these have to do with the user who initiated the action (user_id,
user_account_id, etc.) so are not really applicable.
I also double-checked that this fixes it for AGS (LTI 1.3).
flags=none
fixes INTEROP-7907
Test plan:
- Before checking out this commit:
- enable the stub_kinesis attribute in the live_events section of
dynamic_settings.yml, as described in doc/live_events.md
- Make a course with a SIS id and an LTI 1.1 Assignment
- Launch the LTI 1.1 Assignment, and from the launch data, get the
sourcedId
- follow logs e.g.
docker logs -f -n 10 canvas-lms_web_1 | grep grade_change
- Grade the assigment in speedgrader
- save off the live event outputted
- Check out this commit (you may need to restart Canvas to pick up the
changes in lib/) and follow the logs again
- Grade the assignment in speedgrader and save off the live event
outputted
- create a gradepassback.xml file to be used with the API by copying the
example from the docs and substituting the sourcedId
- Send a passback request e.g.
def grade_passback(tool_id, xml)
tool = ContextExternalTool.find(tool_id)
consumer = OAuth::Consumer.new(tool.consumer_key, tool.shared_secret)
client = OAuth::AccessToken.new(consumer)
url = "http://web.canvas-lms2.docker/api/lti/v1/tools/#{tool.id}/grade_passback"
client.post(url, xml, 'Content-Type' => 'application/xml')
end
grade_passback(188, File.read("gradepassback.xml"))
- Convert each of the events you captured to sorted JSON. The raw output
using the stub_kinesis option is actually a JSONified event wrapped in
a ruby object, that looks like this:
[{:data=>"{\"attributes\":{\"root_account_uuid...
You can convert this to sorted JSON with this bash function:
eventcleanup() {
ruby -rjson -e \
'puts JSON.pretty_generate JSON.parse(eval(ARGF.read).dig(0,:data))'|
jq --sort-keys
}
eventcleanup < file_with_ruby_object.txt > out.json
- Compare the events generated from the two methods, and before this
commit (e.g. with a graphical diff tool) Make sure all have the same
value for the following fields:
- context_account_id (added this commit for grade passback)
- context_sis_source_id (added this commit for grade passback)
- context_id
- context_type
- root_account_id
- root_account_lti_guid
- root_account_uuid
Change-Id: I12a0f5d38ec8e591f7b753ccccd3e64b109650d1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310168
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Paul Gray <paul.gray@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Refs FOO-2929
flag=none
There are not a lot of locales that need to be
polyfilled (native browser support exists in almost
all cases), so it's no surprise that it was not
properly loading some of the locale data, due to
us not checking for prerequisite polyfills and also
to not loading polyfills in the required order.
See https://formatjs.io/docs/polyfills/ ... there's
a pretty clear tree of dependencies.
This commit changes the order of loading (if needed)
of the polyfills and also brings in a couple of
polyfills that I didn't even realize were required
for what we are loading. Also I removed a not-longer-
needed directory in /packages that used to handle the
locale polyfills before it was moved to the "engine"
stuff; also now the dependencies are in the correct
package.json.
Test plan:
* re-run the test plan for g/294705
* If you are an expert at how dates should look in
Welsh or Armenian, make sure they're really being
done correctly now?
Change-Id: Ie65ec591b9c9c063a093dec8a921759354abc37d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310469
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
fixes VICE-3323
flag=react_inbox
Test Plan:
- with react inbox ff on
- with a significant amount of conversations for a user
- inbox load times should be less than a few seconds
Change-Id: I9c75321fd2470ff3cbd16e8b5d708788aa2ab200
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310777
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Change-Id: I3c1fd74154a52aad96ef7ab85144dcc8dceb414a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310751
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Build-Review: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
test plan:
- smoke test user merge via automerge consortium with
home_account=true and ensure lti_context_id is moved
to the target user (test with global nav LTI tool launch)
- the actual constraint violation is difficult to reproduce
but the code path has spec coverage
flag=none
closes FOO-3366
Change-Id: Id29785f5156915c683716d255b2cc38baf6247c0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310713
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>
With scoreWithLowerBound >= schemeScore:
- scoreWithLowerBound is a number
- schemeScore is a string
- in the comparison, schemeScore is coerced to a number
This makes the coercion explicit
Test plan:
- About a dozen tests validate this function; they should all pass
- See especially: "GradingSchemeHelper > .scoreToGrade() accounts
for floating-point rounding errors"
flag=none
Change-Id: I02ac386a30d518657e9f49129a98ae2157f4a2c0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310678
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
fixes MAT-290
flag=none
Test plan
- Upload a usdz file and
verify that it has a content_type
that is not "unknown/unknown"
Change-Id: Ia979db164b865f2afd86dafbd5de59941207f8ee
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310602
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jake Oeding <jake.oeding@instructure.com>
QA-Review: Jake Oeding <jake.oeding@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
This allows a feature flag to remain hidden, even after being enabled.
Only Site Admins will be able to see and opt in/out of shadow features.
The generated API documentation is not changed, as the shadow property
is not shown to non-Site Admins and is meant for internal use only.
This also enables the shadow property for the the `send_usage_metrics`
feature flag.
Closes FOO-3277
flag=none
Test Plan:
* Set `shadow: true` on a feature
* Verify it's shown in the UI if you're a site admin.
* Verify you can't see it as a root account admin, even when enabled.
Change-Id: I5d764c50014b1bb1d2064a22cb5f88022d752e3a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/309190
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jason Perry <jason.perry@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
flag=granular_permissions_manage_course_content
fixes VICE-3313
typo caused non authors with
sufficient permissions to not be able
to delete. this commit fixes the typo
test plan: hard way
- turn on feature flag for granular permissions
manage course content
- must have a collaborations plugin
enabled for sandbox, but make sure LTI
collaborations are not enabled
(have myself walk you through the process,
involves secrets, so cannot post here)
- as a student in the course, create a collaboration
- as a teacher, verify you can delete it
the easy way:
- undo the typo fix in spec/models/collaboration.rb
- save
- run
bundle exec ./bin/rspec spec/selenium/collaborations/collaborations_teacher_spec.rb:44
- verify it fails
- recorrect the typo
- save
- rerunning the spec should pass
Change-Id: Id225ab19599090f69e47a34917fc7a9c1af95d02
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310708
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
fixes MAT-1063
flag=none
test plan:
- Navigate to a RCE instance.
- Shrink browser window to have the overflow button
show up.
- Click overflow button.
- With the overflow menu open, click an outside
input field, like page/assignment name.
> Verify that the overflow menu closes and the input
field is still focused
Change-Id: I263b971ec84650ac1d0e01fe6222b7812da35e7d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310156
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Juan Chavez <juan.chavez@instructure.com>
this is the intended set_root_account_ids for
conversation message participants.
this will set it to the conversation's root_account_ids.
refs VICE-3181
flag = none
Test Plan:
1) you can run the loop locally,
and for one cmp.
2) watch how it sets the cmp.root_account_ids
Change-Id: I7796e7bf76428840bd94fdb2bd54e0b001280d2c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310674
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Migration-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
When the media player is embedded as an iframe
into another iframe, which is embedded into Canvas
the player thinks it is loaded in standalone mode.
This PS makes the following scenario work
Canvas (me.instructure.com) -embeds-> LTI (lti.domain1.com) -embeds->
-> Media Player Iframe (me.instructure.com/media_objects_iframe)
fixes QUIZ-10562
flag=none
Test plan:
Test in Canvas
go to courses/pages
add a page
insert a video file
there should be no grey border in the videoplayer box
video should be resizeable using the tray and switching to a bigger size
save the page and look at the rendered version of the page
video should be like it was in edit mode
Change-Id: I9b306baa5275a563c46149dbae95e56c4c376677
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310218
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Ferenc Marcsó <ferenc.marcso@instructure.com>
QA-Review: Roland Beres <roland.beres@instructure.com>
Product-Review: Rajmund Csehil <rajmund.csehil@instructure.com>
refs AE-46
flag=none
test plan:
- specify `csp_logging` secret in `vault_contents.yml`
- confirm it's loaded correctly when calling `csp_logging_config` on
`Account.default` from a rails console
Change-Id: I9af985c1b3a7fee4946dc5a6e50e69c979917fe6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310551
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
fixes VICE-3331
flag=none
Test Plan
1. Create a group set where the teacher decides groups
2. Create a group in the groupset
3. Have 2 sections
4. Have 2 students that are section restricted
5. place students in different sections
6. Place students in the same group
7. As one of the students, open the groups page
8. verify that the group appears.
Change-Id: I1ccbd90975bdc363489ace44c3155bfffec123ee
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310699
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
if publish_at was changed to null, it would publish the page
fixes MAT-1183
flag=scheduled_page_publication
test plan:
- create a new page and set "Publish at" date in future
- save the page
- edit the page and remove the publish at date
- select save (not save and publish)
- ensure page is still unpublished
- test the same thing
- instead of clicking edit, click "will publish on ..."
- in the pop up click unpublish and then ok
- reload the page and ensure it is unpublished
Change-Id: I43079d76e53e14b297bb48a4dee837f563b4afe0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310601
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>
This reverts commit 85949ed13c.
Reason for revert: the bug in rubocop gem has been resolved in version 1.45.1
Change-Id: Icb1876d3c2627dbe2785ff7b49335619d42bf6da
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310312
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
The Individual Gradebook was not updating when the user toggled
back to a previously selected grading period.
Test plan:
1. Create a term and grading period that uses weighted grading periods
2. Create a course with assignments and scores for students in
those grading periods
3. Open the Individual Gradebook
4. Filter the grading periods to 'All Grading Periods' and
select the first student
5. It should list all grading periods and the weights
the student has received
6. Toggle the grading period filter to other
grading periods and it should update the totals correctly
7. Toggle the grading period filter back to 'All Grading Periods'
and notice it updates the totals correctly
Fixes EVAL-2804
flag=none
Change-Id: I8ef11f5c1c19b114e9f7fde6e595f02824c08ce8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/309795
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
When a reviewer has not submitted to the assignment and they attempt to
complete a review, they should be met with a screen that explains that
they will need to submit before reviewing other's work.
closes EVAL-2823
flag=assignments_2_student
flag=peer_reviews_for_a2
Test Plan:
- Create a peer review and assign two students to review each other
- submit to the assignment as one of the students
- As the student who did submit, try to view your assigned peer
review
- Ensure you are met with a panda reading a magazine and the message
that reads: "There are no submissions available to review just yet."
- As the student who did not submit, try to view your assigned peer
review
- Ensure you are met with a panda reading a book and the message
that reads: "You must submit your own work before you can review
your peers."
- Ensure after the student submits to the assignment they are able
to complete the peer review
Change-Id: I7f79c30a8fd47aa3f37ab90e9696d9ed32ecdb13
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310051
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Christopher Soto <christopher.soto@instructure.com>
Product-Review: Jody Sailor
flag=granular_permissions_manage_course_content
fixes VICE-3285
Since the permission explainer test specifically specifies
that announcement locking and deleting should really
affect announcements locking and deleting,
we should make it so
this fix will also work with the manage course content
combined permission
test plan:
- turn on the
granular_permissions_manage_course_content feature flag
verify the following in the course announcements index:
- the delete row item menu option only shows for roles with
the manage_course_content_delete permission
- the lock/allow row item menu option only shows for roles with
the manage_course_content_edit permission
- if user has neither of these 2 permissions, the
announcement rows do not show a checkbox, and does
not show a manage menu
Change-Id: Ia4b2eee6461b6a85ae71a8b8e5af15586b7aad23
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310593
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
refs AE-124
When running pre-deploy migrations that add a new column, if an application server loads the schema on a shard where the migration has already run, and tries to run queries on a shard where the migration has not already run, it can lead to errors. Fix this by allowing ignored_columns to append to its value dynamically through Consul.
Change-Id: I3b13e0fd2ac066e1439d3d314d71f2ebd8938e0c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310561
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
when a new quiz has multiple submissions and a teacher sets the grade
of a submission to nil, the teacher will no longer be able to see that
submission version in speedgrader or individual gradebook. this change
will now show nil submissions only when the workflow_state is "graded"
fixes EVAL-2136
flag=none
test plan:
- as teacher, create an auto graded new quiz and allow multiple
submissions
- as student, take the quiz multiple times
- as teacher, go to gradebook and mark the grade for the new quiz
to empty
- as teacher, go to speedgrader and verify that you can still see
all the submissions
Change-Id: Ib9c4a8668c7c24d63357afba4d7b3b2942e21c82
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/309194
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Jody Sailor
this is a temporary version lock to avoid a bug in rubocop 1.45.0
https://github.com/rubocop/rubocop/issues/11549
Change-Id: Ibc0f90c6d3ebaaa0857e2e8b265d2a6585e9fe17
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310676
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
fixes VICE-3181
flag = none
description:
the cmp.root_account_ids are tied to the convo.root_account_ids.
if the convo.root_account_ids are updated
then the cmp.convo.root_account_ids will be set.
However, they are not set on create, this is what this ticket addresses.
Test Plan:
1. the specs are straightforward.
2. Create a message with Conversation.
3. Use rails console and see cmp.root_account_ids are:
a. match convo.root_account_ids. (most important)
b. not nil
Change-Id: I481849db52c991cf260bf519310ba2111c7a8058
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310604
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
refs VICE-3323
flag=react_inbox
Test Plan:
- with react inbox ff turned on
- go to inbox
- open a single conversation
- nothing should break and experience should be unchanged
- to really test use the script for creating conversations
(several thousand are needed to get performance issues)
- when loading a single conversation watch rails server
- should not trigger all conversations query
Change-Id: Ibf05279a62983bb043561f7b9a425346183a67a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310591
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
Runs a robust TypeScript check before running ESLint.
Test plan:
- Make a change to a .ts/.tsx file that will cause a lint error
- Try to commit a change
- Verify that the precommit hook fails
flag=none
Change-Id: I6772041b2ae670ae9b9d654b07cbd97a80ad6896
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310371
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>