15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/models/refinery/widgets/template_part.rb', line 15
def sychronize_widgets!(page)
page_part = page.parts.select{|pp| pp.title == self.name }.first
if page_part
page_part_ids = page_part.widgets.select{|w| w.widget_id? && w.layout? }.collect{|x| x.widget_id }
template_part_ids = self.widgets.collect{|x| x.id }
missing = template_part_ids - page_part_ids
missing.each do |w_id|
page_part.add_ref_widget_for! Widget.find(w_id)
end
= page_part_ids - template_part_ids
.each do |w_id|
page_part.widgets.select{|x| x.widget_id == w_id }.first.destroy
end
if page_part.locked != self.locked
page_part.locked = self.locked
page_part.save!
end
end
end
|