Rajesh Prajapati (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk-bug-1089850-rpr into lp:openobject-addons.
Requested reviews: OpenERP Core Team (openerp) Related bugs: Bug #1089850 in OpenERP Addons: "fleet on_change events cause looping" https://bugs.launchpad.net/openobject-addons/+bug/1089850 For more details, see: https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1089850-rpr/+merge/141714 Hello changes made in fuel logs in fleet module for on_change methods. Thanks, Rajesh -- https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1089850-rpr/+merge/141714 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-bug-1089850-rpr.
=== modified file 'fleet/fleet.py' --- fleet/fleet.py 2012-12-19 07:04:15 +0000 +++ fleet/fleet.py 2013-01-03 08:58:22 +0000 @@ -495,38 +495,6 @@ else : return {} - def on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None): - #need to cast in float because the value receveid from web client maybe an integer (Javascript and JSON do not - #make any difference between 3.0 and 3). This cause a problem if you encode, for example, 2 liters at 1.5 per - #liter => total is computed as 3.0, then trigger an onchange that recomputes price_per_liter as 3/2=1 (instead - #of 3.0/2=1.5) - liter = float(liter) - price_per_liter = float(price_per_liter) - amount = float(amount) - if price_per_liter > 0 and liter > 0: - return {'value' : {'amount' : liter * price_per_liter,}} - elif price_per_liter > 0 and amount > 0: - return {'value' : {'liter' : amount / price_per_liter,}} - elif liter > 0 and amount > 0: - return {'value' : {'price_per_liter' : amount / liter,}} - else : - return {} - - def on_change_amount(self, cr, uid, ids, liter, price_per_liter, amount, context=None): - #need to cast in float because the value receveid from web client maybe an integer (Javascript and JSON do not - #make any difference between 3.0 and 3). This cause a problem if you encode, for example, 2 liters at 1.5 per - #liter => total is computed as 3.0, then trigger an onchange that recomputes price_per_liter as 3/2=1 (instead - #of 3.0/2=1.5) - liter = float(liter) - price_per_liter = float(price_per_liter) - amount = float(amount) - if amount > 0 and liter > 0: - return {'value': {'price_per_liter': amount / liter,}} - elif amount > 0 and price_per_liter > 0: - return {'value': {'liter': amount / price_per_liter,}} - elif liter > 0 and price_per_liter > 0: - return {'value': {'amount': liter * price_per_liter,}} - return {} def _get_default_service_type(self, cr, uid, context): try: === modified file 'fleet/fleet_view.xml' --- fleet/fleet_view.xml 2012-12-11 10:06:08 +0000 +++ fleet/fleet_view.xml 2013-01-03 08:58:22 +0000 @@ -613,8 +613,8 @@ </group> <group string="Refueling Details"> <field name="liter" on_change="on_change_liter(liter,price_per_liter,amount)"/> - <field name="price_per_liter" on_change="on_change_price_per_liter(liter,price_per_liter,amount)" /> - <field name="amount" on_change="on_change_amount(liter,price_per_liter,amount)"/> + <field name="price_per_liter" on_change="on_change_liter(liter,price_per_liter,amount)" /> + <field name="amount" on_change="on_change_liter(liter,price_per_liter,amount)"/> </group> </group> <group col="2">
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : openerp-dev-gtk@lists.launchpad.net Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp