Adaptar tipo Infográfico padrão tipo Imagem: permitir edição a partir do folder_contents e demais funcionalidades
idgserpro opened this issue · 1 comments
Qual versão do produto você está usando e em qual sistema operacional?
Portal Padrão 2.1.1
Plone 4.3.18 (4320)
CMF 2.2.10
Zope 2.13.28
Possui plugins adicionados além dos definidos numa instalação padrão do Portal Padrão?
Não
Está utilizando o buildout padrão como o usado em https://github.com/plonegovbr/portal.buildout?
Não
Está utilizando o arquivo de versões de pinagens das dependências como definido em https://github.com/plonegovbr/portalpadrao.release e https://github.com/plonegovbr/brasil.gov.portal#requisitos?
Sim. É uma instalação brasil.gov.portal que aponta para a versão https://github.com/plonegovbr/portalpadrao.release
Quais são os passos para reproduzir o problema?
Crie um tipo "Infográfico" normal. Depois, acesse /folder_contents
do pai do Infográfico. Na listagem de objetos, clique no objeto Infográfico recém criado.
Qual é o retorno esperado? O que você vê ao contrário do esperado?
A tela de edição do Infográfico, com as opções padrão do Plone (Visão, Edição). Ao invés disso, abre a imagem cadastrada no infográfico, em tela cheia no navegador, impedindo a edição do objeto.
O infográfico é baseado no Tipo Imagem. Comparando os dois em plone.app.contenttypes:
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/browser/templates/image.pt
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/schema/image.xml
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/profiles/default/types/Image.xml
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/profiles/default/diff_tool.xml#L16
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/profiles/default/rolemap.xml#L37
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/permissions.zcml#L28
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/subscribers.py#L5
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/browser/configure.zcml#L174
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/content.py#L88
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/indexers.py
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/indexers.zcml
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/permissions.py
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/permissions.zcml
https://github.com/plone/plone.app.contenttypes/blob/1.1.6/plone/app/contenttypes/subscribers.zcml
Percebemos que o infográfico não definiu o diff_tool, o indexer e o subscriber. Apesar disso ser realmente necessário ser revisto (provavelmente em outro relato), não é exatamente o escopo desse relato, que impede a edição do objeto.
Para o problema de não conseguir editar no folder_contents, no caso, após debugar a template table.pt, descobrimos que para um objeto imagem, o view_url
vinha diferente:
Infográfico
{'brain': <Products.ZCatalog.Catalog.mybrains object at 0x7fc3c7a24a78>,
'checked': None,
'folderish': False,
'icon': u'<img width="16" height="16" src="http://localhost:8080/Plone/image_icon.png" alt="Infogr\xe1fico PNG image" />',
'view_url': 'http://localhost:8080/Plone/pnggrad16rgb.png',
'wf_state': Missing.Value},
Imagem
{'brain': <Products.ZCatalog.Catalog.mybrains object at 0x7fc3c7507460>,
'checked': None,
'folderish': False,
'icon': u'<img width="16" height="16" src="http://localhost:8080/Plone/image.png" alt="Imagem JPEG image" />',
'view_url': 'http://localhost:8080/Plone/dsc.jpg/view',
'wf_state': Missing.Value}]
Analisando quem monta essa lista, em plone/app/content/browser/foldercontents.py
, descobrimos que é necessário editar a propriedade typesUseViewActionInListings
em http://localhost:8080/Plone/portal_properties/site_properties/manage_propertiesForm, adicionando o tipo Infographic
. Dessa forma corrige o problema descrito nesse relato. Para esse erro, a correção envolve setar essa propriedade e na sequência fazer um upgradeStep.