lib/spiderfw/model/mixins/tree.rb in spiderfw-0.6.1 vs lib/spiderfw/model/mixins/tree.rb in spiderfw-0.6.2
- old
+ new
@@ -17,10 +17,11 @@
c = Condition.and
c[left_el] = (left..right)
q = Query.new(c)
q.order_by(left_el)
res = element.model.find(q)
+ return [] unless res
right_stack = []
res.each do |obj|
if (right_stack.length > 0)
right_stack.pop while (right_stack[right_stack.length-1] < obj.get(right_el))
obj.set(element.attributes[:tree_depth], right_stack.length)
@@ -87,10 +88,10 @@
QuerySet.autoloading(self).send("#{name}_leafs")
end
define_method("#{name}_all") do
- qs = QuerySet.new(self)
+ qs = QuerySet.static(self)
self.send("#{name}_roots").each do |root|
qs += root.tree_all(name)
end
return qs
end