Atualizar 'Dicas de Plone 6 e Volto'

master
parent
commit
2c0965e71f
  1. 29
      Dicas-de-Plone-6-e-Volto.md

29
Dicas-de-Plone-6-e-Volto.md

@ -143,18 +143,35 @@ Passos:
#### Criando item de painel de controle
Há duas formas de definir algo no painel de controle.
> Frequentemente é necessário também [criar um endpoint](#criando-um-endpoint-para-ser-usado-no-frontend) para acessar o que foi configurado no painel de controle.
Há duas formas de definir algo no painel de controle:
1. Definir interface detalhando os dados do painel de controle
Não consegui achar um projeto com exemplo desta forma, mas é a forma que está explicada na documentação e nos treinamentos.
Checklist típica (os arquivos não precisam ser exatamente esses, é só uma sugestão):
- Criar um schema no arquivo `interfaces.py`, detalhando os campos desejados.
- Incluir uma tag `<configlet>` nos profiles de instalação e desinstalação do item de painel de controle, arquivo `controlpanel.xml`. O atributo `appId` deve coincidir nos dois arquivos.
- Criar um registro no Registry para a configuração, nos profiles de instalação e desinstalação. Arquivo `registry.xml` ou `registry/main.xml`. Usa-se a tag `<records>`.
- Criar uma página pra responder o item, arquivo `controlpanel/configure.zcml` (tag `browser:page`) e `controlpanel/controlpanel.py`.
- Criar um adapter pro Volto conseguir ver o item. Crie a tag `<adapter>`, em geral no arquivo `restapi/configure.zcml`.
[Documentação, Control Panels](https://6.docs.plone.org/backend/control-panels.html)
[Training "Mastering Plone", add custom control panel](https://training.plone.org/mastering-plone/registry.html#controlpanel-label)
[Documentação dos tipos](https://plonerestapi.readthedocs.io/en/latest/usage/types-schema.html)
2. Definir interface apenas com uma string, de forma que os dados sejam guardados como json. Neste caso, define-se um widget no frontend para editar este json. *Esta forma é mais comum nos addons do "Awesome Volto"*.
Checklist típica (os arquivos não precisam ser exatamente esses, é só uma sugestão):
- Criar um schema no arquivo `interfaces.py`. Neste caso, o schema só contém um item, so tipo `SourceText`.
- Incluir uma tag `<configlet>` nos profiles de instalação e desinstalação do item de painel de controle, arquivo `controlpanel.xml`. O atributo `appId` deve coincidir nos dois arquivos.
- Criar um registro no Registry para a configuração, nos profiles de instalação e desinstalação. Arquivo `registry.xml` ou `registry/main.xml`. Usa-se a tag `<records>`.
- Criar uma página pra responder o item, arquivo `controlpanel/configure.zcml` (tag `browser:page`) e `controlpanel/controlpanel.py`.
- Criar um adapter pro Volto conseguir ver o item. Crie a tag `<adapter>`, em geral no arquivo `restapi/configure.zcml`.
Projetos de exemplo:
- [eea.banner](https://github.com/eea/eea.banner) (usado pelo addon de frontend `volto-banner`)
- [collective.volto.subfooter](https://github.com/collective/collective.volto.subfooter)
@ -165,6 +182,12 @@ Há duas formas de definir algo no painel de controle.
[Docs, Control Panels (bem limitado)](https://6.docs.plone.org/backend/control-panels.html)
##### Troubleshooting
- Item aparece no plone clássico e não aparece no Volto.
O Volto exige os atributos `action_id` e `appId` da tag `<configlet>`. Além disso, não se esqueça do `<adapter>`.
#### Criando um endpoint para ser usado no frontend
Passos, grosso modo. Veja os exemplos para ter uma ideia melhor.
@ -252,7 +275,7 @@ Passos:
```
const addons = ['<nome do addon>', 'volto-ploneconf'];
```
> Aparentemente, pode também ser feito no `frontend/package.json`, num item `addons`.
> Não sei qual a maneira mais recomendada

Loading…
Cancel
Save