OSDN Git Service

fix bucket
[pettanr/pettanr.git] / lib / locmare / form.rb
index a9e3054..179c500 100644 (file)
@@ -4,7 +4,7 @@ require_dependency "locmare/form/extend_field"
 module Locmare
   class FormBase
     include FormModule
-    attr :form_name, :item, :mounted, :operators, :template_dir, 
+    attr :manifest, :form_name, :item, :mounted, :operators, :template_dir, 
       :fields
     def initialize form_name, item, mounted, operators
       @form_name = form_name
@@ -17,6 +17,10 @@ module Locmare
       @fields = {}
     end
     
+    def fold_extend_settings params
+      @item.class.fold_extend_settings params[@item.item_name]
+    end
+    
     def each_field
       @manifest.field_names.each do |field_name| 
         yield field_name, @fields[field_name]
@@ -55,9 +59,8 @@ module Locmare
       @manifest.each_field do |field_name, field_manifest| 
         if boost_name = @item.class.find_boost_name(field_name)
           extend_form_name = @item.boosters[boost_name].model_name
-          extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
           extend_item = @item.boosters[boost_name].extend_item
-          @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators
+          @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
         else
           @fields[field_name] = Field.new self, field_name, field_manifest
         end
@@ -87,23 +90,21 @@ module Locmare
   end
   
   class ExtendForm < FormBase
-    attr :parent
+    include FieldModule
+    attr :parent, :field_name, :field, :label
     
-    def initialize parent, form_name, item, mounted, operators
+    def initialize parent, form_name, item, mounted, operators, field_name
       @parent = parent
+      @field_name = field_name
       super form_name, item, mounted, operators
+      @field = Field.new @parent, @field_name, @parent.manifest.fields[@field_name]
+      @label = @field.label
       self.init_fields
     end
     
     def init_fields
       @manifest.each_field do |field_name, field_manifest| 
-        if boost_name = @item.class.find_boost_name(field_name)
-          extend_form_name = @item.boosters[boost_name].model_name
-          extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
-          @fields[field_name] = ExtendField.new self, field_name, field_manifest, @item.boosters[n].extend_item
-        else
-       #   @fields[field_name] = Field.new self, field_name, field_manifest
-        end
+        @fields[field_name] = ExtendField.new self, field_name, field_manifest
       end
     end
     
@@ -111,6 +112,10 @@ module Locmare
       "extend_form"
     end
     
+    def template_option
+      {:form=> self}
+    end
+    
   end
   
 end