Skip to content

add a folder with id 'str' not possible #1285

@1letter

Description

@1letter

BUG/PROBLEM REPORT

What I did:

i install a pure zope with a minimal buildout.cfg. No Plone, no plugin etc...

[buildout]
extends =
    https://zopefoundation.github.io/Zope/releases/master/versions-prod.cfg
parts =
    zopeinstance

[zopeinstance]
recipe = plone.recipe.zope2instance
eggs =
user = admin:adminpassword
http-address = 8080
zodb-temporary-storage = off

I add a Folder with id "str" and title "str" in the zope root.

What I expect to happen:

a object in the tree with id "str" and title "str"

What actually happened:

the zmi breaks. an error occurs:

Traceback (most recent call last):
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 238, in render
    self._render(
  File "/tmp/zope/var/cache/934e7b06903564a6d3a21cbc6c7bf8b7.py", line 364, in render
    __cache_135578222669136 = _static_135578187540176('path', 'here/manage_tabs', econtext=econtext)(_static_135578187541712(econtext, __zt_tmp))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.tales-7.0-py3.12-linux-x86_64.egg/zope/tales/expressions.py", line 248, in __call__
    return self._eval(econtext)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 225, in _eval
    return render(ob, econtext.vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 143, in render
    ob = ZRPythonExpr.call_with_ns(ob.__render_with_namespace__, ns)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/ZRPythonExpr.py", line 82, in call_with_ns
    return f(td)
           ^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 166, in render_blocks_
    t = md[t]
        ~~^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 374, in __getitem__
    return self.getitem(name, call=1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 392, in getitem
    return e.__render_with_namespace__(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 236, in render_blocks_
    render_blocks_(block, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 245, in render_blocks_
    block = block(md)
            ^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Let.py", line 85, in render
    return render_blocks(self.section, md, encoding=self.encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 168, in render_blocks_
    t = t(md)
        ^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Util.py", line 215, in eval
    return eval(code, d)
           ^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
AttributeError: __call__. Did you mean: '__bool__'?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/channel.py", line 430, in service
    task.service()
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/task.py", line 167, in service
    self.execute()
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/task.py", line 435, in execute
    app_iter = self.channel.server.application(environ, start_response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Paste-3.10.1-py3.12-linux-x86_64.egg/paste/translogger.py", line 76, in __call__
    return self.application(environ, replacement_start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/httpexceptions.py", line 30, in __call__
    return self.application(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 390, in publish_module
    response = _publish(request, new_mod_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 284, in publish
    result = mapply(obj,
             ^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/mapply.py", line 98, in mapply
    return debug(object, args, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 68, in call_object
    return obj(*args)
           ^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 335, in __call__
    return self._bindAndExec(args, kw, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/PageTemplateFile.py", line 143, in _exec
    return self.pt_render(extra_context=bound_names)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/PageTemplate.py", line 81, in pt_render
    return super().pt_render(
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.pagetemplate-6.1-py3.12-linux-x86_64.egg/zope/pagetemplate/pagetemplate.py", line 134, in pt_render
    return self._v_program(
           ^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/engine.py", line 368, in __call__
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/z3c.pt-5.1-py3.12-linux-x86_64.egg/z3c/pt/pagetemplate.py", line 207, in render
    return base_renderer(**context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/zpt/template.py", line 359, in render
    return super().render(**_kw)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 268, in render
    raise_with_traceback(exc, tb)
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/utils.py", line 52, in raise_with_traceback
    raise exc
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 238, in render
    self._render(
  File "/tmp/zope/var/cache/934e7b06903564a6d3a21cbc6c7bf8b7.py", line 364, in render
    __cache_135578222669136 = _static_135578187540176('path', 'here/manage_tabs', econtext=econtext)(_static_135578187541712(econtext, __zt_tmp))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.tales-7.0-py3.12-linux-x86_64.egg/zope/tales/expressions.py", line 248, in __call__
    return self._eval(econtext)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 225, in _eval
    return render(ob, econtext.vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 143, in render
    ob = ZRPythonExpr.call_with_ns(ob.__render_with_namespace__, ns)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/ZRPythonExpr.py", line 82, in call_with_ns
    return f(td)
           ^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 166, in render_blocks_
    t = md[t]
        ~~^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 374, in __getitem__
    return self.getitem(name, call=1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 392, in getitem
    return e.__render_with_namespace__(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 236, in render_blocks_
    render_blocks_(block, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 245, in render_blocks_
    block = block(md)
            ^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Let.py", line 85, in render
    return render_blocks(self.section, md, encoding=self.encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 168, in render_blocks_
    t = t(md)
        ^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Util.py", line 215, in eval
    return eval(code, d)
           ^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
AttributeError: __call__. Did you mean: '__bool__'?

 - Expression: "here/manage_tabs"
 - Filename:   manage_main
 - Location:   (line 3: col 29)
 - Arguments:  template: <PageTemplateFile at /main>
               here: <Application at >
               context: <Application at >
               container: <Application at >
               nothing: None
               options: {'args': ()}
               root: <Application at >
               request: <WSGIRequest, URL=None>
               modules: <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter object at 0x7b4ec42b7410>
               user: <User 'admin'>
               default: <DEFAULT>
               repeat: <Products.PageTemplates.engine.RepeatDictWrapper object at 0x7b4ec1a13a10>
               loop: {}
               target_language: None
               translate: <function BaseTemplate.render.<locals>.translate at 0x7b4ec1b1e2a0>
               attrs: {}
2026-02-08 13:31:03,426 ERROR   [waitress:437][waitress-3] Exception while serving /manage_main
Traceback (most recent call last):
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 238, in render
    self._render(
  File "/tmp/zope/var/cache/934e7b06903564a6d3a21cbc6c7bf8b7.py", line 364, in render
    __cache_135578222669136 = _static_135578187540176('path', 'here/manage_tabs', econtext=econtext)(_static_135578187541712(econtext, __zt_tmp))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.tales-7.0-py3.12-linux-x86_64.egg/zope/tales/expressions.py", line 248, in __call__
    return self._eval(econtext)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 225, in _eval
    return render(ob, econtext.vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 143, in render
    ob = ZRPythonExpr.call_with_ns(ob.__render_with_namespace__, ns)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/ZRPythonExpr.py", line 82, in call_with_ns
    return f(td)
           ^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 166, in render_blocks_
    t = md[t]
        ~~^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 374, in __getitem__
    return self.getitem(name, call=1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 392, in getitem
    return e.__render_with_namespace__(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 236, in render_blocks_
    render_blocks_(block, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 245, in render_blocks_
    block = block(md)
            ^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Let.py", line 85, in render
    return render_blocks(self.section, md, encoding=self.encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 168, in render_blocks_
    t = t(md)
        ^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Util.py", line 215, in eval
    return eval(code, d)
           ^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
AttributeError: __call__. Did you mean: '__bool__'?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/channel.py", line 430, in service
    task.service()
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/task.py", line 167, in service
    self.execute()
  File "/tmp/zope/eggs/v5/waitress-3.0.2-py3.12-linux-x86_64.egg/waitress/task.py", line 435, in execute
    app_iter = self.channel.server.application(environ, start_response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Paste-3.10.1-py3.12-linux-x86_64.egg/paste/translogger.py", line 76, in __call__
    return self.application(environ, replacement_start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/httpexceptions.py", line 30, in __call__
    return self.application(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 390, in publish_module
    response = _publish(request, new_mod_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 284, in publish
    result = mapply(obj,
             ^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/mapply.py", line 98, in mapply
    return debug(object, args, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/ZPublisher/WSGIPublisher.py", line 68, in call_object
    return obj(*args)
           ^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 335, in __call__
    return self._bindAndExec(args, kw, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/PageTemplateFile.py", line 143, in _exec
    return self.pt_render(extra_context=bound_names)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/PageTemplate.py", line 81, in pt_render
    return super().pt_render(
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.pagetemplate-6.1-py3.12-linux-x86_64.egg/zope/pagetemplate/pagetemplate.py", line 134, in pt_render
    return self._v_program(
           ^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/engine.py", line 368, in __call__
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/z3c.pt-5.1-py3.12-linux-x86_64.egg/z3c/pt/pagetemplate.py", line 207, in render
    return base_renderer(**context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/zpt/template.py", line 359, in render
    return super().render(**_kw)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 268, in render
    raise_with_traceback(exc, tb)
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/utils.py", line 52, in raise_with_traceback
    raise exc
  File "/tmp/zope/eggs/v5/Chameleon-4.6.0-py3.12-linux-x86_64.egg/chameleon/template.py", line 238, in render
    self._render(
  File "/tmp/zope/var/cache/934e7b06903564a6d3a21cbc6c7bf8b7.py", line 364, in render
    __cache_135578222669136 = _static_135578187540176('path', 'here/manage_tabs', econtext=econtext)(_static_135578187541712(econtext, __zt_tmp))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/zope.tales-7.0-py3.12-linux-x86_64.egg/zope/tales/expressions.py", line 248, in __call__
    return self._eval(econtext)
           ^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 225, in _eval
    return render(ob, econtext.vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/Expressions.py", line 143, in render
    ob = ZRPythonExpr.call_with_ns(ob.__render_with_namespace__, ns)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Products/PageTemplates/ZRPythonExpr.py", line 82, in call_with_ns
    return f(td)
           ^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 166, in render_blocks_
    t = md[t]
        ~~^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 374, in __getitem__
    return self.getitem(name, call=1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 392, in getitem
    return e.__render_with_namespace__(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 349, in __render_with_namespace__
    return self._bindAndExec((), namevals, namespace)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/Shared/DC/Scripts/Bindings.py", line 372, in _bindAndExec
    return self._exec(bound_data, args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/Zope-5.13-py3.12-linux-x86_64.egg/App/special_dtml.py", line 225, in _exec
    result = render_blocks(self._v_blocks, ns,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 236, in render_blocks_
    render_blocks_(block, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 245, in render_blocks_
    block = block(md)
            ^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Let.py", line 85, in render
    return render_blocks(self.section, md, encoding=self.encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 144, in render_blocks
    render_blocks_(blocks, rendered, md, encoding)
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/_DocumentTemplate.py", line 168, in render_blocks_
    t = t(md)
        ^^^^^
  File "/tmp/zope/eggs/v5/DocumentTemplate-5.1-py3.12-linux-x86_64.egg/DocumentTemplate/DT_Util.py", line 215, in eval
    return eval(code, d)
           ^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
AttributeError: __call__. Did you mean: '__bool__'?

 - Expression: "here/manage_tabs"
 - Filename:   manage_main
 - Location:   (line 3: col 29)
 - Arguments:  template: <PageTemplateFile at /main>
               here: <Application at >
               context: <Application at >
               container: <Application at >
               nothing: None
               options: {'args': ()}
               root: <Application at >
               request: <WSGIRequest, URL=None>
               modules: <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter object at 0x7b4ec42b7410>
               user: <User 'admin'>
               default: <DEFAULT>
               repeat: <Products.PageTemplates.engine.RepeatDictWrapper object at 0x7b4ec1a13a10>
               loop: {}
               target_language: None
               translate: <function BaseTemplate.render.<locals>.translate at 0x7b4ec1b1e2a0>
               attrs: {}

What version of Python and Zope/Addons I am using:

Ubuntu 24.04, Python 3.12.3, Zope 5.13.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions