OSDN Git Service

fix
[pettanr/pettanr.git] / app / models / panel.rb
index b601cb0..bbdf9ed 100644 (file)
@@ -30,9 +30,15 @@ class Panel < Peta::Root
   end
   
   def visible? operators
-    return true if super
-    return true if self.new_record?
-    self.publish?
+    case super
+    when nil # super return
+      return true
+    when false
+      return false
+    else
+      return true if self.new_record?
+      self.publish?
+    end
   end
   
   def usable? operators
@@ -58,7 +64,7 @@ class Panel < Peta::Root
     }
   end
   
-  def self.list_where
+  def self.public_list_where
     'panels.publish > 0'
   end
   
@@ -156,14 +162,12 @@ class Panel < Peta::Root
   
   def self.collect_element_value elements, name
     elements.map {|e|
-      e.map {|o|
-        if o['_destroy'] or o[:_destroy]
-          nil
-        else
-          o[name]
-        end
-      }.compact
-    }.flatten
+      if e['_destroy'] or e[:_destroy]
+        nil
+      else
+        e[name]
+      end
+    }
   end
   
   def self.validate_serial ary, offset = 0
@@ -205,9 +209,7 @@ class Panel < Peta::Root
     self.overwrite operators
     res = false
     Panel.transaction do
-      self.panel_elements.each do |elm|
-        elm.boost
-      end
+      self.boosts 'post'
 #self.publish = nil
       res = self.save
       unless validate_child