Site Error An error was encountered while publishing this resource. exceptions.AttributeError Sorry, a site error occurred. Traceback (innermost last): * Module ZPublisher.Publish, line 175, in publish_module_standard 173 | request=Request(stdin, environ, response) 174 | 175>| response = publish(request, module_name, after_list, debug=debug) 176 | except SystemExit, v: 177 | must_die=sys.exc_info() * Module Products.iHotfix, line 88, in new_publish 086 | try: 087 | # Publish 088>| x = Publish.zope_publish(zope_request, module_name, after_list, debug) 089 | finally: 090 | # Remove the context object. * Module ZPublisher.Publish, line 101, in publish 099 | missing_name, 100 | dont_publish_class, 101>| request, bind=1) 102 | 103 | if result is not response: * Module ZPublisher.mapply, line 88, in mapply 086 | 087 | args=tuple(args) 088>| if debug is not None: return debug(object,args,context) 089 | else: return object(*args) * Module ZPublisher.Publish, line 39, in call_object 037 | 038 |def call_object(object, args, request): 039>| result=apply(object,args) # Type s to step into published object. 040 | return result 041 | * Module Products.CMFCore.PortalContent, line 109, in __call__ 107 | return method(self, self.REQUEST, self.REQUEST['RESPONSE']) 108 | else: 109>| return method() 110 | 111 | index_html = None # This special value informs ZPublisher to use __call__ * Module Products.ERP5Form.Form, line 419, in __call__ 417 | options=kwargs, 418 | here=obj ) 419>| return pt.pt_render(extra_context=extra_context) 420 | 421 | def _exec(self, bound_names, args, kw): * Module Products.PageTemplates.PageTemplate, line 96, in pt_render 094 | getEngine().getContext(c), 095 | output, 096>| tal=not source, strictinsert=0)() 097 | return output.getvalue() 098 | * Module TAL.TALInterpreter, line 190, in __call__ 188 | assert self.scopeLevel == 0 189 | assert self.i18nContext.parent is None 190>| self.interpret(self.program) 191 | assert self.level == 0 192 | assert self.scopeLevel == 0 * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 671, in do_useMacro 669 | self.pushMacro(macroName, compiledSlots) 670 | prev_source = self.sourceFile 671>| self.interpret(macro) 672 | if self.sourceFile != prev_source: 673 | self.engine.setSourceFile(prev_source) * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 671, in do_useMacro 669 | self.pushMacro(macroName, compiledSlots) 670 | prev_source = self.sourceFile 671>| self.interpret(macro) 672 | if self.sourceFile != prev_source: 673 | self.engine.setSourceFile(prev_source) * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 671, in do_useMacro 669 | self.pushMacro(macroName, compiledSlots) 670 | prev_source = self.sourceFile 671>| self.interpret(macro) 672 | if self.sourceFile != prev_source: 673 | self.engine.setSourceFile(prev_source) * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 702, in do_defineSlot 700 | self.pushMacro(macroName, slots) 701 | # Falling out of the 'if' allows the macro to be interpreted. 702>| self.interpret(block) 703 | bytecode_handlers["defineSlot"] = do_defineSlot 704 | * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 569, in do_insertStructure_tal 567 | 568 | def do_insertStructure_tal(self, (expr, repldict, block)): 569>| structure = self.engine.evaluateStructure(expr) 570 | if structure is None: 571 | return * Module Products.PageTemplates.TALES, line 221, in evaluate 219 | __traceback_supplement__ = ( 220 | TALESTracebackSupplement, self, expression) 221>| return expression(self) 222 | 223 | evaluateValue = evaluate * Module Products.PageTemplates.Expressions, line 174, in __call__ 172 | if self._name == 'exists': 173 | return self._exists(econtext) 174>| return self._eval(econtext) 175 | 176 | def __str__(self): * Module Products.PageTemplates.Expressions, line 169, in _eval 167 | return ob 168 | # Return the rendered object 169>| return render(ob, econtext.vars) 170 | 171 | def __call__(self, econtext): * Module Products.PageTemplates.Expressions, line 66, in render 064 | """ 065 | if hasattr(ob, '__render_with_namespace__'): 066>| ob = call_with_ns(ob.__render_with_namespace__, ns) 067 | else: 068 | base = aq_base(ob) * Module Products.PageTemplates.ZRPythonExpr, line 76, in call_with_ns 074 | return f(None, td) 075 | else: 076>| return f(td) 077 | finally: 078 | td._pop(3) * Module Shared.DC.Scripts.Bindings, line 320, in __render_with_namespace__ 318 | except KeyError: 319 | pass 320>| return self._bindAndExec((), namevals, namespace) 321 | 322 | render = __call__ * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec 341 | exec bindcode 342 | bound_data = bound_data[0] 343>| return self._exec(bound_data, args, kw) 344 | finally: 345 | security.removeContext(self) * Module Products.PythonScripts.PythonScript, line 323, in _exec 321 | f = new.function(fcode, g, None, fadefs) 322 | 323>| result = f(*args, **kw) 324 | if keyset is not None: 325 | # Store the result in the cache. * Module None, line 8, in ERP5Site_renderCachedNavigationBox <PythonScript at /erp5/ERP5Site_renderCachedNavigationBox used for /erp5/portal_templates>Line 8 005 | context.Localizer.get_selected_language() 006 | ),cache_factory='erp5_ui_short') 007>|return navigation_box_render() 008 | * Module Products.ERP5Type.Cache, line 202, in __call__ 200 | "Factory %s not found, method %s executed without cache" % ( 201 | self.cache_factory, self.callable_object)) 202>| value = self.callable_object(*args, **kwd) 203 | return value 204 | * Module Shared.DC.Scripts.Bindings, line 306, in __call__ 304 | def __call__(self, *args, **kw): 305 | '''Calls the script.''' 306>| return self._bindAndExec(args, kw, None) 307 | 308 | def __render_with_namespace__(self, namespace): * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec 341 | exec bindcode 342 | bound_data = bound_data[0] 343>| return self._exec(bound_data, args, kw) 344 | finally: 345 | security.removeContext(self) * Module Products.PageTemplates.ZopePageTemplate, line 222, in _exec 220 | security.addContext(self) 221 | try: 222>| result = self.pt_render(extra_context=bound_names) 223 | if keyset is not None: 224 | # Store the result in the cache. * Module Products.PageTemplates.PageTemplate, line 96, in pt_render 094 | getEngine().getContext(c), 095 | output, 096>| tal=not source, strictinsert=0)() 097 | return output.getvalue() 098 | * Module TAL.TALInterpreter, line 190, in __call__ 188 | assert self.scopeLevel == 0 189 | assert self.i18nContext.parent is None 190>| self.interpret(self.program) 191 | assert self.level == 0 192 | assert self.scopeLevel == 0 * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 409, in do_optTag_tal 407 | self.no_tag(stuff[-2], stuff[-1]) 408 | else: 409>| self.do_optTag(stuff) 410 | bytecode_handlers["optTag"] = do_optTag 411 | * Module TAL.TALInterpreter, line 394, in do_optTag 392 | omit=0): 393 | if tag_ns and not self.showtal: 394>| return self.no_tag(start, program) 395 | 396 | self.interpret(start) * Module TAL.TALInterpreter, line 389, in no_tag 387 | self.interpret(start) 388 | self.restoreOutputState(state) 389>| self.interpret(program) 390 | 391 | def do_optTag(self, (name, cexpr, tag_ns, isend, start, program), * Module TAL.TALInterpreter, line 234, in interpret 232 | else: 233 | for (opcode, args) in program: 234>| handlers[opcode](self, args) 235 | finally: 236 | self.level = oldlevel * Module TAL.TALInterpreter, line 460, in do_setLocal_tal 458 | 459 | def do_setLocal_tal(self, (name, expr)): 460>| self.engine.setLocal(name, self.engine.evaluateValue(expr)) 461 | bytecode_handlers["setLocal"] = do_setLocal 462 | * Module Products.PageTemplates.TALES, line 221, in evaluate 219 | __traceback_supplement__ = ( 220 | TALESTracebackSupplement, self, expression) 221>| return expression(self) 222 | 223 | evaluateValue = evaluate * Module Products.PageTemplates.Expressions, line 174, in __call__ 172 | if self._name == 'exists': 173 | return self._exists(econtext) 174>| return self._eval(econtext) 175 | 176 | def __str__(self): * Module Products.PageTemplates.Expressions, line 169, in _eval 167 | return ob 168 | # Return the rendered object 169>| return render(ob, econtext.vars) 170 | 171 | def __call__(self, econtext): * Module Products.PageTemplates.Expressions, line 66, in render 064 | """ 065 | if hasattr(ob, '__render_with_namespace__'): 066>| ob = call_with_ns(ob.__render_with_namespace__, ns) 067 | else: 068 | base = aq_base(ob) * Module Products.PageTemplates.ZRPythonExpr, line 76, in call_with_ns 074 | return f(None, td) 075 | else: 076>| return f(td) 077 | finally: 078 | td._pop(3) * Module Shared.DC.Scripts.Bindings, line 320, in __render_with_namespace__ 318 | except KeyError: 319 | pass 320>| return self._bindAndExec((), namevals, namespace) 321 | 322 | render = __call__ * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec 341 | exec bindcode 342 | bound_data = bound_data[0] 343>| return self._exec(bound_data, args, kw) 344 | finally: 345 | security.removeContext(self) * Module Products.PythonScripts.PythonScript, line 323, in _exec 321 | f = new.function(fcode, g, None, fadefs) 322 | 323>| result = f(*args, **kw) 324 | if keyset is not None: 325 | # Store the result in the cache. * Module None, line 22, in ERP5Site_getModuleItemList <PythonScript at /erp5/ERP5Site_getModuleItemList used for /erp5/portal_templates>Line 22 019 | cache_factory='erp5_ui_short') 020 |portal_path = context.getPortalObject().getPhysicalPath() 021>|return getModuleItemList(user=user, portal_path=portal_path) 022 | * Module Products.ERP5Type.Cache, line 202, in __call__ 200 | "Factory %s not found, method %s executed without cache" % ( 201 | self.cache_factory, self.callable_object)) 202>| value = self.callable_object(*args, **kwd) 203 | return value 204 | * Module None, line 13, in getModuleItemList <PythonScript at /erp5/ERP5Site_getModuleItemList used for /erp5/portal_templates>Line 13 010 | if module is not None: 011 | if portal.portal_membership.checkPermission('View', module): 012>| item_list.append((gettext(module.getTitleOrId()), module.absolute_url_path())) 013 | 014 | item_list.sort(lambda a, b:cmp(a[0], b[0])) AttributeError: getTitleOrId