Added basic infrastructure for discussion controlpanel.
svn path=/plone.app.discussion/trunk/; revision=27269
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
xmlns:browser="http://namespaces.zope.org/browser"
|
||||
i18n_domain="plone.app.discussion">
|
||||
|
||||
<include package="plone.app.registry" />
|
||||
|
||||
<!-- Traversal adapter -->
|
||||
<adapter factory=".traversal.ConversationNamespace" name="conversation" />
|
||||
|
||||
@@ -66,4 +68,20 @@
|
||||
layer="..interfaces.IDiscussionLayer"
|
||||
/>
|
||||
|
||||
<browser:page
|
||||
name="discussion-settings"
|
||||
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
|
||||
class=".controlpanel.DiscussionSettingsControlPanel"
|
||||
permission="cmf.ManagePortal"
|
||||
/>
|
||||
|
||||
<!-- Utility view - use in portal_css or similar as portal/@@xdv-check/enabled" -->
|
||||
<browser:page
|
||||
name="discussion-check"
|
||||
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
|
||||
class=".controlpanel.Utility"
|
||||
permission="zope.Public"
|
||||
allowed_attributes="globally_enabled"
|
||||
/>
|
||||
|
||||
</configure>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
from Products.Five.browser import BrowserView
|
||||
|
||||
from zope.component import queryUtility
|
||||
from plone.registry.interfaces import IRegistry
|
||||
|
||||
from plone.app.registry.browser import controlpanel
|
||||
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings, _
|
||||
|
||||
try:
|
||||
# only in z3c.form 2.0
|
||||
from z3c.form.browser.textlines import TextLinesFieldWidget
|
||||
from z3c.form.browser.widget import SingleCheckBoxWidget
|
||||
except ImportError:
|
||||
from plone.z3cform.textlines import TextLinesFieldWidget
|
||||
from plone.z3cform.widget import SingleCheckBoxWidget
|
||||
|
||||
class DiscussionSettingsEditForm(controlpanel.RegistryEditForm):
|
||||
|
||||
schema = IDiscussionSettings
|
||||
label = _(u"Discussion settings")
|
||||
description = _(u"Please enter the options specified")
|
||||
|
||||
def updateFields(self):
|
||||
super(DiscussionSettingsEditForm, self).updateFields()
|
||||
#self.fields['globally_enabled'].widgetFactory = SingleCheckBoxWidget
|
||||
|
||||
def updateWidgets(self):
|
||||
super(DiscussionSettingsEditForm, self).updateWidgets()
|
||||
|
||||
class DiscussionSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
|
||||
form = DiscussionSettingsEditForm
|
||||
|
||||
class Utility(BrowserView):
|
||||
"""Utility view to determine if the site is currently styled with xdv
|
||||
"""
|
||||
|
||||
def globally_enabled(self):
|
||||
"""Determine if the utility is enabled and we are in an enabled domain
|
||||
"""
|
||||
|
||||
registry = queryUtility(IRegistry)
|
||||
if registry is None:
|
||||
return False
|
||||
|
||||
settings = None
|
||||
try:
|
||||
settings = registry.for_interface(IDiscussionSettings)
|
||||
except KeyError:
|
||||
return False
|
||||
|
||||
if not settings.globally_enabled:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user