Commit 009a3412 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

make _getPropertyAndCategoryList() usable from outside.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31194 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 1bbae412
......@@ -103,55 +103,51 @@ class MovementCollectionDiff(object):
self._updatable_movement_list.append(movement)
self._property_dict_dict[movement] = property_dict
def _getPropertyAndCategoryList(self, movement):
"""
Returns a dict that includes all property values, based on property
sheet configuration and all category values.
"""
property_map = movement.getPropertyMap()
bad_property_list = ['id', 'uid', 'categories_list', 'int_index']
# we don't want acquired properties without acquisition_mask_value
for x in property_map:
if x.has_key('acquisition_base_category') and not x.get('acquisition_mask_value', 0):
bad_property_list.append(x['id'])
default_value_dict = dict([(x['id'], x.get('default', None)) \
for x in property_map])
getPropertyList = movement.getPropertyList
getProperty = movement.getProperty
getter_list_type_dict = {
True:getPropertyList,
False:getProperty
}
getter_dict = dict([(x['id'],
getter_list_type_dict[x['type'] in list_types and not x['id'].endswith('_list')]) \
for x in property_map])
def filter_property_func(x):
key, value = x
if key in bad_property_list:
return False
default = default_value_dict[key]
if value == default:
return False
if isinstance(value, (list, tuple)) and \
isinstance(default, (list, tuple)) and \
tuple(value) == tuple(default):
return False
return True
property_dict = dict(filter(filter_property_func,
[(x, getter_dict[x](x)) for x in \
movement.getPropertyIdList()]))
def filter_category_func(x):
return len(x[1]) != 0
property_dict.update(dict(filter(filter_category_func,
[(x, getPropertyList(x)) for x in \
movement.getBaseCategoryList()])))
# update order category if exist
order = getattr(aq_base(movement), 'order', None)
if order is not None:
property_dict['order'] = order
return property_dict
def _getPropertyAndCategoryList(document):
"""
Returns a dict that includes all property values, based on property
sheet configuration and all category values.
"""
property_map = document.getPropertyMap()
bad_property_list = ['id', 'uid', 'categories_list', 'int_index']
# we don't want acquired properties without acquisition_mask_value
for x in property_map:
if x.has_key('acquisition_base_category') and not x.get('acquisition_mask_value', 0):
bad_property_list.append(x['id'])
default_value_dict = dict([(x['id'], x.get('default', None)) \
for x in property_map])
getPropertyList = document.getPropertyList
getProperty = document.getProperty
getter_list_type_dict = {
True:getPropertyList,
False:getProperty
}
getter_dict = dict([(x['id'],
getter_list_type_dict[x['type'] in list_types and not x['id'].endswith('_list')]) \
for x in property_map])
def filter_property_func(x):
key, value = x
if key in bad_property_list:
return False
default = default_value_dict[key]
if value == default:
return False
if isinstance(value, (list, tuple)) and \
isinstance(default, (list, tuple)) and \
tuple(value) == tuple(default):
return False
return True
property_dict = dict(filter(filter_property_func,
[(x, getter_dict[x](x)) for x in \
document.getPropertyIdList()]))
def filter_category_func(x):
return len(x[1]) != 0
property_dict.update(dict(filter(filter_category_func,
[(x, getPropertyList(x)) for x in \
document.getBaseCategoryList()])))
return property_dict
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