From 21752fab7eaef33ad8e8402df404a33183d90514 Mon Sep 17 00:00:00 2001 From: Ken Johnson Date: Mon, 27 May 2013 13:09:33 -0400 Subject: [PATCH] I am setting this up, in this way, so that we have some extensibility. We may wish to have some sort of a polymorphic association where multiple models need to have a scheduling model available to them. That being said, as of right now, only the pto model needs it so I am doing a belong_to and has_one association between the two --- app/models/paid_time_off.rb | 1 + app/models/schedule.rb | 4 ++++ db/migrate/20130527165832_create_schedules.rb | 14 +++++++++++ db/schema.rb | 13 +++++++++- db/seeds.rb | 24 +++++++++++++++++++ test/fixtures/schedules.yml | 17 +++++++++++++ test/unit/schedule_test.rb | 7 ++++++ 7 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 app/models/schedule.rb create mode 100644 db/migrate/20130527165832_create_schedules.rb create mode 100644 test/fixtures/schedules.yml create mode 100644 test/unit/schedule_test.rb diff --git a/app/models/paid_time_off.rb b/app/models/paid_time_off.rb index a4dadd0..7850197 100644 --- a/app/models/paid_time_off.rb +++ b/app/models/paid_time_off.rb @@ -1,6 +1,7 @@ class PaidTimeOff < ActiveRecord::Base attr_accessible :pto_earned, :pto_taken, :sick_days_earned, :sick_days_taken, :user_id belongs_to :user + has_one :schedule, :foreign_key => :user_id, :primary_key => :user_id # Refactor this duplication when it's not 3am def sick_days_remaining(val="") diff --git a/app/models/schedule.rb b/app/models/schedule.rb new file mode 100644 index 0000000..f410c15 --- /dev/null +++ b/app/models/schedule.rb @@ -0,0 +1,4 @@ +class Schedule < ActiveRecord::Base + attr_accessible :date_begin, :date_end, :event_desc, :event_name, :event_type, :user_id + belongs_to :paid_time_off +end diff --git a/db/migrate/20130527165832_create_schedules.rb b/db/migrate/20130527165832_create_schedules.rb new file mode 100644 index 0000000..786cdc2 --- /dev/null +++ b/db/migrate/20130527165832_create_schedules.rb @@ -0,0 +1,14 @@ +class CreateSchedules < ActiveRecord::Migration + def change + create_table :schedules do |t| + t.string :event_type + t.date :date_begin + t.date :date_end + t.string :event_name + t.string :event_desc + t.integer :user_id + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 2cc64f3..d2e48e4 100755 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130525001150) do +ActiveRecord::Schema.define(:version => 20130527165832) do create_table "paid_time_offs", :force => true do |t| t.integer "user_id" @@ -32,6 +32,17 @@ ActiveRecord::Schema.define(:version => 20130525001150) do t.datetime "updated_at", :null => false end + create_table "schedules", :force => true do |t| + t.string "event_type" + t.date "date_begin" + t.date "date_end" + t.string "event_name" + t.string "event_desc" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "users", :force => true do |t| t.string "email" t.string "password" diff --git a/db/seeds.rb b/db/seeds.rb index 27ecd8b..18b5083 100755 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -104,6 +104,26 @@ paid_time_off = [ } ] + + schedule = [ + { + :user_id => 2, + + }, + { + :user_id => 3, + + }, + { + :user_id => 4, + + }, + { + :user_id => 5, + + } + + ] users.each do |user_info| @@ -116,4 +136,8 @@ end paid_time_off.each do |pto| PaidTimeOff.create!(pto) +end + +schedule.each do |event| + Schedule.create!(event) end \ No newline at end of file diff --git a/test/fixtures/schedules.yml b/test/fixtures/schedules.yml new file mode 100644 index 0000000..6827e86 --- /dev/null +++ b/test/fixtures/schedules.yml @@ -0,0 +1,17 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html + +one: + event_type: MyString + date_begin: 2013-05-27 + date_end: 2013-05-27 + event_name: MyString + event_desc: MyString + user_id: 1 + +two: + event_type: MyString + date_begin: 2013-05-27 + date_end: 2013-05-27 + event_name: MyString + event_desc: MyString + user_id: 1 diff --git a/test/unit/schedule_test.rb b/test/unit/schedule_test.rb new file mode 100644 index 0000000..8e3ee1d --- /dev/null +++ b/test/unit/schedule_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class ScheduleTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end