Commit a0668dd8 authored by Jérome Perrin's avatar Jérome Perrin

item: display item tracking with graph editor

parent cd739bc6
Pipeline #2552 skipped
import json
portal = context.getPortalObject()
graph = {'node': {}, 'edge': {}}
class_definition = {
'movement': {
'_class': 'edge',
'type': 'object',
'description': 'Movement changing the location of the item',
'properties': { }
},
'node': {
'_class': 'node',
'type': 'object',
'description': 'A Node where the item was moved to',
'properties': { },
},
}
for i, tracking in enumerate(reversed(portal.portal_simulation.getTrackingList(aggregate_uid=context.getUid()))):
movement = portal.portal_catalog.getObject(tracking.delivery_uid)
for node in (movement.getSourceValue(), movement.getDestinationValue()):
if node:
graph['node'][node.getUid()] = dict(
_class='node',
name=node.getTitle(),
link=node.absolute_url())
else:
graph['node']["null"] = dict(
_class='node',
name="(origin)")
graph['edge'][movement.getUid()] = dict(
_class="movement",
name="%s: %s (%s)" % (i+1, movement.getTitle(), movement.getStopDate().strftime("%Y/%m/%d")),
link=movement.absolute_url(),
source=movement.getSourceUid() or "null",
destination=movement.getDestinationUid() or "null")
return json.dumps(dict(graph=graph, class_definition=class_definition), indent=2)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Item_getTrackingListGraphAsJSON</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
<value> <value>
<list> <list>
<string>listbox</string> <string>listbox</string>
<string>my_jsplumb_graph</string>
</list> </list>
</value> </value>
</item> </item>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment