fixes COMMS-2290
flag Assignments 2
Test Plan:
- create a media upload assignment
- in a2 as a sutdent go submit an assignment
- notice a video upload button
- click button
- notice the modal is shown and you can drag and drop video files
or record yourself
- close modal
- notice no console errors or crashes
Change-Id: I9a6184efb99aa05d0d634d2744cca00abf5ae26e
Reviewed-on: https://gerrit.instructure.com/204375
Tested-by: Jenkins
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
fixes GRADE-2286
test plan:
1. Select or create a course
2. Enable New Gradebook
3. Enable Post Policies
4. Visit SpeedGrader
5. Hover the "Post or Hide Grades" menu
6. Verify the menu label appears as a tooltip
7. Using a screenreader, navigate to the menu button
8. Verify the menu label is announced
Change-Id: I5fa027c7e34fe83fb456870e640907cb2150ef5c
Reviewed-on: https://gerrit.instructure.com/204388
Tested-by: Jenkins
Product-Review: Jonathan Fenton <jfenton@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
fixes GRADE-2285
test plan:
1. Select or create a course
2. Set the post policy for an assignment to post manually
* Alternately: mute grades for the assignment
3. Sign in or act as a student in the course
4. Visit the student grade summary page
5. Ensure your screenreader is running
6. Tab to the muted/hidden icon in the table
7. Verify the muted/hidden text is announced
8. Tab away and SR-navigate to the muted icon in the table
9. Verify the muted/hidden text is announced
Change-Id: I9662f44871882a8fef0f9867124d4065ab6ad767
Reviewed-on: https://gerrit.instructure.com/204257
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Jonathan Fenton <jfenton@instructure.com>
when the kb shortcut dialog or the a11y checker tray close,
return focus to the button that opened it.
closes COREFE-108
test plan:
- in rce, click on the kb short cutton in the status bar
- close the kb shortcut dialog
> expect focus to return to the button
- repeat for the a11y checker
- tab until the show-on-focus kb shortcut button above the RCE
appears, click it, then close the dialog
> expect focus to return to the button
Change-Id: I27ea79930e643d9908a784fbcb89900918d3be01
Reviewed-on: https://gerrit.instructure.com/204283
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
rolls back https://gerrit.instructure.com/c/canvas-lms/+/197254
closes COREFE-185
when a TD is not given a size, setting max-width causes it to shrink.
whatever issue this originally intended to address, we'll fix when
the image sizing work is completed.
test plan:
- in the rce add a table with a couple columns
- put text in one column, and an image in the other
- in html edit mode, remove the style="width: 50%;" (or similar)
- return to rich text mode
> expect the image to be it's natural size, and not shrunken down
to almost nothing.
Change-Id: Ib7df4c1d28f4827fe004b313aff51f6eb232aafc
Reviewed-on: https://gerrit.instructure.com/204569
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
this commit increases the error-level on prop types from warning to
error.
it doesn't alert on components that don't have proptypes declared.
Change-Id: I6f74f1f6f3b3e0867002199e5507466038d8e1c3
Reviewed-on: https://gerrit.instructure.com/204773
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
use a custom class so that we can set the scrypt parameters
directly, instead of that silly calibration stuff. also implement
cost_matches so that authlogic transitioning will work if we
were to ever change said parameters
Change-Id: Icc6e3a592e18beb6c15e01fa4e489d93e2d3b6e0
Reviewed-on: https://gerrit.instructure.com/204705
Tested-by: Jenkins
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
disable bullet in rails 6
Change-Id: Ic84a291c9bd81dd1ef93d414b9ef73d277d07273
Reviewed-on: https://gerrit.instructure.com/204711
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
- set up inst-fs
- inside a group, upload an image
- without reloading the page, click the file
- the image preview should load
fixes ADMIN-2787
Change-Id: I87e4d6086877f70c1747c99f0be6d189624e23f5
Reviewed-on: https://gerrit.instructure.com/204068
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes: ADMIN-2792
feature = check_submission_file_type
Test-Plan:
* create an assignment of type online_upload without extension restrictions
* make sure the api can upload any filetype
* update the assignment extension restrictions to allow a specific type
* make sure files outside those types are rejected
* make sure files inside thase types are accepted
Change-Id: I5203f0d56630aa975f8424526623d4bcbbdaede9
Reviewed-on: https://gerrit.instructure.com/203821
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
Closes PLAT-4696
Test Plan:
- Install a tool that uses content item
at the assignment_selection placement
- Specify a default_assignment_tool_name in your
root account settings.
- Specify a default_assignment_tool_url. This url
must pasth the URL associated with the tool's
assignment_selection placement launch url.
- Navigate to /course/:id/assignments/new for a
course in the root account
- Verify the default tool shows up as an option in
the submission type select element
- Verify clicking the "Add a question set"
button launches the tool in a modal
Note that returning content from the launch will not
work yet. Also, work to allow cusomizing the info
alert and button text will be done in the future.
Change-Id: Iba1187dd9af64819d8dfc446fa246cd4ec8e9473
Reviewed-on: https://gerrit.instructure.com/204187
Reviewed-by: Marc Phillips <mphillips@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
two breaking changes:
* validations are gone, just use vanilla rails validations
* authenticates_many is gone. use a scoping call instead
Change-Id: Iad2a5d4655ad116e85ea3ea98bc209b37cbdba39
Reviewed-on: https://gerrit.instructure.com/202619
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
when we don't have rights to see it
closes #CORE-3224
Change-Id: I2d43bf7cbfec28ff0668e068abb74cf1571088c5
Reviewed-on: https://gerrit.instructure.com/203708
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
closes OUT-3111
Test plan:
- create graded discussion
- add a rubric from discussion view page
- select "Use this rubric for assignment grading"
- ensure the total points on the rubric is a decimal
- click "Update rubric"
- verify that "This is a graded discussion: N points possible"
in the header of the discussion has precision 2
Change-Id: I7ab6927dd2c565d88ec72b976d3b59a3b38c0992
Reviewed-on: https://gerrit.instructure.com/203954
Tested-by: Jenkins
Reviewed-by: Frank Murphy III <fmurphy@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
Test Plan:
- Create a quiz with at least one numeric and one formula question
- Set points, numbers, answers to include decimals or be over 1000 in
several combinations
- Change locale to one with known thousand/decimal separators
(French uses comma for decimals and space for thousands)
- Take the quiz and ensure that numbers and dates are properly localized
all the way through
Closes QO-505
Change-Id: I1bba47e5db666bcf7eb7c477422b1b49ebf8328e
Reviewed-on: https://gerrit.instructure.com/203001
Tested-by: Jenkins
QA-Review: Tyler Burraston <tburraston@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
Reviewed-by: Bryan Petty <bpetty@instructure.com>
It is possible for multiple outcomes/outcome groups with the same
`vendor_guid` to be present in a given context.
When updating an outcome/group via CSV, we should
always prefer to update an active outcome to restoring a deleted outcome.
fixes OUT-3138
test plan:
- For both an outcome/outcome group, create two records
with identical `vendor_guid's`. To do this, create two records via CSV
with guids that you define. After importing the CSV, manually update both
records to have the same `vendor_guid`.
- Mark one record as deleted and delete (via CSV)
- When updating a record, ensure only
the active record is updated
Change-Id: I420a2435255af4bfb807be7d5dd761456151a016
Reviewed-on: https://gerrit.instructure.com/204087
Tested-by: Jenkins
Reviewed-by: Frank Murphy III <fmurphy@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
test plan:
- create an assignment with different dates for different sections,
plus unique due and availability dates for "everyone else"
- as a teacher, ensure the dates that appear on the page in A2
are correct (specifically, the dates for "everyone else" are
the base dates and not the widest availability / latest
due date from the overrides)
fixes ADMIN-2721
Change-Id: Ie2059bd86a5d96ca5fb6901def911a98fb82c39e
Reviewed-on: https://gerrit.instructure.com/202824
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
fixes GRADE-2334
Test plan:
- Flip on the Post Policy feature flag
- Set up two courses with some students and assignments like so:
- A course using New Gradebook (C1)
- An auto-posted assignment (A1.1)
- A manually-posted assignment (A1.2)
- A course not using New Gradebook (C2)
- An unmuted assignment (A2.1)
- A muted assignment (A2.2)
- Enroll a student in both courses
- As a teacher, grade and/or leave a comment for the student on each of
the above assignments
- As the student, log in and check your dashboard
- Under "recent feedback", you should see grades/comments for A1.1 and
A2.1, but *not* A1.2 or A2.2
- As the teacher, post grades for A1.2 and unmute A2.2
- As the student, you should now see these assignments under "recent
feedback" as well
- As the teacher, hide grades for A1.1 and mute A2.1
- As the student, you should now only see A1.2 and A2.2 under "recent
feedback"
Change-Id: I1f914510d0fd3bd79cd023f159a2d31c0d16bef4
Reviewed-on: https://gerrit.instructure.com/203756
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
RedisStore is no longer supported
somewhat surprisingly, the serialization formats are compatible, so we don't
need to do any namespacing
Change-Id: Iede3a023cada95313875f0ce419b649c364ee97c
Reviewed-on: https://gerrit.instructure.com/202663
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
We need to publish this to npm so tinymce-a11-checker can use it
Instead of the old one it is currently using that has instUI 5
Change-Id: I49bd0d8f893c4a806b103bd8117150ab15648dd5
Reviewed-on: https://gerrit.instructure.com/204572
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
and simplify logic so we're not querying for the same
participant when setting the subscribed state
Change-Id: Id321909217f0d5f8e5e58592b00f93cc40ede25c
Reviewed-on: https://gerrit.instructure.com/204190
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
let blueprint course syncs, manual imports, and api initiated
imports run in independent queues and not block each other
closes #CORE-3237
Change-Id: Ib37cde3d317069748ad1a3fe91f41c82b8b95cd5
Reviewed-on: https://gerrit.instructure.com/204529
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
`axios-cache-adapter`’s “browser” field in package.json says to use
A “dist” file that is prebuilt with webpack to handle old browsers
(github.com/RasCarlito/axios-cache-adapter/blob/master/dist/cache.js)
That means it has a copy of `regenerator-runtime` in it for the async
functions it uses. That is wasteful and is bytes that our users
shouldn’t need to download.
Test plan:
* the CSP stuff on the account settings page should work the same
* but the webpack js bundle should be smaller
Change-Id: I671f2eb60b57c43e002b9a62fd92feb5c96cd00b
Reviewed-on: https://gerrit.instructure.com/204252
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
…before running all the code to ellipsis it.
this will be a bit faster on pages like the dashboard
test plan:
* the breadcrumbs should work the same as before
Change-Id: I53d18183ab1ba2887157c78949c60a0dc3a8dd20
Reviewed-on: https://gerrit.instructure.com/204349
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
This way you can start typing your commit message immediately like back
in the good ol' days.
Change-Id: I4e367e86504e2ae45a30025c30dee3ce7dbe1c21
Reviewed-on: https://gerrit.instructure.com/204455
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Test Plan:
- Errors don't show in Slack
closes CORE-2894
flag = none
Change-Id: Ib4fe995fc54372ffed635751cde08ce4d1a92772
Reviewed-on: https://gerrit.instructure.com/204502
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
use unique_constraint_retry when creating record
and lock! around setting/removing data
closes #ADMIN-2819
Change-Id: If34c9f547e586107bf001bd18d0f94d14b9b8b18
Reviewed-on: https://gerrit.instructure.com/204450
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Test Plan:
- Canvas Migrations should run successfully
- Attempting to save Assignments (within the same RootAccount) with the
same sis_source_id should fail
- [API] Assignment GET should include sis_assignment_id field
- [API] Assignment POST should allow setting the sis_assignment_id
- [API] Queries involving an Assignment should support the `assignments/sis_assignment_id:BLAH` syntax
refs PFS-11978, PFS-12661
Change-Id: I37a8d396bb409e98f6372abdc5b08f25f1d8d0f7
Reviewed-on: https://gerrit.instructure.com/199025
Tested-by: Jenkins
Reviewed-by: Tyson Brown <tbrown@instructure.com>
QA-Review: Trevor Byington <tbyington@instructure.com>
Product-Review: Collin Anderson
Refs: CORE-3225
This also runs the polyfill before loading new relic so that if anything
uses “window.fetchIgnoredByNewRelic” it is the polyfilled version
Test plan:
* in edge 42, load the assignment show page
* you should not get an error in the console like:
HTTP401: DENIED - The requested resource requires user authentication.
(Fetch)GET - https://<canvas>/api/v1/courses/11/lti_apps
/launch_definitions?placements%5B%5D=assignment_edit
* you should also not get an error like that for the
https://<canvas>/api/v1/conversations/unread_count request
Change-Id: I65ab0a096d6fe4643975623d68dc88ac520e5559
Reviewed-on: https://gerrit.instructure.com/204432
Tested-by: Jenkins
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
g/192174 made it so the inst-fs jwt could expire after
halfway through the ttl, so we can't cache it for the
whole time
closes #CORE-3238
Change-Id: Ib33f77747620bc05db254d9f952c5618641c45ed
Reviewed-on: https://gerrit.instructure.com/204436
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes PLAT-4742
Test Plan:
- create a user with id 6
- create a different user with lti_id 6ad...
- do a score put for a lineitem on user two
- note that it updates correctly for that user
Change-Id: Iff8d5883d805848af2ff5e04c1712bf4c5a747db
Reviewed-on: https://gerrit.instructure.com/204416
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Tested-by: Jenkins
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Marc Phillips <mphillips@instructure.com>
this is to get it to work with how browserslist/autoprefixer/babel/
@instructure/ui-babel-preset expect things to work.
We had to change the name because
https://github.com/browserslist/browserslist#shareable-configs
Says:
For security reasons, external configuration only supports packages that
have the browserslist-config- prefix. npm scoped packages are also
supported, by naming or prefixing the module with
@scope/browserslist-config, such as @scope/browserslist-config or
@scope/browserslist-config-mycompany
And we have to add:
"browserslist": ["extends @instructure/browserslist-config-canvas-lms"],
to all of our package.jsons that use @instructure/ui-babel-preset
because that by default will use
"extends @instructure/browserslist-config-instructure—ui" which would
still do all the stuff for IE11
Test plan:
* run `yarn`
* all those errors about browserslist and postcss should not show uo
* look at the code in public/dist for canvas-planner,
* It should not include regenerator-runtime and you should see native
`async` functions
Change-Id: Ic84c13ac59d58963c12b8365b3068b5da3ee618d
Reviewed-on: https://gerrit.instructure.com/204251
Tested-by: Jenkins
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
I have been getting this error from js specs:
TypeError: Cannot read property 'status' of undefined
at then.catch.e (/app/jsx/rubrics/ProficiencyTable.js:107:24)
at process._tickCallback (internal/process/next_tick.js:68:7)
This should fix that
Change-Id: I2043474e43070577518d0bfab20f045969568149
Reviewed-on: https://gerrit.instructure.com/204424
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Test Plan:
- Given a quiz with an i18n'd number locale
- Create a question group
- Set points to 1,5 or similar
- See it save, fill in when rediting, etc
Closes QO-507
Change-Id: I71f09d06d59b1225d42ab74798870e57183fbf73
Reviewed-on: https://gerrit.instructure.com/203760
Tested-by: Jenkins
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>