plone.app.discussion/plone/app/discussion/vocabularies.py

78 lines
2.1 KiB
Python

from plone.app.discussion.interfaces import _
from zope.schema.vocabulary import SimpleTerm
from zope.schema.vocabulary import SimpleVocabulary
HAS_CAPTCHA = False
try:
import plone.formwidget.captcha # noqa
HAS_CAPTCHA = True # pragma: no cover
except ImportError:
pass
HAS_RECAPTCHA = False
try:
import plone.formwidget.recaptcha # noqa
HAS_RECAPTCHA = True # pragma: no cover
except ImportError:
pass
HAS_AKISMET = False
try:
import collective.akismet # noqa
HAS_AKISMET = True # pragma: no cover
except ImportError:
pass
HAS_NOROBOTS = False
try:
import collective.z3cform.norobots # noqa
HAS_NOROBOTS = True # pragma: no cover
except ImportError:
pass
def captcha_vocabulary(context):
"""Vocabulary with all available captcha implementations."""
terms = []
terms.append(SimpleTerm(value="disabled", token="disabled", title=_("Disabled")))
if HAS_CAPTCHA: # pragma: no cover
terms.append(SimpleTerm(value="captcha", token="captcha", title="Captcha"))
if HAS_RECAPTCHA: # pragma: no cover
terms.append(
SimpleTerm(value="recaptcha", token="recaptcha", title="ReCaptcha")
)
if HAS_AKISMET: # pragma: no cover
terms.append(SimpleTerm(value="akismet", token="akismet", title="Akismet"))
if HAS_NOROBOTS: # pragma: no cover
terms.append(SimpleTerm(value="norobots", token="norobots", title="Norobots"))
return SimpleVocabulary(terms)
def text_transform_vocabulary(context):
"""Vocabulary with all available portal_transform transformations."""
terms = []
terms.append(SimpleTerm(value="text/plain", token="text/plain", title="Plain text"))
terms.append(SimpleTerm(value="text/html", token="text/html", title="HTML"))
terms.append(
SimpleTerm(
value="text/x-web-markdown", token="text/x-web-markdown", title="Markdown"
)
)
terms.append(
SimpleTerm(
value="text/x-web-intelligent",
token="text/x-web-intelligent",
title="Intelligent text",
)
)
return SimpleVocabulary(terms)