closes OUT-5350
flag=none
test Plan:
- Create three assignments
label them by order of creation to make things easier eg 1,2,3
- Create an outcome and
select Calculation Method = Most Recent Score
- Create a rubric and add that outcome to it
- Attach the rubric to the assignments in the order 1, 3, 2
- Assess the student on the rubrics in the assignments
in the order 1,2,3
- Go to the outcomes page for the assessed user
(/outcomes/users/:user_id) and click “show all artifacts”
- Note that it is calculating based on
the latest one that was assessed(assignment 3)
Change-Id: I8af8fb46690944c0ffbdea15b42be330fb000c58
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305853
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
test plan:
- enable scheduled page publication
- create a page and set a publication date that is in the past
- it should be published immediately
flag=scheduled_page_publication
fixes MAT-1143
Change-Id: Ic09fe026e26b48007cfef9d34fb915f263e74a55
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306733
Reviewed-by: Mysti Lilla <mysti@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Test plan:
- Load a gradebook with more than 50 students
- Verify that all students and submissions load
- Apply a filter to the gradebook
- Verify that rows are filtered
flag=none
Refs EVAL-1934
Change-Id: If73df07d212fd62a36d087fa28a6a82450a8fcd9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306368
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes MAT-1144
flag=none
test plan:
- in the rce, click the fullscreen button in the status bar
> expect the RCE to be fullscreen
> expect the button icon and screenreader text to change
to Exit Fullscreen
- click it
> expect the RCE to return to normal
> expect the button to return to Fullscreen icon and text
- repeat, but use the View menu
> expect Fullscreen enabled and Exit Fullscreen disabled
when the RCE is normal
> expect the inverse when the RCE is fullscreen
- on an iPhone (real or simulator)
> expect no fullscreen View menu items or status bar button
Change-Id: I9f9afc58d83afb723a8355d5a54d3e87814a691a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306743
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: David Lyons <lyons@instructure.com>
why:
* all other models that can have an lti_context_id (Course, Account,
User, Assignment) can be queried by `lti_context_id:<id>` in API calls
* allows translation from LTI ids for Groups to Canvas ids and API calls
closes INTEROP-7848
flag=none
test plan:
* in a rails console, create a Group, and call
`Lti::Asset.opaque_id_for(group)` to populate lti_context_id
* in your browser, go to canvas.docker/api/v1/groups/<group id>
* it should return the group JSON
* in your browser, go to
canvas.docker/api/v1/groups/lti_context_id:<the group's lti_context_id>
* without this commit, that should 404
* with this commit, it should return the same group JSON
Change-Id: I23eb56610d3a75482abeb72e5a477cb9b64cf921
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306513
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>
fixes MAT-980
flag=none
test plan 1:
- As a teacher, navigate to a discussion.
- Reply a thread uploading a media file.
- Save the content.
- Confirm that the media object loads.
- Unpublish or media lock the media file (course files).
- Impersonate a student.
> Verify that the media is not loaded, a lock image
should appear instead.
> Verify this with audio and video.
test plan 2:
- As a student, navigate to a discussion.
- Reply a thread uploading a media file.
- Save the content.
- Confirm that the media object loads.
- Unpublish or media lock the media file (user files).
- Impersonate another student.
> Verify that the media is not loaded, a lock image
should appear instead.
> Verify this with audio and video.
Note: Sometimes for testing this, I had to
clear the cache after impersonating to
see the correct results.
Change-Id: I65fd06de30ace27c5665c9da422432848d327185
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306178
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
why:
- According to the LTI 1.3 Spec, any time a RLID is sent to the NRPS,
the messages section "...must contain any context or resource link specific
message parameters, including any extension or custom parameters...".
- Previously, we were only including the custom parameters that were
specified on the tool but not including the custom parameters
specified on the resource link.
- This commit fixes that by simply passing along the resource link to
the Lti::ResourceLinkRequest object, which takes care of the rest.
closes INTEROP-7449
flag = none
test-plan:
- Install the LTI 1.3 Test Tool in any course with at least NRPS. Make
sure that it has some custom parameters associated with it.
permissions. I typically just give it access to everything.
- Create an assignment that's associated with the tool, making sure to
specify some additional custom parameters that aren't present in the
tool configuration.
- On the new assignment's page, note the resource link id associated
with the assignment.
- Send a request to the NRPS for that course, including the resource
link id that you just noted. The Canvas docs for the endpoint are
located here:
https://canvas.instructure.com/doc/api/names_and_role.html#method.lti/ims/names_and_roles.course_index
Note that you can do this either by obtaining a JWT from the LTI 1.3
Test Tool or just visiting lti13testtool.docker/nrps/new, typing in
the appropriate info, and letting it take care of auth for you.
- Check the response and ensure that the custom parameters for each
member returned include the custom params from both the resource link
and the tool config.
Change-Id: Ib41fe8d640f2024f03a9ee8a097a1e475cad736f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304763
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
fixes VICE-3228
flag=react_discussions_post
Test Plan:
- create a graded discussion
- add the discussion to a module
- go to the discussion with ?embed=true in the url
- should not see module buttons at the bottom of the discussion
- remove ?embed=true
- should see module buttons
Change-Id: I1c254a6a664875665985aa4db03d2eeddbb80ff3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306342
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
This looks big, but it's not as bad as you might think.
By default all INSTUI popups (Tray, Modal, Select, ...) mount
to a portal added to the bottom of the document's body. When
the RCE is in fullscreen, that mount node isn't visible, so
we have to tell INSTUI where to mount popups using the mountNode
property. There are a lot of popups in the RCE.
Similarly for tinymce, but it was easy to simply move its
mount point when in fullscreen.
The LTI modal always does a window.confirm when closing. This
kicks you out of fullscreen. We should create a blocking modal
to replace window.confirm w/in canvas and that would resolve
this annoyance.
The change to package.json is to add a missing dependency in
src/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js
Added: disable fullscreen mode on iPhones and iPads since
support there is sketchy and we don't look good
closes MAT-941
flag=none
test plan:
To test that the a11y checker works in fullscreen
you'll have to pull the latest master and copy it
into canvas' node_modules, something like
$ cp -R ../tinymce-a11y-checker/lib node_modules/tinymce-a11y-checker
$ yarn build:js
(I could not get yarn link to work)
- open the rce
- click the fullscreen button in the status bar
> expect the rce to go fullscreen
- click the fullscreen button
> expect the rce to return and be the same size as before
- repeat but be in html edit view to start
- repeat but switch views while in fullscreen
> always expect the current view to be the right size after
restoring out of fullscreen
- while in fullscreen open various trays and modals
- content tray, a11y checker, external link, etc.
> expect them to show up
note: if you choose to pick a file from the finder, opening
the finder will kick you out of fullscreen
- with lti tools installed, click on the Apps toolbar button
and open an lti tool
> expect the tool to initialize and be visible
note: when you exit the tool you'll get a window.confirm
popup which kicks you out of fullscreen.
*** MOBILE ***
- load a page with the RCE on an iPHone
> expect no fullscreen button in the status bar
- load a page with the RCE on a mobile browser
(android phone and an iPad)
- tap the fullscreen icon
> expect the RCE to fill the screen
- make the keyboard come and go, rotate the device
> expect to be able to see the status bar
- click the fullscreen button
> expect the RCE to return to normal size
EXCEPTION:
- load the RCE on an iphone (simulator works)
> expect the fullscreen button to be omitted
from the status bar (because fullscreen is
not supported on the iphone)
- load the RCE on a real iPad (the simulator
will not do)
> expect the fullscreen button to be omitted
Change-Id: I4c25dc4f06b2d0c19f44c33fa324274fd47235ed
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305819
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: David Lyons <lyons@instructure.com>
closes: DE-1483
Test Plan:
- new image starlord.inscloudgate.net/jenkins/selenium-node-chrome:107.0
- Jenkins build uses chrome 107
- No failures in Jenkins
Change-Id: I31f453d34dcfcbc71c88b3bc379380bbd17ef133
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306441
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
closes VICE-3197
flag=new_collaborations
test plan:
- Tests pass
- Go to Admin -> Site Admin -> Settings -> Feature Options
- Enable External Collaborations Tool
- Go to a course as student
- You should be able to navigate to collaborations without issue
- Go to the course as teacher
- Go to Settings -> Navigation
- Disable the Collaborations page and save.
- Go to the course as student
- Try navigating manually to /courses/[ID]/lti_collaborations
- You should see the page disabled message.
qa risk: low
Change-Id: I5cf84313fe6ffcd9e7fac1f42f0c3a101346e568
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306547
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
closes VICE-3239
flag=split_screen_view
Test Plan:
- When replying to a level 3 reply,
the parent id should be the level 2 reply
- When replying to a level 4 reply,
the parent id should be the level 1/root topic reply
Change-Id: If9485af22f59723f0c2baf8907b95e2635dbb312
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306335
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@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>
Continues the work to allow LTI tools embedded within trusted LTI tools
by allowing the content item return and deep linking return pages to be
embedded in the trusted tool (e.g. New Quizzes). These are the pages
actually send the postMessage to the embedder (Canvas usually, the
trusted tool in this case) with the returned content.
closes INTEROP-7821
Test plan:
- As in g/306179 set up LTI 1.3 test tool to embed an LTI 1.1 tool. Use
the resource_selection?...editor=1 endpoint for the inner tool. e.g.:
<iframe
src="http://web.canvas-lms.docker/courses/66/external_tools/181/resource_selection?parent_frame_context=155&editor=1"
style="width: 70%; height: 70%"></iframe>
- Launch the LTI 1.3 test tool and from the LTI embedded 1.1 tool,
choose content to return.
The external_content#success page that the iframe returns to should
load successfully and not be blocked by CSP. (It won't actually do
anything with the returned content of course because the LTI 1.3 test
tool doesn't do anything with the postMessages that return content).
Also check that window.ENV.DEEP_LINKING_POST_MESSAGE_ORIGIN is
set on that page to the LTI 1.3 test tool scheme/host/port
(right-click and inside the "Retrieving Content" iframe and inspect
element and print out window.ENV.DEEP_LINKING_POST_MESSAGE_ORIGIN in
the JS console)
Note: currently, for 1.1 tools, it seems like content-item success
code does not use postMessage to communicate with the parent window,
but relies on methods which require them to be from the same origin.
We'll need to fix this in a future commit (INTEROP-7837)
- Have the LTI 1.3 test tool embed a 1.3 tool instead, and launch the
tool. To avoid infinite recursion, you can wrap the resource_selection
iframe in a block like:
<% if params[:outer_launch] %>
<iframe ...>
<% end %>
And then launch the outer tool by adding that param to the tool launch
URL, e.g. by launching the tool by going to (e.g.)
/accounts/self/external_tools/retrieve?url=http%3A%2F%2Flti13testtool.docker%2Flaunch%3Fouter_launch%3Dtrue
That should make only the outer tool show an iframe and prevent an
LTInception shenanigans.
- Again return back deep linking content from the inner tool, which will
hit the deep linking response URL. Check that that page is shown
successfully and not blocked for CSP reasons. Check that the
the postMessage). Check that
window.ENV.DEEP_LINKING_POST_MESSAGE_ORIGIN is set on that page to the
LTI 1.3 test tool scheme/host/port.
- Change this line in
ui/features/deep_linking_response/react/DeepLinkingResponse.tsx:205:
const parentWindow = window.opener || window.top
To:
const parentWindow = window.parent
I believe we shouldn't have to change this except for testing here
because New Quizzes will open a new window (so window.opener will be
New Quizzes) but if we need to later it's easy enough.
- Launch the tools again, open dev tools, return content from the inner
tool again. You will see the LTI 1.3 test tool as received a post
message with the data returned from the inner tool!
Change-Id: Ieec18cd945d73a1d5672f9b9786943dcdb681ae5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306354
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: Evan Battaglia <ebattaglia@instructure.com>
refs INTEROP-7821
This continues work started in g/306023 to allow LTI tools to embed
within other trusted (e.g. New Quizzes) LTI tools, by adding the
parent_frame_context tool's URL in the CSP header.
This commit in particular enables embedded LTI 1.3 launches by setting
the header for the `authorize` endpoint, which for is called as the last
step in the LTI 1.3 launch process initiated by retrieve or
resource_selection.
Test plan:
- modify the LTI 1.3 test tool dev key to have internal_service=true
- in the LTI 1.3 test tool's app/views/launch/launch.html.erb add an
iframe pointing to resource_selection like this:
<iframe
src="http://web.canvas-lms.docker/courses/66/external_tools/155/resource_selection?parent_frame_context=155&editor=1"
style="width: 70%; height: 70%" ></iframe>
The parent_frame_context parameter should be your LTI 1.3 test tool
ID. The first tool ID can be any LTI 1.3 tool. If you're like me, the
only 1.3 tool I have installed locally is the test tool, so you can
use the same tool.
- Launch the LTI 1.3 test tool. Your LTI 1.3 tool should successfully
launch embedded into the test tool. If you embedded the test tool,
LTInception will have occurred and it will keep launching embedded
tools inside each other. Hit "stop" on your browser sometime before
your machine runs out of memory :D
- Change the iframe you added above to a retrieve URL, e.g.:
http://web.canvas-lms.docker/courses/66/external_tools/retrieve?url=http%3A%2F%2Flti13testtool.docker%2Flaunch&parent_frame_context=155"
Where the URL is a URL for an LTI 1.3 tool available in the course,
and 155 is your LTI 1.3 test tool ID
- Launch the tool and again observe the embedded tool / LTInception. For
some reason with retrieve, it seems to stop on its own at a 3-tool
level, but I don't think that should be a problem because we only need
a 2-tool level.
refs INTEROP-7821
Change-Id: I5356be12ee1022bd995b6e5391d06fd5294f8af1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306179
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: Evan Battaglia <ebattaglia@instructure.com>
When an assignment is deleted or restores or grades
Are posted or grades are hidden the unread_count
Should be recomputed and reassigned with the
Current unread active submissions
closes EVAL-2756
flag=assignments_2_student
flag=visibility_feedback_student_grades_page
[fsc-max-nodes=20]
[fsc-timeout=45]
Test Plan:
- Have a course with at least two students
- Have a published assignment S1 (post policy - automatically)
with a rubric
- Create another assignment S2 (post policy - manually) with a rubric
- As a student submit to both assignments
- As a teacher grade both submissions
- As a teacher, via speedgrader, click on view rubric and assess each
submission
- As a student, visit the grades page
- The badge count should be 1
- The blue dots are only visible for assignment S1
- There should be two blue dots, one on the grade and another one
on the rubric icon
- As a teacher, go to the assignments page and delete assignment S1
- As a student, visit the grades page, the badge count should be 0
- As a teacher, restore the assignment (go to courses/:id/undelete)
and rubric
- As a student, visit the grades page, the badge count should no
be 1 and a blue dot is on the rubric icon
- As a teacher go the gradebook and post the grade for assignment S2
- As a student, visit the grades page, the badge count should now
be 2 and a blue dot is present on the grade and on the rubric icon
Change-Id: I8d9c0dfa64727fe64cfe0ee96bacdc8f90089b61
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305247
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
1. remove the error alert since you’ll get one from the network failure
anyway
2. if it fails to get the canvas session, then the user pastes a file,
show an info alert saying we won’t publish yet if usage rights are
required. This will show up every time the user tries to paste in
this situation. Honesty, if we can’t get usage rights info, we
probably won’t be able to upload the file anyway, but I felt the need
to cover the condition
3. If there’s no RCS, don’t even load the fancy new paste plugin and
use the tinymce one
4. If somehow, the user is able to paste a file in the rce before the
plugin finishes fetching the canvas session, wait until that's finished.
closes MAT-1129
flag=rce_better_paste
test plan:
- with no RCS enabled (you could set a breakpoint in the RCEWrapper's
constructor and set this.props.trayProps.jwt = undefined)
> expect the RCE to fall back to the tinymce paste plugin
- you could look at tinymce.activeEditor.plugins to see paste and not
instructure_paste
- you could try copy/paste a file and see that nothing happens
- with the RCS enabled, kill your RCS and load a page with the RCE
> expect an error message about network issues
- restart the RCS
- try to paste an image
> expect an info alert about usage rights and for the paste to work
- with the RCE enabled, make the RCS session api endpoint very, very slow
- you could debug it and set a breakpoint in app/api/session.js
at the return, or
- edit sesion.js do something really really slow
- load a page with the rce
- before the getSession call completes, paste an image
> expect the paste to happen once getSession completes
Change-Id: Iccbf7a6fa06056d67ad83dfc73c5bb55e5304bdc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306327
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Joe Hernandez <joe.hernandez@instructure.com>
QA-Review: Joe Hernandez <joe.hernandez@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
fixes MAT-917
flag=none
Test plan
- Upload a very large zip and extract it into a folder
in the files interface
- When it has started importing, delete the top level folder
(The import will still complete)
- Go to the modules page and add a file module item
and verify that you can't see any of the files that your
import would've created
Change-Id: Ibcf06940ad8306a015040508166e0a2b001409c4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305351
QA-Review: Deyvison Penha <deyvison.penha@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
Migration-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
We discovered that we didn't need the Salesforce sales territory data to
determine if an account requires GDPR compliance or not. Instead, we can
use the existing billing code data plus the AWS regions.
This removes the previous dependency on Salesforce territory data, adds
the dependency on AWS region codes, and modifies specs and callsites
accordingly.
refs FOO-3253
flag=send_usage_metrics
test plan=specs pass
Change-Id: If8710ec59704eed6a5fbe8e7e007119842c47a11
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306495
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
closes OUT-5401
flag=outcome_alignment_summary
Test plan:
- Enable Improved Outcomes Management FF
- Enable Outcome Alignment Summary FF
- Go to Course > Outcomes and copy course id from URL
- Create an outcome and a rubric and align them
- Create a published assignment and align with the rubric
- Create a published graded discussion and align with the rubric
- Open in browser canvas.docker/graphiql
- Execute query below replacing course id
query MyQuery {
course (id: 1) {
outcomeAlignmentStats {
totalOutcomes
alignedOutcomes
totalAlignments
totalArtifacts
alignedArtifacts
artifactAlignments
}
}
}
- Verify that query returns the following data:
totalOutcomes: 1, alignedOutcomes: 1, totalAlignments: 3,
totalArtifacts: 2, alignedArtifacts: 2, artifactAlignments: 2
- Unpublish the assignment, rerun the query and verify that
it returns the same data
- Unpublish the graded discussion, rerun the query and verify
that it returns the same data
Change-Id: I72df933b94844e80925c8ad865ee95b67fd528e1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305943
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
refs OUT-5416
flag=outcome_service_results_to_canvas
Test Plan
- Test pass. We will test if this resolves user issue in beta
Change-Id: I4ccbc638010fb3667f70e2edd3d764788c732e7a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306341
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Test plan:
- Existing tests should pass
flag=none
Refs EVAL-1934
Change-Id: Icff61b7c377029d649bdb62e3d967d465e3e08f8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306177
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
flag=none
closes EVAL-2740
Test Plan:
- Create an assignment set up with anonymous peer reviews
- Attach a rubric to the assignment
- Assign peer reviews between students
- Act as a student to be reviewed and submit
- Act as that student’s assigned reviewer fill out the rubric
- Act as the teacher and fill out the rubric for the submission
- Act as the original student and view the submission,
open DevTools, and use the ENV.rubricAssessments and ensure
the assessor is available for the teacher's assessment, but is nil
for the peer's assessment
Change-Id: Ifdedff5939d4243307bb857d94d9460ce85368dc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305858
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
This lets the retrieve and resource_selection endpoints embed inside
an iframe inside of New Quizzes.
closes INTEROP-7752
closes INTEROP-7742
Test plan:
- if you have New Quizzes set up, and they are embedding tools from
within their tool, you might be able to test with that. Otherwise, you
can test with LTI 1.3 test tool as mentioned below.
- modify the LTI 1.3 test tool dev key to have internal_service=true
- in the LTI 1.3 test tool's app/views/launch/launch.html.erb add an
iframe pointing to resource_selection like this:
<iframe
src="http://web.canvas-lms.docker/courses/66/external_tools/181/resource_selection?parent_frame_context=155&editor=1"
style="width: 600px; height: 400px" ></iframe>
The parent_frame_context parameter should be your LTI 1.3 test tool
ID. The first tool ID can be any LTI 1.1 tool (LTI 1.3 currently needs
an additional change -- to the LTI 1.3 'authorize' endpoint -- to
work)
- Launch the LTI 1.3 tool. Your LTI 1.1 tool should successfully launch
- Change the iframe you added above to a retrieve URL, e.g.:
http://web.canvas-lms.docker/courses/66/external_tools/retrieve?url=http%3A%2F%2Fmylti1tool.example.com%2F&parent_frame_context=155"
- Where the URL is a URL for an LTI 1.1 tool available in the course,
and 155 is your LTI 1.3 test tool ID
Change-Id: Ie27c030bbd95b85af60e391c14bf6c52aad087be
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306023
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: Evan Battaglia <ebattaglia@instructure.com>
Pace duration input values are stored in AssignmentRow's local state to
allow debouncing changes before committing to the app's redux state.
When clicking 'Reset All', the onResetPace action resets the durations
in the redux state, but the AssignmentRow local state needs to also be
recondiled in order for the input values to reset.
fixes LS-3627
flag = none
Test plan:
- Open a published pace
- Change one of the durations
- Click "1 unpublished change", then "Reset all", then confirm
- Expect the input's value to revert to the previous duration
Change-Id: Ib37f218d35a6643fa84df0dd2ce29b5b15750fec
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306250
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes LS-3615
flag = course_paces_redesign
Test plan: ensure copy in Course Pacing matches the copy doc
Change-Id: I31eeab081c47353689d39e684a27f680a252df5b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306170
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Exclusion: As the AC for this ticket states, this only works in redesign
flag = react_inbox
fixes VICE-3210
Test Plan
1. Create/have a course with a student,Teacher, and an observer
2. Make sure each user in the course has a "registered" workflow_state
3. soft_conclude the course
3a. Go to course settings
3b. set participation to course
3c. restrict students form viewing course past and future
3d. set the start and end date to a time in the past
3e. Save
4. an observer, student, and teacher try to send a message
4a. Make sure that the soft-concluded course is the course context
5. an error should appear for each user
Change-Id: Ic8f7279deb1d82282c241752adb5de691371c3ed
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306251
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>
closes: INTEROP-7744
flag=none
test plan:
- Add this to ui/shared/tinymce-external-tools/react/components/ExternalToolDialog.js (after line 180)
`<input type="hidden" name="parent_frame_context" value="{id of tool}" />`
- add a debugger statement to ui/features/external_content_success/index.js just before line 64
- Launch a 1.1 tool from RCE
- choose "return link content item to Canvas"
- when the debugger stops in the browser inspect the window of the frame, and `window.ENV.DEEP_LINKING_POST_MESSAGE_ORIGIN` should be the origin of the tool
Change-Id: Ifd281c75b259c5617cb3275f928e179ae091ae98
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/306014
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Paul Gray <paul.gray@instructure.com>
fixes VICE-3246
flag=react_inbox
Exclusion: Reply in threads with hard deleted users is broken
Will get fixed in VICE-3251
Test Plan
1. Create a user
2. Create a conversation with that user
3. Reply with a different user
4. Hard Delete the user
4a. Hard delete script will be placed below
5. Open the inbox with the user that recieved the message
6. Verify that no errors are thrown and that messages are visible
Hard delete:
userToDelete = User.find(ID)
userToDeleteId = userToDelete.id
CommunicationChannel.where(user_id:userToDeleteId).map {|mem| mem.destroy_permanently!}
Enrollment.where(user_id:userToDeleteId).map do |enrollment|
Score.where(enrollment_id:enrollment.id).map { |participant| participant.destroy_permanently! }
enrollment.destroy_permanently!
end
Pseudonym.where(user_id:userToDeleteId).map { |participant| participant.destroy_permanently! }
Submission.where(user_id:userToDeleteId).map { |participant| participant.destroy! }
UserAccountAssociation.where(user_id:userToDeleteId).map { |participant| participant.destroy_permanently! }
UserNote.where(user_id:userToDeleteId).map { |participant| participant.destroy_permanently! }
userToDelete.destroy_permanently!
Change-Id: Ia42cccb580f26de0579e510749ada1f539220637
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305937
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
fixes FOO-3217
flag = none
test plan:
• create a user with at least 1000+ submissions
• create an eportfolio as that user
• create several eportoflio sections
• verify page load times are sub 1 second when navigating
those sections (I was shooting for ~ 500ms)
• verify adding recent assignment submissions works as it
did before (we now only query the last 20 most recent and
active user submissions)
Change-Id: Iaeddc766864449c9186a3e9fb595bf910da3f0e1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305910
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
With the split screen ff on, you will be able to
use the SplitScreen button, to toggle the user preference.
Thereby, you can toggle between
inline or switch screen view.
If the user mutation fails, it will still toggle
the view, just no db change.
flag=split_screen_view
fixes VICE-3116
Test Plan:
Setup:
0a. Start with user preference ss off.
0b. Go to a Discussion.
0c. Have 1 root entry and one sub entry on it.
Plan:
1. Verify you see SS button.
2. Click View replies on entry.
3. Verify it's inline.
4. Click SS button.
5. SS button Text should change.
6. inline should close.
7. click view replies on entry.
8. SS should open and you can see replies.
9. click SS button.
10. SS button Text should change.
11. Inline should be active.
12. Check that if you change to SS mode,
then page refresh that it persists.
13. Test with multiple open root entries,
that after clicking SS button, they all close.
14. If SS ff is off, SS button should not show.
Notes:
Test plan assumes SS preference is initially off.
This did not need to be the case, the Testing would just
be in reverse.
Change-Id: Ica846e922a4549022f72872e22173164cd4d4b8e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305857
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
fix issue where when assignment enhancements flag
is on, when trying to print grades from student
grade page, it shows the speed grader url
fixes EVAL-2679
flag=assignments_2_student
test plan:
- have a course with a text assignment that is due
- with assignments_2_student flag on, navigate to
individual student grade page as a teacher
- for the text assignment, verify the url of the
assignment title navigates to speed grader page
- from the student grade page, right click and go
to print the page
- verify in the pdf preview that the url for the
assignment doesn't exist
- before the fix, the url would be displayed
Change-Id: I1bd3e059cc7f73dab932ecc2d32e3d58bb654d73
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305548
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
closes MAT-919
flag=none
Test plan
- Upload a zip file with a LOT of files/folders
and expand it into a folder
- Delete the folder you expanded it into and
verify it takes less time (and SQL queries)
than the previous version of this code
- Verify that single file deletion
works as expected
- Check caching and make sure nothing looks
weird like the cache should've cleared and
didn't
Change-Id: I6798dbaf95018f967c68c5b409a1f2c64c5e5004
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305353
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: Mysti Lilla <mysti@instructure.com>
Test plan:
- Open gradebook settings and enable final grade override
- Open gradebook and verify that final grade override is visible
- Override final grade for a student
- Open gradebook settings and disable final grade override
- Verify that final grade override is not visible
Refs EVAL-1934
flag=none
Change-Id: If3a5c26275c4d237fbccf8b924e49025b795f06e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305599
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: Cameron Ray <cameron.ray@instructure.com>
closes OUT-5381
flag=outcome_alignment_summary
Test plan:
- Enable Improved Outcomes Management FF
- Enable Outcome Alignment Summary FF
- Go to Course > Outcomes and get course id from URL
- Open devtools > network tab
- Create an outcome then retrieve its id from the
graphql query response in network tab
- Create a question bank and align it with the outcome
- Open in browser canvas.docker/graphiql
- Execute query below replacing outcome and course ids
query MyQuery {
learningOutcome(id: "1") {
alignments(contextId: "2", contextType: "Course") {
title
}
}
}
- Verify that the alignment title is the question bank name
- Go to http://canvas.docker/courses/{id}/question_banks,
replace id with course id, select the question bank and
update its name
- Rerun query and verify that alignment title is
the updated question bank name
Change-Id: Ic192bd0d32abbd35e7bdaaa669451f40e01fcbcc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
closes OUT-5313
flag=none
Test Plan:
- You will need Canvas and Live Events up and running
- Tail the logs in Canvas:
docker-compose run --rm web script/tail_kinesis
http://kinesis.docker canvas-live-events
- Go to canvas.docker/api/v1/accounts/self and note the
uuid listed. This is your account uuid
- Create a course and make sure it is under the correct
account
- Observe in the Canvas logs that the
course_created live event includes the
account_uuid, and that it matches the account uuid
- Edit the course (i.e., edit the course name)
- Observe in the Canvas logs that the
course_updated live event includes the
account_uuid, and that it matches the account uuid
Change-Id: I9c16456284ff333b21a66af31db8372f4ec2abf8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305829
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
closes EVAL-2751
flag=assignments_2_student
flag=peer_reviews_for_a2
test plan:
- enable the FF "Assignment Enhancements - Student".
- enable the FF "Peer Review Support in Assignment
Enhancements".
- have a published course.
- have a course with a teacher and 2 students (S1
and S2).
- create an assignment A1 with "Peer Reviews"
enabled and the "Peer Reviews Appear Anonymously"
disabled.
- create an assignment A2 with "Peer Reviews"
enabled and the "Peer Reviews Appear Anonymously"
enabled.
- assign some peer reviews to the students for
both assignments.
with anonymous PR disabled
- as the student S1 create a submission
for the assignment A1.
- notice a modal is present just after hitting
the submit button.
- check that the number of peer reviews to complete
in the modal should match with the number of
peer reviews associated to the assignment.
- check that the number of available peer reviews
is zero and the "Peer Review" button is disabled.
- as the student S2 create a submission for the
assignment A1.
- as the student S1 create a new submission for
the assignment A1.
- notice a modal is present just after hitting
the submit button.
- check that the number of available peer reviews
is one and the "Peer Review" button is enabled.
- check that clicking the "Peer Review" button
redirects you to the available submission
to review.
with anonymous PR enabled
- as the student S1 create a submission
for the assignment A2.
- notice a modal is present just after hitting
the submit button.
- check that the number of peer reviews to complete
in the modal should match with the number of
peer reviews associated to the assignment.
- check that the number of available peer reviews
is zero and the "Peer Review" button is disabled.
- as the student S2 create a submission for the
assignment A2.
- as the student S1 create a new submission for
the assignment A2.
- notice a modal is present just after hitting
the submit button.
- check that the number of available peer reviews
is one and the "Peer Review" button is enabled.
- check that clicking the "Peer Review" button
redirects you to the available submission
to review.
Change-Id: I4bf6be9c499484d225d7d91c90b11695f7a58bc3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305174
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: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
-----------------------------------------------------------------------
This PS reimplements "wait_for_ajax_requests" and "wait_for_animations"
The changes mitigate some corner case failure scenarios and removes
the dependency of these methods on the in-browser events. The new
implementation relies on iterative polling of the browser for state
changes.
Method "wait_for_animations" is now waiting for all JQuery animations
to complete and rises exception if not all are done.
The poll-waiting iteration controll and timeout choice is delegated
to a new module CustomWaitMethods::Poller. The logic recognizes
when a test is being re-run and increases the timeout. This allows
failures due to overloaded environment to pass during the rerun.
This also enables tests, which caught degraded performance to still
complete their functionality validation role on the rerun.
Framework method "move_mouse_to_known_position" was disabled as it
was found to cause long running JQuery animations, resulting in
test stability issues.
Test results summary page was updated to highlight the tests falied
due to timeouts waiting for AJAX requests or IQuery animation.
(see build/new-jenkins/library/vars/rspecStage.groovy)
fixes DE-1442
flag=none
test plan:
- Trigger multiple Jenkins test runs and check for method failures
Change-Id: I456dfcb5e290e6f53b1cafb217726aa4ff47d83d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304610
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Danail Kozhuharov <danail.kozhuharov@instructure.com>
Product-Review: Danail Kozhuharov <danail.kozhuharov@instructure.com>
Fixes MAT-1054
flag=none
Test Plan:
-Open Icon Maker Tray
-Click on something off tray
>If you made changes, a prompt is shown. Otherwise tray closes.
>If clicking cancel, only one alert thrown
-Open Icon Maker Tray
-Click Add Image dropdown
-Select an option
>Verify tray does not throw "unsaved changes" closing dialog
-Add Icon to RCE
-Click Icon and edit
-Click icon again, and re open the edit tray
>Name, and also no other fields, is not greyed out but editable as normal.
Change-Id: I22a9a56b140e3a3f28e47a2c22c94e4b309e7a5e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305179
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: David Lyons <lyons@instructure.com>
refs FOO-3212
flag=send_usage_metrics
test plan: the specs pass
Change-Id: Id6e3ec7b077a642c0680edd82ed0a27bc72cc1ae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305836
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Perry <jason.perry@instructure.com>
QA-Review: Sean Scally <sean.scally@instructure.com>
Product-Review: Sean Scally <sean.scally@instructure.com>
test plan:
- have a blueprint course set up with some locked items
- in a course that has no student enrollments and isn't
already linked to a blueprint, go to "Import Content",
select "Copy a Canvas Course", and search for the blueprint
course or choose it from the dropdown (try both ways;
if the dropdown doesn't appear you need to be a user
who has < 100 manageable courses)
- the "Import Blueprint Settings" checkbox should appear.
- check it.
- press the Import button
- the destination course should be configued as a blueprint
and have the same items locked
- repeat the prior steps, but search for a course that isn't
a blueprint course.
- the "Import Blueprint Settings" checkbox should not appear.
- in a course with student enrollments, ensure the "Import
Blueprint Course settings" checkbox is not present on
the Import Content page even if the source course is
a blueprint course (because the destination course is not
eligible to be made into one)
flag=copy_blueprint_settings
refs LS-3574
Change-Id: I1280deeb04882b0b8550c4e270af09b6370b7ceb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305413
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: Jeremy Stanley <jeremy@instructure.com>
closes INTEROP-7743
flag=NONE
refs INTEROP-7703
why: This is a small part of adding support for launching LTI tools from
Canvas in New Quizzes. parent_frame_context will facilitate Canvas
allowing window.postMessage messages from internal tools framed within
Canvas itself.
test plan: Make a call to the resource_selection endpoint, including a
parent_frame_context parameter and make sure that for 1.1 content item
launches, the content_item_return_url includes this parameter, and for
1.3 launches, the deep_link_return_url includes this parameter.
Change-Id: I97de211e6b98338e8880482b260cb3e53b3e4046
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305661
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: Paul Gray <paul.gray@instructure.com>
closes: INTEROP-7745
tests:
first you will need this cherry-pick:
git fetch https://steve.mcgee@gerrit.instructure.com/a/canvas-lms refs/changes/61/305661/5 && git cherry-pick FETCH_HEAD
then:
- Add this to ui/shared/tinymce-external-tools/react/components/ExternalToolDialog.js (after line 180)
`<input type="hidden" name="parent_frame_context" value="{id of tool}" />`
- Launch the tool from RCE, and when you send back a content item from the tool, inspect the window of the frame, and `window.ENV.DEEP_LINKING_POST_MESSAGE_ORIGIN` should be the domain of the tool
(also note that the deep linking will appear broken, or stuck "retrieving content items", this indicates the patchset is working)
Change-Id: If605b3c4350f702a37372bce7cea1c0115d30eb1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305843
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=none
closes EVAL-2728
Test plan:
- Create an assignment as an Online Text Entry
- Enable peer reviews
- Save assignment
- Go to `/assignments/#{id}/peer_reviews`
- Should load
- Set assignment submission type to External Tool. Do not change peer review settings
- Reload `/assignments/#{id}/peer_reviews`
- Should not show peer reviews
- `a = Assignment.find(#{id})`
- `a.peer_reviews === false && a.external_tool? === true`
Change-Id: I99cb931431bf1821c38161f3f3524cd1284ef072
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305615
Product-Review: Cameron Ray <cameron.ray@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
As a nice side effect, refactored some file upload logic.
This only improves paste via meta-V or context-menu-paste
where the browser interacts with the clipboard and fires
a paste event. It does not change the Edit->Paste menu item,
which is still implemented by tinymce and does nothing.
closes MAT-1089
flag=rce_better_paste
test plan:
- with the the rce_better_paste flag on (it's on by default)
In a class with the file copyright required setting not set:
in the RCE:
- view an image somewhere and copy it to the clibpoard
- paste into the RCE
> expect a placeholder the size of the image
(it helps to copy a small image)
> expect the file to upload
> expect the image to appear in the RCE
- copy an image file from the finder
- paste into the RCE
> expect a placeholder the size of the image
> expect the file to upload
> expect the image to appear in the RCE
- copy a non-image file from the finder
- paste
> expect a link-sized placeholder
> expect the upload
> expect a link to the file to appear
- copy a video or audio file from the finder
- paste
> expect the media-size placeholder
> expect the upload
> expect the video to appear
- from the finder, drag and drop a file onto the rce
(image, doc, and media)
> expect all the good stuff to happen
- copy and paste some html
> expect it to look in the RCE like it did where it was
copied from
- copy and paste some plain text
> expect it to be in the RCE
- copy some stuff from one rce into another
> expect it to work too
In a class with the file copyright required setting set:
in the RCE
- paste or dnd a file into the RCE
> expect the Upload modal with the Usage Rights (required)
section.
- click Close and expect nothing to have happened
- repeat, but select a usage right and click Submit
> expect the file to be inserted into he RCE
in the RCE
- try pasting from the Edit menu
> expect a tinymce message saying you can't do that
- turn off the site admin flag rce_better_paste
> expect copy paste to work like it did before
Change-Id: I87ce6ee36eeb6fd5bc19049b6b5580b97eb0fee7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304485
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Yona Appletree <yona.appletree@instructure.com>
QA-Review: Yona Appletree <yona.appletree@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
why:
* internal LTI tools can key off the Canvas feature flag
refs INTEROP-7810
flag=none
test plan:
* with the flag off
* update an existing ContextExternalTool in a rails console, or install
a new tool with this variable expansion:
`metrics=$com.instructure.Account.usage_metrics_enabled`
* launch the tool
* that custom variable should have expanded to `false`
* enable the flag with
`Account.site_admin.enable_feature! :send_usage_metrics`
* launch the tool again (may require a rails cache clear)
* that custom variable should have expanded to `true`
Change-Id: I80b62acec34eeefc0be3bde30bee8e1f341b5e26
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305701
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
fixes MAT-967
flag=none
test plan:
*pre-req: have an unexpired auth token that you
can use to make API requests
*have a page assigned to be the front page
-make an api request to create a new page:
1. endpoint: http://canvas.docker/api/v1/courses/:course_id/pages
2. type: POST
3. param 1: title = the title of your existing front page
4. param 2: published = false
5. param 3: front_page = false
>observe that this succeeds and creates a new page with
the same name as the front page (with version suffix)
-you also may want to try making a page with the same name
as the front page in the browser and confirm it succeeds
Change-Id: Id5ce34eddc8bd51301825d4be9831d777beaa2e3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305834
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: David Lyons <lyons@instructure.com>
The problem with duplicate indent icon was already fixed before,
this PS made a refectoring to clean up it and preserve the same
design between all icons (by default started with a arrow).
fixes MAT-1044
flag=none
Test plan:
-Change the user settings language for non-English users
-Open up a page/task/quizes with an RCE
> Expect:
-Should have only one indent icon button(indent).
Change-Id: Id14aedef770c58287e13633caee0632b03020110
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305579
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: David Lyons <lyons@instructure.com>
Moved two tests from another spec to put in this search and sort spec
and added two more.
Closes LS-3599
Test Plan: Passes Jenkins
Change-Id: Ie0476503f994c1b0a4bae0e369f967f56dd49492
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305653
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>
test plan:
- you can restart a migration that ended with issues in
the rails console with
ContentMigration.find(...).queue_migration
and the reported issues will not accumulate
refs LS-3594
Change-Id: Ib631e37eb8075bc2c8c026f1cb442a52823f71c7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304244
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: Jeremy Stanley <jeremy@instructure.com>
refs MAT-866
flag=none
test plan
- Create a text assignment
- As a student, create a submission for the assignment
- Insert or upload a user image
- Go to the HTML editor and change the image's URL to be absolute
using the domain of your Canvas instance
- Submit your assignment
- In a Rails console, inspect `Submission.last.body`
* Expect the image's URL to be relative
Change-Id: I5bf57e8336c8674420606e7a0fb7adaec5e41e14
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304750
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: Jon Scheiding <jon.scheiding@instructure.com>
closes VICE-3223
flag=split_screen_view
Test Plan
1. Create a reply on a 3rd level reply
2. Verify that the correct @mention is created
Change-Id: I738a9855eefcd15f96e1c14f94e0856b3e48dc43
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305415
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-3223
flag=split_screen_view
Exclusion:
@mentions will be added in the last ticket
Quoting on the 3rd + levels will not work correctly
Quoting will be fixed in VICE-3243
Test Plan
1. have split-screen ff on
2. Create 4 replies
3. Reply to discussion topic
3a. Should create a level 1 reply ( parent is topic )
4. reply to the level 1 reply you jsut created
4a. Should create a level 2 reply ( parent is level 1 reply )
5. Reply to the level 2 reply
5a. should create a level 3 reply ( parent is level 2 reply )
6. Reply to the level 3 reply
6a. Should create another level 3 reply ( parent is level 2 reply )
6b. Verify that a warning appeared when you were creating the reply
7. Create a 4th level reply using the console
DiscussionEntry.create!(
message: "4th level reply",
discussion_topic_id: @third_reply.discussion_topic_id,
user_id: @third_reply.user_id,
root_entry_id: @third_reply.id,
parent_id: @third_reply.id
)
8. Reply to the level 4 reply
8a. Should create another level 2 reply ( parent is the level 1 reply )
8b. Verify that a warning appeared when you were creating the reply
Change-Id: I84c2596cc8c4d53f00fe9327e4bc38cce4b72e59
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305079
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: Drake Harper <drake.harper@instructure.com>
refs OUT-5385
flag=none
Test Plan:
- In a course, create an outcome
- Create a question bank with at least 1 question and
align the outcome to this question bank
- Create two quizzes that both use the question from
the question bank
- Act as a student and take both of these quizzes
- In rails, check that the student has two LORs
associated with this outcome where both are
workflow_state = 'active'
Change-Id: I568e4f0acb258df1d6ca98c20a638ddd9cf05ac7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305484
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
closes OUT-5382
flag=outcome_alignment_summary
Test plan:
- Enable Improved Outcomes Management FF
- Enable Outcome Alignment Summary FF
- Go to Course > Outcomes and copy course id from URL
- Create an outcome and an assignment
- Create a question bank with 2 questions and
align it with the outcome
- Create a classic quiz with two questions from
the aligned question bank
- Open in browser canvas.docker/graphiql
- Execute query below replacing course id
query MyQuery {
course (id: 1) {
outcomeAlignmentStats {
totalOutcomes
alignedOutcomes
totalAlignments
totalArtifacts
alignedArtifacts
artifactAlignments
}
}
}
- Verify that query returns the following data:
totalOutcomes: 1, alignedOutcomes: 1, totalAlignments: 3,
totalArtifacts: 2, alignedArtifacts: 1, artifactAlignments: 2
- Delete the quiz, rerun the query and verify that it returns:
totalOutcomes: 1, alignedOutcomes: 1, totalAlignments: 3,
totalArtifacts: 1, alignedArtifacts: 0, artifactAlignments: 0
Change-Id: I8f3a14c119e427ed770e26e8d5bc322e3ca7f1fa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304974
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
closes OUT-5359
flag=none
Test Plan:
- You will need Canvas and Live Events up and running
- Tail the logs in Canvas and OS:
docker-compose run --rm web script/tail_kinesis
http://kinesis.docker canvas-live-events
- Go to canvas.docker/api/v1/accounts/self and note the
uuid listed. This is your account uuid
- Go to Account > Outcomes and create an outcome
- Observe in the Canvas logs that the
learning_outcome_created live event includes the
context_uuid, and that it matches the account uuid
- Edit the outcome
- Observe in the Canvas logs that the
learning_outcome_updated live event includes the
context_uuid, and that it matches the account uuid
- Go to Course > Outcomes (note the course id)
- Go to canvas.docker/api/v1/courses/COURSE_ID and note the
uuid listed. This is your course uuid
- Return to Course > Outcomes and create an outcome
- Observe in the Canvas logs that the
learning_outcome_created live event includes the
context_uuid, and that it matches the course uuid
- Edit the outcome
- Observe in the Canvas logs that the
learning_outcome_updated live event includes the
context_uuid, and that it matches the course uuid
Change-Id: I034542e1f0730ea384e54f10a3fbf6af6ff86b49
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304041
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
This PS updates the following created/updated live events:
- learning_outcome_results
- learning_outcome_link
- learning_outcome_friendly_description
closes OUT-5364
flag=outcomes_friendly_description
Test Plan:
- You will need Canvas and Live Events up and running
- Tail the logs in Canvas:
docker-compose run --rm web script/tail_kinesis
http://kinesis.docker canvas-live-events
- Go to canvas.docker/api/v1/accounts/self and note the
uuid listed. This is your account uuid
- Go to Account > Outcomes and create an account-level
outcome
- Observe in the logs the learning_outcome_link_created
live event includes the learning_outcome_context_uuid that
matches the account uuid
- Delete the outcome
- Observe in the logs the learning_outcome_link_updated
live event includes the learning_outcome_context_uuid that
matches the account uuid
- Create another account-level outcome with a friendly
description
- Observe the outcome_friendly_description_created live
event includes the learning_outcome_context_uuid that
matches the account uuid
- Edit the friendly description
- Observe the outcome_friendly_description_updated live
event includes the learning_outcome_context_uuid that
matches the account uuid
- Create a course with a student
- Go to canvas.docker/api/v1/courses/COURSE_ID and note the
uuid listed. This is your course uuid
- Go to Course > Outcomes and create a course-level outcome
and import the account-level outcome you created
- Observe in the logs the learning_outcome_link_created
live event includes the learning_outcome_context_uuid that
matches the account uuid
- Move the account-level outcome to a different outcome
group in the course
- Observe in the logs the learning_outcome_link_updated
live event includes the learning_outcome_context_uuid that
matches the account uuid
- Create a NQ and align both outcomes to it
- Act as the student and take the quiz
- Observe the learning_outcome_result_created live
events includes the learning_outcome_context_uuid that
match the account and course uuid
- Stop acting as the student and use SpreedGrader to change
the result
- Observe the learning_outcome_result_udpated live
events includes the learning_outcome_context_uuid that
match the account and course uuid
Change-Id: I9ee607efd820b3b6e82110bf7368b6b43eeec5cb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304207
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Some of this work was already completed in FOO-3140. This verifies API
partity and updates the API documentation.
fixes FOO-3210
flag=none
test plan:
- Setup user with a unique integration ID
- Search for the user via API by integration ID , and expect to find it.
Change-Id: I23da17b32424432a4c7cdc3447c212eea8f0a9d4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305595
Reviewed-by: Charley Kline <ckline@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>
The #new endpoint was mistakenly creating pace items
for module items with no assignments attached. This adds
a guard clause that is present in the #index method, which
was used similarly before the redesign
fixes LS-3614
flag=course_paces_redesign
test plan:
- Create a course with a course pace enabled
- Create a module for that course
- Add an assignment and a page to the module
- Go to create a default pace and check that
only the assignment module item shows up
and not the page.
Change-Id: I43726823a39ef1fdede3bbf90dd5b9ba6854084d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305588
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>
closes EVAL-2727
flag=new_quizzes_grade_by_question_in_speedgrader
Test Plan:
1. Enable the 'Single Quizzes.Next Session in SpeedGrader'
and 'Quizzes.Next Grade by Question in SpeedGrader'
SiteAdmin feature flags (they should both be enabled by
default in development environments).
2. Create a Quizzes.Next Quiz and submit to it as a student.
3. Go to SpeedGrader for that quiz + student. Open your browser
dev tools and put a debugger in the first line of the
changeQuizSessionResponseHandler function in
node_modules/@instructure/quiz-pages/es/Grading/presenter.js.
4. Open the SpeedGrader Options menu. Check the box next to
"Grade by question" and click "Save Settings". Verify your
debugger is hit and the messageData looks like:
{
subject: 'canvas.speedGraderGradeByQuestionChange',
enabled: true
}
5. Open the SpeedGrader Options menu again. Don't make any changes
and click "Save Settings". Verify the debugger does not get hit
with a 'canvas.speedGraderGradeByQuestionChange' message.
6. Open the SpeedGrader Options menu. Uncheck the box next to
"Grade by question" and click "Save Settings". Verify your
debugger is hit and the messageData looks like:
{
subject: 'canvas.speedGraderGradeByQuestionChange',
enabled: false
}
Change-Id: I2cc88616c6994359626356e649579f99a12de51f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304316
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
closes EVAL-2726
flag=new_quizzes_grade_by_question_in_speedgrader
Test Plan:
1. Enable the SiteAdmin feature flag
"Quizzes.Next Grade by Question in SpeedGrader".
2. Create a Quizzes.Next quiz, submit as a student, and
go to SpeedGrader as the teacher.
3. Verify that the iframe URL that Quizzes.Next launches
with includes a `grade_by_question_enabled` query param.
Change-Id: I7f3ca092e4a030069b5f2c65026d6b0ee3287287
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304222
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
All of these tests have been replicated from existing tests and updated
to work with the feature flags for the redesign turned on.
Closes LS-3600
Test Plan: passes Jenkins
Change-Id: Iac7dab0d204ea7d549362f0f914814a3e1166907
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305511
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
The `#new` endpoint is used to either fetch the pace for the given
context or instantiate one if needed. There is a database index ensuring
there is only ever one "active" pace for any given context. However, that
database index does not ensure there are multiple unpublished paces for
any given context. Therefore, there could be a possibility where there
could be a published and unpublished pace for any given context.
This could cause the error referenced in this patchset because of the way
`#take` works. It selects the first N records without any implied order.
If a context had an unpublished and published pace when the API call for
`#new` came in it had the possibility to return the unpublished pace.
If that unpublished pace was used to try and publish it would throw an
error because we can't have two published paces for the same context.
Querying first for any published pace followed by a query for unpublished
ensures that a published pace is returned if one exists.
fixes LS-3610
flag=course_paces
test plan:
- Have a published course pace
- In the rails console, create more pace plans for that course with a
workflow state of "unpublished"
- When editing the course pace in the modal, verify the id of the object
returned is the published course pace
- Open the modal a few times to verify that the published pace is the
only one ever returned
Change-Id: I3f768f9af66f8ac35fc14bb348d365af6af04e30
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305438
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>
flag=react_discussions_post
fixes VICE-3211
test plan:
- visit a discussion with replies
- manually mark at least 1 discussion as unread
- for ease of testing set ENV.per_page to 1
- change filter to Unread
- change it back to All
- go to page 2
- while in page 2, change filter to unread
- verify that in Unread, you are sent
back to page 1
Change-Id: I372b0943c1cd64ec4dde49e6bd4d7b0211f96f3b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305589
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: Jason Gillett <jason.gillett@instructure.com>
The "locked: content" message if a course pace
was blueprint locked was showing in the landing
page rather than the full-modal. That also caused
duplication of that message for each full-modal load.
This solves the above issue and moves the info alert
to inside the modal pacing modal.
fixes LS-3613
flag=course_paces_redesign
test plan:
- Set up a blueprint course w pacing ON
- Set up an association with a minion course
- Create and lock a course pace in the blueprint
- Sync that lock and go to the minion course
- Check that the locked: content message is
not shown in the landing page any longer
- Open the modal and check that the lock
message is there now.
Change-Id: Iaad3cac7b83ec727ceab57833d7722dcd8fcb21e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305567
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
Note: I made an initial attempt at this with d6b1ceb but had to
revert in e7bc3d4 because it failed a ton of postmerge specs that
didn't get run pre-merge. Those specs failed because the inital
commit delayed extending the dialog object until translation files
were imported; the slight delay created a race condition where
sometimes a consumer of the dialog would run before the dialog
extension code actually ran.
This commit takes a different approach by leaving the dialog
extension code alone and setting the closeText for all canvas
dialogs in a ui initializer. The advantage here is that we can use
the canvas i18n engine and don't have to sketchily import the
'Close' string from packages/translations.
Changing the text from close -> Close also required a few seemingly
unrelated spec updates.
flag = none
closes LS-3553
[skip-crystalball]
Test plan:
- Switch user's language
- Go to modules, click Add module
- Inspect the close 'x' button
- Expect the screenreader text to be the translated version of
'Close'
Change-Id: Ib57ed20bbc73320a84f6679cd59ca4a5a74d92a4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305433
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: Jackson Howe <jackson.howe@instructure.com>
This adds a feature flag hook to only make the feature flag
visible/work in the US when activated by SiteAdmin.
closes CAS-1035
flag=docviewer_enable_iwork_files
Change-Id: Id18cfbed61104cbf50777600e90520071f5fe150
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304747
Reviewed-by: Sean Scally <sean.scally@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
When the feature flag is on, this change will add the iwork files as
valid mime_type and submission_mime_types for Docviewer/Canvadocs.
closes CAS-1032
flag=docviewer_enable_iwork_files
test plan:
- Have Canvas setup with Docviewer and Docviewer new enough to support
iwork files
- Homework submissions
- Have a course with an assignment that takes file submissions
- Upload an iwork file as homework
- Ensure the file is set to docviewer and processed by docviewer
- Other files
- Upload an iwork file to the user files section
- Ensure the file is sent to docviewer for conversion
- View the file as a pdf
Change-Id: Icc29c4585108aa9fcf719ed69529a50cba8cd483
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304380
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Reviewed-by: Alex Slaughter <aslaughter@instructure.com>
Reviewed-by: Augusto Barreira <augusto.barreira@instructure.com>
Product-Review: Augusto Barreira <augusto.barreira@instructure.com>
When saving account settings, check if the values that are being set are
the same as the values it would inherit and if they are, clear them from
the account settings hash.
fixes FOO-3016
flag=none
test plan:
- create account and subaccount
- save subaccount settings (this will clear the settings hash)
- update an inheritable setting in parent account
- subaccount should inherit setting from parent account
Change-Id: I727923b11666368d83d348a70a867803c93e815f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302559
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Ajmal Esa <ajmal.esa@instructure.com>
Product-Review: Ajmal Esa <ajmal.esa@instructure.com>
prevent decimal ignore rules from being added to
assignment_groups
Test plan:
- As a teacher
- In the Assignment Groups edit modal
- Enter a non-integer value to 'Lowest Scores'
- Click save
- Should show error
- Enter a non-integer value to 'Highest Scores'
- Should show error
Refs EVAL-2720
flag=none
Change-Id: I51b86da6c0692231c1d7a6f28dbdeaf1dd1aac5f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304051
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Migration-Review: Isaac Moore <isaac.moore@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
For isolated view the only way to reply within a thread
is to make a quote
Change-Id: Ia5fbe0176e01c7c186c6407c45df5ceee6b93d62
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305510
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>
These tests make sure that the inline thread quoting and replying flow
Works correctly.
Change-Id: I49c2301b3a1bf20a37e441180fef8d738bb2ff21
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305502
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>
closes VICE-3115
closes VICE-3231
flag=split_screen_view
Test Plan:
1) Specs pass;
2) Enable Splitscreen FF.
3) Go to a discussion.
4) Toggle Splitscreen Button.
5) refresh page and change should persist.
6) You can repeat for reversing.
7) Matches design.
7a) We dont have the icons yet, so we have to save that for
another ticket.
Change-Id: Iff63fd42b5cb962030882ec26e7c3241d74ccf98
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305360
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Drake Harper <drake.harper@instructure.com>
Product-Review: Drake Harper <drake.harper@instructure.com>
During test execution a sequence of tests fail with:
"Only Redis glob strings are supported: /^dynamic_settings\//"
This is because Redis does not support regular expressions
as parameters for "cache.delete_matched(...)"
The accepted format is glob
(see https://redis.io/commands/keys/)
fixes DE-1463
flag=none
test plan:
- existing tests pass and the above error is not found in the flaky failures
Change-Id: I411faef90bb4b0f7b7e3e3ff948453cac23e5a19
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305400
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
fixes LS-3609
flag=course_paces_redesign
test plan:
- Enroll students in a course with course pacing
- Enroll a user with the StudentViewEnrollment type
- Go to the student course paces table
- Verify the user with StudentViewEnrollment is not listed
Change-Id: Id7b3d72e3dfc9131dc2e32f3af6ad1e59eec9559
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305431
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: Eric Saupe <eric.saupe@instructure.com>
This also includes handling pagination for results
that contains more than 1 page of data.
closes OUT-5387
flag=outcome_service_results_to_canvas
test plan:
- Jenkins passes
- Since this requires a large number of outcomes,
assignments, and users in a Course with new quiz results
this PS will be tested in Beta in the next Bug Bash.
Change-Id: I33a3d502bb1a1412d2120d7c676789316707418c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305274
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
this isn't about blueprint syncing, it's about copying
the blueprint course itself and making the destination
also a blueprint course with the same settings and
locked items
test plan:
- set up a course as a blueprint course
- set up custom options for locking different types
of learning objects
- lock objects of each lockable type
(assignment, file, topic, quiz, page, course pace)
- copy the blueprint to a new course shell
via Settings / Copy This Course
- check the "Copy Blueprint Settings" box
- the blueprint settings and locked items should
be preserved in the destination
flag=copy_blueprint_settings
refs LS-3574
Change-Id: I0dab774731dcc2143743aa1f9a6bb35646ac00d8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304671
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: Allison Howell <allison.howell@instructure.com>
why
- when a user is on the assignments page and creates a module
from a tool, there is no feedback showing it was successfully
created because you are returned to the assignments page
- instead, the user is now given an alert telling them a new module
was created for the returned content and that they can visit the
Modules page to find it.
- shout out to Alex for doing the initial attempt at this. His initial
dive made this super easy to get done.
closes INTEROP-7263
flag=lti_deep_linking_module_index_menu_modal
--------------------------------------------------
Test plan
--------------------------------------------------
* Install the LTI 1.3 Test Tool at the course_assignments_menu placement
and enable the lti_deep_linking_module_index_menu_modal feature flag.
* Launch the tool from the three dots in the top left while on the
assignments page. Return whatever content you'd like.
* You should see the page reload and then an alert telling you that a
new module was created for the returned content.
* Go to the assignment index page and ensure that you aren't alerted
again. Just wanna make sure :)
Change-Id: I59ed28372113c91d33c448d1cf4a4e3d3e436ce4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304024
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
missing policy score was not applying to new
quizzes when toggling the missing policy flag
fixes EVAL-2677
test plan:
- make sure missing policy score for gradebook
is toggled off
- create new quiz with due date in the past
- go to gradebook settings and set a missing policy
score value
- once saved, refresh and verify that the new quiz
has the same score applied as the missing policy score
Change-Id: Ib3a8b3b2ecc30c119408e1582f62dc0d550f366e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304310
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paulo Chaves <paulo.chaves@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
The SR-only close text in all jqueryui dialogs was not translated.
We can't use Canvas' usei18nScope since the jqueryui dialog config
is done in its own package, but since there's just a single string
to translate, and that string ('close') is certainly present in
existing package translations, we'll just pull that existing
translation instead of setting up a whole new translation pipeline.
closes LS-3553
flag = none
Test plan:
- Switch user's language
- Go to modules, click Add module
- Inspect the close 'x' button
- Expect the screenreader text to be the translated version of
'Close'
Change-Id: Ie3d6801bf7adce790789008954d8e6a65ee3c047
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305236
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: Jackson Howe <jackson.howe@instructure.com>
test plan:
- enable scheduled page publication feature
- create a new page and enter a future date/time
in the "publish at" box (e.g. a few minutes from now)
before saving it for the first time
- after that time, reload the page and it should
be published
- editing an existing unpublished page and setting a
publish at date should work also
flag=scheduled_page_publication
closes MAT-1097
Change-Id: I5276064bf9de16adb2e8d8feb1924b37006b2623
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305334
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes FOO-3196
flag = none
Test plan:
• Go to the People page in an account with multiple users
• Sort the users by any of the four available columns
• Verify focus is kept on the chosen sort button
• Verify you are able to input text in the search box after sort
Change-Id: Ib20930075cb93c7249f18fae488311843dfc4cbd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305080
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
QA-Review: August Thornton <august@instructure.com>
refs OUT-5387
flag=outcome_service_results_to_canvas
Test Plan:
- Jenkins pass. We will eventually test this in beta as part of
the bug bash.
Change-Id: I4158301b913557c899899b69a0f172fa543a07cc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305319
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
When the new_quizzes_by_default flag is enabled, don't show the quizzing
engine selection options in modules when creating a new quiz. Always
use new quizzes in this case. Has no effect when that flag is disabled.
flag = new_quizzes_by_default, new_quizzes_modules_support, quizzes_next
closes LS-3521
Test plan:
- Enable the flags listed above
- Go to modules
- Add a module, then click the + to add a module item
- Choose Quiz > Create Quiz
- Expect to not see radio buttons to pick CQ/NQ
- Add a quiz name, click Add Item
- Expect the created quiz to be a new quiz
- Disable new_quizzes_by_default
- Repeat the process and expect the quiz type to respect the radio
option selected during creation (as it currently does)
Change-Id: I499df48fc1d4dee6a7bcb8b17e4e96efee88942c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305155
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: Jackson Howe <jackson.howe@instructure.com>
but only if it's modified from the account default
test plan:
- have two subaccounts with different time zones
- copy a course shell from one to the other
- the destination course's time zone should still match its
subaccount's time zone, not the original course's time zone
- modify the time zone in the original course
- recopy it
- now the time zone in the destination course should
match the original
flag=none
closes LS-3577
Change-Id: Ia9f7f83f32ff74ee906f7792315b522a58ecbdb7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304719
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Luis Oliveira <luis.oliveira@instructure.com>
QA-Review: Luis Oliveira <luis.oliveira@instructure.com>
fixes LS-3583
flag=course_paces_redesign
test plan:
- Go to course pacing page on a course with sections and students
- Use the search bar to search for sections by name on the sections tab
- Use the search bar to search for students by name on the students tab
Change-Id: Ib6309101ee3582e1e147489d0c8392034b64aa4f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305078
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jonathan Guardado <jonathan.guardado@instructure.com>
QA-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
Product-Review: Eric Saupe <eric.saupe@instructure.com>
Adds the "Grade by question" SpeedGrader Options
setting for Quizzes.Next quizzes. This commit only
adds the setting. The feature is not yet implemented.
closes EVAL-2724
flag=new_quizzes_grade_by_question_in_speedgrader
Test Plan:
1. Enable the "Quizzes.Next Grade by Question in SpeedGrader"
SiteAdmin feature flag (it should be enabled by default in
development environments).
2. Create a Quizzes.Next quiz and a Classic quiz.
3. Take both quizzes as a student.
4. Go to SpeedGrader for the Classic quiz. Verify that changing
any setting in the SpeedGrader options menu causes the page
to refresh.
5. Go to SpeedGrader for the Quizzes.Next quiz. Verify that
changing the "Sort student list" or "Hide student names in
the SpeedGrader" settings in the SpeedGrader options menu
causes the page to refresh. Verify that changing only the
"Grade by question" setting does NOT cause the page to
refresh (but does cause the SpeedGrader options menu to
close).
6. Disable the "Quizzes.Next Grade by Question in SpeedGrader"
SiteAdmin feature flag.
7. Go to SpeedGrader for the Classic quiz and verify the
SpeedGrader options menu still has the "Grade by question"
setting.
8. Go to SpeedGrader for the Quizzes.Next quiz and verify the
SpeedGrader options menu no longer has a "Grade by question"
setting.
Change-Id: I2b8d199669387624f9ed78beac472a0b9971e154
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304171
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Jody Sailor
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes OUT-5227
closes OUT-5391
flag=outcome_service_results_to_canvas
Test Plan
- dc down on outcome service
- In canvas, navigate to account settings
- ensure you have outcome_service_results_to_canvas flag enabled
- go to reports and generate the Outcome Results report
- it will error out because it cannot communicate with OS
- Bring OS back up
- generate the report again and verify it didn't fail
Change-Id: I9ee6ea5220fc458e1dd374bf5def092085403e4b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304019
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
This mutation will allow us to update a
user's preference discussions_splitscreen_view?
refs VICE-3115
flag=none
Test Plan:
1) Specs pass.
Notes:
For the FE we need this mutation.
I added the type to the user, so we can optionally return
the updated data.
Change-Id: If64fb7cf0bafbeb12f008ba6fc749026a7d7a0e9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305162
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
When the gradebook is filtered by student groups and a default grade
is applied it will apply to all users instead of the filtered users.
fixes EVAL-2629
flag=none
test plan:
- Create a course with several users and assign users to groups in the
people tab.
- Create a graded assignment so that it appears in the gradebook.
- Head to the gradebook and filter by student group.
- After you filter by user group assign a default grade.
- Notice that it sets the default grade only for the visible students
Change-Id: I77798421446754637f3b9e50ad4b851ba3921c63
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303955
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Cameron Ray <cameron.ray@instructure.com>
fixes LS-3434
flag=course_paces_redesign
test plan:
- Have a course with multiple section paces and student paces
- Go to
https://<canvas>/api/v1/courses/1/pace_contexts?type=section&search_term=
<partial section name>
- Verify only sections with names that include the search term come back
- Go to
https://<canvas>/api/v1/courses/1/pace_contexts?type=student_enrollment&
search_term=<partial student name>
- Verify only students with names that include the search term come back
Change-Id: I0c70a22487383ade3b5fa730453e520fd087ea99
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304961
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: Eric Saupe <eric.saupe@instructure.com>
Refs FOO-3200
flag=none
Only a couple of little things in packages/ were in
CoffeeScript, both were extensions to Backbone.js.
Also had to decaf ui/features/roster along with this
because it ran into the CoffeeScript-to-JavaScript
class inheritance issue.
Test plan:
* automated tests pass
Change-Id: Ice445776b2e5e04349317aab54c154b66f22e935
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304981
Reviewed-by: Sean Scally <sean.scally@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=none
test plan prerequisites
- Working New Quizzes LTI setup
- HTTPS local setup (maybe)
test plan
- Create a New Quiz
- In the Quiz Instructions, Insert a Course or User Document
- Go to Document Options and set the document to preview ininline
- Go to Student View and load the quiz
- Click the document link
* Expect the preview to appear
Change-Id: I32114d65658893dbff94edf9224d4d534b2910a6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304826
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Rajmund Csehil <rajmund.csehil@instructure.com>
Product-Review: Jon Scheiding <jon.scheiding@instructure.com>
QA-Review: Rajmund Csehil <rajmund.csehil@instructure.com>
currently,
* course roles are grouped by base role type
* account roles are listed built-in first, then custom
but the ordering within each group is arbitrary.
this commit breaks ties alphabetically, so
1. custom course roles still appear in the order they've
always appeared in (Student Teacher TA Designer Observer)
but custom roles of each type appear alphabetically
beneath the base type
2. custom account roles are all shown alphabetically
after built-in ones (i.e. AccountAdmin)
test plan: ensure these role orders are respected in
account settings:
* Admins tab, "Add More"
* Announcements tab, "Show to"
flag=none
closes FOO-3197
Change-Id: Id6d37ea8be7a4e0d3ac87cad1b0a68ad6d97b474
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304389
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
closes OUT-5361
flag=outcome_service_results_to_canvas
test plan:
- Enabled FF
- In a course
- Create an outcome
- Create a new quiz and align an outcome to a question
- As an instructor, view the LMGB and then click on a student
that you plan to take the newly created quiz as.
- Click to view the grades of that student
- Click on the Learning Mastery tab
- For the outcome that is aligned to the quiz, ensure that:
- It does not show alignments. The alignment for questions
will appear after the student as taken the quiz.
- As an instructor, go back to LMGB and click on the student again.
- Click act as user and take the quiz.
- Stop acting as the student.
- As the instructor, view the LMGB and then click on a student
that you took the quiz as.
- Click to view the grades of that student
- Click on the Learning Mastery tab
- For the outcome that is aligned to the quiz, ensure that:
- The outcome is showing 1 Alignment
- When expanded there is a link to the assignment and it
shows the mastery scale and reports the outcomes proficiency
that the student made on the quiz.
- Clicking on the link takes the user to the assignment (it will
redirect you to view the New Quiz)
- Log in as the student and click on Grades.
- Click on the Learning Mastery tab
- For the outcome that is aligned to the quiz, ensure that:
- The outcome is showing 1 Alignment
- When expanded there is a link to the assignment and it
shows the mastery scale and reports the outcomes proficiency
that the student made on the quiz.
- Clicking on the link takes the user to the assignment (it will
redirect you to view the New Quiz)
- Turn off FF
- Repeat tests and ensure that New Quiz alignment information is
not present
Change-Id: I3caa1e22aae1972518b299be5f3ff6bda862e1ce
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304231
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
fixes LS-3554
flag=none
test plan:
- Create a calendar event with a course section as the context
- Edit that event via the calendar modal
- Save the event
- Open the event again in the calendar modal
- Verify the section name is only present once
Change-Id: I0c51bb436b4a834d5b6fe1995025a9d912997f2d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304844
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>
A check was added for "learning_outcome_association" tag types with
PFS-19614. There are other content tags that are not used by
context modules. Course pacing is only concerned with module items. This
patchset fixes the check when a content tag is updated to match the other
course pacing checks to only get content tags that are for context modules
and have an assignment.
fixes LS-3548
flag=course_pacing
test plan:
- Create a ContentTag with a tag_type other than "context_module" in a
course with course pacing enabled and a course pace published
- Verify the content tag is not added to the course pace
- Create a ContentTag with a tag_type of "context_module" without an
assignment attached
- Verify the content tag is not added to the course pace
Change-Id: Ibe32df8906cf96582874727a88e8ece9bd02fd84
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303975
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Migration-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Davis Hyer <dhyer@instructure.com>
QA-Review: Davis Hyer <dhyer@instructure.com>
Product-Review: Davis Hyer <dhyer@instructure.com>
closes VICE-3036
flag=none
Currently this patchset only removes groups inside of group_categories that:
1. Are self-signup
2. Require students to be in the same section
OR
1. Are not self-signup
Test Plan
1. Create a self-signup group set that requires students to be in the same section
2. Create a student that is limited to interact with students in their own section
3. Make sure the created student is in their own section
4. Make 3 groups
4a. Have a group with the ceated student
4b. Have a group with any other student
4c. Create an empty group
5. As the created student view your groups
6. Only the empty group and the group you are in should be visible
Change-Id: I084aedfb3e10b129618eff0fa4d1c1bb0561fecc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302420
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>
Change-Id: I38480368611e4b4166ee2a262038c6a1319f2f58
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304807
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
When searching for users, also include integration_id in the list of
fields that are searched.
Uses permissions for read/manage sis.
fixes FOO-3140
flag=none
test plan:
* Perform a complex user search (with read SIS permissions) for a known
integration ID, expect to find the user.
* Perform a similar search without read SIS permissions and expect not
to find the user.
Change-Id: I0bebea3dc24f30a6e89e9cf7dd0c7a5f866ae718
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303599
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
flag=discussion_topics_post
fixes VICE-3113
the reason it was not showing was because
the backend does not show quotes for level
0 (the topic's entry), and level 1(the replies)
to level 1 entries
this change makes it so that level 1 entries
will now show quoted replies as intended.
Level 0 entries do not have a parent entry
so they will not show quotes as expected
test plan:
- with isolated and split screen feature flags
OFF and redesign ON,
- quote a level 1 reply, and make sure to have include
quoted reply in message checked
- post your reply
- verify that the created reply shows the quoted
message
Change-Id: Ib085851b45e933f36aac840e02a3282a6968db20
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304823
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 LS-3548
flag=course_pacing
test plan:
- Without the jobs process running, publish a course pace
- Verify the Delayed::Job has the pace global id in the singleton
Change-Id: Ic20e42ab76fc72ba18b92dcbe2c7b655a72de0d1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304822
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Eric Saupe <eric.saupe@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Refs FOO-3200
flag=none
Remove all CoffeeScript from this feature bundle.
Test plan:
* all tests pass
Change-Id: I2d0e495699931a9963c49816d2adcffec5e92142
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304696
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
flag=none
This is part of the task to remove CoffeeScript from Canvas.
Test plan:
* Visit the account settings page and click on the "Quotas" tab
* Should work as usual
Change-Id: I49c5d977237fe4f0d03f518eeee2e6f719281f2e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304420
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
why
* the 1.1 to 1.3 migration process needs some love and currently queries
for the correct 1.3 tool _many_ times for each assignment, despite
having the 1.3 tool already loaded into memory once at the start of the
process
* there will be more improvements soon but this is easy pickings
* cache the tool looked up from the assignment content_tag for non-
1.3-migration situations
* pass the 1.3 tool down to the assignment/line item association
process
closes INTEROP-7787
flag=none
test plan:
* non-migration path: create an assignment of type online upload,
submit it as a student, grade it as a teacher, edit it and switch it to
External Tool type and choose a 1.3 tool
* check in the rails console: this assignment should now have an
Lti::LineItem and Lti::ResourceLink associated with it
* migration path: create an assignment associated with a 1.1 tool
* in the rails console, migrate it manually to a 1.3 tool:
```
tool = ContextExternalTool.find(<1.3 tool id>)
assignment.prepare_for_ags_if_needed!(tool, use_tool: true)
```
* the assignment should now have an Lti::LineItem and Lti::ResourceLink
associated with it
* note: unless the 1.1 and 1.3 urls match, this won't actually change
this assignment to be associated with the 1.3 tool, so it will be in
a somewhat broken state. the prepare_for_ags_if_needed! method
will always get called either
* with use_tool and the correct tool, or
* the correct tool and it will re-query to confirm that it's correct
Change-Id: Icdc24336c81cf616a547d02b417d5047f8411da3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304701
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
- you might think that the one place enhance-user-content used
INST.kalturaSettings would be a simple fix. In doing this, the
new non-jquery functions for showing doc previews and creating
user comment thumbnails have replaced their jquery counterparts
in canvas.
- the isPreviewable function handled checking for scribd or google
scribd is no longer used, and all the mime-types listed said they
were previewable by both anyway, so that code's been simplified.
closes: MAT-1077
flag=none
test plan:
- create rce content with inline previewable file links and
overlay file links
> expect the loading spinner to be adjacent to the link when
you click it to open the preview
- repeat in an rtl language
> expect the spinner to still be to the the end of the link
next to the download icon
- have a student submit an assignment by uploading a file
- as the teacher go to the speed grader
> expect the loading spinner to show up in the center of the
big preview panel on the page (you may have to set a breakpoint
in doc_previews.js#removeLoadingImage or you may never see it)
- set INST.disableGooglePreviews = true (you can set a breakpoint
in ui/boot/index.js and set it there, or figure out how
to get it set in the backend)
- in the speedgrader there should be no file preview in the
big left-hand pane on the page
- as a teacher, from an assignment where a student has submitted
an answer, click the "media comment" button under the
"Add a Comment" textbox
- record or upload a video
> expect it to be transformed into a thumbnail that plays the
video when clicked
Change-Id: If71f2d7c9b54370f433094c36c79a0d1b4a72058
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304147
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Jon Scheiding <jon.scheiding@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Test Plan:
1. Validate that a non-admin user can modify their name, profile links,
bio and communication channels
2. Disable the respective settings in the Account settings tab
3. Validate that the non-admin user can no longer edit the listed items
4. Validate that the API does not allow these changes either
flag=none
refs PFS-20887
Change-Id: I0d852613a64ee763c6de1bca8797f226c74f5f43
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304025
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Vaughn Hepworth <vhepworth@instructure.com>
QA-Review: Douglas Rist <douglas.rist@instructure.com>
why:
* Canvas was not conforming to the LTI AGS spec, which stipulates that
_incoming_ scores (ie in the Scores API) must be >= 0, but doesn't put
the same restriction on existing/outgoing scores (ie in the Result)
* this was a misinterpretation that was introduced in the very
beginnning of Canvas supporting the AGS and hasn't been challenged
since
* this is causing problems in a couple of different places, like grading
scores from an existing assignment that is now associated with a 1.3
tool, or migrating 1.1 assignments and scores to 1.3
closes INTEROP-7776
flag=none
test plan:
* make an AGS Scores request with a negative scoreGiven
* it should still fail
* create an assignment of online upload type, make a submission for a
student, give it a negative grade
* switch the assignment to external tool type and associate it with
a 1.3 tool
* attempt to grade the submission again in SpeedGrader
* this will fail without this commit, and succeed with this commit
* install a 1.1 tool that matches the domain of the 1.3 tool
* this may require a hacky version that doesn't work, that's ok
* create an assignment that's associated with the 1.1 tool
* make a submission as a student
* give the submission a negative grade, either from the tool or in
SpeedGrader
* in a rails console, find the 1.3 tool and the 1.1 tool and run
`tool_1_3.prepare_for_ags(tool_1_1.id)`
* this will fail without this commit, and succeed with this commit
Change-Id: I087772931f2df3fa578e0dfe7483b08eeef22b81
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304415
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>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
flag=bbb_modal_update
fixes VICE-3215
test plan:
- code review
- passes jenkins
- for :bbb_modal_update both
ON and OFF, make sure that conferences
you start respect your selected settings
Change-Id: I6fe737bbdc14f253e54f88098c1aeb9bac8a2876
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304484
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
fixes VICE-3170
flag = react_discussion
Test Plan:
Solution:
- any entries marked as read after selecting the unread filter,
will still return under the unread filter, until the filter changes
or a page refresh.
- note the mutation will sill update and the blue unread icon
will disappear.
Have at least 60 unread entries (3 pages).
Have some unread entries.
1. Use the unread filter.
2. Notice the unread entries can update to read,
however. If you switch pages the same set of total unread entries
will be returned.
3. Upon page refresh or switching filter, then
returning to unread the entries will no longer return.
Change-Id: I911f85ed8a23b7f8bdfa22edce5745e79b389307
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304016
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: Caleb Guanzon <cguanzon@instructure.com>
Migration-Review: Jeremy Stanley <jeremy@instructure.com>
test plan:
- queue some jobs, not in a strand, using the same
or similar job tags (i.e., Foo#bar and Foo#baz)
- use GET /api/v1/jobs2/throttle/check?term=Foo
and verify that it counts the proper number
of jobs and tags
- use PUT /api/v1/jobs2/throttle?term=Foo&max_concurrent=X
and verify that it applies a strand to the matching
jobs and returns the name of the strand along with
the number of jobs modified
flag=jobs_v2
refs DE-1347
Change-Id: I94cc0c80d26c52eb524440e933e52b970e388716
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303821
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
closes VICE-3188
flag=react_inbox
Test Plan
1. Act as a student
2. Open react/inbox compose modal
3. select a context
4. Verify that the Include Observers button does not appear
5. act as a teacher/admin
6. repeat steps 2&3
7. Verify include observers appears
Functionality
1. Click All in Course option
2. Click include observers
3. Verify that all observers with observees get added
4. click include observers again
5. verify no duplicate observers are added
6. clear recipients
7. select a student with 1-2 observers
8. click include observers
9. verify that the student's observers were added
Alerts
1. Select a student without an observer as a recipient
2. Click include observer
3. verify that the correct info alert appears
Change-Id: I24055b84ce4afab49e851facb077048c981d0455
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304036
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>
closes OUT-5352
flag=outcome_alignment_summary
Test plan:
- Enable Improved Outcomes Management FF
- Enable Outcome Alignment Summary FF
- Go to Course > Outcomes
- Create an outcome and a rubric then align them
- Create unpublished assignment, graded discussion
and quiz and align them with the rubric
- Go to Course > Modules, create unpublished module and add
to it the unpublished assignment, graded discussion and quiz
- Go to Course > Outcomes > Alignments and expand the outcome
- Verify that the module name, appended with (unpublished) is
displayed for assignment, graded discussion and quiz alignments
- Go to Course > Modules and publish the assignment,
graded discussion and quiz
- Go to Course > Outcomes > Alignments and expand the outcome
- Verify that the module name, appended with
(unpublished) is displayed for the assignment,
graded discussion and quiz alignments
- Go to Course > Modules and publish the module
- Go to Course > Outcomes > Alignments and expand the outcome
- Verify that the module name is displayed for the
assignment, graded discussion and quiz alignments
Change-Id: If8a0c3001530b5085cda4b3bb2e5a80b1dbbab0a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303843
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Wilmer Corrales <wilmer.corrales@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
flag=react_inbox
closes VICE-3186
test plan:
- Tests pass
- Have a course with observers
- Go to inbox
- Click on the compose a new message button
- Select the course with observers
- Go to the Recipients (To) field
- Select Observers
- A second line should display saying:
Observing: x, y, z
qa risk: low
Change-Id: I20ad96f9996d5ee3331d923c1400c6dcbc0f2698
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304203
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Our current course creation button is displayed if
the logged user has permission to create courses in
the manually-created courses sub-account, which
sub-admins may not have, even though they should
be able to create courses in their own sub-accounts.
*if* the subaccount picker ff is ON
fixes LS-3276
flag=create_course_subaccount_picker
test plan:
- Create an account role in sub-account
- Enable all permissions
- Add a sub-account admin to the new account role
- Act or login as the user sub-admin
- Turn the create_course_subaccount_picker flag on
- Check that you can create a course from the dashboard
Change-Id: I72306af55966c8ceca38022ffb96ca2b7ea39357
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303675
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: Luis Oliveira <luis.oliveira@instructure.com>
Rails determines the desired response format from the
HTTP Accept header submitted by the client. when that header
is set to accept all formats i.e. "*/*" the default behavior
for respond_to is to always choose the first response format.
that gets tricky when you have nested respond_to, because
rails will only match on a single format per action.
The bug in this case was that we called the first respond_to in
ApplicationController#require_context_with_permission with the
default format of :html, and then the logic path for users without
a session was to follow to AuthenticationMethods#redirect_to_login
where the first format within respond_to was changed to :json.
*boom*
We now specify a common block for different formats that we want
to respond to in a similar fashion using .any; and as the first
format, it gives us some redundancy in nested respond_to blocks.
fixes FOO-3023
flag = none
Test plan:
• specs
Change-Id: I56650acc1633f8839f24cbc7135faf96976ed763
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304239
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
closes LS-3563
flag=course_paces_redesign
test plan:
- Enable course_paces_redesign flag
- Enable course pacing on a course
- Go to course pacing page
- Evaluate the pace heading appearence
- Save a default pace of a week and some days
- Reevaluate the pace hading appearence
(weeks and days in duration should
be all lowercase)
Change-Id: I6f0653e829637c6bc71ed9d50e962204664cb29b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304172
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: Luis Oliveira <luis.oliveira@instructure.com>
Add a new policy block to the Course model to centrally manage
direct share permissions. Renames can_content_share? to
can_view_content_shares? for clarity, since the ability to use
direct share depends on the context. Includes the granular
manage_course_content_add permission in the check to ensure
direct share still works after that feature is enabled.
flag = none
closes LS-3547
Test plan:
- Specs pass
- Spot check the following locations to make sure direct share works
for authorized users only:
- /profile/content_shares
- course modules
- course assignments
- course quizzes
- course discussions
- course pages
- course files
Change-Id: I0957076f58be859f75d0b874524c83877a0d804e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304155
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: Jackson Howe <jackson.howe@instructure.com>
closes MAT-1083
flag=none
test plan:
- passes all tests
- create user content with at least 3 canvas file links
1. preview in the overlay
2. preview inline
3. preview inline and expand by default
(note, locally the actual preview rarely works, but there
should be no js errors and the correct preview panel
should appear)
Change-Id: I45de263691a858661ac4186c31d92cb13797fc25
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304048
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Joe Hernandez <joe.hernandez@instructure.com>
QA-Review: Joe Hernandez <joe.hernandez@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
flag=none
While working on g/289874 I discovered the
tool proxy controller was also attempting
to create/delete the live events subscriptions.
The model is already doing this now, and
the controller code is not necessary
Test plan
- Create a LTI 2 tool (with live events
subscription service turned on) and
ensure a subscription is created
- Delete the LTI 2 tool and ensure
the subscription is disabled
Change-Id: Ieac06c9cc22faca27bfabaaf18f342abd68e8efa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/290866
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Migration-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
Test plan:
- As a teacher
- Create an assignment
- Add a few students
- Conclude one of the students
- Open the gradebook
- Open the submission tray for a student / assignment
- In the tray you should see in red:
"This student's enrollment has been concluded"
flag=none
Closes EVAL-2605
Change-Id: Iab708c6aeb203504d8764680063a69abc5f28d0d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303739
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
The account calendars api currently checks for visible, active,
associated account calendars across the user's shards, but the logic
deciding to whether to show the "Other Calendars" section (in the
calendars controller) only checks the user's shard. This means the
account calendars section will not appear for users if they only have
calendars on another shard. This commit moves the logic that fetches
the user's account calendars to a shared location that both the
account calendars api and calendars controller can utilize.
fixes LS-3560
flag = account_calendar_events
Test plan:
(Prerequisite: 2 accounts with a trust setup)
- On the user's shard, hide all account calendars
- On the other shard, enroll the user in a course in an account,
then enable the account calendar for that account
- Visit the calendar on the other shard. Expect to see the "Other
Calendars" section
Change-Id: I208ec2832b12e61966d8dac60f55df295949952e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304062
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
We used to support reusing the same launch session when the teacher
switches students in SpeedGrader, but this functionality was
accidentally removed. This PS re-enables this functionality.
closes QUIZ-10207
closes EVAL-2673
flag=none
Test plan:
1. Create a Quizzes.Next quiz assigned to at least three students
2. As two of the students, take the quiz. As the third student, don't
take the quiz.
3. As the teacher, go to SpeedGrader for the quiz. Notice that
Quizzes.Next launches when you navigate to the first student that has
taken the quiz. Then navigate to the other student that has taken
the quiz and verify that we're not launching a new Quizzes.Next
session (you can verify this via the Network tab) — instead, the
content in the existing session is updated to show the new student's
information.
4. When navigating from a student that has taken the quiz to a student
that has not taken the quiz, verify the "No submission" text is shown
in SpeedGrader.
5. If a Quizzes.Next session has already been launched (from previously
viewing a student that has taken the quiz), when navigating from a
student that has not taken the quiz to a student that has taken the
quiz, verify we're not launching a new Quizzes.Next session.
Change-Id: If0346e205c14d65815fe1fc872534f185a3b73d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303326
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Marissa Pio Roda <marissa.pioroda@instructure.com>
Reviewed-by: Ricardo Oliveira <ricardo.oliveira@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
closes OUT-5297
flag=outcome_service_results_to_canvas
test plan:
- Make sure you are running latest on outcomes-service
- Enabled FF
- In a course
- Create an outcome
- Create a new quiz and align it to that outcome
- Take the quiz as a student
- As an instructor, view the LMGB and then click on the student
that you took the quiz as.
- Click to view the grades of that student
- Click on the Learning Mastery tab
- For the outcome that is aligned to the quiz, ensure that:
- The outcome is showing 1 Alignment
- When expanded there is a link to the assignment and it
shows the mastery scale and reports the outcomes proficiency
that the student made on the quiz.
- Clicking on the link takes the user to the assignment (it will
redirect you to view the New Quiz)
- Log in as the student and click on Grades.
- Click on the Learning Mastery tab
- For the outcome that is aligned to the quiz, ensure that:
- The outcome is showing 1 Alignment
- When expanded there is a link to the assignment and it
shows the mastery scale and reports the outcomes proficiency
that the student made on the quiz.
- Clicking on the link takes the user to the assignment (it will
redirect you to view the New Quiz)
- Turn off FF
- Repeat tests and ensure that New Quiz alignment information is
not present
Change-Id: I0102787a7bf90aea632c1bede1fe604531fa7332
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301298
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Product-Review: Chrystal Langston <chrystal.langston@instructure.com>
opening the student tray is not setting comments to viewed
instead only setting the submission to read
fixes EVAL-2702
flag=assignments_2_student
flag=visibility_feedback_student_grades_page
test plan:
- Have an assignment
- As the student submit
- As the teacher leave comments on the submission
- As the student load the grades page
- The comments icons should be visible for the assignment
- Clicking on the comments icon should open the tray
- Verify that the comments have the blue dot icon
- As teacher add another comment
- As student reload submissions page and open comments
- Verify that blue dot icon only on new comments and
not on comments previously read
Change-Id: Ic5f426277c55d1e3edadda8aa683f43258a23c0b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303394
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
This extra "for-nvda" link was added for module items a long time ago,
presumably in response to a bug or special behavior in nvda (see
CNVS-11105). This extra link is no longer needed (the visible link is
read and is clickable in nvda), so remove it.
closes LS-3257
flag = none
Test plan:
- Visit the modules page in firefox
- Turn on NVDA
- Navigate module items using the up/down arrows
- Expect to hear the module item name
- Press enter and expect to navigate
Change-Id: I2273bfd72543d74d4dc6218f1c7c9c714f271d4f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304065
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
fixes MAT-980
flag=none
test plan:
- Upload a media file to a course and unpublish it.
- Embed that file in a Rich Content Editor instance
using Course Media button.
- Save the content.
- Impersonate a student.
> Verify that the media is not loaded, a lock image
should appear instead.
> Verify this with audio and video.
Note: Sometimes for testing this, I had to
clear the cache after impersonating to
see the correct results.
Change-Id: Ibe1c3686ed18eab9a7ea9288205d4b6abac2d221
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303837
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Jacob DeWar <jacob.dewar@instructure.com>
QA-Review: Jacob DeWar <jacob.dewar@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
closes LS-3546
flag = course_paces
Test plan:
- Open a course with course pacing enabled as a teacher
- Expect a 'Course Pacing' item in the course navigation
- Expect no 'Course Pacing' button on the modules page
- Disable course pacing or login as a student and expect to not
see the Course pacing nav item
Change-Id: Iac8423a6a565c1761cfc1f0211822938bf61a6ea
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303986
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
When a user removes all of their selected calendar contexts, the user
preference storing those selected contexts is set to "[]" (a string).
The k5_dashboard bundle expects an array (empty or not), so ensure
an array is being passed.
flag = none
fixes LS-3557
Test plan:
- Log in as a user with a k5 course
- Go to the calendar
- Unselect all calendar contexts
- Go to the dashboard
- Expect it to load without errors
Change-Id: I6b03cd2832b2b97f1c634a8cff7d84ceffb57b01
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303985
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: Jackson Howe <jackson.howe@instructure.com>
refs QUIZ-10285
flag=none
test plan:
- Emulate your CDN is configured locally
- Create a JWT to your user in local Canvas
- Call /api/v1/services/rce_config with the following header:
'Authorization: Bearer [your token]'
curl --location --request GET
'[host]/api/v1/services/rce_config?course_id=[an id]' \
--header 'Authorization: Bearer [your token]' \
--header 'Accept: application/json'
Change-Id: I01653c0300103c62616e65c9a38821f2841b55cb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303932
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: Rajmund Csehil <rajmund.csehil@instructure.com>
closes VICE-3187
flag=react-inbox
Test Plan
1. Create a course with 2 observers
2. Link observers to students
3. Go to graphiql
4. As a teacher run the recipientsObservers field for the course
5. Verify that both observes are returned
6. as teacher run recipientsObservers for a single student with observer
7. verify that the correct observer is returned
Change-Id: I18f489751a98beec80eb9b3ac50e4345dc26ca07
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303852
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>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
why
* helpful for a variety of internal use cases
* OAuth spec is ok with extra parameters in the JSON response to
/login/oauth2/token
closes INTEROP-7739
flag=none
test plan
* go through the oauth flow and acquire a token
* in the JSON response, you should see canvas_region: not_configured
* in a rails console, set the region manually:
`Shard.current.database_server.config[:region] = "us-east-1"`
* go through the OAuth flow again
* the canvas_region should now be us-east-1
* reset the config[:region] to nil if you wish
Change-Id: Icdd353b3169eadea4984fe1dbf51a00af0f25f71
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303781
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Steve Mcgee <steve.mcgee@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Steve Mcgee <steve.mcgee@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
test plan:
- enable jobs v2 feature
- the jobs page should have a new "Job Stats" button at the
top-right corner
- clicking it takes you to /job_stats
- this shows running/queued/future/blocked counts for each
job cluster
- if any shards have jobs_held or block_stranded set to true,
a pill should call this out on the shard's job cluster
and hovering should show the id(s) of the affected shard(s)
(also a button will copy this info to the clipboard for you)
- you can refresh an individual job cluster with the refresh
button on a row
- if you have "manage_jobs" permissions from site admin, a
wrench button will appear next to a row with blocked jobs
(to fake a blocked job:
delay(strand: 'foo', next_in_strand: false).sleep(1)
)
- clicking the button will run the job cluster unblocker
and refresh the row
flag=jobs_v2
closes DE-1414
Change-Id: Ib0d03a193b67911e80541adcdf937b6e84239372
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302268
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
refs QUIZ-10222
flag = none
test plan:
- lock a NQ assignment
- check the LE blueprint_restrictions_update in quiz LTI
- it should include an lti_resource_link_id attribute
- lti_resource_link_id should match the LTI assignment
lti_resource_id
Change-Id: I5cf27f4de4c3539babf4ae5df5bf454ce09b7cb1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303290
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Marissa Pio Roda <marissa.pioroda@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
Refs FOO-3129
flag=none
When in "edit HTML" mode, the RCE displays a button at the
bottom left that toggles between "raw" and "pretty" modes.
To avoid any potential contrast issues with CondensedButton
this just got changed to a regular old Button. The UI looks
different but I believe the action of "click to change" is
better.
Test plan:
* Launch anything with the RCE
* Click on the </> icon to switch to the HTML editor
* Behold the "Switch to xxx editor" button in the lower
left and hover on it / click on it
* Agree that the UI change is acceptable
Change-Id: I20298aa9ba4ed0b1ec80e0e6c9d78f5b7a844249
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303782
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: Charley Kline <ckline@instructure.com>
Refs FOO-3129
flag=none
In investigating this component to address the contrast
issues with <CondensedButton> I ran into a fair amount of
work... the original implementation wrapped an InstUI
component in an HTML form and then intercepted the onSubmit
action and dug around in the formdata. This seems like it's
unnecessarily complicated, so I rewrote it all to simply
pass the required data in as parms in the onClick action.
Seems to work fine ¯\_(ツ)_/¯
Test plan:
* Have a blueprint course
* While viewing it, pull out the blueprint config tray from
the right side and click on "Associations"
* That page, including all the delete "X" and "Undo" buttons,
should still work and look as they always have
* Pay particular attention to where focus goes as those two
buttons are used
Change-Id: Ibe0d8d570f2486a1d2493a4a374092d39eea8a52
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303750
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
refs FOO-3155
flag = none
test plan:
• run data fixup migrations
• should populate any root_account_id columns that are NULL
for enrollment_dates_overrides table
Change-Id: Idbb8d9f5811cf8da3f7245572cd3f1e1fbf59a76
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303632
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Migration-Review: Jacob Burroughs <jburroughs@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 LS-3505
flag=none
test plan:
- Set a timetable for the course with some events specific to a section
via API
- Once the timetable is set, navigate to the course's calendar
- Attempt to edit one of the section-specific events from "More Options"
created by the timetable
- Verify the event saves successfully
Change-Id: I6adec4d15f6cad91cd29a4e7b2292a039566cc30
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303535
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: Eric Saupe <eric.saupe@instructure.com>
closes FOO-3155
flag = none
test plan:
• specs
Change-Id: I08b75927a011546f4bf8ebd357d370759090c1ab
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Sean Scally <sean.scally@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
closes VICE-3195
flag= split_screen_view
Test Plan
1. enable discussion redesign and split screen view
2. make sure isolated view is disabled
3. verify that splitScreenViewContainer is rendered when entry is opened
4. verify that splitscreenview works just like isoalted view
Change-Id: I086feadfd32bc6a6db8bb683de0083af9f0c804e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303619
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>
improve Gradebook export performance by not re-calculating
grades with the GradebookCalculator.compute_scores method.
Instead use the scores table to get grades for points
fixes EVAL-2639
flag=none
test plan:
- all gradebook exporter specs pass
- export both current view of gradebook and entire
gradebook. compare old vs new
Change-Id: Ie192263648bbb8963585ddf0be230aa9c07be728
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303141
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Reviewed-by: Derek Williams <derek.williams@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
reimplement enhanceUserContent without
jquery in preparation for moving out of the
canvas monolith. Some transformations to the DOM
aren't necessary, but are there for backward compatibility
(as I discovered getting all existing specs to pass) pass
This is not going to be an easy review, since the new implementation
is completely new and it will be difficult to ensure the
previous functionality is all implemented correctly.
What can I say?
closes MAT-1011
flag=none
test plan:
- using the rce, create content with
- external link
- course link
- canvas file link, default overlay preview
- canvas file link, inline preview
- canvas file link, inline preview, automatially expand
- link to youtube content, end edit html and remove
"inline_disabled" class name
- save
> expect
> external link to have the external link icon
w/in the link so you can click it and open
the link in a new tab
> nothing happens to the course link
> clicking canvas file link 1, preview opens in the overlay
> clicking canvas file link 2, preview opens inline
> clicking again closes preview
> canvas file link 3 inline preview opens automatically
> clicking link closes preview
> the youtube link gets a preview thumbnail next to it
> click the thumbnail and it's replaced with a playable
youtube video
- have a student submit an assignment
- create a media comment on the assignment
> expect the media comment link to be replaced with a thumbnail
that plays when clicked (I think)
- PS29 and beyone
- look at the DOM tree for external images
> expect the text and icon each to be in their own span
- have a link containing just an image.
- tab through the saved content
> expect the linked image's focus ring to be in your theme color
TESTING JQUERY WIDGETS: this only works in canvas, probably not new quizzes
- put something like the following in your content using the rce's html editor
<div class="enhanceable_content draggable" style="width: 100px; height: 100px; border: 1px solid black; background-color: cyan;">drag me?</div>
<div class="enhanceable_content resizable" style="width: 100px; height: 100px; border: 1px solid black; background-color: grey;">resize me?</div>
<div class="enhanceable_content tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>I am tab 1 content</p>
</div>
<div id="tabs-2">
<p>This is tab 2 content</p>
</div>
<div id="tabs-3">
<p>tab 3 content has 2 paragraphs</p>
<p>and this is that 2nd paragraph</p>
</div>
</div>
<p><a href="#jquery_dialog">open the dialog</a></p>
<div id="jquery_dialog" class="enhanceable_content dialog" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
<div>Drag items around to sort</div>
<ul class="enhanceable_content sortable">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
> expect to be able to drag "drag me" around the page
> expect "resize me" to be resizeaable
> expect tabs to work
- click "open the doalog"
> expect the dialog to open
> expect to be able to close and reopen the dialog
> expect to be able to drag list items around to reorder them
Change-Id: I34418970870a1d34f8dabd9dd435ba058576b52a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/300806
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Generates a page view for a2 assignment submissions through
graphql post.
closes EVAL-2290
flag=assignments_2_student
Test Plan:
- make a course populated with students that has the Assignment
Enhancments feature enabled
- create an assignment on the course
- while acting as a student, submit the assignement to trigger
participation
- navigate to the student's page views, verify that a participation
checkmark appears.
Change-Id: I80802137a0d73647cfeb251256cb328c864bbcaf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301934
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
closes OUT-5299
flag=outcome_service_results_to_canvas
test plan:
- tests pass in Jenkins: please pay extra attention
to the test plan. These tests should line up with
the tests in learning_outcome_result_spec.rb to
ensure all assignments that are classified as muted
are removed from the OS results.
- For testing in the UI:
- In a course with outcomes, create 2 New Quizzes
- Each quiz should be aligned to a different outcome
- Turn on LMGB, sLMGB, and Outcome Service Results to
Canvas FF on.
- Take each quiz as a student
- As a teacher, confirm:
- both outcomes have results in the LMGB
- both outcomes have results in the sLMGB
- results will be identified as a mastered/unmaster
pill. The list of assignments & its aligning
mastery in PS OUT-5297 & OUT-5298
- As a student, confirm:
- both outcomes has results in the sLMGB
- As a teacher, mute 1 quiz in the gradebook:
https://community.canvaslms.com/docs/DOC-12961-4152724339
- As a teacher, confirm:
- both outcomes are displaying in the LMGB & sLMGB
- As a student, confirm:
- Only 1 outcome results is displaying in the sLMGB
- As a teacher, mute the 2 quiz in the gradebook and
confirm:
- both outcomes are displaying in the LMGB & sLMGB
- As a student, confirm:
- 0 outcome results is displaying in the sLMGB
- As a teacher, unmute both quizzes & confirm:
- both outcomes has results in the LMGB & sLMGB
- As a student, confirm:
- both outcomes has results in the sLMGB
Change-Id: I21e085b3e856410cfe89ce57db2271f05858c097
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302565
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Dave Wenzlick <david.wenzlick@instructure.com>
QA-Review: Dave Wenzlick <david.wenzlick@instructure.com>
Product-Review: Chrystal Langston <chrystal.langston@instructure.com>
fixes EVAL-2577
flag=none
test plan:
- go to /courses/{COURSE_ID}/rubrics .
- create a rubric with at least one criterion.
- update the rubrics criterion via the API with
an id of "blank" and a point value of something
other than 5 (see jira ticket comments for an
API request example).
- refresh the rubrics page and attempt to edit it.
- have a course with a teacher and 2 students (S1
and S2).
- notice the value in the text box shows '4'
instead of 5.
Change-Id: I54d9ea45a4d248155675ebafca277071a89249b5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303127
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
refs PFS-20886
flag = none
Test Plan:
1. with admin token, make a POST /api/v1/users/reset_password request
with json body:
{ email: "existing@email.com" }
* Observe a password reset email is triggered
2. Repeat with a non-admin token
* Observe 401 response
Change-Id: I2509bf1be7935556ea359e99c5be5ad9ce0ddd64
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303311
Reviewed-by: August Thornton <august@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Mark Valentine <mvalentine@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Vaughn Hepworth <vhepworth@instructure.com>
refs VICE-2991
flag=react_discussions_post
Test Plan:
- reply to a 3rd level
- should see a mention for the author of the 3rd level message
inside the RCE
Change-Id: I2cc86daeb87493e344e62c293764954b8ac2cfbc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303227
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Closes LS-3539
Test Plan: with Matheus's PS, verify we can get the course info for
pace_contexts
Change-Id: I35b8fd7fa5bd0f952288a981222619dc72be3ad1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303395
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>
refs VICE-2991
flag=discussion_topics_post
Test Plan:
- see ticket for 3rd level reply definition
- reply to a 3rd level reply
> new reply should be on 3rd level
Note:
- For replies to the topic or 1st level replies, the root id and the
parent id for the entry are both null
- For 2nd level replies the root id and the parent id are the same.
- For 3rd level replies the root id and the parent id are not the same.
It is because of ^^^ that we are able distinguish when a reply is a
a 3rd level reply and this is why the check in
DiscussionThreadContainer works.
Change-Id: I50dc68be16acab646fd8e0026339c16329fc57f4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303401
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>
Test plan:
- As a teacher:
- Create multiple grading periods
- Create assignments with due dates that correspond to them
- Verify that you can filter assignments by grading periods
- Create a student and conclude his enrollment
- Verify in the gradebook that you can toggle
"Show... Conlcuded enrollments"
- Create multiple sections
- Verify that you can filter students by section
- Create multiple student groups
- Verify that you can filter by student groups
- Verify that you can filter assignments by grading period
flag=none
Refs EVAL-1934
Change-Id: Idfcdbf69162bae37da495df573f3aa07dc07030e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303168
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Williams <derek.williams@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
- Blue dot styling refactor
- Add specs for unread grade, comment and rubric on grade summary
- Doesn't show the blue dot if submission is not posted
- Remove unread grade blue dot after 5 seconds
- Fix blue dot position if a RTL lang is selected
closes EVAL-2542
flag=assignments_2_student
flag=visibility_feedback_student_grades_page
Test Plan:
- Enable the "Assignment Enhancements - Student" feature flag
- Enable the "Improve Feedback on Students Grade Page" feature flag
- Have a course with at least two students
- Have a published assignment (post grades - automatically)
- As a student submit the assignment
- As a teacher grade the student
- As a student, when landing on the grades page the blue dot
shows up on the grade
- That blue dot should disappear after 5 seconds
- If the page is reloaded the blue dot should be gone because
the grade is marked as read when the user views the grade
- And if the teacher changes the grade the blue dot should
appear again.
- Have a published assignment (post grades - manually)
- As a student submit the assignment
- As a teacher grade the student
- As a student, when landing on the grades page, you
should see no blue dot on the grade
Change-Id: I7f40137049ca00bb69cd0b50129b13f6cc6af19c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302822
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Cameron Ray <cameron.ray@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
QA-Review: Cameron Ray <cameron.ray@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Added safe-navigation because ENV.sections
and ENV.groups could be null specially when
on group context, defaulting to an empty array.
flag=bbb_modal_update
closes VICE-3193
test plan:
- Tests pass
- Navigate to a group conferences page going
to: "/groups/[ID]/conferences"
- Click on + Conference
- Click on Create
- Should create as expected
- Try editing that conference
- Should edit as expected
qa risk: low
Change-Id: I4d4af31d0b3b40a031095c489ee7805ea30e609a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303391
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: Caleb Guanzon <cguanzon@instructure.com>
fixes LS-3489
flag=none
test plan:
- test specs pass
Change-Id: I56c04a2ab9dff9b8ed9984283c0defcd53f293a2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303377
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Selecting an icon maker file from the side tray when viewing
"All Files", its inserted into the RCE as an icon maker icon
fixes MAT-987
flag=buttons_and_icons_root_account
flag=buttons_and_icons_cropper
* Will also need the following canvas-rce-api commit running locally:
https://gerrit.instructure.com/c/canvas-rce-api/+/302455
** Check that commit first on how to test the RCS for backwards
compatibility. This backwards compatibility test should be done before
getting these changes into your local dev environment.
Test Plan
- Go to the RCE and select "Saved Icon Maker Icons" from the IM button
menu
- Select the "Icon Maker Icons" dropdown in the side tray and change it
to "All"
- Navigate to Course Files > Icon Maker Icons
- Select an icon from the list to insert it into the RCE
- Select the newly added icon in the RCE
* VERIFY:
1. The newly added icon has IM-only context menus: "Edit Icon" and
"Icon Options"
2. Edit icon and saving changes works as expected
3. "Icon Options" allows for changing alt text settings
4. Also verify that adding non-Icon-Maker-icons works as before using
All Files. E.g. add an image, select the image in the RCE and you
should get the "Image Options" context menu item.
Change-Id: I862ce51021955624b354a3dfe7f24db8251209b2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302435
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: David Lyons <lyons@instructure.com>
fixes VICE-3162
flag=react_inbox
Test Plan:
1. Specs pass.
2. Passes on beta, see ticket.
3. Hard delete a user part of conversations and inbox
shouldnt break.
3a. My specs run through this/show how to do this;
3b. This may be superfluous.
Notes:
For ConversationListHolder.js:
isError => useQuery.error is an object;
see documentation: https://www.apollographql.com/docs/react/data/queries/#error
Change-Id: Iaa6c0e15e5f6f325460a1f5fa14ff463d7882d67
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303253
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: Caleb Guanzon <cguanzon@instructure.com>
This fixes the case of when a locked quiz containing questions is synced
from a Blueprint course and has Points locked, attempting to edit the
due date of the quiz via the Assignments tab would generate a 400 error
in the console and the date does not change.
fixes EVAL-2611
flag=none
test plan:
- Create a Blueprint course and a regular course
- In the Blueprint course go to Settings
- Select General Locked Objects and enable Points
- Create a quiz and add some questions
- Lock the quiz
- Associate the Blueprint course to the regular course
- Sync the content
- Once synced, in the regular course go to Assignments
- On the assignment index select the Edit option on the quiz
- Adjust the Due Date and hit Save
- Notice it saves the due date without error
Change-Id: Id1a36931f192158123026c77a14a7f17dc357c23
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/300994
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Previously, the AGS API would return a generic 404 Not Found if a call
was made to a concluded course. This was confusing to API consumers and
needed improvement. In addition, our API docs needed updating to explain
some common error codes developers might encounter as well as what steps
they can take to rectify the issue.
closes INTEROP-7262
flag = ags_improved_course_concluded_response_codes
test-plan:
- Create a course with the LTI 1.3 Test Tool installed
- For sanity's sake, try and create some line items in the course
- Hard conclude the course
- Try and send any AGS request and see the generic 404 error message
- Enable the ags_improved_course_concluded_response_codes feature flag
(this is a Site Admin flag)
- Send another AGS request and make sure you get a 422 stating that the
course has been concluded and will no longer accept AGS requests
- Check the new documentation for typos, proper language, etc as well as
layout.
Change-Id: Id8ba509f5a324507ad6ea538c59724c68ae0e8fd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301257
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>
closes LS-3362
flag = course_paces
Test plan:
- Go to a course pacing course and make sure you can still view and
edit section paces as before
Change-Id: I3805f3d3c04675ac1146dca9bb66a9b95bf989c6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303166
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: Jackson Howe <jackson.howe@instructure.com>
When on a shard different from that of the context, the logic to find
and match up tools is flawed. We match up by tool asset string such as
"context_external_tool_123", which is stored in the tab_configuration
on the course. As such, the asset string will be relative to the
course's shard. But when on a different shard, Lti::ExternalToolTab's
`asset_string` will be relative to the current shard, not the course's
shard.
flag=none
fixes INTEROP-7648
Test plan:
- have multiple shards and a course which can be accessed from another
shard (I used my CMC parent and cross-shard child)
- make sure you have a tool with course_navigation available in the
course
- ensure that the tool has course navigation disabled by default, e.g.
`t.extension_setting("course_navigation", :default) == "disabled"`
You can do this by:
t.course_navigation = t.course_navigation.merge(default: "disabled")
t.save
- in the course set up the tabs to show the external tool with course
navigation. It's even beter if you put it so the tool is not the last
in the list. Go to course settings under navigation. It appears that
all you need to do is to make any change to the tabs here (such as
hiding some page like Outcomes or Rubrics) to write to
course.tab_configuration
- check `course.tab_configuration` from a console to make sure you see
the context_external_tools_12345 in there
- get the tabs at via one shard, e.g. for course 123
http://shardwithcourse.canvas.docker/api/v1/courses/123/tabs
- get the tabs from the other shard, e.g.
http://othershard.canvas.docker/api/v1/courses/10000000000123/tabs
- make sure the tool shows up as visible in both outputs. Also, the tabs
should be in the same order (e.g., the tool should now show up last in
the list of tabs as it was before this commit)
- in the course config, under navigation, make the tool hidden (drag to
the bottom)
- get the tabs at both URLs (same shard as the course and a different
shard) and make sure the tool shows up as hidden in both places.
- access the course's settings from a shard which it is not on, and
change the tabs configuration by adding/removing the tool. Look in a
console to make sure the tab_configuration refers to the tool with an
asset string relative to the tool (e.g. if the tool is on the same
shard as the course, the asset string in tab_configuration should
have a local ID)
Change-Id: Ib53829668b586e3acbf613261b43763b54a1a768
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302560
QA-Review: Steve Mcgee <steve.mcgee@instructure.com>
Reviewed-by: Steve Mcgee <steve.mcgee@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Test plan:
- Create teacher
- Create student
- Create observer observing student
- As teacher leave a comment on a student submission
- As student view feedback.
- Blue dot should appear next to feedback and disappear after 1 second
- As observer view feedback.
- Blue dot should appear next to feedback and disappear after 1 second
Refs EVAL-2413
flag=assignment_enhancements
Change-Id: Ia52203b2ebe8c6f112c19fbcbe59269fc179b76f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301419
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Converts 2 Button variant="icon" to IconButton components.
Updates 1 instance of Button variant="primary" to Button
color="primary".
closes LS-3427
flag = none
Test plan:
- Create an appointment group
- Click "Group Details" on the tooltip for the appointment group
in the calendar
- Select the course name button next to "Calendars"
- Expect the expand/collapse buttons to work/look as before
- Expect the "X" button next to time blocks to work/look as before
- Expect to see no instui deprecation warnings in the console
Change-Id: Id126199b16356cb54f347bde13727556fceba079
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303161
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: Jackson Howe <jackson.howe@instructure.com>
Increases (and adds a Setting for) the number of polling requests made
to get submission grade updates when a New Quiz is graded. Also, adds
a loading spinner when grade syncing is in progress.
closes EVAL-2674
flag=none
Test Plan:
1. Create an assignment, then go to SpeedGrader.
2. Open your browser dev tools, and enter the following command to
simulate Quizzes Next registering with SpeedGrader:
window.parent.postMessage({subject: 'quizzesNext.register'}, '*')
You should see the grade input in SpeedGrader get disabled.
3. Enter the following command to simulate a "submision updated" event
from Quizzes Next, and notice that after entering it, 20 network
requests are made to get updated submission information, and then
the requests stop.
window.parent.postMessage(
{subject: 'quizzesNext.submissionUpdate'}, '*'
)
You should also see that the grade input in SpeedGrader is replaced
with a loading spinner. Once 20 requests are made, the spinner should
disappear and the grade input should reappear.
4. Open a rails console, and prepare the following command to update
the grade on the submission that's being viewed in SpeedGrader, but
don't yet submit it:
s = Submission.find_by(
user_id: <student id>,
assignment_id: <assignment id>
)
s.update!(graded_at: Time.zone.now, score: 10) // don't submit yet
Then, enter the command from step 3. After a couple network
requests have been made, submit the command in the rails console to
grade the submission. In SpeedGrader, you should see that 1) the
network requests stop, 2) the loading spinner is replaced with the
grade input, and 3) the grade input has been updated to
show the new grade (10)
5. Verify that grade loading states are tracked per-student. Enter the
command in step 3, notice the loading spinner shows up, and then
navigate to another student, using either the 'next'/'prev' buttons
or by selecting a student from the dropdonwn. Notice when navigating
to the new student, the spinner is not shown, and if you navigate
back to the original student before 20 requests complete, the spinner
is shown.
Change-Id: If369176809eb34024f30baa61b9af931bcb2ecf8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302741
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
closes LS-3291
flag=none
test plan:
- Confirm that the observer picker still works as usual
in k5 and normal canvas
Change-Id: Iae6eb1f2ed6f3235f8fe71adc75e356248fee869
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301586
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: Jonathan Guardado <jonathan.guardado@instructure.com>
why:
* the LTI platform storage requires for security purposes that
get/put_data requests are sent to the OIDC auth origin
(eg canvas.docker or canvas.instructure.com), _not_ the
current canvas domain
* this new route will redirect to the right OIDC auth origin and
listen for postMessages from tools, and forward them to the
main Canvas window for proper processing
* as well as forward response messages back to the sender
closes INTEROP-7583
flag=none
test plan:
* have multiple domains to access canvas locally (eg
shard2.canvas.docker etc)
* in config/dynamic_settings.yml, set
development.config.canvas.canvas.lti_post_message_forwarding_domain
to "canvas.docker"
* add this line to ui/features/post_message_forwarding/index.ts
on line 23: `console.log({PARENT_DOMAIN})`
* in your browser, go to your other domain, like
"shard2.canvas.docker/post_message_forwarding"
* that should redirect to "canvas.docker/post_message_forwarding"
and include a token in the url
* you should see `{PARENT_DOMAIN: "shard2.canvas.docker"}`
in your browser console (or whatever your other domain is)
* further testing of the forwarding functionality is in a later
commit where this forwarder is added to canvas proper
Change-Id: I3bd3572a719b618ccd4e33a57a85cea8edfce9d3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/298103
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Mark Starkman <mark.starkman@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Mark Starkman <mark.starkman@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Webpack was unnecessarily requiring files in webpack_spec_index.js
Serving public/dist/brandable_css/**/*.css in Karma is also
unnecessary
This cuts down error noise in the console when running Karma tests
This also fixes use of globs in the command line, e.g.
yarn run jspec-watch ./spec/javascripts/jsx/gradebook/**Spec.js
Test plan:
- All JS tests pass
flag=none
Change-Id: I82b152bdc70fd77e260ffc27254211b1d0a8bbf5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303069
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
QA-Review: Christopher Soto <christopher.soto@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
fixes FOO-3099
flag = none
test plan:
• have a target user / subaccount with associated SIS ids
• import an admins.csv with user / role / account info
• verify user details for that user includes enrollments for
that new account
• verify admin badge is present in global nav that includes
that new account user enrollment for the role chosen to
be imported (will be a named link to the account) after
clicking on the admin tab
Change-Id: Id590197ffd48a4ac08398bd5388657a64b5d735c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302956
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
also convert spinner to inst UI spinner
fixes MAT-933
flag=none
test plan:
-pre-req: you need to have an lti 1.3 tool set up
* my recommendation is to just set up the test tool;
it is very quick to do and has good instructions
* let me know if you want to pair and I'll assist in
the setup
* https://gerrit.instructure.com/plugins/gitiles/lti-1.3-test-tool/+/refs/heads/master
-create a new course with nothing else in it other than
a single page/assignment/some other item with an RCE
-on a single page with an RCE, embed the LTI 1.3 tool
-on the master branch, run the link validation so you
can see what happens when it flags the tool as having
an invalid link
-now checkout this branch and switch to it
-run the link validation again and you should observe
the following two conditions:
1. the spinner indicating some work is being done
is now an Inst UI spinner and not the ajax-loader.gif
2. the validator will now show no invalid links, i.e. it
stops flagging the lti 1.3 test tool as an invalid link
Change-Id: I9956afae0db37d5d188a240cf2d9274cd6d160c5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302729
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
fixes EVAL-2394. inconsistent missing statuses on
new quizzes. this was because some content tags on
assignments were soft deleted causing the cached_quiz_lti
on submissions to be false, even though it is a valid
quiz_lti. resolution is to fall back to assignment.quiz_lti
to verify that it is a new quiz
flag=none
test plan:
- submission.missing? specs pass
- have a course with new quiz assignment
- change due date of assignment to the past
- open gradebook as teacher and verify that the students
have the missing color applied
- update due date to future. verify taht the students
no longer have the missing color applied
Change-Id: I2f0f2ff45d8f875bd2518bde8239965c682193b7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302737
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
flag=none
fixes VICE-3180
needs product approval on checkbox placement
and checkbox label text
test plan:
- verify "Remove hidden game from 404 page" checkbox
does NOT appear on site admin settings or sub-account
settings
- verify it appears in root account settings
- verify that by default(meaning kill_joy is falsey),
- the checkbox is unchecked
- verify that by checking it and saving, that on reload,
it is checked
Change-Id: I25c9719dada38ae390a872b9711ebc803473372f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303042
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: Jason Gillett <jason.gillett@instructure.com>
This commit adds a blueprint_subscription_deleted Live Event which will
be used by New Quizzes to unlock and cleanup child course configuration
when it is disassociated from a blueprint course. In order to restore
this configuration if a course is reassociated, we will also emit a
blueprint_subscription_created event when an existing subscription is
undeleted.
refs QUIZ-9920
flag=none
Test plan:
- PreReqs:
- A blueprint course and a second unassociated course
- Monitoring Live Events
- Associated the second course
- Observe a blueprint_subscription_created event is emitted with the
correct course data
- Disassociate the child course
- Observe a blueprint_subscription_deleted event is emitted with the
correct course data
- Reassociate the same course
- Observe a blueprint_subscription_created event is emitted with the
correct course data
Change-Id: If7e993a17633664845cdad8cbf6bc70df625840c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302231
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Marissa Pio Roda <marissa.pioroda@instructure.com>
Reviewed-by: Jorge Arteaga <jorge.arteaga@instructure.com>
QA-Review: Jorge Arteaga <jorge.arteaga@instructure.com>
* Also add a spec for sortable_tabs / quizzes stuff since there was none
before and I moved it.
why:
* things found in preparation for forthcoming bugfix
* sortable_tabs is only used in app/views/courses/settings.html.erb
* quiz_lti_tab? is duplicated (three places in total), and contains
logic specific to how Lti::ExternalToolTab uses `args`. So move much
of that logic into Lti::ExternalToolTab.tool_for_tab()
* stop the "elsif begin ... rescue false" madness by using a method
which was used in SectionTabHelper. DRY that up by putting the main
logic in Api::V1::Tab (couldn't find a better place)
* the three "if/else" sections have some stuff in common but it's a bit
tricky to DRY up any further.
refs INTEROP-7648
Test plan:
* Smoke test by going to course settings and disabling/enabling
some tabs including LTI tools
* disable/enable some tabs and see that they turn to "hidden": "true" in
the API at /api/v1/courses/123/tabs
Change-Id: Idec2e758d7b7d2cb6fbca43b8a16d4d42b85d842
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302539
Reviewed-by: Steve Mcgee <steve.mcgee@instructure.com>
Reviewed-by: Stephen Kacsmark <skacsmark@instructure.com>
QA-Review: Steve Mcgee <steve.mcgee@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Adds a blue indicator next to the duration input in Course Pacing if
the user has made a change without saving.
closes LS-3437
flag = course_paces
Test plan:
- In Course Pacing, make a few changes to durations
- Expect to see a blue indicator next to each changed input
- Publish the pace
- Expect the indicators to be gone
Change-Id: Ib9387f48579fe514a9873844e9fbb6af76ae9001
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302835
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>
This will provide warning to users making changes in a Rails console that
they must call `SIGHUP` after calling `Setting.set`, in order for their
setting change to fully take effect (and not be in an inconsistent state).
closes DE-1341
flag=none
Change-Id: Id5bb0e54fe7dba78fe95184aab1d3bdc9c661410
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302630
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: Jeremy Stanley <jeremy@instructure.com>
closes OUT-5167
flag=outcome_service_results_to_canvas
Test plan
- create an outcome at the account level and import it into a course
- create a classic quiz and align the outcome with it
- create a new quiz and align the outcome with it
- create a 2nd new quiz and align the outcome with multiple questions
- Go to account settings, reports, and generate the
"Outcome Results" report.
- Verify that the report is empty because no one has taken the
quizzes yet.
- log in as a student and take all three quizzes
- log in as an admin and go to account settings, reports, and
generate the "Outcome Results" report.
- download the report and verify
- Report has 1 row for the classic quiz
- Report has 1 row for first new quiz
- Report has 1 row for each question of 2nd new quiz
- Default ordering is by user id, outcome id, course id
- Canvas data appears first in the report followed by os data
(this happens because if user, outcome, and course are all
equal, we put canvas data first)
Change-Id: I3dd86d72c3e26061f9e3cd77beec1a5458e99501
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/300790
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Test Plan:
1. Create a Course
2. Use the console to update the Course's settings:
course.update!(is_public: nil, settings: course.settings.except(:public_syllabus))
3. View the Course via the API. public_syllabus should be false
refs PFS-20849
Change-Id: I9dc138ab95db4d8c89b8cb52e1a86c448588f220
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302962
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kacey Roberts <kroberts@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Douglas Rist <douglas.rist@instructure.com>
Product-Review: Kelly Jerome <kelly.ohmen@instructure.com>
Test Plan:
1. Generate a new Course in unpublished state
2. Become a non-admin teacher in that Course
3. Create a page in the Course and use the RCE to upload and embed an
image or other file
refs PFS-20850
Change-Id: I9df72711de69e79294873ac3b0df883eae025367
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302716
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kelly Jerome <kelly.ohmen@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
QA-Review: Douglas Rist <douglas.rist@instructure.com>
Reviewed-by: Viktor Szpisják <viktor.szpisjak@instructure.com>
flag=assignments_2_student
flag=visibility_feedback_student_grades_page
Closes EVAL-2401
Test plan:
- Have an assignment
- As the student submit
- As the teacher leave comments on the submission
- As the student load the grades page
- The comments icons should be visible for the assignment
- Clicking on the comments icon should open the tray
- With tray open, clicking on the blue comments icon takes
the student to the submissions detail
Change-Id: I4e78500d07fb34e103d62c35b82289244506e83b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301354
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Paulo Chaves <paulo.chaves@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
closes EVAL-2650
flag=assignments_2_student
flag=peer_reviews_for_a2
test plan:
- enable the FF "Assignment Enhancements - Student".
- enable the FF "Peer Review Support in Assignment
Enhancements".
- have a published course.
- have a course with a teacher and 2 students (S1
and S2).
- create an assignment A1 with "Peer Reviews"
enabled.
- create an assignment A2 with "Peer Reviews"
enabled and submission type set to "none".
- create an assignment A3 with "Peer Reviews"
enabled and submission type set to "on paper"
and anonymous peer reviews option enabled.
- assign a peer review to the student S1 for the
assignments A1 and A2.
- add both assignments A1 and S2 to a module.
- choose "Assignments List" as the course home page.
scenario 1:
- logged as the student S1, check that the home page
includes the list of peer reviews for every
assignments.
- click on one of the peer reviews in the list and
check that the URL contains the course_id param.
scenario 2 :
- logged as the student S1, go to the modules tab.
- check that for the assignment A1, the displayed
label is "Not Available".
- check that for the assignment A2 the label
value corresponds with the name of the reviewee.
- check that for the assignment A3 the label
value is "Anonymous User".
scenario 3 :
- logged as the teacher, grade the assignments
A1, A2 and A3 for the student S1.
- logged as the student S1, create a submission for
the assignment A1.
- logged as the student S2, create a submission for
the assignment A1.
- logged as the student S1, go to the modules tab.
- check that now the peer review assigned to A1
becomes available.
- click on the peer review item for A1 and check
that this message is not present "There are no
submissions available to review just yet".
Change-Id: I56a4800bcaf5e456f29de734f8cbfad9b548274b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/301540
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
fixes VICE-3041
Test plan
1. With discussionr design enabled...
2. Create a Discussion Topic with "reply before showing post" enabled
3. Post an initial response as the creator of the Topic
4. Change to student account, go to Topic
5. Notice, there are no posts showing
6. Make a reply, when clicking reply, notice the page requires and
post from teacher is now visible
Change-Id: Ia01ac5150651484d61baf7def954b20503b670d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302952
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>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Closes LS-3336
Test Plan:
-- passes jenkins
-- course pace with account and course blackout dates can be created
Change-Id: Ie4493b8b4960ed16b21f1142f8b547457cb3ed8a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302699
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
This reverts commit I2af1ad88d522a6125e9d521bf36267ee7e81e1a5
refs LS-3519
Reason for revert: Teachers with account memberships with
no course creation rights lost their ability to create courses
even with "Teacher can create courses" ON.
Change-Id: I2df23e6a54f072d34f1001f6d1271988a86e0d61
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302823
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
flag=discussion_topics_post
fixes VICE-3155
test plan:
- see the test, i verified
that the test 500's out if you
remove the & from message&.include
Change-Id: I7dd43706912a16a7baea5ec28f690cc667ccec66
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302802
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: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Close LS-3510
Test Plan: passes Jenkins and can update courses
Change-Id: I42bfd1b9b9725384e96c1c362e1ee71cd3edf0cf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302797
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
Refs FOO-3092
flag=none
Normally clicking on a help link opens the corresponding help
link URL in a new tab (via target="_blank"). We might want some
help actions to instead overlay the existing window with a new
URL string instead.
This allows for a new no_new_window property on a help link
description that, when specified as true, then arranges for the
current page to replace itself with the given help link URL
rather than open a new tab.
Some incidental fixup of a selenium test for the help links was
also done.
Test plan:
* For now, help links work exactly like they always have
* There will be followup commits with actual use cases for
help links that overlay the current page
Change-Id: Ia9f8191c6ddc56d88fa258ad0aa4ff40ca19d8a9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302906
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
flag=none
closes INTEROP-7614
FYI, completed/not_completed isn't used that much -- from what I can
tell, in the following places:
* Accounts controller -- courses API endpoint
* lti/ims/concerns/gradebook_services.rb
* lti/ims/progress_controller.rb
Some places, such as whether you can add enrollments on the People page,
use `soft_concluded?`, which has roughly the same logic (but can vary
depending on enrollment type). This commit makes the
completed/not_completed scopes logic more like `soft_concluded?`
Test plan:
- Create a course which belongs to a term that is completed (concluded
at date < today), but has a concluded at date > today (in Course
settings: Participation = Course)
- Make sure you have an LTI 1.3 tool available in the course
- Before this commit:
- Hit the API endpoint
/api/v1/accounts/self/courses?per_page=9999&completed=true
It will include the course (bug)
- Use ?completed=false, it will not include the course (bug)
- Hit the API endpoint /api/lti/courses/123/line_items with the course
ID.
- It will return a 404 (bug)
- Repeat the requests with this endpoint checked out. This time:
- the first request (?completed=true) will not include the course
- the second request (?completed=false) will include the course
- the line_items request will return a 200 with list of line items
(e.g. []) instead of a 404.
- Check the other possibilities of term completion / course completion
by creating new courses or modifying the course:
- Create a course that:
- belongs to a concluded term
- has no concluded date of its own (Participation = Term, or
Participation = Course with no end date)
This should show up in the API under completed=true
- Create a course that:
- belongs to a non-concluded term
- has its own conclude date in the past
This should show up in the API under completed=true
- Create a course that:
- belongs to a non-concluded term
- has no conclude date of its own.
This should show up in the API under completed=false
Change-Id: Ie285f57e3be775d1ec12f4bec3dffc77dba151e3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302432
QA-Review: Steve Mcgee <steve.mcgee@instructure.com>
Reviewed-by: Davis Hyer <dhyer@instructure.com>
Reviewed-by: Steve Mcgee <steve.mcgee@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Make the announcement title a link for teachers, or for students in
a subject. Don't show the link for students on the dashboard - they're
not intended to see the homeroom course internals and there's nothing
about the announcement in the homeroom course that the student can't
see from the dashboard anyway.
closes LS-3460
flag = none
Test plan:
- Create an announcement in a homeroom course and in a subject
- Check out the announcement title as a teacher on the dashboard;
should be a link
- Check out the announcement title as a teacher in a subject; should
be a link
- Check out the announcement title as a student on the dashboard;
should NOT be a link
- Check out the announcement title as a student in a subject;
should be a link
Change-Id: I11c7e8e33a5a143c867f3d08ec292c9e9221c983
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302739
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: Jackson Howe <jackson.howe@instructure.com>
closes EVAL-2576
flag=speedgrader_dialog_for_unposted_comments
[skip-cache]
Test Plan:
- specs pass
- add new comment in speed grader but do not commit.
verify clicking on next student opens dialog
- verify that pressing proceed in dialog saves comment
and goes to next student
- verify that pressing cancel does not go to next student
and comment is still in textbox
Change-Id: Ib2642a5d10fdc4898a9e2ea206d302e77131cf48
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/299212
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
fixes EVAL-2649
flag=none
test plan:
- Have a course with more than one student enrolled.
- Create an assignment with a due date that has passed.
- Submit a text entry or file upload (type that supports Word Count)
- Go to speedgrader to see the Word Count.
- Go to the next student who has not submitted (showing missing status)
- verify that word count no longer shows
Change-Id: I0f8016d1085ab5653479c1b900f9f5cee41d12df
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302650
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
Badge Count increments whenever there's any change at the assignment level
Add rubrics info to the badge count in the grades menu
flag=assignments_2_student
flag=visibility_feedback_student_grades_page
Closes EVAL-2445
Closes EVAL-2541
Test plan:
- Enable the "Assignment Enhancements - Student" feature flag
- Enable the "Improve Feedback on Students Grade Page" feature flag
- Have a course with at least two students
- Have an assigment with peer review enabled
- Assign students to peer review each other
- As the student A submit the assignment
- 1. As a teacher, grade the student's A submission
- As the student A go the grades page
- Badge count on Grades should show up
- Now refresh the page. Badge count should be gone
- 2. As a teacher, leave a comment on the student's A submission
- As the student A go the grades page
- Badge count on Grades menu should be visible
- A blue dot on the comments icon shoud display
- Refresh the page. Badge count and blue dot should still be visible
- Click on the comments icon
- Refresh the page. Badge count and blue dot should not display
- 3. As a teacher, add a rubric assessment (with comment or points)
to the students A submission through SpeedGrader
- As the student A go the grades page
- Badge count on Grades menu should be visible
- A blue dot on the rubric icon shoud display
- Click on the rubric icon
- Refresh the page. Badge count and blue dot should not display
- 4. As a teacher, via SpeedGrader, add a rubric assessement and
leave a comment on the submission
- As the student A go the grades page
- Badge count on Grades menu should be visible
- A blue dot on the rubric icon and comments icon shoud display
- Click on the rubric icon
- Refresh the page. Badge count should still be visible but the
blue dot is now only on the comments icons
Change-Id: I966d8cb2470509536d7c8a7cc81abdbf17a35ae5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302162
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: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Deborah Kwak <deborah.kwak@instructure.com>
this copies all old conference specs
that involve the modal to the new specs
the other specs did not involve the modal
so it did not have to be copied.
Change-Id: I3677882cba913bb3854feeaa48902b1120e733a6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302724
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
Closes LS-3335
Test Plan:
Passes jenkins.
Course pace creation with calendar events works
properly.
Change-Id: Ibd8896be0f463a3f38acba0fd660573ce6f14603
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302621
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Robin Kuss <rkuss@instructure.com>
closes OUT-5298
flag=outcome_service_results_to_canvas
Test Plan:
- Go to Account > Settings and enable the Outcome Service
Results to Canvas Reporting FF
- Go to Course > Settings and enable Student Learning
Mastery Gradebook FF
- Go to Course > Outcomes and create an outcome if there
aren't any already
- Create a New Quizzes Quiz and align an outcome to the
quiz
- Act as a student and take the quiz
- Go to the sLMGB for that student
- Find the outcome group the aligned outcome is in and
expand it
- Find the outcome and observe the mastery score is
displayed on the right
- Inspect the page and open the Network tab
- Find the outcome_results request
- View the response and observe that the New Quizzes quiz
is listed under outcome_results["linked"]["assignments"]
- Disable the Outcomes Service Results to Canvas Reporting
FF
- Return to the sLMGB and observe that the mastery score
is not displayed for the outcome
- Inspect the page and open the Network tab and observe
the New Quizzes quiz is not listed under
outcome_results["linked"]["assignments"]
Change-Id: Ie536c821c5249c81bdbea27e270b2b2274e14a1e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/302611
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>