OSDN Git Service

fix form extend
[pettanr/pettanr.git] / lib / locmare / form.rb
index 584ca85..d2463d3 100644 (file)
@@ -15,7 +15,6 @@ module Locmare
       @manifest = LocalManifest.manifest.forms[@form_name]
       @template_dir = 'templates/r/form/'
       @fields = {}
-      self.init_fields
     end
     
     def each_field
@@ -56,8 +55,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]
-          @fields[field_name] = ExtendForm.new self, extend_form_name, @item, @mounted, @operators
+          extend_item = @item.boosters[boost_name].extend_item
+          @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,25 +86,29 @@ module Locmare
   end
   
   class ExtendForm < FormBase
-    attr :parent
+    attr :parent, :field_name
     
-    def initialize parent, form_name, item, mounted, submit, operators
+    def initialize parent, form_name, item, mounted, operators, field_name
       @parent = parent
+      @field_name = field_name
       super form_name, item, mounted, operators
+      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
     
+    def template_file_name
+      "extend_form"
+    end
+    
+    def template_option
+      {:form=> self}
+    end
+    
   end
   
 end