Commit Graph

7284 Commits

Author SHA1 Message Date
Stanley Stuart 1a964e212b add table stylings to the styleguide
test plan:
  - make sure table stylings show up in the styleguide.

Change-Id: I69b420fdafce7a95ffc8cfb690539584c512c029
Reviewed-on: https://gerrit.instructure.com/22015
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
QA-Review: Stanley Stuart <stanley@instructure.com>
2013-07-12 20:45:24 +00:00
Simon Williams 3b75fd2f13 assignment index add assignment dialog
closes CNVS-5682

test plan:
- the 'Add Assignment' button at the top should go to the full assignment new
  page
- the '+' button in each assignment group should pop up the assignment quick
  add dialog.
- it should work

Change-Id: Ic912ace112ca8f92461ef96bba2f9ef7d839f376
Reviewed-on: https://gerrit.instructure.com/21902
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2013-07-12 20:11:47 +00:00
Jeremy Stanley bb4c489d1d fix scrolling in embed-image dialog on IE
test plan:
 - have more than 30 images in a folder in a course
 - go to the embed image dialog in IE9 or IE10
 - click to expand this folder
 - scroll down with the mouse wheel
 - you should be able to scroll to the end of the folder
   without it snapping back to the top on you
 - also test (in IE and other browsers) that you can
   use the tab key to scroll from the top to the bottom
   of the folder without losing keyboard focus

fixes CNVS-6766

Change-Id: I2f62a5e9232b11f1ece709e69837e6f22f752417
Reviewed-on: https://gerrit.instructure.com/22239
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>
2013-07-12 20:05:49 +00:00
James Williams c6ba00d491 vertically align content migration progress bar
test plan:
* run a content migration
* confirm that the progress bar is vertically aligned

fixes #CNVS-6816

Change-Id: I38ecc7acb4aefa9202ba0fa07178c6666dd0bdb6
Reviewed-on: https://gerrit.instructure.com/22269
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2013-07-12 20:04:33 +00:00
Cameron Matheson 15868bee11 Faster AssignmentGroupsController#index
refs CNVS-2500, closes CNVS-6577

Test plan:
  * make sure the assignment groups index api action still works
    - be sure to include assignments
      * test with and without overrides
  * make sure gradebook2 still works (focus on anything related to
    assignment due dates)

Change-Id: I440a8fdeffdb497884356f08c19b5b7792566a3a
Reviewed-on: https://gerrit.instructure.com/22102
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
2013-07-12 17:47:29 +00:00
Simon Williams 057e57d57c add/edit assignment group dialog
for the new assignment index page, the dialog to add or edit an assignment
group.

closes CNVS-5684

test plan:
- try adding new assignment groups
- try editing existing assignment groups
- change all the fields
- it should all work

Change-Id: I7b466f184b2d475ff8b04344b2f138c732af1d36
Reviewed-on: https://gerrit.instructure.com/21820
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2013-07-12 17:42:30 +00:00
James Williams 251e1fce4f add account-level external tool resource_selection route
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>
2013-07-12 17:11:43 +00:00
Cody Cutrer ccae3722dd make SAML an optional feature
so that xmlsec isn't a required feature

test plan:
 * remove xmlsec from your system
 * restart your server
 * existing SAML configs should be ignored (i.e. when you go to login
   at an account with SAML, it should give you Canvas login)
 * configuring authentication settings should not show SAML in the
   dropdown (existing SAML configs just won't show up, but you can
   still disable it)

Change-Id: Ic44e05f97ea7d0b919d5165a943b91011ebe70bf
Reviewed-on: https://gerrit.instructure.com/21925
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2013-07-12 16:13:42 +00:00
Jacob Fugal 59737086e7 Auditors::Authentication
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>
2013-07-12 16:10:33 +00:00
Jacob Fugal a91e6c32b5 add time_to_live config to EventStream
and plumb it through Canvas::Cassandra::Database's *_record methods

refs CNVS-390

Change-Id: I47a19a7040021d58c242f9cb483dd6f029298d84
Reviewed-on: https://gerrit.instructure.com/22155
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>
2013-07-12 16:10:04 +00:00
Jacob Fugal 65b1e19244 course start/end are datetimes, not dates
fixes CNVS-4963

canvas stores and treats these values as datetimes internally.
additionally, some customers depend on the datetime functionality, so
it's not just a matter of disconnect between representation and
semantics.

not only does displaying them as dates instead of datetimes hide
information that some customers may depend on, but it also risks losing
that information entirely when the form is loaded and then saved (even
if that field was not explicitly modified).

it gets even worse when userA saves the end date to an implicit midnight
in one time zone, and then userB round trips the form in another time
zone, causing the date to shift by whole days unintentionally.

treating it as a datetime in the input rather than as a date fixes all
of these.

test-plan:
 - create a course with a teacher
 - set the teacher's time zone to Baghdad (+03:00)
 - as the course teacher, set the course start_at to 6am on some day
 - load the course settings page and click "Edit Course Details"; the
   time portion of the start date should be displayed in the input
 - click the datepicker for the start date; the time portion should be
   displayed and filled
 - save the form; the start at should not change
 - change the teacher's time zone to Alaska (-09:00)
 - reload the course settings page and click "Edit Course Details"; the
   input should read as 6pm on the previous day
 - save the form; the start at should not change
 - change the teacher's time zone back to Baghdad
 - reload the course settings page; the course start at should be 6am on
   the originally selected date
 - repeat the above for course end date

Change-Id: I97c78ea2861e9d792d4f0d9d3fb121f5a83ab38b
Reviewed-on: https://gerrit.instructure.com/22206
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2013-07-12 15:34:20 +00:00
Jon Jensen 4d4b758c0d spec: explicit context for ENV
makes testem happy

test plan: run specs

Change-Id: Ifb3185f8e6e0c5aa8b229e1d3d94a9df04ff5288
Reviewed-on: https://gerrit.instructure.com/22249
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Tested-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-07-11 23:08:40 +00:00
Jon Jensen f493cb21df use correct i18n scope for html emails, fixes CNVS-6829
fixes an issue where the wrong translation could be used, or worse,
a crash (e.g. if an interpolation argument was missing)

test plan:
1. change the course language to French
2. invite a student to the course
3. go to /user/:id/messages
4. the message should have been sent
5. the html version email should have the website domain name, e.g.
   "Vous avez été invité à participer à une classe sur localhost"

Change-Id: Ie5ba87ff37f6b96acb814b8810ed2ed7cd44e03d
Reviewed-on: https://gerrit.instructure.com/22233
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>
2013-07-11 22:21:45 +00:00
Bryan Madsen 9a00921b14 spec: comment failing javascript tests
Change-Id: I5aec62a3735de8bb02a3c242ab05d75bb4bd679c
Reviewed-on: https://gerrit.instructure.com/22246
Reviewed-by: Bryan Madsen <bryan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Bryan Madsen <bryan@instructure.com>
2013-07-11 22:04:41 +00:00
Zach Pendleton fd4431b4f4 display subscription state for graded group discussions.
fixes CNVS-6442

test plan:
  * as a teacher, create a graded group discussion;
  * as a student, subscribe to the discussion from the
    discussion show page;
  * from the course discussion index page, verify that
    the subscription icon displays properly as subscribed.
  * as a student, verify that you can subscribe and
    unsubscribe from the course discussion index page.

Change-Id: Ie380089c76bac5481ab4547876ed2f624dd1d14b
Reviewed-on: https://gerrit.instructure.com/22054
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Mark Ericksen <marke@instructure.com>
2013-07-11 21:04:21 +00:00
Ryan Florence a386f52f16 made collection view more extensible
can now control how item view instances are
created, mostly useful for child views in your
item views

Change-Id: Ic09e39556f371851744a48f3724336fed8fce040
Reviewed-on: https://gerrit.instructure.com/22234
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-07-11 20:58:35 +00:00
Mark Ericksen 96f02fb6d4 use newer adobe_connect gem
fixes CNVS-6734

also displays errors encountered when joining
a conference rather than leaving it unhandled

testing steps:
* a legacy conference should work to start or join
  after the update
  * prior performing the update, create a conference
    that is not yet started
  * prior performing the update, create a conference
    that has started but not yet ended
  * verify both conferences can be started or joined

* new conferences should work to create and join

* conference unique ID clashes should error gracefully
  * create a new conference, in a console, change the
    setting :meeting_url_id to be set to an existing
    meetings meeting_url_id and verify attempts to join
    it fail with a nicer error message.

  * in the console:
    c = WebConference.find [insert ID of meeting]
    c.settings[:meeting_url_id] = 'canvas-meeting-[ID of legacy meeting]'
    c.save
  * reload the conferences web page and attempt to join
    the meeting

Change-Id: I39085eba54f1cfe51335d3df5c81df1930791a8e
Reviewed-on: https://gerrit.instructure.com/22196
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Mark Ericksen <marke@instructure.com>
2013-07-11 20:56:20 +00:00
Landon Wilkins 711cab63df add ability to override privacy policy link from a plugin
fixes CNVS-6304

test plan)
n/a

Change-Id: Ic8e30139f82ad47219971e131026aced68cce8f1
Reviewed-on: https://gerrit.instructure.com/22134
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2013-07-11 19:27:03 +00:00
Jon Jensen 97891bd980 PaginatedCollectionView fixes/tweaks
* autoFetch option to fetch as long as the bottom of the collection is
  visible (i.e. don't wait for a scroll). we might want to make this
  default, though my aim ATM is to preserve existing functionality
* fix checkScroll check so we don't fetch if one is in progress
* fix checkScroll so that we fetch when the bottom of the collection is
  visible, rather than requiring that we be at the bottom of the
  scrollContainer (sometimes the latter has more stuff in it)

test plan:
* see specs
* also try out g/21927

Change-Id: I65c2c542edf41a4a70ddba3dc789393bcaf502ca
Reviewed-on: https://gerrit.instructure.com/22194
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-07-11 18:35:47 +00:00
Jon Jensen 0069b066a0 i18n key fix
don't reuse the existing #buttons.send_message key. this was passing
automation, because i18n:check ran before compiling coffee files (so they
were skipped)

test plan:
N/A, run i18n:check correctly :)

Change-Id: Ib65695ea13298f21106587e673f0200aa2972612
Reviewed-on: https://gerrit.instructure.com/22226
Reviewed-by: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2013-07-11 16:43:46 +00:00
Ryan Florence 466b2a636b publish icon view closes CNVS-6787
test plan:
- should work just like the publish button

Change-Id: I82776cd993c2b8a1f009dfde1f855717838c2f40
Reviewed-on: https://gerrit.instructure.com/22161
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-07-11 16:39:25 +00:00
Landon Wilkins 261d7725dc adds api endpoint for randomly assigning unassigned members in a group category
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>
2013-07-11 15:09:34 +00:00
James Williams c2a5ae1239 check for db limits on content tag asset name sync
test plan:
* add a wiki page to a course
* add the wiki page as a module item
* edit the module item title to be
more than 255 characters long
* should not return an 'unexpected error'

fixes #CNVS-3052 frd

Change-Id: I8c6f18a8da7ecdce9a53f88d40ce82fd6d4e85c8
Reviewed-on: https://gerrit.instructure.com/22173
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2013-07-10 21:30:18 +00:00
James Williams a9755546b6 direct "Add Enrollments" link to new users page
test plan:
* restore a course through the admin tools
* the "Add Enrollments" link should take you to the
new "People" page

fixes #CNVS-6735

Change-Id: Ib03457d34e436a115d9fdc4bc42af5444d1c459a
Reviewed-on: https://gerrit.instructure.com/22105
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2013-07-10 21:27:57 +00:00
Jake Sorce 6e99c9db46 grab all AB Standards not just grade types
closes PS-488

test plan:
  1. run academic benchmark import with state guid
  2. once that is imported verify all standards are imported

Change-Id: I82455878ea947e33a0c8b5974582106b0633c86e
Reviewed-on: https://gerrit.instructure.com/22183
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jake Sorce <jake@instructure.com>
QA-Review: Jake Sorce <jake@instructure.com>
2013-07-10 17:24:46 +00:00
Cameron Sutter 9dfd9c7c42 assignment settings modal
fixes CNVS-6676

test plan
 - open the assignments settings modal with the cog menu at the top
 - change the assignment group weighting with the checkbox
 - change the assignment group weights
 - click 'done' and then re-open the dialog to verify changes

Change-Id: I7cf09d7796b0c47c5ec75d79ea7bba33bc7ddcaf
Reviewed-on: https://gerrit.instructure.com/21922
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2013-07-10 17:24:24 +00:00
Cameron Matheson aadfbcded4 fix assignment_json's terrible signature
Change-Id: Iae62e4f2be4cffc4776ca11953623ddee7dd1449
Reviewed-on: https://gerrit.instructure.com/22170
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
2013-07-10 17:03:06 +00:00
Cody Cutrer d727138473 avoid 3 unnecessary queries during connection establishment
standard_conforming_strings is on by default on 9.1+, so don't waste
time turning it on again

test plan:
 * use postgres 9.1+
 * start script/console
 * inspect your log; you should not see queries about
   client_min_messages or standard_conforming_strings

Change-Id: I7202f8a02dd12225de4e8af123578ce3b4363ac9
Reviewed-on: https://gerrit.instructure.com/21824
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-07-10 15:58:16 +00:00
Jeremy Stanley 4b9f04a004 fix duplicate form submissions when pressing or holding Enter
test plan:

 CNVS-2813
  1. create a course
  2. go to modules page
  3. click "Create a Module"
  4. type a name and press Enter
  5. repeat steps 3-4 a few more times
  6. reload the modules page
  7. there should not be duplicates

 CNVS-3857
  1. create a course
  2. go to modules page
  3. click "Create a Module"
  4. type a name and hold Enter key for several seconds
  5. release enter, and the dialog should close
  6. reload the modules page
  7. the module should only have been created once

 CNVS-3518
  1. Go to the modules section of a course.
  2. Go to the "add item to a module" box.
  3. Click on "new assignment" and give it a name. Then hit enter to create the assignment.
  4. Do this again and still hit enter to create the assignment.
  5. ensure you do not have duplicate assignments

fixes CNVS-2813
fixes CNVS-3857
fixes CNVS-3518
refs CNVS-5607 (this commit doesn't address pressing Enter
 repeatedly; that's harder to do without breaking any users
 of fixDialogButtons)

Change-Id: If22efe4d63c1cb353f863af596fb6bdc59be03a2
Reviewed-on: https://gerrit.instructure.com/22143
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2013-07-10 15:54:35 +00:00
Zach Pendleton 71450c6c41 properly unlock locked discussions with a lock_at time.
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>
2013-07-10 14:57:24 +00:00
Duane Johnson c3c86cfe1a add cache_key_context to progress model, table
refs CNVS-6135

This change allows the progress model to track progress for things in
the cache, in addition to the "context" things that it can already
track.

Test Plan:
- use an API that returns a progress_url
- progress model should behave as it did

Change-Id: I63002618e8debc9bfff71deaf6e904da149ba2d5
Reviewed-on: https://gerrit.instructure.com/21978
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
2013-07-10 14:44:57 +00:00
Brian Palmer 4b285e4e0a support tracking a delayed job in the Progress model
This is a convenient way to tie a Progress to a Job, so that the
workflow state of the Progress updates as the job runs and succeeds or
fails.

refs CNVS-6135

test plan: specs

Change-Id: I7d3fb7badbc6300aba20c7d45abba1821f648026
Reviewed-on: https://gerrit.instructure.com/22113
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>
2013-07-10 14:11:48 +00:00
James Williams e733e6e134 add param to search for wiki pages by title in api
test plan:
* use the API index according to the documentation
with the parameter 'search_term' to search for pages
that contain a given term in their title

closes #CNVS-6748

Change-Id: I68eb652a2f11ec535f91cd10d8b419aa4e7f2eb7
Reviewed-on: https://gerrit.instructure.com/22095
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2013-07-10 13:41:36 +00:00
James Williams 834d000916 import assignment points_possible from rubric
test plan:
* import the package reference in the ticket
* discussion topics should indicate that
there are '100 points possible'

fixes #CNVS-5759

Change-Id: I18de2a03820507d96071c627009de1ec2a9463c7
Reviewed-on: https://gerrit.instructure.com/22129
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2013-07-10 13:30:01 +00:00
Cody Cutrer 27915db920 optimize index used for Attachment.recyclable scope
on postgres, limit the index to the conditions we use in the scope

test plan:
 * n/a

Change-Id: Ie6ea43fde3da0264f0a4bed24f65f017483a1844
Reviewed-on: https://gerrit.instructure.com/22138
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-07-09 20:13:15 +00:00
Nathan Mills 234150131a add api param to exclude assignment overrides
fixes PS-474

test plan

*teachers and admin users should be able to exclude assignment overrides on list and get in the api

Change-Id: Iad5b8399ff958d5983dba79ea163702b1138e519
Reviewed-on: https://gerrit.instructure.com/21952
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
2013-07-09 19:48:07 +00:00
Cody Cutrer c95048e248 changes some permission checks to be on the current account instead of site admin
refs CNVS-6027

Change-Id: I9cdd8ff0528ee97350b4b9793975f5b77e44cc78
Reviewed-on: https://gerrit.instructure.com/22139
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-07-09 18:33:16 +00:00
Derek DeVries 510113826c remove extra publish button on quiz show page, add feature flag for draft state
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>
2013-07-09 17:08:39 +00:00
James Williams 6855e451fe qti exporter angel import substring fill-in-the-blank answers
test plan:
* import the package referenced in the ticket
* in the quiz titled 'Exam II', last question,
the 5th answer field should have an expected answer

refs #CNVS-5757

Change-Id: Ie412626d53a52f464f4d488a2b991898d455e349
Reviewed-on: https://gerrit.instructure.com/22088
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2013-07-09 16:09:28 +00:00
Jeremy Stanley aa31e41c52 paginate folder tree contents in embed-image dialog
test plan:
 - regression testing on the embed image dialog
   (make sure you can still embed canvas and user images)
 - put more than 10 folders in a course, and make sure
   the embed-image dialog shows them all under "Course files"
 - put more than 10 images in a folder, and make sure the
   embed-image dialog shows them all
 - test dynamic loading of a folder that isn't near the
   bottom of the scroll container:
   - put 50+ (preferably small) images each in two folders
   - in the embed-image dialog, expand the _second_ folder,
     scroll down, and make sure all the images load
   - now scroll up to the first folder, expand it,
     and make sure all its contents appear in the
     proper place (i.e., the middle of the scroll container,
     ahead of the second folder's files) when you scroll down
   - to clarify, they should load as they scroll into view;
     you should not have to scroll past the second folder's
     files in order for the first folder's files to appear

fixes CNVS-6242

Change-Id: I79199e7f4f6f6ea59f9066585267e98c81fedd0f
Reviewed-on: https://gerrit.instructure.com/21575
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2013-07-09 14:58:37 +00:00
Jon Jensen dadf1b4d51 make ENV available in handlebars templates
test plan:
n/a, see specs

Change-Id: I406dcbb193f7cbd792e251275921a881e9cb2351
Reviewed-on: https://gerrit.instructure.com/22048
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-07-08 20:53:33 +00:00
Jeremy Stanley 1884a80a13 allow up to 50 external tools in module item dialog
test plan:
 - configure more than 10 external tools in an account or course
 - create a module and try to add an external tool as a module item
 - you should be able to scroll down and see up to 50 tools

fixes CNVS-6553

Change-Id: I598cb4324aa75bddfeb57becf80005d3a4d9fd73
Reviewed-on: https://gerrit.instructure.com/22049
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2013-07-08 20:45:24 +00:00
Simon Williams d733314354 configurable turnitin api endpoint
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>
2013-07-08 20:25:41 +00:00
Cameron Sutter 5667d38099 include logged_out quiz submissions in quiz statistics
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>
2013-07-08 19:48:29 +00:00
Shawn Meredith 51d2968f84 simplecov formatter tweak
Change-Id: I0ecacd2dbc7cb89fa9ef5b17c0b1d69befd90ad1
Reviewed-on: https://gerrit.instructure.com/21555
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>
2013-07-08 19:39:41 +00:00
Cody Cutrer 62241ed3e1 add index on course_sections.root_account_id
fixes CNVS-6742

to keep mysql happy

test plan:
 * run migrations on mysql

Change-Id: Ib1d0c78660d096e026bf7e588c790dbcfab94c0b
Reviewed-on: https://gerrit.instructure.com/22076
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-07-08 19:38:31 +00:00
Cody Cutrer 47acd94053 fix quiz statistics migration for mysql
refs CNVS-6742

mysql requires that FKs have an index, so be sure that the new index
is created before the old index is dropped

test plan:
 * migrations should work on mysql

Change-Id: Ife79933a8de7831bc56337b1b63bbcc20b2dde24
Reviewed-on: https://gerrit.instructure.com/22075
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-07-08 19:37:48 +00:00
Kyle Rosenbaum bcc7b7b995 spec: split selenium build by file size of specs
Change-Id: Ied21cf362eee402e5af4ef6f4d8130be44cd87ad
Reviewed-on: https://gerrit.instructure.com/22005
Tested-by: Jenkins <jenkins@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>
2013-07-08 19:07:06 +00:00
Bracken Mosbacker 89508bf997 make new migration UI the default
removed old migration UI.

Test Plan:
 * rejoice
 * zip file uploads in files UI for courses, groups, and users should work
 * the links /courses/:id/imports and /courses/:id/imports/list should redirect to new UI
 * the course copy api should work
 * doing a course copy in the UI should work
 * rejoice

closes CNVS-6499

Change-Id: Icd71c5f7bf8a97570f6572938b01504589a6a718
Reviewed-on: https://gerrit.instructure.com/21943
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2013-07-08 17:19:06 +00:00
Ryan Florence 26c3a0eba9 always republish when a quiz is saved
closes CNVS-6606

test plan:
1. create a new quiz
2. save it
   - observe it is not published
3. publish it
4. edit it
5. save it
   - observe it is republished automatically

Change-Id: I2af58567f69000fedf723225bf8399e5ab6b25f8
Reviewed-on: https://gerrit.instructure.com/21975
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
2013-07-08 16:47:07 +00:00