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