website_quote: renamed validity date to expiry date & adapted the sale order report to display the expiry date in website_quote module instead of sale module
When a new record is returned as the value for a many2one on a new record, the
method Many2one.convert_to_write() now returns a NewID, and default_get() then
discards that value from its result. This makes it consistent with its former
behavior.
Manual rebase of #1547
As the survey hardcode lot's of views and reports in python, we do not beneficiate from automatic timezone conversions in the webclient.
Hopefully this is fixed in v8 after refactoring of the survey module. opw 608786
The product_id field is not required on a mrp.bom (while product_tmpl_id is). When searching for BOMs linked to a product.product, we should display the one specific to this product and the ones linked to the template (but not linked to another variant).
On child partner creation of a parent partner, the commercial_partner_id is not computed (and stored) in the create method.
Therefore, we should compute the commercial_partner_id before trying to sync his data
The method _paypal_form_get_invalid_parameters checks that the params passed by the paypal feedback coroborate with the transaction requested by Odoo.
It looks like the 'receiver_id' is not always passed by the paypal feedback. Therefore, we check this param only if it is available in the paypal feeback.
This issue had as side-effect to not validate the paypal transaction, which remained 'draft' permanently.
If any missing or partially incorrect values cause
an exception other than a psycopg2 error, we should
still catch it, rollback that record and report
the error, rather than letting bubble and fail
without any feedback to the user.
Fixes#1485
When we compute the discount of a product to display (result of product_id_change), we compare prices in the currency of the product while we expect prices in the currency of the pricelist. opw 606188
When a record is created, the magic fields (id, create_date,...) are first removed from the vals as the user should not set a value for these.
However if a value for this is given in default value (e.g. defined in an ir.value), the creation would crash (sql error : column specified more than once) as the magic column would be added again.
In some rare cases database records have negative IDs,
so the slug URL could look like /foo--20. This could
be mistaken for a slug ending with a `-` and a positive ID.
The latter is not supposed to happned as final hyphens
are stripped by slugify, but has been used in the past
and may be used in old links.