OSDN Git Service

fix foreign_filter list includes
authoryasushiito <yas@pen-chan.jp>
Thu, 27 Mar 2014 23:13:16 +0000 (08:13 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 27 Mar 2014 23:13:16 +0000 (08:13 +0900)
21 files changed:
app/assets/javascripts/manifest/work/items.js.coffee.erb
app/assets/javascripts/manifest/work/list_groups.js.coffee.erb
app/models/balloon.rb
app/models/ground_color.rb
app/models/ground_picture.rb
app/models/panel_picture.rb
app/models/scroll_panel.rb
app/models/sheet_panel.rb
app/models/speech.rb
app/models/speech_balloon.rb
app/models/story.rb
app/models/story_sheet.rb
lib/local_manifest/list_group/list/includes/auto.rb
lib/locmare/list_group/list/foreign_filter.rb
lib/manifest/model/association.rb
lib/peta/binder.rb
lib/peta/element.rb
lib/peta/element_nestable_content.rb
lib/peta/leaf.rb
public/local_manifest.json
public/manifest.json

index 41defde..57179e7 100644 (file)
@@ -52,7 +52,7 @@
   speech_balloon: {\r
     type: 'element',\r
     args: {\r
   speech_balloon: {\r
     type: 'element',\r
     args: {\r
-      parent_model_name: 'speech_balloon',\r
+      parent_model_name: 'panel',\r
     },\r
   }, \r
   balloon: {\r
     },\r
   }, \r
   balloon: {\r
@@ -64,7 +64,7 @@
   speech: {\r
     type: 'element',\r
     args: {\r
   speech: {\r
     type: 'element',\r
     args: {\r
-      parent_model_name: 'scroll',\r
+      parent_model_name: 'speech_balloon',\r
     },\r
   },\r
   ground_picture: {\r
     },\r
   },\r
   ground_picture: {\r
index 14f2193..8cf7750 100644 (file)
@@ -45,7 +45,9 @@
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'scroll_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
@@ -84,7 +86,9 @@
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'comic_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
       play: {\r
         },\r
       },\r
       play: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'comic_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'sheet_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
       by_author: {\r
         type: 'foreign_filter',\r
         args: {\r
-          tree_name: 'panel_owner',\r
+          includes: {\r
+            type: 'method',\r
+          },\r
         },\r
       },\r
     },\r
         },\r
       },\r
     },\r
index a4c04cb..ebca4ef 100644 (file)
@@ -43,6 +43,16 @@ self.system_picture_id = 1
     'balloons.updated_at desc'
   end
   
     'balloons.updated_at desc'
   end
   
+  def self.by_author_list_includes
+    {
+      :speech_balloon => {
+        :panel => {
+          :author => {}
+        }
+      }
+    }
+  end
+  
   def self.list_opt
     {:speech_balloon => {:panel => {:author => {}}, :speech => {}, :speech_balloon_template => {} }}
   end
   def self.list_opt
     {:speech_balloon => {:panel => {:author => {}}, :speech => {}, :speech_balloon_template => {} }}
   end
index 581cfa9..e750723 100644 (file)
@@ -11,6 +11,14 @@ class GroundColor < Peta::Element
   validates :z, :presence => true, :numericality => {:greater_than => 0}
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   
   validates :z, :presence => true, :numericality => {:greater_than => 0}
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   
+  def self.by_author_list_includes
+    {
+      :panel => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_opt_for_panel
     {
       :ground_colors => {
   def self.list_opt_for_panel
     {
       :ground_colors => {
index eb9f38d..bed742a 100644 (file)
@@ -13,6 +13,14 @@ class GroundPicture < Peta::Element
   
   @@repeat_texts = ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']
   
   
   @@repeat_texts = ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']
   
+  def self.by_author_list_includes
+    {
+      :panel => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_opt_for_panel
     {
       :ground_pictures => {
   def self.list_opt_for_panel
     {
       :ground_pictures => {
index 2943844..e806217 100644 (file)
@@ -13,6 +13,14 @@ class PanelPicture < Peta::Element
   validates :z, :presence => true, :numericality => {:greater_than => 0}
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   
   validates :z, :presence => true, :numericality => {:greater_than => 0}
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   
+  def self.by_author_list_includes
+    {
+      :panel => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_opt_for_panel
     {
       :panel_pictures => {
   def self.list_opt_for_panel
     {
       :panel_pictures => {
index 8d9f422..3b8b76c 100644 (file)
@@ -33,6 +33,14 @@ class ScrollPanel < Peta::Leaf
     'scrolls.visible > 0'
   end
   
     'scrolls.visible > 0'
   end
   
+  def self.by_author_list_includes
+    {
+      :scroll => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.play_list_where cid
     ['scroll_panels.scroll_id = ?', cid]
   end
   def self.play_list_where cid
     ['scroll_panels.scroll_id = ?', cid]
   end
index 2894484..1561234 100644 (file)
@@ -53,6 +53,14 @@ class SheetPanel < Peta::Element
     SheetPanel.where(self.play_list_where(sheet.id)).includes(SheetPanel.list_opt).order('sheet_panels.t')
   end
   
     SheetPanel.where(self.play_list_where(sheet.id)).includes(SheetPanel.list_opt).order('sheet_panels.t')
   end
   
+  def self.by_author_list_includes
+    {
+      :sheet => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_opt
     {
       :author => {}, 
   def self.list_opt
     {
       :author => {}, 
index 36cae49..cf81249 100644 (file)
@@ -60,6 +60,16 @@ class Speech < Peta::Element
     'speeches.updated_at desc'
   end
   
     'speeches.updated_at desc'
   end
   
+  def self.by_author_list_includes
+    {
+      :speech_balloon => {
+        :panel => {
+          :author => {}
+        }
+      }
+    }
+  end
+  
   def self.list_opt
     {:speech_balloon => {:panel => {:author => {}}, :balloon => {}, :speech_balloon_template => {}} }
   end
   def self.list_opt
     {:speech_balloon => {:panel => {:author => {}}, :balloon => {}, :speech_balloon_template => {}} }
   end
index 098e0d0..a7f08e4 100644 (file)
@@ -15,6 +15,14 @@ class SpeechBalloon < Peta::Element
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   validates :settings, :extend_speech_balloon => true
   
   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
   validates :settings, :extend_speech_balloon => true
   
+  def self.by_author_list_includes
+    {
+      :panel => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_opt_for_panel
     {
       :speech_balloons => {:balloon => {}, :speech => {}}
   def self.list_opt_for_panel
     {
       :speech_balloons => {:balloon => {}, :speech => {}}
index 6d2aaf9..efb6666 100644 (file)
@@ -51,6 +51,14 @@ class Story < Peta::Binder
     {:comic => {:author => {}} }
   end
   
     {:comic => {:author => {}} }
   end
   
+  def self.by_author_list_includes
+    {
+      :comic => {
+        :author => {}
+      }
+    }
+  end
+  
   def self.list_json_opt
     {:include => {:comic => {:include => {:author => {}}} }}
   end
   def self.list_json_opt
     {:include => {:comic => {:include => {:author => {}}} }}
   end
index d1a3961..e0f98ed 100644 (file)
@@ -59,6 +59,16 @@ class StorySheet < Peta::Leaf
     Kaminari.paginate_array(Array.new(StorySheet.where(self.play_sheet_where(story.id)).includes(StorySheet.list_opt).count, nil)).page(page).per(1)
   end
   
     Kaminari.paginate_array(Array.new(StorySheet.where(self.play_sheet_where(story.id)).includes(StorySheet.list_opt).count, nil)).page(page).per(1)
   end
   
+  def self.by_author_list_includes
+    {
+      :story => {
+        :comic => {
+          :author => {}
+        }
+      }
+    }
+  end
+  
   def self.list_opt
     {
       :author => {}, 
   def self.list_opt
     {
       :author => {}, 
index 2666168..6e6effd 100644 (file)
@@ -24,9 +24,7 @@ module LocalManifest
           end
           
           def parent_includes parent_model
           end
           
           def parent_includes parent_model
- p  parent_model.item_name
             if parent_model.parent_model
             if parent_model.parent_model
- p  ({parent_model.item_name => parent_includes(parent_model.parent_model)})
               {parent_model.item_name => parent_includes(parent_model.parent_model)}
             else
               {parent_model.item_name => {}}
               {parent_model.item_name => parent_includes(parent_model.parent_model)}
             else
               {parent_model.item_name => {}}
@@ -34,7 +32,6 @@ module LocalManifest
           end
           
           def includes
           end
           
           def includes
- p  self.model.item_name
             if self.model.parent_model
               self.parent_includes self.model.parent_model
             else
             if self.model.parent_model
               self.parent_includes self.model.parent_model
             else
index 007e072..e25b3ef 100644 (file)
@@ -15,7 +15,10 @@ module Locmare
       end
       
       def include_hash
       end
       
       def include_hash
-        @model_manifest.tree[@tree_name].include_hash
+        # no call super
+        # foreign_filter includes manifest must configure type: 'method'
+        # super
+        @includes.includes
       end
       
     end
       end
       
     end
index b9e101c..f1dfbe3 100644 (file)
@@ -35,7 +35,6 @@ module Manifest
           if @parent.classify.my_peta.type == 'leaf'
             next unless belongs_to_manifest.model.my_peta.type == 'binder'
           end
           if @parent.classify.my_peta.type == 'leaf'
             next unless belongs_to_manifest.model.my_peta.type == 'binder'
           end
- p  [@parent.classify  , belongs_to_manifest.model]
           yield belongs_to_manifest.model
         end
       end
           yield belongs_to_manifest.model
         end
       end
index 64b52e6..dda200d 100644 (file)
@@ -4,17 +4,9 @@ module Peta
     
     # Dynamic Methods
     
     
     # Dynamic Methods
     
-    def self._leaf_tree_name
-      self.my_peta.leaf_tree_name
-    end
-    
     def self.load_manifest
       super
       # Class Methods
     def self.load_manifest
       super
       # Class Methods
-      n = self._leaf_tree_name
-      define_singleton_method("leaf_tree_name") do 
-        n
-      end
       # Instance Methods
       define_method("leaf_items") do |leaf_model|
         self.__send__ self.class.my_manifest.associations.child_element_name(leaf_model)
       # Instance Methods
       define_method("leaf_items") do |leaf_model|
         self.__send__ self.class.my_manifest.associations.child_element_name(leaf_model)
index d666e71..e1abd93 100644 (file)
@@ -7,10 +7,9 @@ module Peta
     def self.load_manifest
       super
       # Class Methods
     def self.load_manifest
       super
       # Class Methods
-      self.my_manifest.associations.each_parent_model do |parent_model|
-        define_singleton_method("parent_model") do 
-          parent_model
-        end
+      pm = Manifest.manifest.models[self.my_peta.parent_model_name].classify
+      define_singleton_method("parent_model") do 
+        pm
       end
       # Instance Methods
     end
       end
       # Instance Methods
     end
index 315bdce..223b987 100644 (file)
@@ -4,21 +4,9 @@ module Peta
     
     # Dynamic Methods
     
     
     # Dynamic Methods
     
-    def self._element_tree_name
-      self.my_peta.element_tree_name
-    end
-    
     def self.load_manifest
       super
       # Class Methods
     def self.load_manifest
       super
       # Class Methods
-      n = self._element_tree_name
-      define_singleton_method("element_tree_name") do 
-        n
-      end
-      c = self.child_models(self.element_tree_name)
-      define_singleton_method("element_models") do 
-        c
-      end
       # Instance Methods
       define_method("element_items") do |element_model|
         self.__send__ self.class.my_manifest.associations.child_element_name(element_model)
       # Instance Methods
       define_method("element_items") do |element_model|
         self.__send__ self.class.my_manifest.associations.child_element_name(element_model)
index 81574a9..243c60d 100644 (file)
@@ -7,10 +7,9 @@ module Peta
     def self.load_manifest
       super
       # Class Methods
     def self.load_manifest
       super
       # Class Methods
-      self.my_manifest.associations.each_parent_model do |parent_model|
-        define_singleton_method("parent_model") do 
-          parent_model
-        end
+      pm = Manifest.manifest.models[self.my_peta.parent_model_name].classify
+      define_singleton_method("parent_model") do 
+        pm
       end
       # Instance Methods
     end
       end
       # Instance Methods
     end
index 56bd0d6..e7a991f 100644 (file)
@@ -45,7 +45,9 @@
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "scroll_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
@@ -84,7 +86,9 @@
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "comic_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         },\r
         "play": {\r
           }\r
         },\r
         "play": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "comic_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "sheet_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
         "by_author": {\r
           "type": "foreign_filter",\r
           "args": {\r
-            "tree_name": "panel_owner"\r
+            "includes": {\r
+              "type": "method"\r
+            }\r
           }\r
         }\r
       }\r
           }\r
         }\r
       }\r
index 7d86b1a..3171459 100644 (file)
@@ -47,7 +47,7 @@
     "speech_balloon": {\r
       "type": "element",\r
       "args": {\r
     "speech_balloon": {\r
       "type": "element",\r
       "args": {\r
-        "parent_model_name": "speech_balloon"\r
+        "parent_model_name": "panel"\r
       }\r
     },\r
     "balloon": {\r
       }\r
     },\r
     "balloon": {\r
@@ -59,7 +59,7 @@
     "speech": {\r
       "type": "element",\r
       "args": {\r
     "speech": {\r
       "type": "element",\r
       "args": {\r
-        "parent_model_name": "scroll"\r
+        "parent_model_name": "speech_balloon"\r
       }\r
     },\r
     "ground_picture": {\r
       }\r
     },\r
     "ground_picture": {\r