Есть ли способ расширить поведение INameFromTitle Plone Dexterity?

В проекте, над которым я работаю, используется потрясающий плагин Dexterity от Plone. У пары моих настраиваемых типов контента есть очень конкретные имена, которые необходимо вычислить. Первоначально я делал это раньше, добавляя plone.app.content.interfaces.INameFromTitle как поведение в общей записи настройки объекта, в соответствии с инструкциями руководства:



  ...
  myproject.mytype.IMyType 
  plone.dexterity.content.Item
  ...
  
    
  
  ...

Затем я создал адаптер, который будет предоставлять INameFromTitle:

from five import grok
from zope.interface import Interface
import zope.schema
from plone.app.content.interfaces import INameFromTitle

class IMyType(Interface):

    foo = zope.schema.TextLine(
        title=u'Foo'
        )

class NameForMyType(grok.Adapter):
    grok.context(IMyType)
    grok.provides(INameFromTitle)

    @property
    def title(self):
        return u'Custom Title %s' % self.context.foo

Этот метод очень похож на метод, предложенный в этом сообщении в блоге:

http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields

К сожалению, этот метод перестал работать после бета-тестирования plone.app.dexterity, и теперь мои элементы контента перестают работать. им не присвоены должным образом имена.

Может ли кто-нибудь узнать, как расширить поведение Dexterity INameFromTitle для очень специфических сценариев использования имен?

Ваша помощь очень ценится, спасибо!

7
задан mmartinez 1 November 2011 в 23:48
поделиться