Cecile Tonglet (OpenERP) has proposed merging
lp:~openerp-dev/openobject-server/6.1-bug-932830-cto into
lp:openobject-server/6.1.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #932830 in OpenERP Server: "Diagram view with cycle: infinite loop"
https://bugs.launchpad.net/openobject-server/+bug/932830
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.1-bug-932830-cto/+merge/94132
Bug fix of infinite loop in diagram view
--
https://code.launchpad.net/~openerp-dev/openobject-server/6.1-bug-932830-cto/+merge/94132
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-server/6.1-bug-932830-cto.
=== modified file 'openerp/tools/graph.py'
--- openerp/tools/graph.py 2011-11-14 06:48:05 +0000
+++ openerp/tools/graph.py 2012-02-22 11:49:17 +0000
@@ -313,7 +313,8 @@
self.order[level] = self.order[level]+1
for sec_end in self.transitions.get(node, []):
- self.init_order(sec_end, self.result[sec_end]['x'])
+ if node!=sec_end:
+ self.init_order(sec_end, self.result[sec_end]['x'])
def order_heuristic(self):
@@ -438,33 +439,27 @@
l.reverse()
no = len(l)
- if no%2==0:
- first_half = l[no/2:]
- factor = 1
- else:
- first_half = l[no/2+1:]
- factor = 0
-
+ rest = no%2
+ first_half = l[no/2+rest:]
last_half = l[:no/2]
- i=1
- for child in first_half:
- self.result[child]['y'] = mid_pos - (i - (factor * 0.5))
- i += 1
+ for i, child in enumerate(first_half):
+ self.result[child]['y'] = mid_pos - (i+1 - (0 if rest else 0.5))
if self.transitions.get(child, False):
if last:
self.result[child]['y'] = last + len(self.transitions[child])/2 + 1
last = self.tree_order(child, last)
- if no%2:
+ if rest:
mid_node = l[no/2]
self.result[mid_node]['y'] = mid_pos
if self.transitions.get((mid_node), False):
if last:
self.result[mid_node]['y'] = last + len(self.transitions[mid_node])/2 + 1
- last = self.tree_order(mid_node)
+ if node!=mid_node:
+ last = self.tree_order(mid_node)
else:
if last:
self.result[mid_node]['y'] = last + 1
@@ -474,7 +469,7 @@
i=1
last_child = None
for child in last_half:
- self.result[child]['y'] = mid_pos + (i - (factor * 0.5))
+ self.result[child]['y'] = mid_pos + (i - (0 if rest else 0.5))
last_child = child
i += 1
if self.transitions.get(child, False):
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp