diff --git a/tracks/db/migrate/1_create_tracks_db.rb b/tracks/db/migrate/001_create_tracks_db.rb similarity index 100% rename from tracks/db/migrate/1_create_tracks_db.rb rename to tracks/db/migrate/001_create_tracks_db.rb diff --git a/tracks/db/migrate/002_add_user_id.rb b/tracks/db/migrate/002_add_user_id.rb new file mode 100644 index 00000000..0cbe9226 --- /dev/null +++ b/tracks/db/migrate/002_add_user_id.rb @@ -0,0 +1,16 @@ +class AddUserId < ActiveRecord::Migration + def self.up + add_column :contexts, :user_id, :integer, :default => 1 + add_column :projects, :user_id, :integer, :default => 1 + add_column :todos, :user_id, :integer, :default => 1 + Context.find(:all).each { |context| context.user_id = 1 } + Project.find(:all).each { |project| project.user_id = 1 } + Todo.find(:all).each { |todo| todo.user_id = 1 } + end + + def self.down + remove_column :contexts, :user_id + remove_column :projects, :user_id + remove_column :todos, :user_id + end +end diff --git a/tracks/db/migrate/3_created_at.rb b/tracks/db/migrate/003_created_at.rb similarity index 72% rename from tracks/db/migrate/3_created_at.rb rename to tracks/db/migrate/003_created_at.rb index 47fa00f7..fd9d6041 100644 --- a/tracks/db/migrate/3_created_at.rb +++ b/tracks/db/migrate/003_created_at.rb @@ -3,10 +3,10 @@ class CreatedAt < ActiveRecord::Migration # if the column names use symbols instead of strings. # def self.up - rename_column "todos", "created", "created_at" + rename_column :todos, :created, :created_at end def self.down - rename_column "todos", "created_at", "created" + rename_column :todos, :created_at, :created end end diff --git a/tracks/db/migrate/4_notes.rb b/tracks/db/migrate/004_notes.rb similarity index 100% rename from tracks/db/migrate/4_notes.rb rename to tracks/db/migrate/004_notes.rb diff --git a/tracks/db/migrate/5_add_project_description.rb b/tracks/db/migrate/005_add_project_description.rb similarity index 100% rename from tracks/db/migrate/5_add_project_description.rb rename to tracks/db/migrate/005_add_project_description.rb diff --git a/tracks/db/migrate/006_add_preferences_to_user_table.rb b/tracks/db/migrate/006_add_preferences_to_user_table.rb index 38f2781e..e8f507de 100644 --- a/tracks/db/migrate/006_add_preferences_to_user_table.rb +++ b/tracks/db/migrate/006_add_preferences_to_user_table.rb @@ -1,6 +1,6 @@ class AddPreferencesToUserTable < ActiveRecord::Migration def self.up - add_column "users", "preferences", :text + add_column :users, :preferences, :text @users = User.find(:all) @users.each do |u| u.preferences = { "date_format" => "%d/%m/%Y", "week_starts" => "1", "no_completed" => "5", "staleness_starts" => "7", "due_style" => "1", "admin_email" => "butshesagirl@rousette.org.uk"} @@ -9,6 +9,6 @@ class AddPreferencesToUserTable < ActiveRecord::Migration end def self.down - remove_column "users", "preferences" + remove_column :users, :preferences end end diff --git a/tracks/db/migrate/2_add_user_id.rb b/tracks/db/migrate/2_add_user_id.rb deleted file mode 100644 index 8453d47c..00000000 --- a/tracks/db/migrate/2_add_user_id.rb +++ /dev/null @@ -1,16 +0,0 @@ -class AddUserId < ActiveRecord::Migration - def self.up - add_column "contexts", "user_id", :integer, :default => 1 - add_column "projects", "user_id", :integer, :default => 1 - add_column "todos", "user_id", :integer, :default => 1 - execute "UPDATE 'contexts' SET 'user_id' = 1;" - execute "UPDATE 'projects' SET 'user_id' = 1;" - execute "UPDATE 'todos' SET 'user_id' = 1;" - end - - def self.down - remove_column :contexts, :user_id - remove_column :projects, :user_id - remove_column :todos, :user_id - end -end diff --git a/tracks/db/schema.rb b/tracks/db/schema.rb index f3aa4036..82f00e2e 100644 --- a/tracks/db/schema.rb +++ b/tracks/db/schema.rb @@ -5,26 +5,26 @@ ActiveRecord::Schema.define(:version => 8) do create_table "contexts", :force => true do |t| - t.column "name", :string, :default => "", :null => false - t.column "hide", :integer, :limit => 4, :default => 0, :null => false - t.column "position", :integer, :default => 0, :null => false + t.column "name", :string, :null => false + t.column "position", :integer, :null => false + t.column "hide", :boolean, :default => false t.column "user_id", :integer, :default => 1 end create_table "notes", :force => true do |t| - t.column "user_id", :integer, :default => 0, :null => false - t.column "project_id", :integer, :default => 0, :null => false + t.column "user_id", :integer, :null => false + t.column "project_id", :integer, :null => false t.column "body", :text - t.column "created_at", :datetime - t.column "updated_at", :datetime + t.column "created_at", :datetime, :default => Sat Jan 01 00:00:00 GMT 2000 + t.column "updated_at", :datetime, :default => Sat Jan 01 00:00:00 GMT 2000 end create_table "projects", :force => true do |t| - t.column "name", :string, :default => "", :null => false - t.column "position", :integer, :default => 0, :null => false - t.column "done", :integer, :limit => 4, :default => 0, :null => false + t.column "name", :string, :null => false + t.column "position", :integer, :null => false + t.column "done", :boolean, :default => false t.column "user_id", :integer, :default => 1 - t.column "description", :text + t.column "description", :text, :default => "" end create_table "sessions", :force => true do |t| @@ -36,24 +36,24 @@ ActiveRecord::Schema.define(:version => 8) do add_index "sessions", ["session_id"], :name => "sessions_session_id_index" create_table "todos", :force => true do |t| - t.column "context_id", :integer, :default => 0, :null => false - t.column "description", :string, :limit => 100, :default => "", :null => false + t.column "context_id", :integer, :null => false + t.column "project_id", :integer + t.column "description", :string, :null => false t.column "notes", :text - t.column "done", :integer, :limit => 4, :default => 0, :null => false - t.column "created_at", :datetime + t.column "done", :boolean, :default => false, :null => false + t.column "created_at", :datetime, :default => Sat Jan 01 00:00:00 GMT 2000 t.column "due", :date t.column "completed", :datetime - t.column "project_id", :integer t.column "user_id", :integer, :default => 1 t.column "type", :string, :default => "Immediate", :null => false t.column "show_from", :date end create_table "users", :force => true do |t| - t.column "login", :string, :limit => 80 - t.column "password", :string, :limit => 40 + t.column "login", :string, :limit => 80, :null => false + t.column "password", :string, :limit => 40, :null => false t.column "word", :string - t.column "is_admin", :integer, :limit => 4, :default => 0, :null => false + t.column "is_admin", :boolean, :default => false, :null => false t.column "preferences", :text end diff --git a/tracks/db/tracks-104.db b/tracks/db/tracks-1041.db similarity index 82% rename from tracks/db/tracks-104.db rename to tracks/db/tracks-1041.db index 89e5219b..559f6244 100644 Binary files a/tracks/db/tracks-104.db and b/tracks/db/tracks-1041.db differ diff --git a/tracks/test/fixtures/contexts.yml b/tracks/test/fixtures/contexts.yml index bba6c650..d0f5c0a0 100644 --- a/tracks/test/fixtures/contexts.yml +++ b/tracks/test/fixtures/contexts.yml @@ -1,64 +1,80 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +<% + # This writes the fixture boolean columns appropriately + # depending on the database adapter + # + abcs = ActiveRecord::Base.configurations + case abcs[RAILS_ENV]["adapter"] + when "mysql", "oci" + b_true = 1 + b_false = 0 + when "postgresql", "sqlite", "sqlite3" + b_true = 't' + b_false = 'f' + else + raise "Task not supported by '#{abcs["test"]["adapter"]}'" + end +%> agenda: id: 1 name: agenda position: 1 - hide: 0 + hide: <%= b_false %> user_id: 1 call: id: 2 name: call position: 2 - hide: 0 + hide: <%= b_false %> user_id: 1 email: id: 3 name: email position: 3 - hide: 0 + hide: <%= b_false %> user_id: 1 errand: id: 4 name: errand position: 4 - hide: 0 + hide: <%= b_false %> user_id: 1 lab: id: 5 name: lab position: 5 - hide: 0 + hide: <%= b_false %> user_id: 1 library: id: 6 name: library position: 6 - hide: 0 + hide: <%= b_false %> user_id: 1 freetime: id: 7 name: freetime position: 7 - hide: 0 + hide: <%= b_false %> user_id: 1 office: id: 8 name: office position: 8 - hide: 0 + hide: <%= b_false %> user_id: 1 waitingfor: id: 9 name: waiting for position: 9 - hide: 0 + hide: <%= b_false %> user_id: 1 diff --git a/tracks/test/fixtures/deferreds.yml b/tracks/test/fixtures/deferreds.yml deleted file mode 100644 index 8794d28a..00000000 --- a/tracks/test/fixtures/deferreds.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -first: - id: 1 -another: - id: 2 diff --git a/tracks/test/fixtures/immediates.yml b/tracks/test/fixtures/immediates.yml deleted file mode 100644 index 8794d28a..00000000 --- a/tracks/test/fixtures/immediates.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -first: - id: 1 -another: - id: 2 diff --git a/tracks/test/fixtures/notes.yml b/tracks/test/fixtures/notes.yml index 85e63b25..84052a6b 100644 --- a/tracks/test/fixtures/notes.yml +++ b/tracks/test/fixtures/notes.yml @@ -1,15 +1,27 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +<% +def today +Time.now.to_s(:db) +end +def next_week +1.week.from_now.to_s(:db) +end +def last_week +1.week.ago.to_s(:db) +end +%> + first_notes: id: 1 user_id: 1 project_id: 1 body: Need to collect a catalogue from Time Machines R Us - created_at: 2006-04-09 12:09:00 - updated_at: 2006-04-09 12:09:00 + created_at: <%= today %> + updated_at: <%= today %> another_notes: id: 2 user_id: 1 project_id: 1 body: Should I go for a swirly effect or a whooshy one? - created_at: 2006-04-08 11:01:05 - updated_at: 2006-04-08 11:01:05 + created_at: <%= today %> + updated_at: <%= today %> diff --git a/tracks/test/fixtures/projects.yml b/tracks/test/fixtures/projects.yml index 95c45f4d..df2ed2b5 100644 --- a/tracks/test/fixtures/projects.yml +++ b/tracks/test/fixtures/projects.yml @@ -1,11 +1,26 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - +<% + # This writes the fixture boolean columns appropriately + # depending on the database adapter + # + abcs = ActiveRecord::Base.configurations + case abcs[RAILS_ENV]["adapter"] + when "mysql", "oci" + b_true = 1 + b_false = 0 + when "postgresql", "sqlite", "sqlite3" + b_true = 't' + b_false = 'f' + else + raise "Task not supported by '#{abcs["test"]["adapter"]}'" + end +%> timemachine: id: 1 name: Build a working time machine description: '' position: 1 - done: 0 + done: <%= b_false %> user_id: 1 moremoney: @@ -13,7 +28,7 @@ moremoney: name: Make more money than Billy Gates description: '' position: 2 - done: 0 + done: <%= b_false %> user_id: 1 gardenclean: @@ -21,5 +36,5 @@ gardenclean: name: Evict dinosaurs from the garden description: '' position: 3 - done: 0 + done: <%= b_false %> user_id: 1 diff --git a/tracks/test/fixtures/todos.yml b/tracks/test/fixtures/todos.yml index 9d24564b..04ac4eef 100644 --- a/tracks/test/fixtures/todos.yml +++ b/tracks/test/fixtures/todos.yml @@ -1,4 +1,36 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +<% +def today + Time.now.to_s(:db) +end + +def next_week + 1.week.from_now.to_s(:db) +end + +def last_week + 1.week.ago.to_s(:db) +end + +def two_weeks_hence + 2.week.from_now.to_s(:db) +end + +# This writes the fixture boolean columns appropriately +# depending on the database adapter +# +abcs = ActiveRecord::Base.configurations +case abcs[RAILS_ENV]["adapter"] + when "mysql", "oci" + b_true = 1 + b_false = 0 + when "postgresql", "sqlite", "sqlite3" + b_true = 't' + b_false = 'f' + else + raise "Task not supported by '#{abcs["test"]["adapter"]}'" +end +%> 1: id: 1 @@ -6,9 +38,9 @@ project_id: 2 description: Call Bill Gates to find out how much he makes per day notes: ~ - done: 0 - created_at: 2004-11-28 16:01:00 - due: 2004-10-30 + done: <%= b_false %> + created_at: <%= last_week %> + due: <%= two_weeks_hence %> completed: ~ user_id: 1 @@ -18,9 +50,9 @@ project_id: 3 description: Call dinosaur exterminator notes: Ask him if I need to hire a skip for the corpses. - done: 0 - created_at: 2004-11-28 16:06:08 - due: 2004-11-30 + done: <%= b_false %> + created_at: <%= today %> + due: <%= two_weeks_hence %> completed: ~ user_id: 1 @@ -31,9 +63,9 @@ description: Buy milk notes: ~ done: 1 - created_at: 2004-11-28 16:06:31 + created_at: <%= today %> due: ~ - completed: 2004-11-28 + completed: <%= today %> user_id: 1 4: @@ -43,9 +75,9 @@ description: Buy bread notes: ~ done: 1 - created_at: 2004-11-28 16:06:58 + created_at: <%= today %> due: ~ - completed: 2004-11-28 + completed: <%= today %> user_id: 1 5: @@ -54,8 +86,8 @@ project_id: 1 description: Construct time dilation device notes: ~ - done: 0 - created_at: 2004-11-28 16:07:33 + done: <%= b_false %> + created_at: <%= today %> due: ~ completed: ~ user_id: 1 @@ -66,9 +98,9 @@ project_id: 1 description: Phone Grandfather to ask about the paradox notes: Added some _notes_. - done: 0 - created_at: 2004-11-28 16:08:33 - due: 2004-12-30 + done: <%= b_false %> + created_at: <%= today %> + due: <%= last_week %> completed: ~ user_id: 1 @@ -78,8 +110,8 @@ project_id: 3 description: Get a book out of the library notes: 'Dinosaurs''R' - done: 0 - created_at: 2004-12-22 14:07:06 + done: <%= b_false %> + created_at: <%= today %> due: ~ completed: ~ user_id: 1 @@ -90,10 +122,10 @@ project_id: ~ description: Upgrade to Rails 0.9.1 notes: ~ - done: 1 - created_at: 2004-12-20 17:02:52 - due: 2004-12-21 - completed: 2004-12-20 + done: <%= b_false %> + created_at: <%= today %> + due: <%= today %> + completed: ~ user_id: 1 9: @@ -102,9 +134,9 @@ project_id: ~ description: This should be due today notes: ~ - done: 0 - created_at: 2004-12-31 17:23:06 - due: 2004-12-31 + done: <%= b_false %> + created_at: <%= today %> + due: <%= today %> completed: ~ user_id: 1 @@ -115,9 +147,9 @@ description: foo notes: ~ done: 1 - created_at: 2004-12-31 18:38:34 + created_at: <%= today %> due: 2005-01-05 - completed: 2005-01-02 12:27:10 + completed: <%= today %> user_id: 1 11: @@ -126,8 +158,8 @@ project_id: 2 description: Buy shares notes: ~ - done: 0 - created_at: 2005-01-01 12:40:26 + done: <%= b_false %> + created_at: <%= today %> due: 2005-02-01 completed: ~ user_id: 1 @@ -138,10 +170,10 @@ project_id: 3 description: Buy stegosaurus bait notes: ~ - done: 1 - created_at: 2005-01-01 12:53:12 - due: 2005-01-02 - completed: 2005-01-01 15:44:19 + done: <%= b_false %> + created_at: <%= today %> + due: <%= next_week %> + completed: ~ user_id: 1 13: @@ -150,10 +182,10 @@ project_id: 3 description: New action in context notes: Some notes - done: 1 - created_at: 2005-01-02 14:52:49 - due: 2005-03-01 - completed: 2005-01-02 15:44:19 + done: <%= b_false %> + created_at: <%= today %> + due: <%= next_week %> + completed: ~ user_id: 1 14: @@ -162,8 +194,8 @@ project_id: 2 description: Call stock broker notes: 'tel: 12345' - done: 0 - created_at: 2005-01-03 11:38:25 + done: <%= b_false %> + created_at: <%= last_week %> due: ~ completed: ~ user_id: 1