NUL characters must not be used in query parameters,
as they will be ignored by libpq, being end-of-string
characters.
Preventing NULs avoids unexpected results from
queries. It is only necessary with psycopg2
versions before 2.7, which includes the upstream
fix.
If some required fields are not present in the created values, they are computed
based on the onchange.
This was introduced at 5c4765130 to allow to import sale order lines without
specifying uom.
If sale_margin is installed, the same issue will occure as it assumes there is
a value for product_uom
Add test, courtesy of Mourad Elhadj Mimoune, Akretion
Closes#17613
Purpose
=======
The new kanban status history in the chatter is not clear for the end user.
Specification
=============
When the state of a task is change the chatter should display the kanban state custom label instead of the kanban state
This reverts commit 174d7e8e49.
The default language is the language if no lang corresponding to
the current language is found. Thus the browser language if available in
languages has priority over the default language.
opw-746776
closes#17637
With the new views, the class `o_field_widget` is added on every field widget
and is styled with `display: inline-block`.
The dashboards used to display graphs in full-width so this behaviour is
restored.
This option hadn't been implemented in the new views.
It allows to display informative explanations as tooltips on column over.
It can be set on a many2one field in the kanban view, e.g.:
```<field name="stage_id" options='{"group_by_tooltip":
{"<tooltipFieldOnStageModel>": "<ABeautifulTitle>"}
}'/>
```
An extra RPC needs to be done on the many2one relation to fetch these additional
fields and the data are stored in the datapoint under the key `tooltipData`.
The `o_status` style has been moved in a previous rev. in `fields.less` which
is only for `o_field_widget` nodes.
This class however is used in other context than a field (e.g. on a label in
the project.task.type form view) so its style needs to be placed at an upper
level.
Similarly to functions `format_date` and `format_tz`, we add a function
in order to format amounts in the mail template.
It can be used, for example:
`${format_amount(object.amount_total, object.pricelist_id.currency_id)}`
opw-746088
Bug introduced with the latest forward-port. Since the invoice's workflow has been removed in bc8d5dbf2c, the button name to cancel an invoice changed also.
Original commit (in 10.0) be9dce625c
From original commit:
It is still possible to have negative and positive quants in the same
location because of returns: if you send something to the customer that
is not there and you return it, you will still be able to reserve the
returned goods to send to another client.
Before, if you would do an inventory adjustment, it would not take into
account these returned quants and their negative counterpart, which made
them difficult to get out of the system.
This fix takes them into account by creating two movements for one
inventory line: move the positive counterpart to the inventory location
before getting back from this location the same quantity.
This way, even if you have 0 as quantity on hand but you have those 2
quants, it will eliminate them. (if you are increasing the stock, part
of the process might have done it automatically already).
Also, a key of context has been added which authorizes the process described above in the case of both a tracked product and no lot_id on the stock inventory
OPW 743107
Closes#17167
Since commit ebd17217c4, values of readonly fields inside x2many
fields weren't sent for onchanges, whereas they should. This was
for example an issue on the stock.picking form view (which is in
state 'draft' by default). If the user added a stock.move, the
state field on the move wasn't sent for the onchange, and thus the
state field on the picking was set to false.
By the time the product images are downloaded the current order object
may have already been destroyed. This can happen when e.g. clicking on
the 'Next order' button.
When using Wi-Fi the Odoo instance on the POSBox will start after a
Wi-Fi connection is established. This takes a bit longer than when
you're using a wired connection. If Firefox gets started before you
end up with a 'Could not connect to localhost:8069' error.
- Change the info message "Add Images from Customize menu" to
"Add Images" and make it clickable
- Reorganize snippet options menu
- Improve the image dialog to be able to select/unselect
- Make sure previews are adapted when changing gallery images
Before this commit, when clicking on an image which is in a link, both
the link edition dialog and the image edition dialog were opened. Now
only one opens.
With the new views, the merge task feature did not properly precomplete the selected tasks. This is because they do not support the command 4 when creating a new record. This will be fixed at some point, but meanwhile, we can just simply return the selected ids in the default_get. This makes the code slightly simpler.
(PR #17566, issue 746867)
Before this commit, the return flow in the pos would not work if closing the pos session intervened before the return payment registration.
The balance of the the statements was not updated before going to the validate step.
After this commit, we force the recomputing of the relevant fields (i.e. balance_end_real), to reflect reality and permitting validatioon afterwards
Backport of e27a3b185e (on #17438)
Closes#17599
OPW 743763
Steps to reproduce the bug:
-create a child contact of a company C
-invite the child contact as a portal user
-sign into the website and place an order w/ wire transfer as payment acquirer
Bug:
The payment term set on the quotation was not taken from the company C and
the default sales person was not taken from company C too.
opw:745091
Before this commit, the return flow in the pos would not work if closing the pos session intervened before the return payment registration.
The balance of the the statements was not updated before going to the validate step.
After this commit, we force the recomputing of the relevant fields (i.e. balance_end_real), to reflect reality and permitting validatioon afterwards
OPW 743763
Closes#17438
PURPOSE
=======
By default the list view of LN/SN should be group by products which is more readable for end user.
SPECIFICATION
=============
Default group by product on lot/serial number list view
PURPOSE
=======
Clean menus in manufacturing
SPECIFICATION
=============
* Operations > Orders
* Scrap > Scrap Orders
* Bill of materials > Bills of materials # bistray
* Move the menu "Work Order Messages" in Master Data
* Remove menu "Planning" if WO or MPS no active
* Menu "Orders to plan" > visible only if WO active
* Menu "Waiting for material availability" > visible only if WO active, put it above "Orders to plan"
* Master Data, order of submenus : Products / BOM / Routings / Work Centers
Issue: when using `copy` in a given lang, the value of XML/HTML fields is
copied in its translated form, making existing translations useless. Fix the
value of such fields by storing their original value instead.
PURPOSE
=======
confusing tooltip on "Alert Date".
SPECIFICATION
=============
Replace the tooltip on alert date by : "Date used to determined what are the expired lots and serial numbers using the filter "Expiration Alerts".
PURPOSE
=======
Improve empty list messages of the MRP application
SPECIFICATION
=============
* Manufacturing Orders
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZreG5WM3IyV29QaDg/view?usp=drivesdk
Expected :
Click here to create a Manufacturing Order.
Based on a Bill of Material, a Manufacturing Order will consume raw materials and produce finished products.
Manufacturing Orders can be generated automatically based on customer requirements or reordering rules.
* Work Centers Dashboard
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3Zra21mUWZoQ3VhcG8/view?usp=drivesdk
Expected :
Click here [add a link to work centers list view] to create a new Work Center.
Manufacturing operations are processed at Work Centers. A Work Center can be composed of workers and/or machines, they are used for
costing, scheduling, capacity planning, etc. The Work Centers are defined on the Routing's operations.
* Work Centers
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrbGZocVc1TXd6dUE/view?usp=drivesdk
Expected :
Click here to create a new Work Center.
Manufacturing operations are processed at Work Centers. A Work Center can be composed of workers and/or machines, they are used for
costing, scheduling, capacity planning, etc. The Work Centers are defined on the Routing's operations.
* Work Orders
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrSmpCU1pOaWpEQWc/view?usp=drivesdk
Expected :
Work Orders are operations to be processed at a Work Center to realize a Manufacturing Order. Work Orders are trigerred by Manufacturing Orders, they are based on the Routing defined on these ones.
* Unbuild Orders
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrUmpoN2ZzM2prazg/view?usp=drivesdk
Expected :
Click here to create a Unbuild Order.
Unbuild Orders are used to break down a product you manufactured or purchased into its components, based on its Bill of Material.
* Scrap Orders
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrZl9QdWRNZXRTTWc/view?usp=drivesdk
Expected :
Click here to scrap products.
Scrapping a product will remove it from your stock. The product will end up in a scrap location that can be used for reporting purpose.
* Work Order Messages
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrSWZocUU1MkwxRjg/view?usp=drivesdk
Expected :
Click here to create a new Work Order Message.
Work Order Messages are used to warn users about any change in the product, process, etc.
These messages will appear on the involved Work Orders.
* Routings
Current : https://drive.google.com/a/odoo.com/file/d/0B0ITmdw6h3ZrNE1FNFNXYWJWSzA/view?usp=drivesdk
Expected :
Click here to create a new Routing.
Routings define the successive operations that need to be done to realize a Manufacturing Order.
Each operation from a Routing is done at a specific Work Center and has a specific duration.
When doing a delete, the cache is cleared, putting an unlink in a loop
multiplies the number of requests made (for access rules, relational
field, recompute ...) by the number of rows. Doing it outside the loop
speeds up the validation of the invoice.
Backport of 10.0's 2687571781
When the user duplicated a record 'A', and deleted the new record
'A (copy)' directly, the wrong record was deleted: 'A' was deleted
instead of 'A (copy)', because de id of 'A' was bound to the delete
handler, and it wasn't updated after the duplication.
Also correctly updates the record's offset after the deletion, so
that it doesn't produce a warning when deleting the last record of
the dataset.