50de2b4031
svn path=/plone.app.discussion/trunk/; revision=28939
68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
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"""Some discussion related settings are not located
|
|
in the Discussion Control Panel.
|
|
|
|
To enable moderation for content types, go to the
|
|
Types Control Panel, and enable moderation for a
|
|
specific content type.
|
|
|
|
To enable comment moderation, go to the Types
|
|
Control Panel, choose "Comment", and set the
|
|
workflow to "Comment Review Workflow".
|
|
""")
|
|
|
|
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 ...
|
|
"""
|
|
|
|
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.forInterface(IDiscussionSettings)
|
|
except KeyError:
|
|
return False
|
|
|
|
if not settings.globally_enabled:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
return False
|