def process_pluginpoint(self, pluginpoint, document=None):
        plugins = self.get_plugins_for_point(pluginpoint, document)
        #log.debug('process_pluginpoint: %s with %s plugins.' % (pluginpoint, plugins))
        for plugin in plugins:
            try:
                #log.debug('process_pluginpoint begin processing: %s.' % plugin)
                document = plugin.work(document)
                #log.debug('process_pluginpoint begin processed: %s.' % plugin)
            except PluginError, e:  # if some plugin throws an exception, stop processing and store the error message
                self.plugin_errors.append(e)
                if settings.DEBUG:
                    log.error('process_pluginpoint: %s.' % e)  # e.parameter, e.code
                break
            except PluginWarning, e:
                self.plugin_warnings.append(str(e))
            except BreakPluginChain:
                break
        return document
PluginsOperator() main gear.
dataset/ETHPy150Open adlibre/Adlibre-DMS/adlibre_dms/apps/dms_plugins/operator.py/PluginsOperator.process_pluginpoint