On 09.04.2010 19:14, Alberto Berti wrote:
 ISettingsShipmentManager, I must ask, why the same approach on
 payment processor configuration (ISettingsPaymentManager) was
 abandoned?

I don't get the point of ISettingsPaymentManager, it seems like a marker
interface and derives from IViewletManager, so this suggests to me that
it was intented to be used to organize visual aspects of settings that
belongs to payments? It's declared in Products.PloneGetPaid.interfaces
and isn't used anywhere else in PloneGetPaid. Is there any other
products which uses it?

Correct, ISettingsXXXManager's are only about generating configuration panes for plugins. ISettingsPaymentManager is defined next to ISettingsShipmentManager but, AFAIK, only the latter is used. Although, there remains a portion of commented out code in PloneGetpaid/browser/admin.py for the former also.

ISettingsShipmentManager is successfully used at least in getpaid.ups.

Originally, I was wondering, if there exists a working pluggable configuration viewlet architecture for multiple shipment plugins, why it was not used also with configuration of payment processors?

 should not be an issue anymore. In long term, i think that
 GetPaid can start utilizing plone.registry and try to
 decrease the amount of GetPaid specific code. This concerns
 at least form wizards also.

Is there any consensus on which parts of getpaid should be fully independent from Plone? I see that the original desing has been to keep the architecture of getpaid.* fully independent from Plone (or Products.PloneGetPaid), but since Products.PloneGetPaid is the only GetPaid implementation, none of the plugins really work without it.

The independent way seems to be storing settings on local persistent utilities. Let me explore getpaid.ups as an example:

- getpaid.ups provides a local persistent utility called UPSRateService,
  which implements IShippingRateService from getpaid.core

- UPSRateService both handles the business logic and stores the settings

- UPSRateService is registered by UPSPlugin, which implements IPluginManager from getpaid.core and is run on IStoreInstalledEvent from getpaid.core (it seems that there originally was plans to have a gui for installing and uninstalling plugins by other means than listening IStoreInstalledEvent)

- Finally, getpaid.ups defines UPSSettings browser:viewlet for
  ISettingsShipmentManager from Products.PloneGetPaid for
  displaying and managing settings using SettingsViewletManager
  architecture from Products.PloneGetPaid (I guess, this is the
  only part, which makes getpaid.ups dependent on
  Products.PloneGetPaid and this can fixed by adding a simple
  condition into ZCML-configuration)

Best Regards,
Asko

--
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

To unsubscribe, reply using "remove me" as the subject.

Reply via email to