[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ - added fullname field to preferences form

Yvo Schubbe y.2011 at wcm-solutions.de
Sun Aug 14 05:48:41 EDT 2011


Log message for revision 122587:
  - added fullname field to preferences form
  - moved text from preferences.txt to docstring

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py
  D   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py	2011-08-14 09:38:46 UTC (rev 122586)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.py	2011-08-14 09:48:41 UTC (rev 122587)
@@ -14,14 +14,17 @@
 """
 
 from zope.component import adapts
+from zope.component import getUtility
 from zope.formlib import form
 from zope.interface import implements
 from zope.interface import Interface
 from zope.schema import Bool
 from zope.schema import Choice
+from zope.schema import TextLine
 from zope.schema.vocabulary import SimpleVocabulary
 
 from Products.CMFCore.interfaces import IMember
+from Products.CMFCore.interfaces import IPropertiesTool
 from Products.CMFCore.utils import getToolByName
 from Products.CMFDefault.browser.utils import memoize
 from Products.CMFDefault.formlib.form import SettingsEditFormBase
@@ -36,15 +39,25 @@
 
 class IPreferencesSchema(Interface):
 
+    """Schema for member views.
+    """
+
+    fullname = TextLine(
+        title=_(u'Full Name'),
+        description=_(u'given names and surname'),
+        required=False,
+        missing_value=u'')
+
     email = EmailLine(
-        title=_(u"Email Address"))
+        title=_(u'Email Address'),
+        description=_(u'info at example.org'))
 
     listed = Bool(
-        title=_(u"Listed status"),
+        title=_(u'Listed status'),
         description=_(u"Select to be listed on the public membership roster."))
 
     portal_skin = Choice(
-        title=_(u"Skin"),
+        title=_(u'Skin'),
         vocabulary=u"cmf.AvailableSkins",
         required=False,
         missing_value='')
@@ -70,9 +83,31 @@
         else:
             object.__setattr__(self, name, value)
 
+    def _getFullName(self):
+        ptool = getUtility(IPropertiesTool)
+        encoding = ptool.getProperty('default_charset', None)
+        return self.context.getProperty('fullname').decode(encoding)
 
+    def _setFullName(self, value):
+        ptool = getUtility(IPropertiesTool)
+        encoding = ptool.getProperty('default_charset', None)
+        self.context.setMemberProperties({'fullname': value.encode(encoding)})
+
+    fullname = property(_getFullName, _setFullName)
+
+
 class PreferencesFormView(SettingsEditFormBase):
 
+    """Edit view for IPreferencesSchema.
+
+    Only user can change his own preference.
+    User can change the following preferences:
+    Full name
+    Email address
+    Listed or unlisted
+    User's chosen skin if set
+    """
+
     label = _(u"Member Preferences")
     successMessage = _(u"Member preferences changed.")
 

Deleted: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.txt	2011-08-14 09:38:46 UTC (rev 122586)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/preferences.txt	2011-08-14 09:48:41 UTC (rev 122587)
@@ -1,8 +0,0 @@
-User preferences view
----------------------
-
-Only user can change his own preference
-User can change the following preferences:
-Email address
-Listed or unlisted
-User's chosen skin if set

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt	2011-08-14 09:38:46 UTC (rev 122586)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/preferences.txt	2011-08-14 09:48:41 UTC (rev 122587)
@@ -28,6 +28,7 @@
 Use the preferences form with valid input. Keep skin unselected.
 
     >>> browser.open("http://localhost/site/@@preferences.html")
+    >>> browser.getControl(name='form.fullname').value = 'MY NAME'
     >>> browser.getControl(name='form.email').value = 'ME at EXAMPLE.ORG'
     >>> browser.getControl('[[cmf_default][Change]]').click()
     >>> '[[cmf_default][Member preferences changed.]]' in browser.contents



More information about the checkins mailing list