3 self.abstract_class = true
11 define_method("leaf_items") do |leaf_model|
12 self.__send__ self.class.my_manifest.associations.child_element_name(leaf_model)
14 define_method("leafs_items") do
15 self.class.child_models.map {|child_model|
16 self.leaf_items child_model
27 self.leafs_items.each do |item|
32 def self.collect_element_value elements, name
34 if e['_destroy'] or e[:_destroy]
42 def self.validate_serial ary, offset = 0
44 ary.compact.sort.each do |n|
45 break false unless n == i
48 ary.compact.size == i - offset
51 def self.validate_element_serial elements, name, offset = 0
52 self.validate_serial(self.collect_element_value(elements, name), offset)
55 def self.validate_elements_serial c
57 self.validate_element_serial(conf[:elements], conf[:name], conf[:offset]) ? nil : false
61 def validate_serial_list
63 {:elements => self.leafs_items, :name => :t, :offset => 0},
64 {:elements => self.leafs_items, :name => :z, :offset => 1}
69 # r1 = Panel.validate_elements_id validate_id_list
70 self.class.validate_elements_serial validate_serial_list
75 self.class.transaction do
76 self.leafs_items.each do |leaf|
77 raise ActiveRecord::Rollback unless leaf.destroy_and_shorten
80 raise ActiveRecord::Rollback unless res