[IMP]:improved diagram code with signal in graph.

bzr revid: apa@tinyerp.com-20100222101823-ksphjjdecxjn6cnp
This commit is contained in:
apa-tiny 2010-02-22 15:48:23 +05:30
parent 802f93ef25
commit 6eadc92bee
2 changed files with 23 additions and 23 deletions

View File

@ -132,18 +132,18 @@ class view(osv.osv):
return super(view, self).write(cr, uid, ids, vals, context)
def graph_get(self, cr, uid, id, model, node_obj, conn_obj, src_node, des_node, scale,context={}):
nodes= []
nodes_name = []
transitions = []
start = []
tres = {}
signal = {}
no_ancester = []
def graph_get(self, cr, uid, id, model, node_obj, conn_obj, src_node, des_node,signal,scale,context={}):
nodes=[]
nodes_name=[]
transitions=[]
start=[]
tres={}
sig={}
no_ancester=[]
_Model_Obj = self.pool.get(model)
_Node_Obj = self.pool.get(node_obj)
_Arrow_Obj = self.pool.get(conn_obj)
_Model_Obj=self.pool.get(model)
_Node_Obj=self.pool.get(node_obj)
_Arrow_Obj=self.pool.get(conn_obj)
for model_key,model_value in _Model_Obj._columns.items():
if model_value._type=='one2many':
@ -172,10 +172,9 @@ class view(osv.osv):
for t in _Arrow_Obj.read(cr,uid, a[_Destination_Field],[]):
transitions.append((a['id'], t[des_node][0]))
tres[str(t['id'])] = (a['id'],t[des_node][0])
if t['signal']:
signal[str(t['id'])] = t['signal']
else:
signal[str(t['id'])] = t['condition']
if t.has_key(str(signal)) and str(t[signal])=='False':
t[signal]=' '
sig[str(t['id'])] = (a['id'],t.get(signal,' '))
g = graph(nodes, transitions, no_ancester)
g.process(start)
g.scale(*scale)
@ -184,7 +183,7 @@ class view(osv.osv):
for node in nodes_name:
results[str(node[0])] = result[node[0]]
results[str(node[0])]['name'] = node[1]
return {'nodes': results, 'transitions': tres, 'signal' : signal}
return {'nodes': results, 'transitions': tres, 'signal' : sig}
view()
class view_sc(osv.osv):

View File

@ -32,7 +32,7 @@
<rng:define name="diagram">
<rng:element name="diagram">
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="node"/>
@ -41,7 +41,7 @@
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="node">
<rng:element name="node">
<rng:attribute name="object"/>
@ -49,25 +49,26 @@
<rng:optional><rng:attribute name="bgcolor"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
<rng:ref name="field"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="arrow">
<rng:element name="arrow">
<rng:attribute name="object" />
<rng:attribute name="source" />
<rng:attribute name="destination" />
<rng:attribute name="destination" />
<rng:optional><rng:attribute name="signal"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
<rng:ref name="field"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="tree">
<rng:element name="tree">
<rng:optional><rng:attribute name="string"/></rng:optional>