plonegovbr/brasil.gov.portal

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.