Commit 7546a9a9 authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_jio: Improve transfer gadgets for Compute Node and Instance Tree

   - Fixup current Organisation on Compute Node UI (missing field)
   - Extend the query to fetch as much project and organisations as possible
   - Sort alphabetically, since it is more user_friendly
   - Keep single field (not current/Future) for each project, and pre-select the default
parent 94999b09
......@@ -67,12 +67,9 @@
"The name of a document in ERP5",
"Title",
"Reference",
"Current Location",
"Current Project",
"Future Location",
"Future Project",
"Current Organisation",
"Future Organisation",
"Location",
"Project",
"Organisation",
"Parent Relative Url",
"Transfer Compute Node"
];
......@@ -96,26 +93,31 @@
gadget.jio_allDocs({
query: 'portal_type:"Organisation" AND role_title: "Host" AND relative_url:(' + destination_list + ')',
sort_on: [['reference', 'ascending']],
select_list: ['reference', 'title']
select_list: ['reference', 'title'],
limit: 1000
}),
gadget.jio_allDocs({
query: 'portal_type:"Project" AND validation_state:"validated"',
sort_on: [['reference', 'ascending']],
select_list: ['reference', 'title'],
limit: 50
limit: 1000
}),
gadget.jio_allDocs({
query: 'portal_type:"Organisation" AND role_title: "Client" AND relative_url:(' + destination_list + ')',
sort_on: [['reference', 'ascending']],
select_list: ['reference', 'title']
select_list: ['reference', 'title'],
limit: 1000
}),
gadget.getTranslationList(translation_list)
]);
})
.push(function (result) {
gadget.message_translation = result[5][0];
page_translation = result[5][11];
page_translation = result[5][8];
var doc = result[1],
default_site = "",
default_organisation = "",
default_project = "",
site_list = [["", ""]],
project_list = [["", ""]],
organisation_list = [["", ""]],
......@@ -125,6 +127,9 @@
organisation_len = result[4].data.total_rows;
for (i = 0; i < site_len; i += 1) {
if (result[2].data.rows[i].value.title === doc.source_title) {
default_site = result[2].data.rows[i].id;
}
site_list.push([
result[2].data.rows[i].value.title || result[2].data.rows[i].value.reference,
result[2].data.rows[i].id
......@@ -132,6 +137,9 @@
}
for (i = 0; i < project_len; i += 1) {
if (result[3].data.rows[i].value.title === doc.source_project_title) {
default_project = result[3].data.rows[i].id;
}
project_list.push([
result[3].data.rows[i].value.title || result[3].data.rows[i].value.reference,
result[3].data.rows[i].id
......@@ -139,6 +147,9 @@
}
for (i = 0; i < organisation_len; i += 1) {
if (result[4].data.rows[i].value.title === doc.source_section_title) {
default_organisation = result[4].data.rows[i].id;
}
organisation_list.push([
result[4].data.rows[i].value.title || result[4].data.rows[i].value.reference,
result[4].data.rows[i].id
......@@ -170,35 +181,13 @@
"hidden": 0,
"type": "StringField"
},
"my_source": {
"description": result[5][1],
"title": result[5][4],
"default": doc.source_title,
"css_class": "",
"required": 1,
"editable": 0,
"key": "source_title",
"hidden": 0,
"type": "StringField"
},
"my_source_project": {
"description": result[5][1],
"title": result[5][5],
"default": doc.source_project_title,
"css_class": "",
"required": 1,
"editable": 0,
"key": "source_project_title",
"hidden": 0,
"type": "StringField"
},
"my_destination": {
"description": result[5][1],
"title": result[5][6],
"default": "",
"title": result[5][4],
"default": default_site,
"items": site_list,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "destination",
"hidden": 0,
......@@ -206,34 +195,23 @@
},
"my_destination_project": {
"description": result[5][1],
"title": result[5][7],
"default": "",
"title": result[5][5],
"default": default_project,
"items": project_list,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "destination_project",
"hidden": 0,
"type": "ListField"
},
"my_source_section": {
"description": result[5][1],
"title": result[5][8],
"default": doc.source_section_title,
"css_class": "",
"required": 1,
"editable": 0,
"key": "source_section_title",
"hidden": 0,
"type": "StringField"
},
"my_destination_section": {
"description": result[5][1],
"title": result[5][9],
"default": "",
"title": result[5][6],
"default": default_organisation,
"items": organisation_list,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "destination_section",
"hidden": 0,
......@@ -241,7 +219,7 @@
},
"my_relative_url": {
"description": "",
"title": result[5][10],
"title": result[5][7],
"default": options.jio_key,
"css_class": "",
"required": 1,
......@@ -261,8 +239,9 @@
form_definition: {
group_list: [[
"left",
[["my_title"], ["my_reference"], ["my_source_section"], ["my_source"], ["my_source_project"],
["my_destination"], ["my_destination_project"], ["my_destination_section"], ["my_relative_url"]]
[["my_title"], ["my_reference"], ["my_destination"],
["my_destination_project"], ["my_destination_section"],
["my_relative_url"]]
]]
}
});
......
......@@ -283,7 +283,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>994.62925.42961.44083</string> </value>
<value> <string>1008.21053.13307.46148</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -303,7 +303,7 @@
</tuple>
<state>
<tuple>
<float>1638836612.1</float>
<float>1683748065.12</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -64,10 +64,8 @@
"The name of a document in ERP5",
"Title",
"Reference",
"Current Project",
"Future Organisation",
"Current Organisation",
"Future Project",
"Project",
"Organisation",
"Parent Relative Url",
"Transfer Service"
];
......@@ -90,21 +88,24 @@
gadget.jio_get(options.jio_key),
gadget.jio_allDocs({
query: 'portal_type:"Organisation" AND role_title: "Client" AND relative_url:(' + destination_list + ')',
sort_on: [['reference', 'ascending']],
select_list: ['reference', 'title']
sort_on: [['title', 'descending']],
select_list: ['reference', 'title'],
limit: 1000
}),
gadget.jio_allDocs({
query: 'portal_type:"Project" AND validation_state:"validated"',
sort_on: [['reference', 'ascending']],
sort_on: [['title', 'descending']],
select_list: ['reference', 'title'],
limit: 50
limit: 1000
}),
gadget.getTranslationList(translation_list)
]);
})
.push(function (result) {
gadget.page_title_translation = result[4][8];
gadget.page_title_translation = result[4][6];
var doc = result[1],
default_organisation = "",
default_project = "",
organisation_list = [["", ""]],
project_list = [["", ""]],
i,
......@@ -112,6 +113,9 @@
site_len = result[2].data.total_rows;
for (i = 0; i < site_len; i += 1) {
if (result[2].data.rows[i].value.title === doc.source_title) {
default_organisation = result[2].data.rows[i].id;
}
organisation_list.push([
result[2].data.rows[i].value.title || result[2].data.rows[i].value.reference,
result[2].data.rows[i].id
......@@ -119,6 +123,9 @@
}
for (i = 0; i < project_len; i += 1) {
if (result[3].data.rows[i].value.title === doc.source_project_title) {
default_project = result[3].data.rows[i].id;
}
project_list.push([
result[3].data.rows[i].value.title || result[3].data.rows[i].value.reference,
result[3].data.rows[i].id
......@@ -133,7 +140,7 @@
"title": result[4][1],
"default": doc.title,
"css_class": "",
"required": 1,
"required": 0,
"editable": 0,
"key": "title",
"hidden": 0,
......@@ -144,53 +151,31 @@
"title": result[4][2],
"default": doc.reference,
"css_class": "",
"required": 1,
"required": 0,
"editable": 0,
"key": "reference",
"hidden": 0,
"type": "StringField"
},
"my_source_project": {
"description": result[4][0],
"title": result[4][3],
"default": doc.source_project_title,
"css_class": "",
"required": 1,
"editable": 0,
"key": "source_project_title",
"hidden": 0,
"type": "StringField"
},
"my_destination": {
"description": result[4][0],
"title": result[4][4],
"default": "",
"default": default_organisation,
"items": organisation_list,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "destination",
"hidden": 0,
"type": "ListField"
},
"my_source": {
"description": result[4][0],
"title": result[4][5],
"default": doc.source_title,
"css_class": "",
"required": 1,
"editable": 0,
"key": "source_title",
"hidden": 0,
"type": "StringField"
},
"my_destination_project": {
"description": result[4][0],
"title": result[4][6],
"default": "",
"title": result[4][3],
"default": default_project,
"items": project_list,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "destination_project",
"hidden": 0,
......@@ -198,10 +183,10 @@
},
"my_relative_url": {
"description": "",
"title": result[4][7],
"title": result[4][5],
"default": options.jio_key,
"css_class": "",
"required": 1,
"required": 0,
"editable": 1,
"key": "relative_url",
"hidden": 1,
......@@ -218,8 +203,8 @@
form_definition: {
group_list: [[
"left",
[["my_title"], ["my_reference"], ["my_source_project"], ["my_source"],
["my_destination_project"], ["my_destination"], ["my_relative_url"]]
[["my_title"], ["my_reference"], ["my_destination_project"],
["my_destination"], ["my_relative_url"]]
]]
}
});
......
......@@ -281,7 +281,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>993.49407.7079.26129</string> </value>
<value> <string>1008.21012.42560.59289</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -301,7 +301,7 @@
</tuple>
<state>
<tuple>
<float>1638836764.88</float>
<float>1683747638.24</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -107,6 +107,7 @@
<string>my_source_project_title</string>
<string>my_monitor_scope</string>
<string>my_upgrade_scope</string>
<string>my_source_section_title</string>
</list>
</value>
</item>
......
<?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>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_source_section_title</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>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<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>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</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>Current Organisation</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.Item_getCurrentOwnerTitle()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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