[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/ Portal configuration form.
Charlie Clark
charlie at begeistert.org
Sun Sep 26 14:21:40 EDT 2010
Log message for revision 116956:
Portal configuration form.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/TODO.txt
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/__init__.py
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.pt
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.py
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/configure.zcml
A Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-09-26 14:45:08 UTC (rev 116955)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-09-26 18:21:40 UTC (rev 116956)
@@ -9,5 +9,7 @@
<include package=".content" />
<include package=".membership" />
+
+ <include package=".portal" />
</configure>
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/TODO.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/TODO.txt (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/TODO.txt 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1,8 @@
+Portal views
+------------
+
+Portal configuration
+====================
+
+reconfig_form.py ->
+reconfig_template.pt
\ No newline at end of file
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/__init__.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/__init__.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/__init__.py 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1 @@
+"""Views for the portal itself"""
\ No newline at end of file
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/__init__.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.pt (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.pt 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1,33 @@
+<html metal:use-macro="context/@@standard_macros/page">
+
+<body>
+
+<metal:slot metal:fill-slot="body" i18n:domain="cmf_default">
+
+<p class="errors" tal:condition="view/errors"
+ tal:repeat="error view/errors"
+ tal:content="error">Error Message</p>
+
+<h1 i18n:translate="">Portal Configuration</h1>
+
+<form action="." method="post"
+ tal:attributes="action request/ACTUAL_URL">
+
+ <fieldset tal:repeat="widget view/widgets">
+ <label tal:attributes="for widget/name" tal:content="widget/label"></label>
+ <tal:block replace="structure widget" />
+ <legend tal:content="widget/hint"></legend>
+ </fieldset>
+
+
+ <div class="buttons">
+ <tal:loop tal:repeat="action view/actions"
+ tal:replace="structure action/render" />
+ </div>
+
+</form>
+
+</metal:slot>
+
+</body>
+</html>
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.py 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1,51 @@
+"""Portal Configuration Form"""
+
+from zope.component import adapts, getUtility
+from zope.interface import implements
+from zope.schema import getFieldsInOrder, getFieldNames
+from zope.formlib import form
+
+from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
+
+from Products.CMFCore.interfaces import IPropertiesTool
+from Products.CMFDefault.utils import Message as _
+from Products.CMFDefault.formlib.schema import ProxyFieldProperty
+from Products.CMFDefault.formlib.form import EditFormBase, ContentEditFormBase
+from Products.CMFDefault.formlib.widgets import ChoiceRadioWidget
+
+from interfaces import IPortalConfig
+
+class PortalConfig(EditFormBase):
+
+ form_fields = form.FormFields(IPortalConfig)
+ form_fields['validate_email'].custom_widget = ChoiceRadioWidget
+
+ actions = form.Actions(
+ form.Action(
+ name='change',
+ label=_(u'Change'),
+ success='handle_success',
+ failure='handle_failure'),
+ )
+ template = ViewPageTemplateFile("config.pt")
+
+ def setUpWidgets(self, ignore_request=False):
+ data = {}
+ ptool = self._getTool('portal_properties')
+ charset = ptool.getProperty('default_charset', None)
+ for name in getFieldNames(IPortalConfig):
+ value = ptool.getProperty(name)
+ if hasattr(value, 'decode'):
+ value = value.decode(charset)
+ data[name] = value
+ data['smtp_server'] = ptool.smtp_server()
+ self.widgets = form.setUpDataWidgets(
+ self.form_fields, self.prefix,
+ self.context, self.request, data=data,
+ ignore_request=ignore_request)
+
+ def handle_success(self, action, data):
+ ptool = self._getTool('portal_properties')
+ ptool.editProperties(data)
+ self.status = _(u"Portal settings changed")
+ self._setRedirect('portal_actions', 'global/configPortal')
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/config.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/configure.zcml (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/configure.zcml 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1,13 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser">
+
+ <browser:page
+ for="Products.CMFCore.interfaces.ISiteRoot"
+ layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
+ name="configure.html"
+ class=".config.PortalConfig"
+ permission="cmf.ManagePortal"
+ />
+
+</configure>
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py 2010-09-26 18:21:40 UTC (rev 116956)
@@ -0,0 +1,64 @@
+"""Schema for portal forms"""
+
+from zope.interface import Interface
+from zope.schema import TextLine, ASCIILine, Bool, Choice
+from zope.schema.vocabulary import SimpleVocabulary
+
+from Products.CMFDefault.utils import Message as _
+
+email_policy = SimpleVocabulary.fromItems(
+ [
+ (_(u"Generate and email members' initial password"), True),
+ (_(u"Allow members to select their initial password"), False)
+ ]
+ )
+
+class IPortalConfig(Interface):
+
+ email_from_name = TextLine(
+ title=_(u"Portal 'From' name"),
+ description=_(u"When the portal generates mail, it uses this name as its (apparent) sender."),
+ required=False)
+
+ email_from_address = TextLine(
+ title=_(u"Portal 'From' address"),
+ description=_(u"When the portal generates mail, it uses this address as its (apparent) return address."),
+ required=False)
+
+ smtp_server = TextLine(
+ title=_(u"SMTP server"),
+ description=_(u"This is the address of your local SMTP (out-going mail) server."),
+ required=False)
+
+ title = TextLine(
+ title=_(u"Portal title"),
+ description=_(u"This is the title which appears at the top of every portal page."),
+ required=False)
+
+ description = TextLine(
+ title=_(u"Portal description"),
+ description=_(u"This description is made available via syndicated content and elsewhere. It should be fairly brief"),
+ required=False)
+
+ validate_email = Choice(
+ title=_(u"Password policy"),
+ vocabulary=email_policy,
+ default=False,
+ )
+
+ default_charset = ASCIILine(
+ title=_(u"Portal default encoding"),
+ description=_(u"Charset used to decode portal content strings. If empty, 'ascii' is used."),
+ required=False,
+ default="UTF-8")
+
+ email_charset = ASCIILine(
+ title=_(u"Portal email encoding"),
+ description=_(u"Charset used to encode emails send by the portal. If empty, 'utf-8' is used if necessary."),
+ required=False,
+ default="UTF-8")
+
+ enable_actionicons = Bool(
+ title=_(u"Action icons"),
+ description=_(u"Actions available to the user are shown as textual links. With this option enabled, they are also shown as icons if the action definition specifies one."),
+ required=False)
\ No newline at end of file
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
More information about the checkins
mailing list