Commit Graph

47521 Commits

Author SHA1 Message Date
Ethan Vizitei aa2edaaf29 do away with non-conventional "common" module
closes FOO-2459
flag=none

move defined constants into the sis module proper

TEST PLAN:
  1) specs pass

Change-Id: I053e551055a65b7de2a0c23cd571599dc4a8d64f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275450
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 21:55:24 +00:00
Ethan Vizitei a6ba2f8856 add several inflections for zeitwerk compatibility
closes FOO-2456
flag=none

TEST PLAN:
  1) tests pass

Change-Id: If2cdb68e69e9d2f5959afa66845a3f40e373cb5e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275448
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 21:30:20 +00:00
Michael Ziwisky 499865cdcb trade dependency on npx for dependency on rover
refs INTEROP-7004
flag = none

the rake task needs to be able to run on machines that don't have node
installed.  this change does mean, however, that those machines will
need the `rover` binary installed.

test plan:
 - install the Apollo `rover` CLI, see
   https://www.apollographql.com/docs/rover/getting-started/
 - then follow the test plan of commit b52be7893

Change-Id: I4f8b7c50ad57145695f17cfb27294a4c6ef1d8be
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275374
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Michael Ziwisky <mziwisky@instructure.com>
Product-Review: Michael Ziwisky <mziwisky@instructure.com>
2021-10-07 21:20:54 +00:00
Ed Schiebel 8cd9174c51 Set new observee immediatly after adding
closes LS-2609
flag=k5_parent_support

The code never checks the flag, but if the flag is off, the necessary
UI won't be rendered.

test plan:
  Be logged in as an observer with a couple observees

  Test that the right cards are loaded if the cookie points to an
  invalid user:
  - in devtools, change the value of the k5_observed_user_for_<your_id>
    cookie to a number that's not an observer
  - refresh
  > expect the observed user to be the first in the list, their course
    cards are in the dashboard, and their id is reflected in the cookie

  Test that the dashboard cards reflect the selected student
  - select a different student from the observee dropdown
  > expect the newly selected student's course cards to be in the dashboard

  Test that the dashboard cards and dropdown reflect the newly paired tudent
  - in another browser, when logged in as a student, from
    /profile/settings, click "pair with observer" and get the code
  - back as the observer, select "Add User" from the dropdown and
    enter the pairing code
  > expect the dropdown to select the new student
  > expect the dashboard to show the new student's course cards

  Test that the cookie is deleted if you remove the currently
  observed student
  - go to the observer's /profile/observees
  - click "remove"
  > if you removed a student that's not the current observee,
    the cookie remains intact
  > if you removed the current observee, the cookie is deleted

Change-Id: Id1f705d68f9374536d62abbde67a5c3468d19bfd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275351
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: Peyton Craighill <pcraighill@instructure.com>
2021-10-07 20:54:30 +00:00
Spencer Olson 98187d6441 add multi-select for student search in gradebook
closes EVAL-1973
flag=gradebook_assignment_search_and_redesign

Test Plan:
1. Enable "Gradebook Assignment Search And Redesign"
2. Go to the Gradebook. Notice that the student search input now
   behaves as a multi-select, allowing you to filter by multiple
   students at once. Expected behavior includes:
   - The input is disabled until all students and their data has
     loaded, at which point it is enabled.
   - The input can be used like a Select component, meaning you can
     click the input and see a list of available student names.
   - You can start typing a student's name in the input and a list of
     matching student names will be presented.
   - Selecting a student filters the Gradebook to only show that
     student's (and any other selected students') row.
   - Deselecting a student removes that student's row from the view in
     the Gradebook.
   - If a concluded student is selected, and then "Show -> Concluded
     Enrollments" is deselected in the student header menu, then the
     student's row will no longer be shown in the Gradebook and their
     "tag" will be removed from the input. If "Show -> Concluded
     Enrollments" is then reselected, the student's row will be shown
     again and their "tag" will be displayed in the input.
   - If a deactivated student is selected, and then "Show -> Inactive
     Enrollments" is deselected in the student header menu, then the
     student's row will no longer be shown in the Gradebook and their
     "tag" will be removed from the input. If "Show -> Inactive
     Enrollments" is then reselected, the student's row will be shown
     again and their "tag" will be displayed in the input.
   - In large courses (100+ students), you can start searching for
     students once the grid has been rendered and the first chunk of
     student data has been returned (before all of the students in the
     course have been loaded).
3. Disable "Gradebook Assignment Search And Redesign" and smoke test
   the student search input in Gradebook to verify no behavior has
   changed compared to what's on master.

Change-Id: I4b8aa56c7b62ce1775d9d19677f191ec90716915
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274892
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Jody Sailor
2021-10-07 20:48:44 +00:00
Adrian Packel 60a677a493 Update SpeedGrader dropdown for keyboard changes
closes EVAL-1609
flag=none

Test plan:
- Have a course with multiple students and sections
- Open an assignment in SpeedGrader
- Focus the student dropdown in the upper right
  - It has no visible focus, but a reliable way is to click on the
    header, tab until the left arrow is focused, then tab once more
- Hit spacebar or the up/down arrows to bring up the options for the
  native select menu (instead of the abominable jQuery widget)
- Using the keyboard, select a different student
  - Check that the widget has updated to show the new student
- Repeat the above, but this time choose a different course section
  - Note that you are taken to the new course section

Change-Id: I70f497850c2fc17ea1ca87c9d16b17993677c26d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274924
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jody Sailor
Reviewed-by: Syed Hussain <shussain@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Dustin Cowles <dustin.cowles@instructure.com>
2021-10-07 20:37:08 +00:00
Cody Cutrer 533c3387a9 bump inst-jobs
Change-Id: I1b49f421a6f08b507c6152174cda004f6da76d57
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274869
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-10-07 20:20:27 +00:00
Ed Schiebel 6e99966a79 Global nav Subjects tray only shows observee's courses
closes LS-2608
flag=k5_parent_support

test plan:
  - with "canvas for elementary" on
  - have an observer observing 2 students enrolled in different courses
  - log in as the observer
  - click "Subjects" in the global nav
  > expect the currently observed student's courses to be listed in the tray
  - use the dropdown on the dashboard to change the observed student
  - click "Subjects"
  > expect the new student's courses to be listed in the tray

  - with "canvas for elementary" off
  > expect the "Courses" tray to show all the courses for all the observed
    students
  > expect nothing to blow up.

Change-Id: I30ef593037656352fe13c8c94ac90621d099b7e0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275178
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: Peyton Craighill <pcraighill@instructure.com>
2021-10-07 19:30:55 +00:00
Ethan Vizitei 99055c68b1 multiple zeitwerk inflection helpers
closes FOO-2452
flag=none

TEST PLAN:
  1) specs still pass

Change-Id: I32de25475bf8be7ff4a27a62008ffa64a18cee39
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275430
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 19:29:54 +00:00
Ethan Vizitei b1b4b53e69 wrap default plugins registration in a module and function
closes FOO-2445
flag=none

change application.rb to invoke the plugin
apply function rather than just requiring the file.

TEST PLAN:
  1) specs still pass
  2) plugins are still loaded on boot (selenium spec confirm this)

Change-Id: Ia6ada545c99cc5e33f6ad086a84e6e4bbe859833
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275407
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 19:22:06 +00:00
Ethan Vizitei 1ce41c20fe rename CCWorker so module path can match file path
closes FOO-2436
flag=none

TEST PLAN:
  1) all specs still pass

Change-Id: I958149a8537e704b5144adb7121c0318bcb5c823
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275403
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 19:21:40 +00:00
Ethan Vizitei c1459658d3 explicitly load modules that zeitwerk doesn't like
refs FOO-2446

Temporary operation to make autoloading
work with zeitwerk while we update the gems
where those incompatibilities exist

TEST PLAN:
  1) specs still pass
  2) if you don't have the CANVAS_ZEITWERK env var set
     literally nothing changes

Change-Id: Iab65c0d990131d33532c3df620ae822f1975ee18
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275412
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 19:13:45 +00:00
Ethan Vizitei 556831d8e3 wrap net_ldap_extensions in a zeitwerk compatible module
closes FOO-2448
flag=none

invoke module at consumption point

TEST PLAN:
  1) all specs still pass

Change-Id: I2356f70c119dfb78d8a874a2ed21f4c5e9bac60d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275414
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 18:50:58 +00:00
Ethan Vizitei 7bb64cc73f add zeitwork inflector for "VeriCite"
closes FOO-2447
flag=none

Renaming would not be useful, since the
originating developer already inflects
this way with constants like "VeriCiteClient"
from "vericite_client"

TEST PLAN:
  1) nothing breaks, specs pass

Change-Id: I30c0fb4ef5808954eaa819cbfc7670a319e6fe48
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275413
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 18:50:35 +00:00
Ethan Vizitei cacfdcdac2 explicitly hoist Canvas::RootAccountCacher out of module
closes FOO-2449
flag=none

For zeitwerk this appears to be a problem because of
the other reference to a "Canvas" constant inside
the class in the STI area which seems to stop
the loader from considering it a module elsewhere

TEST PLAN:
  1) specs still pass

Change-Id: If32f97c9b205c25c6a61cc7dcb23defe1151e907
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275416
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 18:49:38 +00:00
Ethan Vizitei 6c10dd5361 make zeitwork interpret "cas" as "CAS", not "Cas" (auth)
closes FOO-2450
flag=none

also grabs a few other auth provider
inflections that needed addressing

TEST PLAN:
  1) specs pass

Change-Id: Ie1d8fd39e099d636dd4343b11a38a95ae62c14c5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275424
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-07 18:47:21 +00:00
Jeff Largent 2df5736a2c Refine pace plans projected start/end date behavior
This change makes the projections sections make a bit more sense
across course and student plans by:
* Removing the "Projected" label on student plans
* Forcing dates to always be shown on student plans and removing the
  "Show/Hide Projections" button
* Making all dates read-only on student plans
* Making end dates read-only on all plans
* Ensuring that end dates are always calculated from the start date +
  plan durations (ignoring the pace plans actual end_date for now)

It also includes some refactoring and correction of TS errors:
* Removes all concept of "planCompleted" from Redux store since we're
  not going to use it
* Updates pace plan item mappings to use module_item_id instead of the
  item's own id, since that can now be undefined for brand new plans
* Adds handling of undefined response bodies from doFetchApi
* ts-ignores i18n scoped imports until we can get TS to understand
  wildcard imports correctly

closes LS-2704
flag = pace_plans

Test plan:
  - Enable Pace Plans flag and course setting
  - Go to Pace Plans in a course with modules and students, and enter
    some durations if there aren't any in the primary plan
  - Click "Show Projections", and expect "Projected End Date" to be
    read-only
  - Expect "Projected End Date" to update as you change start date and
    durations and to match the due date of the last assignment
  - Click "Hide Projections" to hide the date fields
  - Switch to a student plan
  - Expect the "Show/Hide Projections" button to be gone and the dates
    sections to be expanded automatically
  - Expect to see read-only "Start Date" and "End Date" fields
  - Expect the start date to match the start_at date of the student's
    enrollment (or created_at if there is no start_at).
    * You may need to go to a student without an existing plan for
      this to work since the start_date is set on plan creation

Change-Id: Ife8e84b6d41c455a2fabc2760a5c082e89c0e29c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275020
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
2021-10-07 18:23:11 +00:00
Adrian Packel a79d13a1f5 Add LTI fields to submission drafts
Add several fields to submission drafts to facilitate saving LTI launch
submissions, and allow drafts to be of the type basic_lti_launch. (To
avoid breaking the new workflow, we don't yet let drafts with this type
be saved as actual submissions.)

To avoid accumulating content from a potentially infinite number of
external tools, a draft may only contain data from a single external
tool at a time. This is fine since drafts of this type will be a link to
work done somewhere else, rather than local work that could be lost.

closes EVAL-1998
flag=assignments_2_student

Test plan:
- Test that the migration works
- Smoke test creating and submitting a draft with one of the existing
  types in the UI to make sure nothing has broken

Change-Id: I2f9d66af5f479812177d47aa1b925fbecbd95d97
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275253
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
2021-10-07 18:23:01 +00:00
Matthew Lemon e45525035d update IsolatedViewContainer to use MockedProvider
fixes VICE-2119
flag=react_discussions_post

Test Plan:
- Specs pass

Change-Id: I999bb58dd4fc95345f9668ff0a810decfedc5b2b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275303
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
QA-Review: Drake Harper <drake.harper@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2021-10-07 16:50:57 +00:00
Jacob Burroughs 3acc95693a Issue asymmetric jwts from the /jwts endpoint
It is unused currently internally within instructure and we don't document using
it for anything particular so nothing should break

refs FOO-2410

Change-Id: I5611c80955b6c24df00e65e06015c032bab3111c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275334
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
2021-10-07 16:50:27 +00:00
Jared Crystal 5c6ba07b11 add url to New Quizzes FF
closes QUIZ-8838
flag=quizzes_next

test plan:
 - the New Quizzes feature flag should have an updated
   description, including a link to the New Quizzes
   community group

Change-Id: If82d3b9aacd0a0ddf371c5c2a1177715328ea253
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275327
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jorge Arteaga <jorge.arteaga@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Susan Sorensen <susan.sorensen@instructure.com>
2021-10-07 16:46:37 +00:00
Nate Armstrong 98694df8be Fix loading missing planner items with no due date
fixes LS-2694
flag=none

test plan:
1. Setup a course in an account using the elementary theme
2. Create an assignment with no due date
3. Manually mark a student as 'missing' in the gradebook
4. As the student navigate to the course home page
5. Click on 'Schedule' and then the missing notification
6. The missing assignment should load without a due date

Change-Id: Ie88673e6fd508d0d926322a3d5f4d1b226b9adbd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275363
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: Nate Armstrong <narmstrong@instructure.com>
2021-10-07 15:31:18 +00:00
Rob Orton 51d8aec75f assign enrollments variable outside of shard.activate block
test plan
 - see steps from jira ticket

fixes VICE-2128
flag=none

Change-Id: Ie41382b3419112b2536d96e9729dc84b863b4d87
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275394
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: 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>
2021-10-07 15:15:31 +00:00
Jacob Burroughs a6402722c1 Create extension point for plugin extension
refs FOO-2375

Change-Id: I84478e2627e2a0932ac07b7650c92a8bbbebbbae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275349
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-10-07 14:16:58 +00:00
Jenkins 5732734459 update zh-Hans translation
Change-Id: I75eb3e6b6af956600fbddf134ad614d5ea67e63a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275373
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-10-07 05:56:02 +00:00
Eric Saupe af2fcb4335 Initialize empty pace plan if one has not been published
fixes LS-2702
flag=pace_plans

test plan:
- Enable pace plans on a course
- Go to the pace plans page for that course
- Verify the page loads and the module items are displayed
- Verify no pace plan is persisted to the database

Change-Id: If1bd86deeb29c07315aac5460784158e02b3ff5b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275344
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Product-Review: Eric Saupe <eric.saupe@instructure.com>
2021-10-07 03:44:44 +00:00
Rob Orton 9c7273b9a8 use fancy midnight relative to the context
Fancy midnight is meant to adjust the date time to the end_of_day if
there is not a time specified. The time of Midnight, or first second of
the day, 00:00:00 is the default when a time is not specified.

Prior behavior if we try to use midnight UTC as a lock_at time, it will
adjust, but was only doing so relative to UTC since it was a time from
the object which came from the db, or from the front end and converted
to UTC since it is stored in UTC.

Now we convert the time to the context time_zone before evaluating in
fancy midnight

test plan
 - set lock_at to midnight UTC
 - it should stay as midnight UTC
 - don't add a time, or set time to midnight local time
 - it should adjust the lock_at to the next day one save

fixes VICE-995
flag=none

Change-Id: I2fe4b53522f5d461ed652cc32e0fa79e8b5a47b4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275359
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
2021-10-07 01:41:18 +00:00
Manoel Quirino Neto f07da78281 Open outcome group in Move single outcome drilldown
closes OUT-4760
flag=improved_outcomes_management

Test plan:
- With FF enabled
- Go to accounts outcome
- Select a group with nested groups and outcome

* For kebab
  - Click in the kebab menu of the outcome -> move
  - Assert the selected group is the outcome group
  - Assert the move button is disabled for the outcome group
  - Assert you can navigate back and forth in the drilldown
  - Move an outcome and assert the outcome was moved to the
    right place

* For Bulk single outcome
  - Assert the same for kebab if you select a single
    outcome in the checklist -> move in the footer

Change-Id: I4aa92948698ab8c336d1fc9f5fcfe9703e2d5117
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273315
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
2021-10-07 00:48:42 +00:00
Martin Yosifov d280d32410 Add Outcome Name to expand/checkbox/kabob/+Add elements
closes OUT-4767
flag=improved_outcomes_management

Test plan:
- Go to Account > Settings > Feature Options and enable
Improved Outcomes Management FF
- Go to Account > Outcomes
- Select a group with outcomes and descriptions
- Enable Voice-Over (VO) and turn speech off
- Tab/hoover over checkbox of an outcome and verify that
VO prints "Select outcome %{outcome title}"
- Tab/hoover over right arrow of an outcome and verify that
VO prints "Expand description for outcome %{outcome title}"
- Expand the description by Enter/click on right arrow of an
outcome then tab/hover over the down arrow and verify that VO
prints "Collapse description for outcome %{outcome title}"
- Tab/hoover over outcome menu of an outcome and verify that
VO prints "Menu for outcome %{outcome title}"
- Tab/hoover over the group outcome menu and verify that
VO prints "Menu for group %{group title}"
- Click on Find button to open Find Outcomes Modal then
select group with outcomes and descriptions
- Tab/hoover over right arrow of an outcome and verify that
VO prints "Expand description for outcome %{outcome title}"
- Expand description by Enter/click on right arrow of an
outcome then tab/hover over the down arrow and verify that VO
prints "Collapse description for outcome %{outcome title}"
- Tab/hoover over Add button of an outcome that is not imported
and verify that VO prints "Add outcome %{outcome title}"

Change-Id: Ie2b77845f033d9a7e9350c0f6d1edbf21469783e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273576
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
2021-10-06 23:43:43 +00:00
Jackson Howe b98293f2cc Fix unread indicator alignment in k5 grades
fixes LS-2697
flag = none

Test plan:
 - Tweak a student's grades in a k5 course
 - Open the subject grades page as that student
 - Expect the blue dot to be next to the assignment name (and not
   too close)
 - Shrink the browser to mobile size
 - Expect the blue dot to appear right in front of assignment name
   (again, not too close)

Change-Id: Ibad3bf3189483c848be7934c1f3e5b089cf2af8a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275273
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>
2021-10-06 22:42:40 +00:00
Charley Kline 57c7014ee2 Correct for ENV.TIMEZONE vs browser's timezone
Refs FOO-2347
flag=none

A previous commit used Date methods to construct an ISO8601
string to pass back to DatetimeField when a selection is
made in the date picker. Unfortunately it didn't take into
account that all operations on a Date are done in the timezone
of the BROWSER, which is not necessarily what ENV.TIMEZONE
is set to. We have to correct between the two.

This bug was not found in QA before because most people have
their Canvas timezone set to match their local timezone.

Test plan:
* Set your Canvas user time zone to one west of where you are
  i.e. if you're in US Central, set it to US Mountain
* Edit an assignment (/courses/:id/assignments/:id/edit)
* Open the date picker for the due date and click around on
  various dates
* The time should remain the same unless you change it too
* Remember what you've changed it to and then click Save
* The date and time you just selected should be reflected in
  the "Due" column in the assignment screen

Change-Id: I5c4b1053935dab48ff5b202e02adf5a94ad1deae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275285
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2021-10-06 21:48:22 +00:00
Jeffrey Johnson 6510219aea Fix jQuery Kyle Menu to support JAWS
fixes VICE-2101
fixes VICE-2102
fixes VICE-2103
fixes EVAL-1979
fixes EVAL-1980
fixes LS-2674
fixes QUIZ-8883
fixes MAT-462
fixes LS-2676
fixes MAT-463
fixes OUT-4789
fixes VICE-2104
fixes LS-2675

Test plan
1. Download patchset
2. Navigate to a Course -> Click People in sidebar
3. Open JAWS
4. Navigate using JAWS to the elipsis in the Table
5. Open menu using appripriate JAWS keys
6. Expect: Menu Items should read out loud in JAWS

Note: Only change is removing ARIA-owns from button, the rest is lint
rules that were auto run.
Note: This issue only reproduces in JAWS + Chrome
Note: This should be tested in other places that single test plan listed

Change-Id: I2d0b5c50c1ee1c72a9ce1038928d244c3073efb7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275149
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
QA-Review: Daniel Sasaki <dsasaki@instructure.com>
2021-10-06 21:47:54 +00:00
Eric Saupe 05b6313b83 Include associated_user_id in homeroom enrollment sync
fixes LS-2695
flag=canvas_for_elementary

test plan:
- Create a homeroom course
- Add student enrollments
- Add an observer enrollment and link the observer to one or more
students
- Create another subject
- In course settings, select "Sync enrollments and course start/end
dates from homeroom" and update course details
- Open the People tab and verify the oberver enrollments have been
synced along with their associated user

Change-Id: Iea9ca868e501403fd1d19aa74a1235c4ec816f90
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275338
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Product-Review: Eric Saupe <eric.saupe@instructure.com>
2021-10-06 21:34:17 +00:00
Weston Dransfield 7a95ff0914 Add B&I Image mode part 1
Removes the UI no longer needed as part of
the image mode selection redesign

refs MAT-465
flag=rce_buttons_and_icons

Test Plan:
- Open the button and icons create tray
> Verify the "Images" group now only has
  a placeholder

Change-Id: I9ee2e74165539192a53d77e391f70d6c32502f20
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274655
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2021-10-06 21:31:30 +00:00
August Thornton a5b5eb858b dynamically render group descriptions based on context
fixes FOO-2393
flag = none

test plan:
 • Have a granular permissions group with Course and Account
   permissions
 • Right now off the top of my head I know of Manage Courses,
   because the fix included that group as a test
 • Navigate to permissions index page and search for 'Manage Courses'
 • Course Roles tab:
   • Verify under the group label you see a description like:
     "conclude / delete / publish / reset"
 • Account Roles tab:
   • Verify under the group label you ssee a description like:
     "add / manage / conclude / delete / publish / reset"

Change-Id: If0f4145bed310baf268af6877b0951abb935dcab
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274223
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
2021-10-06 20:45:39 +00:00
August Thornton 9aba4f92f7 allow permission groups to support course/account permissions
fixes FOO-2135
flag = none

Test plan:
  • Have a group of granular permissions intermingled with
    course and account only permissions
  • Load up the permissions index page and verify Course Roles
    tab is selected
  • Navigate to the granular permission grouping from above
  • Verify the permission button for said group is editable
    given all the course granular permissions are allowed,
    regardless of the state of the account granular permission
  • Verify the permission button state theming is of the state:
    IconPublishSolid, and not of the state: IconOvalHalfSolid

Change-Id: Ic6ccb7fb81913706f64fe6aa7649ca439cfd6e86
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274190
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2021-10-06 20:45:31 +00:00
Xander Moffatt ae66c182dc update API docs to reflect LTI placement enabled
why:
* enabled now defaults to true for every placement, unless a value
is passed during tool installation and is stored in the tool config

refs INTEROP-6958
flag=none

test plan:
* run `dcr web rake doc:api`
* go to http://canvas.docker/doc/api/file.lti_dev_key_config.html
and scroll to the Parameters section
* find enabled - it should say optional instead of required, and that
it defaults to true

Change-Id: I374a940d9c1c8a644aff7ee0db254ac78ec026d4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275331
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
2021-10-06 20:36:07 +00:00
Drake Harper 45d7a3ea1c Add locked for user for a discussion topic
refs VICE-1995
flag=react_discussions_post

Test Plan:
 - go into graphical
 - query a discussion with available date in the future
 > isLocked should be true
 - query a discussion with available date in the past
 > isLocked should be false

Change-Id: I41c576ddaf3877bddc6d25d6dbddeb2a6bf67483
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275316
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-10-06 20:04:07 +00:00
Xander Moffatt 73b2f06758 finish changing LTI deep linking FF to RootAccount
why
* these changes were missed the first time around
* the flag needs to be sent to the front end
* the flag needs to be looked for on the root account

refs INTEROP-7033
flag=none

test plan:
* enable this FF
* in the browser dev tools console, ENV.FEATURES.<this flag> is true

Change-Id: Idb960fa009d09780b1a24c3e8412d8aa6a61c68b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275328
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Alexandre Trindade <alexandre.trindade@instructure.com>
QA-Review: Alexandre Trindade <alexandre.trindade@instructure.com>
Product-Review: Alexandre Trindade <alexandre.trindade@instructure.com>
2021-10-06 19:30:55 +00:00
Eduardo Escobar ca5f1df2c8 show status pills for students without submissions
now everytime the updateSubmission method is called
the method showSubmissionDetails() is executed and
added a condition to show the submission_details div
when the state is 'Late'.

fixes EVAL-1970
flag=edit_submission_status_from_speedgrader

test plan:
- create and publish a course with at least 1 teacher
  and one student.
- enable the feature flag 'Edit Submission Status From
  Speed Grader'.
- create three assignments.
- navigate to the speed grader for the assignment (1).
- use the status menu to set the late status.
- the late pill is displayed.
- navigate to the speed grader for the assignment (2).
- use the status menu to set the missing status.
- the missing pill is displayed.
- navigate to the speed grader for the assignment (3).
- use the status menu to set the excused status.
- the excused pill is displayed.

Change-Id: Ia78a9ea47ad0054a6641b945317fb2eb941477d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274587
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jody Sailor
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
2021-10-06 19:17:51 +00:00
Xander Moffatt 726ecebdac support deep linking in module_index_menu
closes INTEROP-6833
flag=lti_deep_linking_module_index_menu

why:
* this is an easy unit of work that's separate from the requirements
for adding line item and multiple assignment support

* create a new module and add content items to that module
* also extract the deep linking listener for use in contexts other than
collaborations

test plan:
* install the 1.3 test tool and include the module_index_menu placement
* launch the tool from that placement by clicking the 3 dots button on
the top row of the Modules page
* pass back 1 or many content items with any overrides you wish
* the page should reload, and a new module should be created that
contains the content items you passed back
* each of them is properly configured and launches correctly

Change-Id: I2a2bb47db261a9c1bd32e9799f73b81d2102d374
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/272902
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
2021-10-06 19:02:53 +00:00
Drake Harper 7cbc11eacf Read more/less button for reply preview
closes VICE-2064
flag=react_discussions_post

Test Plan:
 - turn discussions redesign ff on
 - reply to a root entry with a message that has
    more than two lines
 > "Read More" button should be visible
 - click it
 > should see full message
 > button should change to "Read Less"
 - click it
 > message should be truncated
 > should see "Read More" again

Change-Id: I3999da653c3be43bd774488ac74a5ded00188ac7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275306
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
2021-10-06 19:00:52 +00:00
Isaac Moore 4c5506eb4c Polish up notification preferences course selector
This change adds grouping (by term) and sorting (by term name, then by
course name) to the course selector on the notification preferences page.

closes LS-2693
flag=notification_settings_course_selector

test plan:
- enable the `notification_settings_course_selector` feature
  - clear your redis cache if necessary
- enroll the current user in several courses, across multiple terms
- visit the account-level notification settings page
- verify that the course selection dropdown groups courses by term
- verify that terms are ordered alphabetically
- verify that courses are ordered alphabetically within their term
- un-publish one of the courses, causing its state to change to something
  other than `available`
- verify it no longer appears in the course selection list

Change-Id: Idfba560934d360649a67caf96e33e1b0ee300a36
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274998
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeff Largent <jeff.largent@instructure.com>
QA-Review: Jeff Largent <jeff.largent@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
2021-10-06 18:16:17 +00:00
Xander Moffatt f8fe687c14 default to enabled for tool placement config
closes INTEROP-6958
flag=none

why:
* the API docs say that placement configuration defaults to enabled, but
that hasn't actually been true for all tools, only 1.3 tools
* some things are starting to depend on it, and this has caused a few
small bugs
* default enabled to true on the way out, not actually stored on the
tool configuration

test plan:
* install a 1.1 tool with a couple of placements
* in a rails console, look at the tool
* `tool.<configured_placement>` should include enabled: true
* `tool.<not configured placement>` should still be nil
* confirm that other non-placement settings still return like they
should
  * `tool.oauth_compliant` should return nil
  * `tool.extension_setting(:oauth_compliant)` should return nil
  * `tool.oauth_compliant = true`
  * `tool.oauth_compliant` should return true
  * `tool.extension_setting(:oauth_compliant)` should return true
* install a 1.3 tool and do the same checks

Change-Id: I0f7b928dbc1393f603eec2be6862cec8e93ab836
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273323
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: Xander Moffatt <xmoffatt@instructure.com>
2021-10-06 18:08:08 +00:00
Xander Moffatt 140a1c0339 use setter when creating tool from importer
refs INTEROP-6958
flag=none

why:
* using setter methods for tool settings and placements is definitely
preferred over directly modifying tool.settings, since
* the set_extension_setting method does things like coerce enabled
into a boolean, which wasn't happening before now

test plan:
* creating 1.1 tools from the external tools page using XML or an
XML url still works for all documented attributes
* passing the enabled attribute as `true`, or not passing it at all,
makes the placement enabled for that tool
* passing `false` or empty for the enabled attribute makes the
placement disabled for the tool

Change-Id: I04da7fc496fa1cdae7750172587b79d66b886da8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275187
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: Xander Moffatt <xmoffatt@instructure.com>
2021-10-06 18:07:35 +00:00
Omar Gerardo Soto-Fortuño 0421d9b659 Add Report/Reported to ThreadActions
fixes VICE-2073

flag=none

test plan:
  - Open Storybook.
  - Go to Examples -> Discussion Posts
      -> Components -> ThreadActions -> Default
  - Make sure it follows the design and shows Report
  - Go to Examples -> Discussion Posts
      -> Components -> ThreadActions -> Reported
  - Make sure it follows the design, shows Reported
      and is disabled.

qa risk: low

Change-Id: Ic0e520650abfa66b012ed0124c02a3ce58c593c7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275314
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
QA-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Product-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
2021-10-06 17:56:06 +00:00
Alexandre Trindade cc0b08fdd0 add course_assignment_menu to the list of placements
fixes INTEROP-7033
flag=lti_multiple_assignment_deep_linking

Test plan:
- On the left side bar, go to Admin > Site Admin
- Choose the Developer Keys
- Choose an existing LTI tool or add a new one clicking
  on "+ Developer Key" > "+ LTI Key"
- On the Placements list add the "Course Assignments
  Menu"
- Expand the section "Course Assignments Menu"
- On "Select Message Type" you will be able to choose
  the option LtiDeepLinkingRequest

Change-Id: I145a47247f24d5c1ec1905121c416c96306c3a65
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273509
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-10-06 17:55:48 +00:00
James Butters 0d1cd8daa6 fix build summary page to work with rspecQ
fixes: DE-878

Change-Id: I1012afec3f25e2ce26bb10505286c345b3d37f47
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274685
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-10-06 17:30:51 +00:00
Syed Hussain 3e38d9d83a Show 2 decimal places in speedgrader late input field
closes EVAL-1992
flag=edit_submission_status_from_speedgrader

Test plan:
- As a teacher, mark a student as late with a value with 2
decimal places
- make sure the value displays both decimal places

Change-Id: I0faa342e7dcc249af9d39b3806eb5f7e149e1b02
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274922
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
2021-10-06 17:30:43 +00:00
Ethan Vizitei eab0f468e0 reset message bus settings to avoid state pollution from specs
refs FOO-2423
flag=none

TEST PLAN:
  1) run pulsar specs lots of times with many seeds
  2) they don't fail.

Change-Id: Ide7fbaebee5ddac37bf2db03d8699f32d1b57d56
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275315
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-06 17:13:21 +00:00