Commit 0cd983b1 authored by Romain Courteaud's avatar Romain Courteaud 🐙

slapos_panel:

* do not create multiple Instance Node from an Instance Tree
* show project Instance Nodes
* show Compute/Instance Node's allocation supplies
* handle software product with only one software type
* try not to duplicate software product
* improve software release creation
  extend software type list
* no need to manually create software type
* only check Software Product from the same project
* person view
parent 8ddbe290
......@@ -16,13 +16,13 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_fast_input</string>
<string>action_type/object_jio_jump</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_jio_fast_input</string> </value>
<value> <string>object_jio_jump</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
......@@ -42,7 +42,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>add_slapos_software_type</string> </value>
<value> <string>jump_to_slapos_allocation_supply</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
......@@ -52,17 +52,13 @@
</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>9.0</float> </value>
<value> <float>20.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Add Software Type</string> </value>
<value> <string>Allocation Supplies</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
......@@ -79,7 +75,11 @@
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SoftwareProduct_viewSlapOSSoftwareTypeFastInputDialog</string> </value>
<value> <string encoding="cdata"><![CDATA[
string:${object_url}/Base_jumpToRelatedObject?base_category=aggregate&portal_type=Allocation+Supply
]]></string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_jump</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_jio_jump</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</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>jump_to_slapos_allocation_supply</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>20.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Allocation Supplies</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 encoding="cdata"><![CDATA[
string:${object_url}/Base_jumpToRelatedObject?base_category=aggregate&portal_type=Allocation+Supply
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python: context.Base_hasSlapOSProjectUserGroup(project_relation=\'follow_up\', manager=True, agent=True)</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_panel_view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>10.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Person_viewOnSlaposPanel</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_jump</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_jio_jump</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</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>jump_to_slapos_instance_node</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>20.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Instance Nodes</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 encoding="cdata"><![CDATA[
string:${object_url}/Base_jumpToRelatedObject?base_category=follow_up&portal_type=Instance+Node
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python: context.Base_hasSlapOSProjectUserGroup(manager=True, agent=True)</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -2,14 +2,37 @@ from Products.ERP5Type.Message import translateString
portal = context.getPortalObject()
instance_tree = context
software_instance = instance_tree.getSuccessorValue(portal_type='Software Instance')
# If an Instance Node already exist, do nothing
instance_node = portal.portal_catalog.getResultValue(
portal_type="Instance Node",
specialise__uid=software_instance.getUid()
)
if (instance_node is not None):
return instance_node.Base_redirect(
keep_items={
'portal_status_message': translateString('Instance Node already created.')
}
)
# If an Instance Node is not yet indexed, do nothing
tag = "%s_createInstanceNode" % instance_tree.getUid()
if (0 < portal.portal_activities.countMessageWithTag(tag)):
# The instance node is already under creation but can not be fetched from catalog
return instance_tree.Base_redirect(
keep_items={
'portal_status_message': translateString('New Instance Node under creation.')
}
)
instance_node = portal.compute_node_module.newContent(
portal_type='Instance Node',
title=instance_tree.getTitle(),
specialise_value=software_instance,
follow_up_value=software_instance.getFollowUpValue()
follow_up_value=software_instance.getFollowUpValue(),
activate_kw={'tag': tag}
)
instance_node.validate()
......
......@@ -35,7 +35,7 @@
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProduct_addSlapOSSoftwareType</string> </value>
<value> <string></string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
......@@ -57,7 +57,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>
......@@ -65,6 +65,7 @@
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
......@@ -80,6 +81,12 @@
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
......@@ -90,14 +97,18 @@
<key> <string>left</string> </key>
<value>
<list>
<string>your_title</string>
<string>my_first_name</string>
<string>my_last_name</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
<list>
<string>my_default_email_coordinate_text</string>
<string>my_default_email_url_string</string>
</list>
</value>
</item>
</dictionary>
......@@ -105,7 +116,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProduct_viewSlapOSSoftwareTypeFastInputDialog</string> </value>
<value> <string>Person_viewOnSlaposPanel</string> </value>
</item>
<item>
<key> <string>method</string> </key>
......@@ -113,11 +124,11 @@
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProduct_viewSlapOSSoftwareTypeFastInputDialog</string> </value>
<value> <string>Person_viewOnSlaposPanel</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
......@@ -129,7 +140,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Add Software Type</string> </value>
<value> <string>Person</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
......
......@@ -10,15 +10,13 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>input_type</string>
<string>required</string>
<string>title</string>
<string>enabled</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_title</string> </value>
<value> <string>my_default_email_coordinate_text</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -43,6 +41,10 @@
<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>
......@@ -50,6 +52,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>enabled</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -58,6 +66,10 @@
<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>
......@@ -65,25 +77,21 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<value> <string>my_email</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>url</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Title</string> </value>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
......@@ -91,4 +99,17 @@
</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.hasDefaultEmail() and not here.getDefaultEmail().isDetailed()) or not here.hasDefaultEmail()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>enabled</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_default_email_url_string</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>enabled</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>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_email_url_string</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewBaseFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</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.hasDefaultEmail() and here.getDefaultEmail().isDetailed()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,16 +9,12 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>input_type</string>
<string>required</string>
<string>title</string>
</list>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_url_string</string> </value>
<value> <string>my_first_name</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -43,6 +39,10 @@
<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>
......@@ -58,6 +58,10 @@
<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>
......@@ -66,24 +70,24 @@
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<key> <string>description</string> </key>
<value> <string>The first name of the person.</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<key> <string>field_id</string> </key>
<value> <string>my_first_name</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>url</string> </value>
<key> <string>form_id</string> </key>
<value> <string>Person_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Url String</string> </value>
<value> <string>First Name</string> </value>
</item>
</dictionary>
</value>
......
......@@ -9,16 +9,12 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>input_type</string>
<string>required</string>
<string>title</string>
</list>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_title</string> </value>
<value> <string>my_last_name</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -43,6 +39,10 @@
<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>
......@@ -58,6 +58,10 @@
<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>
......@@ -66,24 +70,24 @@
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<key> <string>description</string> </key>
<value> <string>The last name of the person.</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<key> <string>field_id</string> </key>
<value> <string>my_last_name</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>url</string> </value>
<key> <string>form_id</string> </key>
<value> <string>Person_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Title</string> </value>
<value> <string>Last Name</string> </value>
</item>
</dictionary>
</value>
......
......@@ -2,6 +2,19 @@ from Products.ERP5Type.Message import translateString
portal = context.getPortalObject()
# First, search if the release already exists
software_release_variation = portal.portal_catalog.getResultValue(
portal_type="Software Product Release Variation",
url_string=software_release,
parent__follow_up__uid=context.getUid()
)
if software_release_variation is not None:
return software_release_variation.getParentValue().Base_redirect(
keep_items={
'portal_status_message': translateString('Software Product already exist.')
}
)
software_product = portal.software_product_module.newContent(
title=title,
follow_up_value=context
......@@ -11,6 +24,9 @@ software_product.newContent(
title=software_release,
url_string=software_release
)
if same_type(software_type_list, ""):
software_type_list = [software_type_list]
for software_type in software_type_list:
software_product.newContent(
portal_type="Software Product Type Variation",
......
from Products.ERP5Type.Message import translateString
portal = context.getPortalObject()
software_product = context
software_release = software_product.newContent(
# First, search if the release already exists
software_release_variation = portal.portal_catalog.getResultValue(
portal_type="Software Product Release Variation",
title=title,
url_string=url_string
url_string=software_release,
parent__follow_up__uid=software_product.getFollowUpUid()
)
if software_release_variation is not None:
return software_release_variation.Base_redirect(
keep_items={
'portal_status_message': translateString('Software Release already exist.')
}
)
return software_release.Base_redirect(
software_release_variation = software_product.newContent(
portal_type="Software Product Release Variation",
title=software_release,
url_string=software_release
)
if same_type(software_type_list, ""):
software_type_list = [software_type_list]
for software_type in software_type_list:
# Check if the software type already exist
software_type_variation = portal.portal_catalog.getResultValue(
portal_type="Software Product Type Variation",
parent_uid=software_product.getUid(),
title=software_type,
)
if software_type_variation is None:
software_product.newContent(
portal_type="Software Product Type Variation",
title=software_type
)
return software_release_variation.Base_redirect(
keep_items={
'portal_status_message': translateString('New Software Release created.')
})
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>title, url_string, **kw</string> </value>
<value> <string>software_release, software_type_list, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
from Products.ERP5Type.Message import translateString
software_product = context
software_release = software_product.newContent(
portal_type="Software Product Type Variation",
title=title
)
return software_release.Base_redirect(
keep_items={
'portal_status_message': translateString('New Software Type created.')
})
<?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>title, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProduct_addSlapOSSoftwareType</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -90,8 +90,7 @@
<key> <string>left</string> </key>
<value>
<list>
<string>your_title</string>
<string>your_url_string</string>
<string>your_product_import_json</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>gadget_url</string>
<string>renderjs_extra</string>
<string>title</string>
<string>validator_field_id</string>
<string>validator_form_id</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_product_import_json</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>
<item>
<key> <string>gadget_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_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>my_gadget_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string>slapos_master_panel_import_product.html</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list>
<tuple>
<string>title_key</string>
<string>title</string>
</tuple>
<tuple>
<string>description_key</string>
<string>description</string>
</tuple>
<tuple>
<string>software_release_key</string>
<string>software_release</string>
</tuple>
<tuple>
<string>software_type_key</string>
<string>software_type_list</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Release</string> </value>
</item>
<item>
<key> <string>validator_field_id</string> </key>
<value> <string>my_core_mode_text_content_validator</string> </value>
</item>
<item>
<key> <string>validator_form_id</string> </key>
<value> <string>erp5_core/Base_viewFieldLibrary</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -3,12 +3,14 @@ Allocation Supply | slapos_panel_view
Allocation Supply | validate_and_slapos_supply
Compute Node Module | slapos_panel_view
Compute Node | add_slapos_support_request
Compute Node | jump_to_slapos_allocation_supply
Compute Node | request_slapos_certificate_action
Compute Node | revoke_slapos_certificate
Compute Node | slapos_panel_view
Compute Node | supply_slapos
Event Module | slapos_panel_view
Instance Node | add_slapos_allocation_supply
Instance Node | jump_to_slapos_allocation_supply
Instance Tree Module | slapos_panel_view
Instance Tree | add_slapos_instance_node
Instance Tree | add_slapos_support_request
......@@ -18,12 +20,14 @@ Instance Tree | slapos_panel_view
Instance Tree | update_slapos_parameter
Instance Tree | view_request_destroy
Mail Message | slapos_panel_view
Person | slapos_panel_view
Project Module | slapos_panel_view
Project | add_slapos_allocation_supply
Project | add_slapos_compute_node
Project | add_slapos_software_product
Project | jump_to_slapos_allocation_supply
Project | jump_to_slapos_compute_node
Project | jump_to_slapos_instance_node
Project | jump_to_slapos_instance_tree
Project | jump_to_slapos_software_product
Project | jump_to_slapos_support_request
......@@ -41,7 +45,6 @@ Software Product Module | slapos_panel_view
Software Product Release Variation | slapos_panel_view
Software Product Type Variation | slapos_panel_view
Software Product | add_slapos_software_release
Software Product | add_slapos_software_type
Software Product | jump_to_slapos_software_release
Software Product | jump_to_slapos_software_type
Software Product | slapos_panel_view
......
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