--- a/src/pyams_form/help.py Tue Nov 19 16:30:58 2019 +0100
+++ b/src/pyams_form/help.py Wed Dec 04 11:05:25 2019 +0100
@@ -10,37 +10,43 @@
# FOR A PARTICULAR PURPOSE.
#
-__docformat__ = 'restructuredtext'
-
+"""PyAMS_form.help module
-# import standard library
+This module provides a 'form_help' content provider, which can be used to insert help text
+inside any form using an :py:class:`IFormHelp <pyams_form.interfaces.form.IFormHlep>` adapter.
+"""
-# import interfaces
+from zope.interface import Interface, implementer
+from zope.schema.fieldproperty import FieldProperty
+
from pyams_form.interfaces.form import IFormHelp
from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces.text import IHTMLRenderer
-
-# import packages
from pyams_template.template import template_config
from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config
+from pyams_utils.interfaces.text import IHTMLRenderer
from pyams_utils.text import text_to_html
-from pyams_viewlet.viewlet import contentprovider_config
-from zope.interface import implementer, Interface
-from zope.schema.fieldproperty import FieldProperty
+from pyams_viewlet.viewlet import ViewContentProvider, contentprovider_config
+
+
+__docformat__ = 'restructuredtext'
@contentprovider_config(name='form_help', view=Interface, layer=IPyAMSLayer)
@template_config(template='templates/help.pt', layer=IPyAMSLayer)
-class HelpContentProvider(object):
- """Form help provider"""
+class HelpContentProvider(ViewContentProvider):
+ """Form help content provider"""
help = None
def update(self):
+ """Update content provider state"""
registry = self.request.registry
- help = self.help = registry.queryMultiAdapter((self.context, self.request, self.view), IFormHelp)
+ # pylint: disable=redefined-builtin
+ help = self.help = registry.queryMultiAdapter((self.context, self.request, self.view),
+ IFormHelp)
if help is not None:
- if help.permission and not self.request.has_permission(help.permission, context=self.context):
+ if help.permission and not self.request.has_permission(help.permission,
+ context=self.context):
self.help = None
elif help.mode and (self.view.mode != help.mode):
self.help = None
@@ -48,7 +54,7 @@
@implementer(IFormHelp)
class FormHelp(ContextRequestViewAdapter):
- """Form help"""
+ """Default form help base implementation"""
permission = FieldProperty(IFormHelp['permission'])
mode = FieldProperty(IFormHelp['mode'])
@@ -62,8 +68,9 @@
@adapter_config(context=(IFormHelp, IPyAMSLayer, Interface), provides=IHTMLRenderer)
class HelpRenderer(ContextRequestViewAdapter):
- """Help renderer"""
+ """Default form help renderer"""
- def render(self, **kwargs):
+ def render(self, **kwargs): # pylint: disable=unused-argument
+ """Render help text to HTML"""
message = self.request.localizer.translate(self.context.message)
return text_to_html(message, self.context.message_format)