From 0319cc47684bc3888b28ad3ffea3d5fff9fbabdb Mon Sep 17 00:00:00 2001 From: Ken Johnson Date: Sat, 1 Jun 2013 00:19:07 -0400 Subject: [PATCH] added a few things here. Firstly, I fixed the broken delete function with the admin page. Secondly, whenever you register for this application, we will automatically populate your user data to make the application functional. Seemed like the easiest way to do this --- app/controllers/admin_controller.rb | 2 +- app/controllers/users_controller.rb | 5 + app/models/performance.rb | 4 + app/models/user.rb | 3 + app/views/performance/index.html.erb | 2 +- config/initializers/populate_user_data.rb | 163 ++++++++++++++++++++++ 6 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 config/initializers/populate_user_data.rb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index d039717..0c27834 100755 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -32,7 +32,7 @@ class AdminController < ApplicationController end def delete_user - user = User.find_by_id(params[:admin_id]) + user = User.find_by_user_id(params[:admin_id]) if user && !(current_user.user_id == user.user_id) user.delete message = true diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f00c6a7..4bd09e8 100755 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -9,6 +9,11 @@ class UsersController < ApplicationController def create user = User.new(params[:user]) + user.build_retirement(POPULATE_RETIREMENTS.shuffle.first) + user.build_paid_time_off(POPULATE_PAID_TIME_OFF.shuffle.first) + user.build_paid_time_off.schedule(POPULATE_SCHEDULE.shuffle.first) + user.build_work_info(POPULATE_WORK_INFO.shuffle.first) + user.performance.build(POPULATE_PERFORMANCE.shuffle.first) if user.save session[:user_id] = user.user_id redirect_to home_dashboard_index_path diff --git a/app/models/performance.rb b/app/models/performance.rb index f182879..eba7cf5 100644 --- a/app/models/performance.rb +++ b/app/models/performance.rb @@ -1,4 +1,8 @@ class Performance < ActiveRecord::Base attr_accessible :comments, :date_submitted, :reviewer, :score belongs_to :user + + def reviewer_name + User.find_by_id(self.reviewer).full_name + end end diff --git a/app/models/user.rb b/app/models/user.rb index 192eb32..9f8f60a 100755 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -16,6 +16,9 @@ class User < ActiveRecord::Base has_many :performance, :foreign_key => :user_id, :primary_key => :user_id + def full_name + "#{self.first_name} #{self.last_name}" + end def self.authenticate(email, password) auth = nil diff --git a/app/views/performance/index.html.erb b/app/views/performance/index.html.erb index cde5e95..3b8e11b 100644 --- a/app/views/performance/index.html.erb +++ b/app/views/performance/index.html.erb @@ -34,7 +34,7 @@ <% @perf.each do |p| %> - <%= p.reviewer %> + <%= p.reviewer_name %> <%= p.date_submitted %> <%= p.score %> <%= p.comments %> diff --git a/config/initializers/populate_user_data.rb b/config/initializers/populate_user_data.rb new file mode 100644 index 0000000..863e84f --- /dev/null +++ b/config/initializers/populate_user_data.rb @@ -0,0 +1,163 @@ + +POPULATE_RETIREMENTS = [ + { + :employee_contrib => "1000", + :employer_contrib => "2000", + :total => "4500" + }, + { + :employee_contrib => "8000", + :employer_contrib => "16000", + :total => "30000" + }, + { + :employee_contrib => "10000", + :employer_contrib => "20000", + :total => "40000" + }, + { + :employee_contrib => "3000", + :employer_contrib => "6000", + :total => "12500" + } + +] + +POPULATE_PAID_TIME_OFF = [ + { + :sick_days_taken => 2, + :sick_days_earned => 5, + :pto_taken => 5, + :pto_earned => 30 + }, + { + :sick_days_taken => 3, + :sick_days_earned => 6, + :pto_taken => 3, + :pto_earned => 20 + }, + { + :sick_days_taken => 2, + :sick_days_earned => 5, + :pto_taken => 5, + :pto_earned => 30 + }, + { + :sick_days_taken => 1, + :sick_days_earned => 5, + :pto_taken => 10, + :pto_earned => 30 + } + + ] + +POPULATE_SCHEDULE = [ + { + :date_begin => Date.new(2014, 7, 30), + :date_end => Date.new(2014, 8, 2), + :event_type => "pto", + :event_desc => "vacation to france", + :event_name => "My 2014 Vacation" + + }, + { + :date_begin => Date.new(2013, 9, 1), + :date_end => Date.new(2013, 9, 12), + :event_type => "pto", + :event_desc => "Going Home to see folks", + :event_name => "Visit Parents" + + }, + { + :date_begin => Date.new(2013, 9, 13), + :date_end => Date.new(2013, 9, 20), + :event_type => "pto", + :event_desc => "Taking kids to Grand Canyon", + :event_name => "AZ Trip" + + }, + { + :date_begin => Date.new(2013, 12, 20), + :date_end => Date.new(2013, 12, 30), + :event_type => "pto", + :event_desc => "Xmas Staycation", + :event_name => "Christmas Leave" + } + + ] + +POPULATE_WORK_INFO = [ + { + :income => "$50,000", + :bonuses => "$10,000", + :years_worked => 2, + :SSN => "666-66-6666", + :DoB => "01-01-1980" + }, + { + :income => "$40,000", + :bonuses => "$10,000", + :years_worked => 1, + :SSN => "777-77-7777", + :DoB => "01-01-1979" + }, + { + :income => "$60,000", + :bonuses => "$12,000", + :years_worked => 3, + :SSN => "888-88-8888", + :DoB => "01-01-1981" + }, + { + :income => "$30,000", + :bonuses => "7,000", + :years_worked => 1, + :SSN => "999-99-9999", + :DoB => "01-01-1982" + } + ] + + POPULATE_PERFORMANCE = [ + { + :reviewer => 1, + :comments => "Great job! You are my hero", + :date_submitted => Date.new(2012, 01, 01), + :score => 5 + }, + { + :reviewer => 1, + :comments => "Once again, you've done a great job this year. We greatly appreciate your hard work.", + :date_submitted => Date.new(2013, 01, 01), + :score => 5 + }, + { + :reviewer => 1, + :comments => "Great worker, great attitude for this newcomer!", + :date_submitted => Date.new(2013, 01, 01), + :score => 5 + }, + { + :reviewer => 1, + :comments => "Wow, right out of the gate we've been very impressed but unfortunately, our system doesn't allow us to give you a full 5.0 because other ppl have gotten 5.0 ratings.", + :date_submitted => Date.new(2011, 01, 01), + :score => 4 + }, + { + :reviewer => 1, + :comments => "We highly recommend promotion for this employee! Consistent performer with proven leadership qualities.", + :date_submitted => Date.new(2012, 01, 01), + :score => 5 + }, + { + :reviewer => 1, + :comments => "Right out of the gate has made incredible moves as a newly appointed leader. His only improvement would be more cowbell. Not enough of it.", + :date_submitted => Date.new(2013, 01, 01), + :score => 4 + }, + { + :reviewer => 1, + :comments => "Ehh, you are okay, we will let you stay..... barely", + :date_submitted => Date.new(2013, 01, 01), + :score => 2 + } + ] \ No newline at end of file