Commit 32b8186c authored by Jérome Perrin's avatar Jérome Perrin

item: display item tracking with graph editor

parent 77d31fe3
<?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>_body</string> </key>
<value> <string>import json\n
portal = context.getPortalObject()\n
graph = {\'node\': {}, \'edge\': {}}\n
\n
\n
class_definition = {\n
\'movement\': {\n
\'_class\': \'edge\',\n
\'type\': \'object\',\n
\'description\': \'Movement changing the location of the item\',\n
\'properties\': { }\n
},\n
\'node\': {\n
\'_class\': \'node\',\n
\'type\': \'object\',\n
\'description\': \'A Node where the item was moved to\',\n
\'properties\': { },\n
},\n
}\n
\n
for i, tracking in enumerate(reversed(portal.portal_simulation.getTrackingList(aggregate_uid=context.getUid()))):\n
movement = portal.portal_catalog.getObject(tracking.delivery_uid)\n
for node in (movement.getSourceValue(), movement.getDestinationValue()):\n
if node:\n
graph[\'node\'][node.getUid()] = dict(\n
_class=\'node\',\n
name=node.getTitle(),\n
link=node.absolute_url())\n
else:\n
graph[\'node\']["null"] = dict(\n
_class=\'node\',\n
name="(origin)")\n
\n
graph[\'edge\'][movement.getUid()] = dict(\n
_class="movement",\n
name="%s: %s (%s)" % (i+1, movement.getTitle(), movement.getStopDate().strftime("%Y/%m/%d")),\n
link=movement.absolute_url(),\n
source=movement.getSourceUid() or "null",\n
destination=movement.getDestinationUid() or "null")\n
return json.dumps(dict(graph=graph, class_definition=class_definition), indent=2)\n
</string> </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 @@
<value>
<list>
<string>listbox</string>
<string>my_jsplumb_graph</string>
</list>
</value>
</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