You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

  1. .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
  2. :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
  3. :alt: License: AGPL-3
  4. ===============
  5. Onchange Helper
  6. ===============
  7. This is a technical module. Its goal is to ease the play of onchange method directly called from Python code.
  8. Usage
  9. =====
  10. To use this module, you need to:
  11. * depend on this module
  12. * call `yourmodel.play_onchanges(values, ['field'])`
  13. Example if you want to create a sale order and you want to get the values relative to partner_id field (as if you fill the field from UI)
  14. `vals = {'partner_id': 1}`
  15. `vals = self.env['sale.order'].play_onchanges(vals, ['partner_id'])`
  16. Then, `vals` will be updated with partner_invoice_id, partner_shipping_id, pricelist_id, etc...
  17. You can also use it on existing record for example:
  18. `vals = {'partner_shipping_id': 1}`
  19. `vals = sale.play_onchanges(vals, ['partner_shipping_id'])`
  20. Then the onchange will be played with the vals passed and the existing vals of the sale. `vals` will be updated with partner_invoice_id, pricelist_id, etc..
  21. Behind the scene, `play_onchanges` will execute **all the methods** registered for the list of changed fields, so you do not have to call manually each onchange. To avoid performance issue when the method is called on a record, the record will be transformed into a memory record before calling the registered methods to avoid to trigger SQL updates command when values are assigned to the record by the onchange
  22. Bug Tracker
  23. ===========
  24. Bugs are tracked on `GitHub Issues
  25. <https://github.com/OCA/server-tools/issues>`_. In case of trouble, please
  26. check there if your issue has already been reported. If you spotted it first,
  27. help us smashing it by providing a detailed and welcomed feedback.
  28. Credits
  29. =======
  30. Images
  31. ------
  32. * Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
  33. Contributors
  34. ------------
  35. * Guewen Baconnier <guewen.baconnier@camptocamp.com>
  36. * Florian da Costa <florian.dacosta@akretion.com>
  37. * Laurent Mignon <laurent.mignon@acsone.eu>
  38. Maintainer
  39. ----------
  40. .. image:: https://odoo-community.org/logo.png
  41. :alt: Odoo Community Association
  42. :target: https://odoo-community.org
  43. This module is maintained by the OCA.
  44. OCA, or the Odoo Community Association, is a nonprofit organization whose
  45. mission is to support the collaborative development of Odoo features and
  46. promote its widespread use.
  47. To contribute to this module, please visit https://odoo-community.org.