Commit 99e67338 authored by Vincent Bechu's avatar Vincent Bechu

[erp5_officejs_appstore_base] Add software publication web site

/reviewed-on nexedi/erp5!754
parent 19edd898
<?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_jio_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_jio_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>create_new_application_dialog</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>Create Application</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}/SoftwareProductModule_createNewApplicationDialog</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_jio_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_jio_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>update_application</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>Update Application</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}/SoftwareProduct_updateApplicationDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*global window, rJS, RSVP, URI, location,
loopEventListener, btoa, ComplexQuery, Query */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP) {
"use strict";
var gadget_klass = rJS(window);
function getViewLink(gadget, id, action_id) {
return gadget.jio_getAttachment(id, 'links')
.push(function (result) {
var i, i_len, links;
links = result._links.action_object_view;
if (links.constructor !== Array) {
links = [links];
}
for (i = 0, i_len = links.length; i < i_len; i += 1) {
if (links[i].name === action_id) {
return links[i];
}
}
return undefined;
});
}
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("jio_get", "jio_get")
.declareAcquiredMethod("jio_getAttachment", "jio_getAttachment")
.declareMethod("render", function (options) {
var gadget = this,
id = options.id,
list_method_template;
gadget.props.options = options;
return gadget.jio_get(id)
.push(function (result) {
gadget.props.element.querySelector("h1").textContent =
result.short_title || "";
gadget.props.element.querySelector("p").textContent =
result.description || "";
return RSVP.all([
getViewLink(gadget, id, "section_content"),
getViewLink(gadget, id, "layout_configuration")
]);
})
.push(function (result) {
// XX Should it raise if result is undefined?
return RSVP.all([
gadget.jio_getAttachment(id, result[0].href),
gadget.jio_getAttachment(id, result[1].href)
]);
})
.push(function (result) {
list_method_template = result[0]._embedded._view.listbox.list_method_template;
gadget.props.element.querySelector("a").setAttribute(
"href",
result[1]._embedded._view.my_configuration_resource_base_url.default
);
return gadget.jio_allDocs({
query: '(portal_type:"Image" OR portal_type:"Web Illustration") AND strict_publication_section_relative_url:"publication_section/application/logo"',
list_method_template: list_method_template,
select_list: ['relative_url', 'reference']
});
})
.push(function (result) {
if (result.data.total_rows !== 0) {
gadget.props.element.querySelector("img").setAttribute(
"src",
result.data.rows[0].value.reference + "?format=png&display=thumbnail"
);
} else {
// XXX Here we should have a fallback image
}
})
.push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return true;
});
});
}(window, rJS, RSVP));
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>ERP5 Controller</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_erp5_page_ojs_appstore_controller.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,7 +58,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -73,17 +71,9 @@
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_ojs_software_product_web_section_list.html</string> </value>
<value> <string>gadget_erp5_page_ojs_appstore_controller.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -93,32 +83,11 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_software_product_web_section_list_html</string> </value>
<value> <string>gadget_ojs_appstore_controller_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.6</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
......@@ -132,13 +101,11 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Software Product Web Section List</string> </value>
<value> <string>Gadget Controller</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -198,7 +165,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -220,7 +187,7 @@
</tuple>
<state>
<tuple>
<float>1459349310.07</float>
<float>1535373651.42</float>
<string>UTC</string>
</tuple>
</state>
......@@ -251,7 +218,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -265,7 +232,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.11608.32862.57088</string> </value>
<value> <string>969.57667.46819.54988</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -283,7 +250,7 @@
</tuple>
<state>
<tuple>
<float>1459349787.99</float>
<float>1536586954.21</float>
<string>UTC</string>
</tuple>
</state>
......@@ -310,7 +277,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -340,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1459347953.89</float>
<float>1535373601.78</float>
<string>UTC</string>
</tuple>
</state>
......
/*global document, window, rJS, RSVP, jIO */
/*jslint nomen: true, indent: 2, maxerr: 3 */
(function (document, window, rJS, RSVP, jIO) {
"use strict";
function setSelectionUrl(gadget, options) {
return gadget.getSetting('hateoas_url')
.push(function (url) {
return jIO.util.ajax({
type: 'GET',
url: url + gadget.state.options.jio_key +
'/SoftwarePublication_getRelatedSoftwareProduct'
});
})
.push(function (result) {
return gadget.getUrlFor({command: 'display', options: {jio_key: result.target.response}});
})
.push(function (url) {
options.selection_url = url;
});
}
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
/////////////////////////////////////////////////////////////////
// Overload Public Acquisition methods
/////////////////////////////////////////////////////////////////
.allowPublicAcquisition('updateHeader', function (param_list) {
var gadget = this, options = param_list[0];
return gadget.getUrlFor({
command: 'display',
options: {
page: 'front_ojs_appstore'
}
})
.push(function (url) {
if (gadget.state.is_software_product && options.selection_url) {
options.selection_url = url;
}
if (options.cancel_url &&
gadget.state.options.jio_key === 'software_product_module') {
options.cancel_url = url;
}
delete options.actions_url;
delete options.next_url;
delete options.previous_url;
delete options.tab_url;
delete options.export_url;
if (gadget.state.is_software_product && options.add_url) {
return gadget.getUrlFor({
command: 'display_erp5_action',
options: {
page: 'update_application',
jio_key: gadget.state.options.jio_key
}
})
.push(function (url) {
options.add_url = url;
});
} else {
delete options.add_url;
}
if (options.selection_url &&
gadget.state.options.jio_key.indexOf('software_publication_module/') !== -1) {
return setSelectionUrl(gadget, options);
}
})
.push(function () {
return gadget.updateHeader(options);
});
})
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.allowPublicAcquisition('notifySubmit', function () {
return this.triggerSubmit();
})
.declareMethod('triggerSubmit', function () {
return this.getDeclaredGadget('fg')
.push(function (g) {
return g.triggerSubmit();
});
})
.declareMethod("render", function (options) {
var gadget = this;
options.editable = true;
return gadget.changeState({
child_gadget_url: 'gadget_erp5_page_form.html',
options: options,
is_software_product:
options.jio_key.indexOf('software_product_module/') !== -1
});
})
.onStateChange(function (modification_dict) {
var fragment = document.createElement('div'),
gadget = this;
return new RSVP.Queue()
.push(function () {
if (!modification_dict.hasOwnProperty('child_gadget_url')) {
return gadget.getDeclaredGadget('fg')
.push(function (child_gadget) {
return child_gadget.render(gadget.state.options);
});
}
// Clear first to DOM, append after to reduce flickering/manip
while (gadget.element.firstChild) {
gadget.element.removeChild(gadget.element.firstChild);
}
gadget.element.appendChild(fragment);
return gadget.declareGadget(gadget.state.child_gadget_url, {element: fragment,
scope: 'fg'})
.push(function (form_gadget) {
return form_gadget.render(gadget.state.options);
});
});
});
}(document, window, rJS, RSVP, jIO));
\ No newline at end of file
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,27 +58,24 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<key> <string>categories</string> </key>
<value>
<none/>
<tuple/>
</value>
</item>
<item>
<key> <string>creators</string> </key>
<key> <string>content_md5</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_application_presentation_element.js</string> </value>
<value> <string>gadget_erp5_page_ojs_appstore_controller.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -89,32 +85,11 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_application_presentation_element_js</string> </value>
<value> <string>gadget_ojs_appstore_controller_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
......@@ -128,13 +103,11 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Application Presentation Element JS</string> </value>
<value> <string>Gadget Controller JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -194,7 +167,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -216,7 +189,7 @@
</tuple>
<state>
<tuple>
<float>1458922831.46</float>
<float>1535373686.46</float>
<string>UTC</string>
</tuple>
</state>
......@@ -247,7 +220,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -261,7 +234,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.10229.45890.65228</string> </value>
<value> <string>970.20979.24542.29201</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -279,7 +252,7 @@
</tuple>
<state>
<tuple>
<float>1459514684.21</float>
<float>1537777337.4</float>
<string>UTC</string>
</tuple>
</state>
......@@ -306,7 +279,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -336,7 +309,7 @@
</tuple>
<state>
<tuple>
<float>1458921337.62</float>
<float>1535373670.86</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -4,17 +4,20 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Application List Page</title>
<title>OfficeJS Appstore Front View</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_global.js" type="text/javascript"></script>
<script src=" gadget_officejs_application_presentation_element.js"></script>
<script src="gadget_erp5_page_front_ojs_appstore.js"></script>
</head>
<body>
<a href="#"><img src="#"><h1>Application Title</h1><p>Application Description</p>
<center class="appstore-view"></center>
<form class="save_form ui-body-c" novalidate>
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form"
data-gadget-sandbox="public">
</div>
</form>
</body>
</html>
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,7 +58,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -73,17 +71,9 @@
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_application_presentation_element.html</string> </value>
<value> <string>gadget_erp5_page_front_ojs_appstore.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -93,7 +83,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_application_presentation_element.html</string> </value>
<value> <string>gadget_ojs_appstore_front_page_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -101,25 +91,6 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.6</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
......@@ -132,7 +103,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Application Presentation Element</string> </value>
<value> <string>OfficeJS Front Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -198,7 +169,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -220,7 +191,7 @@
</tuple>
<state>
<tuple>
<float>1458925007.16</float>
<float>1535024564.56</float>
<string>UTC</string>
</tuple>
</state>
......@@ -251,7 +222,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -265,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.4538.263.7185</string> </value>
<value> <string>969.56714.52783.10171</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -283,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1459514670.06</float>
<float>1535638786.42</float>
<string>UTC</string>
</tuple>
</state>
......@@ -306,11 +277,13 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -322,7 +295,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -340,7 +313,7 @@
</tuple>
<state>
<tuple>
<float>1458924797.55</float>
<float>1535024513.01</float>
<string>UTC</string>
</tuple>
</state>
......
/*global window, rJS*/
/*jslint indent:2, maxlen: 80, nomen: true */
(function (window, rJS) {
"use strict";
rJS(window)
.declareAcquiredMethod('updateHeader', 'updateHeader')
.declareAcquiredMethod('getUrlFor', 'getUrlFor')
.declareAcquiredMethod('translateHtml', 'translateHtml')
.declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
.declareMethod('render', function () {
var gadget = this;
return gadget.getDeclaredGadget('form')
.push(function (form) {
var column_list = [
['title', 'Title']
];
return form.render({
erp5_document: {
"_embedded": {"_view": {
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "software_product_module",
"lines": 20,
"list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=portal_type%3A%22" +
"Software%20Product%22",
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [],
"title": "Application List",
"type": "ListBox"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"bottom",
[["listbox"]]
]]
}
});
})
.push(function () {
return gadget.getUrlFor({
'command': 'display_erp5_action',
'options': {
'jio_key': 'software_product_module',
'page': 'create_new_application_dialog'
}
});
})
.push(function (url) {
return gadget.updateHeader({
page_title: "OfficeJS Appstore",
add_url: url
});
});
});
}(window, rJS));
\ No newline at end of file
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,10 +58,15 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -70,16 +74,14 @@
</value>
</item>
<item>
<key> <string>creators</string> </key>
<key> <string>content_type</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_officejs_application_list.js</string> </value>
<value> <string>gadget_erp5_page_front_ojs_appstore.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -89,7 +91,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_page_officejs_application_list_js</string> </value>
<value> <string>gadget_ojs_appstore_front_page_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -97,25 +99,6 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
......@@ -128,7 +111,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Application List Page JS</string> </value>
<value> <string>Gadget OfficeJS Appstore Front Page JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -194,7 +177,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -216,7 +199,7 @@
</tuple>
<state>
<tuple>
<float>1458915029.27</float>
<float>1535031592.39</float>
<string>UTC</string>
</tuple>
</state>
......@@ -247,7 +230,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -261,7 +244,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.4529.28107.54391</string> </value>
<value> <string>970.20979.24542.29201</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -279,7 +262,7 @@
</tuple>
<state>
<tuple>
<float>1459255000.91</float>
<float>1537777459.12</float>
<string>UTC</string>
</tuple>
</state>
......@@ -302,11 +285,13 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -318,7 +303,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -336,7 +321,7 @@
</tuple>
<state>
<tuple>
<float>1458914414.71</float>
<float>1535031532.68</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -4,56 +4,72 @@
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>ERP5 Panel</title>
<!--
data-i18n=Editable
-->
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="handlebars.js" type="text/javascript"></script>
<script src="gadget_global.js" type="text/javascript"></script>
<script src="jquery.js" type="text/javascript"></script>
<script src="jquerymobile.js" type="text/javascript"></script>
<script id="panel-template-header" type="text/x-handlebars-template">
<div data-role="header" class="ui-bar-inherit">
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
<div class="ui-controlgroup-controls">
<form action="#" method="post">
<input type="submit" data-i18n="[value]Close" data-icon="delete" data-iconpos="notext" value="Close" />
</form>
<button data-i18n="Close" class="ui-btn ui-btn-icon-notext ui-icon-delete">Close</button>
</div>
</div>
<img class="ui-title" alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="/>
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
<div class="ui-controlgroup-controls">
<a href="#" class="ui-btn ui-btn-icon-notext ui-icon-home" data-i18n="Home">Home</a>
</div>
<div class="panel_img">
<img class="ui-title" alt="OfficeJS" src="officejs_logo.png?format=png"/>
</div>
</div>
</script>
<script id="panel-template-body" type="text/x-handlebars-template">
<div class="ui-content">
<ul data-role="listview" class="ui-listview" data-enhanced="true">
<li class="ui-first-child"><a href="{{software_product_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-bookmark" data-i18n="Software Products">Software Products</a></li>
<li><a href="{{software_release_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-tag" data-i18n="Software Releases">Software Releases</a></li>
<li><a href="{{software_publication_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-upload" data-i18n="Publication Requests">Publication Requests</a></li>
<li><a href="{{software_license_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-legal" data-i18n="Software License">Software License</a></li>
<li><a href="{{web_page_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-file-text" data-i18n="Source Code">Source Code</a></li>
<li><a href="{{image_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-file-image-o" data-i18n="Media">Media</a></li>
<li><a href="{{document_module_href}}" class="ui-btn ui-btn-icon-left ui-icon-file" data-i18n="Assets">Assets</a></li>
<form class="dialog_form">
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline
ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>
<div data-gadget-url="gadget_erp5_searchfield.html"
data-gadget-scope="erp5_searchfield"
data-gadget-sandbox="public"></div>
</form>
<ul data-role="listview" class="ui-listview" data-enhanced="true"></ul>
<dl></dl>
</div>
</script>
<script id="panel-template-body-list" type="text/x-handlebars-template">
<li class="ui-first-child"><a href="{{front_href}}" class="ui-btn ui-btn-icon-left ui-icon-home" data-i18n="Home">Home</a></li>
<li><a href="{{history_href}}" class="ui-btn ui-btn-icon-left ui-icon-history" data-i18n="History">History</a></li>
<li class="ui-last-child"><a href="{{logout_href}}" class="ui-btn ui-btn-icon-left ui-icon-power-off" data-i18n="Logout">Logout</a></li>
</ul>
</div>
</script>
<script id="panel-template-body-desktop" type="text/x-handlebars-template">
<dt class="ui-content-title ui-body-c ui-btn ui-btn-icon-left ui-icon-eye" data-i18n="Views">Views</dt>
{{#each view_list}}
<dd data-role="listview" data-theme="c" data-inset="true" class="document-listview">
<a data-i18n="{{title}}" class="ui-body-inherit" href="{{href}}">{{title}}</a>
</dd>
{{/each}}
<dt class="ui-content-title ui-body-c ui-btn ui-btn-icon-left ui-icon-cogs" data-i18n="Decisions">Decisions</dt>
{{#each workflow_list}}
<dd data-role="listview" data-theme="c" data-inset="true" class="document-listview">
<a data-i18n="{{title}}" class="ui-body-inherit" href="{{href}}">{{title}}</a>
</dd>
{{/each}}
</script>
<!-- custom script -->
<script src="gadget_erp5_global.js" type="text/javascript"></script>
<script src="gadget_ojs_appstore_panel.js" type="text/javascript"></script>
</head>
<body>
<div class="jqm-navmenu-panel"></div>
</body>
</html>
\ No newline at end of file
......@@ -247,7 +247,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -261,7 +261,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.11268.23345.29354</string> </value>
<value> <string>969.52327.64978.40960</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -279,7 +279,7 @@
</tuple>
<state>
<tuple>
<float>1459328937.35</float>
<float>1535121191.77</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -243,7 +243,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -257,7 +257,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.11225.12299.50619</string> </value>
<value> <string>969.60628.55268.16093</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -275,7 +275,7 @@
</tuple>
<state>
<tuple>
<float>1459327703.72</float>
<float>1535619185.93</float>
<string>UTC</string>
</tuple>
</state>
......
div[data-gadget-scope='ojs_publish_action'] {
display: flex;
}
@media not screen and (min-width: 45em) {
div[data-gadget-scope='ojs_publish_action'] a{
}
}
.orange{
background: orange;
text-decoration: none !important;
}
.green{
background: #37A419;
text-decoration: none !important;
}
.blue{
background: #0E81D1;
}
.blue:hover{
background: #0e90d8;
}
div[data-gadget-scope='ojs_publish_action'] a{
color: white !important;
}
@media screen and (min-width: 45em) {
div[data-gadget-scope='ojs_publish_action'] a{
text-align: center;
-webkit-border-radius: .3125em /*{global-radii-blocks}*/;
border-radius: .3125em /*{global-radii-blocks}*/;
padding: 1em 2em;
margin: auto;
}
}
div[data-gadget-scope='field_publication_action'] a{
text-align: center;
-webkit-border-radius: .3125em /*{global-radii-blocks}*/;
border-radius: .3125em /*{global-radii-blocks}*/;
color: white;
padding: 0.5em 2em;
margin: auto;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Application List Page</title>
<link rel="stylesheet" href="gadget_ojs_appstore_publish_button.css">
<title>OfficeJS Link Input</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="jiodev.js"></script>
<script src="gadget_ojs_appstore_publish_button.js"></script>
<script src=" gadget_erp5_page_officejs_application_list.js"></script>
</head>
<body>
<article class="ui-content ui-body-c">
<ul data-role="listview" data-inset="true">
</ul>
</article>
<a></a>
</body>
</html>
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,10 +58,15 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -73,17 +77,9 @@
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_officejs_application_list.html</string> </value>
<value> <string>gadget_ojs_appstore_publish_button.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -93,7 +89,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_page_officejs_application_list_html</string> </value>
<value> <string>gadget_ojs_appstore_publish_button_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -101,25 +97,6 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.6</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
......@@ -132,7 +109,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Application Presentation Element</string> </value>
<value> <string>Gadget OfficeJS Appstore Publish</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -198,7 +175,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -220,7 +197,7 @@
</tuple>
<state>
<tuple>
<float>1458922816.65</float>
<float>1535469077.78</float>
<string>UTC</string>
</tuple>
</state>
......@@ -251,7 +228,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -265,7 +242,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.4536.705.512</string> </value>
<value> <string>970.12324.25659.5154</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -283,7 +260,7 @@
</tuple>
<state>
<tuple>
<float>1459514635.69</float>
<float>1537777530.3</float>
<string>UTC</string>
</tuple>
</state>
......@@ -306,11 +283,13 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -322,7 +301,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -340,7 +319,7 @@
</tuple>
<state>
<tuple>
<float>1458921516.5</float>
<float>1535469064.27</float>
<string>UTC</string>
</tuple>
</state>
......
/*global window, rJS, URL, jIO, RSVP*/
/*jslint nomen: true, indent: 2, maxerr: 3 */
(function (window, rJS, URL, jIO) {
"use strict";
rJS(window)
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareMethod('render', function (options) {
var value,
css_class = "ui-btn orange",
url_options,
url;
if (options.state === "Accepted") {
if (options.select) {
value = "Current";
css_class = "ui-btn-disabled green";
} else {
value = "Select";
css_class = "ui-btn blue";
url = new URL('./' + options.jio_key + '/SoftwarePublication_selectVersion', new URL(window.location.pathname, window.location.origin));
}
} else if (options.state === "Submitted") {
value = "Open";
css_class = 'blue';
url_options = {
command: 'display_erp5_action',
options: {page: 'open_action', jio_key: options.jio_key}
};
} else if (options.state === "Draft") {
value = "Wait For Submit";
} else {
value = "Wait For Approval";
}
return this.changeState({
value: value,
css_class: css_class,
url: url,
url_options: url_options
});
})
.onStateChange(function (modification_dict) {
var a = this.element.querySelector("a");
if (modification_dict.hasOwnProperty('value')) {
a.textContent = modification_dict.value;
}
if (modification_dict.hasOwnProperty('css_class')) {
a.setAttribute('class', this.state.css_class);
}
})
.onEvent('click', function () {
var gadget = this;
if (gadget.state.url) {
return new RSVP.Queue()
.push(function () {
return jIO.util.ajax({
type: 'POST',
url: gadget.state.url
});
})
.push(function () {
return gadget.redirect({command: 'change', options: {}});
});
}
if (gadget.state.url_options) {
return gadget.redirect(gadget.state.url_options);
}
})
.declareMethod('getContent', function () {
return {};
});
}(window, rJS, URL, jIO, RSVP));
\ No newline at end of file
......@@ -16,7 +16,6 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -59,10 +58,15 @@
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -70,16 +74,14 @@
</value>
</item>
<item>
<key> <string>creators</string> </key>
<key> <string>content_type</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_ojs_software_product_web_section_list.js</string> </value>
<value> <string>gadget_ojs_appstore_publish_button.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -89,7 +91,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_ojs_software_product_web_section_list_js</string> </value>
<value> <string>gadget_ojs_appstore_publish_button_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -97,25 +99,6 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
......@@ -128,7 +111,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Software Product Web Section List JS</string> </value>
<value> <string>Gadget OfficeJS Appstore Update Link JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -194,7 +177,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -216,7 +199,7 @@
</tuple>
<state>
<tuple>
<float>1459349298.89</float>
<float>1535469130.23</float>
<string>UTC</string>
</tuple>
</state>
......@@ -247,7 +230,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -261,7 +244,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>950.11625.50081.63283</string> </value>
<value> <string>970.20979.24542.29201</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -279,7 +262,7 @@
</tuple>
<state>
<tuple>
<float>1459350443.28</float>
<float>1537777582.25</float>
<string>UTC</string>
</tuple>
</state>
......@@ -302,11 +285,13 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -318,7 +303,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -336,7 +321,7 @@
</tuple>
<state>
<tuple>
<float>1459347957.27</float>
<float>1535469104.44</float>
<string>UTC</string>
</tuple>
</state>
......
/*global window, rJS, RSVP, URI, location,
loopEventListener, btoa, SimpleQuery, ComplexQuery, Query */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP, SimpleQuery, ComplexQuery, Query) {
"use strict";
var gadget_klass = rJS(window);
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareMethod("render", function () {
var gadget = this;
return gadget.updateHeader({
page_title: "OfficeJS Applications",
panel_action: false
})
.push(function () {
return gadget.jio_allDocs({
query: 'portal_type:("Web Site") AND validation_state:"published"',
select_list: ['uid']
});
})
.push(function (result) {
var i, i_len, query, uid_query_list = [];
for (i = 0, i_len = result.data.total_rows; i < i_len; i += 1) {
uid_query_list.push(
new SimpleQuery({
key: 'parent_uid',
value: result.data.rows[i].value.uid
})
);
}
query = new ComplexQuery({
operator: "AND",
query_list: [
new ComplexQuery({operator: "OR", query_list: uid_query_list}),
new SimpleQuery({key: "portal_type", value: "Web Section"}),
new SimpleQuery({key: "id", value: "latest"})
]
});
return gadget.jio_allDocs({
query: Query.objectToSearchText(query)
});
})
.push(function (result) {
var list_element = gadget.props.element.querySelector("ul"),
queue = new RSVP.Queue(),
i, i_len;
function addApplication(id) {
queue.push(function () {
var element = document.createElement("li");
list_element.appendChild(element);
return gadget.declareGadget(
"gadget_officejs_application_presentation_element.html",
{
element: element
}
);
}).push(function (application_presentation_element) {
return application_presentation_element.render({id: id});
});
}
// XXX Should clean list prior to adding any element
for (i = 0, i_len = result.data.total_rows; i < i_len; i += 1) {
addApplication(result.data.rows[i].id);
}
return queue;
})
.push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return true;
});
});
}(window, rJS, RSVP, SimpleQuery, ComplexQuery, Query));
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Application List Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src=" gadget_ojs_software_product_web_section_list.js"></script>
<script id="table-template" type="text/x-handlebars-template">
<article class="ui-content ui-body-c">
<ul data-role="listview" data-theme="c" data-inset="true">
{{#each documentlist}}
<li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>
{{/each}}
</ul>
</article>
</script>
</head>
<body>
</html>
/*global window, rJS, RSVP, Handlebars, jQuery */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP, Handlebars, $) {
"use strict";
/////////////////////////////////////////////////////////////////
// Handlebars
/////////////////////////////////////////////////////////////////
// Precompile the templates while loading the first gadget instance
var gadget_klass = rJS(window),
source = gadget_klass.__template_element
.getElementById("table-template")
.innerHTML,
table_template = Handlebars.compile(source);
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("jio_getAttachment", "jio_getAttachment")
.declareMethod("render", function (options) {
console.log(options);
var gadget = this,
id = options.value;
return gadget.jio_getAttachment(id, "view")
.push(function (result) {
var list_method_template;
console.log(result);
list_method_template = result._embedded._view.listbox.list_method_template;
return gadget.jio_allDocs({
list_method_template: list_method_template,
select_list: ['relative_url', 'title', 'id'],
sort_on:[["modification_date","descending"],]
});
})
.push(function (result) {
console.log(result);
var i, i_len, version_list = [];
for (i = 0, i_len = result.data.total_rows; i < i_len; i += 1) {
// XX Should do that during query
if (result.data.rows[i].value.id !== "hateoas") {
version_list.push({
title: result.data.rows[i].value.title,
link: result.data.rows[i].value.relative_url + "/",
});
}
}
gadget.props.element.innerHTML = table_template({
documentlist: version_list
});
$(gadget.props.element).enhanceWithin();
return true;
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return true;
});
});
}(window, rJS, RSVP, Handlebars, jQuery));
\ No newline at end of file
......@@ -253,7 +253,7 @@
</item>
<item>
<key> <string>skin_selection_name</string> </key>
<value> <string>Hal</string> </value>
<value> <string>HalRestricted</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -381,7 +381,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -403,7 +403,7 @@
</tuple>
<state>
<tuple>
<float>1458123941.24</float>
<float>1535011051.76</float>
<string>UTC</string>
</tuple>
</state>
......@@ -434,7 +434,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -448,7 +448,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>949.56721.45151.17595</string> </value>
<value> <string>969.50493.34732.36812</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -466,7 +466,7 @@
</tuple>
<state>
<tuple>
<float>1459415303.98</float>
<float>1535011085.73</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -108,12 +108,6 @@
</dictionary>
</value>
</item>
<item>
<key> <string>__translation_dict</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
......@@ -278,7 +272,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -300,7 +294,7 @@
</tuple>
<state>
<tuple>
<float>1458123941.26</float>
<float>1535011051.77</float>
<string>UTC</string>
</tuple>
</state>
......@@ -331,12 +325,12 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
<persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent>
</value>
</item>
<item>
......@@ -345,7 +339,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>949.56721.45151.17595</string> </value>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -363,7 +357,7 @@
</tuple>
<state>
<tuple>
<float>1459415303.97</float>
<float>1535011051.77</float>
<string>UTC</string>
</tuple>
</state>
......@@ -375,4 +369,36 @@
</tuple>
</pickle>
</record>
<record id="8" aka="AAAAAAAAAAg=">
<pickle>
<global name="Message" module="Products.ERP5Type.Message"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string>Object copied from ${source_item}</string> </value>
</item>
<item>
<key> <string>domain</string> </key>
<value> <string>erp5_ui</string> </value>
</item>
<item>
<key> <string>mapping</string> </key>
<value>
<dictionary>
<item>
<key> <string>source_item</string> </key>
<value> <string>/erp5/web_site_module/renderjs_runner</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>message</string> </key>
<value> <string>Object copied from ${source_item}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<registered_skin_selection>
<skin_folder_selection>
<skin_folder>erp5_officejs_appstore_ui</skin_folder>
<skin_selection>Hal,HalRestricted,RJS</skin_selection>
</skin_folder_selection>
</registered_skin_selection>
\ No newline at end of file
return [('', '')] + [(x.getTitle(), x.relative_url) for x in context.getPortalObject().portal_catalog(
return [(x.getTitle(), x.relative_url) for x in context.getPortalObject().portal_catalog(
portal_type="Software Product",
# Is validation state necessary here?
# validation_state="validated",
......
return context.ERP5Site_createNewSoftwarePublication(
file=file,
product_line="software/application",
title=title,
version_title= str(DateTime()),
changelog="",
description=description,
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>file, title, description="", **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_createNewApplication</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProductModule_createNewApplication</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>your_file</string>
<string>your_title</string>
<string>your_description</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_createNewApplicationDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProductModule_createNewApplicationDialog</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Create Application</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,13 +10,14 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>description</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_content_security_policy</string> </value>
<value> <string>your_description</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -71,9 +72,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string>Set Or update Software Product Title</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......@@ -85,7 +90,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Content Security Policy</string> </value>
<value> <string>Description</string> </value>
</item>
</dictionary>
</value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_file</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>your_file_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Application Zip</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,14 +10,15 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_resource_base_url</string> </value>
<value> <string>your_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -53,12 +54,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -71,10 +66,6 @@
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -83,24 +74,28 @@
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
<key> <string>description</string> </key>
<value> <string>Set Or update Software Product Title</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
<value> <string>your_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Resource Base URL</string> </value>
<value> <string>Title</string> </value>
</item>
</dictionary>
</value>
......@@ -108,17 +103,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getLayoutProperty(field.getId().replace(\'my_\', \'\', 1), \'\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
return context.ERP5Site_createNewSoftwarePublication(
file=file,
product_line="software/application",
title=context.getTitle(),
version_title= str(DateTime()),
changelog=changelog,
description="",
software_product=context.getRelativeUrl(),
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>file, changelog="", **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProduct_updateApplication</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProduct_updateApplication</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>your_file</string>
<string>your_changelog</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProduct_updateApplicationDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProduct_updateApplication</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Update Application</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -16,7 +16,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_latest_version</string> </value>
<value> <string>your_changelog</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......@@ -85,7 +85,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Latest Version</string> </value>
<value> <string>Changelog</string> </value>
</item>
</dictionary>
</value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_file</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>your_file_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Application Zip</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
software_release = context.SoftwarePublication_getRelatedSoftwareRelease()
return software_release.getFollowUpValue(portal_type="Software Product").getRelativeUrl()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwarePublication_getRelatedSoftwareProduct</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
software_release = context.SoftwarePublication_getRelatedSoftwareRelease()
software_product = software_release.getFollowUpValue(portal_type="Software Product")
return software_product.SoftwareProduct_getRelatedWebSite()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwarePublication_getRelatedWebSite</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
url = context.SoftwarePublication_getTestUrl()
if url_dict:
return {
'command': 'raw',
'options': {
'url': url
}
}
return url
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>url_dict=False, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwarePublication_getTestUrlUi</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
REQUEST = context.REQUEST
RESPONSE = REQUEST.RESPONSE
software_release = context.SoftwarePublication_getRelatedSoftwareRelease()
software_release.SoftwareRelease_publishRelatedWebDocument()
message = context.getTitle() + " Published"
if hasattr(context, 'Base_redirect'):
return context.Base_redirect(
'',
keep_items={
'portal_status_message': context.Base_translateString(message),
},
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwarePublication_selectVersion</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -7,7 +7,19 @@ default_web_page = context
web_section = REQUEST.get("current_web_section")
#raise ValueError(web_section.getLayoutProperty("configuration_latest_version", default="development"))
return default_web_page.WebPage_viewAsWeb(mapping_dict={
mapping_dict={
"latest_version": web_section.getLayoutProperty("configuration_latest_version", default="development"),
#"application_appcache": web_section.getId() + ".appcache",
})
"latest_document_version": web_section.getLayoutProperty("configuration_latest_document_version", default=context.getWebSiteValue().getId() + "-dev"),
"redirect_url": web_section.getLayoutProperty("configuration_redirect_url", default=""),
"cache_file": web_section.getLayoutProperty("configuration_cache_file", default=""),
"application_name": web_section.getTitle()
}
configuration_webapp_manifest_url = web_section.getLayoutProperty("configuration_webapp_manifest_url", default=None)
if configuration_webapp_manifest_url is None:
mapping_dict["webapp_manifest_full_link_tag"] = ''
else:
mapping_dict["webapp_manifest_full_link_tag"] = '<link rel="manifest" href="' + configuration_webapp_manifest_url + '">'
return default_web_page.WebPage_viewAsWeb(mapping_dict=mapping_dict)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>90.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_officejs_appstore_ui</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -35,7 +35,7 @@
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
<value> <string>Base_doSelect</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
......@@ -61,6 +61,9 @@
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
......@@ -69,17 +72,31 @@
<value>
<dictionary>
<item>
<key> <string>left</string> </key>
<key> <string>bottom</string> </key>
<value>
<list>
<string>my_configuration_latest_version</string>
<string>my_configuration_content_security_policy</string>
<string>my_configuration_resource_base_url</string>
<string>my_configuration_x_frame_options</string>
<string>my_configuration_base_reference</string>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
......@@ -91,7 +108,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebSection_viewOfficeJSApplicationPreference</string> </value>
<value> <string>SoftwareProductModule_viewSoftwareProductList</string> </value>
</item>
<item>
<key> <string>method</string> </key>
......@@ -99,11 +116,11 @@
</item>
<item>
<key> <string>name</string> </key>
<value> <string>WebSection_viewHateoasPreference</string> </value>
<value> <string>SoftwareProductModule_viewSoftwareProductList</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
<value> <string>form_list</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
......@@ -115,7 +132,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Web Section Preference</string> </value>
<value> <string>Appliation List</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
......
......@@ -10,15 +10,18 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>columns</string>
<string>css_class</string>
<string>portal_types</string>
<string>search_columns</string>
<string>selection_name</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_x_frame_options</string> </value>
<value> <string>listbox</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -54,16 +57,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -76,10 +69,6 @@
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -88,20 +77,72 @@
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>creation_date</string>
<string>Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Set Value to "ALLOW-FROM-ALL" to disable this header</string> </value>
<key> <string>css_class</string> </key>
<value> <string>hidden_label</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<value> <string>my_list_mode_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<value> <string>Base_viewSoftwarePDMFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Data Set</string>
<string>Data Set</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Software Product</string>
<string>Software Product</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>creation_date</string>
<string>Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>software_product_selection</string> </value>
</item>
<item>
<key> <string>target</string> </key>
......@@ -109,7 +150,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>X-Frame-Options</string> </value>
<value> <string>Applications</string> </value>
</item>
</dictionary>
</value>
......@@ -117,17 +158,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getLayoutProperty("configuration_x_frame_options", default="SAMEORIGIN")</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
portal = context.getPortalObject()
result = []
software_publication_list = portal.portal_catalog(
**kw
)
for software_publication in software_publication_list:
software_publication_line = software_publication.objectValues(
portal_type="Software Publication Line"
)[0]
if context.getRelativeUrl() == software_publication_line.getResource():
result.append(software_publication)
return result
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProduct_getRelatedSoftwarePublicationList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,16 +9,12 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>title</string>
</list>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_base_reference</string> </value>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -54,12 +50,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -72,10 +62,6 @@
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -83,47 +69,22 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Will be added at the beginning of the reference on getDocumentValue</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<value> <string>Base_viewSoftwarePDMFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Base Reference</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getLayoutProperty(field.getId().replace(\'my_\', \'\', 1), \'\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
software_release = context.SoftwarePublication_getRelatedSoftwareRelease()
software_product = software_release.getFollowUpValue(portal_type="Software Product")
web_site = software_product.SoftwareProduct_getRelatedWebSite()
select = ""
if web_site is not None and software_release.getReference() == web_site.getLayoutProperty('configuration_latest_version'):
select = "1"
return select
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