Commit c12b8f3b authored by wenjie.zheng's avatar wenjie.zheng

Merge branch 'generic_master' into erp5_workflow_converted

parents ace3c43d f6cad049
......@@ -72,7 +72,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Report à nouveau (solde débiteur) </string> </value>
<value> <string>Report à nouveau (solde débiteur)</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -90,7 +90,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>CONFEDERATION, FEDERATION, UNION, ASSOCIATIONS AFFILIEES ET SOCIETAIRES </string> </value>
<value> <string>CONFEDERATION, FEDERATION, UNION, ASSOCIATIONS AFFILIEES ET SOCIETAIRES</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -72,7 +72,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Autres charges exceptionnelles </string> </value>
<value> <string>Autres charges exceptionnelles</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -40,4 +40,4 @@
set quantity unit on invoice lines
2009-06-19 tatuya
 * initial creation so that it enables to create invoices independently
\ No newline at end of file
* initial creation so that it enables to create invoices independently
\ No newline at end of file
......@@ -57,7 +57,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Validation Workflow</string> </value>
<value> <string>Checkbook Validation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -38,7 +38,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Simulation Interaction Workflow</string> </value>
<value> <string>Delivery Movement Simulation Interaction Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -38,7 +38,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Simulation Interaction Workflow</string> </value>
<value> <string>Delivery Simulation Interaction Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -54,7 +54,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>Embedded Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -55,7 +55,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Solver Workflow</string> </value>
<value> <string>Solver Process Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -32,7 +32,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Budget Workflow</string> </value>
<value> <string>Budget Transaction Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -221,7 +221,7 @@
Tips: <br>\n
<br>\n
<li> You can use this sample file <a href="standard_portal_types_roles.ods"> Consulting.Configurator.Sample.Roles.Configuration.Sheet.ods </a></li>
<li> You can use this sample file <a href="standard_portal_types_roles.ods">Consulting.Configurator.Sample.Roles.Configuration.Sheet.ods</a></li>
]]></string> </value>
</item>
......
......@@ -91,7 +91,7 @@
<list>
<tuple>
<string>Domain</string>
<string> Domain</string>
<string>Domain</string>
</tuple>
</list>
</value>
......
......@@ -107,7 +107,7 @@
<list>
<tuple>
<string>Domain</string>
<string> Domain</string>
<string>Domain</string>
</tuple>
</list>
</value>
......
......@@ -108,7 +108,7 @@
<list>
<tuple>
<string>Domain</string>
<string> Domain</string>
<string>Domain</string>
</tuple>
</list>
</value>
......
......@@ -59,7 +59,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>EGov Universal Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -38,7 +38,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Interaction Workflow Definition</string> </value>
<value> <string>Portal Type Interaction Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -57,7 +57,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Validation Workflow</string> </value>
<value> <string>External Account Validation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -58,7 +58,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>Discussion Thread Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts31679155.69</string> </value>
<value> <string>ts46846043.54</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
......@@ -39,6 +39,7 @@
<script src="../lib/handlebars.min.js" type="text/javascript"></script>\n
\n
<script src="../dream/mixin_promise.js" type="text/javascript"></script>\n
<script src="springy.js" type="text/javascript"></script>\n
<script src="jsplumb.js" type="text/javascript"></script>\n
\n
<script id="node-template" type="text/x-handlebars-template">\n
......@@ -81,7 +82,7 @@
</item>
<item>
<key> <string>size</string> </key>
<value> <int>1927</int> </value>
<value> <int>1989</int> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts33995381.39</string> </value>
<value> <string>ts47067792.54</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
......@@ -45,14 +45,13 @@
* along with DREAM. If not, see <http://www.gnu.org/licenses/>.\n
* ==========================================================================*/\n
/*global console, window, RSVP, rJS, $, jsPlumb, Handlebars,\n
loopEventListener, promiseEventListener, DOMParser */\n
loopEventListener, promiseEventListener, DOMParser, Springy */\n
/*jslint unparam: true todo: true */\n
(function(RSVP, rJS, $, jsPlumb, Handlebars, loopEventListener, promiseEventListener, DOMParser) {\n
(function(RSVP, rJS, $, jsPlumb, Handlebars, loopEventListener, promiseEventListener, DOMParser, Springy) {\n
"use strict";\n
/* TODO:\n
* less dependancies ( promise event listner ? )\n
* no more handlebars\n
* auto springy layout\n
* id should not always be modifiable\n
* drop zoom level\n
* rename draggable()\n
......@@ -64,6 +63,75 @@
node_template_source = gadget_klass.__template_element.getElementById("node-template").innerHTML,\n
node_template = Handlebars.compile(node_template_source),\n
popup_edit_template = gadget_klass.__template_element.getElementById("popup-edit-template").innerHTML;\n
\n
function layoutGraph(graph_data) {\n
// Promise returning the graph once springy calculated the layout.\n
// If the graph already contain layout, return it as is.\n
function resolver(resolve, reject) {\n
try {\n
var springy_graph = new Springy.Graph(),\n
max_iterations = 100, // we stop layout after 100 iterations.\n
loop = 0,\n
springy_nodes = {},\n
drawn_nodes = {},\n
min_x=100, max_x=0, min_y=100, max_y=0;\n
// make a Springy graph with our graph\n
$.each(graph_data.node, function(key, value) {\n
if (value.coordinate) {\n
// graph already has a layout, no need to layout again\n
return resolve(graph_data);\n
}\n
springy_nodes[key] = springy_graph.newNode({node_id: key});\n
});\n
$.each(graph_data.edge, function(key, value) {\n
springy_graph.newEdge(springy_nodes[value.source], springy_nodes[value.destination]);\n
});\n
\n
var layout = new Springy.Layout.ForceDirected(springy_graph, 400.0, 400.0, 0.5);\n
var renderer = new Springy.Renderer(\n
layout,\n
function clear() {},\n
function drawEdge(edge, p1, p2) {},\n
function drawNode(node, p) {\n
drawn_nodes[node.data.node_id] = p;\n
if ( ++loop > max_iterations) {\n
renderer.stop();\n
}\n
},\n
function onRenderStop() {\n
// calculate the min and max of x and y\n
$.each(graph_data.node, function(key, value) {\n
if (drawn_nodes[key].x > max_x) {\n
max_x = drawn_nodes[key].x;\n
}\n
if (drawn_nodes[key].x < min_x) {\n
min_x = drawn_nodes[key].x;\n
}\n
if (drawn_nodes[key].y > max_y) {\n
max_y = drawn_nodes[key].y;\n
}\n
if (drawn_nodes[key].y < min_y) {\n
min_y = drawn_nodes[key].y;\n
}\n
});\n
// "resample" the positions from 0 to 1, the scale used by this gadget.\n
// We keep a 5% margin\n
$.each(graph_data.node, function(key, value) {\n
graph_data.node[key].coordinate = {\n
left: 0.05 + 0.9 * (drawn_nodes[key].x - min_x) / (max_x - min_x),\n
top: 0.05 + 0.9 * (drawn_nodes[key].y - min_y) / (max_y - min_y)\n
};\n
});\n
resolve(graph_data);\n
}\n
);\n
renderer.start();\n
} catch (e) {\n
reject(e);\n
}\n
}\n
return new RSVP.Promise(resolver);\n
}\n
\n
function loopJsplumbBind(gadget, type, callback) {\n
//////////////////////////\n
......@@ -247,30 +315,6 @@
element.css(j, new_value);\n
});\n
}\n
// function positionGraph(gadget) {\n
// $.ajax(\n
// \'/positionGraph\',\n
// {\n
// data: JSON.stringify(getData()),\n
// contentType: \'application/json\',\n
// type: \'POST\',\n
// success: function (data, textStatus, jqXHR) {\n
// $.each(data, function (node, pos) {\n
// convertToAbsolutePosition(\n
// gadget,\n
// pos.left,\n
// pos.top\n
// );\n
// updateElementCoordinate(gadget, node, {\n
// top: pos.top,\n
// left: pos.left\n
// });\n
// });\n
// redraw(gadget);\n
// }\n
// }\n
// );\n
// }\n
\n
function removeElement(gadget, node_id) {\n
var element_id = gadget.props.node_id_to_dom_element_id[node_id];\n
......@@ -754,12 +798,17 @@
*/\n
if (data) {\n
this.props.data = JSON.parse(data);\n
// load the data\n
$.each(this.props.data.graph.node, function(key, value) {\n
addNode(gadget, key, value);\n
});\n
$.each(this.props.data.graph.edge, function(key, value) {\n
addEdge(gadget, key, value);\n
\n
// XXX how to make queue ??\n
return layoutGraph(this.props.data.graph).then(function(graph_data) {\n
gadget.props.data.graph = graph_data;\n
// load the data\n
$.each(gadget.props.data.graph.node, function(key, value) {\n
addNode(gadget, key, value);\n
});\n
$.each(gadget.props.data.graph.edge, function(key, value) {\n
addEdge(gadget, key, value);\n
});\n
});\n
}\n
})\n
......@@ -815,7 +864,7 @@
]);\n
});\n
\n
})(RSVP, rJS, $, jsPlumb, Handlebars, loopEventListener, promiseEventListener, DOMParser);
})(RSVP, rJS, $, jsPlumb, Handlebars, loopEventListener, promiseEventListener, DOMParser, Springy);
]]></string> </value>
</item>
......@@ -825,7 +874,7 @@
</item>
<item>
<key> <string>size</string> </key>
<value> <int>29435</int> </value>
<value> <int>31544</int> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -8,9 +8,33 @@ def Listbox_getListMethodName(self, field):
return list_method_name
def Field_getSubFieldKeyDict(self, field, id, key=None):
def Field_getSubFieldKeyDict(self, field, field_id, key=None):
"""XXX"""
return field.generate_subfield_key(id, key=key)
return field.generate_subfield_key(field_id, key=key)
def Field_getDefaultValue(self, field, key, value, REQUEST):
return field._get_default(key, value, REQUEST)
\ No newline at end of file
return field._get_default(key, value, REQUEST)
def WorkflowTool_listActionParameterList(self):
action_list = self.listActions()
info = self._getOAI(None)
workflow_dict = {}
result_list = []
for action in action_list:
if (action['workflow_id'] not in workflow_dict):
workflow = self.getWorkflowById(action['workflow_id'])
workflow_dict[action['workflow_id']] = workflow.getWorklistVariableMatchDict(info, check_guard=False)
query = workflow_dict[action['workflow_id']][action['worklist_id']]
query.pop('metadata')
result_list.append({
'count': action['count'],
'name': action['name'],
'local_roles': query.pop('local_roles'),
'query': query
})
return result_list
......@@ -74,13 +74,14 @@ return context.ERP5Document_getHateoas(\n
form_relative_url=form_relative_url,\n
bulk_list=bulk_list,\n
sort_on=sort_on,\n
local_roles=local_roles,\n
restricted=1\n
)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, form=None, relative_url=None, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=None</string> </value>
<value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, local_roles=None, form=None, relative_url=None, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -75,18 +75,19 @@ url_template_dict = {\n
"traverse_template": "%(root_url)s/%(script_id)s?mode=traverse" + \\\n
"{&relative_url,view}",\n
"search_template": "%(root_url)s/%(script_id)s?mode=search" + \\\n
"{&query,select_list*,limit*,sort_on*}",\n
"{&query,select_list*,limit*,sort_on*,local_roles*}",\n
"worklist_template": "%(root_url)s/%(script_id)s?mode=worklist",\n
"custom_search_template": "%(root_url)s/%(script_id)s?mode=search" + \\\n
"&relative_url=%(relative_url)s" \\\n
"&form_relative_url=%(form_relative_url)s" \\\n
"&list_method=%(list_method)s" \\\n
"&default_param_json=%(default_param_json)s" \\\n
"{&query,select_list*,limit*,sort_on*}",\n
"{&query,select_list*,limit*,sort_on*,local_roles*}",\n
"custom_search_template_no_editable": "%(root_url)s/%(script_id)s?mode=search" + \\\n
"&relative_url=%(relative_url)s" \\\n
"&list_method=%(list_method)s" \\\n
"&default_param_json=%(default_param_json)s" \\\n
"{&query,select_list*,limit*,sort_on*}",\n
"{&query,select_list*,limit*,sort_on*,local_roles*}",\n
"new_content_action": "%(root_url)s/%(script_id)s?mode=newContent",\n
"bulk_action": "%(root_url)s/%(script_id)s?mode=bulk",\n
# XXX View is set by default to empty\n
......@@ -866,6 +867,13 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
if traversed_document_portal_type == "ERP5 Form":\n
renderFormDefinition(traversed_document, result_dict)\n
REQUEST.set("X-HATEOAS-CACHE", 1)\n
elif relative_url == \'portal_workflow\':\n
result_dict[\'_links\'][\'action_worklist\'] = {\n
"href": url_template_dict[\'worklist_template\'] % {\n
"root_url": site_root.absolute_url(),\n
"script_id": script.id\n
}\n
}\n
\n
# Define document action\n
if action_dict:\n
......@@ -927,9 +935,9 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
tmp_sort_on += (tuple([x for x in grain.split(",")]),)\n
\n
if query:\n
sql_list = callable_list_method(full_text=query, limit=limit, sort_on=tmp_sort_on, **catalog_kw)\n
sql_list = callable_list_method(full_text=query, limit=limit, sort_on=tmp_sort_on, local_roles=local_roles, **catalog_kw)\n
else:\n
sql_list = callable_list_method(limit=limit, sort_on=tmp_sort_on, **catalog_kw)\n
sql_list = callable_list_method(limit=limit, sort_on=tmp_sort_on, local_roles=local_roles, **catalog_kw)\n
\n
result_list = []\n
\n
......@@ -1016,6 +1024,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
result_dict[\'_embedded\'] = {"contents": result_list}\n
\n
result_dict[\'_query\'] = query\n
result_dict[\'_local_roles\'] = local_roles\n
result_dict[\'_limit\'] = limit\n
result_dict[\'_select_list\'] = select_list\n
\n
......@@ -1063,6 +1072,44 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
return ""\n
result_dict["result_list"] = [calculateHateoas(mode="traverse", **x) for x in json.loads(bulk_list)]\n
\n
elif mode == \'worklist\':\n
#################################################\n
# Return all worklist jio urls\n
#################################################\n
if REQUEST.other[\'method\'] != "GET":\n
response.setStatus(405)\n
return ""\n
action_list = portal.portal_workflow.WorkflowTool_listActionParameterList()\n
work_list = []\n
for action in action_list:\n
query = sql_catalog.buildQuery(action[\'query\'])\\\n
.asSearchTextExpression(sql_catalog)\n
\n
if (action[\'local_roles\']):\n
# Hack to consider local_roles as a valid catalog parameter\n
role_query = sql_catalog.buildQuery({\'simulation_state\': action[\'local_roles\']})\\\n
.asSearchTextExpression(sql_catalog)\n
\n
query += \' AND %s\' % role_query.replace(\'simulation_state\', \'local_roles\')\n
\n
portal_type = action[\'query\'].get(\'portal_type\', None)\n
if (portal_type):\n
if not same_type(portal_type, \'\'):\n
portal_type = portal_type[0]\n
\n
work_list.append({\n
\'href\': url_template_dict["jio_search_template"] % {\n
"query": make_query({"query": query})\n
},\n
\'name\': action[\'name\'],\n
\'count\': action[\'count\'],\n
\'module\': default_document_uri_template % {\n
"relative_url": portal.getDefaultModuleId(portal_type)\n
}\n
})\n
\n
result_dict["worklist"] = work_list\n
\n
else:\n
raise NotImplementedError("Unsupported mode %s" % mode)\n
\n
......@@ -1071,6 +1118,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
response.setHeader(\'Content-Type\', mime_type)\n
hateoas = calculateHateoas(is_portal=temp_is_portal, is_site_root=temp_is_site_root,\n
traversed_document=temp_traversed_document,\n
relative_url=relative_url,\n
REQUEST=REQUEST, response=response, view=view, mode=mode,\n
query=query, select_list=select_list, limit=limit, form=form,\n
restricted=restricted, list_method=list_method,\n
......@@ -1086,7 +1134,7 @@ else:\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, form=None, relative_url=None, restricted=0, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=()</string> </value>
<value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, local_roles=None, form=None, relative_url=None, restricted=0, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=()</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_function</string> </key>
<value> <string>WorkflowTool_listActionParameterList</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>HalStyle</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WorkflowTool_listActionParameterList</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -47,6 +47,16 @@ def simulate(script_id, params_string, code_string):
return decorated
return upperWrap
def createIndexedDocument():
def decorator(func):
def wrapped(self, *args, **kwargs):
self._makeDocument()
self.portal.portal_caches.clearAllCache()
self.tic()
return func(self, *args, **kwargs)
return wrapped
return decorator
def do_fake_request(request_method, headers=None):
__version__ = "0.1"
if (headers is None):
......@@ -348,7 +358,7 @@ class TestERP5Document_getHateoas_mode_root(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_links']['type']['name'], document.getPortalType())
self.assertEqual(result_dict['_links']['raw_search']['href'],
"%s/web_site_module/hateoas/ERP5Document_getHateoas?mode=search{&query,select_list*,limit*,sort_on*}" % self.portal.absolute_url())
"%s/web_site_module/hateoas/ERP5Document_getHateoas?mode=search{&query,select_list*,limit*,sort_on*,local_roles*}" % self.portal.absolute_url())
self.assertEqual(result_dict['_links']['raw_search']['templated'], True)
self.assertEqual(result_dict['_links']['raw_search']['name'], "Raw Search")
......@@ -436,6 +446,24 @@ class TestERP5Document_getHateoas_mode_traverse(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['title'].encode("UTF-8"), document.getTitle())
self.assertEqual(result_dict['_debug'], "traverse")
@simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs',
'return "application/hal+json"')
@changeSkin('Hal')
def test_getHateoasDocument_portal_workflow(self):
fake_request = do_fake_request("GET")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="traverse", relative_url='portal_workflow')
self.assertEquals(fake_request.RESPONSE.status, 200)
self.assertEquals(fake_request.RESPONSE.getHeader('Content-Type'),
"application/hal+json"
)
result_dict = json.loads(result)
self.assertEqual(result_dict['_links']['self'], {"href": "http://example.org/bar"})
self.assertEqual(result_dict['_links']['action_worklist']['href'],
"%s/web_site_module/hateoas/ERP5Document_getHateoas?mode=worklist" % self.portal.absolute_url())
@simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs',
......@@ -612,6 +640,7 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_debug'], "search")
self.assertEqual(result_dict['_limit'], 10)
self.assertEqual(result_dict['_query'], None)
self.assertEqual(result_dict['_local_roles'], None)
self.assertEqual(result_dict['_select_list'], [])
self.assertEqual(len(result_dict['_embedded']['contents']), 10)
......@@ -635,6 +664,7 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_debug'], "search")
self.assertEqual(result_dict['_limit'], 1)
self.assertEqual(result_dict['_query'], None)
self.assertEqual(result_dict['_local_roles'], None)
self.assertEqual(result_dict['_select_list'], [])
self.assertEqual(len(result_dict['_embedded']['contents']), 1)
......@@ -661,6 +691,7 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_debug'], "search")
self.assertEqual(result_dict['_limit'], 10)
self.assertEqual(result_dict['_query'], None)
self.assertEqual(result_dict['_local_roles'], None)
self.assertEqual(result_dict['_select_list'], ["id", "relative_url"])
self.assertEqual(len(result_dict['_embedded']['contents']), 10)
......@@ -686,10 +717,33 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_debug'], "search")
self.assertEqual(result_dict['_limit'], 10)
self.assertEqual(result_dict['_query'], "ANIMPOSSIBLECOUSCOUSVALUEFOOTOFINDINDATA")
self.assertEqual(result_dict['_local_roles'], None)
self.assertEqual(result_dict['_select_list'], [])
self.assertEqual(len(result_dict['_embedded']['contents']), 0)
@simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs',
'return "application/hal+json"')
@changeSkin('Hal')
def test_getHateoas_local_roles_param(self):
fake_request = do_fake_request("GET")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="search", local_roles=["Assignor", "Assignee"])
self.assertEquals(fake_request.RESPONSE.status, 200)
self.assertEquals(fake_request.RESPONSE.getHeader('Content-Type'),
"application/hal+json"
)
result_dict = json.loads(result)
self.assertEqual(result_dict['_links']['self'], {"href": "http://example.org/bar"})
self.assertEqual(result_dict['_debug'], "search")
self.assertEqual(result_dict['_limit'], 10)
self.assertEqual(result_dict['_query'], None)
self.assertEqual(result_dict['_local_roles'], ["Assignor", "Assignee"])
self.assertEqual(result_dict['_select_list'], [])
self.assertEqual(len(result_dict['_embedded']['contents']), 0)
class TestERP5Document_getHateoas_mode_bulk(ERP5HALJSONStyleSkinsMixin):
......@@ -799,3 +853,45 @@ class TestERP5Document_getHateoas_mode_bulk(ERP5HALJSONStyleSkinsMixin):
self.portal.absolute_url(),
document.getRelativeUrl()))
self.assertEqual(result_dict['result_list'][0]['_embedded']['_view']['_actions']['put']['method'], 'POST')
class TestERP5Document_getHateoas_mode_worklist(ERP5HALJSONStyleSkinsMixin):
@simulate('Base_getRequestHeader', '*args, **kwargs',
'return "application/hal+json"')
@changeSkin('Hal')
def test_getHateoasWorklist_bad_method(self):
fake_request = do_fake_request("POST")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="worklist")
self.assertEquals(fake_request.RESPONSE.status, 405)
self.assertEquals(result, "")
@simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs',
'return "application/hal+json"')
@createIndexedDocument()
@changeSkin('Hal')
def test_getHateoasWorklist_default_view(self):
# self._makeDocument()
fake_request = do_fake_request("GET")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(
REQUEST=fake_request,
mode="worklist"
)
self.assertEquals(fake_request.RESPONSE.status, 200)
self.assertEquals(fake_request.RESPONSE.getHeader('Content-Type'),
"application/hal+json"
)
result_dict = json.loads(result)
self.assertEqual(result_dict['_links']['self'], {"href": "http://example.org/bar"})
work_list = [x for x in result_dict['worklist'] if x['name'].startswith('Draft To Validate (')]
self.assertEqual(len(work_list), 1)
self.assertTrue(work_list[0]['count'] > 0)
self.assertEqual(work_list[0]['name'], 'Draft To Validate (%i)' % work_list[0]['count'])
self.assertEqual(work_list[0]['module'], 'urn:jio:get:bar_module')
self.assertEqual(work_list[0]['href'], 'urn:jio:allDocs?query=portal_type%3A%28%22Bar%22%20OR%20%22Foo%22%29%20AND%20simulation_state%3A%22draft%22')
self.assertEqual(result_dict['_debug'], "worklist")
......@@ -38,7 +38,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Immobilisation Delivery Workflow</string> </value>
<value> <string>Immobilisation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -2,7 +2,7 @@
* Fix InvoiceTransaction_zSelectMovement. Maximum rows to retrieve is now 100. If there are more simulation movements then the rest is built next building time.
2011-11-04 tatuya
* Add default_tax_rule reference into InvoiceTransaction_selectInvoiceMovement because it was wrongly removed at c7f1a35c1abdb9f93c6353c5024aaa47bf6505e0 when replacing to specify the portal type with the rule reference.
* Add default_tax_rule reference into InvoiceTransaction_selectInvoiceMovement because it was wrongly removed at c7f1a35c1abdb9f93c6353c5024aaa47bf6505e0 when replacing to specify the portal type with the rule reference.
2011-10-12 Kazuhiko
* Fix the issue that a Invoice document can wrongly have a needless Root Applied Rule when it is created by Delivery Builder with a site which has many activity nodes.
......@@ -48,7 +48,7 @@
* Move out old tax and discount system.
2009-07-09 tatuya
* Append Japanese localized invoice style-sheet fixing font setting. To avoid hand modification after printing Japanese invoice.
* Append Japanese localized invoice style-sheet fixing font setting. To avoid hand modification after printing Japanese invoice.
2009-07-03 romain
* Revert latest proxy field library simplification, as the design was not finalized.
......@@ -57,22 +57,22 @@
* the erp5_invoicing is split into three business templates;
'erp5_invoicing', 'erp5_simplified_invoicing' and
'erp5_advanced_invoicing'.
the erp5_invoicing now only have common invoicing setting.
- When you want them to work compatible with previous erp5_invoicing
the erp5_invoicing now only have common invoicing setting.
- When you want them to work compatible with previous erp5_invoicing
you just install 'erp5_invoicing' and 'erp5_simplified_invoicing'
- When you want to create invoices independently,
you just install 'erp5_invoicing' and 'erp5_advanced_invoicing'.
Note: You can not install both 'erp5_simplified_invoicing' and
'erp5_advanced_invoicing' together. They cause conflicts.
* Move Allowed Content Type  'Discount Line', 'Invoice Line', 'Payment
* Move Allowed Content Type 'Discount Line', 'Invoice Line', 'Payment
Condition',
 'Tax Line' to erp5_simplified_invoicing
'Tax Line' to erp5_simplified_invoicing
* Move Base Category 'specialise' to erp5_simplified_invoicing
* Move  Actions  to erp5_simplified_invoicing
* Move Actions to erp5_simplified_invoicing
* Move Paths 'purchase_invoice_builder',
  'purchase_invoice_tax_builder', 'purchase_invoice_transaction_builder'
  'sale_invoice_builder', 'sale_invoice_tax_builder',
  'sale_invoice_transaction_builder' to erp5_simplified_invoicing
'purchase_invoice_tax_builder', 'purchase_invoice_transaction_builder'
'sale_invoice_builder', 'sale_invoice_tax_builder',
'sale_invoice_transaction_builder' to erp5_simplified_invoicing
2009-05-18 yusei
* Fix some proxy fields. proxy_listbox_ids had to be copied to new proxified fields but it was not copied.
......
......@@ -102,16 +102,16 @@
<value> <string encoding="cdata"><![CDATA[
CACHE MANIFEST\n
# generated on Fri, 08 Oct 2015 15:31:33 +0000\n
# generated on Fri, 26 Nov 2015 11:45:33 +0000\n
# XXX + fonts\n
# images/ajax-loader.gif\n
CACHE:\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.eot?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.woff?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.ttf?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular\n
URI.js\n
dygraph.js\n
gadget_erp5.css\n
......@@ -142,7 +142,7 @@ gadget_officejs_page_text_editor_list.html\n
gadget_officejs_router.html\n
gadget_officejs_text_editor_application.html\n
gadget_officejs_text_editor_application_panel.html\n
gadget_officejs_translation.html\n
gadget_translation.html\n
gadget_officejs_webrtc_jio.html\n
gadget_officejs_widget_listbox.html\n
gadget_officejs_header.js\n
......@@ -159,8 +159,8 @@ gadget_officejs_page_text_editor_list.js\n
gadget_officejs_router.js\n
gadget_officejs_text_editor_application.js\n
gadget_officejs_text_editor_application_panel.js\n
gadget_officejs_translation.js\n
gadget_officejs_translation_data.js\n
gadget_translation.js\n
gadget_translation_data.js\n
gadget_officejs_webrtc_jio.js\n
gadget_officejs_widget_listbox.js\n
erp5_launcher.js\n
......@@ -299,7 +299,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.10007.14873.25907</string> </value>
<value> <string>947.23746.47709.30344</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -317,7 +317,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1444319235.36</float>
<float>1448541697.58</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -210,23 +210,29 @@
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -234,6 +240,59 @@
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448023917.39</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -292,7 +351,7 @@
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -349,7 +408,7 @@
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......
......@@ -83,7 +83,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_add_spreadsheet.html</string> </value>
<value> <string>gadget_officejs_page_add_spreadsheet.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -93,7 +93,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_add_spreadsheet_html</string> </value>
<value> <string>gadget_officejs_page_add_spreadsheet_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -126,7 +126,7 @@
<script src="rsvp.js"></script>\n
<script src="renderjs.js"></script>\n
<script src="handlebars.js"></script>\n
<script src="gadget_officejs_add_spreadsheet.js"></script>\n
<script src="gadget_officejs_page_add_spreadsheet.js"></script>\n
\n
\n
</head>\n
......@@ -168,23 +168,29 @@
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -192,6 +198,59 @@
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448023855.57</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -206,7 +265,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>bk</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -220,7 +279,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.26051.22759.32017</string> </value>
<value> <string>947.15138.25186.60433</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -238,7 +297,7 @@
</tuple>
<state>
<tuple>
<float>1444748024.63</float>
<float>1448023847.08</float>
<string>UTC</string>
</tuple>
</state>
......@@ -250,7 +309,7 @@
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -307,7 +366,7 @@
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......
......@@ -79,7 +79,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_add_spreadsheet.js</string> </value>
<value> <string>gadget_officejs_page_add_spreadsheet.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -89,7 +89,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_add_spreadsheet_js</string> </value>
<value> <string>gadget_officejs_page_add_spreadsheet_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -289,7 +289,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>bk</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -303,7 +303,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.26081.61609.57821</string> </value>
<value> <string>947.15138.45828.46455</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -321,7 +321,7 @@
</tuple>
<state>
<tuple>
<float>1444748289.19</float>
<float>1448023868.36</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -157,7 +157,7 @@
<section class="ui-content-header-plain">\n
<h3 class="ui-content-title ui-body-c">\n
<span class="ui-icon ui-icon-custom ui-icon-file-text-o">&nbsp;</span>\n
Your Text Documents\n
Your Documents\n
</h3>\n
</section>\n
<section class="ui-body-c ui-content-section">\n
......@@ -297,7 +297,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -311,7 +311,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.59102.20815.50705</string> </value>
<value> <string>947.12629.17894.55808</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -329,7 +329,7 @@
</tuple>
<state>
<tuple>
<float>1446740955.07</float>
<float>1448032104.14</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -83,7 +83,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_spreadsheet_list.html</string> </value>
<value> <string>gadget_officejs_page_spreadsheet_list.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -93,7 +93,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_spreadsheet_list_html</string> </value>
<value> <string>gadget_officejs_page_spreadsheet_list_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -126,7 +126,7 @@
\n
<script src="rsvp.js"></script>\n
<script src="renderjs.js"></script>\n
<script src="gadget_officejs_spreadsheet_list.js"></script>\n
<script src="gadget_officejs_page_spreadsheet_list.js"></script>\n
\n
</head>\n
\n
......@@ -168,23 +168,29 @@
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -192,6 +198,59 @@
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448023505.12</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -206,7 +265,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -220,7 +279,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.16065.34995.17015</string> </value>
<value> <string>947.15135.44751.35925</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -238,7 +297,7 @@
</tuple>
<state>
<tuple>
<float>1444388715.2</float>
<float>1448023678.93</float>
<string>UTC</string>
</tuple>
</state>
......@@ -250,7 +309,7 @@
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -307,7 +366,7 @@
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......
......@@ -79,7 +79,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_spreadsheet_list.js</string> </value>
<value> <string>gadget_officejs_page_spreadsheet_list.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -89,7 +89,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_spreadsheet_list_js</string> </value>
<value> <string>gadget_officejs_page_spreadsheet_list_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -343,7 +343,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>bk</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -357,7 +357,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.16238.47493.53964</string> </value>
<value> <string>947.15135.4474.14216</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -375,7 +375,7 @@
</tuple>
<state>
<tuple>
<float>1444746580.5</float>
<float>1448023655.58</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -140,10 +140,10 @@
<script id="panel-template-body" type="text/x-handlebars-template">\n
<div class="ui-content">\n
<ul data-role="listview" class="ui-listview">\n
<li><a href="#page=spreadsheet_list" data-i18n="Spreadsheets">Spreadsheets</a></li>\n
<li><a href="#page=spreadsheet_jio_configurator" data-i18n="Storage Configuration">Storage Configuration</a></li>\n
<li><a href="#page=page_sync" data-i18n="Sync">Sync</a></li>\n
<li class="ui-last-child"><a href="#page=page_logout" data-i18n="Logout">Logout</a></li>\n
<li><a href="#page=document_list" data-i18n="Spreadsheets">Spreadsheets</a></li>\n
<li><a href="#page=jio_configurator" data-i18n="Storage Configuration">Storage Configuration</a></li>\n
<li><a href="#page=sync" data-i18n="Synchronization">Synchronization</a></li>\n
<li class="ui-last-child"><a href="#page=logout" data-i18n="Logout">Logout</a></li>\n
</ul>\n
</div>\n
</script>\n
......@@ -187,23 +187,29 @@
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -211,6 +217,59 @@
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448022856.62</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -225,7 +284,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -239,7 +298,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.16224.33561.57753</string> </value>
<value> <string>947.15270.17699.25156</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -257,7 +316,7 @@
</tuple>
<state>
<tuple>
<float>1444163187.89</float>
<float>1448034445.79</float>
<string>UTC</string>
</tuple>
</state>
......@@ -269,7 +328,7 @@
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......@@ -326,7 +385,7 @@
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......
......@@ -154,19 +154,19 @@
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>ung_document_publication_workflow</string> </key>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
......@@ -188,30 +188,20 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.15994.48184.48145</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
......@@ -224,13 +214,17 @@
</tuple>
<state>
<tuple>
<float>1444143196.48</float>
<float>1448034220.26</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
......@@ -247,27 +241,29 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<key> <string>serial</string> </key>
<value> <string>947.15311.14919.61593</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
......@@ -281,7 +277,7 @@
</tuple>
<state>
<tuple>
<float>1444142227.58</float>
<float>1448034205.49</float>
<string>UTC</string>
</tuple>
</state>
......@@ -304,11 +300,11 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>bk</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -318,6 +314,14 @@
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
......@@ -330,17 +334,13 @@
</tuple>
<state>
<tuple>
<float>1444143483.8</float>
<float>1448034193.61</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
......
......@@ -108,35 +108,102 @@
\n
var gadget_klass = rJS(window),\n
MAIN_PAGE_PREFIX = "gadget_officejs_",\n
DEFAULT_PAGE = "spreadsheet_list";\n
DEFAULT_PAGE = "spreadsheet_list",\n
REDIRECT_TIMEOUT = 5000;\n
\n
function listenHashChange(gadget) {\n
function extractHashAndDispatch(evt) {\n
var hash = (evt.newURL || window.location.toString()).split(\'#\')[1],\n
subhashes,\n
subhash,\n
keyvalue,\n
index,\n
args = {};\n
if (hash !== undefined) {\n
subhashes = hash.split(\'&\');\n
for (index in subhashes) {\n
if (subhashes.hasOwnProperty(index)) {\n
subhash = subhashes[index];\n
if (subhash !== \'\') {\n
keyvalue = subhash.split(\'=\');\n
if (keyvalue.length === 2) {\n
args[decodeURIComponent(keyvalue[0])] = decodeURIComponent(keyvalue[1]);\n
}\n
}\n
}\n
}\n
}\n
\n
return gadget.renderApplication({\n
args: args\n
});\n
\n
}\n
\n
var result = loopEventListener(window, \'hashchange\', false,\n
extractHashAndDispatch),\n
event = document.createEvent("Event");\n
event.initEvent(\'hashchange\', true, true);\n
event.newURL = window.location.toString();\n
window.dispatchEvent(event);\n
return result;\n
}\n
\n
gadget_klass\n
.declareAcquiredMethod(\'pleaseRedirectMyHash\', \'pleaseRedirectMyHash\')\n
.declareAcquiredMethod(\'jio_get\', \'jio_get\')\n
\n
.ready(function (gadget) {\n
gadget.props = {};\n
gadget.props = {\n
start_deferred: RSVP.defer()\n
};\n
})\n
\n
.declareMethod("getCommandUrlFor", function(options) {\n
var prefix = \'\',\n
result,\n
key;\n
result = "#";\n
for (key in options) {\n
if (options.hasOwnProperty(key) && options[key] !== undefined) {\n
// Don\'t keep empty values\n
result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]);\n
prefix = \'&\';\n
}\n
}\n
return result;\n
})\n
\n
.declareMethod(\'redirect\', function (options) {\n
return this.getCommandUrlFor(options)\n
.push(function (hash) {\n
window.location.replace(hash);\n
// prevent returning unexpected response\n
// wait for the hash change to occur\n
// fail if nothing happens\n
return RSVP.timeout(REDIRECT_TIMEOUT);\n
});\n
})\n
\n
.declareMethod(\'route\', function (options) {\n
var gadget = this;\n
var gadget = this,\n
args = options.args;\n
gadget.options = options;\n
if (options.jio_key === undefined || options.jio_key === \'\') {\n
if (options.page === undefined || options.page === \'\' || options.page === "document_list") {\n
options.page = DEFAULT_PAGE;\n
if (args.jio_key === undefined || args.jio_key === \'\') {\n
if (args.page === undefined || args.page === \'\' || args.page === "document_list") {\n
args.page = DEFAULT_PAGE;\n
}\n
return {\n
url: MAIN_PAGE_PREFIX + options.page + ".html",\n
options: options\n
url: MAIN_PAGE_PREFIX + "page_" + args.page + ".html",\n
options: args\n
};\n
}\n
return gadget.jio_get(options.jio_key)\n
return gadget.jio_get(args.jio_key)\n
.push(function (doc) {\n
var sub_options = {},\n
base_portal_type = doc.portal_type.toLowerCase().replace(/\\s/g, "_");\n
sub_options = {\n
doc: doc,\n
jio_key: options.jio_key,\n
search: options.search\n
jio_key: args.jio_key,\n
search: args.search\n
};\n
if (base_portal_type.search(/_temp$/) >= 0) {\n
//Remove "_temp"\n
......@@ -148,10 +215,26 @@
return {\n
url: MAIN_PAGE_PREFIX + "jio_"\n
+ base_portal_type\n
+ "_" + options.page + ".html",\n
+ "_" + args.page + ".html",\n
options: sub_options\n
};\n
});\n
})\n
\n
.declareAcquiredMethod(\'jio_get\', \'jio_get\')\n
.declareAcquiredMethod(\'renderApplication\', \'renderApplication\')\n
.declareMethod(\'start\', function () {\n
this.props.start_deferred.resolve();\n
})\n
.declareService(function () {\n
var gadget = this;\n
return new RSVP.Queue()\n
.push(function () {\n
return gadget.props.start_deferred.promise;\n
})\n
.push(function () {\n
return listenHashChange(gadget);\n
});\n
});\n
\n
}(window, rJS));
......@@ -224,7 +307,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -246,7 +329,7 @@
</tuple>
<state>
<tuple>
<float>1444143659.12</float>
<float>1448034214.11</float>
<string>UTC</string>
</tuple>
</state>
......@@ -277,7 +360,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -291,7 +374,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.16004.64642.35174</string> </value>
<value> <string>947.15310.53603.16298</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -309,7 +392,7 @@
</tuple>
<state>
<tuple>
<float>1444143742.62</float>
<float>1448034197.3</float>
<string>UTC</string>
</tuple>
</state>
......@@ -336,7 +419,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -366,7 +449,7 @@
</tuple>
<state>
<tuple>
<float>1444141955.16</float>
<float>1448034169.01</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -142,7 +142,7 @@
<ul data-role="listview" class="ui-listview">\n
<li><a href="#page=text_editor_list" data-i18n="Text Documents">Text Documents</a></li>\n
<li><a href="#page=jio_configurator" data-i18n="Storage Configuration">Storage Configuration</a></li>\n
<li><a href="#page=sync" data-i18n="Syncronization">Syncronization</a></li>\n
<li><a href="#page=sync" data-i18n="Synchronization">Synchronization</a></li>\n
<li class="ui-last-child"><a href="#page=logout" data-i18n="Logout">Logout</a></li>\n
</ul>\n
</div>\n
......@@ -278,7 +278,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -292,7 +292,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.59108.30069.37307</string> </value>
<value> <string>947.12629.17894.55808</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -310,7 +310,7 @@
</tuple>
<state>
<tuple>
<float>1446741155.57</float>
<float>1448034490.12</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -150,7 +150,88 @@
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448024007.19</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -385,7 +385,88 @@
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1448024013.93</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -426,7 +426,7 @@
</item>
<item>
<key> <string>configuration_jio_gadget_url</string> </key>
<value> <string>gadget_officejs_spreadsheet_jio.html</string> </value>
<value> <string>gadget_officejs_jio.html</string> </value>
</item>
<item>
<key> <string>configuration_manifest_url</string> </key>
......@@ -442,7 +442,7 @@
</item>
<item>
<key> <string>configuration_translation_gadget_url</string> </key>
<value> <string>gadget_officejs_translation.html</string> </value>
<value> <string>gadget_translation.html</string> </value>
</item>
<item>
<key> <string>configuration_view_action_category</string> </key>
......@@ -727,7 +727,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -741,7 +741,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.16175.35264.62907</string> </value>
<value> <string>947.15127.49489.42257</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -759,7 +759,7 @@
</tuple>
<state>
<tuple>
<float>1445074913.29</float>
<float>1448031408.99</float>
<string>UTC</string>
</tuple>
</state>
......
web_page_module/gadget_ckeditor_*
web_page_module/gadget_officejs_*
web_page_module/gadget_ooffice_*
web_page_module/officejs_launcher_*
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
......
web_page_module/gadget_ckeditor_*
web_page_module/gadget_officejs_*
web_page_module/gadget_ooffice_*
web_page_module/officejs_launcher_*
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
......
......@@ -111,7 +111,7 @@
<list>
<tuple>
<string>Person</string>
<string> Person</string>
<string>Person</string>
</tuple>
</list>
</value>
......
......@@ -38,7 +38,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Interaction Workflow Definition</string> </value>
<value> <string>Paysheet Model Interaction Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -178,7 +178,7 @@
<list>
<tuple>
<string>Task Report</string>
<string> Task Report</string>
<string>Task Report</string>
</tuple>
</list>
</value>
......
......@@ -173,7 +173,7 @@
<list>
<tuple>
<string>Task Report</string>
<string> Task Report</string>
<string>Task Report</string>
</tuple>
</list>
</value>
......
......@@ -57,7 +57,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Validation Workflow</string> </value>
<value> <string>Review Validation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -137,7 +137,7 @@
<list>
<tuple>
<string>Date</string>
<string> asc</string>
<string>asc</string>
</tuple>
</list>
</value>
......
......@@ -137,7 +137,7 @@
<list>
<tuple>
<string>Date</string>
<string> asc</string>
<string>asc</string>
</tuple>
</list>
</value>
......
......@@ -17,4 +17,4 @@
* set quantity unit on invoice lines
2009-06-19 tatuya
 * initial creation, splitting from erp5_invoicing
\ No newline at end of file
* initial creation, splitting from erp5_invoicing
\ No newline at end of file
......@@ -58,7 +58,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>SyncML Sinature Validation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -58,7 +58,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>SyncML Subscription Validation Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -58,7 +58,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 default workflow</string> </value>
<value> <string>SyncML Subscription Authentication Workflow</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/ERP5ScalabilityDistribution_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>software_release_unit_test</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Release Tests</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SlapOSAgentTestSuite_viewReleaseTest</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_action</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>vcs_repository</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Add Documents, Images, and Files</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>VCS-Repository</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SlapOSAgentTestSuite_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_action</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>vcs_repository</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Add Documents, Images, and Files</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>VCS-Repository</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SlapOSSoftwareReleaseUnitTest_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
# Copyright (c) 2015 Nexedi SA and Contributors. All Rights Reserved.
# Rafael Monnerat <rafael@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly advised to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from Products.ERP5.Document.ERP5ProjectUnitTestDistributor import ERP5ProjectUnitTestDistributor
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions
import json
class SlapOSAgentDistributor(ERP5ProjectUnitTestDistributor):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
security.declarePublic("optimizeConfiguration")
def optimizeConfiguration(self):
"""
We are going to add test suites to test nodes.
In the case of cloud performance, we associate all test suites to
every test node. Like this, every test suite will be executed by
every test node
"""
test_node_module = self._getTestNodeModule()
test_suite_module = self._getTestSuiteModule()
test_node_list = [
x.getObject() for x in test_node_module.searchFolder(
portal_type="Test Node", validation_state="validated",
specialise_uid=self.getUid())]
test_suite_list = [x.getRelativeUrl()
for x in test_suite_module.searchFolder(
validation_state="validated",
specialise_uid=self.getUid())]
for test_node in test_node_list:
test_node.setAggregateList(test_suite_list)
security.declarePublic("getTestType")
def getTestType(self, batch_mode=0):
"""
getTestType : return a string defining the type of tests
"""
return 'SlapOSAgentTest'
security.declarePublic("generateConfiguration")
def generateConfiguration(self, test_suite_title, batch_mode=0):
"""
generateConfiguration : this is just a proxy to an external method
"""
test_suite_module = self._getTestSuiteModule()
test_suite_list = test_suite_module.searchFolder(
title=test_suite_title,
validation_state="validated",
specialise_uid=self.getUid())
if len(test_suite_list) == 0:
return json.dumps({})
generated_configuration = {}
for unit_test in test_suite_list[0].searchFolder(
portal_type="SlapOS Software Release Unit Test"):
generated_configuration[unit_test.getTitle()] = {
"title": unit_test.getTitle(),
"url": unit_test.getUrlString(),
"group": unit_test.getGroupReference("default")}
if unit_test.getTextContent() is not None:
generated_configuration[unit_test.getTitle()]['request_kw'] = unit_test.getTextContent()
if unit_test.getSupplyComputer() is not None:
generated_configuration[unit_test.getTitle()]['supply_computer'] = unit_test.getSupplyComputer()
return json.dumps(generated_configuration)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Document Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>SlapOSAgentDistributor</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document.erp5.SlapOSAgentDistributor</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Document Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -5,6 +5,10 @@
<portal_type id="Scalability Test Suite">
<item>Test Suite Repository</item>
</portal_type>
<portal_type id="SlapOS Agent Test Suite">
<item>SlapOS Software Release Unit Test</item>
<item>Test Suite Repository</item>
</portal_type>
<portal_type id="Task Distribution Tool">
<item>Cloud Performance Unit Test Distributor</item>
<item>ERP5 Project Unit Test Distributor</item>
......@@ -26,6 +30,7 @@
</portal_type>
<portal_type id="Test Suite Module">
<item>Scalability Test Suite</item>
<item>SlapOS Agent Test Suite</item>
<item>Test Suite</item>
</portal_type>
</allowed_content_type_list>
\ No newline at end of file
......@@ -5,6 +5,12 @@
<portal_type id="Scalability Test Suite">
<item>specialise</item>
</portal_type>
<portal_type id="SlapOS Agent Test Suite">
<item>specialise</item>
</portal_type>
<portal_type id="SlapOS Software Release Unit Test">
<item>specialise</item>
</portal_type>
<portal_type id="Test Node">
<item>aggregate</item>
<item>specialise</item>
......
......@@ -15,6 +15,18 @@
<item>ScalabilityTestSuite</item>
<item>TestSuite</item>
</portal_type>
<portal_type id="SlapOS Agent Distributor">
<item>ScalabilityDistributor</item>
</portal_type>
<portal_type id="SlapOS Agent Test Suite">
<item>Arrow</item>
<item>TestSuite</item>
</portal_type>
<portal_type id="SlapOS Software Release Unit Test">
<item>Arrow</item>
<item>SlapOSSoftwareReleaseUnitTest</item>
<item>Url</item>
</portal_type>
<portal_type id="Test Node">
<item>DublinCore</item>
<item>TestNode</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addXMLObject</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SlapOS Agent Distributor</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>SlapOSAgentDistributor</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>embedded_document</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SlapOS Agent Test Suite</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>TextDocument</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>embedded_document</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SlapOS Software Release Unit Test</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>TextDocument</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -11,6 +11,14 @@
<type>Scalability Test Suite</type>
<workflow>edit_workflow, test_suite_workflow</workflow>
</chain>
<chain>
<type>SlapOS Agent Distributor</type>
<workflow>edit_workflow</workflow>
</chain>
<chain>
<type>SlapOS Agent Test Suite</type>
<workflow>edit_workflow, test_suite_workflow</workflow>
</chain>
<chain>
<type>Test Node</type>
<workflow>edit_workflow, test_node_workflow</workflow>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SlapOSSoftwareReleaseUnitTest</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Computer for Test Supply</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>supply_computer_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
<item>
<key> <string>property_default</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>test_suite_list</string> </value>
<value> <string>test_node_list</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -220,9 +220,7 @@
<item>
<key> <string>default</string> </key>
<value>
<list>
<string>Bonjour</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -271,7 +269,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Test Suites</string> </value>
<value> <string>Test Nodes</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
......@@ -307,7 +305,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getAggregateTitleList(portal_type="Test Suite")</string> </value>
<value> <string>python: here.getAggregateRelatedTitleList()</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -175,7 +175,7 @@
<list>
<tuple>
<string>Date</string>
<string> asc</string>
<string>asc</string>
</tuple>
</list>
</value>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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