51 lines
2.2 KiB
Ruby
51 lines
2.2 KiB
Ruby
class Caf < ApplicationRecord
|
|
after_create :populate_caf_info
|
|
belongs_to :company
|
|
has_many :objectives, dependent: :destroy
|
|
|
|
validates :name, presence: true
|
|
validates :name, uniqueness: { scope: :company_id, message: "should be unique to the company"}
|
|
|
|
private
|
|
def populate_caf_info
|
|
file = YAML.load_file(Rails.root.to_s + '/config/caf_text.yml')
|
|
objectives = file["objectives"]
|
|
|
|
objectives.each do |objective|
|
|
objective_info = objective["objective"]
|
|
#<p><%= objective_info["name"] %> <br/> <%= objective_info["description"] %></p>
|
|
obj = self.objectives.create(name: objective_info["name"], description: objective_info["description"] )
|
|
principles = objective_info["principles"]
|
|
|
|
principles.each do |principle|
|
|
principle_info = principle["principle"]
|
|
# <p><%= principle_info["name"] %><br><%= principle_info["description"]%></p>
|
|
pri = obj.principles.create(name: principle_info["name"], description: principle_info["description"])
|
|
sub_principles = principle_info["sub-principles"]
|
|
|
|
sub_principles.each do |sub_principle|
|
|
sub_principle_info = sub_principle["sub-principle"]
|
|
# <p><%= sub_principle_info["name"]%><br/><%= sub_principle_info["description"]%></p>
|
|
subpri = pri.subprinciples.create(name: sub_principle_info["name"], description: sub_principle_info["description"] )
|
|
sub_principle_item_groups = sub_principle_info["subprincipleitemgroups"]
|
|
|
|
sub_principle_item_groups.each do |key,value|
|
|
header = key["subprincipleitemgroup"]
|
|
# <%= header["type"] %> - <%= header["condition"] %><br/>
|
|
subpriitemgroup = subpri.subprincipleitemgroups.create(kind: header["kind"], condition: header["condition"])
|
|
subprincipleitem = header["subprincipleitem"]
|
|
|
|
subprincipleitem.each do |subprinciple|
|
|
# <%= subprinciple %><br/>
|
|
subpriitemgroup.subprincipleitems.create(description: subprinciple)
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|