Commit Graph

5723 Commits

Author SHA1 Message Date
Brad Horrocks f79db65e82 Copy of Announcement to Sender, notify announcement replies
Creates a new notification preference for announcements created by
you. Now you can see what you've sent, and how it looks in specific
communication channels. This new notification preference will also
send notifications when someone responds to the announcement.

Fixes CNVS-13745
Fixes CNVS-2135

Test Plan:

- Set "Announcement Created By You" preference
- Create an Announcement
- Check /users/[:user_id]/messages for "Announcement Created By You"
- As another user comment on the announcement
- Check /users/[:user_id]/messages for "Announcement Reply"

Change-Id: Ibb16f0dc3ba34d98f749c40d1df1eb12430aecca
Reviewed-on: https://gerrit.instructure.com/40636
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2014-09-11 02:04:34 +00:00
Michael Nomitch cae40b6418 DA - get only unique entries from sql view
fixes CNVS-15063

test plan:
  - in course with DA
  - as a student submit multiple times to a selrel'd assignment
  - go to grade summary page and ensure there aren't dupes
  - in a course without DA, everything still works

Change-Id: I7bd24b71bc8661f9747200579e7c11ade4fac1bf
Reviewed-on: https://gerrit.instructure.com/39894
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>
2014-09-10 20:49:44 +00:00
Ahmad Amireh fe0e9ea24a Quiz index: auto-grade all outstanding course subs
Closes CNVS-15402

TEST PLAN
---- ----

  - create 2+ quizzes in a course
  - make some submissions, don't turn them in
  - go to quizzes index
  - verify your submissions are now graded (you may have to wait a bit
    since it's done in a background job)

Change-Id: I80af5523f7549120ca81a5029d9681ddd511bb2b
Reviewed-on: https://gerrit.instructure.com/40862
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-09-10 20:14:17 +00:00
Joel Hough c14f18cb85 account setting for author email in notifications
fixes CNVS-15348

test plan
- send a conversation message
- ensure that the notification does not include the author's email
 address
- in the account's settings page, check "Show the email address of
 sender for user interaction Notifications"
- send another conversation message
- ensure that the notification includes the author's email address

Change-Id: I2816d82fb2f6413d1c2c972296a758b571fb03de
Reviewed-on: https://gerrit.instructure.com/40766
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-09-10 19:57:52 +00:00
Michael Nomitch b5bb46ae3b DA - submissions api includes visibility info
fixes CNVS-14080

test plan:
  - set up differentiated assignment with submission
  - as a teacher hit submissions api:show, for_students,
    and index actions
    - they can see submissions regardless of visibility
  - as a student hit submissions api:show and for_students actions
    - you should only be able to see the submission if you are in
      a secition with visibility or have a grade
    - otherwise you should get a 401 error

Change-Id: I8dcdfd5fdcc14fd6fd1c782f86599e9440348bf0
Reviewed-on: https://gerrit.instructure.com/37668
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-09-10 16:25:18 +00:00
Bracken Mosbacker 3f21967641 add unpublished module items as organization items on export
unpublished items weren't showing up in the common cartridge
organization. (but they were in the custom module xml)

Test Plan:
 * Export a course with some module items that are unpublished
 * there should be an item in the export manifest correlating to that item

closes CNVS-15359

Change-Id: I2763d8f8e3e433ca079fe9a77e2457022428345e
Reviewed-on: https://gerrit.instructure.com/40822
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-10 15:13:03 +00:00
Shawn Meredith 0f1f7c045a spec: fragile content_migration spec pending
Change-Id: Ibd6070411e10d00e278c79449e06a8aae717f4d7
Reviewed-on: https://gerrit.instructure.com/40100
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
2014-09-09 22:43:07 +00:00
Brian Palmer 6863c8fea4 fix rendering of uncategorized account level groups
fixes CNVS-14243

test plan: create an Uncategorized account-level group, easiest way to
do this is a SIS import like so:

group_id,name,status
fromsis,from SIS,available

Then visit /accounts/self/groups. The group should appear in the
"Uncategorized" tab. Visit the group homepage /groups/:id by clicking
the gear -> "Visit Group Homepage". The group homepage should render
without error, and you should be able to interact with the group like
any other. Test this as a student enrolled in the group, as well.

Change-Id: Id4f08b704226653acc35df517fe58ce4f8f9e6eb
Reviewed-on: https://gerrit.instructure.com/40789
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-09-09 21:54:23 +00:00
Cody Cutrer 5f4dcccff4 avoid extraneous queries to Notification
just use the cached .all, even for associations

test plan:
 * go to the notification preferences page as a user
 * in console
   * np = NotificationPolicy.first; np.notification
   * the first time, it should query notification_policy,
     and *all* notifications
   * do it again, and this time it should not query
     notifications, but should still return an object

Change-Id: I3b83ec9ce6f6f6b4d542e83d2b8653b4e221afd4
Reviewed-on: https://gerrit.instructure.com/40460
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2014-09-09 21:54:16 +00:00
Simon Williams 7b00965fa2 fix saving turnitin settings
fixes CNVS-15258

test plan:
- create an assignment and enable turnitin and open the advanced options
- change different combinations of settings: check/uncheck boxes, radio
  buttons, dropdowns, and fill in fields
- no matter what settings combinations you pick, when you press "Update
  Settings", and then re-open the dialog, it should be consistent
- if you close the dialog with the x, it should not keep your changes
- when you save the assignment and go back to edit it, it should keep
  your last 'updated settings'

Change-Id: I150402907b7829474f2c2a7102d2a4039438f809
Reviewed-on: https://gerrit.instructure.com/40644
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-09-09 21:42:29 +00:00
Jason Madsen 4ffec13c3a handle folder paths with trailing whitespace
there are potentially lots of folders with trailing whitespace. handle
them gracefully in new files

closes CNVS-14794

test plan:
  - with new files ui disabled, create a new folder
  - in the folder name, add a space at the end of the text (eg "Folder 1 ")
  - enable the new files ui
  - click on the folder with the space
    - folder view should load

Change-Id: Ibc6489ebf561a1a9b92d30f930fe575597849cdf
Reviewed-on: https://gerrit.instructure.com/40340
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
2014-09-09 19:56:36 +00:00
Jeremy Stanley aa75b03a5b use root account uuid to scope external ids in migrations
given a course that references question banks, rubrics,
outcomes, and/or external tools in its account, if the course
is exported and re-imported into a different institution
in a different shard, there's a chance that the wrong item(s)
may become associated with the copied course.

to solve this,
 (1) export the root account's uuid with a cc export;
 (2) ignore external references on import if the saved uuid
     does not match the root account of the destination
     course.

test plan:
 1. arrange the following in a course:
  a. an external tool module item referencing a tool
     defined in the account
  b. a learning outcome imported from an account
  c. an assignment using an account rubric for grading
  d. a quiz containing a question group puling from an
     account question bank
 2. export this course to a common cartridge
 3. import it into a course in the same root account.
    it should import without warnings, and the account
    references should be intact.
 4. unzip the export package from step 2.
    in course_settings/course_settings.xml, change
    the root_account_uuid value. re-zip.
 5. import the modified package into another course
    in the same root account. (we tricked canvas
    into thinking it's a different root account,
    because that's easier than actually setting up
    another shard and "decoy" items with matching ids).
    -> you should get warnings about the external tool,
       rubric, outcome, and question bank
    -> the rubric and outcome should still be present,
       but are copies and not the original account items

fixes CNVS-15101

Change-Id: I60d2a8377995f9d9476a87776c993d677b838b1b
Reviewed-on: https://gerrit.instructure.com/40391
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-09-09 19:16:41 +00:00
Jeremy Stanley ff0542a9f9 include referenced modules' items in selective import
test plan:
 0. have a course with a module containing an assignment, quiz,
    discussion topic, wiki page, file, and course-context external
    tool item
 1. have other assignments, quizzes, etc. in the course that are
    not part of the module
 2. export the course to a common cartridge
 3. import the course, selecting only the module
 4. verify that items referenced by the module are included
    (and those not referenced by the module aren't)

fixes CNVS-15226

Change-Id: I7fbed812a0b2edc3fad2bb75eb9aaab905923935
Reviewed-on: https://gerrit.instructure.com/40537
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-09 16:30:23 +00:00
Ahmad Amireh fd4bbbf91c CQS: selenium spec for canvas integration
Added a selenium spec that visits the statistics_cqs page and verifies
that the client app has loaded and mounted successfully.

Closes CNVS-15363

Change-Id: I4a87b5af78343d51ef8e4c0b1e30065eff9e7d6b
Reviewed-on: https://gerrit.instructure.com/40775
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Derek DeVries <ddevries@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-09-09 15:52:36 +00:00
Simon Williams 93f1103731 require course assignment groups in a saner way
fixes CNVS-15252

test plan:
- create a new course and DO NOT visit the assignment index page
- go create a new ungraded discussion
- refresh the discussion show page a few times
- go to the assignment index page
- there should only be 1 assignment group (the default)
- repeat the process with an ungraded quiz

Change-Id: If6714bef05379a0f1253a0843d473695a1372456
Reviewed-on: https://gerrit.instructure.com/40709
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-09-08 22:01:54 +00:00
Liz Abinante 6960995489 DA - notifications for assignments
fixes CNVS-13933

test plan (with a course setup for DA):

for the following tests:
* perform them on assignments that are only_visible_to_overrides
* _and_ again on assignments that should be visible to everyone (regression)

- mute an existing assignment that has a due date for one section only
- unmute it
- verify that the *unmuted* notification only go to the students & admins who can see the assignment

notes: must be an existing assignment that is more than 30 minutes old

Change-Id: Ic26fe29a8b1db06e376fdeae129636b0a097fab1
Reviewed-on: https://gerrit.instructure.com/37271
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Liz Abinante <labinante@instructure.com>
2014-09-08 21:52:28 +00:00
Brad Humphrey c73e22c0c6 send user id for ContentItemSelectionResponse launches
test plan:
 - Install a tool with a message type ContentItemSelectionResponse
 - it should contain a opaque user_id

Change-Id: Ic2f6585adfe2d9792f974d1d58db2b82da2cdff2
Reviewed-on: https://gerrit.instructure.com/40718
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-08 20:28:37 +00:00
Colleen Palmer 56a8274200 No more textures in Canvas
fixes CNVS-15254
fixes CNVS-14958

This takes out the big textured backgrounds we have in Canvas and
makes everything flat. I've attached screenshots to the story to
see what all is being changed. This affects the following areas:

- Main global header
- Main sidebar left nav
- Body background

This also takes off some annoying drop-shadows we had on the user
navigation (top right) and the global Courses drop-down box.

Yay for a cleaner looking Canvas!

Testing:

- Load up Canvas, make sure the color changes appear for you and
match the screenshots

Change-Id: I3557e66d7d91c3999ad67bfa92202e61c7da44cb
Reviewed-on: https://gerrit.instructure.com/40527
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Reviewed-by: Chris Hart <chart@instructure.com>
2014-09-08 20:10:29 +00:00
Brad Humphrey 73626a187b add lti launch params and substitutions
test plan:
  - create a tool with ContentItemSelectionResponse
  - it should send the parameter 'tool_consumer_instance_contact_email'
  - it should substitute the parameter $Canvas.user.prefersHighContrast

fixes PLAT-622

Change-Id: If55d0a1b488f82a90c8aa620fd037f7e7c7b0272
Reviewed-on: https://gerrit.instructure.com/40703
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-08 19:14:22 +00:00
Nathan Mills 63945c4d35 add tool setting service
fixes PLAT-608 PLAT-613 PLAT-615 PLAT-616 PLAT-620

test-plan
*spec should pass

Change-Id: Idf2a7d89973231a070a8d368bd60554e3501cdf6
Reviewed-on: https://gerrit.instructure.com/40227
Reviewed-by: Brad Humphrey <brad@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
QA-Review: Nathan Mills <nathanm@instructure.com>
2014-09-08 16:58:00 +00:00
Nick Cloward 0d4ea2449f log error reports in the root_domain_accounts shard
fixes: CNVS-15074

Wraps the log_exception method in a shard.activate for the
domain_root_account.  This is required because the method gets called
after the LoadAccount middleware has been called.

Test Case:
  - Create an error on one shard, such as going to localhost:3000/42 to
    raise a 404.
  - Open the shards error reports and the error should be in the list.
  - Open the default account and the error should not be in the list.

Note:

Need to add the following to config/environments/development.rb.
Without this the error won't be logged.  Rails3 will not call the log
method in the middleware.

  config.consider_all_requests_local = false

Change-Id: I2b8c3fd3fc714ab75cf3b872e6546ffd651e6882
Reviewed-on: https://gerrit.instructure.com/40610
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
2014-09-08 15:08:34 +00:00
Bracken Mosbacker a5941ff861 allow external tool to not show up in module/asmnt selection
Some tools aren't meant to be selected in the ET UI. This
adds an option to hide them.

Test Plan:
 * Install an external tool with the property "not_selectable" as true
 * when you look in the asmnt/module item external tool list the tool
   should not be listed

closes PLAT-619

Change-Id: I0a8b0771b2b2d84bc6fe0b66779728abec1ef212
Reviewed-on: https://gerrit.instructure.com/40505
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-08 14:52:41 +00:00
Ethan Vizitei 173ab80f3a needs_grading by section for mobile
fixes CNVS-14375

Previously grading counts were only available
aggregated as a count for the assignment. This
lets you consume them split out by section
rather than.

needs_grading_count_by_section is the flag
to send.  This also splits out the needs_grading
query off into it's own object to reduce the
cognitive load of working in the assignment model.

TEST PLAN:
 - setup a course with multiple sections and
    assignments that need grading for students in
    each
 - hit the assignments API index with the
    "needs_grading_count_by_section" parameter set
    to true
 - the JSON response should include a
     "needs_grading_count_by_section" key for
     each assignment and it should have a hash
     of section ids and counts

Change-Id: I290a080b5f657996423798cacfb37660f5ed427c
Reviewed-on: https://gerrit.instructure.com/39627
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
2014-09-08 13:21:31 +00:00
Simon Williams 7084cbc84d fix typo in canvadoc url (and add specs)
fixes CNVS-15300

test plan:
- submit a pdf to an assignment (so it goes to crocodoc)
- go to the submission details page
- click 'View Feedback'
- it should preview in crocodoc

Change-Id: I7af38bbfa224e8a488b63d68d53fc234b90d6d48
Reviewed-on: https://gerrit.instructure.com/40684
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-09-07 04:23:59 +00:00
Ethan Vizitei 537d9ff033 Make substring searches for courses more performant
fixes #CNVS-12711

Using three seperate trigram searches
when looking for courses by a name match
is taking more time than we'd like.
This builds an index for all 3 relevant
columns together and reworks the scope
that references them to build a search
clause that takes advantage of that index.

TEST PLAN:
 - no behavior changes, just performance improvements
 - regression test /users/x/manageable_courses api
     endpoint with a name parameter as that's what
     makes the primary use of this query.

Change-Id: Ia645da66f0df1a4cec9298f7fa941fa51de815f4
Reviewed-on: https://gerrit.instructure.com/40507
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2014-09-05 21:21:00 +00:00
Brad Humphrey 90d795e33b add missing LTI params to ContentItemSelectionResponse message
Test Plan:
 - Do a ContentItemSelectionResponse
 - Should receive the param 'roles'

fixes PLAT-621

Change-Id: I1dc8ed1af5c237d1333eea8bad18f0dd7a74c464
Reviewed-on: https://gerrit.instructure.com/40617
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-05 21:07:38 +00:00
Cameron Sutter e5569c1310 fix eportfolio download
fixes CNVS-15147

test plan:
 - create an eportfolio for a user
 - download the eportfolio
 > it should download

Change-Id: I674333fed77d159201e35b7c2e6ca12a033e4856
Reviewed-on: https://gerrit.instructure.com/40412
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2014-09-05 19:47:19 +00:00
Ryan Taylor 3b267b559b Course Quiz Extension: A course level quiz extension API
ProServe wants an API endpoint for their LTI which allows for editing of all quizzes
contained in a course similar to that provided by the Quiz Extensions
API endpoint.  This provides the ability to edit all quizzes at the
course level with the same type of parameters.

Closes: CNVS-14950

Test Plan:
  - Access /api/v1/courses/:course_id/quiz_extensions with POST
  - Pass quiz extensions parameters
  - Confirm that all quizzes are edited with the appropriate parameters

Change-Id: Ifca1a4937ab356665627ef3f0aa829aeeaddedc7
Reviewed-on: https://gerrit.instructure.com/40331
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-09-05 16:26:07 +00:00
Jacob Fugal 93f9accc82 smarter linking of public portfolio owner's name
fixes CNVS-5352

only link to a user page if one is visible to the person viewing the
page. prefer the /about/:id page if the account has profiles enabled.
otherwise, prefer the /users/:id/profile page when viewing my own
portfolio and the /users/:id page otherwise (and only if permitted).

test-plan:
  - have a target user with a student enrollment
  - create a public portfolio for the target user

  - enable profiles on the account
    * log out and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as portolio owner and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as an account admin and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as a teacher in the student's class and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as an unrelated non-admin user (i.e. student from some
      other class) and view the portfolio
      - the portfolio owner's name should not be linked

  - disable profiles on the account
    * log out and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as portolio owner and view the portfolio
      - the portfolio owner's name should be linked to
        /profile
      - following the link should be authorized

    * log in as an account admin and view the portfolio
      - the portfolio owner's name should be linked to /users/...
      - following the link should be authorized

    * log in as a teacher in the student's class and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as an unrelated non-admin user (i.e. student from some
      other class) and view the portfolio
      - the portfolio owner's name should not be linked

Change-Id: I812076d10bd3c56b87938627c9f095a1793128e6
Reviewed-on: https://gerrit.instructure.com/39863
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-09-05 16:04:11 +00:00
James Williams 8e2aefd201 add tool links to gear menus on discussion topics
test plan:
* as with g/39874, add an external tool to a course
with 'discussion_topic_menu' configured

* enable lor feature flag for account or user
* confirm that menu items for the tool are added to the
 gear menus on the index and individual show pages for
 discussion topics

closes #CNVS-15239

Change-Id: Ic309c14f75ae0b2e38f9d1324b7a8d370fa93fde
Reviewed-on: https://gerrit.instructure.com/40550
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-05 15:05:56 +00:00
Ahmad Amireh 1c03e40aae quiz index optimizations
Closes CNVS-15109, CNVS-15173

CHANGES
-------

  - "auto-grading" of due submissions that was previously done
    synchronously in the index action is now done in a DJ
  - when viewing the index page, you don't get to see due/available
    dates on load, instead the dates are fetched on the client-side and
    load progressively
  - new API endpoint for retrieving assignment overrides for a bunch of
    quizzes at [GET] /courses/:course_id/quizzes/assignment_overrides
  - we now cache the user's quiz permissions
  - Canvas AMS API serializer now accepts a new option, see docs
  - QuizSerializer behavior changed radically:
    - "takeable", "submitted_students", "unsubmitted_students"  disabled
    - all associations disabled including the submission, assignment
      group, and any student participants
    - it can now utilize preloaded permissions

Rationale behind disabling things in the serializer is that these were
exclusive for the "show" action, so the next step forwards is to
allow the serializer to recognize different "modes" for output (e.g, for
index and one for show) and tailor the associations/fields accordingly.
Using "#filter" right now isn't cutting it, because assocs get loaded
anyway.

REFACTORING
-----------

  - broke down index into three actions for visibility:
    1. default, Draft-State version
    2. legacy non-DS version that's not reachable in the UI, kept around
       until we upgrade the tests
    3. ember version
  - legacy non-DS ERB code goes into its own file
  - moved code that used to grade due submissions inside index to
    SubmissionGrader in preparation to remove it from there entirely
  - cleaned up internal docs for the Canvas AMS api serializer

TEST PLAN
---- ----

  - create ~30 quizzes
    + make one of them have many questions
    + make a good number of submissions (i tested with 420 and 20
students)
  - create multiple sections
    + specify date overrides for certain sections, and have at least one
      student enrolled in that section
  - as a teacher and/or an observer, go to quizzes index
    + verify the page renders fine
    + verify that you see "loading indicators" in the due/available
      field which get replaced with actual dates when they're loaded
    + verify it's faster than the version in master (should be at least
      60% faster)
  - as a student in the general section, go to quizzes index
    + verify the page renders
    + verify you see the same loading behavior for dates as in teacher
      view
  - as a student in one of the section with overrides, go to index:
    + verify you see the overridden date

Change-Id: I741d89625da1b858148baa95e881fcc75c1802e5
Reviewed-on: https://gerrit.instructure.com/40350
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-09-05 14:20:38 +00:00
Bracken Mosbacker 27ea3bfd0e add some missing fields to sis batch api
you can set these fields when creating a batch
and it'd be convenient to get them back to auditing
and debugging

Test Plan:
 * GET an SIS Batch from the api, these fields should be set:
   batch_mode
	 batch_mode_term_id
	 override_sis_stickiness
	 add_sis_stickiness
	 clear_sis_stickiness

closes CNVS-15236

Change-Id: Ia26e582dcc90efb6d7877e39fb2d238fe2f22c9f
Reviewed-on: https://gerrit.instructure.com/40463
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Tyler Pickett <tpickett+gerrit@instructure.com>
Product-Review: Tyler Pickett <tpickett+gerrit@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-04 20:19:02 +00:00
Sterling Cobb 0772b3ca62 add specs for reactjs components
These components are related to the new files project.

fixes CNVS-15218

Test Plan

Make sure test are testing appropriate things.

Change-Id: I5f9b758dd922add4636db6e21c6f0603d21348a3
Reviewed-on: https://gerrit.instructure.com/40520
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
QA-Review: Sterling Cobb <sterling@instructure.com>
2014-09-04 19:32:15 +00:00
Shawn Meredith 3088d92cd9 spec: tesbot fragile specs and testbot fork
Change-Id: I088dee811f1f27cff6488fa32eac3efa08bffd85
Reviewed-on: https://gerrit.instructure.com/40349
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <kyler@instructure.com>
Reviewed-by: Shawn Meredith <shawn@instructure.com>
Product-Review: Shawn Meredith <shawn@instructure.com>
QA-Review: Shawn Meredith <shawn@instructure.com>
Tested-by: Shawn Meredith <shawn@instructure.com>
2014-09-04 17:37:57 +00:00
Joel Hough d5dba5ffee bounced email handling
fixes CNVS-15150

test plan
1. setup outgoing email through amazon ses test account
2. setup bounce_notifications.yml with sqs test creds
3. set a user's email address to 'bounce@simulator.amazonses.com'
4. cause three messages to be sent to that user
5. ensure that they are sent
6. wait for the bounce notification processor to run (~5 min)
7. casue another message to be sent to that user
8. ensure that message is not sent
9. repeat steps 3-8 using a different user and the address
 'suppressionlist@simulator.amazonses.com'
10. repeat steps 3-7 using a different user and the address
 'success@simulator.amazonses.com'
11. ensure that the fourth message is sent successfully
12. make sure no error reports or job failures are reported
 for the bounce notification processor

Change-Id: I060659c73a8b750c16f287e94f4198d8cb8633e5
Reviewed-on: https://gerrit.instructure.com/40254
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
2014-09-04 16:48:13 +00:00
Liz Abinante ad7a411381 fixes assignment creation with quick add dialog
fixes CNVS-15217

test plan
- create an ungraded assignment using the quick add dialog
- do it again using the 'quiz' or 'discussion' type
- do it again and click 'more options'
- save the assignment with a single online submission option
- verify that it saves/works for every assignment you created
- party party celebrate victory wooo 👍

Change-Id: Ib4c924801d3f3ed228971151d88c97b7bc572fb1
Reviewed-on: https://gerrit.instructure.com/40416
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Liz Abinante <labinante@instructure.com>
2014-09-04 14:29:35 +00:00
Ben Young 9d930a596f Allow enrollments to be recreated as active
Fixes CNVS-13015

Test plan:
- Add a user as 'invited' to a course via API.
- Delete the enrollment, and recreate it as 'active'
- Verify the enrollment is recreated as 'active'

Change-Id: Ifb4345abf2f586f5b50cfb9a36b7c2bf00f123a4
Reviewed-on: https://gerrit.instructure.com/40255
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-04 02:51:54 +00:00
Cameron Matheson 7fe73388f5 don't delete memberships when group is deleted
refs CNVS-10184

there is no reason to do this but it makes it impossible to grade group
assignments after the group is deleted

Test plan:
  * make a group assignment
  * make some submissions
  * delete the group category
  * you should still be able to grade the submissions in speedgrader
  * nothing should change from the student's perspective (students
    should *not* see the group anywhere they currently don't see the
    group)

Change-Id: I2c421ea5d88fe77679ddffc60fc3ddb420d33a23
Reviewed-on: https://gerrit.instructure.com/39945
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
2014-09-04 00:59:06 +00:00
Brian Palmer d379fd4386 remove new_teacher_registration notification code
This notification is no longer sent, but we kept this code around for a
bit to allow already-queued messages to succeed.

closes CNVS-15219

Change-Id: I67f50df8f15c0e4d02f4fc262c0dedad831df96b
Reviewed-on: https://gerrit.instructure.com/40383
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>
2014-09-03 22:06:04 +00:00
Brian Palmer fdefc984ae remove the new teacher registration email
This email only went to site admins, and isn't useful.

This commit stops new notifications being created, a subsequent commit
will remove the no longer used code and data.

refs CNVS-15219

Change-Id: Ibd8c88c7310cf3dcfb06cf0c782f2b3cf571d843
Reviewed-on: https://gerrit.instructure.com/40375
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>
2014-09-03 22:05:46 +00:00
Ethan Vizitei 178f84a8b1 Don't strip the verifier from user-context files
fixes #CNVS-11032

If you were to use a files link that didnt start
with "/files" (like "/users/x/files/y" or a link
with a full host name), it would
still strip the verifier out, which would make the
file not appear to other users.  This fixes
the problem.

TEST PLAN:
 -login as a user
 -go to files and upload an image to *your* folder
    (rather than the folder for a course or something)
 -obtain a link to that file with it's verifier param through
    whatever means you prefer (simplest is to get the download
    link and then use the console to get the UUID from that
    Attachment record and use that as "verifer=[blah]" at
    the end of the url for the file)
 -post a discussion reply using that link to embed an image
    in the reply.
 -login as a different user and look at the discussionr reply;
  you should be able to see the image in the discussion reply.

Change-Id: I2e9123f08cda0e6949e8f9a8d12ba50b98de49e0
Reviewed-on: https://gerrit.instructure.com/40430
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-03 20:06:38 +00:00
Brian Palmer 99fec1f1ea set x-canvas-meta response header
Include relevant request information, for easy storing in web access
logs

closes CNVS-11044

test plan: Make web requests, use your browser's web inspector to verify
the x-canvas-meta response header.

Change-Id: I07e31b571bd9a946c9bc753c60eb8872ff456ff7
Reviewed-on: https://gerrit.instructure.com/37276
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
Tested-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2014-09-02 21:00:10 +00:00
Jeff Belser d7503ce64c locale query params for session_locale
fixes CAT-330

NOTE: *the locale for a page is inferred in a weighted order.
       session_locale is checked just before a provided context's
       account locale preference and just after the user's

Test Plan
  1. Fire up canvas with full i18n support configured
     (i.e. $ RAILS_LOAD_ALL_LOCALES=true rails server)
  2. Navigate to a page that supports localization while logged out
     such as the login screen
  3. Append the following query params to the URL in the browser
     '?session_locale=zh'
  4. Navigate to that URL and ensure the page is localized in the provided
     locale

Change-Id: I9e94d6ecfd41e77683940272aa0988c67064b602
Reviewed-on: https://gerrit.instructure.com/39844
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ethan Gunderson <egunderson@instructure.com>
Reviewed-by: Nick Houle <nhoule@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2014-09-02 19:53:32 +00:00
Brad Humphrey 93538324cd add specs for variable substitutions
Test Plan:
 - specs should pass

Change-Id: I4267d457f2f58c9913e36ff9f59cf8e9dbc96db6
Reviewed-on: https://gerrit.instructure.com/40315
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-09-02 15:32:38 +00:00
Jason Madsen 6d96ee054a display upload progress for new file uploads
closes CNVS-15120

test plan:
  - enable new files
  - upload a file
    - ui should display upload progress
    - screen reader should announce upload progress

Change-Id: I01d644cfbe528dfcfa2e2161a87aefd3e8d9903c
Reviewed-on: https://gerrit.instructure.com/40148
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
QA-Review: Jason Madsen <jmadsen@instructure.com>
2014-08-29 23:52:05 +00:00
Sterling Cobb 26e7d708b7 fix a bugs in new files
fixes CNVS-15182

The restricted access dialog window wasn't closing after making its
requests. Also, restricted access wasn't seting the 'locked' params
which was needed in order to ensure restricted access/hidden states
were properly set.

Test Plan
As a user that can access new files
Go to the new files page
When you click on the admin gear
And open the restricted access menu
And click update
Then the dialog should load
And then it should close

As a user that can access new files
Given you have an unpublished file or folder
Go to the new files page
When you click on the admin gear on an unpublished file or folder
And open the restricted access menu
And click update
Then the dialog should load
And then it should close
And the file or folders published icon should have correctly changed

Change-Id: I6921bc812ba7be7b79fa90c82971b4c7ebc24d3c
Reviewed-on: https://gerrit.instructure.com/40266
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Sterling Cobb <sterling@instructure.com>
2014-08-29 20:21:44 +00:00
Jason Madsen af431f3d24 make add files work with S3
closes CNVS-14823

test plan:
  - add <AllowedHeader>content-type</AllowedHeader>S3 CORs config
  - enable S3 uploads in config/file_store.yml and config/amazon_s3.yml
  - add a file using the ui
    - file should upload successfully

Change-Id: I9fb3061def386a4827bee04c7727b336f9a311ba
Reviewed-on: https://gerrit.instructure.com/39935
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Sterling Cobb <sterling@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
QA-Review: Jason Madsen <jmadsen@instructure.com>
2014-08-29 20:06:37 +00:00
Jeremy Stanley d518b6f131 exclude grading schemes/assignment groups in selective assignment export
test plan:
 0. have a course containing an assignment with a custom grading scheme
    and named assignment group. also a graded discussion topic in a
    different assignment group with a different grading scheme, and
    a published quiz in a third assignment group.
 1. copy the course. the destination course should copy the assignment
    groups and grading schemes and associate them with the copied objects
    correctly.
 2. repeat step 1, but do a selective course copy, and select the
    assignment, quiz, and topic specifically. you should get the
    same result as in step 1.
 3. use the content exports API to selectively export the three objects
    e.g.,
      select[assignments][]=X&select[quizzes][]=Y&select[discussion_topics][]=Z
    import this package into a new course. the three objects should be
    there, but should not have custom assignment groups or grading
    schemes.

fixes CNVS-14820

Change-Id: I871771284b4a3bbd3695a99a6f2af613d76a8ebf
Reviewed-on: https://gerrit.instructure.com/39914
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-08-29 19:48:13 +00:00
Ryan Florence f98219f795 reorder content and sidebar
headers in the content should come before headers
in the sidebar

fixes CNVS-15105

Change-Id: I6ae02bd784ecf893acae6574f93685f9216f035a
Reviewed-on: https://gerrit.instructure.com/40101
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
2014-08-29 19:14:04 +00:00
Cameron Sutter 39a2b71f7f DA - assignments api index/show
fixes CNVS-14074

test plan:
 * setup DA
 * DA feature flag on
 - use the API for the following requests
   - index
     > should only show assignments that the student can see
   - show
     > should return as assignment that the student can see
     > should return an error for assignments that the student
       cannot see

Change-Id: I921ffbab639d96c3bfbf16d0b1df9ef79515f44e
Reviewed-on: https://gerrit.instructure.com/39520
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-08-29 18:33:48 +00:00