Commit 92cb8f1c authored by Romain Courteaud's avatar Romain Courteaud

slapos_cloud: add Project_getSoftwareProductPredicateList

parent d46cef4e
......@@ -23,8 +23,6 @@ else:
software_instance_portal_type)
### Step 1, check where the allocation is allowed
from Products.CMFCore.utils import getToolByName
domain_tool = getToolByName(portal, 'portal_domains')
# XXX prototype for now
tmp_instance = portal.portal_trash.newContent(
......@@ -40,22 +38,14 @@ software_product, release_variation, type_variation = tmp_instance.InstanceTree_
if software_product is None:
raise ValueError('No Software Product matching')
tmp_context = portal.portal_trash.newContent(
portal_type='Movement',
temp_object=1,
resource_value=software_product,
software_type_value=type_variation,
software_release_value=release_variation,
allocation_cell_list = software_product.getFollowUpValue().Project_getSoftwareProductPredicateList(
software_product=software_product,
software_product_type=type_variation,
software_product_release=release_variation,
destination_value=context,
destination_project_value=software_product.getFollowUpValue(),
start_date=DateTime()
predicate_portal_type='Allocation Supply Cell'
)
allocation_cell_list = [x.getObject() for x in \
domain_tool.searchPredicateList(
tmp_context, portal_type=['Allocation Supply Cell'])
if x.isAllocable()]
#context.log('allocation_cell_list %s' % str(allocation_cell_list))
if not allocation_cell_list:
raise ValueError('No Allocation Supply allowing this operation')
......
from Products.CMFCore.utils import getToolByName
project = context
portal = project.getPortalObject()
domain_tool = getToolByName(portal, 'portal_domains')
tested_base_category_list = ['destination', 'destination_project']
if software_product is not None:
tested_base_category_list.append('resource')
if software_product_type is not None:
tested_base_category_list.append('software_type')
if software_product_release is not None:
tested_base_category_list.append('software_release')
if destination_value is None:
destination_value = portal.portal_membership.getAuthenticatedMember().getUserValue()
if len(tested_base_category_list) == 5:
tested_base_category_list = None
if predicate_portal_type is None:
predicate_portal_type = 'Allocation Supply Cell'
tmp_context = portal.portal_trash.newContent(
portal_type='Movement',
temp_object=1,
resource_value=software_product,
software_type_value=software_product_type,
software_release_value=software_product_release,
destination_value=destination_value,
destination_project_value=project,
start_date=DateTime()
)
return [x.getObject() for x in domain_tool.searchPredicateList(
tmp_context,
portal_type=predicate_portal_type,
tested_base_category_list=tested_base_category_list
)]
<?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>software_product=None, software_product_type=None, software_product_release=None, destination_value=None, predicate_portal_type=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Project_getSoftwareProductPredicateList</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