Commit Graph

1307 Commits

Author SHA1 Message Date
Jacob Fugal 14f2d01cee include necessary js in discussion_replies
Change-Id: Ic629d538cdbd63490bc28c374ffe5179167b1fad
Reviewed-on: https://gerrit.instructure.com/5195
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-22 14:02:49 -06:00
Jon Jensen 274f8880ad faculty note support in new inbox
also pull in course/group user so we can use it in the future

Change-Id: I34c2aea2fea9b56c988d4903fb2fcf32d96d4f10
Reviewed-on: https://gerrit.instructure.com/5190
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-20 19:58:53 -06:00
Jon Jensen 46fbd65c0b Merge remote-tracking branch 'origin/dev/conversations'
Conflicts:
	app/models/course.rb
	app/views/context/inbox.html.erb

Change-Id: I62c650ebd0bb20dd1f0a9a43843bf7f8d0b86c83
2011-08-20 08:22:14 -06:00
Zach Wily e9fa9a93c9 don't include generated locales for now
Change-Id: Idd644d11aae6b2b6c3359666791cd3f7c24d501a
Reviewed-on: https://gerrit.instructure.com/5176
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-20 00:45:54 -06:00
Jacob Fugal 834e38eaa1 conversations intro slideshow
Change-Id: Icb3be1ae4f33b374c5f3eafc4c30aa9c8e3ef2ad
Reviewed-on: https://gerrit.instructure.com/5152
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-19 23:31:40 -06:00
Cody Cutrer de92627373 optimize course, section, and xlist sis imports
optimize crosslisting itself:

 * use ids where possible to avoid unnecessarily loading up objects
 * Don't worry about keeping track of if we need to save; we're gonna
   save anyway
 * update account associations on any account change, not just root
   account change (if you re-crosslist a section from one sub-account
   to another sub-account, the users may no longer be associated with
   the first sub-account).

optimize sis imports:

 * really batch up update_account_associations

Change-Id: Ic0fbe1601afcbcd3e6540e69febc2e6a1a94157f
Reviewed-on: https://gerrit.instructure.com/5137
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-08-19 10:21:56 -06:00
Cody Cutrer 42e89f907d cinch down course permissions for admins refs #4952
Basically, being an admin doesn't imply full access.  Instead, it
only implies :read_as_admin, which only lets you see things like
course name and section names.

Add two new role overrides:
 * :read_course_content implies :read on the course
 * :manage_content is now a full fledge RoleOverride instead of
   an internal permission implicitly given to Teachers and Admins

Actually start using :view_all_grades override so that Admins
without it won't see grades (replaces :read_as_admin that was
granted to concluded teachers; :view_all_grades is always granted to
concluded teachers, but not to Admins).

Spiffy up several helper functions to take an array of permissions,
and return if any of them are true.

Make sure not to show course tabs that the user does not have access
to.

Fix up lots of permission checks, especially around viewing users
(:read_roster, :manage_students, or :manage_admins might allow you
to see the users in a course; :read_roster only allows you to see
prior enrollments if it was granted to you as an account admin).

Change-Id: Iafcab7956649e9d28e17bd5eedcb155a9ea76af4
Reviewed-on: https://gerrit.instructure.com/5092
Reviewed-by: JT Olds <jt@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-19 10:19:21 -06:00
Cody Cutrer 39d28171bf drop course level role override "support"
simplifies RoleOverride lookup logic, and the query once again uses
the already existing index

Change-Id: I2b165b7debc9aa7aa6fd032d7917cbbc23b4361c
Reviewed-on: https://gerrit.instructure.com/5063
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-08-19 09:15:21 -06:00
Jon Jensen 3867012b16 ability to send bulk private messages
Change-Id: Ia5ab5d74701389f6c83cce2420f555b041ea8581
Reviewed-on: https://gerrit.instructure.com/5079
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-18 10:46:10 -06:00
Jon Jensen 3c9498cb5f conversation url changes, old inbox linking/cleanup
Change-Id: I5b2e66e3572ddf8238fa01ad0b0cc53bd56f6633
Reviewed-on: https://gerrit.instructure.com/5122
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-08-17 14:02:33 -06:00
Jacob Fugal 0cc2f48b32 Merge remote-tracking branch 'origin/stable/2011-08-20' into dev/conversations
Conflicts:
	app/controllers/context_controller.rb
	config/assets.yml
	spec/integration/files_spec.rb
	spec/models/user_spec.rb

also removed test "ContextController GET 'inbox_item' should exclude
recipients if protect_recipients" since ContextMessage inbox items
aren't used any more on this branch.

Change-Id: I99d0e4914cb1bf9617993c1cb1afdbca0e9ba32f
2011-08-16 15:45:39 -06:00
Zach Wily 41720dd913 prompt to overwrite/rename new files with duplicate names; refs #5131
Added a step to the flash upload process in the Files section to do a
preflight check to see if there are any duplicate filenames. If there are, the
user gets the option to either rename the new files, or overwrite the existing
ones. (Overwrite means deleting them - we already have code that will redirect
to new files with the same name as deleted files if they're linked directly by
id.)

Change-Id: I926631aadcebec3cae1607f818044f7cd4b74cea
Reviewed-on: https://gerrit.instructure.com/5091
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-08-16 09:15:03 -06:00
Zach Wily 54bab9db59 prompt to overwrite/rename new files with duplicate names; refs #5131
Added a step to the flash upload process in the Files section to do a
preflight check to see if there are any duplicate filenames. If there are, the
user gets the option to either rename the new files, or overwrite the existing
ones. (Overwrite means deleting them - we already have code that will redirect
to new files with the same name as deleted files if they're linked directly by
id.)

Change-Id: I926631aadcebec3cae1607f818044f7cd4b74cea
Reviewed-on: https://gerrit.instructure.com/5091
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-08-16 09:10:55 -06:00
Ryan Shaw 3868e9c3dc make the creative commons license help accessible
changed the buttons to be actual <a>s with role=button
and use aria-checked="true/false" to reflect state.

Change-Id: I083f6db51bc5b2c4900fb9b41ac2f870247aa01d
Reviewed-on: https://gerrit.instructure.com/4920
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-15 15:20:04 -06:00
Zach Wily 50ac28ff9c hide description from locked assignments on the calendar; fixes #5215
Fixing this required some minor refactoring:

 * A model can now define "filter_hash_for_user" to filter serialized data out
   of the model based on user. In this case, we were sending the assignment to
   the browser in json, and we wanted to strip out the description if the
   assignment was locked for the user.
 * The lock_explanation generator was not i18n'd before. That was fixed, and
   similar code in javascript was also refactored so it can be called by
   anybody. (In this case, by the assignments in the calendar.)

Change-Id: Ia606be2a16df9bd87222306445f548b3a7a78801
Reviewed-on: https://gerrit.instructure.com/5051
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-08-12 10:14:56 -06:00
Zach Wily f5d7c4b0f0 clean up some routes (fix priority, remove cruft)
We had some routes (like /files) listed above more specific uses of them (like
/courses/files). In those cases, when we'd build a route from a hash, the
first route would be chosen, so we'd get funky looking URLs. This worked but
was ugly. They've been moved to the end, and some old routes were removed.

Change-Id: I668e2bad7fe49204ad3b042b3f2e515b8efad2ac
Reviewed-on: https://gerrit.instructure.com/5043
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-08-11 08:23:49 -06:00
Jon Jensen a641bc4112 integrated new messaging design, added forward functionality
Change-Id: I60a528b72b8b7c5569b9c97d3c8de82f75d81bcc
2011-08-10 16:24:16 -06:00
Jacob Fugal 8b50ee86ae put create_media_object back
removed with ContextMessages by accident, should definitely not be
removed

Change-Id: Iea16aadb533afff47d9b5f61d8f81f46bfc99835
Reviewed-on: https://gerrit.instructure.com/5012
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-10 15:31:27 -06:00
Brian Palmer 6f65fa37f8 only allow api_key to replace authenticity_token if basic auth is used
allowing api_key to replace authenticity_token for normal cookie
sessions would open us up to a CSRF attack, by allowing a malicious user
to use the api_key without explicitly having the user credentials.

fixes #5162

Change-Id: Ia2604a6930d660dd04a8783fc983a3fe381ff48d
Reviewed-on: https://gerrit.instructure.com/5028
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-10 13:02:26 -06:00
Brian Palmer 1c5fb0de17 restore restful api route names that gradebook2 uses
Change-Id: I40c106ab7fa953ec201c03af9f194d83d9907d60
Reviewed-on: https://gerrit.instructure.com/4987
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-06 06:57:20 -06:00
Cody Cutrer 80907b4dd5 fixes #4983 conferences for groups
* Add conference_close route for group conferences
 * Pull *group* conferences, not the group's context's conferences
   when showing the groups' feed
 * Add the conferences tab (where appropriate) to the group sidebar,
   so the conferences controller won't refuse to work

Change-Id: I37bfb546c4bf8ad4078e4c9ca7a7292bb475af2c
Reviewed-on: https://gerrit.instructure.com/4954
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-08-05 14:31:01 -06:00
Cody Cutrer 16fef763ec put localization js bundles in a separate assets file
so developers can run rake i18n:generate_js without having a dirty assets.yml

Have to be magical about merging though two using erb in the real assets.yml.

Also split _core.js into _core_en.js (committed to repo) and everything else
in _core.js (not in repo), for the same reason.

Change-Id: I4749ee5818b9e7d4e1244c6e8295790bb1235e34
Reviewed-on: https://gerrit.instructure.com/4972
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-05 12:52:08 -06:00
Jacob Fugal 2d6e299627 Merge branch 'master' into 'dev/conversations'
Conflicts:
	app/views/context/roster.html.erb
	config/assets.yml
	config/locales/es.yml
	public/javascripts/instructure_helper.js

Change-Id: If38ea0164ad505a3f540446162d1d7898d11eec2
2011-08-05 09:55:58 -06:00
Cody Cutrer de8b88cf0e fix some encoding issues with spanish translation
Change-Id: I7c78af85b53bfde3deb85482713fcd78826129a3
Reviewed-on: https://gerrit.instructure.com/4958
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-04 16:54:13 -06:00
Brian Palmer a2e35e8e11 fix api support for sis ids in url with special chars, closes #5176
periods were being interpreted as the beginning of a file extension,
rather than part of the sis id. fixing this meant completely changing
our routing, unfortunately, since rails resourceful routing is very
oriented on numeric ids, with format extensions.

the .json extension is now optional for api requests, in api v2 we'll
drop it completely. there is the unfortunate edge case that a sis id
ending in ".json" can't be send through the v1 api -- except...

we also now support hex encoding sis ids in the api calls. this allows
arbitrary strings to be used. in theory this could just use uri
encoding, which is also "supported", but there are bugs in various
releases of apache and the rack/rails stack that make this impossible to
use with some characters, such as "." and "/".

the api documentation has been updated as well

Change-Id: Ifa4b529dffee0f30ef5384f94c64aa6e8f8f2542
Reviewed-on: https://gerrit.instructure.com/4940
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-08-04 16:25:21 -06:00
Brian Palmer ef286021fa enable español
Change-Id: I26697efb99b83fc8f1564b19804619f1a9d51006
Reviewed-on: https://gerrit.instructure.com/4930
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-03 17:14:30 -06:00
Ryan Shaw 8209a36844 new gradebook2 features
changes:
 * a little i18n work
 * show only a certain section
 * show attendance
 * include ungraded assigments in score
 * don't wait for first xhr to fire second
 * cool drop down menu thing

Change-Id: Ie93fd06e20aec399710e32441f8d35c686fbbaf2
Reviewed-on: https://gerrit.instructure.com/4868
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-08-03 14:51:56 -06:00
Brian Palmer 1e9e7dbeb2 api to retrieve a single course
This also solves the use case of requesting a course by sis id, and
getting the internal canvas id back.

Change-Id: Ie614310a3c5a2eed668e3787a2280a8ae9f89f9b
Reviewed-on: https://gerrit.instructure.com/4901
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-08-03 12:44:16 -06:00
Brian Whitmer bdca88a4fe improvements to teacher interactions report
- fixed the link on a teacher page in a course to show the report
  for that teacher for all students in the course
- added days since submitted for each ungraded assignment
- added sorting of columns
- added link to one-click to message a specific student. This link
  will only appear of the current user is a teacher in the course

Change-Id: Ic39ba72fd210411def178dc69ff35006abe96043
Reviewed-on: https://gerrit.instructure.com/4707
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-03 00:11:17 -06:00
tom metge 249b6540e9 add a configuration test utility for LDAP settings
a modal dialog is presented to the user that runs several tests:
connection, LDAP bind, LDAP search, and testing of arbitrary
LDAP credentials.

Change-Id: I7bf53fb856784598367e3481008b9a7be9526c62
Reviewed-on: https://gerrit.instructure.com/4485
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-08-02 16:07:18 -06:00
Jacob Fugal 8ccaabb7e2 finish tearing out ContextMessage
in addition:
 * User#move_to_user grabs conversations
 * renamed trimmed context_messages.{js,css} -> context_inbox
 * renamed some css classes in context/roster since it's no longer a
   form in hiding

Change-Id: I6559cdb8c9bf3123b10f9d2ddfa836f99299f8c7
Reviewed-on: https://gerrit.instructure.com/4881
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-31 16:48:34 -06:00
Jacob Fugal 0d86332f91 Conversations in the dashboard stream
and ContextMessages out

Change-Id: I70a17794a2054b865c719114e41537927e97dc6d
Reviewed-on: https://gerrit.instructure.com/4877
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-31 16:47:07 -06:00
Jacob Fugal 62c25dac5b remove ContextMessages from context/inbox
Change-Id: I128aca2442cff2773fe9f14ce77b0fe067bf02ac
Reviewed-on: https://gerrit.instructure.com/4852
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-31 15:41:38 -06:00
Jacob Fugal a0a014e65b ConversationsController#batch_pm
used by message_students dialog, creates one private conversation per
student.

Change-Id: Icd64986730e25a011cd15393e380a3d735dbe1fd
Reviewed-on: https://gerrit.instructure.com/4857
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-07-29 15:14:31 -06:00
Brian Palmer 821c648abd wrong key name in file_store.yml.example
Change-Id: I0aa0b568e79402ad9f4f07e249fda3248d72a9ae
Reviewed-on: https://gerrit.instructure.com/4854
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-29 12:52:24 -06:00
Jon Jensen a6b85efd4d new messaging ui
Change-Id: If666ce11de3582fc45b911e7c1b5f7386496a108
Reviewed-on: https://gerrit.instructure.com/4106
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2011-07-29 10:16:17 -06:00
Bracken Mosbacker b3167f4640 start discussion topic api
refs #4752

Change-Id: I54712c27ef1c496c2c92f7805240ca91405b2858
Reviewed-on: https://gerrit.instructure.com/4797
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-07-28 12:05:18 -06:00
Jon Jensen 25169e7523 latest es.yml translations (w/ some manual fixes)
also fixed an importer issue, and removed translated js files from
version control (we'll generate them as part of the deploy)

Change-Id: I10be3ab1f4567a1534774f514424fd9966982c62
Reviewed-on: https://gerrit.instructure.com/4686
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-26 13:28:00 -06:00
Cody Cutrer 3b2f4d132d re-work wiki sidebar fixes #3975
* infini-scroll images tab of wiki side bar
 * load file tree piecemeal in wiki_sidebar
 * load folder tree only if needed

Change-Id: Ib8d5cb567df8a2ee79935ffb3f8678a7ee5427fe
Reviewed-on: https://gerrit.instructure.com/4671
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-07-25 14:55:10 -06:00
Brian Palmer 353204e7a1 log context when using local rails buffered logger
This was already supported for Syslog, but not for the BufferedLogger
class. Also add an option to disable the context logging.

This also fixes a bug where the session logging was always using the
default session cookie name (_normandy_session), rather than the
configured one.

refs #5094

Change-Id: I4c8389f1051a70c25a92bfe018044cd15f45422b
Reviewed-on: https://gerrit.instructure.com/4795
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-25 13:25:18 -06:00
JT Olds d5c8be2ca0 allow for configuration of outgoing email name
Change-Id: I87587c291801f39697e8dd691d6be9b3b396b86b
Reviewed-on: https://gerrit.instructure.com/4746
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-07-21 13:33:16 -06:00
Brian Palmer 630200c32e support redis as well as memcache for a rails cache store
closes #4498

Change-Id: Icf29882d8c0d351574496ba0494c1d8c518a3e7f
Reviewed-on: https://gerrit.instructure.com/4580
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-07-20 14:59:03 -06:00
Jon Jensen bfd41381f0 Merge remote-tracking branch 'origin/master' into dev/conversations
Conflicts:
	app/models/user.rb

Change-Id: I0deccd885436ae570c423c7dbf4fb570e223671f
2011-07-20 10:06:34 -06:00
Jon Jensen 5e66286c14 locale detection and selection, refs #4994
Change-Id: I0f1e50d912ba7ac81b9ceb3ae95baaba3a12425b
Reviewed-on: https://gerrit.instructure.com/4661
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-07-20 09:24:55 -06:00
Brian Palmer 7054dd9926 don't require loading the whole rails stack to generate api docs
This works more seamlessly with our deploy process, and fixes
canvas:compile_assets which was now requiring a full rails environment
to be set up.

(also, it's faster)

Change-Id: I98eae23c9c75051815e70da99b32695c796c5c80
Reviewed-on: https://gerrit.instructure.com/4725
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-19 14:15:39 -06:00
Brian Palmer 65ed1dac46 implement oauth2 native app flow, closes #5029
Change-Id: Ieb6c7f10190775efb9a0c8adf6cd2928bca8af1c
Reviewed-on: https://gerrit.instructure.com/4683
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-07-18 22:27:36 -06:00
Brian Palmer 92feb2bcdb replace ActiveRecord::Base calls with subclass calls where it makes sense
This was already a small issue if the job queue was on a different
database driver than the main database, and it'll become more important
as more AR connections are introduced.

Change-Id: I204becadd32bb935df096e8c937a04bb6962f0b2
Reviewed-on: https://gerrit.instructure.com/4601
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-18 13:56:08 -06:00
Jon Jensen 0bb49eb8f0 include config file localizations in i18n:generate output
Change-Id: Icbc831a7b3158b685671db870ce201d83120eec4
Reviewed-on: https://gerrit.instructure.com/4624
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-07-14 14:35:07 -06:00
Cody Cutrer 69a10d4b5a optimize json creation and serialization
the biggie here is to dup options, so that :methods doesn't keep
compounding itself when converting a collection of objects to json

Change-Id: I501cf8c257c8fa2ffa7e15d1cf2a3fe2734c8512
Reviewed-on: https://gerrit.instructure.com/4666
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-07-14 10:46:08 -06:00
Jon Jensen f2f004188d first batch of es translations
also enabled en fallbacks (this is only needed for things that don't
have an explicit default, like localize calls)

includes auto-generated js translation files

Change-Id: If246a6a96b1e9f6934f84ff6e65e0372a60d247a
Reviewed-on: https://gerrit.instructure.com/4597
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-07-13 11:08:07 -06:00
JT Olds 98ffbbc83e allow enrollments through the UI with usernames
also adds enrollments in batches, instead of one at a time via ajax.

closes #4835

Change-Id: Ic2aac24db2c4d5fb4482901daf8627419c548e37
Reviewed-on: https://gerrit.instructure.com/4584
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-07-12 11:54:38 -06:00
JT Olds 45f0fbd370 renaming EmailList to UserList
Change-Id: I35d8f072ed19741baa8598e78813c00d0e54a28a
Reviewed-on: https://gerrit.instructure.com/4585
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2011-07-12 11:54:30 -06:00
Brian Palmer 934e165986 allow other translate arguments to before_label
Change-Id: I05b0276d754891e1860ba60c0ed17bd784242ebf
Reviewed-on: https://gerrit.instructure.com/4627
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-07-11 09:53:39 -06:00
Jon Jensen 268ed57a6f correctly scope before_label_wrapper
Change-Id: I438f7d66bad14fb3209e72f99f994b73a7b0293c
Reviewed-on: https://gerrit.instructure.com/4596
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-07 16:01:57 -06:00
Jon Jensen 831aa9fb0e fix label key prefixing
Change-Id: Id3410c0f728742c445a3f8e7020b0cbf41c1da96
Reviewed-on: https://gerrit.instructure.com/4595
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-07-07 16:01:36 -06:00
Brian Palmer 649f2a5908 remove our workaround for the rails cookie problem in tests
this is fixed in rails 2.3.11

Change-Id: Ie66083141689cecf06711771211550f1a25b0c08
Reviewed-on: https://gerrit.instructure.com/4583
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-07-07 08:20:10 -06:00
JT Olds 5c62e434ce summary messages i18n
Change-Id: Ib34600c22dda89e99a43c09af7438103332c11d0
Reviewed-on: https://gerrit.instructure.com/4472
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-07-06 10:52:21 -06:00
Brian Palmer 45a4266dd4 teacher activity / student interaction report, closes #4316
Change-Id: I116c9130c3af9a7c2891cf6387de7e2b361c8d4b
Reviewed-on: https://gerrit.instructure.com/4481
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-29 16:24:24 -06:00
Ryan Shaw 5456031ed6 create gradebook2
uses coffeescript, slickgrid, actual canvas APIs
reachable at /courses/x/gradebook2
does not include commenting or things external
to the grid like filtering and sorting options

Change-Id: I6967c2dbdd16f7ea4d8c1ad1995511d7c498226a
Reviewed-on: https://gerrit.instructure.com/4371
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-29 16:21:27 -06:00
Brian Palmer d8214780fb fix downloading content exports with local storage + safefiles
Change-Id: I867fbd6a2c99e44be7ada992618f8c508aa43590
Reviewed-on: https://gerrit.instructure.com/4346
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-24 08:30:54 -06:00
Brian Palmer bf86a21158 fix protected attr/dynamic finder error config in dev mode
Change-Id: I21cd93a3437b2885dd46cdc1e3c9753d7e9c3304
Reviewed-on: https://gerrit.instructure.com/4360
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-23 15:54:02 -06:00
Jon Jensen 8ef63a56cb add core en translations (date/time/number formats, etc.)
Change-Id: Id8d75238dd344813682ef34246160297c3458318
Reviewed-on: https://gerrit.instructure.com/4329
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-22 13:39:20 -06:00
Jon Jensen 8e772b108a Revert "jammit fu for i18n.js"
This reverts commit d14eacb828.

Change-Id: Id4735548c24cbfba2813b5a2e09876877616bef9
Reviewed-on: https://gerrit.instructure.com/4328
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-22 13:30:18 -06:00
Jon Jensen d14eacb828 jammit fu for i18n.js
this initializer does two things:

 1. it includes the core/default en translations for things like date/time
    formats
 2. it includes the corresponding localization file for each bundle (if
    present). these will be generated offline by an as-yet-unwritten
    js translation generator

Change-Id: If588cb287b027f3de62e8113dc8fa8977f41e830
Reviewed-on: https://gerrit.instructure.com/4244
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-21 14:18:20 -06:00
Bracken Mosbacker b5cbe21f16 i18n sub-accounts and allow dashes in i18n pluralize
Change-Id: I14cc535cfe0ce325a6ba4e98904490b4323c92db
Reviewed-on: https://gerrit.instructure.com/4318
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-21 13:24:02 -06:00
Zach Wily a99b176f8d make selenium tests use a random port
Change-Id: I2fcdb51143fc4a81702be281e64c0df6a6cb0633
Reviewed-on: https://gerrit.instructure.com/4302
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-21 12:04:06 -06:00
Jacob Fugal 09498d6aa8 make search box and drop down consistent in copy_course
* updated implementation of Course.manageable_by_user
 * added method User#manageable_courses
 * renamed some "courses" methods and routes to "manageable_courses" to
   reflect the reality of the query
 * changed population of @possible_courses in
   ContentImportsController#copy_course to use User#manageable_courses
   like UsersController#courses was (now #manageable_courses)
 * fixed the "no courses" condition in copy_course.html.erb to look at
   @possible_courses for consistency

Caveat: @possible_courses in #copy_course was previously explicit about
trying to pull in courses cross-listed against the sections of the
target course... but only if they were manageable by the user. That is
no longer explicit in the new implementation, but they should still be
included implicitly, as well as other courses manageable by the user
that wouldn't have been listed before; I believe this is an enhancement,
not a regression.

Fixes #4735.

Change-Id: I38cf3e0a1b2478ad32243a0bb0d73c796fc775e0
Reviewed-on: https://gerrit.instructure.com/4117
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-06-20 15:45:27 -06:00
Brian Palmer 0cc58830c2 i18n handle label_tag calls
Change-Id: I83081d9521621f2ec66d2184130ddc3415c0e9bb
Reviewed-on: https://gerrit.instructure.com/4291
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-20 13:12:55 -06:00
Jon Jensen c91d187650 fix some more i18n issues
Change-Id: Ib3e28b526336c5ae0781e38838bd40b39b710fe6
Reviewed-on: https://gerrit.instructure.com/4255
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-16 16:49:28 -06:00
Cody Cutrer 3ecdbd0251 i18n calendar
Also, keyboard shortcuts are borken, but that problem already existed prior
to this change.

Change-Id: I891ba4192f6a4a98613c89df10cd97b7cc762c18
Reviewed-on: https://gerrit.instructure.com/4240
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-06-16 15:02:23 -06:00
Brian Palmer 543b3d1b8b remove delayed_jobs controller, replaced by jobs controller
Change-Id: I114d305b7b72fed73373ba40dd01830f2411bb6b
Reviewed-on: https://gerrit.instructure.com/4202
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-06-16 09:08:14 -06:00
Brian Palmer 3065f0e3ba remove periodic job double-indirection
Now that that the block passed as a periodic jobs is already running as
a delayed job, it's pointless to just turn around and schedule another
delayed job inside the block.

Also make periodic jobs default to low priority and force max_attempts =
1.

Change-Id: Ib453df3cdecca2fcaddf70ee8d2ef731e7f1d65b
Reviewed-on: https://gerrit.instructure.com/4210
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-16 08:39:04 -06:00
Jon Jensen edcefd9299 remove sti and controller action scoping
also fixed a couple dup key issues and other weirdness

Change-Id: I48272a136783c95819de3863f05be4250a4a6102
Reviewed-on: https://gerrit.instructure.com/4223
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-16 08:25:51 -06:00
JT Olds c567ff64fe support running specs in parallel
Change-Id: I521adc994f5f2bd58099a89315468111435dbbf8
Reviewed-on: https://gerrit.instructure.com/4218
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-15 15:18:42 -06:00
Jon Jensen cd6407c7e3 info i18n
Change-Id: I69231d92fb6e8e58e6f848d7ee7d32ba41bdb55e
Reviewed-on: https://gerrit.instructure.com/4182
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-06-14 12:22:06 -06:00
Brian Whitmer 2c5c268982 add twitter to notification preferences
Twitter recently stopped offering whitelist
exceptions for things like direct messaging.  We are
trying to work around the limitations by having
a user direct message themselves instead of having
some global account user that direct messages everyone.

Also added a "short_host" method for HostUrl that
in the future we can use to generate short-ish links
to include in tweets.  For now the links are somewhat
short, at least.

refs #4045

Change-Id: Iad59b979b166d572827a8ce16d3f9fcdd57d512d
Reviewed-on: https://gerrit.instructure.com/2938
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-06-14 11:57:48 -06:00
JT Olds bc7a9050f1 make sure users and pseudonyms get added together
Change-Id: I912f39f09a6b59daea9ac04f158a0e94279159dc
Reviewed-on: https://gerrit.instructure.com/4183
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-06-14 10:46:54 -06:00
Cody Cutrer 6e9c3818e2 enhance wrappers
* to apply the same one multiple times
 * be safe with multiple wrappers that different only in the number
   of repetitions of the same character

Change-Id: I5d86bf265b530f6e400e076a735323851d40ed9d
Reviewed-on: https://gerrit.instructure.com/4187
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-14 10:37:17 -06:00
Brian Palmer 929bd2fa02 optimize delayed jobs failed jobs, strands, and held jobs, refs #4792
To simplify the queries done on jobs:
  * failed jobs now go in a separate table
  * jobs that go past their max_run_time don't immediately get re-run.
    instead a periodic job goes through every 5 minutes and unlocks
    expired jobs
  * strand performance is much improved
    * we filter out jobs that can't be run because of strand
      restrictions completely in the database query now
    * better indexes help with these queries and the sub-select

Change-Id: Ida494da2fcec409bff330b7676c9a6b9413b3a06
Reviewed-on: https://gerrit.instructure.com/4163
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-13 12:49:46 -06:00
Cody Cutrer 32777b7dbf make before_label accessible as both a class and instance method of ActiveRecord::Base
Change-Id: Ifabdf71b363a12c38e09d24392ff80439be9e3a9
Reviewed-on: https://gerrit.instructure.com/4159
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-13 09:02:05 -06:00
Jon Jensen b90efd5bab Merge remote-tracking branch 'origin/master' into dev/conversations
Change-Id: I583f201dbdcb6d01910f110fffaa36808d39b27f
2011-06-10 16:11:41 -06:00
Brian Palmer 5638a8264d apply before_label translation whenever a second argument is given
Not just if the first arg is a symbol.

Change-Id: Id94a21e939df5468417adaf4dc31c838f016a906
Reviewed-on: https://gerrit.instructure.com/4150
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-06-10 13:21:01 -06:00
Cody Cutrer 66b4cb787d Convenience method to_sentence(:or)
Change-Id: Ieaabdaab759adf0f444e8d73b00c67dbe503aa62
Reviewed-on: https://gerrit.instructure.com/4149
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-06-10 13:03:24 -06:00
JT Olds 9b31d0fb19 discussion topics i18n
Change-Id: If789a2abdcaac911f4ed8181b2a11eb023dd2666
Reviewed-on: https://gerrit.instructure.com/4121
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-09 16:29:22 -06:00
Brian Whitmer ebe1c46d0c concluded teachers should still have access to student grades, content
Concluded teachers should be able to see quiz statistics,
a read-only view of quizzes, student grades, discussions,
files (including download).  They should not be able to
change any grades, however.

fixes #4059

Change-Id: Ie44a29074ec27b9d0afb908b31f51b46b0e98728
Reviewed-on: https://gerrit.instructure.com/2783
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-06-09 16:08:45 -06:00
Jon Jensen 3bf52d9670 fixed a 1-count bug, and don't auto-pluralize multi-word default strings
Change-Id: I526084fe3920668d2b1f42b2e2c46a071b0237f7
Reviewed-on: https://gerrit.instructure.com/4145
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-09 16:00:29 -06:00
Cody Cutrer 2ba62b9aa4 Accounts string extraction
Change-Id: I42f1fe77dce59cfcb43f0b8ad2983c5cbe3f2adc
Reviewed-on: https://gerrit.instructure.com/4124
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-06-09 15:44:46 -06:00
Brian Palmer 152970749f html wrapper support in I18n calls
Change-Id: I927240fc4b69f6391e208062a7657ff0b6931f0d
Reviewed-on: https://gerrit.instructure.com/4139
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-06-09 13:35:25 -06:00
Zach Wily 819bfe1dc6 support a secondary ldap configuration for account authorization; fixes #4776
Adds the ability for admins to configure a second LDAP server that will be
queried after the primary, assuming the user could not be found on the
primary. This is a slight refactor towards a more flexible authorization
configs model. Changes include:

  * changed the authorization relationship on Account to has_many
  * for backwards compat with all the code that assumes one config, added
    a convenience method to Account
  * refactored the auth config editing screen to send multiple configs at a
    time
  * modified the pseudonym to iterate over all the auth configs (when using
    ldap), stopping at the first one that succeeds

Change-Id: I6bae474f542e8c7046f07d4ab2c27e7d6f64a1ce
Reviewed-on: https://gerrit.instructure.com/4108
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-08 23:06:29 -06:00
Jon Jensen c3ac6835a5 fix for STI scoping
Change-Id: I88d7c023cff5a0e75f51796b83f81a96a3eee3b3
Reviewed-on: https://gerrit.instructure.com/4086
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-06 15:03:28 -06:00
Jon Jensen 58a25bd462 preliminary i18n setup, closes #4124
* i18n key scoping for controller/model/js/etc.
 * inline English translation support
 * rdiscount gem for markdown'ed translations
 * html_safe interpolation tweaks
 * label helpers
 * crummy tweak to translate symbol keys
 * internationalized most of lib, and some plugins/messages
 * conference i18n (view/model/controller/js)

Change-Id: I42772b9e19a110efbe855dc83a681be49ec98df2
Reviewed-on: https://gerrit.instructure.com/4080
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-06 14:19:03 -06:00
Zach Wily f448077b8e fix syslog initializer
Change-Id: I20f15d683b4ee3bc01929ac525e9559b473fedc4
Reviewed-on: https://gerrit.instructure.com/4079
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-04 15:23:50 -06:00
Brian Palmer b96e67b843 Rails.env is not yet defined in the environment.rb initializer block
Change-Id: I07d3db61e2d5eb6465a2b585b45f6bad4924fb70
Reviewed-on: https://gerrit.instructure.com/4067
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-03 15:28:04 -06:00
JT Olds cda4807c1b syslog ident and facility configurable via yaml
Change-Id: Ib72f4f6a1eed7318a3465bd9e8b88cd0bebedac5
Reviewed-on: https://gerrit.instructure.com/4018
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-03 10:01:35 -06:00
JT Olds d0e697429e optionally log to syslog
Change-Id: I12e9be279026d58b80c241dcf9d4f598e917c63c
Reviewed-on: https://gerrit.instructure.com/3992
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-06-02 16:35:47 -06:00
Brian Palmer 0fbc37226c counts report error when new external status is added, fixes #4730
also limit the job to one attempt

Change-Id: I65bad8ae6e7aa79e4916d4f5f03ef67d2dc683de
Reviewed-on: https://gerrit.instructure.com/3980
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-06-02 09:29:01 -06:00
Brian Palmer 50c4687c84 oauth 2 requests via access tokens
Added support for oauth 2 API requests.  HTTP Basic
only works for Canvas-auth and LDAP accounts, but
oauth 2 will also work with SSO accounts.  Also added
ability for users to create access tokens from the
profile page.

Change-Id: I13581b4e77bfa77bf11dbb732900012dd1e50ede
Reviewed-on: https://gerrit.instructure.com/3775
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-06-02 09:15:11 -06:00
Brian Palmer 8564b1db63 optionally track completed job stats in redis
Right now this is just a data dump, pretty much.

Change-Id: I401cef17e2129556d99ca0a6547ae52712915650
Reviewed-on: https://gerrit.instructure.com/3970
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-06-01 10:58:37 -06:00
Brian Palmer c5eafaea56 fix another instance of job log file path changed, and log mailman to rails log
This still logs a bunch of annoying info-level messages once a minute,
but at least they go to the defined logger now instead of stdout

Change-Id: If5dfd32f22497d2e6031005a8467aab51d40859d
Reviewed-on: https://gerrit.instructure.com/3936
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-31 12:01:35 -06:00
Zach Wily 23360636f5 add confirmation to become_user_id operations; fixes #4689
Now when adding ?become_user_id=XXXX to a URL, the admin will be redirected to
a page where they confirm that they want to masquerade as that user. This is
to prevent people from being able to change who an admin is logged in as with
simple img links.

It also adds a "Stop Masquerading" link to the identity bar.

Thanks to Patrick Michaud for pointing this out. Fixed gh issue 22.

Change-Id: I196f9f1412022de371da7a8f4670bcd4a1c35653
Reviewed-on: https://gerrit.instructure.com/3904
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-05-27 14:31:46 -06:00
Jon Jensen d6e5502ac2 fix html escaping issues in the gradebook and elsewhere, fixes gh issues #18 and #21
Change-Id: Ie803a8b8b435e58f7062b616836f811549c84822
Reviewed-on: https://gerrit.instructure.com/3903
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-05-27 12:42:25 -06:00
Jon Jensen e44cfb2c90 long running web conferences, closes #4228
Change-Id: Ica373ebc48edf3575d49d49071bfa878b5b15d3f
Reviewed-on: https://gerrit.instructure.com/3791
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-05-26 09:56:38 -06:00
Brian Palmer d43f064a74 support secure (ssl-only) cookies, closes #4585
previous this was only supported for the main session cookie, not the
secondary psuedonym session cookie.

Change-Id: I4be70774baf49cfa1e3009ff6a83287c084a0e53
Reviewed-on: https://gerrit.instructure.com/3840
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-24 14:20:15 -06:00
Brian Palmer 6422260805 unconclude course in the ui, closes #3631
Change-Id: Ie99613aeda9c1cb1ebe3d343de39abf05d0ec534
Reviewed-on: https://gerrit.instructure.com/3811
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-05-24 11:52:05 -06:00
Cody Cutrer 55b17fb50a dropdown for quickly moving a student to a different section
fixes #4101

Change-Id: I56cfef5a7227da3b1aedf8eb7b7918b3e3ec4a78
Reviewed-on: https://gerrit.instructure.com/3802
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-05-23 16:33:27 -06:00
Jon Jensen 88331658fd direct-to-s3 quiz and course content imports, fixes #4356
Change-Id: I9b507b92af2ebc6e169f2e3e34f89fa71ac0bb1c
Reviewed-on: https://gerrit.instructure.com/3258
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-05-23 08:44:43 -06:00
Brian Whitmer 70e984bff6 grading standards improvements
- can attach a grading standard to a course
- interface for managing standards at the course
  and account level
- added final grade to gradebook page
- added final grade to student grades page
- added final grade to gradebook csv export

fixes #3868

Change-Id: I555b9f66b621d8967e893e50a671748267da9373
Reviewed-on: https://gerrit.instructure.com/3025
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-21 19:20:34 -06:00
Jon Jensen 7e9183b256 models and controllers for new messaging, refs #3977
Change-Id: Ida82491d0161f13516baf55625ccce71d1b4036c
2011-05-19 16:21:32 -06:00
Brian Palmer b66081c2e5 call user_content on fields returned via json to be displayed, refs #3669
Change-Id: If9476570c505534668f2933982ba9ce3abc60bef
Reviewed-on: https://gerrit.instructure.com/3709
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-19 15:47:06 -06:00
Brian Palmer d87c33d91d modify user_content strategy, fixes #3676
user_content will now work for any arbitrary RTE field, no matter if it
came from a column, a string nested three levels deep in a serialized
column, whatever.

let's call this technique "controlled XSS injection"

Change-Id: I56eed1f9b546ac7849dc60faa0f2b3801231131e
Reviewed-on: https://gerrit.instructure.com/3704
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-19 15:46:56 -06:00
Brian Palmer 6a77616865 allow disabling periodic jobs
Change-Id: I106957c66c6afa9a1239833dfc8ec517e488cb61
Reviewed-on: https://gerrit.instructure.com/3734
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-19 14:56:01 -06:00
Brian Palmer 68a1e6d29f Merge branch 'delayed_jobs'
Change-Id: I7a9f1eae3d6177e61e53a48ea5818203f82067bf
2011-05-19 13:02:58 -06:00
Brian Palmer 65c8c32b4e process sis batches using account-specific strands, closes #4415
Change-Id: I69b41689aef047f5302955c27e94c76ece0236f4
Reviewed-on: https://gerrit.instructure.com/3688
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-19 13:01:24 -06:00
Brian Palmer 0e0066faa9 add barista and coffeescript initializer
Change-Id: Ibd52c71f7a12d7adae4e3ec9322aebe7c300c19d
Reviewed-on: https://gerrit.instructure.com/3723
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-05-19 12:13:29 -06:00
Brian Palmer da2c6b922e improved periodic jobs support, refs #4226
periodic jobs are no longer run as a separate worker process, and will
be processed by all job nodes. now there's no longer a concept of a
"master" job node, all job nodes are equivalent.

Change-Id: I7110872c7895453adfea5401d15db504dd73a850
Reviewed-on: https://gerrit.instructure.com/3686
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-19 10:51:12 -06:00
Brian Palmer 8647791c72 configurable max jobs/max memory limits for job workers, refs #4226
Change-Id: Iccef0556a66e11becb002c9b96da7d2cdafae8f4
Reviewed-on: https://gerrit.instructure.com/3650
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-19 10:50:06 -06:00
Brian Palmer 26032f2046 new jobs admin area
and some work on delayed_jobs refactoring

refs #4226

Change-Id: I21a91a44368e77aef4a75e0d30cefe252a901691
Reviewed-on: https://gerrit.instructure.com/3640
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-19 10:49:37 -06:00
Zach Wily 9758cdca0c fix account-level outcomes; fixes #4604
Change-Id: I86537dd8a8604397fe7588155cc27ae0dc3fef07
Reviewed-on: https://gerrit.instructure.com/3685
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-17 08:08:15 -06:00
Brian Palmer 8d76be0b8c hiding stream items on the dashboard, closes #4387
This is permanent, if a stream item is updated it doesn't re-appear on
the dashboard. This is done by marking the stream item instance as
hidden, which means adding the hidden field to the two indexes.

Change-Id: Ifa544cef4ea2d46f4214e8317af4c9e3baed76eb
Reviewed-on: https://gerrit.instructure.com/3603
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-17 07:57:01 -06:00
Brian Palmer 3bea05103c delete old error reports periodically, refs #4487
Change-Id: I94e75d61eaff56509dee8f00d955f0063caf5b68
Reviewed-on: https://gerrit.instructure.com/3597
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-11 13:32:47 -06:00
Brian Palmer 4465b1fc7b create error report locally on javascript errors, refs #4487
Change-Id: I2cb09c7f7d9a5ffe9d5286da36da9ddbc999ed86
Reviewed-on: https://gerrit.instructure.com/3575
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-11 08:47:49 -06:00
Brian Whitmer 8dca8a0d19 update facebook integration to oauth 2
This should allow open source installs to now set up
their own Facebook apps if desired.  The facebooker
gem is no longer required and configuration now
happens in a plugin instead of a yml file.

fixes #4509

Change-Id: Iec76dc8c31f0ad0276e992319f368826baa4ccc5
Reviewed-on: https://gerrit.instructure.com/3545
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-10 16:18:23 -06:00
Brian Palmer a563cc2e98 submission web snapshots with local storage, fixes #4531
the attachment has its context set to the submission, which we don't
handle as a context anywhere currently. Rather than try to shoe-horn the
submission into a context role, we allow using the /files urls without
any context at all (we still check permissions on the attachment of
course). this fixes some safefiles issues as well.

Change-Id: Iec12b02f16f01f795f70a6f4ed8a152b7661e000
Reviewed-on: https://gerrit.instructure.com/3557
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-09 17:06:14 -06:00
Zach Wily 5a895d66c6 Merge branch 'dev/ssl'
Conflicts:
	app/controllers/files_controller.rb
	app/controllers/users_controller.rb
	app/views/files/show.html.erb
	config/environments/development.rb
	lib/kaltura/kaltura_client_v3.rb
	public/javascripts/full_files.js
	public/javascripts/instructure.js
	public/javascripts/media_comments.js
	public/javascripts/speed_grader.js
	public/javascripts/tool_inline.js
	vendor/plugins/ssl_requirement/lib/ssl_requirement.rb

Change-Id: I987cc015d43cffd4b6738030d893a27de7c434ba
2011-05-07 08:03:22 -06:00
Brian Palmer 4ae436f253 fix file upload selenium tests
there was hidden brokenness that i exposed in a recent change

Change-Id: I02712d099a662bba672a2f1cc340b90d6164f177
Reviewed-on: https://gerrit.instructure.com/3529
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-06 15:03:56 -06:00
Brian Palmer 6bec0722ad thumbnail support when using local storage, closes #4500
Change-Id: Ib11b2513e64179637ef3cce4f2bc4eb0b9c4cd68
Reviewed-on: https://gerrit.instructure.com/3492
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-05-06 08:11:18 -06:00
Jon Jensen 8b78ba02d5 let students see outcome details, closes #4469
Change-Id: Ic1ae04eaabaf1077086c22a153da2bf31c395c35
Reviewed-on: https://gerrit.instructure.com/3472
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-05-04 11:02:36 -06:00
JT Olds 4cc32f8173 serialize sis batch processing
Change-Id: Ic611ca40a5ca4906de1133dfd3d61ef55fa132f7
Reviewed-on: https://gerrit.instructure.com/3439
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-03 11:47:06 -06:00
Jon Jensen 6d226272df cast columns in dynamic finders, warn on all-nil argument lists
in production mode we now cast to the appropriate type and issue a warning
if it can't be cleanly cast (e.g. '' -> 0). if all arguments are nil (or
empty arrays, e.g. find_by_id([])) and we aren't in a scope, issue a
warning (sometimes we really do want nil when we're in a scope, e.g. line
216 of app/models/folder/rb).

in development/test mode, we now raise errors in the two warning scenarios
above (though that is configurable).

fixed several places in the code where specs failed due to the change, or
where inputs to dynamic finders looked problematic

Change-Id: Ifea851cb14d3e89b6df08ade8e83934579678f8b
Reviewed-on: https://gerrit.instructure.com/3434
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-05-03 11:06:04 -06:00
Cody Cutrer 61ebf0e808 sis grade publishing ui
Change-Id: If6c05e2aadfd40c25937651e36f51acf5e99e184
Reviewed-on: https://gerrit.instructure.com/2937
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-04-27 16:37:15 -06:00
Brian Whitmer 3beb896b50 interface for manual crosslisting
Sections can be manually cross-listed into another
course.  Teachers/admins can use the search tool to
find a course, or manually enter it's id/sis_id
to select it as a destination.  Cross-listed sections
and also be manually un-cross-listed.

fixes #3759

Change-Id: I65ac76c80e7cf2703ba3c5d4c63801b6b7a348a1
Reviewed-on: https://gerrit.instructure.com/3173
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-04-25 16:25:05 -06:00
Ryan Shaw 0d4e3a9de8 enable google previews of attachments; fixes: #4060
this makes it so devices without flash (eg: iThings) can
view documents inline.

Includes a few other changes:
 * add UI to account/settings page to enable/disable 3rd
   party services (i.e. google docs previews, twitter, linkedIn)
   -- you can disable these previews there.
 * use DRYer API for embedding scribd docs this also makes
   them ready if/when we switch to ssl
 * open documents on show_preview page in a modal window
   instead of inline in the list (which would grow a
   little wider every time you mouse over it) fixes #4004
 * use all available screen real-estate on files#show page
   (before it would only use 400px of height).
   fixes #4007

Change-Id: I0bb4b10c75c2217f35e0361bef61ca0b602533a9
Reviewed-on: https://gerrit.instructure.com/2662
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-04-22 10:17:13 -06:00
Brian Palmer e66b32bcca update jquery to 1.5.2
Change-Id: I9489f301b66048c02fa93ed0cd4919793cf0239b
Reviewed-on: https://gerrit.instructure.com/2988
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2011-04-22 09:08:59 -06:00
Ryan Shaw d898232659 add a rake canvas:check_syntax task to check for js errors
you can pass quick=true to to disable style guideline
checks and only check for syntax errors.

this will also spit out javascript style warnings using
jshint and gjslint.  I have not nailed down exactly
which things we want to warn about, we can talk about
it and come to a consensus on what we care about. 
I do not necessarily think that we should
use both jshint and gjslint, I just put them both
in to show what kind of things they can check for.
in order to use gjslint, you need to install
it from http://code.google.com/closure/utilities/

Make your .git/hooks/pre-commit look like:
rake canvas:check_syntax:changed quick=true
to not allow committing js with syntax errors

Change-Id: Icfc21c2d30f60dc2fafef80d5c93432b6309afdb
Reviewed-on: https://gerrit.instructure.com/2908
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-04-20 08:07:30 -06:00
JT Olds 793cd72434 don't monkey patch attachment_fu when we have so many local mods already
Change-Id: I0dde24272381f3ae1e8ba321ec31f8822731d5c5
Reviewed-on: https://gerrit.instructure.com/3066
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-04-19 10:30:56 -06:00
Brian Palmer b8dabef28c allow configuring some dj worker options in the yml
It'd be nice to have a UI for this at some point

Change-Id: I74029e709a69705eba7e16f50a7fb6d4030259d1
Reviewed-on: https://gerrit.instructure.com/3138
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-04-18 16:16:21 -06:00
Brian Palmer 27adf9b16a Merge branch 'ims_cc'
Change-Id: I7fc8590ab50d9ec062fd3cf609aa11f034ed582f
2011-04-18 10:20:36 -06:00
Brian Palmer 52b1c9dc3c fix some loading issues in dev mode with content import stuff
Change-Id: I4c675d90b443174eb0b550ad84d56c5960b096c2
Reviewed-on: https://gerrit.instructure.com/3131
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-18 10:17:41 -06:00
Bracken Mosbacker bb8bc24cd7 start canvas cartridge importing
started the framework for importing the canvas flavored
common cartridge packages. There is also some minor
refactoring of the export step to allow for easy testing
of both exporting and importing

course settings, assignment groups, and external tools
are imported and tested with this commit

refs #3396

Change-Id: I4e8a2ebfc9df7e31f8859b189fea23f9584d7ef4
Reviewed-on: https://gerrit.instructure.com/3042
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-18 08:09:16 -06:00
Zach Wily ce08151b83 add the ability to set options on AR.find_cached methods
Change-Id: Ib0b0aebc579695f9ce1b65008d9cbc5cd75546c4
Reviewed-on: https://gerrit.instructure.com/3123
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-15 23:15:01 -06:00
Bracken Mosbacker fc4cc9ff46 added ui for course exports
refs #3396

Change-Id: I07c30535e042dada7c7d4174a7bb8148b7f6b1fb
Reviewed-on: https://gerrit.instructure.com/3039
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-15 10:27:14 -06:00
Brian Palmer 9479a49c56 fix local storage with StringIO attachment uploads
Change-Id: Ie74fe8304ef9a73dd24ccd2c303ade2646fe7828
Reviewed-on: https://gerrit.instructure.com/3080
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-04-14 13:14:28 -06:00
JT Olds fae961cbe4 fixing PhusionPassenger::Utils::RewindableInput issue
Change-Id: Ib7dda12eddce54aa6352f621ed12020bde4a9e17
Reviewed-on: https://gerrit.instructure.com/3063
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-13 15:29:38 -06:00
Bracken Mosbacker 5ee8313865 added index page for external course migrations
closes #4230

Change-Id: Ibc550f1fc2b5fb5a0498982d676e98848530cab2
Reviewed-on: https://gerrit.instructure.com/3013
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-11 09:14:14 -06:00
JT Olds 40cff6f0d5 sis import api
Change-Id: Ica7fa02758e5e7ad32c878951aff8b115685ac82
Reviewed-on: https://gerrit.instructure.com/2960
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-08 15:45:57 -06:00
Brian Palmer 902cf8cc7c remove rack bug patch, it's been fixed in rack 1.1.2
Change-Id: I2bb16df697738a00fde6fa6bb61f79e72fc4d5d3
Reviewed-on: https://gerrit.instructure.com/3001
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-04-08 15:45:24 -06:00
Brian Palmer 37b6049934 api call for getting course sections, optionally with students
refs #4156

Change-Id: I8d7da2073b6063e14727c7faa6ba90e1809efa81
Reviewed-on: https://gerrit.instructure.com/3004
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-08 14:50:54 -06:00
Brian Palmer b3e8d3b50a fix the mass assignment error raising option
Change-Id: Idc527a3d845f912fcbef56d336b5326e30c7964a
Reviewed-on: https://gerrit.instructure.com/2993
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-07 16:00:55 -06:00
Brian Palmer 3cf394644e api for retrieving submissions by student, refs #4156
Change-Id: Iffa4527ff11fcbb0ca798b1bf3c7572826648174
Reviewed-on: https://gerrit.instructure.com/2983
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-07 14:12:26 -06:00
Brian Whitmer 44403d1c7e send kaltura requests through canvas
This solves a few problems.

- will make it easier to support HTML5 video playback
  for systems that don't handle flash
- first step toward making it possible for canvas
  installs to migrate from one kaltura instance to
  another by making a place for us to put some
  additional logic if necessary
- third parties getting data from us are no longer
  forced to find and handle media comments in order
  for them to work, since this adds a fallback url

refs #4083

Change-Id: I729aaf88378a30bda2126bfca2b2a48ec14bb386
Reviewed-on: https://gerrit.instructure.com/2901
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-07 12:52:22 -06:00
Cody Cutrer 63bad32df0 Handle incoming mails. Closes #4016.
* Uses Mailman gem
 * Can be configured for POP3, Maildir, or stdin (push from mailserver)
 * Maildir can be chained with fetchmail or similar to support IMAP
 * Can be run as part of the job server, or as a separate process

Change-Id: I000000000000000000000000000001
Reviewed-on: https://gerrit.instructure.com/2971
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-04-07 10:46:11 -06:00
Jon Jensen f3cee78b01 encryption_key validation, closes #4202
store a hash of the key in the database when it's first set up, and
check it every subsequent time we load the environment, aborting if it
doesn't match. also provide a way to overwrite the hash in the db (via
env var and/or rake task)

Change-Id: I2a9f75cc850698ca247f39702a703c486fb7413d
Reviewed-on: https://gerrit.instructure.com/2972
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-04-06 14:54:48 -06:00
Brian Whitmer 339f591334 UI for viewing details of a specific error report
Change-Id: Ib861649aa3baa9afee503d88137939872289eeec
Reviewed-on: https://gerrit.instructure.com/2966
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-04-06 11:51:01 -06:00
Brian Whitmer 34419410e6 quiz statistics revamp
Quiz statistics weren't supported for all question
types.  Also added a csv export of the raw quiz
results data, with an attempt to make the data
meaningful even for complex question types.

fixes #4134

Change-Id: I55d1a21eed1cd6813fe0500190a1c0cc5fc038ab
Reviewed-on: https://gerrit.instructure.com/2850
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-04-05 17:06:35 -06:00
Jon Jensen c6b7a45ad8 string validations/fixes, closes #4154. wiki fixes, closes #3973, #4168
proactively found and fixed varchar(255)'s where we relied on mysql's
silent truncation. added validations for places where we want to
enforce these limits

made it so you can reuse titles/urls of deleted wiki pages, and added
validations to ensure sane urls and prevent orphaned pages

Change-Id: I15bcc0c7a751efba1a0f7548e9989ad2ea1792bf
Reviewed-on: https://gerrit.instructure.com/2935
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-04-05 11:22:50 -06:00
Brian Palmer 4f4d041f74 add slickgrid 1.4.3 and assets sections, refs #4104
Change-Id: I923debb4858985b39b747c63a6dfc60f35c9a079
Reviewed-on: https://gerrit.instructure.com/2944
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-04-04 15:25:59 -06:00
Brian Palmer c47a8fc065 enqueue delayed notifications at low priority
Change-Id: Ic0c13244a049cd949712e57330d76f5fd058c717
Reviewed-on: https://gerrit.instructure.com/2897
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-31 08:03:02 -06:00
JT Olds e17e8fcf79 allowing multiple environment configuration extension files
Change-Id: I669e930cdf54cc58bd10c6e67ebda983643d0619
Reviewed-on: https://gerrit.instructure.com/2892
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-03-30 14:43:46 -06:00
Brian Whitmer b7f1d5ae18 align question banks to outcomes
Question banks can be aligned to outcomes that
are part of the same context.  Whenever students
take a quiz with questions from the bank they'll
get evaluated for the linked outcomes based on
the points they got for each bank question.

Also fixed a bug which may or may not have existed
before this commit that unexpectedly deleted quiz
submissions when a user tried to re-take a quiz.

refs #3317

Change-Id: I744af3915672a5e260b078503e0bc648c238eca9
Reviewed-on: https://gerrit.instructure.com/2641
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-03-25 15:39:56 -06:00
Brian Palmer 78eeabeb21 support writing page views to a redis queue, closes #4052
A background periodic process pulls them off the queue, consolidates
updates, and writes them to the database.

Change-Id: I854b57932e3f6e311ce8c67971ed5208034ca6a5
Reviewed-on: https://gerrit.instructure.com/2803
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-25 10:03:57 -06:00
Brian Whitmer d20eede2df move default error reporting to a plugin
Accounts can specify a destination email address or URL
endpoint that will receive messages as error reports are
created if the feedback button is enabled.  This could
be configured before, but it wasn't straightforward
how to go about doing it.

fixes #3410

Change-Id: Ibd28ebf14c876fb216b14d3d56e622fc009aa2ba
Reviewed-on: https://gerrit.instructure.com/2739
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-03-24 13:21:31 -06:00
Ryan Shaw 9a4962751b add drag-to-desktop, speech, and shake-for-next to speedgrader
each of these will only be enabled if the browser
supports it, if not no problem.

Change-Id: Ie481737121d515a0a5d7c89aa8d4e89e78170901
Reviewed-on: https://gerrit.instructure.com/2788
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-24 09:41:36 -06:00
Brian Palmer 45f54e35ac update our preinitializer.rb
this'll let you run script/console and such without having to cd to the
rails root dir first.

Change-Id: Ic2ff10652afc92ac1e5dc4ebfef97a9a27059e29
Reviewed-on: https://gerrit.instructure.com/2790
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-24 09:39:15 -06:00
Brian Whitmer 9d131ea836 basic lti support
- external tools can be added on the course/account
  settings page
- external tools can be linked to from within modules
- clicking a tool in a module will load a new page
  with the tool embedded in an iframe
- see context_external_tools for standard procedures
  on retrieving settings for a specific link

fixes #4013

Change-Id: I8aa1934f8deac9af26d74036162b34fd1c4242e1
Reviewed-on: https://gerrit.instructure.com/2601
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-03-23 16:58:11 -06:00
Brian Palmer 65e402b1f9 support redis for session store, refs #4051
Change-Id: I8e846b3ce4b760606bff5586c8a94777f1cb93b3
Reviewed-on: https://gerrit.instructure.com/2757
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-23 13:25:04 -06:00
Jon Jensen ef72d6fde4 Merge branch 'dev/postgres' into master
Conflicts:
	config/initializers/active_record.rb

Change-Id: I625080d12e07122351e22d15b0864572c2ea09c5
2011-03-23 10:56:46 -06:00
Jon Jensen 63d09992d4 assignments.needs_grading_count counter to speed things up, closes #3945
Change-Id: I3748a7e0551e49720d06be302df29a8e33528007
Reviewed-on: https://gerrit.instructure.com/2573
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-03-23 10:36:15 -06:00
Jon Jensen f745f40073 Merge branch 'master' into dev/postgres
Conflicts:
	app/models/user.rb
	config/initializers/active_record.rb

Change-Id: Idc3b52dad873146efbb9268ecac28cac840f115e
2011-03-22 16:23:04 -06:00
Jon Jensen c86958d537 fix for broken find_or_create_by_ in rails 2.3.11
Change-Id: Ifa670f3269444b3fa9ddda0f264937786f998d61
Reviewed-on: https://gerrit.instructure.com/2746
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-03-22 15:52:46 -06:00
Brian Palmer ac5ad3f7a1 add infrastructure for supporting lockdown browser plugins, refs #3129
Change-Id: Ib9e9129bef7f5a8efe4a55e2fc85422469b632dc
Reviewed-on: https://gerrit.instructure.com/2745
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-22 14:51:01 -06:00
Brian Palmer 9ae3d0779f Merge dev/respondus-soap-api
Change-Id: I5f06a9175bd1c7b203ac4657bdf598a289dc55ea
2011-03-22 08:49:02 -06:00
Brian Whitmer e1a20125f9 lazy load rubric editor/viewer for topics/quizzes
this adds rubric configuration for forum assignments
and graded quizzes

refs #3317

Change-Id: Ide6f95a934730c6742fed0a2dff98462b1fbc263
Reviewed-on: https://gerrit.instructure.com/2540
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2011-03-16 11:38:31 -06:00
Brian Whitmer 93ab982243 make rubric on discussion topics page editable
refs #3317

Change-Id: If565b7632faa25d4a5b470c134540e53229f98c5
Reviewed-on: https://gerrit.instructure.com/2539
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2011-03-16 11:38:24 -06:00
Brian Palmer cdd7bee68e make the root "/" url dashboard, rather than login
This avoids a slew of redirects when a logged-in user hits "/". I've
added a 301 redirect from /dashboard to / for backwards compatibility.

If they're not logged in, they'll get redirected to /login. So the
visible behavior stays the same, it'll just be snappier for already
logged in users.

Change-Id: I1074d3e1f61033c9081b77cc2441211624ee2ec2
Reviewed-on: https://gerrit.instructure.com/2656
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-03-15 15:19:14 -06:00
Zach Wily 4295e88c28 include timestamps in pageview csv output; fixes #4048
Also removed an unused (and non-functional) Course#to_csv method.

Change-Id: Idd97a4a1d4edfa9407145f374c6b24443e1bf70c
Reviewed-on: https://gerrit.instructure.com/2632
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-03-15 07:23:37 -06:00
Brian Palmer 3612932e1b clean up session expiry support, refs #4051
Moved expire_after into the session options, so it'll work for memcache
session store too. And only run the periodic job to clean out AR
sessions if we're using AR sessions.

I also removed the created_at condition -- it was kind of redundant
anyway.

Change-Id: Ic2dc1d90d08c20851553c8eeaa814c001e76145d
Reviewed-on: https://gerrit.instructure.com/2635
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-03-14 16:48:34 -06:00
Brian Palmer a71ae89589 support for specifying the session store in config/session_store.yml
Change-Id: Id3e66e97d7898ea60a94e47850da17ad991cdd19
Reviewed-on: https://gerrit.instructure.com/2630
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-03-14 14:54:43 -06:00
Jon Jensen 4ea607cea4 postgres support and misc bugfixes, fixes #3574, #3943
Change-Id: I16aa188175a588b02dd6460baa83daae805aec9f
Reviewed-on: https://gerrit.instructure.com/2474
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-03-11 18:01:02 -07:00
Brian Palmer 1cb74645c5 move account loading into the middleware
This will allow things outside of controller actions, like the soap
endpoint, to use this information and ensure that account-specific
request settings are set properly.

refs #3760

Change-Id: I85284d42b3206ff362c4aee6a998737ab89fc4b7
Reviewed-on: https://gerrit.instructure.com/2579
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-03-10 14:41:24 -07:00
Jon Jensen ec51f1dfe2 policy/signature auth for local uploads instead of session cookie fu, refs #3762
Change-Id: I64c6446c36c253235b86ba9edfc411a20c2812fc
Reviewed-on: https://gerrit.instructure.com/2546
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-09 12:11:34 -07:00
Zach Wily c4d2ea53a2 remove ssl_requirement; refs #3761
Change-Id: If8b11df39ea3b72f743d67a373473c63dc4b9d21
Reviewed-on: https://gerrit.instructure.com/2538
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-03-08 15:14:15 -07:00
Brian Palmer ba20f27352 optimize get_all_pertinent_contexts, especially for /calendar
By scoping the finds to the user, we can avoid a lot of grants_right
lookups and the associated db queries. This is especially helpful for
users who belong to a lot of groups or courses.

Change-Id: I31e22ecddf9456734d6c1297d776a8353e43a526
Reviewed-on: https://gerrit.instructure.com/2486
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-03-01 14:45:04 -07:00
Jon Jensen 86b062bf61 wimba integration, fixes #2989
added wimba web conferencing support, moved dimdim config into plugin
settings, fixed a few web conferencing ui issues

Change-Id: I6b36b0e594a9f296d14cd35bec02186478bcbd13
Reviewed-on: https://gerrit.instructure.com/2343
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-02-25 14:35:14 -07:00
Brian Palmer 8868162722 set HostUrl email config options on each request in dev mode
refs #3880

Change-Id: If5647283b2018c457ac77fb61320eb384423806e
Reviewed-on: https://gerrit.instructure.com/2410
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-02-23 14:02:43 -07:00
Brian Palmer 17b89a1751 add support for using sendmail for outgoing mail, closes #3880
This involved some refactoring, since we were using
ActionMailer::Base.smtp_settings[:domain] for generating "From"
addresses.

Change-Id: I6cac6d48971d396a56e07314e042b63a0081a4b6
Reviewed-on: https://gerrit.instructure.com/2398
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-02-23 08:41:50 -07:00
Brian Palmer 250d846d66 more selenium config options, and run the web server in-process
Change-Id: I08b31b89951ebc9328836ee75c4a943ab8d4010d
Reviewed-on: https://gerrit.instructure.com/2358
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-02-22 10:37:29 -07:00
Brian Whitmer 0b6e4da151 kaltura pluginified
round one in moving all the yml files to the plugins system instead

Change-Id: Id255c15d14d27bce232606ece6bd00eb7e094749
Reviewed-on: https://gerrit.instructure.com/2339
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-02-21 12:32:43 -07:00
Brian Whitmer 47a1fdcf5d make quiz pages more efficient
On large quizzes there were problems both while
taking and editing the quiz because of all the DOM
elements.  Part of the solution was using more event
delegation, and part was rendering smaller
partials when editing quizzes with lots of questions,
and then loading the full details of only the
questions that the user wants to edit/view.

fixes #3771
fixes #3817

Change-Id: I73aabe79323c1879d7fc8985d1709751271730f2
Reviewed-on: https://gerrit.instructure.com/2290
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-02-17 15:48:06 -07:00
Brian Whitmer 7b840846bc clean up observer linking
observers can now be linked from either the course
details page or the user details page inside a course.
Fixed some bugs in this and made the code a bit
cleaner.

refs #3315

Change-Id: I004bc11d823fffcc76ab5b74ee235979248cae4d
Reviewed-on: https://gerrit.instructure.com/2263
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2011-02-17 13:15:32 -07:00
Brian Whitmer 629805db3c recaptcha plugin
also some UI fixes for the plugin page

Change-Id: I161c458756c20e034c29d4515801fd9f6427aa53
Reviewed-on: https://gerrit.instructure.com/2093
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2011-02-17 13:00:19 -07:00
Brian Whitmer 23404fe1c1 account-level notifications
account admins can create "Alerts" from the account
settings page that show up as sticky messages on the
user dashboards.  The alerts stay until the end_at
date, or until the user clicks the "close" link.  If
you add an alert to the site_admin account then it's
considered a global alert and will go to all root
accounts.

fixes #3738

Change-Id: I47e6eaf717145af24d847d4387e0ad5c36800094
Reviewed-on: https://gerrit.instructure.com/2293
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-02-16 21:34:05 -07:00
Brian Whitmer 2f3f70b339 better flow for updating plugin settings
also added option for plugins to provide validation on
their settings page.  I need this for some of the
more complex settings we'll have to put together
as we move stuff from yml files to settings.

Change-Id: I78e6e3cd423e7ef7e15eafae86db8337f605be3a
Reviewed-on: https://gerrit.instructure.com/2247
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-02-16 12:30:18 -07:00
Ryan Shaw 96b0b820eb style the "File Uploads For" iframe and handle swf's
2 things:

1. styled the file uploads for: thing so that it
is not so ugly.

2. if anything in the file list is a swf, when
they click it embed it inline with wmode: opaque
so that it doesn't appear on to of everything
(like the students dropdown in the speedGrader)

Change-Id: Ifcc1044d5256269f1f8b5549f1fb51fde088dba8
fixes: #3497 and zendesk #4562
Reviewed-on: https://gerrit.instructure.com/2192
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-02-15 17:04:41 -07:00
JT Olds 3c4685a84f removing jammit references to deleted js files
Change-Id: I59e174d4cc8c202a682482ab61a8a34b5e76e17c
Reviewed-on: https://gerrit.instructure.com/2274
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-02-15 10:04:05 -07:00
Brian Whitmer 15f6d0e1b8 ip filtering for quizzes
Teachers can specify an IP filter for a quiz, which
means students are only allowed to take the quiz
when their current computer's IP address matches
the specified filter.  The initial request to start
taking the quiz and any subsequent requests to
backup or submit the quiz attempt must all come
from a valid IP address.

Admins can pre-define named filters
so that teachers don't have to manually enter
filters all the time.  They can instead find them
from a provided list.

Change-Id: I59b6d8ddd31409fc9bd150ed695935ad2f458f86
Reviewed-on: https://gerrit.instructure.com/2167
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-02-11 22:16:47 -07:00
Brian Whitmer 89f5934bae quiz moderation
- added a moderation link on the quiz page
- moderators can see current quiz results for students
- moderators can add time to a current quiz attempt
- moderators can manually unlock a quiz for a student,
  which means the student can take the quiz even if
  it's locked for everyone else
- moderators can give a student extra time for every
  subsequent attempt of a quiz
- moderators can give a student extra attempts on a quiz
- moderators can also update these settings for multiple
  students at the same time

Change-Id: I31c34097fc6e19d8c6e377a6059568e591ffbab8
Reviewed-on: https://gerrit.instructure.com/2166
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-02-11 22:08:42 -07:00
JT Olds a1698d6009 flash s3 uploading
Change-Id: I479dc752d707ef6b52f7efb5e4e43514c2dbe15e
Reviewed-on: https://gerrit.instructure.com/2098
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-02-11 10:50:07 -07:00
JT Olds ba735d41b6 direct-to-s3 server side changes
Change-Id: Ie7b415b84f403c98d82f0e67212ae2e7b051b67d
Reviewed-on: https://gerrit.instructure.com/2096
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-02-11 10:49:47 -07:00
Brian Palmer e693c6ebba make the "remember me" cookie httponly, fixes #3763
Change-Id: I1d7a0eab74c23dbdb4dfdca186b73009dc6aeb6d
Reviewed-on: https://gerrit.instructure.com/2230
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-02-10 10:05:06 -07:00
Brian Palmer e988de9906 remove old stream items with a periodic job, refs #3647
Change-Id: I4d66747016f5ce13d02ea413e362153633f0362a
Reviewed-on: https://gerrit.instructure.com/2228
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-02-10 09:52:38 -07:00
Zach Wily a5b7292710 upgrade to rails 2.3.11
Change-Id: I7043e9c4f4679277c23558da4c3d57d6dc142093
Reviewed-on: https://gerrit.instructure.com/2218
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-02-09 09:21:27 -07:00
JT Olds b1947bab40 fixing md5-matching local storage.
Change-Id: I33e13ec9dbcec50aead18771e1956edcd2f3b8fe
Reviewed-on: https://gerrit.instructure.com/2168
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-02-08 15:25:29 -07:00
Bracken Mosbacker 11f5e44e49 allow migrations to work across job servers
migrations were previously limited to being on the same
job server, now the exported data is uploaded back to
canvas and downloaded again for the importing step

closes #3519

Change-Id: I24deaf4bc1811c4b66b1a2cf79f311ffc1fa9906
Reviewed-on: https://gerrit.instructure.com/2178
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-02-07 15:07:49 -07:00
Brian Whitmer 00124e9566 publish multiple quizzes at the same time
When we import quizzes from another system we leave
them all unpublished so the teacher can review
the import results before publishing.  This adds
a "Publish Multiple Quizzes" button that will,
well, publish multiple quizzes -- at the same time.

fixes #3636

Change-Id: I9b762da0e938a0b2e1986e3bdb9a216dd5bc7142
Reviewed-on: https://gerrit.instructure.com/2175
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
2011-02-07 15:00:36 -07:00
Bracken Mosbacker a44c9acb27 external migration data will be deleted once imported
refs #3519

Change-Id: I2ecd672365f696f3467414d429a15151b181fc50
Reviewed-on: https://gerrit.instructure.com/2177
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
2011-02-07 14:42:50 -07:00
unknown bafc2ed37d get rid of newrelic config file
Change-Id: I4c934463035c6bcb1e992240c684eb487367c892
Reviewed-on: https://gerrit.instructure.com/2102
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
2011-02-02 15:22:45 -07:00
Brian Whitmer 8b8173dcc9 Initial commit.
closes #6988138
2011-01-31 18:57:29 -07:00