Commit Graph

110 Commits

Author SHA1 Message Date
Cody Cutrer acb7ee93ba move Delayed::Job priorities into the plugin
test plan: n/a

Change-Id: Ie00daf98dd13293cc4d6b80953175f3f28489066
Reviewed-on: https://gerrit.instructure.com/7499
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-12-15 16:18:16 -07:00
Brian Palmer cc26d1e0fe don't return description of locked assignments in the API
fixes #6510

Most of this is a refactor so that all API JSON generation goes through
an api_json method, in order to standardize stuff like permissions and
:include_root. The existing specs verify that this doesn't inadvertently
change any existing responses -- except the discussion topics responses,
which were returning the :permissions array in the json unintentionally.

The refactor fixes the locked assignment response as a side effect.

Change-Id: I287b366fe05ef6116f713fc52075aff93d5e87b6
Reviewed-on: https://gerrit.instructure.com/7262
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-12-09 11:15:33 -07:00
Jon Jensen 8c3a8d9f30 ERB::Util.h speedup
Change-Id: Ia789b46b69c7f2e85fe1a2c250188cdbdb415033
Reviewed-on: https://gerrit.instructure.com/7284
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-12-06 10:03:21 -07:00
JT Olds b7ff643c71 moving delayed job message sending extensions into DJ plugin
test plan:
 * don't start delayed jobs
 * go to your local jobs page: http://localhost:3000/jobs
 * open script/console and type: "now or later".send_now_or_later :later, :to_s
 * refresh the "Jobs List" and see if a String#to_s job appeared
 * start DJ and refresh to make sure the job was run

Change-Id: Iab997a4fcb252b481774309194dc6a0e937ecf4a
Reviewed-on: https://gerrit.instructure.com/7194
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-12-02 14:22:27 -07:00
Cody Cutrer 23d0a6d8c9 drop sticky_xlists from course_sections
test plan: n/a

Change-Id: I246f5f9bcd955f5f2034fd8c20402e6fa1fea792
Reviewed-on: https://gerrit.instructure.com/7170
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-11-28 14:58:08 -07:00
Cody Cutrer 6caf502bb8 drop SisCrossListedSection
it's ancient cruft

test plan: n/a

Change-Id: I20912454e9b35be4a292efff33a5fe2913f0bd09
Reviewed-on: https://gerrit.instructure.com/7169
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-11-28 14:27:10 -07:00
Jon Jensen f613cf44ac postgresql 9.1 GROUP BY fix
test plan:
ensure canvas works and specs pass in postgres 9.0 and 9.1 (as well as
mysql and sqlite)

Change-Id: I30889e7fd960848f7ea372d5b5e6877d017ea228
Reviewed-on: https://gerrit.instructure.com/7005
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-11-23 13:05:30 -07:00
Brian Palmer 4ef50c16d8 make "stay logged in" use a one-time token
closes #6382

Previously, the "stay logged in" cookie just used the authlogic default
implementation, which is the pseudonym persistence_token. This is a
problem, because that persistence_token only ever changes when the
pseudonym password changes, so it's the same everywhere; so if that
cookie is stolen, it's valid for a very long time.

This switches us to one-time-use tokens that expire as soon as the token
logs the user in once. Each user agent also gets a different
one-time-use token.

Change-Id: I4f20cd7759fd74590e82ed55797552e342243d49
testplan:
  * Check that no token is set at all when "stay logged in" isn't
    selected.
  * Check "stay logged in", and verify:
    * That you don't have to login again after restarting your browser,
      but your _normandy_session got reset.
    * That if you save and try to replay using the same
      pseudonym_credentials, they don't work the second time.
    * That a second browser will get a different pseudonym_credentials
      value, and using one token doesn't affect the other.
    * That once the token is used, a new one is generated and set in
      your cookies. Verify this new token works as well.
    * That logging out removes the pseudonym_credentials cookie in your
      browser. And also that manually restoring this cookie still
      doesn't log you in, since it was removed server-side as well.
  * Change your password, and verify that the existing "stay logged in"
    tokens no longer work.
  * Delete your pseudonym, and verify the same.
Reviewed-on: https://gerrit.instructure.com/7093
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-11-22 10:15:13 -07:00
Brian Palmer aa1bc1f6f2 don't return the session cookie when remember_me isn't selected
refs #6382

testplan:
  * Login without selecting "stay logged in", and verify that no
    pseudonym_credentials cookie is set, not even a session cookie.
  * Verify the same when logging in via SSO.

Change-Id: I3bbb4f1057d2876541772b868f03f13df947c96a
Reviewed-on: https://gerrit.instructure.com/7092
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2011-11-21 15:33:32 -07:00
Brian Palmer a8f6fa9326 always give the session cookie browser session expiry
testplan:
  * login with "stay logged in" and without "stay logged in"
    * in both cases, check your _normandy_session cookie, it should have
      no expiration set (which means it expires when the browser session
      ends)
  * for the non-"stay logged in" case, close your browser, re-visit the
    site, you'll have to login again

fixes #6364

Change-Id: Ibff32aa2f4225fd9cf05f5ce3abf9dd9f448d4ff
Reviewed-on: https://gerrit.instructure.com/7084
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2011-11-21 15:21:05 -07:00
Brian Palmer cea6d1ca0f cast ids in acts_as_list update_order
testplan: post a list of ids that contain non-numeric data or SQL
commands to /users/XXX/files/reorder (or another reorder URL) and verify
that such data does not make it into the SQL query.

closes #6377

Change-Id: If5cee005853a944cb14761ce3d910ea4cae09433
Reviewed-on: https://gerrit.instructure.com/7025
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-11-16 19:25:07 -07:00
Jacob Fugal c0b56aa569 force dtstart in ics to utc
fixes #5953

Change-Id: I0486b3dce2dd10f0e9881dbcc224e220ad0e257d
Reviewed-on: https://gerrit.instructure.com/6192
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-11-08 10:25:04 -07:00
Jon Jensen 74fb788200 include invited enrollments in course dropdown, show state
also made general purpose methods for ranking (in ruby and sql) and
distinct on.

Change-Id: I4052472eb700cbdfe6b586ed6d12f61fd51bf08f
Reviewed-on: https://gerrit.instructure.com/6593
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-11-01 12:37:34 -06:00
Cody Cutrer eaf7df0777 drop completely unused attachments.enrollment_id
Change-Id: If402062a2a8a2ef58b793316b0006b6f384337d0
Reviewed-on: https://gerrit.instructure.com/6361
Reviewed-by: JT Olds <jt@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-10-21 10:41:34 -06:00
Cody Cutrer 2df7fceadb drop unused Enrollments#invitation_email
Change-Id: I4e80fda6312e4050c4316aceb8de07cfe4c6df51
Reviewed-on: https://gerrit.instructure.com/6287
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-10-21 10:41:22 -06:00
Zach Wily a4e55af920 make sure links in assessment questions are correctly translated, fixes #6012
Assessment questions can be shared among multiple contexts, so we need to make
the Canvas links used inside authorized to anyone with the link.

Change-Id: I0df4907405fd518ee0efebccf1b9fb8717dca141
Reviewed-on: https://gerrit.instructure.com/6341
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-10-21 08:36:34 -06:00
Cody Cutrer d2a5328993 drop Pseudonym#sis_source_id closes #5897
Change-Id: I81f2df5324ae7f9747f5d72ac1f8686932c815ff
Reviewed-on: https://gerrit.instructure.com/6093
Reviewed-by: JT Olds <jt@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-10-12 12:18:37 -06:00
Brian Palmer 0730f8c7d4 revert to syck yaml engine in ruby 1.9, for delayed jobs
Change-Id: I92310b0d30322192b7d2a5b20dad1c6a349af9f5
Reviewed-on: https://gerrit.instructure.com/5837
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-10-12 09:36:35 -06:00
Brian Palmer 1fe1b1ad6b csv lib compat in ruby 1.9.x
fastercsv is not supported in 1.9, instead csv in the stdlib has been
modified to be api compatible with fastercsv. in this first step, we
alias CSV to FasterCSV when running under 1.9. This allows 1.8.7 to
continue working with no changes.

Change-Id: I34c3a9031b6f4946380510e4833203e29a05073a
Reviewed-on: https://gerrit.instructure.com/5835
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-10-12 09:36:18 -06:00
Cody Cutrer 966f196fc4 drop Pseudonym#deleted_unique_id closes #5896
Change-Id: I5072b341cebd0221d6b06bb74bb012c61b62610f
Reviewed-on: https://gerrit.instructure.com/6080
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-10-11 14:10:54 -06:00
Brian Palmer 5a48da71a1 move barista gems to the development Gemfile group
Change-Id: I14059147bd974cd9cf5d90cc55c7cf970f1464b5
Reviewed-on: https://gerrit.instructure.com/6106
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-10-11 10:42:33 -06:00
Brian Palmer 9c6a4f1798 compile_assets without loading the canvas/rails environment
Change-Id: I8cd841228c9fae6194316cc576a5fc737062f569
Reviewed-on: https://gerrit.instructure.com/6105
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-10-11 10:07:50 -06:00
Brian Palmer a72755b5c8 update to rails 2.3.14
Changelog: https://github.com/rails/rails/compare/v2.3.11...v2.3.14

The find_or_create_by_* fix is now integrated: 9f7ff621bd

Change-Id: If9ec011ef0d1bd26364fa18c7a50ff446f6792b1
Reviewed-on: https://gerrit.instructure.com/5847
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-10-10 08:24:38 -06:00
Cody Cutrer 5c08799256 Remove ActiveRecord::Base.find(_all)?_cached
Just use Rails.cache.fetch directly.  This fixes some problems that
find_cached wasn't fully serializing the object.

Also, be sure to change cache keys so that we don't get data back
using the old format.

Change-Id: I8beea2f2ba446a97249a495789b25c3a71de420e
Reviewed-on: https://gerrit.instructure.com/5857
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-10-05 17:50:47 -06:00
Cody Cutrer df7323cc4d fix asymmetry in rails association patch
don't use a setter when we didn't use a getter

Change-Id: I081f114060e0aef395a955c212abe11df38d6933
Reviewed-on: https://gerrit.instructure.com/5988
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-10-05 13:29:04 -06:00
Brian Palmer 642e47746b add recently removed columns to the list, refs #5758
Change-Id: I3a922efecc90216ab3412bdcf86d0d679ae62dd5
Reviewed-on: https://gerrit.instructure.com/5824
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-09-28 14:54:50 -06:00
Brian Palmer 0432c66a24 remove deprecated ruby syntax
these are syntax errors in 1.9.x

Change-Id: I7cbd66643cb371e4be9f8da0365bf1e988ee5de8
Reviewed-on: https://gerrit.instructure.com/5833
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-09-27 10:28:22 -06:00
Brian Palmer fb7dec9c34 hide soon-to-be-dropped columns from activerecord, closes #5758
Whenever we create a migration that drops or renames a column, in that
same commit we need to add that column to the list in this initializer.

Then, when we deploy and restart, AR will already see the column as
removed, and we can safely run the drop migration after deploy without
any window where users will get page errors due to stale column
information.

Change-Id: I1c95fd146ac8046af579256cccf95b42f01442b7
Reviewed-on: https://gerrit.instructure.com/5823
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2011-09-26 17:08:44 -06:00
Brian Palmer ca71deb7ab switch globbing of plugin db/migrate dirs
** doesn't follow symlinks, apparently, and * is sufficient here

Change-Id: I0885c8d45392a25afd48f4396422b2b934e76d28
Reviewed-on: https://gerrit.instructure.com/5683
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-09-16 12:02:27 -06:00
Cody Cutrer fb47b69133 find migrations in plugins
Change-Id: I71813dd1f89f040bc1caee9d4584c87f0152b07f
Reviewed-on: https://gerrit.instructure.com/5679
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2011-09-16 10:55:52 -06:00
Cody Cutrer 973b04c084 update_account_associations immediately for new objects
fixes #5359

Change-Id: I4f19c26939e38bb02c2e730629298c2a5937bce4
Reviewed-on: https://gerrit.instructure.com/5219
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
2011-09-14 15:41:55 -06:00
Jon Jensen 92e7afcda4 $.toSentence for arrays
Change-Id: Ic4f422c028eccce8c1431806a9c192146e09d2d6
Reviewed-on: https://gerrit.instructure.com/5388
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-09-01 15:30:15 -06:00
Cody Cutrer 42d5269cd8 don't bother figuring out where in the nil folder list attachments go for sis imports
Change-Id: I2f93d1bcce4d523b4a2d389a03163fcaaf2ffaaf
Reviewed-on: https://gerrit.instructure.com/5363
Reviewed-by: JT Olds <jt@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-31 10:51:18 -06:00
Jacob Fugal 1a761c2d1f explicit utc db times in update_all
update_all's update hash doesn't have any magic performed on bare Time
objects; it assumes any Time object it's given is already in UTC. using
a TimeWithZone object (regardless of timezone), which Fixnum#ago and
friends happen to return, is still fine.

Change-Id: I297b2a3211b896b5225ebcfaaee3c1eb56e55fb6
Reviewed-on: https://gerrit.instructure.com/5351
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2011-08-30 16:46:25 -06:00
Cody Cutrer caae827136 alerts, closes #4317
* Daily job to evaluate alerts
   * Spawns a new job for each root account (for parallelization).
     It could be broken down to per-course level if needed (i.e.
     if there is a *huge* root account).
   * Evaluating criteria at a course level using efficient queries.
 * UI for CRUD on alerts
   * Render existing alerts
   * Delete existing alerts
   * Create a new alert
   * CRUD for criteria, recipients, repetition
   * Validations
 * Improve instructure_helper's formErrors to support passing errors
   for specific elements
 * Improve Rails' :include to be able to :exclude an :include
   inherited from a named scope
 * Specs!!
 * Note that we want to slowly roll this out, so there is a setting on
   root accounts to enable it

So I ran an alert with just an interaction criterion on a test
cluster against 50,000 courses, and it took less than 10 minutes
without any parallelization.  That seems like acceptable
performance to me (since there are only just over 3000 courses
in production that would even be elligible to have alerts sent
right now).  Of course, that's probably skewed because I'm sure
a bunch of those 50,000 courses were essentially empty.

Change-Id: Ie028ef206c9155b9a72fb2a820f3e0e516de562a
Reviewed-on: https://gerrit.instructure.com/4799
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2011-08-24 10:19:44 -06:00
Jon Jensen 1ebf2072d6 fix two mysql bugs wrt common courses and enrollment types
Change-Id: Ied849e68744f4153851acf2c7d2d1c91f9f72479
Reviewed-on: https://gerrit.instructure.com/5215
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
2011-08-22 21:35:19 -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
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
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 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
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
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
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
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 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