Re: set() and get() of IField ignored in Dexterity?

Andreas Jung <[email protected]>
Newsgroups gmane.comp.web.zope.plone.devel
Message-ID <[email protected]>
Gil Forcada wrote:
> Hi,
> 
> El dt 02 de 12 de 2014 a les 11:33 +0100, en/na Andreas Jung va
> escriure:
>> Johannes Raggam wrote:
>>> On Mon, 2014-12-01 at 13:42 +0100, Andreas Jung wrote:
>>>> David Glick (Plone) wrote:
>>>>> On 11/30/14, 9:39 AM, Andreas Jung wrote:
>>>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>>>> Hash: SHA1
>>>>>>
>>>>>> I implemented an XML field for Dexterity
>>>>>>
>>>>>> https://bitbucket.org/onkopedia/zopyx.existdb/src/438c6daa6bf3f5ac0c0a08b602e1f9927ead058a/zopyx/existdb/dx/fields.py?at=dexterity
>>>>>>
>>>>>> which is working nicely with plone.schemaeditor.
>>>>>>
>>>>>> However: the set() and get() methods are completely
>>>>>> ignored. Is there something in Dexterity by-passing
>>>>>> these methods?
>>>>>>
>>>>>> - -aj
>>>>>>
>>>>> The default z3c.form data manager is z3c.form.datamanager.AttributeField 
>>>>> which just does setattr and getattr on the (possibly adapted) context. 
>>>>> If you want the field's get/set to be used, you'll either have to write 
>>>>> a custom data manager for your field, or use a custom content item class 
>>>>> that uses property descriptors.
>>>> This is perhaps an option when you define your content-types in Python
>>>> code but completely unusable for TTW content-types.
>>> The data manager would adapt a generic context and your specific field.
>>> So, if you create this data-manager and create a TTW content type using
>>> this field, it should use your data manager.
>> I am using a custom data manager right now and this should work fine (in
>> fact it does work fine with my prototype) for both content-types create
>> TTW or programmatically. I am more concerned we now have a third
>> (necessary) way for dealing with get/set operations where the storage
>> handling can not be implemented through a behavior but instead on the
>> field level or in this case through the data manager (which belong
>> to the z3c.form widget level) on the completely improper framework
>> level. I am not opening a new discussion here but I just need to mention
>> that the set/get implementation in Dexterity is even more flawed that
>> I first thought. I can deal with this on the application level...so
>> don't fear a further shit storm from my side :-P
> 
> I would actually expect issues filed on github and, if possible, some
> patches or at least designs on how to improve the current brokeness :)
>

In addition: this issue is a question and a discussion that does not
belong on Github for now. A bug tracker is not a place for discussions
in the first place.

Bouncing-the-ball-back
Andreas




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.