Projekt nad którym pracuję wykorzystuje niesamowitą wtyczkę Plone's Dexterity. Kilka moich niestandardowych typów treści ma bardzo specyficzne nazwy, które należy obliczyć. Sposób, w jaki pierwotnie dokonał tego wcześniej było dodając plone.app.content.interfaces.INameFromTitle jako zachowanie w pozycji ogólnej konfiguracji obiektu, na kierunkach podręcznika:Czy istnieje sposób na rozszerzenie działania INameFromTitle Plone Dexterity?
<?xml version="1.0"?>
<object name="avrc.aeh.cycle" meta_type="Dexterity FTI">
...
<property name="schema">myproject.mytype.IMyType</property>
<property name="klass">plone.dexterity.content.Item</property>
...
<property name="behaviors">
<element value="plone.app.content.interfaces.INameFromTitle" />
</property>
...
</object>
Potem stworzył adaptera zapewniłoby 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
metoda ta jest bardzo podobna do tej sugerowane w tym blogu:
http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields
Niestety, ta metoda przestała działać po wersji plone.app.dXterity, a teraz moje elementy treści nie mają poprawnie przypisanych nazw.
Czy ktoś mógłby wiedzieć, w jaki sposób rozszerzyć zachowanie INameFromTitle Dexterity o bardzo specyficzne przypadki użycia nazw?
Twoja pomoc jest bardzo cenna, dzięki!