Hi I fixed a very serious bug in getpaid.core:
In getpaid.core.options, the PersistentOptions class, used for handling the annotation storage on objects, for items as well as payment processors and so on, was setting the annotation_key on the PersistentOptions class itself instead of the generated storage classes (like BuyableContentStorage). This meant that the last generated class' key would win - and all annotations created by PersistentOptions in getpaid would use that key - also payment processors etc. Before all my items data would be stored under the getpaid.content.variableamountdonate key. And there could only be one getpaid related annotation pr. item. Now the correct key is used, and there can be several annotations per object, like: ... ('getpaid.content.buyable', <persistent.dict.PersistentDict object at 0x10a7ec6c>), ('getpaid.content.donate', <persistent.dict.PersistentDict object at 0x10a5852c>)] This bug might account for al sorts of strange behaviour, missing or overwritten settings etc. I once in a while noticed a strange behavior - sometimes the prices and other data of my buyable items would disappear - perhaps related to plone.reloading the payment processor I am working on - this would regenerate its options class, and suddenly set its own key on the PersistentOptions class, affecting all getpaid related annotations in the system (until a restart). The bad news is that this will require some migration of existing sites - their annotation data will no longer be available, since the correct key will now be used for lookup. I did not commit it yet because of this. The migration should probably consists of trawling through the whole site, and fixing annotation keys where necessary, for both content and settings in general. How do we handle this? The fix is simply to change line 132 on trunk cls.annotation_key = key to new_class.annotation_key = key I committed some very basic tests for annotations using the correct keys. regards, Sune W. -- GetPaid for Plone: http://www.plonegetpaid.com (overview info) | http://code.google.com/p/getpaid (code and issue tracker) You received this message because you are subscribed to the Google Groups "getpaid-dev" group. To post to this group, send email to getpaid-dev@googlegroups.com To unsubscribe from this group, send email to getpaid-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/getpaid-dev?hl=en?hl=en