YaleSTC/shifts

View on GitHub
app/models/department_observer.rb

Summary

Maintainability
A
1 hr
Test Coverage
class DepartmentObserver < ActiveRecord::Observer

  # Automatically create department config for a department
  def after_create(department)
    DepartmentConfig.create!({department_id: department.id,
                        schedule_start: 9*60,
                        schedule_end: 17*60,
                        time_increment: 15,
                        grace_period: 7,
                        payform_time_limit: 19,
                        admin_round_option: 15,
                        end_of_month: false,
                        monthly: false,
                        weekend_shifts: true,
                        unscheduled_shifts: true,
                        printed_message: "This payform has already been printed and may no longer be edited.\n If there is a problem that needs to be addressed, please talk to the administration.",
                        reminder_message: "Please remember to submit your payform for this week.",
                        warning_message: "You have not submitted payforms for the weeks ending on the following dates:\n \n@weeklist@\n Please submit your payforms. If some of the weeks listed are weeks during which you did not work, please just submit a blank payform.",
                        warning_weeks: 2,
                        description_min: 4,
                        reason_min: 4,
                        mailer_address: "noreply@shifts.app",
                        early_signin: 60,
                        search_engine_name: "Google",
                        search_engine_url: "http://www.google.com/search?q="
                        })

    Category.create!(name: "Shifts",        department_id: department.id, built_in: true)
    Category.create!(name: "Punch Clocks",  department_id: department.id, built_in: true)
    Category.create!(name: "Miscellaneous", department_id: department.id, built_in: true)
    Calendar.create!(name: "#{department.name} Default Calendar", department_id: department.id, active: true, start_date: Time.now.to_date, default:true)
  end
end