Olá, comunidade Plone.
Estou configurando um novo projeto Plone 6 (criado com cookieplone project) e estou enfrentando um erro persistente de ZCML ao tentar adicionar meus próprios tipos de conteúdo (Content Types).
Meu Ambiente:
-
Plone: 6.1.3 (via
cookieplone project) -
Volto: 18.28.2
-
Python: 3.12 (rodando no Ubuntu/WSL)
-
Addon Backend:
intranet.crfgo(criado pelocookieplone)
Meu Objetivo: Estou tentando adicionar três tipos de conteúdo Dexterity (AgrupadorDepartamento, Departamento, Colaborador) ao meu addon de backend intranet.crfgo.
O Problema: Assim que eu adiciono as diretivas <plone:type ... /> ao arquivo configure.zcml do meu addon (backend/src/intranet/crfgo/configure.zcml), o backend falha ao iniciar (make backend-start) com o seguinte erro:
zope.configuration.exceptions.ConfigurationError: ('Unknown directive', 'http://namespaces.plone.org/plone', 'type') File "/home/crfgo/intra-proj-crfgo/intranet-crfgo/backend/instance/etc/site.zcml", line 11.2-11.38 File "/home/crfgo/intra-proj-crfgo/intranet-crfgo/backend/src/intranet/crfgo/configure.zcml", line 28.2
O erro indica que o Zope não reconhece a diretiva <plone:type> no momento em que lê o ZCML do meu addon.
O que eu já verifiquei e tentei:
-
plone.dexterityestá instalado: Eu verifiquei no.venve o pacoteplone.dexterityestá lá, e ele contém os arquivosconfigure.zcmlemeta.zcml. -
Tentativa 1 (Editar
site.zcml): Tentei adicionar<include package="plone.dexterity" />antes de<include package="intranet.crfgo" />no arquivobackend/instance/etc/site.zcml. Resultado: O mesmo erro persiste. -
Tentativa 2 (Editar
configure.zcmldo addon): Tentei adicionar<include package="plone.dexterity" file="meta.zcml" />no topo doconfigure.zcmldo meu addon (intranet.crfgo). Resultado: O mesmo erro persiste. -
Tentativa 3 (Editar
configure.zcmldo addon): Tentei adicionar<include package="plone.dexterity" file="configure.zcml" />no topo doconfigure.zcmldo meu addon. Resultado: O mesmo erro persiste. -
Tentativa 4 (Editar
dependencies.zcml): Tentei adicionar<include package="plone.dexterity" />aodependencies.zcmldo meu addon. Resultado: O mesmo erro persiste.
Meus Arquivos de Configuração:
backend/instance/etc/site.zcml (Original, que carrega o addon):
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:meta="http://namespaces.zope.org/meta"
xmlns:five="http://namespaces.zope.org/five">
<include package="Products.Five" />
<meta:redefinePermission from="zope2.Public" to="zope.Public" />
<five:loadProducts file="meta.zcml"/>
<include package="intranet.crfgo" />
<five:loadProducts />
<five:loadProductsOverrides />
<securityPolicy component="AccessControl.security.SecurityPolicy" />
</configure>
backend/src/intranet/crfgo/configure.zcml (Versão que está falhando):
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
xmlns:i18n="http://namespaces.zope.org/i18n"
xmlns:plone="http://namespaces.plone.org/plone"
i18n_domain="intranet.crfgo">
<i18n:registerTranslations directory="locales" />
<genericsetup:registerProfile
name="default"
title="Intranet CRFGO"
directory="profiles/default"
description="Instala o addon intranet.crfgo."
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
<plone:type
name="AgrupadorDepartamento"
schema=".content.agrupador_departamento.IAgrupadorDepartamento"
klass=".content.agrupador_departamento.AgrupadorDepartamento"
add_permission="cmf.AddPortalContent"
/>
<plone:type
name="Departamento"
schema=".content.departamento.IDepartamento"
klass=".content.departamento.Departamento"
add_permission="cmf.AddPortalContent"
/>
<plone:type
name="Colaborador"
schema=".content.colaborador.IColaborador"
klass=".content.colaborador.Colaborador"
add_permission="cmf.AddPortalContent"
/>
</configure>
Alguém sabe qual é a maneira correta de registrar as dependências de ZCML (especificamente plone.dexterity) em um projeto moderno gerado pelo cookieplone para que a diretiva <plone:type> seja reconhecida?
Obrigado!