src/pyams_form/help.py
changeset 204 c435de184bda
parent 29 9ffccb764e97
--- 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)