Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/roundup/cgi/client.py", line 1881, in renderContext result = pt.render(self, None, None, **args) File "/usr/lib/python3.8/site-packages/roundup/cgi/engine_zopetal.py", line 93, in render TALInterpreter.TALInterpreter(self._v_program, self.macros, File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 192, in __call__ self.interpret(self.program) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 680, in do_useMacro self.interpret(macro) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 413, in do_optTag_tal self.do_optTag(stuff) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 398, in do_optTag return self.no_tag(start, program) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 392, in no_tag self.interpret(program) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition self.interpret(block) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 705, in do_defineSlot self.interpret(slot) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition self.interpret(block) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 644, in do_condition self.interpret(block) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/lib/python3.8/site-packages/roundup/cgi/TAL/TALInterpreter.py", line 571, in do_insertStructure_tal structure = self.engine.evaluateStructure(expr) File "/usr/lib/python3.8/site-packages/roundup/cgi/PageTemplates/TALES.py", line 225, in evaluate return expression(self) File "/usr/lib/python3.8/site-packages/roundup/cgi/PageTemplates/Expressions.py", line 198, in __call__ return self._eval(econtext) File "/usr/lib/python3.8/site-packages/roundup/cgi/PageTemplates/Expressions.py", line 193, in _eval return render(ob, econtext.vars) File "/usr/lib/python3.8/site-packages/roundup/cgi/PageTemplates/Expressions.py", line 99, in render ob = ob() File "/usr/lib/python3.8/site-packages/roundup/cgi/templating.py", line 1248, in history label = html_escape(label) File "/usr/lib/python3.8/site-packages/roundup/anypy/html.py", line 7, in html_escape return html_escape_(str, quote=quote) File "/usr/lib/python3.8/html/__init__.py", line 19, in escape s = s.replace("&", "&") # Must be done first! AttributeError: 'NoneType' object has no attribute 'replace'