[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