test plan:
* create a subaccount (the "parent" subaccount)
* create more children subaccounts within that parent subaccount
* create an account admin user for the parent subaccount
* create a course beloning to one of the children subaccounts
* as the account admin user, confirm that you can visit
the course settings page and use the drop-down box to
change the courses' account to any child account that
belongs to the parent subaccount
* also confirm that the drop-down box does not show accounts
outside the parent subaccount (even if they're on the same root
account)
fixes #CNVS-10501
Change-Id: I1d7cae8a19b926cabb3473ba950d29ab08ad25ce
Reviewed-on: https://gerrit.instructure.com/34009
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
fixes CNVS-12752, CNVS-12753, CNVS-12754
test plan:
- turn fabulous quizzes off
- visit an individual quiz with fabulous quizzes turned off
- switch fabulous quizzes on
- refresh the page
- it should redirect to the overview tab on fabulous quizzes
- the url should be something like: /courses/1/quizzes/fabulous_quizzes#/437
- turn fabulous quizzes off
- visit the quiz moderate page for a quiz with fabulous quizzes turned off
- switch fabulous quizzes on
- refresh the page
- it should redirect to the moderate tab on fabulous quizzes
- the url should be something like: /courses/1/quizzes/fabulous_quizzes#/437/moderate
- turn fabulous quizzes off
- visit the quiz statistics page for a quiz with fabulous quizzes turned off
- switch fabulous quizzes on
- refresh the page
- it should redirect to the statistics tab on fabulous quizzes (which is
currently an empty page)
- the url should be something like: /courses/1/quizzes/fabulous_quizzes#/437/statistics
- turn fabulous quizzes on
- edit a quiz
- when you save the quiz, it should redirect to the overview tab
- try other variations which should bring you back to the show/moderate/stats
pages. They should all bring you to the correct tabs on fabulous now
Change-Id: I85e8b628c0562d72c72a30e4e8340dd2cc0adcac
Reviewed-on: https://gerrit.instructure.com/34112
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-5441
Test Plan
1. Configure your default account to display the 'Help' link across
the top identity navbar and footer areas
2. Log in and navigate to a user's settings page: '/profile/settings'
3. Click the 'Edit Settings' button and then select a new language
preference from the dropdown. Select something other than english,
and then click the 'Update Settings' button to confirm
4. Across the header or footer of the page click the 'Help' link to open
the modal
5. Ensure the text displayed is rendered in your currently set
language preference
6. Repeat previous steps to confirm that the modal text updates properly
after selecting a new language preference
Change-Id: I6423ee1598198cf7c21902d0acedd886cae6bfc3
Reviewed-on: https://gerrit.instructure.com/34142
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Michael Ziwisky <mziwisky@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
fixes:PLAT-277
test plan:
1. Go to https://www.eduappcenter.com/apps/redirect
2. Enter criteria for a redirect link configuration URL
3. Access an account in Canvas
4. Add the Redirect External Tool with your configuration URL
5. Observe link is added to your Navigation per your settings
6. Attempt to edit the External Tool in Canvas with a new configuration URL you get from https://www.eduappcenter.com/apps/redirect after putting in new data
7. Observe that changes are reflected in the External Tools tab but the actual link in Navigation menus is changed
Change-Id: I2b233cb89e4b446cd66b6e826ec8de894a02bfdd
Reviewed-on: https://gerrit.instructure.com/33757
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: Eric Berry <ericb@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
fixes CNVS-10988
test plan:
- as a teacher with draft state on
- set the homepage to show assignments
- the homepage should look like student view
- it should look good
- it should function normally
- you should be able to change the homepage to another view
- view it as a student
- it should work normally
- as a teacher with draft state off
- the homepage should look like the old one
- it should function as usual
- you should be able to swith the homepage
- the actual DS assignment index page should work normally
- set multiple due dates for assignments
- teacher should see multiple dates
- students should see their date only
- try to break this somehow
- on the homepage
- if you have it full screen, date available until should be there
- if you shrink the screen to a size where there is overlap AND reload
- date available until should go away so there is no overlap
- make a several assignments with different grading types
- teacher & student homepage grade column should look okay
Change-Id: I4ff101c05d18592a5c92dc2650eee406116ba4c5
Reviewed-on: https://gerrit.instructure.com/31522
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
test plan:
* regress module progression workflow for students
- student progress should always be up-to-date
fixes CNVS-11818
Change-Id: Ib6b4ccf7b93bc490726fe2bf75333d75f1572ee0
Reviewed-on: https://gerrit.instructure.com/31575
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:
* in the account settings, check "Enable Profiles", and
uncheck "Users can edit display name"
* as a non-admin user, go to your user profile page
("/about/:user_id"), and click "Edit Profile"
* should not allow you to edit your name or title
fixes #CNVS-2583
Change-Id: Ib5ade72bcfbcd9bc89070888db46586e687fc812
Reviewed-on: https://gerrit.instructure.com/33987
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>
When preparing user content for public consumption via the API, we were
hardcoding a media_type of mp4, which prevented clients using API
endpoints (specifically the mobile client) from playing audio comments
which only had mp3 sources.
This adds a new path through media_download that prefers mp3 for audio
media but falls back to the old mp4 behavior. We also maintain backwards
compatibility with other callers using the file_extension based
filtering.
NTRS-43
Test Plan:
- With both a 'wav' and an 'mp3' sample file:
- Create an announcement and upload an audio file via the RTE
- Wait for transcoding to complete in Kaltura
- The file should play properly in the web browser
- Open the same announcement in the iOS mobile app
- The audio file should play properly on the phone
Change-Id: I26735096ea4336cf1acc04eb9649d322f68fa515
Signed-off-by: Paul Hinze <paulh@instructure.com>
Reviewed-on: https://gerrit.instructure.com/33318
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
fixes CNVS-12633
test plan:
* create an admin in account A
* create a user in account B
* admin in A should get permission denied trying to create a pseudonym
in A for user from B
* user from B should get permission denied trying to create a
pseudonym for himself in A
Change-Id: Ie548122be01a4eeb4a2ffaaf85e28a775eb7fe66
Reviewed-on: https://gerrit.instructure.com/33804
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-12147
test plan
- regression test incoming mail
Change-Id: Id3d8a95dda3566bae8d395d1b759c7897ab3c1ee
Reviewed-on: https://gerrit.instructure.com/32671
Reviewed-by: Braden Anderson <banderson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
fixes CNVS-12129
test plan
- regression on incoming mail
Change-Id: Ia9ab3419201c9fdbd89e2483a3fde51f54c7f982
Reviewed-on: https://gerrit.instructure.com/32594
Reviewed-by: Braden Anderson <banderson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
fixes: CNVS-12328
test plan:
- as admin enable the google_doc plugin
- as student visit `/profile/settings`
- click 'Google Docs' under the 'Other Services' section
- click 'Authorize Google Doc Access' in modal
- when redirect to google, click 'Allow access'
- verify success banner displays
Change-Id: I2b45ffa38ac0d1d810fb988335f4cd39154ae2a6
Reviewed-on: https://gerrit.instructure.com/32949
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Only site admins with the "Application Profiling" permission will see
this UI or be able to trigger profilings. The little UI that shows up in
the top left corner contains information on request timings, renderings,
AR queries and timings, and other information about the request.
When Redis is configured, you can share this information with others
(until it drops out of Redis) using a special link given in the UI.
closes CNVS-12563
test plan:
As a full site admin
* enable the profiling UI by appending ?pp=enable to a request
* visit canvas pages and verify you can see the new profiling UI
Verify that for all non site admins, the UI doesn't show up and cannot
be enabled with ?pp=enable. It also can't be enabled by other site admin
roles unless permission is given in the site admin permissions UI.
You don't need to do in-depth testing of the UI itself, though do a
quick smoke test to make sure it doesn't interfere with canvas at all or
modify the HTML returned for non-site-admins.
Change-Id: I4e71389af6b56bdff3617170c16b2ee70cea5c6f
Reviewed-on: https://gerrit.instructure.com/33541
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
test plan:
- have two users in a course that can manage files
(such as a teacher and a designer)
- as user A, upload several small text files
- as user B, on the files page,
- rename a file
- move a file to another directory
- edit the content of a file
- go to the console and examine the user_id property
of each of these files. the one whose content was
changed should refer to user B; the others should
remain with user A.
refs CNVS-11219
Change-Id: I8c6b284b3855df52a804f15cd25e514b33be0fb6
Reviewed-on: https://gerrit.instructure.com/33518
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes: CNVS-12598
test plan:
- create a quiz as an instructor
- as a student
- take quiz
- exercise all paths by which a quiz submission is generated
- verify that quiz submissions continue to work as before
Change-Id: I9fd71679e6c9a45686861609ff481f5f4250cca1
Reviewed-on: https://gerrit.instructure.com/33735
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
fixes CNVS-11966
test plan:
- with srgb feature flag enabled
- cant get to gb1
- /gradebook takes you to your preference
- switching saves the preference
- student behavior is normal
- with srgb feature flag disabled
- cant get to srgb
- /gradebook goes to gb1
- /gradebook2 goes to gb2
- student behavior is normal
- make sure all links to the GBs work
- student grade summary should work as usual
- with both FF settings, as a teacher checking a
single student's grade should work as usual
- courses with 'large rosters' get GB2 not GB1
Change-Id: I2a488fdfb5b3667c1d6cd21dc250ef3c50df101c
Reviewed-on: https://gerrit.instructure.com/33178
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-12565
test plan:
- as a student take a quiz
- verify that:
- background submissions are working
- end of time / date submissions are working
- manual submsissons are working
- verify various question types are graded correctly
- verify outcomes work as previously defined
Change-Id: Ia85141559e8026993c0e270267947128a5a0466b
Reviewed-on: https://gerrit.instructure.com/33669
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
Test plan:
- As a teacher and student, the quiz show page should show the quiz
show page as usual with submission results at the bottom.
closes CNVS-12452
Change-Id: I5844c9594a769dd1d5204db9a7e841e23b789382
Reviewed-on: https://gerrit.instructure.com/33509
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
fixes CAT-70
test-plan:
* in rails console:
* a = Account.root
* a.settings[:dashboard_url] = "http://www.google.com"
* a.save
* login to canvas
* verify that you are redirected to "http://www.google.com?current_user_id=123"
* where current_user_id equals the id of the user you logged in as
Change-Id: I3074f821fa4454b2a568228d00b1da60324b71a7
Reviewed-on: https://gerrit.instructure.com/33225
Reviewed-by: Jon Jensen <jon@instructure.com>
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CAT-66
Auto-authorize trusted developer keys during without prompting the end-
user. This will allow for more seamless integrations with other in-house
apps.
Also fix remember-me access so it works when you re-auth into canvas
(previously it only worked if you were already authenticated into
canvas)
Expand test coverage around oauth login scenarios
test plan setup:
* set up a web-based oauth integration with canvas
* ensure your app doesn't currently pass force_login=1 during oauth
* ensure your app doesn't currently delete access tokens during logout
* for part 2, ensure your app uses the /auth/userinfo scope (for part
1 it doesn't matter)
* for part 3, ensure your app does token request flow (not userinfo)
test plan part 1 (trusted keys):
1. in the canvas console, set trusted=true on the app's developer key
2. do an oauth login as and end-user
3. confirm that you are authenticated into the app without being prompted
to give it canvas access
4. log out of the app (but not canvas)
5. click to log in again
6. confirm that you are automagically logged in without any prompts
test plan part 2 (remember access):
1. in the canvas console, set trusted=false on the app's developer key (or
set up your app to use a different one)
2. do an oauth login as and end-user
3. confirm that you are prompted to authorize the app
4. check the box to remember access
5. log out of canvas and the app
6. do an oauth login again
7. confirm you are not prompted to authorize the app
8. log out of the app (but not canvas)
9. click to log in again
10. confirm that you are automagically logged in without any prompts
test plan part 3 (untrusted key, not-userinfo)
1. in the canvas console, set trusted=false on the app's developer key (or
set up your app to use a different one)
2. do an oauth login as and end-user
3. confirm that you are prompted to authorize the app
4. confirm there is no box to remember access
5. log out of canvas and the app
6. do an oauth login again
7. confirm you are prompted to authorize the app again
8. log out of the app (but not canvas)
9. click to log in again
10. confirm that are prompted to authorize the app again
Change-Id: Ifb2eb29e4da163b595cb070455ebae21a4618ba4
Reviewed-on: https://gerrit.instructure.com/32926
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-10479
test plan:
- in a course with kaltura enabled
- go to a discussion and add media
- upload a video (use right tab, not the webcam)
- save the video/discussion post
- the video should be saved properly and viewable
(this sometimes takes a minute of two)
Change-Id: I40b9174807707dd1fb41125e04705422a8711d5d
Reviewed-on: https://gerrit.instructure.com/32024
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
the gem will handle the process of including them
Change-Id: I2237b4cad388756f91f67138a716ae5a8472d9df
Reviewed-on: https://gerrit.instructure.com/32586
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
test plan:
- login to canvas
- do an oauth login from an external app, or with a manual GET request
according to Step 1 of the "Web Application Flow" at
https://canvas.instructure.com/doc/api/file.oauth.html,
and make sure you include the query param force_login=1
- verify that canvas sends you to /login
- verify that without the param force_login=1, canvas still sends you
directly to /login/oauth2/confirm
Change-Id: I49cd43cc48edf46f192221f5cf8707ee00e0bd8a
Reviewed-on: https://gerrit.instructure.com/32988
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeff Belser <jbelser@instructure.com>
Reviewed-by: Nick Houle <nhoule@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-9044; fixes CNVS-12110
test plan:
* open discussions as a user with moderation permissions
* click the gear menu on a pinned discussion topic
* click the "Move To" option
* select a new position for the discussion topic
* verify that the discussion topic is moved
* refresh the page
* verify that the change persists
Change-Id: If118e41066d224dbb3153113c67372ecdd2b3007
Reviewed-on: https://gerrit.instructure.com/32423
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
fixes CNVS-10638
test plan:
* open outcome gradebook
* select a section
* click on "export report"
* download and open the export
* verify that the export format matches the Jira documentation
* verify that the export data matches the data from your browser
Change-Id: I35bd78719880026b71b30da5794c9afe7dd31868
Reviewed-on: https://gerrit.instructure.com/31774
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
test plan:
- enable draft state in a course
- create some assignments, quizzes, and graded discussions
with due dates and points possible
- add them to a module
- the due dates and points possible should show up on
the modules page
- edit the due date and/or points possible on an assignment
and return to the modules page
- the changed information should be reflected on the modules page
fixes CNVS-11850
Change-Id: I7cb7eecc6744ff2df63888ff1ec83633e1e382a3
Reviewed-on: https://gerrit.instructure.com/32087
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Product-Review: Mark Severson <markse@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
and use them to initialize tz() during the common bundle
Change-Id: I0aa8215d4e83514be3ec2e5e1450df42185b8c83
Reviewed-on: https://gerrit.instructure.com/24674
Reviewed-by: Braden Anderson <banderson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
an API for queueing and retrieving
open_data_export jobs. Conforms to json_api
but does not yet actually schedule a job for
open_data_export
refs CNVS-10567
refs CNVS-10718
Change-Id: If554f7f4db49f1385b89fa810635886d0a7428e5
Reviewed-on: https://gerrit.instructure.com/28716
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
QA-Review: Anthus Williams <awilliams@instructure.com>
especially in rails 3
just use stubs instead of starting up a second thread and opening a
connection
Change-Id: I52837c6ff65ed62a225c0a4df61c1a73df2a1526
Reviewed-on: https://gerrit.instructure.com/31320
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
test plan:
* full regression of all module progression functionality
closes CNVS-11505
Change-Id: I63f542d5d42f950cf9c8117e12ecce4518e2ccf4
Reviewed-on: https://gerrit.instructure.com/30983
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-11540
when a url was built with the model name it replaced the namespace model
string of "quizzes/quiz" with "quizzes:quiz" so that the slash wouldn't mess
up the url. We need to translate this back before attempting to classify
the quiz string back to the class name.
test plan:
- add a quiz to a module with something before and after it in the module
- navigate to the quiz from the module
- the footer with prev/next links should appear
Change-Id: I559b646fb799f48c6782dc554eb26dca7f6b348b
Reviewed-on: https://gerrit.instructure.com/31215
QA-Review: Myller de Araujo <myller@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-10403
test plan:
- turn on srgb in course settings
- in gb2, click the 'switch gradebooks' link
- navigate to courses/:id/grades
- it should load srgb
- click the 'switch gradebooks' link
- navigate to courses/:id/grades
- it should load gb2
Change-Id: I8c41b9763be44c2c968d818ac4d8a909476361a7
Reviewed-on: https://gerrit.instructure.com/29841
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
refs CNVS-11420
test plan:
* run an account report
* refresh the settings page
* it should show that it ran
Change-Id: Ie60570db1ceaff51a4dadd0c30357c333dcabf1c
Reviewed-on: https://gerrit.instructure.com/30995
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
test plan (non-draft-state):
- as a teacher
* create each of the following:
- assignment
- discussion
- page (hidden from students)
- page (not hidden from students)
- quiz (leaving it unpublished)
* add each of the above items to a module
* refresh the modules page
- each of the above items should be listed
- as a student
* navigate to the modules page
- the hidden page and quiz should not be listed
- all other items should be listed
* click on the first item in the module
* click through each of the 'Next' buttons
- only items listed in the module should be presented
test plan (draft-state):
- as a teacher
* create each of the following:
- assignment
- discussion
- page
- quiz
* add each of the above items to a module
* refresh the modules page
- each of the above items should be listed
- as a student
* navigate to the modules page
- only published items should be visible
* click on the first item in the module
* click through each of the 'Next' buttons
- only published items should be presented
* publishing items (as a teacher) should make them available to the
student in the module progression as well as the modules page
closes CNVS-10831
Change-Id: Ia84e56f42438ff531a4e15784eefaec2ead8ecdd
Reviewed-on: https://gerrit.instructure.com/30312
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
This commit namespaces the rest of quiz related code into a Quizzes
namespace: controllers, views, models, and classes that previously lived
under lib/ that are Quiz-related.
Test plan:
Full regression test on all quiz related items
refs CNVS-10457
Change-Id: If54b61213945056539e03271a936d233abb66188
Reviewed-on: https://gerrit.instructure.com/29351
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
things fixed:
- erubis is in actionpack gemspec in rails3, so we don't need it in the gemfile
- don't directly initialize a SafeBuffer, and instead initialize OutputBuffer
- Fix comparison of hash with indifferent access in quizzes spec
- plugins in rails3 aren't loaded in init.rb so rails_xss is still being
loaded in rails3. However we have parts of the code that actually reference
rails_xss classes directly so we want to keep the RailsXss::Erubis constant
defined in erubis.rb. However we don't want to actually monkey patch
the activesupport or string methods anymore for xss (rails3 takes care of
this for us)
Change-Id: I327bf042dfa7dcedd39acb463eda1420d3dbd98c
Reviewed-on: https://gerrit.instructure.com/30108
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
QA-Review: Derek DeVries <ddevries@instructure.com>
the index and show actions are unused. the index view was
removed awhile ago in 91ce600f.
Change-Id: Ib84fc2e9e524aec3143a4395d15f9c1320798648
Reviewed-on: https://gerrit.instructure.com/29983
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
find the existing policy if there is one, and reset missing ones instead
of destroying them
Change-Id: Iec50b29c5977ac727af1225f6c80260a5ef09d3d
Reviewed-on: https://gerrit.instructure.com/29998
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
* don't use respond_to if json is the only possible format
* when filtering scribd_doc, rails 3 serializes as a hash with
string keys, as opposed to a HashWithIndifferentAccess, so
delete with string key
* don't use StringIO as an uploaded file; Rails 3 TestCase will
call to_param on it
* don't require the .:format part of the public_url route
Change-Id: I282f529f1ee0941b52a996eefa01647a018f70d3
Reviewed-on: https://gerrit.instructure.com/29930
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
refs: CNVS-392 (g/27807)
Since the settings for a course is stored in a hash it was not triggering
that changes were made on create or update. This fixes it so that course
settings changes are also tracked in the course activity logs. This also
fixes an issue where indexed was always showing as changed due to its
default value. This fixes it so it will only set it when required. Same
as locale.
Test Plan:
- Change some course settings during create and update.
hide_final_grade
hide_distribution_graphs
allow_student_discussion_topics
allow_student_discussion_editing
lock_all_announcements
large_roster
public_syllabus
- Make sure those are included in the course activity log.
Change-Id: I798cfc255d683339ab69a2daba14495c5f15d7e4
Reviewed-on: https://gerrit.instructure.com/29394
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
- include does not check for "self" anymore
- we don't need complete_request_uri in rails3
Change-Id: Ifee1885056f0b84d80566ed15730a5359e502a51
Reviewed-on: https://gerrit.instructure.com/29772
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
test plan:
- have a course with draft state enabled
- have a bunch of unpublished module items
- reorder them
- reload the page and make sure the order sticks
fixes CNVS-10906
Change-Id: I47713b454cce41330803eb742455697b4a26e0b0
Reviewed-on: https://gerrit.instructure.com/29591
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
fixes CNVS-10864
test plan
=========
- add drop rules to never drop one or more assignments
- verify that the totals in Gradebook, GB2, and the student grades
summary page match
Change-Id: I1ac4a31a03b664ac6d3e92bc2cd761c69d2056b5
Reviewed-on: https://gerrit.instructure.com/29619
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-10839
test plan
- enable wimba and adobe connect conference plugins
- make a conference
- ensure it is visible on the conference index page
- disable the plugin for the conference
- ensure it is no longer visible on the conference index page
Change-Id: Idc26d306f683fade5bf6d8619dfe9325047bb116
Reviewed-on: https://gerrit.instructure.com/29487
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
fixes CNVS-1869
test plan:
- as a teacher, go to a student's grade summary page
- in the url, replace the student's id with 'banana' or 'lqw'
(e.g. /courses/1/grades/banana)
- you should get a Page Not Found error page
- navigate to /courses/:id/grades and the page should
redirect you to gradebook
Change-Id: Ic7d2b3de463615957a8d4178544ab19b7e651f60
Reviewed-on: https://gerrit.instructure.com/29215
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-10684
test plan:
* create an unpublished course
* invite a student
* create a group in the course
* add the student to the group
* log in as the student
* open old conversations
* compose a new message
* click on the address book icon
* verify that the recipients list loads
Change-Id: Ic25500a31ef604331d7380e76af226b0c10fd4a1
Reviewed-on: https://gerrit.instructure.com/29244
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
having an "association" attribute causes problems in rails 3
Change-Id: I3249a25cd2a6162ff33f548a2e9f4f51a2940ece
Reviewed-on: https://gerrit.instructure.com/29058
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: I8a10679218b9a6ff8485b7822a21c704bdfaa398
Reviewed-on: https://gerrit.instructure.com/29213
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes CNVS-10679
this commit refactors quiz into a quizzes namespace. it contains various
shims to facilitate the data migration of polymorphic relationships
('Quiz' -> 'Quizzes::Quiz'). JIRA contains several tickets linked to
the above tickets in regards to removing these shims after the data
migration, as well as the strategies on reverting the shims once the
data migration is complete.
Change-Id: I30c566d60a87af6ee83e9d0041fdcb909ead6a89
Reviewed-on: https://gerrit.instructure.com/28573
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
refs: CNVS-392
Since all the auditor controllers use this same method it was
moved to the audit api base class. See CNVS-392(g/27807).
This also adds the grade_change record method to activate the
submissions shard when creating a record which should will
prevent some shard issues with it.
Test Case:
- Test the API calls for grade changes
- Test the API calls for authentication events
Change-Id: If89d6b14cb7d328128b3a2275134301014d87ed3
Reviewed-on: https://gerrit.instructure.com/28551
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
Change-Id: I3b3e02525d00e2337835b0b0cc755c558f137619
Reviewed-on: https://gerrit.instructure.com/29130
Tested-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
fixes: CNVS-392
Added logging for course events. This is on a more generic level allowing us
to add all sorts of event types to courses. First adds a general event for
course details. Later we can add other event types such as assignment date
changes.
Test Plan:
Setup:
- Create a course
Security:
- Query API and should return success.
- Remove account level permissions for viewing course changes.
- Query API and should return invalid.
- Add credentials back.
- Query API and should return success.
Course Details:
- Change some details on the course.
- API should return an event containing the data for the changes made to the
course details.
Change-Id: I5ab139868842c2ad9777245d5a81452caf0d0970
Reviewed-on: https://gerrit.instructure.com/27807
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
Attempt to fix our sis batch tempfile usage, which wasn't compatible
with the travis environment.
Found more SAML specs to mark as pending when SAML isn't enabled.
Use webmock instead of our own home-grown solution, since Travis
enforces webmock.
Select only the users we're interested in sorting, to remove dependency
on empty db.
refs CNVS-10467
Change-Id: Icf9b093c6cc4a6b7b19da9dd2abab9f39457f817
Reviewed-on: https://gerrit.instructure.com/28949
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
test plan:
* enable db page views
* as an admin in shard 1, masquerade as a user in shard 2
* view the user in shard 2; the page views from the admin should
show up
Change-Id: I3c71ab12d207159d2f2dd0985449f4576bb04b67
Reviewed-on: https://gerrit.instructure.com/28355
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
in rails 3, ActionController::TestUploadedFile has
been moved to Rack::Test::UploadedFile. This commit
simply updates uses of TestUploadedFile to work
with this new structure
Change-Id: Ib31159c635f033a13908608dffeea88c8f719086
Reviewed-on: https://gerrit.instructure.com/28234
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
QA-Review: Anthus Williams <awilliams@instructure.com>
fixes CNVS-10341
test plan:
* before applying this commit, if possible:
* create a discussion
* add a reply as a student
* after applying this commit:
* open the discussion as the student
* verify that you can edit the reply you added before, but not
those from other users
* add a new reply
* without refreshing, verify that you can edit your new reply
* refresh the page
* verify that you can still edit your reply
* test basic canvas functionality (sorry)
Change-Id: Ifa654f7d853fd167d5bfbaee6184657209d58272
Reviewed-on: https://gerrit.instructure.com/28413
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
hide_from_students is being deprecated in lieu of the workflow states
'active' (published) and 'unpublished'
test plan: (draft state and legacy)
special attention should be given to areas related to hiding wiki
pages from students (legacy: hide from students checkbox;
draft state: published/unpublished items)
items that are hidden from students or unpublished should show for
teachers, but should not show for students
- areas to test:
- pages api and ui (regression)
- validate hide_from_students and published values in all api calls
- course migrations (specifically course copy)
- wiki sidebar in other parts of canvas
fixes CNVS-10354, CNVS-10366
Change-Id: I70f4d8c07c2be4150163279f0673377bad6e9c48
Reviewed-on: https://gerrit.instructure.com/28375
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
fixes CNVS-10252
test plan:
- create a course with draft state enabled
- create a mix of published and unpublished assignments
- as a student or teacher, go to the assignments tab in the top menu bar
- it should only show published assignments (even for teachers)
- now change your course homepage to be the assignment list
- it should show only published assignments for students
- it should show both published and unpublished for teachers
- finally, check that the course RSS feed contains only published assignments
Change-Id: Ib9494e76d178cba4b6c32722b0c33b1f8e11824c
Reviewed-on: https://gerrit.instructure.com/28055
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-10244
test plan:
- create a new course with a teacher and student
- create two assignments, and publish them
- grade them both
- unpublish one of them
- look at all the places you can see grades, and make sure they all
consistently show only the grades for the published assignment (the
unpublished assignment should be completely ignored)
* GB2 with and without 'treat ungraded as 0'
* GB1 with and without 'incluce ungraded'
* GB csv download
* student grades summary page with and without what-if scores
* /grades page as a student and as a teacher
Change-Id: I32aca28fe377e59cb2e0c6278b59eb74c87c73b4
Reviewed-on: https://gerrit.instructure.com/28047
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-6571
assignment group ids are strings (not ints) for both assignments and discussions
test plan:
- as teacher, create two assignment groups
- add a discussion to each group
- ensure: when editing the discussion, the right assignment group is selected by default
- ensure: other types of assignments default to correct assignment group
Change-Id: I13ec98f28025394cf4a1e6ea1b1d51c87fcc987b
Reviewed-on: https://gerrit.instructure.com/27604
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Irish <mirish@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-10015
test plan:
* delete a student from a course
* log in as the student
* open new conversations and compose a message
* select the course
* enter a recipient search term
* verify that "No results" is presented
Change-Id: I672843486cabda1694627a076e5b2612662e596c
Reviewed-on: https://gerrit.instructure.com/27860
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
When copying a module item for an external tool the reference
to the ET was lost. So when the url didn't match to an ET
config it couldn't launch.
Test Plan:
* Create module items that use a course external tool and
ones that use an account external tool
* copy the course
* the module items in the new course should still work
closes CNVS-9242
Change-Id: Id1f11b5cef4fa21867cc3b7907365b11801e7c7f
Reviewed-on: https://gerrit.instructure.com/27679
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
primarily switching fullpath in place of request_uri
in preparation for rails 3
Change-Id: If14f2cc2da5120a60f04d4cfdfb05a55482a3695
Reviewed-on: https://gerrit.instructure.com/27162
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes CNVS-10058
canvas no longer integrates with tinychat; this commit
removes legacy references to it.
test plan:
* run specs
Change-Id: I4887e901d57ff39f8554af3e4eacd52ec4edd6e5
Reviewed-on: https://gerrit.instructure.com/27621
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
also fixes an issue where the submission detail page broke after assessing
a rubric for the first time (never been assessed before)
fixes CNVS-9953
test plan:
- create a new assignment with a rubric for grading
- go to the submission detail page for a student who has never been graded
with this rubric before (in other words, this will create a rubric
assessment for the first time)
- grade them with the rubric
- you should be able to re-open the rubric and grade them again without having
to refresh the page
Change-Id: I7245650b9527e11ec20b66e852a744ce67fb381d
Reviewed-on: https://gerrit.instructure.com/27541
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-4806, CNVS-4482
test plan:
* open conversations
* compose a new message
* select a course
* verify that you can search for a section in the course by name
* verify that you can search for a group in the course by name
* verify that you can send a message to an entire group if you have
permissions to send it to the entire course
* create a course with two sections
* add students to the sections and add a TA who can only see
students in one section
* masquerade as the TA
* verify that the other section does not appear in the recipient
search section list
* verify that users in the other section do not appear in the
recipient search student list
* create a course in a concluded term
* open new conversations
* verify that the course is listed in the concluded section of the
filter list
* masquerade as a teacher for the course
* open old conversations
* verify that the concluded course is present in the filter search
* verify that the course is not present in the recipient search
Change-Id: I5a4e62de4e182cf0859dc47a3f8ad694f616a3bc
Reviewed-on: https://gerrit.instructure.com/27433
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
fixes CNVS-9951
test plan:
- enable draft state
- go to gradebook 1
- total columns should be visible
Change-Id: I99b50a04583e84c8762d3b83889e551cae486cd2
Reviewed-on: https://gerrit.instructure.com/27325
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
- create a custom role based on TA
- deny "Manage (add/edit/delete) assignments and quizzes" to it
- deny "Manage all other course content" to it
- keep "Edit grades" and "View all grades" allowed
- enroll a user with this custom role
- make sure the user can grade assignments and quizzes
- make sure the UI elements to create, edit, and delete modules,
assignments, and quizzes are not shown to this user
- with draft state disabled
- with draft state enabled;
- from the Assignments/Quizzes/Modules page, and also
- the ability to create an assignment or quiz via module item.
- make sure that attempts to create, edit, and delete
quizzes via the API are denied
fixes CNVS-1481
Change-Id: Ic4056f709d48c40b2804aef52a4a1aafc44b5122
Reviewed-on: https://gerrit.instructure.com/27187
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
in preparation for rails 3
Change-Id: Ib752c02b8eb63093648843dca696f17fcc7f62ef
Reviewed-on: https://gerrit.instructure.com/26976
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
in preparation for rails 3
Change-Id: I048e4f8db97dacf64616ad52ec075516b55f3c0f
Reviewed-on: https://gerrit.instructure.com/26966
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes CNVS-9350
test plan:
1. Enable the parent coenrolment banner through script/console with:
a = Account.default;
a.settings[:self_registration] = true;
a.settings[:self_registration_type] = 'observer'
a.save;
2. Verify that /login shows "click here for a parent account" banner.
3. Click that banner.
4. Verify that clicking "Start Participating" without filling out the
form pops up all of the "Required field" error messages.
5. Verify that submitting bad info (e.g. an email address without an @
sign) pops up appropriate error messages as well.
6. Enter good info (using a student account you previously registered)
and verify that you get the the /?registration_success=1 page.
Change-Id: I9920f8599beafee584d574f4f6748d8a298a8bd2
Reviewed-on: https://gerrit.instructure.com/26680
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-9263
test plan
be sure to test ungraded discussions, graded discussions, graded
group discussions (root level and group topics), and announcements
with draft state disabled
- ensure publish icons do not appear on discussion index page
- ensure publish button does not appear on discussion show page
- ensure that discussions for delayed posting are not visible to
students
with draft state enabled
- ensure that publish icons appear on the discussion index page and
that clicking them toggles the discussion's publish state
- ensure that publish button appears on the discussion show page
and that clicking it toggles the discusssion's publish state
- ensure that unpublished topics are not visible to students
- ensure that published topics are visible to students, even if
the topic is for delayed posting
- ensure that topics for delayed posting show a 'This topic will
open on' message on the topic show page
- ensure that [un]publishing the root topic of a graded group
discussion changes the group level discussion and vice versa
- ensure that announcements are published when posted and cannot
be unpublished
test plan for misc frontend fixes
- as a teacher, create a new discussion
- ensure it is unpublished
- as a student, create a new discussion
- ensure that it is published and that no publish button appears
on the topic show page or the topic index page
- as a teacher, create a new graded group discussion
- navigate to the group level topic
- publish the topic using the button on the show page
- ensure that the button switches to the 'Published' state
- as a teacher, create an announcement
- ensure that it is published
Change-Id: If0c46d232bc25776770012654af23e5cf10bbb45
Reviewed-on: https://gerrit.instructure.com/26654
QA-Review: Joel Hough <joel@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Clare Strong <clare@instructure.com>
closes CNVS-9187
Test plan:
* make two assignments (not group assignments)
* on assignment number one, submit some homework
* edit the assignment and try to convert it to a group assignment,
you should see a warning
* try to convert assignment 2 to a group assignment. there should be
no warning
Change-Id: I196cbad54fbcfe6df4bcbc3b71d3175e92a104fb
Reviewed-on: https://gerrit.instructure.com/26955
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
Fixes CNVS-5551
Test plan
- As user 1, upload a file and then delete it
- User 1 should see the name of the newly deleted
file in the notice returned when browsing to
/users/1/files/[Deleted-File-ID]
- Log in as user 2 and try
to access /users/2/files/[Deleted-File-ID]
- you should not see the file name but
rather a simple unauthorized message
Change-Id: Iab277b60c80e599790d76bcc86f3a73181e3b483
Reviewed-on: https://gerrit.instructure.com/26702
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
fixes CNVS-9869
This commit fixes a spec for QuizSubmission#backup that tests the
time_left parameter returned. Instead of testing for the exact value of
the time_left (when the spec execution time is inevitably variable), we
just check to make sure it's close to original (start) value.
Test Plan
This isn't really testable by QA. I've looped the execution of the spec
50+ times and am confident it should be less brittle going forward.
Change-Id: I9145441b518daac18b610f0ef6aba123a19845eb
Reviewed-on: https://gerrit.instructure.com/27090
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Josh Simpson <jsimpson@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
test plan:
- enable draft state in a course
- create a module
- create an assignment via add-module-item
- the assignment should not be initially published
fixes CNVS-9318
Change-Id: I8bbf14b2ca499b91ff69b83508da21185def88dd
Reviewed-on: https://gerrit.instructure.com/26720
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
fixes CNVS-5603
Test plan:
* Go to /courses/NN/rubrics/what_this_isnt_a_rubric_id
* you should get a 404 response, not a 500
Change-Id: I4eb68818270c7c31a631723501b41413a1430f3a
Reviewed-on: https://gerrit.instructure.com/26735
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
fixes CNVS-9686
test plan:
* as a site admin, navigate to a root account's settings
page, select the feature flags tab, and verify that the
google docs domain restriction is there;
* enable the feature;
* reload the settings page and verify that there is a
domain text input in the settings form;
* verify that if set, the google docs restriction
prevents users with invalid google docs domains from
submitting assignments;
* verify that when turned off, users can submit
assignments on any domain.
Change-Id: I1078c4d0d6d56e04ee882e1d58e6e1c302cf4caa
Reviewed-on: https://gerrit.instructure.com/26657
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
This patch makes it that when viewing the Access Report for a course
student, their "Times Viewed" column will reflect the number of times
the student has browsed the quiz or any of its related resources
(like History, or attempt views), but not taken it.
While the "Times Participated" column will reflect the number of times
the student really took the quiz (1:1 mapping with the number of
submissions.)
TEST PLAN
---- ----
In both test cases, you'll need:
- a course with a student enrolled
- one browser session with a teacher logged in viewing the Access
Report of the student
- one browser session with the student logged
CASE: Normal quizzes
- Create a quiz with a few questions and unlimited attempts.
- Refresh the teacher tab, keep an eye on Times "Viewed" and
"Participated" columns
- As the student:
- Go to the quizzes page
- Go to the quiz page
- Refresh the teacher tab, and:
- ONLY the "Times Viewed" score should be incremented by 1
- As the student:
- Push the Take the Quiz
- Refresh the teacher tab, and:
- ONLY the "Times Participated" score should be incremented by 1
- As the student:
- Refresh the quiz page (while taking it)
- Refresh the teacher tab, and:
- NEITHER score should be incremented
CASE: OQAAT quizzes
The expected behaviour for OQAAT quizzes is that the entire attempt
counts as 1 participation, just like the normal quizzes.
Follow the same steps as above, but:
- While taking the quiz, and for every question page:
- Refresh the teacher tab and make sure that neither score is
incremented
OBLIGATORY REFERENCES
---------- ----------
- Acceptance criteria @ http://docs.kodoware.com/canvas/cnvs-5294
refs CNVS-5294
Change-Id: I55883b8edbf417edb42b9fd103e08369e0e9e63c
Reviewed-on: https://gerrit.instructure.com/26543
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-8963
test plan:
- reordering questions in a quiz should continue to work
- reordering of questions within a quiz group should continue to work
- try dragging questions out of a quiz group
- try dragging questions into a quiz group
- Try out the API for reordering questions within a quiz
- Try out the API for reordering questions within a quiz group
Change-Id: Ic2b4a839979f54a4a5d98eaaafd09950f57f17b5
Reviewed-on: https://gerrit.instructure.com/26703
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-9496
test plan:
- draft state feature should show up in site admin feature
flags, or root account feature flags when called as site
admin
- when site admin hits "allow" for the feature, it should
appear in the root account administrator's settings
in "Off" state
- the root account admin should be able to "Allow" the setting
which allows a sub-account or course to turn it on
- when the feature is turned on via the Feature Settings tab
or features API, draft state functionality should appear
in the course wiki pages and elsewhere
Change-Id: Id7403f2a8371b0a7bfebffbb8f29330fff5c94c5
Reviewed-on: https://gerrit.instructure.com/26308
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
fixes CNVS-9633
regression from I2f989c0b0dba9a17c904ba516154adb18ceaaad5
Test plan:
* mute an assignment in a course
* load the students grade page as a student
* grade the assignment for that student
* refresh the student grades page
* the assignment group totals should not have changed
Change-Id: I21651cf5be341224910dcca56f02154ef3ab77f4
Reviewed-on: https://gerrit.instructure.com/26666
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-8949
test plan:
* from a rails console, run the following:
account = Account.default
account.settings[:google_docs_domain] = 'example.com'
account.save!
* as a student, configure your google docs integration
from your profile page;
* attempt to submit an assignment that allows file
uploads using the "google docs" tab of the submissions
box;
* verify that a message is displayed informing you that
cannot use a google doc because your domain is
incorrect;
* as another user who shares a course with the first
student, create a google doc collaboration and add
the first student to it;
* verify that the first student cannot join the
collaboration;
* change the account :gmail_domain setting to 'gmail.com'
and verify that both assignment submissions and
collaborations work as expected;
* verify that if you delete the gmail domain account
setting, both google doc submissions and collaborations
work as expected for users with google docs integration
configured.
note: users added to a collaboration without a valid google
docs address will receive a notification about the
collaboration, but will not be able to join it. this is
pre-existing behavior.
Change-Id: I26f164f253710819214ccf5f2250b74b91a6774b
Reviewed-on: https://gerrit.instructure.com/26436
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
test plan:
- With Draft State Enabled
- Call the api as a student for an unpublished quiz. You should get
a 401 response.
- Try to view the quiz show page for an unpublished quiz by
visiting its url. You should get an "Unauthorized" warning
message.
- With Draft State Disabled
It should work exactly as before...:
- Call the api as a student for a quiz that has not been
"published." You should not get a 401 error.
- Visit the page of the unpublished quiz. You should see quiz
details, but you should not be able to take the quiz. Also the
yellow "This quiz is unpublished. Students will not be able to.."
banner should also not appear for the student.
fixes CNVS-9122
Change-Id: I2bd8893ce8f28f919eac0d6b4b8b0f929b818ee3
Reviewed-on: https://gerrit.instructure.com/26294
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
fixes CNVS-8815
test plan:
- reordering of questions within a group should continue to work
- try dragging questions out of a quiz group
- try dragging questions into a quiz group
- Try out the API for reordering questions within a group
Change-Id: Ic2ebac87f7e2f5d9612b25cd9b80227cfa533b45
Reviewed-on: https://gerrit.instructure.com/26267
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
refs CNVS-5794
test plan:
* go through the oauth flow, adding purpose=something to the first
step
* at the end, when you view the access token in your user profile,
it should show the purpose you put in
Change-Id: I3f7f55df5540931ef5844c7f265dc720af153372
Reviewed-on: https://gerrit.instructure.com/26249
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
test plan:
- Install a tool that uses the rich text editor
- Select some text in the editor
- Launch the tool
- Ensure that canvas sends a "text" param with the selected text
Change-Id: I267b07f3ec5033d84c11e52b873fc36011602198
Reviewed-on: https://gerrit.instructure.com/24909
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
refs gh-323
a pre_registered user may have been added as an admin or otherwise
logged in
test plan:
* log in as an admin, go to users list for an account
* create a new user
* go to settings for the account, and add that user as an admin
(it should say "existing user")
* enable self registration on the account
* log out, and click the link to register for an account
* register as a teacher, using the e-mail address you used to
create the user
* it should say e-mail address already taken
Change-Id: I8187b86b83588ba70d3c1b6a31a96678fc70a910
Reviewed-on: https://gerrit.instructure.com/26223
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
closes CNVS-9394
test plan:
- visit quiz index
- verify current quiz system displayed
- enable fabulous quizzes
- visit quiz index
- verify ember / fabulous quizzes skeleton displays
Change-Id: Ie0737328b9aaa7bb2f97dc78647107b4ff9a7be2
Reviewed-on: https://gerrit.instructure.com/26204
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
fixes CNVS-9325
test plan:
* as user A in new conversations, send multiple messages
to user B;
* as user B in old conversations, delete all of the
messages inside one of the new threads;
* reload the page and verify that you can click on each
of the conversation threads in the left pane and that
they load as expected.
Change-Id: I531bb4e73c19d0c927dd5a033a46ced76aded512
Reviewed-on: https://gerrit.instructure.com/26059
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-9181
test plan:
- create a quiz, but do not publish
- un published quiz should display in assignment index as unpublished
- publish the quiz
- assignment list should be updated to reflect published quiz
Change-Id: I8d365121454203ca4913bba16551e8f220aa1ea3
Reviewed-on: https://gerrit.instructure.com/26060
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
attachments are not saving the user when using s3 file store
this is working fine when using local file store
test plan
with canvas configured to use s3 filestore,
upload a file, the attachment should have the user
who performed the upload associated with the attachment.
refs PS-675
Change-Id: I30efb122bc0646f2548e71d3b20fed33e5d3b375
Reviewed-on: https://gerrit.instructure.com/25687
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
refs CNVS-8955
Test plan:
* Try to reorder assignment groups in the assignment index page (old
one and draft state).
* Reload the page.
* The groups should be arranged in your new order.
Change-Id: I61f637202e954575b500411ea2f7da4d962c4cdf
Reviewed-on: https://gerrit.instructure.com/25984
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
fixes CNVS-8940
Test plan:
* load the grades page as a student
* everything should work
* repeat as a teacher visiting the student grades page
Change-Id: I2f989c0b0dba9a17c904ba516154adb18ceaaad5
Reviewed-on: https://gerrit.instructure.com/25421
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-8707
test plan:
- with draft state disabled
- as a teacher, create and delete an assignment group
- it should work
Change-Id: If0762c81e6115f8cebe7eb9ebd740b2d03d97ff7
Reviewed-on: https://gerrit.instructure.com/25518
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Irish <mirish@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Test plan:
- Create two accounts
- Install the old app center (http://www.edu-apps.org/) in one
- Install the new app center (http://edu-apps.herokuapp.com/) in the other
- Compare the two app centers and make sure they both work
* List apps
* Install apps
* View reviews
* Create reviews
* Update review
Change-Id: I477ac73e255676dd2faa70599aca998c6bfb3a0e
Reviewed-on: https://gerrit.instructure.com/25011
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
fixes CNVS-8780
test plan:
1. create a user in one shard
2. try to self enroll in a course in another shard
3. it should work, and you should not get a page error
Change-Id: Id856686546499f90c4a77cd64d008b621cdc4158
Reviewed-on: https://gerrit.instructure.com/25257
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan:
* create two original files (e.g. using a text editor)
this is to ensure that they will be root attachments
* create a course with a discussion topic
* attach one of the files to the topic ("File #1")
* upload both files to the course through the "Files" page
* edit the discussion topic, clear the attachment, and save
* in html content (e.g. the syllabus body), add a link
to the other file ("File #2") through the wiki sidebar
* return to the "Files" section and delete "File #2"
* return to the html content (e.g. the syllabus page)
* should not receive a page error
refs #CNVS-8449
Change-Id: Ie6f03b7bfbb61f4702a06c1ecaee8eda33bb1463
Reviewed-on: https://gerrit.instructure.com/25012
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
testing note:
this change affects all wiki page endpoints: api, draft state,
and non-draft state. basic functionality for all of these
pages should be verified, specifically when dealing with
non-existent or deleted pages.
test plan:
* PUT to /api/v1/courses/:course_id/front_page
- variations:
* wiki_page[title] - provided/not provided
* wiki_page[published] - true/false/not provided
* wiki_page[hide_from_students] - true/false/not provided
(hiding/unpublishing the front page is not allowed)
* PUT to /api/v1/courses/:course_id/pages/non-existent-page
- same variations as front_page (above)
* navigating to a non-existent/deleted page (draft state/non-draft state)
- should redirect teachers to the edit page
- should redirect students to the index page
(with an alert message indicating why)
* navigating to the 'Pages' tab (non-draft state)
- if the 'Front Page' exists
- shows the page
- if the 'Front Page' has been deleted (with draft state enabled)
- shows the edit page
- if the 'Front Page' has never existed
- shows the edit page
* all other pages functionality should remain unchanged
- non-draft state UI
- show page
- edit page
- draft state UI
- index page
- show page
- edit page
- api
- .../pages
- GET (index)
- POST (create page)
- .../front_page
- GET (show front page)
- PUT (create/update front page)
- .../pages/page-url
- GET (show page)
- PUT (create/update page)
- DELETE (destroy page)
fixes CNVS-8488
Change-Id: I563e6944e1602e0b21ab69c6fe2dcd643c06611d
Reviewed-on: https://gerrit.instructure.com/23590
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Also added auto-install for tools that only have the name parameter.
Test Plan:
- Open the app center for a course or account
- Add some tools
* Verify that the tools show up under the installed tab
* Verify that the tools have an installed banner on the tool page
- Add a new tool that only has a name param
* Verify that the tool installs skips the dialog pop-up step
- Add another instance of the previously installed tool
* Verify that that the tool allows you to change its name
- Delete all of the tools
* Verify that they no longer show up as installed
Change-Id: Ibe978d0be48acc68e9ed0ee35e41249e7e9824e2
Reviewed-on: https://gerrit.instructure.com/24661
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Brad Humphrey <brad@instructure.com>
* use sort_by instead of sort where possible to avoid repeating yourself
* use new SortFirst/SortLast sentinels to avoid strange magical constants
* fix a few places of complicated logic for tiered sorting to just use
an array
Change-Id: I184ef0b4e31fa18294c9beb32770101d383bbea1
Reviewed-on: https://gerrit.instructure.com/24867
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
removes need for run_transaction_commit_callbacks all over the place
Change-Id: Id878276ed86bb37f625ef34412b16d1f75a63bca
Reviewed-on: https://gerrit.instructure.com/24758
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
test plan:
curl -H 'Accept: application/json' http://<domain>/health_check
If you have a VERSION file in your canvas dir it'll report that
version, otherwise "Unknown"
Change-Id: I43c72140541ea441d4ec96a4c179d8db775843b7
Reviewed-on: https://gerrit.instructure.com/24595
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
**TEST PLAN**
Create a non saml authorization config
via rails console create a saml authorization config
saml authentiation should work when calling saml_consume endpoint
fixes PS-649
Change-Id: I95c3203056c614c241383d6f11a997def6547a76
Reviewed-on: https://gerrit.instructure.com/24452
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
fixes CNVS-8208
test plan:
- create a new quiz as a teacher
- mute the quiz in gradebook
- have a student take the quiz
- the student score in the attempts table should say "Not yet graded"
Change-Id: Ief963ee17fdf42117ebd0a47bf206493e82dcab1
Reviewed-on: https://gerrit.instructure.com/24540
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
fixes CNVS-7857
test-plan:
- try to log in as a user when using extra whitespace around their
username
Change-Id: Ia230d7caf784562a881f59fed17e393d5c4b4878
Reviewed-on: https://gerrit.instructure.com/24391
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
fixes CNVS-8105
test plan:
- enable draft state for a course
- set a wiki page to be the course front page
- confirm you get the new page UI,
with the toolbar up top with "View All Pages" and the
gear menu at right
- confirm the course name is shown in place of the wiki page title
- confirm the "Published" and "Front Page" markers are not shown
(they're redundant on the course home page)
- confirm the module sequence footer is not shown on the course
home page
- confirm the gear menu doens't have a "delete" option
on the front page
- set a Creative Commons license and ensure it shows up correctly
on the bottom of the home page
- view the front page in Pages and confirm that the page shows
normally there (Published, Front Page, sequence footer present,
delete is in the gear menu)
- also make sure the course home page still works properly
(with the old ui) when draft state is disabled
Change-Id: I28c2ee6a373d1b9b83c42775665ceca058ede2de
Reviewed-on: https://gerrit.instructure.com/24269
QA-Review: Hannah Bottalla <hannah@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
* enable draft state
* visit the new modules progressions page at
"/courses/:course_id/modules/progressions"
* confirm that clicking on students shows their
module progress
closes #CNVS-7694
Change-Id: I95404d88785b6be4997214091e7b63728330bd07
Reviewed-on: https://gerrit.instructure.com/24176
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
- start with draft state disabled
- for each step, exercise the api (as a teacher) to confirm the
expected values
1) create pages with different hide_from_students values
a) as a teacher
hidden pages should be visible; the hidden flag should persist
b) as a student
hidden pages should not be visible
2) using the api, update published and hide_from_students
(together and separately)
a) the published value should not be affected
b) the hide_from_students value should be updated when set
3) enable draft state
a) as a teacher
previously hidden pages should be visible, but unpublished
b) as a student
previously hidden pages should not be visible
4) edit a page
a) ensure the "Hide from students" option is gone
5) publishing pages should behave as expected
a) published pages should be visible to students
b) unpublished pages should not be visible to students
6) using the api, update published and hide_from_students
(together and separately)
a) the hide_from_students value should not be affected
b) the published value should be updated when set
7) create new pages with different published states
a) as a teacher
unpublished pages should be visible, but unpublished
b) as a student
unpublished pages should not be visible
8) disable draft state
a) as a teacher
previously unpublished pages should be marked hidden
b) as a student
previously unpublished pages should not be visible
fixes CNVS-7617
Change-Id: I395e0b2639543a64d9e2bc8d9377c78cf36f42d6
Reviewed-on: https://gerrit.instructure.com/23618
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
closes CNVS-7318
Test plan:
* Open a quiz in speedgrader
* Click the settings link and enable beta quiz navigation
* You should see a quiz navigation bar at the top
* the beta nav setting should only display for quizzes
Change-Id: I546c6032680bdef4fd56c9fed9e8fd79454e3f42
Reviewed-on: https://gerrit.instructure.com/23834
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-6858
Adds Submission#time_left and implements it within
QuizSubmissionController#backup. JavaScript syncs with server
timer.
test plan:
1. Take timed quiz
2. Note that time left timer is working
3. Change system time
- time left timer shouldn't change
Change-Id: I3d67cb2a983dfb8f7bf762a6c980b35bb12657fc
Reviewed-on: https://gerrit.instructure.com/23879
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
fixes CNVS-7745
test plan:
- create a rubric with and outcome and add it to an assignment
- verify that both the rubric and assignment are aligned to the outcome
- from the course rubrics page, remove the outcome from the rubric
- verify that both the rubric and assignment alignments were removed
- quick regression around delete rubrics from different contexts
Change-Id: Ibfca5df68423a5a81e1ef2c73920d2e932c463d6
Reviewed-on: https://gerrit.instructure.com/23871
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Hides SpeedGrader links and redirects to the show page for an assignment
or quiz that is "unpublished" and its context is draft state enabled.
test plan:
- Make sure you have draft state enabled for your account.
- Create an assignment and a quiz. Ensure the following:
- The SpeedGrader link is not visible on page load when the item is
unpublished.
- The SpeedGrader link is visible on page load when the item is
published.
- For the assignment show page only:
- Toggling the item's published state using the publish button
should show/hide the SpeedGrader link appropriately.
- Republish the quiz and assignment. Save their SpeedGrader urls
somewhere handy. Now unpublish both of them again. Try to visit each
url. You should be redirected back to the item's show page with a
friendly flash message indicating that SpeedGrader is only available
for published assignments.
- Create a discussion topic that can be graded.
- Unpublish it from the assignments index page.
- On its show page, you should not see a link to speedgrader under
admin links.
- Republish it.
- On its show page, you should see a link to speedgrader under
admin links.
- Clicking "publish" on the assignments index page should toggle the
published status on the quiz show page, and vice versa.
Also creates a useful "enable_draft!" method on the Account model for
an easy way to enable draft state on an account rather than repeating
the setup code over and over again in various places.
fixes CNVS-7194
Change-Id: If3880c0439f3a6e63f59417c55e0e0f617c3c5ce
Reviewed-on: https://gerrit.instructure.com/23805
QA-Review: Myller de Araujo <myller@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
test plan:
* update a discussion topic changing the attachment
Change-Id: I242c85fbe258eadd76c90a3a4d0fd0009d47b2b7
Reviewed-on: https://gerrit.instructure.com/23703
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
test plan:
- with draft state disabled and allow draft enabled for the account
- account.settings[:enable_draft] = false
- account.settings[:allow_draft] = true
* enable draft state for the course
- course.enable_draft = true
* click on the 'Pages' tab in the course
- the new pages UI should be shown
* disable draft state for the course
- course.enable_draft = false
* click on the 'Pages' tab in the course
- the legacy pages UI should be shown
Change-Id: If5d180e18451ec559d12b18784263b4ff92a754d
Reviewed-on: https://gerrit.instructure.com/23581
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
There are a few old LearningOutcomeResults that have a nil artifact, and
many that have a Submission as an artifact. We want to get rid of these
because they come from bad data, and step 1 toward that goal is to stop
creating them and hide them in the UI.
The LORs with a nil artifact are very old and I believe came from a very
early incarnation of outcomes. The LORs with a Submission as an artifact
came from a combination of two code problems. The first was old code
that allowed an assignment that was aligned with an outcome but did not
have a rubric to create LORs directly based on it's submission. The
second was a bug that prevented the assignment <-> outcome link from
being destroyed when a rubric with an outcome was removed from an
assignment.
fixes CNVS-7495
fixes CNVS-7498
test plan:
- try different combinations of adding a rubric with an outcome to an
assignment.
- when you grade the assignment, the grade create a learning outcome result
(which can be seen on the outcome show page, or in the account outcome
report) if the rubric+outcome are currently attached to the assignment.
- so for example, add a rubric with an outcome, check, remove just the outcome
row, check, add a new outcome row, check, remove the whole rubric, check.
- be sure to check both the show page and the outcome report
TODO:
- datafix migration
Change-Id: I37700e3e5c08fc6cfb8fcf1cac42ea6693fcaba3
Reviewed-on: https://gerrit.instructure.com/23303
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
refs CNVS-7414
first, start at RubricsController#assessments. there is no route for it,
so remove the action and it's view. The rubric_association partial was
only used from that view, so remove it as well. Then in
RubricAssessmentController and RubricAssociationsController #create,
note that nothing ever provides an invitations param, so remove that,
and cascade down to removing or simplifying a few other methods
(particularly RubricAssociation#invite_assessors, which created users
in a bad way, and RubricAssociation#invite_assessor, which never
assigned assessor_asset, which will shortly be non-null, and is
obviously never used cause that column is never null in production).
Finally, fix some specs to properly create rubric assessments since
the (bad) helper methods are now gone.
test plan:
* specs
* basic regression test around using rubrics for grading and
peer reviews
Change-Id: Ibd7713d9fc1f847d49c47b95d8c51ce28fa41e92
Reviewed-on: https://gerrit.instructure.com/23412
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
This commit gives teachers the ability to regrade quizzes by using
different options per quiz question:
* Current Correct Only
* Full Credit (regardless of answer choice)
* Previous and Current Correct
* No Point change (for updating the display of a question)
Test Plan:
You'll want to run through each question regrade option making sure
scores change appropriately.
"I seldom end up where I wanted to go, but almost always end up where I
need to be." - Douglas Adams
Change-Id: I9dbb88154cd3ac630bf59dbf3e997a87f75649dc
Reviewed-on: https://gerrit.instructure.com/22018
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
refs CNVS-7008
This middleware reads and caches a blacklist from a Setting, then
compares it against the request (access token || user id) and the
request IP address.
You can change the blacklist and SIGHUP the rails process to reload it
without restarting rails.
Note that because of the limitations of middleware in rails 2.3 apps,
this doesn't look at the access token if it's given in a POST params
body, rather than the HTTP header or query string params.
test plan:
* By default this middleware won't block anybody. Verify that you don't
get 403 errors making canvas requests.
* The blacklist is a comma-separated list of identifiers. To set it:
Setting.set('request_throttle.blacklist', '1234') and then reload
Canvas.
* Add your user global_id to the blacklist, verify you are blocked in
web ui requests.
* Add an access token to the blacklist and use it, verify you are
blocked.
* Add your IP to the blacklist (likely "127.0.0.1" for local dev envs),
and verify you are blocked.
* Verify others are not blocked after these adds.
Change-Id: I4a1c7ef4bab70c586d603dc01f3ca440d211f11d
Reviewed-on: https://gerrit.instructure.com/23293
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
test plan:
1. work in an account where draft state is disabled
(account.settings[:enable_draft] = false)
2. create a new course
3. create a wiki page in the course
(will appear as the front page, mostly)
4. create another wiki page, view it, and copy its URL
5. delete the page created in step 3. you'll be redirected to
the "front page" created in step 3.
6. paste the URL copied in step 4. ensure you are notified
that the page was deleted, and you are redirected to
the front page.
fixes CNVS-7574
Change-Id: Ic88b1c66d4ec58c14aa5c169cf1abc180b89597e
Reviewed-on: https://gerrit.instructure.com/23386
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan:
- create and view a wiki page
- copy the url
- delete the wiki page
- navigate back to the url
- you should see a message stating the page has been deleted
(and not the contents of the deleted page)
fixes CNVS-7564
Change-Id: I83e3919eaa038b57b1a1ef61856c7321ff6817b0
Reviewed-on: https://gerrit.instructure.com/23377
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-7354
test plan
- from the new conversations ui, filter by a course and by
entering a user in the search box
- ensure that only conversations from that course involving that
user are displayed
Change-Id: I174f62624ebbb21a4fc80e698d629d3be0ff174c
Reviewed-on: https://gerrit.instructure.com/23260
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
refs CNVS-7354
test plan
- make a conversation with a context
- ensure that the context ends up in the conversation's tags
- make a conversation with a group as a context
- ensure that the group and the group's context end up in the
conversation's tags
Change-Id: Ife13eb261fe6a6c7064b6045aed8232e097a015c
Reviewed-on: https://gerrit.instructure.com/23259
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
Turns our we *do* want to grandfather in existing users :P
This reverts commit ae6d9033ac.
Change-Id: I7b109375a4844ef0291f0f72d89028b39d2289a0
Reviewed-on: https://gerrit.instructure.com/23384
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-7385
test plan:
1) in a console:
# grab a user of your choice
u = User.find(5)
# make it seem as if they have never accepted the terms before
u.preferences[:accepted_terms] = nil
u.save!
2) log in as that user
3) verify that you are required to accept the terms of use
Change-Id: Ibc314040f35d3d7418a3b31c7280188db86a552b
Reviewed-on: https://gerrit.instructure.com/23110
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-7467
test plan:
* create an announcement without a user ID (by running
DiscussionTopic.update_all('user_id = NULL', id: ID)
where 'ID' is the ID of the announcement;
* without logging in, navigate to the announcement's url;
* verify that you are asked to log in;
* make the course public and verify that the announcement
is visible without a log in.
Change-Id: I79062535da8266384bb32c43732c7f25b0036675
Reviewed-on: https://gerrit.instructure.com/23227
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
they were required prior to our new settings refactors. this way we don't
need to go set it in prod
test plan:
1. terms should be required when registering at /register
2. terms should be required when activing an account (via course
invitation email)
3. in the console, do Setting.set('terms_required', 'false')
4. terms should no longer be required on those pages
Change-Id: Idb13727839b847845cd4dacde4797e4e1571b42f
Reviewed-on: https://gerrit.instructure.com/22988
Reviewed-by: Mark Ericksen <marke@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan (course wiki and group wiki):
- ensure that enable_draft is set for the account
- navigate to the pages index
* click the add Page button
- ensure the page behaves as expected
* editing permissions defaults to the course's setting
* enter key (invokes the Save button, unless editing the body)
* Save button (creates and navigates to the page)
* Cancel button (navigates back to the index, hiding the sidebar)
fixes #CNVS-7167
Change-Id: Ib72f4c60e77420197d6e53efbe21ec46d4caf51f
Reviewed-on: https://gerrit.instructure.com/22701
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Sterling Cobb <sterling@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
test plan (in the course and group wikis):
* enable draft state for the account (enable_draft)
- general
* Pages course tab navigates to new pages
- front page
- index page (if no front page is set)
* Pages breadcrumb (in pages) navigates to new pages index
- index page
* New Page button is hidden unless user has create rights
* Publish icon & settings cog hidden unless user is a teacher or admin
- show page
* Published button is hidden unless user is a teacher or admin
* Published button functions properly (publishes and unpublishes)
* Edit button is hidden unless user has edit rights to the page
* Settings cog/Delete button is hidden unless the user has delete rights to the page
* Page content is restricted if the page is locked by a module
- edit page
* Published indicator is hidden unless user is a teacher or admin
* Settings cog/Delete button is hidden unless the user has delete rights to the page
* Title field is hidden unless user has full edit rights (course setting)
* Hide this page from students is hidden unless user is a teacher or admin
* ... can edit this page is hidden unless user has full edit rights (course setting)
* Unauthorized error if page is locked by a module
- pages api
* Unauthorized error when updating page if page is locked by a module
fixes #CNVS-6859
Change-Id: I12239e58a5f267c43fd2bcb912c7b485693de2c1
Reviewed-on: https://gerrit.instructure.com/22677
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Sterling Cobb <sterling@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
fixes CNVS-7134
test plan
- from the old conversations interface, ensure that the
conversations intro can be brought up from the help
menu
- from the old conversations interface, ensure that
clicking 'Try New Conversations' from the help menu redirects to
the new conversations interface
- ensure that navigating to /conversations redirects to the new
conversations interface after the user has switched to new
conversations
- from the new conversations interface, ensure that
clicking 'Switch Back to Old Conversations' from the help menu
redirects to the old conversations interface
- ensure that navigating to /conversations redirects to the old
conversations interface after the user has switched back to old
conversations
Change-Id: Ib8db233ebb56f915d0d183b704615de4bbe6539a
Reviewed-on: https://gerrit.instructure.com/23041
QA-Review: Cam Theriault <cam@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
Fixes a regression where an error would be thrown if trying to access a
user's submission from the quiz submission data if the user had been
logged out when submitting the quiz (aka, a temporary user).
Test Plan:
- As a student, take a quiz, but before you submit it, log yourself
out in another tab.
- As the teacher in the course, go to the quiz statistics page for
that quiz. You should not get a page error.
fixes CNVS-7320
Change-Id: Ie75ed9af46accb92755f7a1a9d32dd6b1f3e50b8
Reviewed-on: https://gerrit.instructure.com/23164
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
fixes CNVS-7131
test plan:
* verify that the conversations API docs include subject
* verify that you can create a new conversation through
the API with a subject
* verify that you can create a new conversation through
the API with a subject to multiple recipients
* verify that conversations API responses include subjects
* open conversations beta interface
* verify that the conversation list includes subjects
* select a conversation
* verify that the subject is displayed above the messages
Change-Id: Ib4f32dc8348d08c10db42ddbe2022565de88dd9d
Reviewed-on: https://gerrit.instructure.com/22754
Reviewed-by: Joel Hough <joel@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
also fix issue around communication_channels/confirm not giving a visual
indication that the terms must be accepted if you forget to check the box
fixes CNVS-7189
test plan:
1. go to /register
2. you should not need to agree to the terms on any form, but you should
see a link to the privacy policy
3. invite a user to a course
4. the user should not need to agree to the terms when setting a password
5. in the console, do Setting.set('terms_required', true)
6. go to /register
7. you should need to agree to the terms on all the forms
8. invite a user to a course
9. the user should need to agree to the terms when setting a password
Change-Id: I54857d7aaef1b528c6033a3464701abeae4ce14f
Reviewed-on: https://gerrit.instructure.com/22770
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-6888
testing steps:
* from a console, set a custom privacy and terms url
Setting.set('privacy_policy_url', 'http://custom.example.com/privacy')
Setting.set('terms_of_use_url', 'http://custom.example.com/terms')
* verify the following location all display the new links:
* <canvas>/enroll/<join_code> - with self_enrollments enabled for
the course and currently logged out
* when self registration is disabled at the root account,
will be prompted to authenticate, "View Privacy Policy"
* when self registration is enabled at the root account,
will be prompted to authenticate or register, "View Privacy Policy"
* when logged in as a teacher, prompted to confirm enrollment
"View Privacy Policy"
* <canvas>/register_from_website - when logged out
* page footer links for "Terms of Use" and "Privacy Policy"
* "I'm a teacher", both links at bottom of dialog
* "I'm a student", both links at bottom of dialog
* "Parents sign up here", both links at bottom of dialog
* <canvas>/accounts/<id>/users - click "Add a New User" from
the right sidebar. "View Privacy Policy" in modal dialog.
Change-Id: Ic80c369dcea8483c93fb8adfcd9a80c1d6d3ad6a
Reviewed-on: https://gerrit.instructure.com/22712
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
--test plan
upload or record file via tinyMCE media widget
additional partner_data should be available on kaltura
should include sis_course_id, sis_user_id where applicable
and also a context_source including where media uploaded from
fixes PS-321
Change-Id: Id32a0c72ef93e41991e8ee8b6234d36d5c02893a
Reviewed-on: https://gerrit.instructure.com/22607
QA-Review: Adam Phillipps <adam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Brandon Broschinsky <brandonbr@instructure.com>
closes CNVS-5686
test plan:
- click the cloud icon on the new assignment index page to publish and
unpublish an assignment.
- click the publish button on the assignment show page to publish and unpublish
an assignment.
- make sure that no other assignment fields (especially overrides and turniting
settings) change when an assignment is published.
- try all the above a few times in a row without a page reload.
- check the assignment show page without the enable_draft? flag set and make
sure the publish button doesn't show up.
Change-Id: I14cfd7145a9a58f18165a4242a492de0335e0187
Reviewed-on: https://gerrit.instructure.com/22466
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
refs CNVS-6659
* move validation logic into model
* standardize api error messages
* deprecate split_group_count
* document group_limit
* actually require name (since that's what the api says)
* disallow setting self_signup when editing account categories since it
shouldn't be an option (and is totally broken)
test plan:
1. run specs
2. regression of creating/editing categories on group management page
Change-Id: Iccdd4e2e98978943f0562aad5c8ac055048d204d
Reviewed-on: https://gerrit.instructure.com/22493
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-6280
refactors User#time_zone and Account#default_time_zone to return actual
time zone objects instead of strings.
Assignments to the fields accept both forms; reading the field prefers
to return a Rails friendly name, but the IANA name is easily accessible
from that object. Continue to use Rails names for the UI, but use
IANA names for the API.
test plan:
* in the UI, ensure that you can change timezones and it persists
correctly in the following locations:
* user profile as the user
* root account settings
* user page as an admin
* check the API responses for /api/v1/users/self/profile and
/api/v1/accounts/self; the time zone should be listed as an
IANA name (i.e. America/Denver, not Mountain Time)
* Update an account (PUT /api/v1/accounts/self) to change the
default time zone; ensure both friendly names and IANA names
are accepted on input, but on output the IANA name is returned
Change-Id: Ib976e7e1b2dde2639ff6fd478a59b38fdb0d07c0
Reviewed-on: https://gerrit.instructure.com/22563
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
test plan:
- have an assignment that accepts file uploads
- as a student, submit the assignment with a file type
previewable in Google Docs
- as a teacher in the course (who is *not* an admin),
enable the browser's network monitor and
view the submission in SpeedGrader.
you should see a URL like this:
http://<canvas>/files/X/public_url.json?submission_id=Y
stick that in your browser's URL bar (while still
logged in as the teacher), and you should see a blob
of JSON containing a URL where the submitted file can
be downloaded.
now, change X to the id of some other file (not in
submission Y). run that, and you should get a
"status": "unauthorized" response.
fixes CNVS-7011
Change-Id: I6fe8ebba065fdc49f568d4d9e168811657da7b2c
Reviewed-on: https://gerrit.instructure.com/22525
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
test plan:
1. have an environment with scribd and google doc previews enabled
2. create a document, in a format compatible with both scribd
and google docs (it needs to be a new document that isn't in
scribd yet)
3. upload this document to a course
4. give a few minutes for scribd to process it
5. make sure the scribd preview works in the files tab
6. delete the file from the course
7. undelete the file (use /courses/X/undelete)
8. preview the file in the files tab; it should use google docs
since the scribd doc was deleted
9. wait a few minutes (canvas noticed the file was scribdable
but had no scribd doc when you previewed in the last step,
and resubmitted it to scribd) and then reload the page
10. a subsequent preview should show up in scribd
11. in addition to the files tab, also test
a. documents embedded in rich text via wiki sidebar
b. student submissions in SpeedGrader (probably requires the
console, because there's no undelete for user files)
fixes CNVS-6774
Change-Id: Ic9fa5d43ef16522e1bd7a12d45f1f5dc7efbfe6f
Reviewed-on: https://gerrit.instructure.com/22378
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-5674
changes
1. implement redesign of quizzes index with publish icon
2. adds header toggler to styleguide for item groups and condensed item groups
3. refactor publish button code to fix onmouseleave event issue
test plan:
in styleguide
1. check that item group headers toggle open/closed
on quizzes#show with :enable_draft = true
1. publish button continues to publish/unpublish and remember state
2. disabled the publish button when there are student submissions
on quizzes#index :enable_draft = false
1. make sure quizzes index page functions the same as before draft state features
on quizzes#index as a teacher with :enable_draft = true
1. shows 'no quizzes' message when there are no assignment or open quizzes
2. greys out unpublished quizzes
3. can publish and unpublish with the new publish icon in each row
4. disables the publish icon on the row when there are student submissions
5. editing/deleting quizzes works (and deleting prompts to confirm)
6. the 'search for quiz' widget filters the quizzes as you type
on quizzes#index as a student with :enable_draft = true
1. unpublished quizzes are not visible
2. publish icon or edit/delete links are not visible
Change-Id: Ida140d5e30761a520b118d0c62fb45bcf1a3a008
Reviewed-on: https://gerrit.instructure.com/22121
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
test plan:
- create a quizquestion bank at the account level
- delete it
- go to a quiz, click the "Questions" tab, click the "Find Questions"
button. This should bring up a dialog with a list of question banks
on the left side. The question bank you deleted should not be there.
fixes CNVS-6866
fixes CNVS-5872
Change-Id: I24015cd4e21cc03b5b13bc7fc05b4a36d50ef487
Reviewed-on: https://gerrit.instructure.com/22442
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
test plan:
* configure MFA for a user
* login with that user, but don't remember this computer
* within 30 seconds, log out and log back in with the same code
* it should say your code is invalid
* enter your new code
* you should be able to log in
Change-Id: I943d985b392b9117ed4c77634d8af2f27cd4e5f9
Reviewed-on: https://gerrit.instructure.com/21613
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
broke with g/22210 ... these are always ordered by name now (previously
the order was arbitrary, though arbitrarily the same in the spec and the
controller)
Change-Id: I1a7a52409d6d7f38087a3d4964b5447b4bd336cc
Reviewed-on: https://gerrit.instructure.com/22316
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-6737, CNVS-6746
test plan:
- check the discussion topic api documentation for the
published flag.
- use the create and update api to twiddle the published flag
as a teacher. this should change the student visibility of
the topic and change the value of the published flag
returned by the api.
- use the create and update api to twiddle the published flag
as a student. Trying to set the published flag to false as a
student should result in an error in both create and update,
and the topic should remain published.
- create a topic and and add a post to it. try to use the
update api to set published to false. this should result in
an error and the topic should remain published.
- you should not be able to create a draft state announcement
- you should not be able to update an announcement to be draft
state, even if it has no posts.
- generally test creating and editing discussions to make sure
nothing has broken, especially locking, unlocking, and the
"available from" and "until" dates (see CNVS-6762).
- make sure when editing a topic, it retains the available
from and until dates when you don't specifically edit them.
Change-Id: Ie1591f380bff45f6ad6a7d7c83bc1d55947293a0
Reviewed-on: https://gerrit.instructure.com/22123
Reviewed-by: Joel Hough <joel@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
refs CNVS-6219
what's different in this change:
1. /groups now sorts by name. previously there was no guaranteed order.
2. /api/v1/users/self/groups should now sort by name (was id).
3. /api/v1/group_categories/:group_category_id/groups now sorts groups.
previously there was no guaranteed order, making pagination unreliable.
4. /api/v1/accounts/:account_id/groups and /api/v1/courses/:course_id/groups
are no longer case-sensitive, and sort by id in the event of a tie.
test plan:
* see specs
* ensure groups are sorted alphabetically (case insensitive) in the
following places:
1. /groups page
2. /api/v1/users/self/groups
3. /api/v1/accounts/:account_id/groups
4. /api/v1/courses/:course_id/groups
5. /api/v1/group_categories/:group_category_id/groups
Change-Id: I9c4cb34ead05f72640db43d40a67dcef97643de0
Reviewed-on: https://gerrit.instructure.com/22210
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
editing a discussion topic would clear the lock dates because
the view passes the current lock state to the controller
action. so we don't want to clear the dates unconditionally
when the lock state is passed in, only if it's changed.
fixes CNVS-6841
test plan:
- create a discussion with available from and until dates in
the future.
- edit the discussion and change the body, but do not change
the dates.
- click edit again and make sure the available from and until
daates have not been cleared
- make sure CNVS-6762 is still fixed
Change-Id: Ic83fec7d65223c94ee6c99da630c9ae41b4b4393
Reviewed-on: https://gerrit.instructure.com/22274
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
test plan:
* add an account-level external tool that adds an
editor button (e.g. 'Youtube', 'Trello')
* use the tinymce editor in an account-level context
(e.g. edit an account-level outcome description)
* click the editor button
* should not get a 'Page not found' error
fixes #CNVS-6714
Change-Id: I505963e61fc8180646dd829aaa2a5b9003b35ab0
Reviewed-on: https://gerrit.instructure.com/22106
Tested-by: Jenkins <jenkins@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-390
stores and allows querying by user/account/pseudonym of login/logout
events.
test-plan:
[setup]
- set up an 'auditors' keyspace in cassandra and run migrations
- have shardX and shardY on one database server, and shardZ on a
different database server
- have accountW and accountX on shardX
- have accountY and accountZ on shardY and shardZ, respectively
- have userA on shardX with pseudonymAW in accountW and pseudonymAX in
accountX (cross-account, single-shard user)
- have userB on shardY with pseudonymBY in accountY and pseudonymBX in
accountX (cross-shard user)
- have userC on shardZ with pseudonymCZ in accountZ and pseudonymCX in
accountX (cross-db-server user)
- log in and out of each pseudonym above multiple times
[index isolation]
- /api/v1/audit/authentication/pseudonyms/<pseudonymAX> should
include logins and logouts from pseudonymAX only
- /api/v1/audit/authentication/accounts/<accountX> should include
logins and logouts from pseudonymAX, pseudonymBX, and pseudonymCX
but not pseudonymAW
- /api/v1/audit/authentication/users/<userA> should include logins
and logouts from both pseudonymAW and pseudonymAX but not
pseudonymBX or pseudonymCX
[permission isolation]
(in each of these, either :view_statistics or :manage_user_logins on
an account qualifies as "having permission")
- /api/v1/audit/authentication/pseudonyms/<pseudonymAX> should be
unauthorized if the current user doesn't have permission on
accountX
- /api/v1/audit/authentication/accounts/<accountX> should be
unauthorized if the current user doesn't have permission on
accountX
- /api/v1/audit/authentication/users/<userA> should be unauthorized
if the current user doesn't have permission on either of accountW
or accountX
- /api/v1/audit/authentication/users/<userA> should include logins
and logouts from accountW but not from accountX if the current
user has permission on accountW but not on accountX
[sharding]
- /api/v1/audit/authentication/users/<userB> should include logins
and logouts from both pseudonymBY and pseudonymBX
- /api/v1/audit/authentication/users/<userB> should not include
duplicate logins and logouts from either pseudonymBY and
pseudonymBX (potential for bug due to both pseudonyms' shards
being on the same database server)
- /api/v1/audit/authentication/users/<userC> should include logins
and logouts from both pseudonymCZ and pseudonymCX
Change-Id: I74b1573b346935f733fe5b07919d2d450cf07592
Reviewed-on: https://gerrit.instructure.com/21829
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
fixes CNVS-6696
test plan:
1) use postman to make a request to this new endpoint for a group category that
has unassigned members
--asynchronous example:
POST http://localhost:3000/api/v1/group_categories/<group_category_id>/assign_unassigned_members
--synchronous example:
POST http://localhost:3000/api/v1/group_categories/<group_category_id> \
/assign_unassigned_members?sync=true
2) verify that the group category's unassigned members have now been assigned
among the available groups
--NOTE: this may take a minute depending on the number of unassigned members
3) verify the api documentation for Group Categories - "Assign unassigned members" makes sense
4) verify that an asychronous request returns a Progress JSON
(see api documentation for example)
5) verify that a synchronous request returns an array of Group Memberships
(see documentation for example)
NOTE: I've made some tweaks to the current Groups page such that you can
still randomly assign students. However, this shouldn't matter because
it's all getting replaced anyway.
Change-Id: I894ff2b1e11c7919a110b5159710683869caedc4
Reviewed-on: https://gerrit.instructure.com/22044
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-6762
test plan:
* create a discussion with a lock_at in the past;
* navigate to the discussion index page and drag the
discussion from "closed for comments" to "discussions;"
* refresh the page and verify that the topic remains
unlocked.
Change-Id: I35c819895d41e6f0f70a76c0e8805b963ff41a9e
Reviewed-on: https://gerrit.instructure.com/22111
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
Product-Review: Mark Ericksen <marke@instructure.com>
fixes CNVS-6415, CNVS-6594
various adjustments to make the quizzes show page look closer to the ui design.
1. lighten up the publish cloud icon on the publish button's unpublished state.
2. publish button disabled state shows correct tooltip and is not 'depressed'
3. consolidate all buttons in the header bar to match the ui changes.
4. Fix issue where questions would not appear after publishing a quiz
test plan:
with :enable_draft = false
1. make sure publishing functions the same as before draft state features
with :enable_draft = true
1. visit an individual quiz page.
2. the buttons should now all be consolidated on the top header bar
3. the "this quiz is unpublished" message should display underneath the bar if
the quiz is unpublished
4. publish a quiz and then start the quiz to make sure the questions are shown
5. submit quiz as student and ensure the published button disables
6. make sure the disabled state of the publish button looks correct
Change-Id: I27766a88950878cb4ba9b88400f8b326b7f46b5f
Reviewed-on: https://gerrit.instructure.com/21874
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
closes CNVS-5992
test plan:
- make sure existing turnitin still works
- go to account settings, leave turnitin host blank, save
- it should still work
- change it to api.turnitin.com
- it should still work
- change it to another valid turnitin endpoint
- it should still work
Change-Id: I442871d35f3a8440f49485252cf88dd4cd441ec2
Reviewed-on: https://gerrit.instructure.com/21969
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-1399
test plan:
- as a teacher in a public course, create a survey
- as a user who is not logged in, take the survey
- as the teacher again look at the quiz results and statistics
- the anonymous quiz submission should show up
Change-Id: I77fa94303f32c95870baa8fe8ab81f5b834e2f7e
Reviewed-on: https://gerrit.instructure.com/20428
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-6343
test plan:
* without Redis
* normal CAS logins should work (rubycas-server is easiest to test
with)
* do a POST to /login/cas (with CURL)
* it should 404
* enable Redis, restart server
* normal CAS logins should work
* enable single sign out on the CAS server (if not already enabled;
it's a separate setting for rubycas-server)
* log in to Canvas via CAS
* in another tab, sign out on the CAS server
(just go to /logout with rubycas-server; there's no link to it)
* refresh the page in Canvas; it should redirect you to the CAS
server
* log in to Canvas via CAS
* clear your Redis database
* refresh the page in Canvas; you should still be logged in
* in another tab, sign out on the CAS server
* refresh the page in Canvas; it should redirect you to the CAS
server
Change-Id: Ie3bc286f1284886cf211c4ecce14c3dbf5e4deb7
Reviewed-on: https://gerrit.instructure.com/21496
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
if a file_id is given to show_relative in addition to a file_path, but
that file_id is invalid, treat is just like as if they'd given an
incorrect-but-valid id (i.e. doesn't match the path).
fixes CNVS-6148
test-plan:
- create a file
- get a link to the file that includes both the file_id and file_path
- change the file id to an invalid string
- should still load the file
- should not generate a page error
Change-Id: Ifed3fbd9ef9fe2c5a4fd951f2de5facdf38e28d0
Reviewed-on: https://gerrit.instructure.com/21556
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
This restores previous behavior for the Assignment Property Freezer
plugin:
Teacher are not allowed to delete a an assignment group in a copied
course if an assignment in that group has been "frozen" when it was
copied.
The previous behavior allowed teachers to delete a group if and only if the
assignment group id was not frozen. Now, if any properties are allowed
through the Assignment Freezer Plugin, the teacher may not delete the
assignment.
test plan:
- As an administrator, enable the Assignment Property Freezer by going
to Site Admin -> Plugins (on the left). Enable a few properties such
as "description" and hit "Apply".
- As a teacher, create a new assignment group. Create an assignment
within that assignment group. Click "More Options" or go to the
assignment's edit page. Under "More Options" on the edit page, check
the box that says "Lock Properties When Copied".
- As an administrator, copy the course by going to the Course's
"Settings" tab and clicking "Copy This Course" on the right hand
side. Follow the wizard, then enroll a teacher by using the "People"
tab on the left in the new course.
- As a teacher (very important you are NOT an administrator), go to
the assignments index page (/courses/new_course_id/assignments), and
you should see the new assignment group and assignment you set up.
Hover over the assignment group's box and click the "x" icon to
start deleting the assignment group. When you click "Delete Group"
as the teacher, you should get a flash error message telling you you
cannot delete a locked assignment.
fixes CNVS-6224
Change-Id: I76c72be9941b32a13303f166c48e2e7a021d379f
Reviewed-on: https://gerrit.instructure.com/21634
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
Special survey account notifications (announcements) can be set up on the
site_admin account. These survey notifications will only appear for
accounts that have the "Account Surveys" setting enabled in their
account settings, and they'll only show up for 1/N users in
those accounts each month. N is configurable, defaults to 9.
closes CNVS-6036
test plan:
* On a regular account, create an announcement in account settings.
There shouldn't be any options related to surveys available.
* On the site admin account, create an announcement. Select to make it a
survey. You can leave N at 9 or change it.
* Verify that the survey doesn't show up for any users on accounts
that don't have "Account Surveys" enabled.
* Enable the "Account Surveys" setting on an account. Verify that the
survey shows up for (roughly) 1 out of every N users in the account,
on their dashboard. Change the time on the computer running canvas
to another month. Verify that the survey shows up for a different
set of 1/N users in the account.
Change-Id: If11467d2153acee24a010ba45d516b0b320a4634
Reviewed-on: https://gerrit.instructure.com/21432
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
Chrome and Firefox send the session from Flash, Safari does not. So allow
inferring the authenticity token whether a session exists or not
Also, the JS no longer needs to worry about if uploading to local or remote
and adding/filtering the authenticity token - just do the same every time.
test plan:
* use local storage
* upload a file by clicking "Upload Files"
* it should work in Safari, Firefox, Chrome, and IE
Change-Id: Ia46bde6ab042f21cd0643d4f5a1dbd2f7f9cee66
Reviewed-on: https://gerrit.instructure.com/21100
Reviewed-by: Jon Jensen <jon@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
GroupsController#assign_unassigned_members now renders progress_json
and starts a job to do the assignment.
test plan: see specs
Change-Id: I6844644bfb48fd613577b308778b283652373220
Reviewed-on: https://gerrit.instructure.com/21409
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Joe Tanner <joe@instructure.com>
QA-Review: Joe Tanner <joe@instructure.com>
fixes CNVS-6150
some context lookups were being done with shard-local ids on a
shard that they didn't live on. this meant that either the wrong
context object was being looked up or no context was found, causing
a broken calendar
test plan
you will need:
- two shards (called Shard 1 and Shard 2 from now on)
- a course on Shard 2 with an id that does not correspond to a
course on Shard 1. i.e. if the course has an id of 2~5 there must
not be a course with an id of 1~5. one way to make such a course
would be to make more courses on Shard 2 than there are on Shard 1
- a user on Shard 1 that is in the course on Shard 2
- a calendar event in the course
with all this in place:
- as the user, ensure that the calendar page shows the calendar
event without error
Change-Id: Ie2a73c4aa775dfc249943318e5d72731542ca6a5
Reviewed-on: https://gerrit.instructure.com/21226
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
test plan:
* in account settings - quotas tab,
set the default group storage quota
* attempt to upload files to a new group (without a set
quota) until the quota is hit or exceeded, confirming
that the set default is in effect
refs #CNVS-271
Change-Id: Ia4cbd84da19eb07d188dcc85c81c6b45bc2fa7ce
Reviewed-on: https://gerrit.instructure.com/21191
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>
For instance, this allows for account services that can only be enabled
in the UI by site admins, that kind of thing.
closes CNVS-6140
test plan: specs, this doesn't add any new services yet
Change-Id: Ie330c79b75a0cf4b755d73bba57dffc64c5e6447
Reviewed-on: https://gerrit.instructure.com/21262
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
Mobile styling of oauth confirmation page.
Also refactors mobile login page to use boostrap.
test plan:
1. go to Site Admin > Developer Keys
2. add or use existing key to fill out this URL:
/login/oauth2/auth?client_id=<ID>&response_type=code&redirect_uri=<URI>
(URI should be encoded)
3. in a Chrome tab change the User Agent to a mobile device
4. in that same tab go to the url in step 2
(you may be redirected to login)
5. the oauth confirmation page should look decent
6. click Log In, you should be redirected to URI + ?code=<long code>
Change-Id: I32a4d0638838dd23667ceaf40c02a5be84434f08
Reviewed-on: https://gerrit.instructure.com/21220
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
Product-Review: Joe Tanner <joe@instructure.com>
QA-Review: Joe Tanner <joe@instructure.com>
fixes CNVS-6064
test plan
- using the API, create, get, and update an assignment group
- using the API, delete an assignment group with and without assignments
and both specify an assignment group to move the assignments to
and don't specify an assignment group
- it should throw an error if there are no other active assignment groups
Change-Id: I0d637d73255115258dc42e73541146c889a68afc
Reviewed-on: https://gerrit.instructure.com/20993
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Really resurrect retired communication channels.
Fixes some callbacks that should've returned true.
test plan:
1) in rails console:
u = User.find(<some user id>)
cc = u.communication_channels.detect{|cc| cc.path_type == 'email'}
cc.bounce_count = 5
cc.workflow_state = 'retired'
cc.save
2) take note of the email on the cc
3) start up the server and go to /about/<user id>
4) click 'Add Email Address' and enter the email noted in #2
5) it should be successful
Change-Id: I0b4572545859eacd823a46b326303860069b00f1
Reviewed-on: https://gerrit.instructure.com/21102
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
fixes CNVS-6133
test plan:
- in a public course, make an announcement
- view it as a logged out user
- it should work
Change-Id: Ic887760066b58745e2d541194a72da6874b69bcc
Reviewed-on: https://gerrit.instructure.com/21134
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
and not necessarily there
Change-Id: I8895cefd2343d98384a666584c9c872bf6281bd9
Reviewed-on: https://gerrit.instructure.com/21132
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Brian Palmer <brianp@instructure.com>
fixes CNVS-6100
test plan:
* merge a user together from multiple shards
* from a domain on the non-home shard, upload file to the user's
files
* it should preview and/or download
* reload files
* it should not disappear
Change-Id: I0d10ce83fbad6672921aee93620f87f20b91c7ba
Reviewed-on: https://gerrit.instructure.com/21094
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-5770
test plan:
- have a teacher and student enrolled in a course
- as the teacher, create a module with no prerequisites
- as the student, view the module in the API (make sure not to
view the module from the web site beforehand)
- verify that the module is "unlocked" (or "completed", if
it's empty), not "locked"
Change-Id: I1f4ab4701601be1ed0f353e73e984877bc720ea0
Reviewed-on: https://gerrit.instructure.com/20954
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
* confirm that wiki pages can be created and updated
with the parameter wiki_page[front_page]
* if true, this will set the wiki page as the
front page for the context (assuming the page is
not hidden to students)
* if false, this will unset the page as the front page
(assuming it was the front page to begin with)
* confirm that /courses/:course_id/front_page acts
as a proper endpoint for show/update/destroy and
acts just as /courses/:course_id/pages/:url
for whichever page is set as the front page
* confirm that none of the above page breaks
normal wiki functionality
closes #CNVS-5528
Change-Id: I3f51d740e90ff0a5a39f2aafc988a1a33947ca18
Reviewed-on: https://gerrit.instructure.com/20938
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
test plan:
- record a video or audio comment, and enter a long title.
it should prevent you from entering more than 255 chars
(rather than failing to save the media comment)
fixes CNVS-4446
Change-Id: Iec4d022bba3b33f5bf678ed7ca37c366a337b3f1
Reviewed-on: https://gerrit.instructure.com/20944
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>
keep module items in the 'unpublished' state from
being viewed by students or factoring into progressions, etc
test plan:
* create an unpublished module item
* ensure that as a student:
* the module item is not viewable, either through the site
or through the api
* that it is not factored into the progression for the module
* also confirm that the unpublished module item carries over
on course copy
closes #CNVS-5491
Change-Id: I60e19ea49386e0e6c60c4a86b1a34979b4c0664d
Reviewed-on: https://gerrit.instructure.com/20834
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-4886
test plan:
- as a teacher, create a MOOC with a quiz
- view the statistics page for that quiz
- it should not redirect to the quiz show page
- it should show you a message that the page is disabled
Change-Id: I7563b2d5a55850ac7b196cd389082bc5652b1690
Reviewed-on: https://gerrit.instructure.com/20772
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>
to collect data about when scribd (or crocodoc) documents
are not being used and can be purged from third party servers
to save money
fixes CNVS-5310
note: this data is not yet exposed; it can only be queried
from the database manually for now
test plan: make sure the last_inline_view attribute for an
Attachment is updated whenever the attachment is viewed via
scribd or crocodoc. this can be done in several ways:
- via the preview icon that appears next to a document link
in rich text
- on the files page
- for student submissions on SpeedGrader
the easiest way to check this is in the Rails console.
get the attachment id from the canvas url, then,
in the console (after switching to the correct shard),
do
Attachment.find(id).last_inline_view
Change-Id: I137ab631ad4eefdf4d9af353dd11191b7f2ca140
Reviewed-on: https://gerrit.instructure.com/20810
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Bracken Mosbacker <bracken@instructure.com>
closes CNVS-5736
test plan:
1. see specs
Change-Id: I1edbd4062d3c1a25394bdaaf028fa8198609a881
Reviewed-on: https://gerrit.instructure.com/17312
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
also fixes a few other student grades page bugs
fixes CNVS-4816
test plan (main):
- as a student, go to the course grades page
- enter some ridiculously small scores, like
'0.0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000020'
- it should round to two decimal places (0 in this case)
test plan (other fixes):
- as a student on the course grades page
- if you enter only 0's as what-if grades, and refresh the page, you should
have a 'see saved what-if scores' button
- entering a what-if grade on an assignment that you don't have a score for
should not throw a javascript error
- it should round what-if scores in UI to 2 decimal places
- entering a what-if score in a row that doesn't have a score should populate
the text entry box with '0' instead of 'NaN'
Change-Id: I37dba44b3845bd40424f0c2ae88d9b04f9f887e9
Reviewed-on: https://gerrit.instructure.com/20482
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
- as a few different students, take a quiz with at least two questions
that are file upload questions. Answer each question as each
student.
- as the teacher, you should see a "Download All Files" button on the
right on the Quiz Show Page next to "Quiz Stastics" and "Moderate
This Quiz".
- You should get a pop up that successfully downloads all the zips
(make sure you have delayed jobs running!). Make sure all the files
you submitted as the students are there, with the student's name,
user id, question number, and attachment display name in the
filename of each file.
closes CNVS-3048
Change-Id: I23cb2d4262bb0446476eeac4fdcb356e604e6a05
Reviewed-on: https://gerrit.instructure.com/20495
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Eric Berry <ericb@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
test plan:
- as a teacher, create a graded quiz and save the quiz
- edit the quiz again, and change the type to ungraded quiz
- edit the quiz AGAIN and chang the type back to graded quiz
- You should get redirected like you did in all the other edits, and
you shouldn't get stuck on the quiz edit page with "Saving..." stuck
on the button.
fixes CNVS-5643
Change-Id: Icd0ed4609e9eeeb5e3e565eaa07628367bb71f0a
Reviewed-on: https://gerrit.instructure.com/20645
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Eric Berry <ericb@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
Reworked how the calls were passed through to take advantage of the
app center pagination. Also added an endpoint for retrieving app reviews.
The following canvas api calls should work, after configuring the app center plugin
- /api/v1/accounts/:account_id/app_center/apps
- /api/v1/accounts/:account_id/app_center/apps/:app_id/reviews
- /api/v1/courses/:course_id/app_center/apps
- /api/v1/courses/:course_id/app_center/apps/:app_id/reviews
These should also accept a page and per_page params
Change-Id: I15fe1225c01d04bc2ad6efa1736013b88e541c51
Reviewed-on: https://gerrit.instructure.com/20455
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
test plan:
- if you don't already have one, create a course with users in
multiple course sections
- as a teacher/person who can add enrollments to a course, go to the
"People" tab on the left.
- Add a new teacher to the class using the "Add People" button. When
you create the teacher, make sure to check the "Can grade students
in their section only."
- Follow the dialog all the way through, then create a login for the
new teacher you created and login as that teacher.
- go back to the "People" tab. You should only see students in the
teacher's section.
fixes CNVS-5763
Change-Id: I95ec3a660928f6f498d50b504fd8b024d3b0d1cd
Reviewed-on: https://gerrit.instructure.com/20505
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
add button to create item analysis report, and make student analysis
creation async. make both buttons show a progress indicator, and auto-
download the file when it's ready (or not, if you refresh the page)
test plan:
1. make sure delayed jobs are running
2. create a quiz that allows multiple submissions
3. have some students take the quiz
4. go to the quiz statistics page
5. click "Generate Item Analysis"
6. it should be generated and prompt you to download
7. the data should be useful/correct
8. click "Generate Student Analysis
9. it should be generated and prompt you to download
10. the data should be useful/correct
11. have another student take the quiz
12. you should be able to regenerate both reports
13. have a student retake the quiz
14. you should get the link to view stats for all submissions
15. you should be able to download a different "Student Analysis" report
for all submissions vs latest submission
16. the "Item Analysis" report should be the same for all submissions and
latest submissions
Change-Id: Ib6bfa259f386a6660a41cd7e093d3a6eb0119eda
Reviewed-on: https://gerrit.instructure.com/20137
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
test plan:
* create a course with a group
* soft-conclude the course
* as a user of that group, should not continue
to see the group calendar on the calendar page
fixes #CNVS-2776
Change-Id: Ie1c7ad722ced6bfb95a65c31faccfc989328ce18
Reviewed-on: https://gerrit.instructure.com/20394
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
fixes CNVS-4106
test steps:
- go to create a discussion topic and ensure that you can toggle between
the 'Graded' and non-graded availability dates. If the Graded is not
checked, you should see the Available From/Until.
- create a discussion topic with a past from and past until. ensure that
the discussion is locked for a student
- create a discussion topic with a future from and future until. ensure
the discussion cannot be seen by the student
- update the above created discussion topic and switch it to be graded
and set a future due, from, until date. ensure that the student cannot
see the discussion.
- edit the discussion and ensure that the graded checkbox is checked and
the group assignment fields are showing
- update the assignment with a past due, from, until and make sure the
discussion is locked for the student.
- do all above with current dates (from in past, until in future) and
make sure the student can see and reply to them.
- create an announcement and ensure that the functionality and forms are
the same as before
- verify that you are able to lock and unlock discussion topics on the
show view by using the gear drop-down
Change-Id: I99c9d54763fe3a74aa8a4bb37c22f09d4765d41e
Reviewed-on: https://gerrit.instructure.com/20339
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
fixes#9725, fixes#9776, fixes#7311,
Test plan:
* go to the 'external tools' tab on the 'course settings' page
* create and edit some external tools
- make sure to omit fields or input invalid data and make sure you
get sensible error messages back
Change-Id: I88a7d5e439a27a599cbcfcfbd576434386949d35
Reviewed-on: https://gerrit.instructure.com/13332
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
- enable the quiz file upload feature for your account.
- make sure you have s3 credentials for your Canvas installation
- as a teacher, create a quiz with some file upload questions
- as a student, take the quiz, making sure the following works:
- you should get a warning if you leave any questions unanswered
- you should see your file in the right spot if you refresh the page
- when you finish the quiz, make sure a link to the file shows up on
the quiz show page and the display name for that file is the same
name of the file you uploaded
- take the quiz again and make sure files you uploaded for hte
previous submission don't show up when you first take the quiz.
closes CNVS-1153
closes CNVS-5331
Change-Id: Id3f8706e87cef9876946b52fd564caf31f31e4b5
Reviewed-on: https://gerrit.instructure.com/20174
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
- update the Gemfile to be 1.9 only, and raise an exception on wrong
ruby version
- remove RUBY_VERSION checks, replacing with the applicable code
- remove the FasterCSV compatibility shim, just use CSV now
test plan: trying to bundle install on ruby 1.8 or 2.0 should raise an
exception, specs should pass, canvas should work as normal on 1.9
Change-Id: I49088e9d227c59c6d5d5acb417c2df971129474a
Reviewed-on: https://gerrit.instructure.com/19806
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
this is necessary since csrf protection is disabled for certain quiz submission
actions.
closes CNVS-3986
test plan:
- make sure taking a quiz and submitting still works normally
- make sure previewing a quiz still works normally
- create a new quiz
- start a quiz with one user, answer a few questions
- in a separate tab, log out and log in as another user
- if you change anything, you will get the "logged out" message
- if you try to quickly submit, the answers won't count for you
Change-Id: I2222975ea0cc6ecb346d03dc2077dc411e759084
Reviewed-on: https://gerrit.instructure.com/20051
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
this commit is to help make canvas extensions more robust by
allowing tool level defaults and allowing both tool domains and launch
urls. Also added some helper methods for getting the correct properties,
and refactored to use the new helper methods.
Test Plan:
- Add a tool with both a domain and an launch url
- It should not give an error
- Add a tool configured with defaults for for canvas extensions
(such as icon_url, url, selection_height, selection_width, etc)
- Add a canvas launch (resource_selection, editor_button, course_navigation, etc)
with minimal configuration
- The canvas launch should inherit the properties from the extensions default
- Add an launch that has its own properties
- The launch should prefer its properties over the defaults
* should test that all launch types are accepting defaults
closes #CNVS-4498
Change-Id: I0dd4e78efb54db9c0cd1204383934db50f402674
Reviewed-on: https://gerrit.instructure.com/17715
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
fixes CNVS-4959
(note that this does not cover the cross-shard links
from these assignments working correctly; that is a
separate issue)
test plan:
* enroll a user in courses in multiple shards
* assignments from all courses should show up in
/assignments regardless of current shard
Change-Id: Ic46711a31ddc573f124cad3ed2bc5abefd4646a9
Reviewed-on: https://gerrit.instructure.com/19234
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
closes #CNVS-4511
refactor of some of the QuizStatistics model so it can be used with multiple report types
test plan:
just ensure the current quiz stats page and csv report still work,
the item analysis UI commit will have a more comprehensive test plan
Change-Id: I2973a2e3aa572bc272c59b4b97015c7f93d756d7
Reviewed-on: https://gerrit.instructure.com/20057
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Joe Tanner <joe@instructure.com>
QA-Review: Joe Tanner <joe@instructure.com>
fixes CNVS-5478
Testing Notes:
================
* with a user that has conversations in their Inbox
that are spread across multiple shards, a JSON
request to /conversations.json should return
a hash with :conversations and :conversation_ids.
The list of IDs uses the "pluck" command which is
not currently working across shards with the way
associations were being included for this query.
With this fix, the :conversation_ids list should
include the IDs of at least all of the
conversations JSON objects returned.
Change-Id: I718e9ea1e714f9a931ebf28a26389746e093a425
Reviewed-on: https://gerrit.instructure.com/20040
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
replaced the mailman gem with custom code with more error
handling. this will allow the incoming message processor to
continue processing messages after encountering a message with
an encoding or parsing error. the broken messages will be moved
aside to a separate folder for later inspection.
fixes CNVS-4970
test plan:
- read up on the new incoming_mail.yml configuration settings.
- configure incoming_mail.yml with the test imap accounts
using legacy settings and check for regressions.
- reconfigure incoming_mail.yml to read from a directory.
- copy some testing email files into the configured directory.
test files should be a mix of:
- emails with encoding errors
- emails with syntax errors
- normal emails
- all of the normal emails should be processed normally
- all of the error emails should be moved into the error
subdirectory
Change-Id: I0f946a56b41492f007db2775aa6da3cdfa4fdd3f
Reviewed-on: https://gerrit.instructure.com/19729
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-5248
test plan:
- start taking a one-question-at-a-time quiz
- log out in another tab
- hit the next or previous button
- re-login
- you should land back in the quiz
Change-Id: I578d6803bd6deb90ec3c82153d999b478e42a199
Reviewed-on: https://gerrit.instructure.com/19539
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
also supporting forcing the quiz show page to require a user even in a public
course.
closes CNVS-5250
test plan (api):
- make sure the quiz api returns a mobile_url that sets these parameters
test plan (headless):
- go to a one question at a time quiz
- add ?headless=1 to the url
- notice that the quiz loads without top/side bars
- start the quiz
- the top/side bars are back
- now go back to the show page and add ?persist_headless=1
- start the quiz
- the top/side bars should still be gone
test plan (force user):
- as a logged-out user, go to a quiz show page in a public course
- it should work
- now add ?force_user=1 to the url of the show page
- it should redirect to the login page
- after logging in, you should end up back at the show page
note: please also check that getting notified when logged out of a quiz still
work, as that code was refactored slightly.
Change-Id: Id17ce336f8d12a6f4dd0f4d1324e7b4dd5cca1d0
Reviewed-on: https://gerrit.instructure.com/19597
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
The Test Student should not appear in the search results list for
courses. In some cases, it may be useful to call the API and include
the Test Student. In these cases, include=test_student will do so.
Test Plan:
- As a teacher, go in to the "student view" for a course
- As a teacher or student of the same course, list students in
the course. There should not be a Test Student in the list.
Fixes CNVS-5335
Change-Id: I7ce5805a795ef2a5d20e002e1e8dcafaabc49390
Reviewed-on: https://gerrit.instructure.com/19745
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>
fixes CNVS-4562
test plan:
- in a public course, create a practice quiz
- log out
- take the quiz
- it should work
Change-Id: I0e98d6d165622ee58ddc63896d71bad57075a3cd
Reviewed-on: https://gerrit.instructure.com/19602
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
This actually did do the stats generation in the background, but that
has been disabled temporarily since we don't have a front-end UI yet.
Test plan:
make sure you can still download quiz stats csv
closes CNVS-4887
Change-Id: Ia84af0c8392396a054ceba2f6edbcaf7c8c40c90
Reviewed-on: https://gerrit.instructure.com/19397
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
fixes CNVS-5102, CNVS-5255
when a quiz due date has changed, always send notifications
to affected users; don't require the editor to check the
"notify users this quiz has changed" checkbox.
test plan:
* as a teacher, change the due date of an existing quiz
and save the change without checking the "notify users
that this quiz has changed" checkbox;
* verify that affected students with ASAP notifications
receive a message.
* verify that these notifications also work as expected
for quizzes with multiple due dates.
Change-Id: Iba4bc32c2eb7629fd475201938ba7adb345c0e6a
Reviewed-on: https://gerrit.instructure.com/19609
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
refs CNVS-4887
Test plan:
Make sure you can still download quiz statistics csv
Change-Id: I1dea60ce3465e4b536620f1dc6d515f4badf18e0
Reviewed-on: https://gerrit.instructure.com/19061
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
adds account setting and new user permission
fixes CNVS-4726
Testing Notes:
============
* To enable...
* Account Settings, check Feature
"Admins can view notifications"
* Account permission under "Account Roles"
becomes available under "Admin Tools"
group. Check "View notifications"
* appears under account "Admin Tools"
sidebar area on "View Notifications"
tab.
(EX: /accounts/[account_id]/admin_tools)
* Verify "View Notifications" tab does not
appear if either account setting or user
permission is disabled. (For AccountAdmins)
* Verify a SiteAdmin is able to access the
feature.
* Verify that notifications are returned
and displayed for a selected user
and date range.
* Verify it displays "No messages found"
when user doesn't exist or the user
exists but the date range doesn't
return data.
* Verify that the user_id is required when
searching
* Verify that the "To Date" cannot be before
the "From Date".
* Verify an invalid date like the word "couch"
gets ignored and the actually used date/time
is displayed in the overview text description.
* Verify searching by dates when either or both
are left blank and when both are used.
* Verify that the messages automatically
fetch more when you scroll down.
* Verify that before the results, it displays
the user's name and the dates used for the
results.
Change-Id: I9d2689b4760af57bbc2d15fd7d50610dcf593a7e
Reviewed-on: https://gerrit.instructure.com/18629
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
test plan:
1. set up a new password policy via the console, e.g.
a = Account.default
a.settings[:password_policy] = {:min_length=>6, :max_sequence=>3, :max_repeats=>3, :disallow_common_passwords=>true}
a.save!
2. go to /register and sign up as a student
3. make sure the password policy is enforced, i.e.
1. confirm that the password must be at least 6 chars
2. confirm that the password cannot be a common one (e.g. football)
3. confirm that the password cannot contain a run of 4 or more chars
(e.g. abc123lol is ok, abcd1234 is not)
4. confirm that the password cannot have the same char repeated 4 or
more times (e.g. aaa000bb is ok aaaabbbb is not)
4. verify the password policy is enforced when changing your password as
an existing user (via user profile/settings)
5. verify the password policy is enforced when adding a login for a user
6. verify the password policy is enforced when resetting your password
(via forgot password on login page)
7. invite a new user into a course, and as that user verify the password
policy is enforced when you set up your account
Change-Id: Ie619fc255dc940249676bf5e510ce68eaf17441c
Reviewed-on: https://gerrit.instructure.com/19104
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
Tested-by: Jon Jensen <jon@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
The module progressions for individual users were removed
for courses with large_roster set. Only the teacher's call
that loads all the progressions for the whole class should
be blocked while still allowing individual's info to load.
Test Plan:
* on a course with large roster set:
* create a module with a completion requirement
* when a student fulfills that requirement, the module page
should show the green checkmark indicating it is done
closes CNVS-5055
Change-Id: Id493459a77c32a7d2a99b19376a822f058896912
Reviewed-on: https://gerrit.instructure.com/19319
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
This commit also moves the quiz results (who has/hasn't taken a quiz or
survey) to a table with the styleguide in place.
test plan:
- As a teacher, create a quiz with an essay question.
- While the quiz is stil unpublished, go to the quiz show page. it
should look like it did before this patchset (e.g. dates visible,
you can still find the edit/manage buttons, etc)
- have some students in the course take the quiz, but make sure some
students in the course haven't taken the quiz.
- Click "Show Student Quiz Results" from the cog menu.
- The list should look good, and display students under Taken/Haven't
Taken when the list loads asynchronously.
- Try different combinations of have/haven't taken including all taken and
non taken
- Try with an anonymous survey as well.
fixes CNVS-4381
Change-Id: Ida743125abaf836da5038fc7bc5f376597f47534
Reviewed-on: https://gerrit.instructure.com/18454
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan:
* Create an external tool "by xml", with a "launch_url" tag
(or any custom property of name "url"),
that includes an unescaped ampersand:
(e.g. "www.example.com?a=1&b=2")
* Confirm that an error is raised indicating
the ampersand needs to be escaped
(e.g. "www.example.com?a=1&b=2")
fixes #CNVS-1324
Change-Id: Id90d216e2d9039187e8a8f4327e2413d07164b04
Reviewed-on: https://gerrit.instructure.com/18872
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
test plan:
* try to abuse the javascript record_error endpoint (send garbage
data for the id, try to do other stuff to make it fail)
* it should record ever so slightly more useful information
Change-Id: Ibe83fdab3a77175ef1ab73b6c5210ac7265644ae
Reviewed-on: https://gerrit.instructure.com/19041
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>