This change adds the ability to select a specific grading period on
the Grades tab in the K-5 dashboard. The select drop-down defaults
to "Current Grading Period", which will show grades from the currently
active grading period for each course (if any). The other options in
the drop-down are all grading periods associated with all the courses
the user is enrolled in, and selecting one will filter out any courses
not associated with that grading period.
closes LS-1914
flag = canvas_for_elementary
Test plan:
Set up grading periods:
- Go to /accounts/<account_id>/terms and set up at least 2 terms if
you don't already have multiple terms set up
- Go to /accounts/<account_id>/grading_standards and click
"+ Set of Grading Periods" under the "Grading Periods" tab
- Add 2 grading period groups, each with at least 2 grading periods.
- Create or go to 2 existing courses, and make sure each is
associated with a different term
- Create or update assignments with points for both courses, making
sure that some of the assignments are due in the date ranges of
all 4 grading periods
- Grade the assignments for a student enrolled in both courses
Verify grading periods selector:
- Log in as the student with graded assignments in both courses
- Go to the "Grades" tab on the dashboard
- Expect to see grades from the latest grading period in both
courses
- Select a specific grading period
- Expect to only see courses associated with that grading period
- Expect courses that appear to have scores / grades for that
grading period (or "Not graded" if none of their assignments have
been submitted / grades for that grading period)
- Update one grading period group so that none of its grading
periods apply to the current date
- As the student, go back to the grades tab on the K-5 dashboard
- Expect the course associated with that grading period group to
show "--" instead of "Not graded"
Change-Id: I7f73e8a4213ecd21e6138108aede9748b52ce569
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259180
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Fixes a bug where the "All Grading Periods" total grade includes
unposted anonymous submissions when the "Ignore Unposted Anonymous
Assignments in Grade Calculation" feature flag is enabled.
closes EVAL-1510
flag=grade_calc_ignore_unposted_anonymous
Test Plan:
1. Enable the "Ignore Unposted Anonymous Assignments in Grade
Calculation" feature flag at the root acocunt level.
2. Create a course that uses grading periods, and enroll at least one
student.
3. Create two assignments in the course, both due in the same grading
period. Make them both worth 10 points, and make one of them
anonymous. On the not-anonymous one, score the student 10/10. On the
anonymous one, score the student 5/10. Do not post grades on the
anonymous asignment.
4. Go to the gradebook and select the grading period that the
assignments are in. Verify the total for the student shows 100%
(because it only considers the 10/10 on the not-anonymous assignment)
. Select "All Grading Periods". Verify the total for the student
shows 100% (because it only considers the 10/10 on the not-anonymous
assignment).
Change-Id: Ibb02a2147cccb9770506ba9f0d1f0ae4c0ac4bdf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259862
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
fixes VICE-1172
flag=none
Add model validation to prevent duplicate integration_id.
Add spec for didplicate sis_source_id.
Test Plan:
1) rspec spec/apis/v1/sections_api_spec.rb:593 -fd
rspec spec/apis/v1/sections_api_spec.rb:600 -fd
2)
Go to Canvas console.
rails c
Create a course and assign it to a variable.
c1 = Course.create(name: "Sample Test Course")
create a course section for that course and give it
an integration_id and make sure you save.
c1.course_sections.create!(name: "Test Section", integration_id: 'taken')
Create a second course_section for the same course
and assign it to a variable.
c1.course_sections.create!(name: "Test Section 2")
After the second one saves, assign its integration_id
to the same value as the previous course section.
cs1 = c1.course_sections.last
cs1.integration_id = "taken"
cs1.save
It should fail. You can check the errors and it will say:
Integration ID already in Use.
cs1.errors.first
You can repeat these steps using the field "sis_source_id".
Change-Id: Icc0f124c6b34bf5cf12109c744c4343deb955cbf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260250
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>
fixes VICE-939
flag=none
create a menu based component for discussion threads
TEST PLAN:
1) run "yarn jest ThreadActions" to see what tests
were created.
2) run "yarn storybook". Via browser gui:
under Examples > Discussion Posts > Thread Actions.
You can see a menu component with several stories.
Change-Id: Ic3d4113105674e661dd8017f279aaa3e5571784c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260093
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
A bug is preventing the year from being set to something other than
the current year in the course availability options. This change
fixes that issue by showing the year in the input itself, which is
probably a good thing anyway since tons of courses span 2 calendar
years.
A side affect of this change is that we need to increase the size of
the CanvasDateInput inputs to allow for the extra details in the
input.
fixes LS-1962
flag=new_course_availability_ui
Test plan:
- Enable the flag at siteadmin
- In a course's settings, change the course start or end date to
something next year
- Save the page and expect the year change to persist.
Change-Id: I468e2a9bad832062e42dbb206da1b55bea7564db
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260203
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: Jackson Howe <jackson.howe@instructure.com>
closes: DE-499
Improve the flow of docker_dev_update, incorporate new
rebase_canvas_and_plugins script.
Test Plan:
- Jenkins Passes
- Run docker_dev_update with no uncommitted changes
-no command options; script updates docker containers
-with --update-code; rebases repos, updates docker
-try a variety of skip-plugins and skip-canvas
-script skips repos as expected
-Run with uncommitted changes to canvas or a plugin
-no command options; updates docker containers
-with update-code; prompted to stash or skip
-rebases correctly if stashed
-use different combinations of skip-canvas and
skip-plugins; script will skip as expected
Change-Id: I6cf96f2455ca798bc37d8b324190b955ab8bdaa1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259133
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
closes OUT-4250
flag=none
test-plan:
- Import Common Core Standards into your account
> guid: "964E0FEE-AD71-11DE-9BF2-C9169DFF4B22"
- View Common Core > Math > Grade 1 > .. 1.G Geometry >
.. 1.G.A > .. G.A.2
> verify that the end of the description includes 'Students
do not need to learn formal names ...' as this
was a clarification standard that was rolled up into its parent
Change-Id: Ib7851e26430ffd82e238a94a6069278450b8a463
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259829
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Jody Sailor
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
test plan
- specs should pass
flag=none
fixes VICE-921
Change-Id: I119bd04efe170dd40f648cc487b1ca41305a4a6e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260088
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Matthew Lemon <mlemon@instructure.com>
QA-Review: Matthew Lemon <mlemon@instructure.com>
Product-Review: Matthew Lemon <mlemon@instructure.com>
In order to gather telemetry data for local dev installation we are
adding a functionality that will report telemetry data only if
the end user enable telemetry in the local machine.
If telemetry is not enabled the docker_dev_setup script behaves the same
way it was before adding telemetry capabilties.
refs DE-478
flag=none
test-plan:
- Ensure docker_dev_setup succeeds with telemetry enabled
- Ensure docker_dev_setup succeeds with telemetry activation failed
- Ensure docker_dev_setup succeeds without telemetry snippet
- Ensure no sensitive data are sent to telemetry service
- Ensure docker_dev_setup succeeds if some telemetry requirements are
missing on the local machine
- Ensure input echo is hidden if telemetry is enabled
- Ensure input echo is enabled if telemetry is disabled
Change-Id: Ic14ce5fe251d580a50f7c5a20b5c145e9a68c1a8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/257178
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
fixes LS-1915
flag=none
test plan:
- Enable the Scheduler setting for the account
- Create a published course with a teacher and a student
- Add an appointment group with at least one time slot as the teacher
- Sign up for the appointment as the student
- Delete the appointment as the teacher
- See the notification does not have a link to reschedule
Change-Id: I06a0f779a7b3690a460e9ac6403158509d7ae914
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260076
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>
Course post policies are automatically created in the after save callback
now, so this spec is out of date and not needed. It is failing due to
attempting to create, edit, and replace the existing post policy.
closes EVAL-1116
flag=none
Test Plan:
- specs pass
Change-Id: Ie59cfc88da4e9b2a78e4ea0c66c248f716a75ca7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260138
Reviewed-by: Syed Hussain <shussain@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes OUT-4008
flag=improved_outcomes_management
Test plan:
- In the Account, create outcome group Group1 with two outcomes:
Outcome1 and Outcome2
- Create a rubrik and align Outcome2 with that rubrik
- Repeat the above outcomes creation for a Course
- Go to Account > Settings > Feature Options
- Enable Improved Outcomes Management FF
- With Improved Outcomes Management FF Enabled
- Go to Account > Outcomes
- Select Group1 via TreeBrowser then select from kebab menu
of Outcome1 "Remove" option
- A modal should open and ask you to confirm outcome removal
- Close the modal via click on 'Cancel' or X button
- Reopen the modal by selecting Remove from Outcome1 kebab menu
- Click on 'Remove Outcome' button; modal should close and after
few seconds a flash notification should confirm outcome removal
- Reload the page and select Group1 via TreeBrowser;
you should no longer see Outcome1 in the list of outcomes
- Repeat above steps with Outcome2; removal should fail and you
should see a flash notification with error message
- Reload the page and select Group1 via TreeBrowser;
you should still see Outcome2 in the list of outcomes
- Go to Course > Outcomes
- Repeat the same tests as for Account
Change-Id: I6a9e575195b1ff7f0761268e3f929d930fe75f2e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260085
Reviewed-by: Pat Renner <prenner@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Pat Renner <prenner@instructure.com>
Product-Review: Jody Sailor
closes OUT-4212
flag=improved_outcomes_management
test plan:
- Prereq: FF turned on and Account/Course with groups and
outcomes
- Navigate to Course with Outcomes
- Click on Kebab Menu next to Outcome Group title Header
- Click on the Move option
- Modal should display with the 'Move "{Outcome group title}”'
with the “Where do you want to move the group?” message.
- The Tree browser should render with root outcome groups
displayed
- Clicking on a group should reveal subgroups, if applicable.
- The Move button will not function. Clicking the Cancel button will
return the user back to the screen with the kebab focused.
- Repeat same steps at Account level.
Change-Id: Id36f884e0f2ee3d282c1c4be81cc93a649805ffd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/258945
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Jody Sailor
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Pat Renner <prenner@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Fixes FOO-1674
flag = none
Update webpack-cli dependency to pull in a bugfix which was
preventing the webpack:analyze tool from working.
Test plan:
* yarn webpack:analyze works again
* nothing else broke (major version number changed!)
Change-Id: I5f6ee48ea7b24bda9e13e73f44cee8cf23abfc22
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260189
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: Charley Kline <ckline@instructure.com>
When an account enables k5 mode, store that account's id in its root
account's settings hash. Similarly, when an account disables the
setting, remove it from the set.
Also updates the checks on the dashboard to see if a user should see
the k5 dashboard based on whether they're associated with an account
who has enabled the k5 setting and with a root account where the FF is
enabled.
flag=canvas_for_elementary
closes LS-1919
closes LS-1920
Test plan:
- Have an account with a subaccount
- Enable k5 FF at the root
- In the subaccount's account settings, enable the k5 setting
- In a rails console, expect
`Account.find({root_id}).settings[:k5_accounts]` to include the
account id of the subaccount
- Disable the subaccount k5 setting
- Expect the query to now not include anything
- Enroll a user in a course that's part of a subaccount with the
k5 setting enabled
- On that user's dashboard, expect to see k5 dashboard
- Disable either the setting or the flag; expect to see traditional
dashboard
- Expect other user's dashboards not to be affected
Change-Id: I7a70a10063fad8f78677cf8be9be77cbdb1a49d7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259865
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: Jackson Howe <jackson.howe@instructure.com>
fixes VICE-936
flag=none
Creates PodcastFeed button with a prop link
which directs a user to a discussions RSS feed.
TEST PLAN:
1) yarn jest PodcastFeed tests run successfully.
2) yarn storybook interface renders component successfully
with prop link redirecting sucessfully.
Change-Id: I68f6fc59493ddd7619062fd6e6f0ce2130eef5c0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/259813
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>
Change-Id: I62e952a7e664a6326bafff665e5809bbaa16f216
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260186
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
Tested-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
These aren't quite perfect (in particular rails offers no mechanism to specify gender,
so currently these use whatever is the "default" ordinalization for the language),
but they should allow us to use `number.ordinalize` for things like maintenance windows.
Change-Id: I014ec1b6aa1fecad2ed079bde7b78f8a164b8dd9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260137
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jacob Burroughs <jburroughs@instructure.com>