They are supposed to be removed by clean_for_save, but when
someone breaks it, the result is a js error here instead of
a proper error in the subsequent tour steps.
In other words, the 'split lot' button should be visible immediately
when choosing a product with lot/serial number tracking and this will
also make the quantity field read-only.
Compute fields do not need to be set as read-only.
It gave problems with the old onchange that needed to set it.
This allows to detect barcode scans while the focus is in such a field.
It is not the default behaviour because buffering keystrokes to see if
they are a barcode then releasing them if they aren't isn't trivial
(it is impossible to trigger a native keyboard event).
For a model to use it, it must :
- Inherit barcodes.barcode_events_mixin and override on_barcode_scanned(self, barcode)
- Add <field name=barcode_scanned widget=barcode_handler/> to each form view that
should listen to barcode events and trigger on_barcode_scanned.
The method on_barcode_scanned works just like an onchange.
A 'display: none' rule on hover has been added for boolean buttons, on each
'o_stat_button o_stat_text' that hasn't classname o_hover. This applies on
every stat button that isn't a boolean button, so their content is always
hidden on hover.
* migration to new API
* removed delivery.grid object, has been merged with delivery.carrier
* change view of delivery.carrier (price rules, etc.)
* tests from yml to py
* website : restrict the list of countries for delivery address in the shop
Old code was searching at the same time the xmlid with and without the module
name. But if a file contains a template for his module (without prefix module
name) and a template with the same name for an other template, the node which
are returned canbe the bad template.
Eg: in the same file from an other module than website
<template id="test">
...
</template>
<template id="website.test">
...
</template>
If you are looking for template website.test, the old code was returning the first
"test" instead of "website.test".
Now we look for the more precise xml_id (website.test), before to fallback on the
implicit name (test = without module name).
The onchange for location zones in picking takes into account
partner locations on partner of the picking. (e.g. Suppliers/IT Vendors instead of Suppliers)
This is only the case when the default location of the picking type is empty.
If a partner is assigned to a warehouse, its default supplier/customer location becomes
the Transit location of the company.
That way, when you set a partner on a picking that is the address of a warehouse,
the default source/destination location (depending if it in/out) will be automatically
set to the Transit Location.