Using `field.translate(callback, value)` returns the translation of the given
field value by using the function `callback` to translate simple terms in
`value`. In practice, the function `callback` uses a translation mapping
retrieved from `ir.translation`.
* add missing columns in base.sql
* add missing fields 'help', 'readonly', 'required', 'selectable' in reflection
* add field 'help' in `ir.model.fields` views
* do not patch registry with translated field string and help upon `ir.model.fields` update
* add the necessary fields in `ir.model.fields`
* when loading translations, convert types 'field', 'help' into 'model'
* add specific methods to retrieve translations of field string and help
Move local get_real_price_currency() of product_visible_discount into a real
function, to make it inheritable.
Modify a copy of the context to limitate the propagation.
Fixes#3717
There is no need in recomputing each time the link between pack operations and
moves, when changing a pack operation. It would change the remaining qty
on the move, but this is not shown anywhere.
In the tests of wise_operator, when moving pack operations to another picking,
the links shoud be deleted as it is not done somewhere else
When creating new Employee and linking to the existed user, this fix will
populate not only email address field, but also full name and avatar image.
Closes#7397
Instead of having only outgoing, manufacturing, incoming, all... traceability on the product,
we can define on the product if there is no tracking, lot tracking or unique serial number tracking.
On the picking type we can define whether we will only create lots for the picking type or use existing lots.
The lots are required when the product and the picking type demand it.
The option for serial number will check that each piece (quantity 1) has its
own serial number.
A lot splitting wizard is added on the pack operations in the picking form.
We want to be able to handle the case where we receive a lot of iPads e.g. and we
only assign a serial number when the product is delivered. For this, when the product is
delivered, we see that we only have products with no lots. When we see that we take something
without lot for something that needed one, we assign the lot to that piece of stock.
For negative quants: a positive quant with no lot can reconcile with a negative quant with/without lot,
a positive quant with lot, will preferably reconcile with a negative quant with the same lot, afterwards
with that without lot.
This new module integrate the 'Mercury Pay' electronic payment
provider with the point of sale.
This commit is the end result of a large branch whose main
author is Joren Van Onder <jov@odoo.com>, with additional
contributions from Martin Donies <mdo@odoo.com> and Frederic van
der Essen <fva@odoo.com>
Broke during migration of POS to the new keypress-oriented
barcode_events. The keyboard handler was written with keyup in mind, so
some keys got broken. This fixes everything and sets up a solution for
how to deal with keys that do not generate keypress events in
Chrom{e,ium}.
When a popup is displayed in the point of sale, it sets-up its
own barcode callbacks to prevent the screen's default barcode
action. If a barcode doesn't handle such a barcode, and has not
been setup to handle errors either, it will be ignored, and
a warning will be emitted to the console.
This makes the POS use the barcode_events framework class. It also
attempts to make the POS use only one type of keyevent, namely
keypress. This is not completely possible because we still have to
prevent backspace from doing back navigation. Backspace also doesn't
generate keypress events in Chrom{e,ium}. We handle that by calling the
keyboard handler explicitly for backspace.
The kanban view was changed recently to display the tooltips in column
headers. Sadly, it appears that the developer forgot to take into
account the case when there are on tooltips. This commit fixes this
unfortunate oversight.
The set_value() function of x2many fields is asynchronous. When a record is
loaded, the invisibility changers (IC) are evaluated once set_value() has been
performed on every fields. As set_value() didn't return its deferred, the IC where
evaluated with wrong values. It produced in particular the following bug:
Go to Customers > Agrolait (the Contacts tab is displayed), switch to next record,
which is the first contact of Agrolait. The Contacts tab is still displayed,
whereas it should not (the invisible condition being is_company == false and
child_ids == [], i.e. there is no contact).
Also call this._super() in set_value() of AbstractManyField instead of
duplicating the function of its parent.
updated their code accordingly.
Subtype display in the follower widget has been improved: now displaying correctly
subtypes ordered by related model, then internal / not internal, then sequence.
related to the mail.mail model in their own mail_mail.py file. This ease
the process of working on the mail.mail model and inheritance, if the
code is not hidden between unrelated models.
This change is required for new design compatibility because when
toggling the app switcher, the whole content is detached. The app
switcher is toggled once the deferred def is resolved. If def is
resolved before the dialog is closed, the dialog is detached as well,
and re-attached when clicking on another apps. With this rev., def is
resolved once the dialog is closed.
Also fixes the on_cancel() call which wasn't done at the right place.