fixes CORE-616
it's still not super fast, but at least it's usable
Change-Id: I55b6626b0c4f8d6c32f3466468d72bdcb5e87a3d
Reviewed-on: https://gerrit.instructure.com/132225
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fixes ADMIN-102
Test Plan:
- Create a practice quiz
- Take a practice quiz
- Go to planner
- Notice it shows
Change-Id: I42d20ebf33f50678a40a012bdac4be2f8e92b1f5
Reviewed-on: https://gerrit.instructure.com/132022
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
we already show all groups in the menu, just not
the menu
fixes CNVS-39650
test plan
- have a cross shard group
- you should be able to get to it from global nav
Change-Id: I2806cd78ec7079abb8967c09fe33a2eb82efd5df
Reviewed-on: https://gerrit.instructure.com/128467
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
refs GRADE-218
QA Notes:
The `version`, `new_gradebook`, and `new_gradebook_development`
parameters are available in development only. Using these will
override the related preference, feature flag, and ENV variable
for the loading of Gradebook. They will not change the values
persisted for these settings.
Using `version` will override whichever user-preferred version of
Gradebook has been previously saved and instead load the version
of Gradebook corresponding to the `version` parameter.
Uses of the `version` parameter:
--------------------------------------------
| default | default gradebook |
| 2 | default gradebook |
| individual | individual gradebook |
| srgb | individual gradebook |
| < absent > | uses user-preferred version |
--------------------------------------------
Using `new_gradebook` will override the New Gradebook feature
flag, loading Gradebook as though the Feature Flag is set to the
value provided with the `new_gradebook` parameter.
Uses of the `new_gradebook` parameter:
---------------------------------------
| true | New Gradebook enabled |
| false | New Gradebook disabled |
| < absent > | uses feature flag |
---------------------------------------
Using `new_gradebook_development` will override the
GRADEBOOK_DEVELOPMENT ENV variable, loading Gradebook as though
the variable is set to the value provided with the
`new_gradebook_development` parameter.
Uses of the `new_gradebook_development` parameter:
---------------------------------------------------
| true | New Gradebook Development enabled |
| false | New Gradebook Development disabled |
| < absent > | uses env variable |
---------------------------------------------------
test plan:
A. disable New Gradebook in non-development
1. visit Gradebook and select Individual Gradebook
2. ensure SRGB loads
3. select Default Gradebook
4. ensure Default Gradebook loads
5. ensure the version parameter has no effect
6. ensure the new_gradebook parameter has no effect
7. ensure the new_gradebook_development parameter has no effect
B. disable New Gradebook in development
1. visit Gradebook and select Individual Gradebook
2. ensure SRGB loads
3. select Default Gradebook
4. ensure Default Gradebook loads
5. ensure the version parameter takes effect
6. ensure the new_gradebook parameter takes effect
7. ensure the new_gradebook_development parameter takes effect
C. enable New Gradebook in non-development
1. visit Gradebook and select Individual Gradebook
2. ensure "New" SRGB loads
3. select Default Gradebook
4. ensure "New" Default Gradebook loads
5. ensure the version parameter has no effect
6. ensure the new_gradebook parameter has no effect
7. ensure the new_gradebook_development parameter has no effect
D. enable New Gradebook in development
1. visit Gradebook and select Individual Gradebook
2. ensure "New" SRGB loads
3. select Default Gradebook
4. ensure "New" Default Gradebook loads
5. ensure the version parameter takes effect
6. ensure the new_gradebook parameter takes effect
7. ensure the new_gradebook_development parameter takes effect
Change-Id: I9088e9a66e2213b12eac95fa93b15f7253e0b9dd
Reviewed-on: https://gerrit.instructure.com/105658
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
move the need_grading_info subquery on submissions
into the main query so we can restrict it to the
submissions that have provisional grades
test plan:
* the to-do list should behave the same as before
for graders for moderated grading assignments
closes #GRADE-272
Change-Id: I9fb83636ac058393e393874867f5f57ad8128955
Reviewed-on: https://gerrit.instructure.com/126246
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes CNVS-38846
this also fixes the group memberships report for multi-shard users
test plan:
* add multiple pseudonyms to a user
* enroll that user in a course
* do a provisioning report
* that user should only have one row per enrollment
Change-Id: Iba2077e52a86182cf79ab83e918125ba7e08fc42
Reviewed-on: https://gerrit.instructure.com/124086
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Change-Id: If5179f631f482e3f8dfcb3ad2fba807c5f070b4b
Reviewed-on: https://gerrit.instructure.com/124940
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
refs #CNVS-38980
Change-Id: I8da10dca766ff0317c9a035b09dd1a0df41a84e6
Reviewed-on: https://gerrit.instructure.com/124882
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan: submissions more than four weeks old that have comments
that are also more than four weeks old should not appear in a
user's "Recent Feedback".
if you don't have such data available in your sandbox, you
should be able to fake it via the Rails console with something
like this (with a suitable submission object):
submission.update_attributes(:created_at => 1.year.ago, :updated_at => 1.year.ago)
submission.submission_comments.update_all(:created_at => 1.year.ago)
fixes CNVS-38820
Change-Id: Iabaa206bbf3c520201748de5adbfbda6c25ac7a6
Reviewed-on: https://gerrit.instructure.com/124552
Tested-by: Jenkins
Reviewed-by: Venk Natarajan <vnatarajan@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
refs FALCOR-544
refs FALCOR-539
Test plan
- Create some grading items and some discussions/announcements
- Ensure they are not showing up with the new_activity flag
- in the API yet
- Ensure they do not show new_activity for submissions
- Grade or add feedback to the grading items
- Reply to the discussion/announcements
- Ensure that the api now does show new_activity
Change-Id: I8cf448c3296c21057aba9a9006b8efd8044986bd
Reviewed-on: https://gerrit.instructure.com/120658
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Christi Wruck
test plan:
* have multiple students submitted to a moderated grading
assignment
* review one of the submissions
* the assignment should only appear once in the todo list
closes #CNVS-38312
Change-Id: Id5e2864aed0b2d2bec5718aa09c43239f58fba58
Reviewed-on: https://gerrit.instructure.com/119961
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes CNVS-38231
test plan
- delete an admin
- admin should be gone from every where
- admin should not have permissions to do stuff
Change-Id: I56c90a12b2be879c5d646c1ab6980693ff161673
Reviewed-on: https://gerrit.instructure.com/119220
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
Tested-by: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
Change-Id: Ic6e4f64874021639f5e8950e2fe42f714ae31250
Reviewed-on: https://gerrit.instructure.com/120225
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: Ieef3d3447cfa2b22c9c9f6662688a40ae48a726c
Reviewed-on: https://gerrit.instructure.com/119730
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Replace crocodoc_ids with moderated_grading_ids
Both canvadocs and crocodoc can use the ids now
refs RD-4238
Test Plan:
With a course that has one teacher, 2 TAs, and a student
- Create an assignment, check the moderated grading check box
- as the student submit the assignment
- as a TA, pull up the submission in speed grader, annotate and grade it
- as the Other TA, open the submission in speed grader
- make sure you cant see the first TAs comments
Change-Id: I886af3e21f9276866ea4be8d5de6574b32e5f122
Reviewed-on: https://gerrit.instructure.com/117360
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Fixes FALCOR-510
Test Plan:
* With "Student Planner" enabled
* As a student
* With a missing assignment without a submission
* And the assignment has been graded
* GET /api/v1/planner/items
* The assignment in the response should have a `submissions`
object with `submitted` being `false`, but `missing` and
`graded` being `true`
Change-Id: I008270a8a32024fd279673dd3519cfcbb2c8bb92
Reviewed-on: https://gerrit.instructure.com/119271
Reviewed-by: James Williams <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
test plan:
* have a user with a name and a matching sortable name
e.g. "First Last" and "Last, First"
* as an account admin, edit the user's name
but leave the sortable name unchanged
* it should keep the previous sortable name
closes #CNVS-38209
Change-Id: I982c24ff16b9d3faf195858080bf1fe002640649
Reviewed-on: https://gerrit.instructure.com/119024
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
closes CNVS-37707
test plan:
* Create a course with at least four students, two of whom
have the same name (we'll call them the twins)
* Create two assignments, each with a maximum score of 10
* Go to Gradezilla
* Sort the gradebook by Student Name from A-Z
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify that user_ids are returned in an order where the
corresponding user names are in ascending alphabetical
order
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
* Sort the gradebook by Student Name from Z-A
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify that user_ids are returned in an order where the
corresponding user names are in descending alphabetical
order
* Verify that the twins' user_ids appear next to each
other and are in decreasing order by user_id
* Ensure all students have submissions for the first
assignment
* Assign grades to the students in assignment #1
and ensure both twins get the same grade
* Sort the gradebook by the grade in assignment #1
(Low to High)
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify that user_ids are returned in an order where the
corresponding user grades are in ascending order of name
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
* Sort the gradebook by the grade in assignment #1
(High to Low)
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify that user_ids are returned in an order where the
corresponding user grades are in descending order
* Verify that the twins' user_ids appear next to each
other and are in decreasing order by user_id
* Update assignment #1 to ensure three students have
due dates in the past, thus making their submissions late
* Sort the gradebook by "Late"
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify the first 3 user_ids are for users with late
submissions for that assignment and are in ascending
order of name
* Verify the last (fourth) user_id is for the student
whose submission was on time
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
* Update assignment #1 to ensure only one student
has a due date in the past, thus making only one student
have a late submission.
* Sort the gradebook by "Late"
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify the first 3 user_ids are for users with timely
submissions for that assignment and are in ascending
order of name
* Verify the last (fourth) user_id is for the student
whose submission was on time
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
* Update assignment #2 to have a due date in the past
* Ensure only one student (not one of the twins) has
submitted their work for assignment #2
* Sort the gradebook by "Missing"
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify the first 3 user_ids are for users with missing
submissions for that assignment and are in ascending
order of name
* Verify the last (fourth) user_id is for the student
who submitted their work
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
* Ensure both the twins now submit their work for
assignment #2. This should leave just one student who
is missing a submission for assignment #2
* Sort the gradebook by "Missing"
* As a teacher hit the user_ids API endpoint
(GET /courses/:course_id/gradebook/user_ids)
* Verify the first user_id is for the student who still
has not submitted their work
* Verify the last 3 user_ids are for users with missing
submissions for that assignment and are in ascending
order of name
* Verify that the twins' user_ids appear next to each
other and are in increasing order by user_id
Change-Id: Id91e02fc7dc475177d1f8c09cc75015916375576
Reviewed-on: https://gerrit.instructure.com/117227
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
make sure we're returning scopes on the right shard
and not prematurely executing them
also make sure that the pagination for planner items
actually behaves as expected when sorting dates
test plan:
* test all the things
closes #FALCOR-444
Change-Id: Iaa8a340de20b1bb2464d53ab6a3ba76843def822
Reviewed-on: https://gerrit.instructure.com/118141
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
fixes CNVS-36866
test plan:
* Create a course with a student
* Create an assignment with a past due date
* Add a missing policy on the course
* The student's score for the missing submission should reflect your
policy
Change-Id: I005cd64945e882c1ca9ebfc8cb70360640f24876
Reviewed-on: https://gerrit.instructure.com/113601
Tested-by: Jenkins
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
This is for the dashboard options
closes FALCOR-445
Test Plan
* Play around with the students who have courses and no courses
* Make sure teachers don't show up
* Students who have no active courses but originally have course show
Change-Id: I4d8926c8c0d883808eadc2a5ae71a166d9addae8
Reviewed-on: https://gerrit.instructure.com/117557
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Aaron Kc Hsu <ahsu@instructure.com>
fixes CNVS-30926
test plan:
- edit a course wiki page
- add a text url in the course wiki page that uses the 'courses' > 'files'
relative path (like http://web.canvaslms.docker/courses/2/files/1) making
sure the course specified is a different course number than the course you
are currently in
- save the wiki page
- verify that the relative file path did not change the course_id to the
current course
Change-Id: I0fd48cf081978abdb8f8690b0521bb340b558180
Reviewed-on: https://gerrit.instructure.com/116194
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: brian kirkby <bkirkby@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Fixes CNVS-37395
Test plan:
* Create a course with 2 students
* Create an assignment with a due date for everyone
* Create a differentiated assignment with a due date for only 1 student
* In rails console:
* Run `DueDateCacher.for_course(course_id)
* Make sure `Submission.count` is 3
* Make sure the first assignment has 2 placeholder submissions
* Make sure the second assignment only has one placeholder submission
Change-Id: I5c8084d4fb0138f65e4c117dcc97638cf8d4f49d
Reviewed-on: https://gerrit.instructure.com/114573
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
QA-Review: Neil Gupta <ngupta@instructure.com>
Fixes FALCOR-379
Closes FALCOR-368
Test Plan:
* As a student
* In a course with "Student Planner" enabled
* GET /api/v1/planner/items
* The response should not include unfavorited or concluded
course objects
* GET /api/v1/planner/items?include[]=concluded,unfavorited
* The response should include all course objects, including
from concluded and unfavorited courses
Change-Id: Ie56848441ecd2b74e930a4c0be1bc12290e08d8c
Reviewed-on: https://gerrit.instructure.com/116358
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Closes FALCOR-325
Fixes FALCOR-361
Test Plan
Date Range Testing:
* With "Student Planner" enabled
* As a student
* Make a GET request to /api/v1/planner/items
with ?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&filter=new_activity
* The response should only contain results with new activity
between those time ranges (test with dates and dates with times)
Pagination Testing:
* With "Student Planner" enabled
* As a student
* Make a GET request to /api/v1/planner/items
with some combination of start_date, end_date, and filter
* Include a a `per_page` param
* The response should only contain only `per_page` number of
results
* The response should contain a `Link` header with links to the
current, next, and previous pages (you should see a URL with
a `page=bookmark:[bunch of characters]`)
* Copy the `page` param from the `Link` header for the next
page of results
* Make a request with the newly copied `page=bookmark:[stuff]`
parameter added to the request
* You should get the next page of results in the response
* The previous and next URLs in the `Link` response header should
return the previous and next page of results
Regression Testing:
* Full regression test of "New Student Planner"
Change-Id: Ie6352aec71f5de3c60981aaeee65119cc43ed6f7
Reviewed-on: https://gerrit.instructure.com/114848
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Closes FALCOR-332
Test Plan:
* As a student
* In a course with the new Student Planner enabled
* With assignments that have submissions
with comments/feedback, as well as unread
discussion topics
* GET /api/v1/planner/items?filter=new_activity
* It should respond with only those items that have
unread/unviewed activity
* Additionally, the `submitted` key in the `submissions` object
should be `true` for items with submissions
Change-Id: I776ef9113e6c29f9958c8a22ff86227daf88239c
Reviewed-on: https://gerrit.instructure.com/114730
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Closes FALCOR-340
Test Plan:
* As a student
* In a course with "Student Planner" enabled
* With assignments, topics, quizzes, and other items
that have either a lock date in the past or an unlock
date in the future (ie. they are locked for the student)
* GET /api/v1/planner/items
* The locked items should appear in the response
Change-Id: I91c7b333f43ef3cf771c10535cd103cfaa381bc0
Reviewed-on: https://gerrit.instructure.com/114832
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Also shows concluded course assignments
Closes FALCOR-328
Test Plan:
* As a student
* In a course with the new Student Planner enabled
* With assignments that have excused submissions
with and without grades
* GET /api/v1/planner/items
* The response should contain a `submissions` key
that contains an object with `excused: true`
* Conclude the course
* GET /api/v1/planner/items
* The response should be the same as previously requested
Change-Id: I5e6ce25590fe8e32e113662499170936a52a0797
Reviewed-on: https://gerrit.instructure.com/114633
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Closes FALCOR-297
Test Plan:
* As a student
* In a course with the new Student Planner enabled
* With assignments with various submission states
such as missing, late, graded, excused, etc
* GET /api/v1/planner/items
* The response should contain a "submissions" key
whose value is reflected by the current status of the
assignment, if it can be submitted, or `false` otherwise
Change-Id: I5c6703f930d7c5c13c77fdea8e01c6e31946ce43
Reviewed-on: https://gerrit.instructure.com/114007
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
fixes FALCOR-311
Test plan
- Create some wiki pages inside of a course and account
- level group
- Add todo dates for them
- Ensure they show up in the /api/v1/planner/items API
Change-Id: I391c4149c435120670b25cd1b0a68b9cc047e5f8
Reviewed-on: https://gerrit.instructure.com/113624
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
closes FALCOR-260
Test plan
- Set up some Wiki Pages with to do dates
- Call API /api/v1/planner/items as a student
- Ensure pages are shown if the student should
- see them
- Ensure the student doesn't see pages they shouldn't
- (ie, conditional release, or missing todo dates)
Change-Id: I6cf45e1c19f5a8314912814d9b0263857ce5edb5
Reviewed-on: https://gerrit.instructure.com/112482
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
Closes FALCOR-183
Closes FALCOR-185
Closes FALCOR-257
Test Plan:
* With new planner enabled
* As a student
* With assignments that have submissions
* Hit the `api/v1/planner/items` endpoint
* See that the submitted assignments are included
in the response
* Hit `api/v1/planner/items?due_after=YYYY-MM-DD`,
`api/v1/planner/items?due_before=YYYY-MM-DD`, &
`api/v1/planner/items?due_before=YYYY-MM-DD&due_after=YYYY-MM-DD`,
replacing YYYY-MM-DD with some date in that format
* The response should only contain objects within that range
* Hit any of the above URLs, appending `&per_page=X&page=Y`,
replacing `X` with a limit for number of items returned,
and `Y` with the page of items to return
* The response should contain `X` amount of objects, starting
from page `Y`
Change-Id: I63fc108107fda07f674ef7a5465125b185c0c510
Reviewed-on: https://gerrit.instructure.com/112386
Reviewed-by: Mysti Sadler <mysti@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
fixes FALCOR-246
Test Plan:
- Go to Rails Console
- Create some NoteToSelf
- Tests pass
Change-Id: Ieb5808017f5d498eda5a3fed1581f713f89d503d
Reviewed-on: https://gerrit.instructure.com/112056
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Closes FALCOR-183
Closes FALCOR-184
Closes FALCOR-255
Closes FALCOR-186
Closes FALCOR-187
Closes FALCOR-188
Closes FALCOR-189
Closes FALCOR-147
Closes FALCOR-148
Test Plan:
* As a student in an account with the Student Planner
feature flag enabled
* In a course with multiple upcoming due assignments
in the current and following weeks
* Test that the following API endpoints provide you
with the data described:
get '/api/v1/planner/items'
* Should return a list matching that of the todo
list endpoint, while adding an additional key
named `visible_in_planner`
get '/api/v1/planner/overrides'
* Should return a list of previously created
PlannerOverrides
get '/api/v1/planner/overrides/:override_id'
* Should return the specific override for the
passed in id
put '/api/v1/planner/overrides/:override_id'
* Should update an existing override's `visible`
value to match what was passed in the request. No
other values should be updated
post '/api/v1/planner/overrides'
* Should create a new PlannerOverride with the specified
`plannable_type`, `plannable_id`, and `visible` values.
`user_id` should match that of the user making the request
delete '/api/v1/planner/overrides/:override_id'
* Should set the PlannerOverride's `deleted_at` to when
the request was made, as well as updating the `workflow_state`
to `deleted`
Change-Id: I03890a525f8201a8df1d2f1290cdcd549ba548d7
Reviewed-on: https://gerrit.instructure.com/107495
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
- can use active_by_date scope instead of checking
:partcipate_as_student rights on each course
- courses_with_grades was returning nil unless they're a
student or observer, so checking manage/view_all_grades
on the view is unnecessary
- the N+1 loading the of enrollments to check read_grades is
unnecessary too since it'll return true if they own
the enrollment or if they have an observer enrollment
test plan:
* make sure i didn't break all the things
Change-Id: I653e83f1e2e33d06340351e279bd53a85e3f7e47
Reviewed-on: https://gerrit.instructure.com/106249
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
Fixes: PLAT-2433
Test Plan:
- Create a user who is both a student in a course of a root
account and an admin of a sub-account of the root account.
- Do a tool launch as the user from the course they are enrolled
in as a student (the course should be in the root account, not
the sub-account).
- Verify the admin LIS role is sent in the ext_roles
param.
- Delete the sub-account.
- Launch the tool from the same course as before and verify
the admin role in no longer sent in the ext_roles.
Change-Id: If76f14a9e2c2fa6e43887cb3385a393327d7ecaa
Reviewed-on: https://gerrit.instructure.com/110075
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
so we still have a deterministic sort for pagination when
multiple users have the same sortable name
fixes CNVS-36604
Change-Id: I75b5eaae782553a80a185660ddb4346dbe79f853
Reviewed-on: https://gerrit.instructure.com/110288
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-35919
also, prefer SIS pseudonyms over non-SIS pseudonyms from any given
account
test plan:
* have a non-SIS pseudonym and a SIS pseudonym on a user
* do an LTI launch
* the LTI tool should get the info from the SIS pseudonym
Change-Id: I60a3c48a32eae94db93b0e72f1f0f6c5b6a5f5c2
Reviewed-on: https://gerrit.instructure.com/107785
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-35623
test plan:
* disable redis
* configure MFA; do not remember this computer
* on your profile, there should be a link to MFA backup codes
* follow it; it should show 10 codes
* log out and log back in, using one of those codes
* go back to your backup code list; the one you used should be
crossed out
* log out and log back in, attempting to use the same code;
it should not allow you to
* log in with another code
* make note of one of the unused backup codes
* regenerate your backup codes; it should give you 10 new codes,
all unused
* log out, and attempt to log in with one of the old unused codes;
it should not allow you to
* log in with one of the new backup codes; it should work
* make note of backup codes
* reconfigure MFA
* look at your backup codes again; they should be different
* make note of them again
* disable MFA, and then configure it again
* your backup codes should be different again
Change-Id: I20b1da102ef4cb757c80e1f46e276f88fdfb21b4
Reviewed-on: https://gerrit.instructure.com/21614
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: McCall Smith <mcsmith@instructure.com>
they don't really do anything
Change-Id: I90873c2b4570d3416c7d21f19843552be3965eeb
Reviewed-on: https://gerrit.instructure.com/108557
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
rewrite so it doesn't do a seq scan on submission_comments
don't worry about submission_comment_participants and
just use user_id on submissions (since the 'submitter' should
be the same)
test plan:
* recent feedback should grab submissions with recent
submissions comments from graders as before
Change-Id: Ib25e7d728051b005befdb09ca6fcd956bbcd989d
Reviewed-on: https://gerrit.instructure.com/108388
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan:
* have a ungraded survey quiz assigned to a course section
and an upcoming due date
* have a student in a different course section
* they shouldn't see the survey in their todo list
closes #CNVS-35999
Change-Id: I13a6bfd298c54f75875235a20ae525766187b4a5
Reviewed-on: https://gerrit.instructure.com/107127
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
mostly s/uniq/distinct/, and choosing a content type for render :text
Change-Id: I53a2e77d23ecc43162f70b4fd88303cc1539c20b
Reviewed-on: https://gerrit.instructure.com/104762
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
closes FALCOR-70
closes FALCOR-71
Test Plan:
- Create a new user
- Add them to a course
- They should have the tutorial option showing as on in
user settings
- Tutorial trays should show from the right side
- Clicking end tutorial in the tray should open up a
dialog to confirm
- Cancelling should do nothing but close the dialog
- Clicking okay on the modal should trigger the page to
refresh
- Tutorial options should be gone and the feature flag
should be turned off in user settings
Change-Id: I0b287be7278059a24df07c75436def8fb53b3b17
Reviewed-on: https://gerrit.instructure.com/103568
Tested-by: Jenkins
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Dan Sasaki
Product-Review: Christi Wruck
test plan:
* a course with students should be able to be
set as a blueprint course
* a blueprint course shouldn't be able to add students
closes #MC-105
Change-Id: I31257e447e0e0f60f0399663092f21e39532183a
Reviewed-on: https://gerrit.instructure.com/103947
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>