Fixes: CNVS-35833
There is a lot more than just moving to Consul going on here. The whole
PrefixProxy business wouldn't be required for this change, but it will
be really useful as we move to adding cluster awareness.
Test Plan:
- Have MathMan running
- Update config/consul.yml to enable use_for_svg and
use_for_mml under the math-man init values key
- Start Canvas
- Build an equation with the rich content editor
- The equation should be rendered as usual.
Change-Id: I650527ebaecb6224c6ee6ba26346d27dee33b9d7
Reviewed-on: https://gerrit.instructure.com/111543
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Tyler Pickett <tpickett@instructure.com>
fixes CNVS-37803
test plan
- call destroy with replace on user attachment
- it should work if caller has permission to
masquerade as the attachments owner
Change-Id: Id74c37bfa5c2d775ba0d4d091b0fced3a05cd062
Reviewed-on: https://gerrit.instructure.com/116904
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
if the slave is behind, it would cause the report to fail immediately
Change-Id: I7b92c05d8bafcbd6f554b8095dd70fcbb2911a6e
Reviewed-on: https://gerrit.instructure.com/116902
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
refs FALCOR-210
Test plan
- Ensure the new user tutorial feature is on for all new users
Change-Id: Iba1ae69526ab4e6c8776cfb175940cc1614a99f7
Reviewed-on: https://gerrit.instructure.com/116894
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
Closes FALCOR-391
Test Plan:
* As a student
* In a course with Student Planner enabled
* GET /api/v1/planner/items
* The response should be returned in order by the objects'
due dates, todo dates, or posted dates
* GET the next page (bookmark) of results
* The response should continue in the same order
Change-Id: Ic0b6ed8f51551ff8839cc11913e94b26709bc0c7
Reviewed-on: https://gerrit.instructure.com/116478
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
closes CNVS-37800
test plan:
* Ensure specs pass
Change-Id: I3b070b131f60c8437c4e7e79aba6d5f0e6a6ccea
Reviewed-on: https://gerrit.instructure.com/116879
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
QA-Review: Keith T. Garner <kgarner@instructure.com>
closes CNVS-37800
test plan:
* Create a course with multiple grading periods and at least one
student enrolled in it and at least two assignments, one in
each GP
* Ensure the grading periods have "show total for all grading
periods" unchecked
* Go to Gradezilla
* Show the Grading Period filter and choose "All Grading Periods"
* Reload Gradezilla
* Verify you don't see any total column and the filter continues
to say "All Grading Periods"
* Switch to another grading period
* Verify you do see the total column now and the filter says the
name of the grading period
* Verify the assignments are filtered to just the ones that
belong in that grading period
Change-Id: I09c1a7f336cbd141442179aad1c2d3cae0ae5af0
Reviewed-on: https://gerrit.instructure.com/116871
Tested-by: Jenkins
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
This was causing some warnings to show up because this triggered
ApplyTheme to be called which should not be the case when canvas-planner
is used within Canvas.
closes FALCOR-396
Test Plan:
- Enable planner
- It should load fine
- Enable High Contrast Mode
- It should load properly
Change-Id: Ief193f2bf72c0badc503579a61f2c61909398320
Reviewed-on: https://gerrit.instructure.com/116662
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
fixes CNVS-37775
test plan:
* visit gradebook for a course with multiple sections
* enable visibility of the section filter
* ensure all students are visible when "All Section" is selected
* ensure selecting sections filters out unrelated students
Change-Id: I5bc0afd2dd8402bb31a806089bf43389d3b3de96
Reviewed-on: https://gerrit.instructure.com/116862
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
the new version of the rce and skin no longer incorrectly display the
font size of text in tables. many of the canvas style overrides have
also been moved to the skin and are no longer needed in canvas.
the initial push of this fix broke several rcs selenium tests due to a
circular destroy chain. https://gerrit.instructure.com/#/c/116660/ fixes
that and has been published to npm as v2.2.0-alpha.1. we should test this
patchset against that npm version
fixes CNVS-37517
test plan:
- run yarn install first to get new dependency versions. canvas-lms should
be version 2.2.0-alpha.1
- test rcs and legacy editors
- insert a table, type in a cell, text should be same size as outside
the table (shows as 11pt in toobar)
- test the toolbar nav with and without high contrast (alt+f10)
- toolbar styles should match colors and have a triangle under for
active state, and a border for focus state, and both when focusing
on an active button
- create a discussion thread
- add a reply to the discussion thread
- edit the reply to the discussion thread
- verify that this works and has no console errors
Change-Id: I7e8696cf54afda6de08fa729452f14fc1868510a
Reviewed-on: https://gerrit.instructure.com/116036
Tested-by: Jenkins
Product-Review: brian kirkby <bkirkby@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Reviewed-by: brian kirkby <bkirkby@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Closes FALCOR-233
Test Plan:
* Go to Account->Settings->Feature Options. There should now not
be any setting for "Duplicate Objects"
* It should still be possible to duplicate assignments and wiki
pages (except for discussion topics and quizzes)
Change-Id: Ib75ebdbc7852e1e11e455e4c72633b6bc9d64385
Reviewed-on: https://gerrit.instructure.com/116813
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
refs PLAT-2647
test plan:
• using an lti2 JWT
• create several hundred subscriptions
• do a GET request to /api/lti/subscriptions
• expect to see a list of subscriptions up to the default limit of
100 per result set
• look for an 'EndKey' header and put that value in your next request
as a header field called `StartKey`
• repeat this process until you have fetched all pages
Change-Id: I74c4029a245716a1f4bc6648348f52426d447e9b
Reviewed-on: https://gerrit.instructure.com/116795
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Product-Review: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
this is working and has a spec, but it is using it wrong
this makes it user it better
Change-Id: I966167664e24b5bbff32d5afc367245ed8ad634c
Reviewed-on: https://gerrit.instructure.com/116708
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
closes CNVS-36725
Test Plan:
1. Create a new course
2. Add a "Homework" assignment group to the course
3. Create two assignments in each assignment group
4. Enable "New Gradebook" for the course
5. Make sure grading period and module filters are set
to their default settings (no filtering)
6. Navigate to the gradebook; no filter dropdowns
should be visible, all assignment columns visible
7. Check "Filter > Assignment Groups" under "View";
dropdown should appear with "All Assignment Groups"
8. Select "Assignments" from the dropdown, only
assignments in the selected group should be shown
9. Select "Homework" from the dropdown, only
assignments in the selected group should be shown
10. Uncheck "Filter > Assignment Groups" under "View";
The assignment group dropdown should disappear, but
only the "Homework" the assignment columns should
be shown.
Change-Id: I834571a9423d4c885c894cd2855cb9aa79059b9f
Reviewed-on: https://gerrit.instructure.com/115250
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
fixes CNVS-37703
test plan
- it should not say expired.
Change-Id: Ib42bec23749ab0e0d825ab9c6f934cd3f1b93bc0
Reviewed-on: https://gerrit.instructure.com/116702
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
* Closes FALCOR-139
* Closes FALCOR-140
* Closes FALCOR-141
Test Plan:
* Create a course, and make a wiki page.
* If "Duplicate Enabled" feature option is set, then a duplicate
option should occur on the cog next to the page you created.
* When this is clicked, a new page should pop up below unpublished,
with focus on the cog of the new page.
* (If you make a page that is an assignment, the new page will also
show up on the assignments list)
* A student should not be able to see this option, and if the
feature flag is off, this option also should not appear.
* A wiki page assignment can now also be duplicated from the
"Assignments" list as well.
* Discussion and Quizzes still cannot be duplicated from the
"Assignments" list
* Title convention: If title does not end in "Copy" or "Copy #"
will append "Copy" to the end of the title.
* After doing the above, finds the lowest number that doesn't
duplicate an existing assignment or wiki page name (if a number
is needed to effect this)
* In the above search, if a "#" is present on the title, *always*
starts from the # given. So "Copy 7" will go to "Copy 8" even
if 1-6 are not used.
Change-Id: Ib595a859b9186f934626b56e94a00eea231baa5a
Reviewed-on: https://gerrit.instructure.com/115934
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
fixes CNVS-37717
test plan
- run sis import that would generate errors
- the json for the import api should have an
errors_attachment object
- the ui should have a download file option
Change-Id: I2c6f94b601be5777b8a57f4b5b56f9f2215869ec
Reviewed-on: https://gerrit.instructure.com/116523
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
refs CNVS-37717
test plan
- run sis import that would generate errors
- in console it should have an errors_attachment
- the attachment should contain all the errors
Change-Id: I8e76d29395047b1ee743e42394432baea27d7c3a
Reviewed-on: https://gerrit.instructure.com/116522
Tested-by: Jenkins
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
fixes: CNVS-37602
Test Plan:
1. Navigate to GradeZilla
2. Open an assignment column header menu
3. Press keys while the menu is open
- When you press TAB:
Observe that the menu closes and the next item
in the normal grid navigation flow is focused
- When you press SHIFT+TAB:
Observe that the menu closes and the previous item
in the normal grid navigation flow is focused
- When you press ESC:
Observe that the menu closes and the menu trigger
is focused
- Other keys should behave as before
a. up/down arrow keys focus menu items
b. left/right arrow keys expand/collapse flyouts
- Nested flyouts should also trigger navigation upon
these key presses
4. Select a menu item
- If a modal appears:
a. Observe that the focus is placed within the modal
b. Observe the header menu trigger is refocused
when the modal is closed
- If a modal doesn't appear:
a. Observe the header menu trigger is refocused
5. Repeat 2-4 with all column header types
- Assignment Group column headers
- Student column headers
- Total Grade column header
Change-Id: I7cd50a5bc2c598b5bf899f7a5d17998fc4f4ec04
Reviewed-on: https://gerrit.instructure.com/115864
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
Reviewed-by: Sheldon Leibole <sheldon@siimpl.io>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Edit some spec numbers in other specs,
clean some code.
add dropdown specs.
Patch set 22: ALL HAIL GERGICH
Change-Id: Iaaddae9a2d75e28284f940d93fbee12c240bd77c
Reviewed-on: https://gerrit.instructure.com/116272
Tested-by: Jenkins
Reviewed-by: David Tan <dtan@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
The "Unposted" menu item is now only shown in New Gradebook if the
New Gradebook Development feature flag is enabled.
closes CNVS-37763
Test Plan:
1. In a course that has the "New Gradebook" feature enabled and the
"New Gradebook Development" feature disabled at the account-level,
go to the gradebook.
2. Click on the menu toggle in an assignment header cell. Click on
"Sort by". Verify there is no option for "Unposted" in the
flyout menu for "Sort by" options.
3. Enable "New Gradebook Development" at the account-level. Go to the
gradebook.
4. Click on the menu toggle in an assignment header cell. Click on
"Sort by". Verify there is an option for "Unposted" in the
flyout menu for "Sort by" options.
Change-Id: I091971741ad0b585218827153744a716e899fb5b
Reviewed-on: https://gerrit.instructure.com/116750
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
refs CNVS-37743
Test plan:
* Create a course with an assignment and a student
* Mark the student as inactive
* Mute the assignment
* Grade the student
* Unmute the assignment
* The score in the backend should match the student's grade in the GB
Enrollment.find_by(course_id: <course_id>, user_id: <user_id>).computed_current_score
Change-Id: Ifa7f3c7c1b6880eb5e9114878fee5a3579343384
Reviewed-on: https://gerrit.instructure.com/116651
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
closes CNVS-37607
QA Note:
"works as intended" means that behavior should not have changed.
test plan:
A. create a course with:
* active, inactive, and concluded students
* grading periods
* multiple sections
* at least one assignment
B. visit New Gradebook
C. verify that:
1. filtering by grading periods:
a. updates grades accurately
b. re-sorts students (when sorting by grades)
2. filtering by sections:
a. renders the grid with only students in that section
b. renders the grid with all students when unfiltering
c. re-sorts students according to persisted settings
3. sorting by any setting works as intended when applied
4. filtering by search term works as intended
5. enabling inactive or concluded enrollments inserts student
rows in pre-sorted positions
6. disabling inactive or concluded enrollments removes the
relevant student rows
Caveats:
Assignment Group and Total Grade sorting do not persist.
Filtering will reload students, causing a re-sort. For assignment
group and total grade sorting, the previous persisted sort
setting will be applied.
Change-Id: Iadbd50df48adfc337a40b29bc68d1dd0b7a73533
Reviewed-on: https://gerrit.instructure.com/115693
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
closes CNVS-37758
test plan:
- Create a course that has some active students, grade the students,
and conclude the course. Enable New Gradebook and go to the
gradebook.
- hit the user_ids endpoint and confirm that the once active students
still show up now that they are concluded
Change-Id: Id9c3ddacf07b3a8b6b7c9d0a04f005d006747aa5
Reviewed-on: https://gerrit.instructure.com/116726
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
closes #CNVS-37756
Change-Id: I7bbde3d6d9c61d37b2f2ac083aad9119dbf5aaca
Reviewed-on: https://gerrit.instructure.com/116722
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
closes CNVS-37752
Test Plan:
1. Create a course that has some active students, inactive students,
concluded students, and a fake student. Enable New Gradebook and go
to the gradebook.
2. Click on the student header and select 'Inactive enrollments' and
'Concluded enrollments'. Then select 'Sort by -> A-Z'.
3. As a teacher in the course, hit the user_ids endpoint and verify you
get a list of user IDs back. The user IDs should be ordered such
that their corresponding users' names are in alpha ascending order.
The list of user IDs should also include inactive and concluded
students' IDs. The fake student's ID should always be last.
4. Go to the gradebook and click on the student header. Select 'Sort by
-> Z-A'.
5. Hit the user_ids endpoint and verify the returned user IDs are now
ordered such that their corresponding users' names are in alpha
descending order. The list of user IDs should also include inactive
and concluded students' IDs. The fake student's ID should be last.
6. Go to the gradebook and click on the student column header. Deselect
the 'Inactive enrollments' and 'Concluded enrollments' options.
7. Hit the user_ids endpoint and verify the returned user IDs no longer
include IDs for inactive or concluded students. The IDs should still
be ordered such that their corresponding users' names are in alpha
descending order. The fake student's ID should be last.
8. Go to the gradebook and click on the total grade header. Select
'Sort by Grade -> Low to High'
9. Hit the user_ids endpoint and verify the returned user IDs are
ordered such that their corresponding users' current total grades
are in ascending order. The fake student's ID should be last.
10. Go to the gradebook and click on the total grade header. Select
'Sort by Grade -> High to Low'
11. Hit the user_ids endpoint and verify the returned user IDs are
ordered such that their corresponding users' current total grades
are in descending order. The fake student's ID should be last.
12. In the same manner as the steps above, make sure changing the
following settings in the gradebook causes the user_ids
endpoint to return an array of IDs ordered according to the
gradebook sort preferences, with the fake student's ID sorted last:
a) Assignment column header -> Sort by Grade -> Low to High
b) Assignment column header -> Sort by Grade -> High to Low
c) Assignment column header -> Sort by -> Missing (the user_ids
endpoint should return all users with a missing submission for
that assignment first)
d) Assignment column header -> Sort by -> Late (the user_ids
endpoint shoudl return all users with a late submission for that
assignment first)
e) Select a grading period and sort by total grade. The user_ids
endpoint should return user IDs that are ordered such that their
corresponding users' grades are in ascending or descending order
for the selected grading period.
13. Conclude the course. Hit the user_ids endpoint as the teacher and
verify you do not get a 401 response.
* Note: Sorting by assignment group totals is not currently supported.
Change-Id: I6c4b16b72e051d46cc7b7521949d5c82b92960b9
Reviewed-on: https://gerrit.instructure.com/116698
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
When sorting an assignment by "Missing" in the New Gradebook, we will
now sort submissions based on their 'missing' attribute, instead
of checking the workflow state of the submission.
closes CNVS-37747
Test Plan:
1. In a course with multiple students and New Gradebook enabled, create
an assignment that is due in the past. Submit to the assignment for
some students and don't submit to the assignment for other students,
so that some students are missing and others are not.
2. For one of the not-missing students, go into the rails console
and set the late_policy_status on their submission to "missing".
submission = Assignment.find(<assignment_id>).submissions
.find_by(user_id: <user_id>)
submission.update!(late_policy_status: "missing")
3. Go to the New Gradebook and sort by missing for the assignment from
step 1. Verify all missing submissions are sorted to the top rows
(including the submission that you set the late_policy_status to
"missing" for)
Change-Id: Ibbb3ced15c76c81b5feb468a9bef42cc07e8800e
Reviewed-on: https://gerrit.instructure.com/116676
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
test plan: On the Inbox page,
* From each of the three places on the page you can Reply, Reply All, or
Forward, after an action is completed (or canceled by closing the
dialog without sending), focus should return to the button or cog menu
that initiated the action.
1. From the toolbar at the very top of the page
2. From the toolbar at the top of the right-side column
after a conversation has been selected on the left side
3. From the reply button or cog menu that appears next to
a single message when you hover over it
* When a conversation is deleted via the garbage can icon at the top
of the page, the "compose" button should receive focus afterward
* When a conversation is deleted via the cog menu at the top of the
right-hand column, focus should proceed to
(a) the star icon on the last conversation in the left column, or
(b) the search box at the top right, if no conversations remain
* When a message is deleted via the cog menu that appears on hover,
the previous message's cog menu should be focused (or the cog menu
on the top of the right-side column, if the first message is deleted,
or follow the previous asterisk point if the only remaining message
in the conversation is deleted)
* When a deletion is canceled (from any of the three places you can
delete), focus should return to the button or cog that initiated
the action
closes CNVS-37079
closes CNVS-37082
Change-Id: If656f03f588fa2423eab9a05cd370e53a19c3205
Reviewed-on: https://gerrit.instructure.com/115919
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Add endpoint to gradebooks controller which returns user ids sorted
according to the user's gradebook sort preferences.
closes CNVS-37608
Test Plan:
1. Create a course that has some active students, inactive students,
and concluded students. Enable New Gradebook and go to the
gradebook.
2. Click on the student header and select 'Inactive enrollments' and
'Concluded enrollments'. Then select 'Sort by -> A-Z'.
2. As a student in the course, hit the new endpoint to get user IDs
(GET /courses/:course_id/gradebook/user_ids). Verify you get a 401
unauthorized response.
3. As a teacher in the course, hit the user_ids endpoint and verify you
get a list of user IDs back. The user IDs should be ordered such
that their corresponding users' names are in alpha ascending order.
The list of user IDs should also include inactive and concluded
students' IDs.
4. Go to the gradebook and click on the student header. Select 'Sort by
-> Z-A'.
5. Hit the user_ids endpoint and verify the returned user IDs are now
ordered such that their corresponding users' names are in alpha
descending order. The list of user IDs should also include inactive
and concluded students' IDs.
6. Go to the gradebook and click on the student column header. Deselect
the 'Inactive enrollments' and 'Concluded enrollments' options.
7. Hit the user_ids endpoint and verify the returned user IDs no longer
include IDs for inactive or concluded students. The IDs should still
be ordered such that their corresponding users' names are in alpha
descending order.
8. Go to the gradebook and click on the total grade header. Select
'Sort by Grade -> Low to High'
9. Hit the user_ids endpoint and verify the returned user IDs are
ordered such that their corresponding users' current total grades
are in ascending order.
10. Go to the gradebook and click on the total grade header. Select
'Sort by Grade -> High to Low'
11. Hit the user_ids endpoint and verify the returned user IDs are
ordered such that their corresponding users' current total grades
are in descending order.
12. In the same manner as the steps above, make sure changing the
following settings in the gradebook causes the user_ids
endpoint to return an array of IDs ordered according to the
gradebook sort preferences:
a) Assignment column header -> Sort by Grade -> Low to High
b) Assignment column header -> Sort by Grade -> High to Low
c) Assignment column header -> Sort by -> Missing (the user_ids
endpoint should return all users with a missing submission for
that assignment first)
d) Assignment column header -> Sort by -> Late (the user_ids
endpoint shoudl return all users with a late submission for that
assignment first)
e) Select a grading period and sort by total grade. The user_ids
endpoint should return user IDs that are ordered such that their
corresponding users' grades are in ascending or descending order
for the selected grading period.
* Note: Sorting by assignment group totals is not currently supported.
Change-Id: I4a36aa5b82d87f49d2396bbc16e1cc56e89eba0f
Reviewed-on: https://gerrit.instructure.com/116491
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Fixes: FALCOR-378
Note for CR:
Sticky positioning CSS has to be applied to the outermost dashboard
header DIV for it to work (it needs to be a sibling of the main dashboard
content).
Unfortunately, the dashboard header DIV is also the mount point for the
<DashboardHeader /> component, and I couldn't figure out how to add
classes to it based on what dashboard view was showing.
This is why I'm adding classes to the body :(
Test plan:
Log into Canvas as a student. Make sure the planner
is turned on in accounts settings first.
Chrome, Firefox, Safari:
- All dashboard headers (Cards, List, Recent Activity) should be sticky
IE:
- The dashboard header will only be sticky for Planner
- You should no longer see the bug described in the JIRA ticket
Change-Id: Ie1bcf30567ff91413ee0b569c9ed434d1fd1320f
Reviewed-on: https://gerrit.instructure.com/116620
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Closes PLAT-2624
Test Plan:
- Create an OriginalityReport with an originality score
set to nil and a workflow state of pending.
- Verify that a clock icon appears in the UI for that
originality report
- Set the workflow state to 'error'
- Verify that a `!` icon appears in the UI for that
originality report in gradebook and on the
student grade page.
- Set the originality score
- Verify that the report icon is rendered as before
- Verify TII and Vericite originality reports render
as before
Change-Id: Ia8d0f9718a41380341ba3e5e985105a363d617ef
Reviewed-on: https://gerrit.instructure.com/116154
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
Closes PLAT-2686
Test Plan:
- As a student create submissions for several assignments
- Retrieve gradebook history via the api for that student:
/api/v1/courses/<id>/gradebook_history/feed?user_id=<id>
- Verify that an n+1 query does not occure for originality
reports. (the repeating query we want to avoid look something like this:
SQL OriginalityReport Load (4.1ms) SELECT "originality_reports"
.* FROM "originality_reports" WHERE "originality_reports"
."submission_id" = 55487625)
Change-Id: Id5ba23772bc3eaa3b7ac253b4e6c61a8744ed6b3
Reviewed-on: https://gerrit.instructure.com/116270
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
test plan:
* have a blueprint course with an assignment
with points locked
* sync to an associated course
* add a rubric to the assignment with a different
points possible than the assignment and
check to use it for grading
* it should not change the assignment points
closes #MC-263
Change-Id: If403205efdddb0489e9590ac4e0770afb926d025
Reviewed-on: https://gerrit.instructure.com/116375
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
the user enters text in the Associations modal search text box, and
the UI shows the courses that match on name, short name or sis id
closes MC-264
Test plan:
- run the test and it passes
Change-Id: I859abca242a7fbf396c13bb5c3a28443da3e74c7
Reviewed-on: https://gerrit.instructure.com/116107
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
The current markdown for the IMS LTI specification link invariable
substitutions documentation is terribad. This changes it to html so the
link actually works
Test plan:
1) run localhost Canvas
2) build the API docs (docker-compose run --rm web bundle exec rake doc:api)
3) navigate to <your host url>/doc/api/file.tools_xml.html
4) make sure the IMS LTI specification link works
Fixes PLAT-2630
Change-Id: I64f23030aeb7236b86eec945b2db3d53f9528c42
Reviewed-on: https://gerrit.instructure.com/116596
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
test plan:
* have a graded quiz in a blueprint course
* use granular locking with different settings
for quizzes and assignments
* lock the quiz on the assignments page
* it should use the quiz locking scheme
closes #MC-278
Change-Id: I2b2cb78fc701878c5fb8028fdf56cc07e32b6e90
Reviewed-on: https://gerrit.instructure.com/116560
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
Fixes: SIS-2682
Test plan:
- Navigate to the Feature Options tab in the Account Settings page
- Confirm the new description is present for the "Enable new SIS
integration settings"
Change-Id: I877c16a7407fcf77ef5a4ad1b029f61dc2a5257d
Reviewed-on: https://gerrit.instructure.com/115698
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Oxana