test plan:
* create a course with an external tool with a navigation tab
* permanently delete the tool in the console:
ContextExternalTool.delete_all(:context_id => <INSERT COURSE ID HERE>)
* set a course setting (such as the tab configuration)
* copy the course
* should retain the course settings
fixes #CNVS-13661
Change-Id: Id3d810282e3eff3bc9cb0b98cdb96af73a503a28
Reviewed-on: https://gerrit.instructure.com/36531
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
test plan:
- as an admin (with rights) & as the user
* exercise the observees api
* /users/:user_id/observees
* GET (list observees)
* POST (add observee w/observee credentials)
* /users/:user_id/observees/:observee_id
* GET (show observee)
* PUT (add observee by user id)
* DELETE (remove observee by user id)
- the user should automatically gain observer enrollments for courses
the observees are enrolled in
- note: only admins with rights can add/remove observees by id
closes CNVS-13400
Change-Id: I5d81bd68212f67281a1e2f3fda54e33d12cbccf1
Reviewed-on: https://gerrit.instructure.com/35868
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
fixes CNVS-8100, refs CNVS-1672
This applies to complete/incomplete, and probably letter grade and gpa
scale
Test plan:
* make a complete/incomplete assignment with 0 points possible
* give it a due date, but no availability date
* mark some students complete, some students incomplete
* add an availability date
* the complete/incomplete for each submission status should be retained
Change-Id: I84400145a57926aa2677aef515562b29a1f32463
Reviewed-on: https://gerrit.instructure.com/36383
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
This redirects to the session url (like canvadocs) instead of returning
a session url.
refs CNVS-13322
fixes CNVS-13445
Test plan:
* enable Crocodoc
* make multiple submissions to the assignment (with the same student)
* make sure you preview all submissions in the speedgrader (with
Crocodoc)
* disable Canvadocs
* make sure the student can preview the submission attachments in his
files page (in Crocodoc)
* also make sure that canvadocs still works (just one preview is fine)
Change-Id: Icbea4b8986039d1405300a09f54a878ba1cc288f
Reviewed-on: https://gerrit.instructure.com/35931
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
fixes CNVS-13639
test plan:
* as user A, send a message to B and C
* as user B, mark the conversation as read
* as user C, reply privately to A
* as user B, verify that your unread message count does not change
Change-Id: I9fbf9b7bfea507d51a95231568ec33211ddd14da
Reviewed-on: https://gerrit.instructure.com/36519
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
Tested-by: Bryan Madsen <bryan@instructure.com>
closes PS-1602
test plan:
1. enable draft state on a course
2. go to the course
3. you should see the new buttons
in the top right
4. play around with them
5. you should not be able to see course
status if there are graded submissions
in the course
6. go to course settings
7. you should see the course status now
in the top right (published or unpublished)
8. if there are graded submissions you should
be able to hover the course status and get
a tooltip saying you cannot unpublish
Change-Id: Idb7c27503f84eb489e1970b2061eb903e452de09
Reviewed-on: https://gerrit.instructure.com/36041
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jake Sorce <jake@instructure.com>
Test Plan: see SIS-281
fixes SIS-281
Change-Id: I25b7d18a7cd752826ff38d0f795cba0059b56df1
Reviewed-on: https://gerrit.instructure.com/35071
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Eric Adams <eadams@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
This patch makes the API reject generating stats for large quizzes. A
quiz is large based on two configurable settings:
- quiz_statistics_max_questions (defaults to 100)
- quiz_statistics_max_submissions (defaults to 1000)
They can be tuned using the console. Something similar to this:
Setting.set('quiz_statistics_max_questions', 500)
The defaults can be changed by modifying constants in
Quizzes::QuizStatistics.
Closes CNVS-13330
TEST PLAN
---- ----
- create a quiz with like 10 questions
- change the setting for the max questions to something like 5
- verify that you can't get the stats from the API
- visit ember quiz stats:
- verify you get a different page, similar to the blank state one
but with a different message
- tune it back up to something like 15
- verify you can now get the stats from the API and can see them in
ember
Change-Id: I1b0626c1b460974976eec5b184e1b5989f50d210
Reviewed-on: https://gerrit.instructure.com/35561
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-13598
test plan:
* open your browser's network log
* reply to a conversation
* verify that in the response, last_authored_message_at
matches the current time
Change-Id: I22db516bbe61fd341329fb4f6d3dd8c556edf0b2
Reviewed-on: https://gerrit.instructure.com/36326
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
mostly has_many_through associations, where we are
already covered because we export the through
association as well
Change-Id: I95deb0f3c55059a480f1d77aa70ad32701267f91
Reviewed-on: https://gerrit.instructure.com/36335
Reviewed-by: Braden Anderson <braden@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
QA-Review: Anthus Williams <awilliams@instructure.com>
fixes CNVS-13293
test plan:
- regression on gb2 and srgb
to make sure they both still work properly
Change-Id: I4ec554589b6a77a113d2faf46e7b530faa2d535f
Reviewed-on: https://gerrit.instructure.com/35501
Product-Review: Dana Danger <dana@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
fixes CNVS-13561
test plan:
- enable draft state and quiz stats
- as a teacher
- create a quiz that allows multiple attempts, and keep highest score
- publish the quiz
- as a student
- take the quiz a first time, and get a perfect score
- take the quiz a second time and get a worse score
- as a teacher
- view the quiz stats
- it should show results from the kept score, not the latest
- try this with keeping the highest score as well. Stats should use the
correct kept score.
Change-Id: I8fb9998e800bfd91f9297a3bc30178f5f31aa59c
Reviewed-on: https://gerrit.instructure.com/36300
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-1501
Test plan:
* make a complete/incomplete assignment
* mark some students complete, some students incomplete
* change the number of points possible on the assignment
* the complete/incomplete status of each submission should be retained
Change-Id: Ice61d884936c908de977e1f2abdf99cbb26210ae
Reviewed-on: https://gerrit.instructure.com/36377
Reviewed-by: Liz Abinante <labinante@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
this was replaced a long time ago by test student
Change-Id: I20981ada3e72df82da89d5bae1b81a3b31cfac66
Reviewed-on: https://gerrit.instructure.com/36309
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-12938
test plan:
- via api and via the old assignment index
- try to create an assignment with name of " "
(there is a space between those quotes)
- this assignment doesn't save
- assignments w/o blank names do save
Change-Id: I531f8be005b1c4b8f542cb281f0672669e181fb2
Reviewed-on: https://gerrit.instructure.com/35237
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-4348
test plan:
- have a course that has an end date in the past
- create an announcment, it should not send a notification
- create an assignment, it should not send a notification
- create a discussion topic, it should not send a notification
Change-Id: Ic371d651ae00abe80c17e569f74e94e49c017708
Reviewed-on: https://gerrit.instructure.com/36229
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Braden Anderson <braden@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
fixes CNVS-13242
This adds a special field to learning outcomes
to use for friendly reporting in case the outcome's
actual name is quite complex or cryptic (like common core
standard outcomes).
TEST PLAN:
- login as an instructor
- create or edit an outcome and validate that you can add a "friendly"
name and that it persists
- use that outcome for an assignment and let a student complete it
- navigate to the student mastery report for that student
- verify that by hovering over that outcome name on the student mastery
report you can see both the real title and the friendly name
Change-Id: I89d1a5de590666ddf6cbc82617e4475d1f7a5226
Reviewed-on: https://gerrit.instructure.com/35919
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
fixes CNVS-11312
test plan:
* start a conversation from user A to B and C
* as user B, mark the conversation as read
* as user A, send a reply only to user C
* as user B, verify that the conversation is still read
Change-Id: I7051eb39acd711ad10344e9e17700a0987a72b22
Reviewed-on: https://gerrit.instructure.com/36172
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
fixes CNVS-13521,CNVS-13489
This commit adds 3 things. One is a fix for deleting a poll_session when
there are poll_submissions created already for the poll_session. The
second is the addition of a new attribute on poll_choices called
'position'.
The 'position' attribute specifies the order a poll choice should be
returned in. The third is the visibility of poll sessions to students:
as long as a student is enrolled in the course (and course section, if
it exists on the poll session) associated with the poll session, they
can access it, whether or not it's open or closed.
Test plans
1. Deleting a poll session
As a teacher
- Create a poll and related poll session
- Open the poll session for submissions
As a student
- Create a submission for the newly created poll session
As a teacher
- You should be able to delete the poll session
2. Position ordering attribute
As a teacher
- Create a poll
- Create poll choices, passing along the 'position' attribute to specify
ordering (try to mix these up, e.g. create a poll choice with a
position
of 2, then a poll choice with an position of 4, then a poll choice with
an position of 3, then a poll choice with an position of 1)
- Retrieve the poll choices for the poll with the poll choices index
endpoint
- The poll should be returned in the order they were specified using the
'position' attribute
3. Poll session visibility to students
As a teacher
- Create a poll
- Create an associated poll session with a valid course
As a student enrolled in the given course
- You should be able to view the poll session whether or not it's open
or closed.
As a student not enrolled in the given course
- You should not be able to view the poll session, whether or not it's
open or closed.
Change-Id: Ifabd64540d843c83f3a22fb6668c4fcac8f728b0
Reviewed-on: https://gerrit.instructure.com/36087
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
Exclude preview quiz submission from student analysis (item analysis was
already accounting for this) based on the "was_preview" field.
Closes CNVS-8203
TEST PLAN
---- ----
- create a quiz
- take it as a preview by the teacher
- request the stats from the API (or visit ember quiz stats)
- verify that your attempt does not show up
- take it by a student
- verify everything is ok
- now preview it again as a teacher
- verify your attempt still doesn't add to the stats
Change-Id: I62bf1dd6c0bedb26ee55d029ac0f015b2ad48e91
Reviewed-on: https://gerrit.instructure.com/35954
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-13440
this commit addresses bad polling performance, particularly in
poll_sessions. It also removes a foreign key constraint on the
poll_sessions poll_id, that would introduce sharding issues.
Test plan
- Test the following attributes on particular models to insure that
they're still correct:
- Poll#total_results should accurately return the aggregate results for all of
the poll_sessions that belong to the poll
- PollSession#results should accurately return the results of all poll
submissions submitted for the particular poll session
Change-Id: Ic0d4aaeb77c735fa4ba6c5f73dfbf84d8e6ac615
Reviewed-on: https://gerrit.instructure.com/35860
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
fixes CNVS-13377
test plan:
* set up reply-by-email
* open a group conversation from old conversations
* send a message as one of the participants to all others
* reply by email to the message
* verify that the reply is sent only to the author
Change-Id: I0aac2e2137153cbc18b08ef234235f677564323f
Reviewed-on: https://gerrit.instructure.com/35729
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Drew Bowman <dbowman@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-12916
test plan
- as a teacher in a course, use the api to create a live
assessment aligned with an outcome (see the api docs for how the
endpoint works)
- create results for some students
- ensure that the results and the assessment can be read back using
the index endpoints
- ensure that the assessment shows up in the web ui at
/course/:course_id/outcomes/users/:student_id (click 'Show All
Artifacts')
- try to create an assessment using the same key as an existing
assessment
- ensure that the existing assessment is returned (check the id)
- fetch results specifying a user id to filter by
- ensure that only results for that user are returned
Change-Id: I2d09691f772658aea3ccdd36cff2df5835b1f2cd
Reviewed-on: https://gerrit.instructure.com/35092
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Derrick Hathaway <derrick@instructure.com>
this puts lti app links on the right side bar of the course
home page.
fixes RAN-53, RAN-55
test plan:
- modify an lti app's xml to include the
course_home_sub_navigation extension
- configure an lti app via modified xml
- navigate to a course home page, where you should see a button
for the configured tool on the right sidebar.
- clicking on the button should launch the tool.
- configure another tool the same way, but include a
"visibility" property in new extension with a value of
"admins"
- view the course home page as a teacher. you should be able
to tee the newly configured tool, in addition to the
previously configured tool.
- view the course home page as a student. you should only see
the first tool you configured, and not see the tool with the
limited visibility property.
Change-Id: Ibe50c649f6d5f6806a87f0c8e8402f1209b9ed40
Reviewed-on: https://gerrit.instructure.com/35161
Reviewed-by: Brad Humphrey <brad@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
refs CNVS-3134
test plan
- go to /accounts/self/settings#tab-reports
- titles should be translatable
Change-Id: I32d47572929a729e1d5f9dc0a2f20a229005fcca
Reviewed-on: https://gerrit.instructure.com/35827
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
also, don't round-trip the display_name through the truncated
CGI-escaped filename, since UTF-8 chars become nine-character
sequences, limiting entirely non-Latin filenames to 28 chars
(255 / 9).
fixes CNVS-13426
test plan:
- all files attached to the ticket should
(1) upload to the files page without error
(2) with the filename preserved and untruncated
Change-Id: I41322595e858892313276544607fd3ff2a0310ec
Reviewed-on: https://gerrit.instructure.com/36046
Reviewed-by: Mark Severson <markse@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
This commit adds the Poll#associated_shards method so that
with_each_shard acts sane.
Test plan
- The poll_choices index endpoint should work correctly
Change-Id: Iabb0f3db25aec7e60ec1013424b534fa2c08102a
Reviewed-on: https://gerrit.instructure.com/36068
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
fixes CNVS-13474
This commit exposes the is_correct attribute on poll_choices when a
student has submitted their answer to the latest poll_session, and that
poll_session has been closed.
Test plan
- As a teacher, create a poll, relevant poll choices, and a poll session
- Publish the poll session
- As a student, at this point is_correct should not be viewable on poll
choices
- As a student, submit a poll submission
- As a student, at this point is_correct should not be viewable on poll
choices
- As a teacher, close the poll session
- As a student, at this point is_correct should be viewable on poll
choices
Change-Id: I20a8bb534affe5e1a23c1dddbb727043535dd23d
Reviewed-on: https://gerrit.instructure.com/36031
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
test plan:
1. have a student enrolled in courses at multiple institutions
(with no trust relationship between them)
2. enable parent self-registration at one institution
3. sign up a parent at that institution
4. the newly enrolled parent should only receive course invites
for that institution, and should not see the other
institution's courses
fixes CNVS-13421
Change-Id: I20baa6fab1989aeb0a1f4eab02b0ca0660333bf6
Reviewed-on: https://gerrit.instructure.com/35937
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
test plan:
* should be able to select question banks and quizzes
separately for migrations in any combination, for
any package type
closes #CNVS-8526 #CNVS-13333
Change-Id: I566ab00f906369c3c28848b9d8985e7965378d1d
Reviewed-on: https://gerrit.instructure.com/35354
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
fixes CNVS-13451
test plan:
* enable page view storage in cassandra
* open Canvas
* click "Settings", in the top right
* verify that the page renders successfully
Change-Id: Ia4193f59e41f6993b61a05bbb853a8e601285d8f
Reviewed-on: https://gerrit.instructure.com/35950
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Anthus Williams <awilliams@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
Changes:
- drops unused attributes from the api output, the only things we
expose now are question id, type, text, and position (for sorting)
- drops logic in ember that is no longer necessary
- stringifies IDs in the serializer output
Closes CNVS-13388
TEST PLAN
---- ----
- BEFORE YOU CHECK THIS OUT:
- create a quiz with all question types
- hit the stats API and save the JSON output in some text file
- now check this patch out:
- use the same quiz, hit the stats api
- verify that each question document in "question_statistics" has
the following fields beside the metrics:
"id", "question_type", "question_name", and "position"
- verify that MChoice/TF questions still contain the "item analysis"
report data (like point_biserials, etc.)
- check out the ember quiz stats and make sure everything is OK
Note: i found a small tool that can help you see the differences in the
API output if you push the old JSON and the new one into it: try it out
maybe it will make things easier: http://tlrobinson.net/
Note 2: the docs are really out-of-date now and need to be adjusted.
There is CNVS-13387 for that.
Change-Id: I2d2e8c4dcb0e406378b50cd63f5aba14efe8c2ef
Reviewed-on: https://gerrit.instructure.com/35739
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
fixes CNVS-13434
This commit addresses several 500 errors the polling api was emitting in
various circumstances.
Test plan
- Create a poll session with an invalid course section id
- The API should return a 404 and JSON response of 'resource not found'
- Create a poll session with a blank has_public_results attribute
- The poll session should be created with a 'false' has_public_results
attribute
- Update a poll session with a new course_id and valid course_section id
- The poll session should be updated successfully
- Create a poll submission with no poll_choice_id supplied.
- The API should return a 404 and JSON response of 'resource not found'
- Create a poll submission who has made a submission for a different
session on the same poll
- The poll submission should be created successfully
Change-Id: I435067488914b2d1a3e48e2df5eda835228759c2
Reviewed-on: https://gerrit.instructure.com/35936
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
test plan:
* create a course with a front page
* create a new empty course
* copy from the first course to the second
* should set the front page
* also should not override an already existing
front page
fixes #CNVS-13398
Change-Id: Iaeb73804d99f362129e3418106d3d9afd5cb4922
Reviewed-on: https://gerrit.instructure.com/35817
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
fixes CNVS-13228
the old way of enabling fabulous quizzes is no more. Now we're using proper
course based feature flags, and we have two different feature flags for
the new statistics page and moderate pages. You can enable these flags from
your account settings page.
In the code we now check these using:
@context.feature_enabled?(:quiz_stats)
@context.feature_enabled?(:quiz_moderate)
In ember we have a new environment attribute to check if moderate is enabled:
env.get("moderateEnabled")
This also moves "take quiz" to the top item in the list, and changes its icon
to be a play icon to not have so many circles as icons in the menu
test plan:
- feature flag changes
- as a site admin
- disable both quiz stats and quiz moderate
- visit the quiz index/show/moderate/statistics pages
- they should all be the non-ember versions of the pages
- enable the quiz stats feature
- as a teacher
- visit the quiz index/show/statistics pages
- this should be the ember version of these pages
- visit a quiz page
- this should enable the ember version of these pages
- there should be a link to moderate the quiz in the dropdown menu
- try to visit the moderate page (quizzes/123/moderate)
- this page should render correctly as the old moderate page
- the moderate tab should not be there
- enable the quiz moderate feature
- as a teacher
- visit the quiz page
- the moderate link in the drop down menu should be gone
- this should enable the moderate tab in ember
- visit the quiz moderate page, this should be the ember version
- if you try to visit quizzes/123/moderate directly it should
redirect you to the moderate page
- api changes
- as a teacher
- request the quizzes api endpoint for a single quiz
- you should see a new "moderate_url" property in the payload
- as a student
- request the quizzes api endpoint for a single quiz
- you should NOT see the "moderate_url" property in the payload
- other changes
- with stats enables, the take quiz should be at the top of the dropdown
- the take quiz icon has been changed
Change-Id: I04639890b425b1c5abf3305892e4b5b9d804b525
Reviewed-on: https://gerrit.instructure.com/35810
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
test plan:
* importing the example package with cc assignment data
should bring in canvas specific assignment data (like grading type)
* cc and canvas package import regressions
closes #CNVS-13270
Change-Id: Ic053837aa7642212bc0360f5e5ecf2cd27a88d9b
Reviewed-on: https://gerrit.instructure.com/35747
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
fixes CAT-79
test plan:
1. Enable Draftstate on a course that has gallery set up
2. Set up a module with multiple module items
3. unpublish some of the module items ( individually)
* verify that the "requirement_count" adjusts to the
* unpublishing of items for the following endpoint:
/courses/:course_id?include[]=course_progress
Change-Id: I092b8c7a76a1abf4b05bd0a0ed654bee98de0217
Reviewed-on: https://gerrit.instructure.com/35654
Reviewed-by: Jeff Belser <jbelser@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
this setting should allow tools to choose how they are displayed
in the canvas interface. the new full width display removes the
canvas sidebars, footer, and breadcrumbs.
test plan:
- install a tool with course_navigation and account_navigation
extensions.
- make sure the tool displays normally without a display_type
configuration.
- use a console to set display_type = 'full_width' in a tool's
course_navigation settings.
- the tool should display as a "full width" tool when viewed
by the course navigation link. full width means without the
left or right side bar, without breadcrumbs, and without a
footer. the canvas header should still be displayed.
- the tool should display normally when viewed by the account
navigation link.
- use the console to set the display_type = 'full_width' in the
tool's top level settings.
- tool tool should now display full width using the account
navigation link.
Change-Id: Idc19c0c96031bd80a45ce984241c23e4ce1efe78
Reviewed-on: https://gerrit.instructure.com/35160
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-13391
test plan:
- turn off draft state
- as a teacher
- create a new quiz
- publish the quiz
- make changes to the quiz questions
- make sure the notification shows that you have unpublished changes
- republish the quiz
- the quiz changes should be published
- make sure there are no regressions with CNVS-13003
- make sure that publish/unpublish of a quiz with DS continues to work
as expected
- mess around with any way you can think to publish the quiz via modules
etc.
Change-Id: I1365609f8c4fc10056de42a806a3629155e6643e
Reviewed-on: https://gerrit.instructure.com/35754
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
test plan:
1. upload a file to a folder in a course
2. link to the file from course content (such as a wiki page
or assignment body)
3. overwrite the file with another file of the same name
4. rename the file
5. view the course content and ensure the file link still works
6. repeat steps 1-5, replacing step 4 by "move the file to another folder"
fixes CNVS-12359
Change-Id: I11832c307f286920174ba4731af2e88490497f92
Reviewed-on: https://gerrit.instructure.com/35677
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
fixes CNVS-7565
test plan:
- From Assignments screen, click 'Add Assignment'
in sidebar
- Click 'more options'
- On the resulting page, enter a negative number
for Points
- Submit the form
- You should see a message stating that the points
have to be a positive number
- From Assignments screen, click to edit an existing
assignment
- On the resulting page, enter a negative number
for Points
- Submit the form
- You should see a message stating that the points
have to be a positive number
Change-Id: I7e618dd8409c123e836ee3e192ad42cdf9d909d5
Reviewed-on: https://gerrit.instructure.com/33535
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-12448
test plan:
- as a teacher
- enable fabulous quizzes
- enroll a few students in the course
- create a quiz with a time limit
- publish the quiz
- visit the quiz moderate page
- in a different browser / session as a student
- start the quiz as a student
- don't submit the quiz yet!
- as a teacher
- refresh the moderate page
- you should be shown a clock icon for the students with currently running
quizzes.
- you can now click on this icon!
- this will bring up a modal dialog to extend time for the current attempt
- try out extending the quiz by a few minutes from now
- try out extending the quiz by a few minutes from the end date
- also try these out with multiple students taking the quiz at once.
- changing the options in the modal should persist until you choose a different
student, at which point it will reset the form in the dialog
Change-Id: I0adf1ed2133b6adaf8501b5131bd70365b06c249
Reviewed-on: https://gerrit.instructure.com/35343
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-13374
This commit addresses a mistaken assumption about poll visibility for
students. Previously, there had to be opened poll sessions for a
student to have read access to the poll. This has been changed to be
based around a students enrollments - if the poll has a poll session
associated with a course or course_section the student is enrolled in,
then they are able to read the poll.
Test plan
- Create a poll as a teacher
- Create a poll session associated with a particular course
- A student enrolled in the associated course should be able to access
the poll via #show, regardless of whether or not the session is opened.
- A student who isn't enrolled in the associated course should not be
able to access the poll via #show, regardless of whether or not the
session is opened.
Change-Id: Idf7d4ebeac27d15ce8d37ef498ebc3ab871a6d7e
Reviewed-on: https://gerrit.instructure.com/35722
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
This gives certain user-triggered events
a "look" as though they came directly from
that user (the FROM and REPLY-TO headers
have the name of the source user).
This also introduces "letter_opener" into the
dev environment. If you use "letter_opener"
as your send method for dev emails, it will
open all emails in a browser tab. Very useful.
closes: CNVS-11837
TEST PLAN:
Validate each of the following notifications
looks like it's "from" the source user:
- Submitting an assignment
- Resubmitting an assignment
- Posting to a discussion
- sending a conversation message
- posting a comment on a submission
Change-Id: I0e04aa9aa5bf31a590e69507e04b86b637247acf
Conflicts:
app/models/message.rb
Reviewed-on: https://gerrit.instructure.com/35362
Reviewed-by: Drew Bowman <dbowman@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
Fixes: CNVS-12970
We needed an avatar and signature for notifications
sent out via conversations. Also reformatted all the
notifications to take on a cleaner and more easy to
read format.
The majority of testing can be done on the conversation
notifications. I was using letter opener to do this.
I have included letter opener and the relevant setup
stuff in this commit so that it can be tested.
Test-Plan:
-Make sure that your organization has allowed avatars
-Give a student or a teacher an avatar
-Send a conversation message to another user from
the user that has an avatar
-If you have letter_opener installed, the email
should be intercepted and you'll see its formatting.
Otherwise, use whatever method you'd like to view
the email.
-Verify that everything looks alright and we have
an avatar and good formatting.
-STEP 2-
-Disable avatars
-Send another email and verify that the avatar isn't
showing up
Change-Id: I876dc119c5daefa10811c75c08b315722a50f63d
Reviewed-on: https://gerrit.instructure.com/35144
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
fixes CNVS-10160
test plan
- attempt to save assignment with title over 255 char
- should fail and not generate db error
Change-Id: If5633aea38fb10d71367900af841b3ed070c1085
Reviewed-on: https://gerrit.instructure.com/35664
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
fixes CNVS-12427
test plan
- enroll a user in a course
- delete the enrollment
- as the user make a GET api call to
- <canvas_url>/api/v1/courses (can use ?as_user_id=ID)
- should return unauthorized
Change-Id: I949640ad9ad8d9d702ac3f7b79dd19f35f4f98b5
Reviewed-on: https://gerrit.instructure.com/35658
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
fixes: PS-1538
**test plan
configure and launch lti tool, upon lti tool launch the
lti_context_id for user should be set, and if course launch
the lti_context_id on course object, if account launch, then
lti_context_id on account. Once these are set, api calls to the
corresponding object can be made using the syntax lti_context_id:id
Change-Id: Icdf02e4f99691be417c024adb2a2751ba2aa9335
Reviewed-on: https://gerrit.instructure.com/35380
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>