[Checkins] SVN: Products.CMF - changed property modes to 'w' and added 'fullname' property
Yvo Schubbe
y.2011 at wcm-solutions.de
Thu Jul 28 09:16:43 EDT 2011
Log message for revision 122395:
- changed property modes to 'w' and added 'fullname' property
Changed:
U Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
U Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
U Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_memberdata.py
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/memberdata.xml
U Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
U Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt 2011-07-28 13:16:42 UTC (rev 122395)
@@ -4,6 +4,8 @@
2.3.0-alpha (unreleased)
------------------------
+- MemberDataTool: Changed property modes to 'w' and added 'fullname' property.
+
- setup handlers: Improved content type registry handler.
The 'insert-before' and 'insert-after' directives are now supported.
Modified: Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py 2011-07-28 13:16:42 UTC (rev 122395)
@@ -21,6 +21,7 @@
from App.class_init import InitializeClass
from App.special_dtml import DTMLFile
from BTrees.OOBTree import OOBTree
+from DateTime.DateTime import DateTime
from OFS.PropertyManager import PropertyManager
from OFS.SimpleItem import SimpleItem
from Persistence import Persistent
@@ -53,12 +54,19 @@
id = 'portal_memberdata'
meta_type = 'CMF Member Data Tool'
_properties = (
- {'id': 'email', 'type': 'string', 'mode': 'wd'},
- {'id': 'portal_skin', 'type': 'string', 'mode': 'wd'},
- {'id': 'listed', 'type': 'boolean', 'mode': 'wd'},
- {'id': 'login_time', 'type': 'date', 'mode': 'wd'},
- {'id': 'last_login_time', 'type': 'date', 'mode': 'wd'},
+ {'id': 'email', 'type': 'string', 'mode': 'w'},
+ {'id': 'portal_skin', 'type': 'string', 'mode': 'w'},
+ {'id': 'listed', 'type': 'boolean', 'mode': 'w'},
+ {'id': 'login_time', 'type': 'date', 'mode': 'w'},
+ {'id': 'last_login_time', 'type': 'date', 'mode': 'w'},
+ {'id': 'fullname', 'type': 'string', 'mode': 'w'},
)
+ email = ''
+ fullname = ''
+ last_login_time = DateTime('1970/01/01 00:00:00 UTC') # epoch
+ listed = False
+ login_time = DateTime('1970/01/01 00:00:00 UTC') # epoch
+ portal_skin = ''
security = ClassSecurityInfo()
@@ -82,12 +90,6 @@
def __init__(self):
self._members = OOBTree()
- # Create the default properties.
- self._updateProperty('email', '')
- self._updateProperty('portal_skin', '')
- self._updateProperty('listed', '')
- self._updateProperty('login_time', '1970/01/01 00:00:00 UTC') # epoch
- self._updateProperty('last_login_time', '1970/01/01 00:00:00 UTC') # epoch
#
# 'portal_memberdata' interface methods
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_memberdata.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_memberdata.py 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_memberdata.py 2011-07-28 13:16:42 UTC (rev 122395)
@@ -30,36 +30,37 @@
_MEMBERDATATOOL_BODY = """\
<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="CMF Member Data Tool">
- <property name="email" type="string"></property>
- <property name="portal_skin" type="string"></property>
- <property name="listed" type="boolean">False</property>
- <property name="login_time" type="date">1970/01/01 00:00:00 UTC</property>
- <property name="last_login_time"
- type="date">1970/01/01 00:00:00 UTC</property>
+ <property name="email"></property>
+ <property name="portal_skin"></property>
+ <property name="listed">False</property>
+ <property name="login_time">1970/01/01 00:00:00 UTC</property>
+ <property name="last_login_time">1970/01/01 00:00:00 UTC</property>
+ <property name="fullname"></property>
</object>
"""
_DEFAULT_EXPORT = """\
<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="CMF Member Data Tool">
- <property name="email" type="string"></property>
- <property name="portal_skin" type="string"></property>
- <property name="listed" type="boolean">False</property>
- <property name="login_time" type="date">1970/01/01 00:00:00 UTC</property>
- <property name="last_login_time"
- type="date">1970/01/01 00:00:00 UTC</property>
+ <property name="email"></property>
+ <property name="portal_skin"></property>
+ <property name="listed">False</property>
+ <property name="login_time">1970/01/01 00:00:00 UTC</property>
+ <property name="last_login_time">1970/01/01 00:00:00 UTC</property>
+ <property name="fullname"></property>
</object>
"""
_CHANGED_EXPORT = """\
<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="CMF Member Data Tool">
- <property name="email" type="string">value1</property>
- <property name="portal_skin" type="string">value2</property>
- <property name="listed" type="boolean">True</property>
- <property name="login_time" type="date">2010/01/01 00:00:00</property>
- <property name="last_login_time" type="date">2010/01/01 00:00:00</property>
- <property name="fullname" type="string"></property>
+ <property name="email">value1</property>
+ <property name="portal_skin">value2</property>
+ <property name="listed">True</property>
+ <property name="login_time">2010/01/01 00:00:00</property>
+ <property name="last_login_time">2010/01/01 00:00:00</property>
+ <property name="fullname">value3</property>
+ <property name="home_page" type="string"></property>
</object>
"""
@@ -92,7 +93,8 @@
mdtool._updateProperty('listed', 'True')
mdtool._updateProperty('login_time', '2010/01/01')
mdtool._updateProperty('last_login_time', '2010/01/01')
- mdtool.manage_addProperty('fullname', '', 'string')
+ mdtool._updateProperty('fullname', 'value3')
+ mdtool.manage_addProperty('home_page', '', 'string')
return site
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2011-07-28 13:16:42 UTC (rev 122395)
@@ -4,6 +4,8 @@
2.3.0-alpha (unreleased)
------------------------
+- MemberDataTool: Changed property modes to 'w' and added 'fullname' property.
+
- File and Image: Made sure `id` is always an attribute and not a method.
Some old instances use `__name__` instead of `id`. Use getId() to get always
the correct ID.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/memberdata.xml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/memberdata.xml 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/memberdata.xml 2011-07-28 13:16:42 UTC (rev 122395)
@@ -1,8 +1,9 @@
<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="CMF Member Data Tool">
- <property name="email" type="string"></property>
- <property name="portal_skin" type="string"></property>
- <property name="listed" type="boolean">False</property>
- <property name="login_time" type="date">2000/01/01 00:00:00</property>
- <property name="last_login_time" type="date">2000/01/01 00:00:00</property>
+ <property name="email"></property>
+ <property name="portal_skin"></property>
+ <property name="listed">False</property>
+ <property name="login_time">2000/01/01 00:00:00</property>
+ <property name="last_login_time">2000/01/01 00:00:00</property>
+ <property name="fullname"></property>
</object>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2011-07-28 13:16:42 UTC (rev 122395)
@@ -218,8 +218,8 @@
<genericsetup:upgradeStep
title="Upgrade member data tool"
- description="Fix default 'listed', 'login_time' and 'last_login_time'
- values."
+ description="Fix default property modes and values. Add 'fullname'
+ property if missing."
handler=".to23.upgrade_member_data_tool"
checker=".to23.check_member_data_tool"
/>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2011-07-28 12:27:29 UTC (rev 122394)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2011-07-28 13:16:42 UTC (rev 122395)
@@ -190,6 +190,13 @@
last_login_time = mdtool.getProperty('last_login_time')
if last_login_time == '2000/01/01':
return True
+ if not mdtool.hasProperty('fullname'):
+ return True
+ for prop_map in mdtool._propertyMap():
+ if prop_map['id'] in ('email', 'fullname', 'last_login_time',
+ 'listed', 'login_time', 'portal_skin'):
+ if 'd' in prop_map.get('mode', 'wd'):
+ return True
return False
def upgrade_member_data_tool(tool):
@@ -209,3 +216,17 @@
if last_login_time == '2000/01/01':
mdtool._updateProperty('last_login_time', '2000/01/01')
logger.info("Member data tool property 'last_login_time' fixed.")
+ if not mdtool.hasProperty('fullname'):
+ prop_map = list(mdtool._properties)
+ prop_map.insert(5, {'id': 'fullname', 'type': 'string', 'mode': 'w'})
+ mdtool._properties = prop_map
+ logger.info("Member data tool property 'fullname' added.")
+ for prop_map in mdtool._propertyMap():
+ changed = False
+ if prop_map['id'] in ('email', 'fullname', 'last_login_time',
+ 'listed', 'login_time', 'portal_skin'):
+ if 'd' in prop_map.get('mode', 'wd'):
+ prop_map['mode'] = 'w'
+ changed = True
+ if changed:
+ logger.info("Member data tool property modes fixed.")
More information about the checkins
mailing list