Commit ada4a0f9 authored by Hugo Ricateau's avatar Hugo Ricateau

[erp5_business_package]: Reorganisation of the GUI

parent d1fc9ed9
......@@ -2,7 +2,7 @@
##############################################################################
#
# Copyright (c) 2017 Nexedi SARL and Contributors. All Rights Reserved.
# Ayush-Tiwari <ayush.tiwari@nexedi.com>
# Ayush Tiwari <ayush.tiwari@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
......@@ -39,7 +39,6 @@ import fnmatch
import re
import threading
import pprint
import uuid
from copy import deepcopy
from collections import defaultdict
......@@ -73,9 +72,9 @@ class BusinessCommit(Folder):
meta_type = 'ERP5 Business Commit'
portal_type = 'Business Commit'
add_permission = Permissions.AddPortalContent
allowed_types = ('Business Item',
'Business Property Item',
'Business Patch item',)
allowed_types = ('Business Item',)
id_generator = '_generateUniversalUniqueId'
template_format_version = 3
......@@ -89,10 +88,7 @@ class BusinessCommit(Folder):
, 'type_class' : 'BusinessCommit'
, 'immediate_view' : 'BusinessCommit_view'
, 'allow_discussion' : 1
, 'allowed_content_types': ( 'Business Item',
'Business Property Item',
'Business Patch Item',
)
, 'allowed_content_types': ('Business Item',)
, 'filter_content_types' : 1
}
......@@ -109,17 +105,6 @@ class BusinessCommit(Folder):
PropertySheet.Version,
)
security.declarePublic('newContent')
def newContent(self, id=None, **kw):
"""
Override newContent so as to use 'id' generated like hash.
Also, copy the objects in the Business Commit after creating new object
"""
if id is None:
id = uuid.uuid1()
return super(BusinessCommit, self).newContent(id, **kw)
def createEquivalentSnapshot(self):
"""
This function uses the current commit to create a new snapshot
......
......@@ -2,7 +2,7 @@
##############################################################################
#
# Copyright (c) 2017 Nexedi SARL and Contributors. All Rights Reserved.
# Ayush-Tiwari <ayush.tiwari@nexedi.com>
# Ayush Tiwari <ayush.tiwari@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
......@@ -78,9 +78,9 @@ class BusinessSnapshot(Folder):
meta_type = 'ERP5 Business Snashot'
portal_type = 'Business Snapshot'
add_permission = Permissions.AddPortalContent
allowed_types = ('Business Item',
'Business Property Item',
'Business Patch item',)
allowed_types = ('Business Item',)
id_generator = '_generateUniversalUniqueId'
# Declarative security
security = ClassSecurityInfo()
......@@ -98,14 +98,10 @@ class BusinessSnapshot(Folder):
, 'type_class' : 'BusinessSnapshot'
, 'immediate_view' : 'BusinessSnapshot_view'
, 'allow_discussion' : 1
, 'allowed_content_types': ( 'Business Item',
'Business Property Item',
'Business Patch Item',
)
, 'allowed_content_types': ('Business Item',)
, 'filter_content_types' : 1
}
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......@@ -165,79 +161,79 @@ class BusinessSnapshot(Folder):
return None
def build(self, **kwargs):
"""
Using equivalent commit, create a snapshot of ZODB state
"""
new_item_list = []
new_item_path_list = []
# Get the equivalent commit for the snapshot
eqv_commit = self.getSimilarValue()
# Get last created snapshot
last_snapshot = self.getLastSnapshot()
# Commit list of all commits between the last snapshot/first commit and the
# current snapshot
successor_commit_list = []
# If there is last snapshot, then combine all the commit afterwards to create
# new snapshot
if last_snapshot:
for item in last_snapshot.objectValues():
if item.getFollowUpValue().getAvailabilityState() == 'installable':
new_item_list.append(item)
new_item_path_list.extend(item.getProperty('item_path'))
# Get next predecessor commit for this snapshot using the equivalent commit
# Notice that we don't use the snapshot to get the next commit as the
# snapshot is mere a state which uses `predecessor` just for mentioning the
# equivalent commit.
# Here the first next commit should be the commit created after last snapshot
# which we can get using the equivalent commit of last snapshot and then
# finding the next commit for it
next_commit = last_snapshot.getSimilarValue().getPredecessorRelatedValue()
# If there is no last snapshot, create a new one by combining all the commits
else:
# Get the oldest commit and start from there to find the next commit
oldest_commit = min(
self.aq_parent.objectValues(portal_type='Business Commit'),
key=(lambda x: x.getCreationDate()))
for item in oldest_commit.objectValues():
if item.getFollowUpValue().getAvailabilityState() == 'installable':
new_item_list.append(item)
new_item_path_list.extend(item.getProperty('item_path'))
next_commit = oldest_commit.getPredecessorRelatedValue()
# Fill sucessor commit list
while (next_commit.getId() != eqv_commit.getId()):
successor_commit_list.append(next_commit)
next_commit = next_commit.getPredecessorRelatedValue()
# Append the equivalent commit to successor commits
successor_commit_list.append(eqv_commit)
for commit in successor_commit_list:
for item in commit.objectValues():
# Check if the item has a follow_up only with installable Business Template
if item.getFollowUpValue().getAvailabilityState() == 'installable':
item_path = item.getProperty('item_path')
if item_path in new_item_path_list:
# Replace the old item with same path with new item
new_item_list = [l if l.getProperty('item_path') != item_path else item for l in new_item_list]
else:
# Add the item to list if there is no existing item at that path
new_item_list.append(item)
new_item_path_list.append(item_path)
# Create hardlinks for the objects
for item in new_item_list:
self._setObject(item.id, item, suppress_events=True)
#def build(self, **kwargs):
# """
# Using equivalent commit, create a snapshot of ZODB state
# """
# new_item_list = []
# new_item_path_list = []
# # Get the equivalent commit for the snapshot
# eqv_commit = self.getSimilarValue()
# # Get last created snapshot
# last_snapshot = self.getLastSnapshot()
# # Commit list of all commits between the last snapshot/first commit and the
# # current snapshot
# successor_commit_list = []
# # If there is last snapshot, then combine all the commit afterwards to create
# # new snapshot
# if last_snapshot:
# for item in last_snapshot.objectValues():
# if item.getFollowUpValue().getAvailabilityState() == 'installable':
# new_item_list.append(item)
# new_item_path_list.extend(item.getProperty('item_path'))
# # Get next predecessor commit for this snapshot using the equivalent commit
# # Notice that we don't use the snapshot to get the next commit as the
# # snapshot is mere a state which uses `predecessor` just for mentioning the
# # equivalent commit.
# # Here the first next commit should be the commit created after last snapshot
# # which we can get using the equivalent commit of last snapshot and then
# # finding the next commit for it
# next_commit = last_snapshot.getSimilarValue().getPredecessorRelatedValue()
# # If there is no last snapshot, create a new one by combining all the commits
# else:
# # Get the oldest commit and start from there to find the next commit
# oldest_commit = min(
# self.aq_parent.objectValues(portal_type='Business Commit'),
# key=(lambda x: x.getCreationDate()))
# for item in oldest_commit.objectValues():
# if item.getFollowUpValue().getAvailabilityState() == 'installable':
# new_item_list.append(item)
# new_item_path_list.extend(item.getProperty('item_path'))
# next_commit = oldest_commit.getPredecessorRelatedValue()
# # Fill sucessor commit list
# while (next_commit.getId() != eqv_commit.getId()):
# successor_commit_list.append(next_commit)
# next_commit = next_commit.getPredecessorRelatedValue()
# # Append the equivalent commit to successor commits
# successor_commit_list.append(eqv_commit)
# for commit in successor_commit_list:
# for item in commit.objectValues():
# # Check if the item has a follow_up only with installable Business Template
# if item.getFollowUpValue().getAvailabilityState() == 'installable':
# item_path = item.getProperty('item_path')
# if item_path in new_item_path_list:
# # Replace the old item with same path with new item
# new_item_list = [l if l.getProperty('item_path') != item_path else item for l in new_item_list]
# else:
# # Add the item to list if there is no existing item at that path
# new_item_list.append(item)
# new_item_path_list.append(item_path)
# # Create hardlinks for the objects
# for item in new_item_list:
# self._setObject(item.id, item, suppress_events=True)
def preinstall(self):
"""
......
......@@ -2,7 +2,7 @@
##############################################################################
#
# Copyright (c) 2017 Nexedi SARL and Contributors. All Rights Reserved.
# Ayush-Tiwari <ayush.tiwari@nexedi.com>
# Ayush Tiwari <ayush.tiwari@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
......@@ -143,9 +143,9 @@ def _recursiveRemoveUid(obj):
# New BusinessItem addition function
def manage_addBusinessItem(self, item_path='', item_sign=1, item_layer=0, *args, **kw):
def manage_addBusinessItem(self, item_path='', *args, **kw):
# Create BusinessItem object container
c = BusinessItem(item_path, item_sign, item_layer)
c = BusinessItem(item_path)
return c
......@@ -721,21 +721,7 @@ class BusinessItem(XMLObject):
icon = None
isProperty = False
def _edit(self, item_path='', item_sign=1, item_layer=0, *args, **kw):
"""
Overriden function so that we can update attributes for BusinessItem objects
"""
edited = super(BusinessItem, self)._edit(item_path=item_path,
item_sign=item_sign,
item_layer=item_layer,
**kw)
# Build the object here, if the item_path has been added/updated
# XXX: We also need to add attribute to ensure that this doesn't happen
# while in tests or while creating them on the fly
if 'item_path' in self._v_modified_property_dict:
self.build(self.aq_parent)
id_generator = '_generateUniversalUniqueId'
def getZODBDiff(self):
"""
......@@ -802,57 +788,57 @@ class BusinessItem(XMLObject):
# Complain loudly if the follow_up is not there
raise ValueError('Follow Up Business Template V2 is not set or defined yet')
def build(self, context, **kw):
"""
Extract value for the given path from the OFS
Three different situations to extract value:
1. For paths which point directly to an object in OFS
2. For paths which point to multiple objects inside a folder
3. For paths which point to property of an object in OFS : In this case,
we can have URL delimiters like ?, #, = in the path
"""
LOG('Business Template V2', INFO, 'Building Business Item')
# Remove the old sub-objects if exisiting before building
id_list = [l for l in self.objectIds()]
if id_list:
self.manage_delObjects(ids=id_list)
p = context.getPortalObject()
path = self.getProperty('item_path')
obj = p.unrestrictedTraverse(path)
obj = obj._getCopy(context)
# We should remove the extra properties of object so that there
# shouldn't be redundancy of the proeprties
removable_property_list = kw.get('removable_property_list', [])
# We should also add extra parameter to remove sub-objects by removing
# `_tree` for any erp5 object. This way we can have control over adding
# sub-objects as new Business Item objects
remove_sub_objects = kw.get('remove_sub_objects', False)
if remove_sub_objects:
removable_property_list.append('_tree')
keep_workflow_history = False
# For portal_components object, we need validation_history
if self.getProperty('item_path').startswith('portal_components'):
keep_workflow_history = True
obj = self.removeProperties(obj,
1,
properties=removable_property_list,
keep_workflow_history=keep_workflow_history,
)
obj = obj.__of__(context)
# XXX: '_recursiveRemoveUid' is not working as expected
_recursiveRemoveUid(obj)
obj = aq_base(obj)
obj.isIndexable = ConstantGetter('isIndexable', value=False)
# In general, one Business Item only has one object in it, so we never end
# up in conflict as we'll always be having its unique path(due to GUID of
# Business Item), thus we can just use object Id as it is while making it
# a sub-object of Business Item
self._setObject(obj.id, obj, suppress_events=True)
#def build(self, context, **kw):
# """
# Extract value for the given path from the OFS
# Three different situations to extract value:
# 1. For paths which point directly to an object in OFS
# 2. For paths which point to multiple objects inside a folder
# 3. For paths which point to property of an object in OFS : In this case,
# we can have URL delimiters like ?, #, = in the path
# """
# LOG('Business Template V2', INFO, 'Building Business Item')
# # Remove the old sub-objects if exisiting before building
# id_list = [l for l in self.objectIds()]
# if id_list:
# self.manage_delObjects(ids=id_list)
# p = context.getPortalObject()
# path = self.getProperty('item_path')
# obj = p.unrestrictedTraverse(path)
# obj = obj._getCopy(context)
# # We should remove the extra properties of object so that there
# # shouldn't be redundancy of the proeprties
# removable_property_list = kw.get('removable_property_list', [])
# # We should also add extra parameter to remove sub-objects by removing
# # `_tree` for any erp5 object. This way we can have control over adding
# # sub-objects as new Business Item objects
# remove_sub_objects = kw.get('remove_sub_objects', False)
# if remove_sub_objects:
# removable_property_list.append('_tree')
# keep_workflow_history = False
# # For portal_components object, we need validation_history
# if self.getProperty('item_path').startswith('portal_components'):
# keep_workflow_history = True
# obj = self.removeProperties(obj,
# 1,
# properties=removable_property_list,
# keep_workflow_history=keep_workflow_history,
# )
# obj = obj.__of__(context)
# # XXX: '_recursiveRemoveUid' is not working as expected
# _recursiveRemoveUid(obj)
# obj = aq_base(obj)
# obj.isIndexable = ConstantGetter('isIndexable', value=False)
# # In general, one Business Item only has one object in it, so we never end
# # up in conflict as we'll always be having its unique path(due to GUID of
# # Business Item), thus we can just use object Id as it is while making it
# # a sub-object of Business Item
# self._setObject(obj.id, obj, suppress_events=True)
def _resolvePath(self, folder, relative_url_list, id_list):
"""
......@@ -1116,14 +1102,8 @@ class BusinessItem(XMLObject):
def getBusinessPath(self):
return self.getProperty('item_path')
def getBusinessPathSign(self):
return self.getProperty('item_sign', 1)
def getBusinessPathLayer(self):
return self.getProperty('item_layer', 1)
def getParentBusinessTemplateV2(self):
return self.aq_parent
#def getParentBusinessTemplateV2(self):
# return self.aq_parent
class BusinessPropertyItem(XMLObject):
......
......@@ -3,6 +3,7 @@
#
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com>
# Hugo Ricateau <hugo.ricateau@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
......@@ -37,7 +38,6 @@ import sys
import hashlib
import pprint
import transaction
import uuid
from Acquisition import Implicit, Explicit
from AccessControl import ClassSecurityInfo
......@@ -133,7 +133,7 @@ class CommitTool (BaseTool):
- portal_commits/387897938794876-9 (Snapshort of erp5_trade)
- portal_commits/387897938794876-10 (Snapshot of erp5_base)
Draft -> Commited -> Pushed (to repo) |Commit]
Draft -> Committed -> Pushed (to repo) |Commit]
Draft -> Installed <-> Uninstalled |Snapshot]
Developer mode: make commits and push them (nothing else)
......@@ -154,6 +154,7 @@ class CommitTool (BaseTool):
We should try first with Commit and Snapshot
"""
id = 'portal_commits'
title = 'Commit Tool'
meta_type = 'ERP5 Commit Tool'
......@@ -163,6 +164,8 @@ class CommitTool (BaseTool):
'Business Snapshot',
)
id_generator = '_generateUniversalUniqueId'
# This stores information on repositories.
repository_dict = {}
......@@ -204,39 +207,23 @@ class CommitTool (BaseTool):
security.declarePublic('newContent')
def newContent(self, id=None, portal_type=None, **kw):
"""
Override newContent so as to use 'id' generated like hash
Also, create new commit only when all old commits are committed
Overrides newContent in order to automatically hint the predecessor.
"""
old_commit_list = self.objectValues(portal_type='Business Commit')
# Check if all the commits created before are commited or not
all_commited = all([l.getTranslatedValidationState() == 'commited'
for l in old_commit_list])
if not all_commited and (portal_type == 'Business Commit'):
raise ValueError('Please commit your last commit before creating new one')
if id is None:
id = uuid.uuid1()
new_obj = super(CommitTool, self).newContent(id, portal_type,**kw)
# Add the last commit as its predecessor
commit_list = [l for l
in self.objectValues(portal_type='Business Commit')
if l != new_obj]
new_object = super(CommitTool, self).newContent(id, portal_type, **kw)
if commit_list:
latest_commit = max(commit_list, key=(lambda x: x.getCreationDate()))
# Adds the last committed or pushed commit as its predecessor if there is one
committed_or_pushed_commit_list = [c for c
in self.searchFolder(portal_type='Business Commit')
if c != new_object and
c.getValidationState() != 'draft' and
c.getValidationState() != 'deleted']
if new_obj.getPortalType() == 'Business Commit':
# TODO: Add check for no latest_commit. Usable especially for 1st BC
new_obj.setPredecessorValue(latest_commit)
else:
# If the new_obj is Business Snapshot, create a similar value for the
# latest commit
new_obj.setSimilarValue(latest_commit)
latest_commit.setSimilarValue(new_obj)
if committed_or_pushed_commit_list:
latest_committed_or_pushed_commit = max(committed_or_pushed_commit_list,
key=(lambda c:c.getModificationDate()))
new_object.setPredecessorValue(latest_committed_or_pushed_commit)
return new_obj
return new_object
InitializeClass(CommitTool)
......@@ -42,13 +42,13 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rebuild_subobjects</string> </value>
<value> <string>build_items</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
<string>Manage portal</string>
</tuple>
</value>
</item>
......@@ -58,11 +58,11 @@
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>3.0</float> </value>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Rebuild sub-objects</string> </value>
<value> <string>Build all items</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
......@@ -79,7 +79,7 @@
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/BusinessCommit_rebuild</string> </value>
<value> <string>string:${object_url}/BusinessCommit_buildItems</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -40,7 +40,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>content_view</string> </value>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
......
......@@ -40,7 +40,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>content_view</string> </value>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
......
<?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>content_view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/BusinessPatchItem_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>diff_view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Diff</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}/BusinessPatchItem_viewDiff</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>content_view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/BusinessPropertyItem_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -40,7 +40,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>content_view</string> </value>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
......
......@@ -46,7 +46,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Manage Commits</string> </value>
<value> <string>Manage Commits and Snapshots</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
......
<allowed_content_type_list>
<portal_type id="Business Commit">
<item>Business Item</item>
<item>Business Patch Item</item>
<item>Business Property Item</item>
</portal_type>
<portal_type id="Business Patch Item">
<item>Business Item</item>
<item>Business Property Item</item>
</portal_type>
<portal_type id="Business Snapshot">
<item>Business Item</item>
<item>Business Patch Item</item>
<item>Business Property Item</item>
</portal_type>
<portal_type id="Commit Tool">
<item>Business Commit</item>
......
<base_category_list>
<portal_type id="Business Commit">
<item>predecessor</item>
<item>similar</item>
<item>source_project</item>
</portal_type>
<portal_type id="Business Item">
<item>follow_up</item>
</portal_type>
<portal_type id="Business Patch Item">
<item>follow_up</item>
</portal_type>
<portal_type id="Business Property Item">
<item>follow_up</item>
<item>predecessor</item>
</portal_type>
<portal_type id="Business Snapshot">
<item>similar</item>
<item>predecessor</item>
</portal_type>
</base_category_list>
\ No newline at end of file
<hidden_content_type_list>
<portal_type id="Business Snapshot">
<item>Business Item</item>
</portal_type>
</hidden_content_type_list>
\ No newline at end of file
<property_sheet_list>
<portal_type id="Business Commit">
<item>BusinessCommit</item>
</portal_type>
<portal_type id="Business Item">
<item>BusinessItem</item>
<item>BusinessItemConstraint</item>
</portal_type>
<portal_type id="Business Property Item">
<item>BusinessItemConstraint</item>
<portal_type id="Business Snapshot">
<item>BusinessCommit</item>
</portal_type>
<portal_type id="Commit Tool">
<item>CommitTool</item>
......
......@@ -36,6 +36,17 @@
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>searchable_text_property_id</string> </key>
<value>
<tuple>
<string>title</string>
<string>description</string>
<string>reference</string>
<string>short_title</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>BusinessCommit</string> </value>
......
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>0</int> </value>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
......@@ -42,6 +42,17 @@
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>searchable_text_property_id</string> </key>
<value>
<tuple>
<string>title</string>
<string>description</string>
<string>reference</string>
<string>short_title</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>BusinessItem</string> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Business Patch Item</string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>BusinessPatchItem</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Business Property Item</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>BusinessPropertyItem</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
......@@ -36,6 +36,17 @@
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>searchable_text_property_id</string> </key>
<value>
<tuple>
<string>title</string>
<string>description</string>
<string>reference</string>
<string>short_title</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>BusinessSnapshot</string> </value>
......
......@@ -36,6 +36,17 @@
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>searchable_text_property_id</string> </key>
<value>
<tuple>
<string>title</string>
<string>description</string>
<string>reference</string>
<string>short_title</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>CommitTool</string> </value>
......
......@@ -5,11 +5,7 @@
</chain>
<chain>
<type>Business Item</type>
<workflow>business_item_interaction_workflow</workflow>
</chain>
<chain>
<type>Business Property Item</type>
<workflow>business_property_item_interaction_workflow</workflow>
<workflow>business_item_interaction_workflow, business_item_validation_workflow</workflow>
</chain>
<chain>
<type>Business Snapshot</type>
......
object_truncated_description_length = 72 # as in Fortran70 (it must be greeter than 3)
object_description = context.getDescription('')
word_list = object_description.split()
object_flat_description = ' '.join(word_list)
if len(object_flat_description) <= object_truncated_description_length:
return object_flat_description
# object_truncated_description = object_flat_description[:object_truncated_description_length - 3] + '...'
object_truncated_description = ''
for word in word_list:
if len(object_truncated_description) + len(word) + 4 <= object_truncated_description_length:
object_truncated_description += word + ' '
else:
last_word = word
break
truncated_last_word = last_word[:object_truncated_description_length - len(object_truncated_description) - 3]
if truncated_last_word != last_word:
object_truncated_description += truncated_last_word
object_truncated_description += '...'
return object_truncated_description
<?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>Base_getTruncatedDescription</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
site = context.getPortalObject()
commit_item_list = context.objectValues()
for item in commit_item_list:
if site.portal_workflow.isTransitionPossible(item, 'build'):
site.portal_workflow.doActionFor(item, 'build_action')
......@@ -54,7 +54,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessCommit_rebuild</string> </value>
<value> <string>BusinessCommit_buildItems</string> </value>
</item>
</dictionary>
</pickle>
......
item_list = context.objectValues()
# Re-build the sub-objects
for item in item_list:
item.build(context)
......@@ -70,10 +70,7 @@
<key> <string>hidden</string> </key>
<value>
<list>
<string>listbox_item_layer</string>
<string>listbox_item_path</string>
<string>listbox_item_sign</string>
<string>listbox_follow_up_title</string>
<string>listbox_follow_up_title_list</string>
</list>
</value>
</item>
......@@ -81,11 +78,10 @@
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_id</string>
<string>my_predecessor_title</string>
<string>my_source_project_title</string>
<string>your_business_template_title_list</string>
<string>my_predecessor_id</string>
<string>my_authors</string>
<string>my_subject</string>
</list>
</value>
</item>
......@@ -93,6 +89,7 @@
<key> <string>right</string> </key>
<value>
<list>
<string>my_portal_type</string>
<string>my_creation_date</string>
<string>my_modification_date</string>
<string>my_translated_validation_state_title</string>
......
......@@ -11,9 +11,9 @@
<value>
<list>
<string>columns</string>
<string>editable_columns</string>
<string>lines</string>
<string>list_method</string>
<string>search</string>
<string>selection_name</string>
<string>sort</string>
<string>title</string>
......@@ -74,43 +74,28 @@
<value>
<list>
<tuple>
<string>item_path</string>
<string>Path</string>
</tuple>
<tuple>
<string>item_sign</string>
<string>Sign</string>
<string>id</string>
<string>UUID</string>
</tuple>
<tuple>
<string>item_layer</string>
<string>Layer</string>
<string>predecessor_id</string>
<string>Reference Item</string>
</tuple>
<tuple>
<string>portal_type</string>
<string>Portal Type</string>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>follow_up</string>
<string>Business Manager</string>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>editable_columns</string> </key>
<value>
<list>
<tuple>
<string>item_path</string>
<string>Path</string>
</tuple>
<tuple>
<string>item_sign</string>
<string>Sign</string>
</tuple>
<tuple>
<string>item_layer</string>
<string>Layer</string>
<string>follow_up_title_list</string>
<string>Business Templates</string>
</tuple>
</list>
</value>
......@@ -133,6 +118,10 @@
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>search</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>business_manager_view_selection</string> </value>
......@@ -142,15 +131,15 @@
<value>
<list>
<tuple>
<string>item_path</string>
<string>Path</string>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Commit Items</string> </value>
<value> <string>Items</string> </value>
</item>
</dictionary>
</value>
......@@ -166,7 +155,7 @@
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>objectValues</string> </value>
<value> <string>searchFolder</string> </value>
</item>
</dictionary>
</pickle>
......
<?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>listbox_follow_up_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>
</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>my_relation_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>Business Template</string> </value>
</item>
</dictionary>
</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>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_item_layer</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>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>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>1</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_integer_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Value</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.getBusinessPathLayer()</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>height</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_item_path</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>title</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_text_area_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Path</string> </value>
</item>
</dictionary>
</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>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_item_sign</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>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>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> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Sign</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: cell.getBusinessPathSign()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,7 +9,9 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
<list>
<string>editable</string>
</list>
</value>
</item>
<item>
......@@ -46,6 +48,12 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -61,6 +69,10 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_description</string> </value>
......@@ -75,4 +87,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.getValidationState() == "draft"</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -241,7 +241,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ID</string> </value>
<value> <string>UUID</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
......
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>my_title</string> </value>
<value> <string>my_portal_type</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -77,6 +77,10 @@
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
......@@ -152,6 +156,10 @@
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
......@@ -193,11 +201,11 @@
</item>
<item>
<key> <string>default</string> </key>
<value> <string>Commit 2382687362863 by Ayush</string> </value>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The name of the business template, must not change between revision as this is the property used to retrieve old one when upgrading</string> </value>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
......@@ -205,7 +213,7 @@
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>30</int> </value>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
......@@ -237,11 +245,11 @@
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Title</string> </value>
<value> <string>Type</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
......
......@@ -10,8 +10,13 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>allow_creation</string>
<string>base_category</string>
<string>catalog_index</string>
<string>columns</string>
<string>editable</string>
<string>first_item</string>
<string>parameter_list</string>
<string>portal_type</string>
<string>title</string>
</list>
......@@ -19,7 +24,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_predecessor_title</string> </value>
<value> <string>my_predecessor_id</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -51,10 +56,24 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>base_category</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>catalog_index</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -67,6 +86,10 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>parameter_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string></string> </value>
......@@ -82,9 +105,56 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>allow_creation</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>base_category</string> </key>
<value> <string>predecessor</string> </value>
</item>
<item>
<key> <string>catalog_index</string> </key>
<value> <string>title</string> </value>
<value> <string>id</string> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>id</string>
<string>UUID</string>
</tuple>
<tuple>
<string>predecessor_id</string>
<string>Predecessor</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
<tuple>
<string>description</string>
<string>Description</string>
</tuple>
<tuple>
<string>authors</string>
<string>Contributors</string>
</tuple>
<tuple>
<string>subject</string>
<string>Project</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
......@@ -98,6 +168,17 @@
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>parameter_list</string> </key>
<value>
<list>
<tuple>
<string>validation_state</string>
<string>NOT draft AND NOT deleted</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
......@@ -119,4 +200,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.getValidationState() == "draft"</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>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_source_project_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>
</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>my_string_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>Source Project</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -53,9 +53,7 @@
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -74,8 +72,11 @@
<key> <string>left</string> </key>
<value>
<list>
<string>my_id</string>
<string>my_item_path</string>
<string>my_item_sign</string>
<string>my_follow_up_title_list</string>
<string>my_predecessor_id</string>
<string>my_item_patch_behaviour</string>
</list>
</value>
</item>
......@@ -83,8 +84,10 @@
<key> <string>right</string> </key>
<value>
<list>
<string>my_item_layer</string>
<string>my_follow_up_title</string>
<string>my_portal_type</string>
<string>my_creation_date</string>
<string>my_modification_date</string>
<string>my_translated_validation_state_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>columns</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</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>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>id</string>
<string>ID</string>
</tuple>
<tuple>
<string>translated_portal_type</string>
<string>Type</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Items</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,13 +10,14 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_item_sign</string> </value>
<value> <string>my_creation_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -56,10 +57,6 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
......@@ -67,9 +64,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_checkbox</string> </value>
<value> <string>my_date_time_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......@@ -77,7 +78,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Sign</string> </value>
<value> <string>Creation Date</string> </value>
</item>
</dictionary>
</value>
......
......@@ -10,9 +10,8 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>catalog_index</string>
<string>description</string>
<string>first_item</string>
<string>columns</string>
<string>editable</string>
<string>portal_type</string>
<string>required</string>
<string>title</string>
......@@ -21,7 +20,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_follow_up_title</string> </value>
<value> <string>my_follow_up_title_list</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -46,6 +45,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>
......@@ -54,17 +57,15 @@
<value>
<dictionary>
<item>
<key> <string>catalog_index</string> </key>
<value> <string></string> </value>
<key> <string>editable</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>first_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
......@@ -77,6 +78,10 @@
<key> <string>required</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>
......@@ -89,24 +94,31 @@
<value>
<dictionary>
<item>
<key> <string>catalog_index</string> </key>
<value> <string>title</string> </value>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>description</string>
<string>Description</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Business Manager related to the Business Item</string> </value>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_relation_field</string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <int>1</int> </value>
<value> <string>my_view_mode_follow_up_title_list</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<value> <string>Base_viewDMSFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
......@@ -114,7 +126,7 @@
<list>
<tuple>
<string>Business Template V2</string>
<string>Business Template V2</string>
<string>Business Template</string>
</tuple>
</list>
</value>
......@@ -123,9 +135,13 @@
<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>Business Template V2</string> </value>
<value> <string>Business Templates</string> </value>
</item>
</dictionary>
</value>
......@@ -133,4 +149,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.getValidationState() == "draft" or here.getValidationState() == "built"</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>my_title</string> </value>
<value> <string>my_id</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -197,7 +197,7 @@
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The name of the business template, must not change between revision as this is the property used to retrieve old one when upgrading</string> </value>
<value> <string>Identification</string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
......@@ -209,7 +209,7 @@
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
......@@ -241,7 +241,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Title</string> </value>
<value> <string>UUID</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
......
<?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_item_layer</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>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>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_integer_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Layer</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.getBusinessPathLayer()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -11,14 +11,17 @@
<value>
<list>
<string>default</string>
<string>gadget_url</string>
<string>editable</string>
<string>enabled</string>
<string>items</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>business_patch_item_view_diff_gadget</string> </value>
<value> <string>my_item_patch_behaviour</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -43,6 +46,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>
......@@ -52,10 +59,20 @@
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>enabled</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -65,11 +82,21 @@
<value> <string></string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
......@@ -85,21 +112,39 @@
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_gadget_field</string> </value>
<value> <string>my_view_mode_classification</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
<value> <string>Base_viewDMSFieldLibrary</string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string></string> </value>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</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>Diff</string> </value>
<value> <string>Patch Behaviour</string> </value>
</item>
</dictionary>
</value>
......@@ -115,7 +160,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getDiff()</string> </value>
<value> <string>python: here.getPredecessorId() and (here.getValidationState() == "draft" or here.getValidationState() == "built")</string> </value>
</item>
</dictionary>
</pickle>
......@@ -128,7 +173,33 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: field.restrictedTraverse(\'business_patch_item_view_diff_gadget.html\').absolute_url()</string> </value>
<value> <string>python: here.getPredecessorId()</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: (getattr(here.portal_categories[field.getId().replace(\'my_\', \'\', 1)], preferences.getPreference(\'preferred_category_child_item_list_method_id\', \'getCategoryChildCompactLogicalPathItemList\'))(local_sort_id=(\'int_index\', \'translated_title\'), checked_permission=\'View\'))[1:]</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getPredecessorId()</string> </value>
</item>
</dictionary>
</pickle>
......
<?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_item_sign</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>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>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_checkbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Sign</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.getBusinessPathSign()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,14 +10,14 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>required</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_follow_up_title</string> </value>
<value> <string>my_modification_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -64,21 +64,21 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_relation_field</string> </value>
<value> <string>my_date_time_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>Business Template</string> </value>
<value> <string>Modification Date</string> </value>
</item>
</dictionary>
</value>
......
......@@ -10,16 +10,21 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>allow_creation</string>
<string>base_category</string>
<string>catalog_index</string>
<string>columns</string>
<string>editable</string>
<string>first_item</string>
<string>parameter_list</string>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_business_template_title_list</string> </value>
<value> <string>my_predecessor_id</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......@@ -52,23 +57,43 @@
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<key> <string>base_category</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>catalog_index</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<key> <string>first_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>parameter_list</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
......@@ -81,28 +106,89 @@
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
<key> <string>allow_creation</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>base_category</string> </key>
<value> <string>predecessor</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Business Templates affected by this commit</string> </value>
<key> <string>catalog_index</string> </key>
<value> <string>id</string> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>id</string>
<string>UUID</string>
</tuple>
<tuple>
<string>predecessor_id</string>
<string>Reference Item</string>
</tuple>
<tuple>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
<tuple>
<string>item_path</string>
<string>Path</string>
</tuple>
<tuple>
<string>follow_up_title_list</string>
<string>Business Templates</string>
</tuple>
<tuple>
<string>parent_id</string>
<string>Related Commit</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_lines_field</string> </value>
<value> <string>my_relation_field</string> </value>
</item>
<item>
<key> <string>first_item</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>parameter_list</string> </key>
<value>
<list>
<tuple>
<string>validation_state</string>
<string>validated</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Business Item</string>
<string>Business Item</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Business Templates</string> </value>
<value> <string>Reference Item</string> </value>
</item>
</dictionary>
</value>
......@@ -118,7 +204,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: list(set([item for sublist in [l.getFollowUpTitleList() for l in here.objectValues()] for item in sublist]))</string> </value>
<value> <string>python: here.getValidationState() == "draft" or here.getValidationState() == "built"</string> </value>
</item>
</dictionary>
</pickle>
......
<?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>Base_edit</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></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>my_item_path</string>
<string>my_item_sign</string>
<string>my_item_layer</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_dependency_list</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessPatchItem_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>BusinessItem_view</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</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>Business Item Definition</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>
<?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>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_dependency_list</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>my_lines_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Dependencies Title</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -53,9 +53,7 @@
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -70,10 +68,7 @@
<key> <string>hidden</string> </key>
<value>
<list>
<string>listbox_item_path</string>
<string>listbox_item_sign</string>
<string>listbox_item_layer</string>
<string>listbox_follow_up_title</string>
<string>listbox</string>
</list>
</value>
</item>
......@@ -81,9 +76,8 @@
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_id</string>
<string>my_similar_title</string>
<string>my_predecessor_id</string>
</list>
</value>
</item>
......@@ -91,6 +85,7 @@
<key> <string>right</string> </key>
<value>
<list>
<string>my_portal_type</string>
<string>my_creation_date</string>
<string>my_modification_date</string>
<string>my_translated_validation_state_title</string>
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment