diff --git a/product/ERP5Form/Report.py b/product/ERP5Form/Report.py index ac2e496bc9c6067f402c9b6df9b6bd71b829ce28..e698c47a18491ee46d926c592749a947570e43bc 100644 --- a/product/ERP5Form/Report.py +++ b/product/ERP5Form/Report.py @@ -117,22 +117,26 @@ class ERP5Report(ERP5Form): # Proxy method to PageTemplate def __call__(self, *args, **kwargs): + if not self.report_method: + raise KeyError, 'report method is not set on the report' + if not kwargs.has_key('args'): kwargs['args'] = args form = self - object = getattr(form, 'aq_parent', None) - if object: - container = object.aq_inner.aq_parent + obj = getattr(form, 'aq_parent', None) + if obj is not None: + container = obj.aq_inner.aq_parent else: container = None - pt = getattr(self,self.pt) - report_method = getattr(object,self.report_method) + pt = getattr(self, self.pt) + + report_method = getattr(obj, self.report_method) extra_context = self.pt_getContext() extra_context['options'] = kwargs extra_context['form'] = self extra_context['request'] = get_request() extra_context['container'] = container ## PROBLEM NOT TAKEN INTO ACCOUNT - extra_context['here'] = object + extra_context['here'] = obj extra_context['report_method'] = report_method return pt.pt_render(extra_context=extra_context)