[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