Commit Graph
114910 Commits
Author SHA1 Message Date
Martin Trigaux 5b88b1a961 [I18N] export 11.0 source terms
To reflect recent code changes
2018-02-19 15:46:33 +01:00
xmo-odoo 2c1b97e22b [IMP] base: make module fields !create
Trying to create a module through the interface will blow up as
computing the `desc` leads to a concatenation of the module's addons
path, the module's name and a hard-coded path, which does not work as
the module does not have a name yet. This creation attempt can be
performed as the admin through m2o fields.

Given said creation through the UI doesn't really make sense, disable
it on the relevant fields.

Fixes #23059
2018-02-19 15:02:38 +01:00
Simon Lejeune 97ed2e730e [FIX] purchase, sale_stock: propagation of UOM
Before this commit, the uom defined on the sale order line and on the
purchase order line was propagated to the moves. This is not the
behaviour of v8-10 and may confuse the stock operator (one time he's
working in dozen, another time in units for example). It also leads to
rounding issues if the configuration is not adapted correctly (product's
uom is in units, sale order line is in dozen, the rouding precision on
the uom is left to their defaults, now if a dozen is partially available
there's a good chance converting back and forth form dozen to units will
break).

An ir.config_parameter was added to restore the behaviour before this
commit.
2018-02-19 14:29:09 +01:00
xmo-odoo d28f8f704f [FIX] base: high memory usage in export
Overly attached cache's overhead turns out problematic. Clearing the
cache after batches of records keeps the cache overhead low and does
not change performances.

Explanations:

env.cache is 3 levels of maps {field: record_id: {env: value}}, where
env can be either an Environment or a pair (cr, uid) depending on the
field's dependency on the context or not.

This can be an issue when the current request loads many fields in an
enormous number of records in a single environment. The (PaaS) case
here was the export of a res.partner field from 36358 records in a single
environment[0]:

* prefetch expanded the single field to 68, leading the base `cache`
  to have 68 entries. getsizeof(d<len=68>) == 3360 (3kB, which we will
  soon see we can ignore entirely).
* *each* of these entries would hold a map of 36358
   records. getsizeof(d<len=36358>) = 3146016 (3MB), 68 times = 213MB.
* finally each record entry is also a {(cr, uid): value}, here the
  dicts have a single entry which makes them 280B, and their key is a
  2-tuple "worth" 72B, or 352B/record/field, or 352 * 36358 * 68 ~
  870MB[1].

For a total of ~1GB, which is roughly the issue we can observe.

Future possibilities: extract the cache-clearing iterator to be more generic 
and available on BaseModel directly? Or even make the default iterator 
batched & cache-clearing?

[0] note that sys.getsizeof only provides the size of the object it's
    called on, it is not recursive

[1] slightly more in actuality as there's some variation between the
    leaves depending on the field type e.g. M2O values are a 1-tuple
    adding 60B, ...

Fixes #22475
2018-02-19 13:46:26 +01:00
Subodh Dahal 668a090df3 [CLA] signature for SubodhDahal
Closes #22970
2018-02-19 13:42:03 +01:00
Olivier Sarrat d504027bfa [CLA] signature for osarrat
Closes #23113
2018-02-19 13:39:50 +01:00
Xavier Morel f1143b4073 [FIX] doc: tokenization of nested generics in JS docstrings
With more than 1 level of generic type, the "closure" of generic
parameters would get tokenized by python as a single right shift (>>)
rather than two gt (>, >) leading to our own tokenizing pass getting
lost and blowing up.

Fix by explicitly recognizing and splitting (>>) into (>, >). We could
consider writing the entire tokenizer ourselves instead of
post-processing Python's but given the entire post-processing function
is currently shorter than just Pythons' tokenizer's regexes...

Anyway issue found by vsc while trying to write better docstrings.
2018-02-19 13:22:58 +01:00
Goffin Simon 5c1f025a42 [FIX] sale_timesheet: Field Invoicing Policy in Product Variants not saved correctly
When a product variant from Catalog > Product variant was created
with invoice policy = 'delivery', it was set as 'order'.

opw:815112
2018-02-19 10:24:36 +01:00
David Arnold 59202d5e8c [FIX] bus: set timeout to gracefully recover
Before this in the event of a network failure that lasts longer than the respective return cycle of the deferred call,
this deferred will keep in purgatory forever (until reload of the client).
This is not problematic in the normal use case, but working with offline modules, such as POS or similar making use of the
long polling concept for synchronization purposes, this generates toxic behavior.
Simply: The client state never recovers on it's own from the network failure

(PR #21653)
2018-02-19 09:59:01 +01:00
Odoo Translation Bot 0be75775de [I18N] Update translation terms from Transifex 2018-02-18 04:28:35 +01:00
Joren Van Onder f76cc095b8 [FIX] point_of_sale: fix the behavior of default fiscal positions
Issue 1) and 3) in 73f7567627 still
occured in 11.0. It seems this was not fully forward-ported, most
likely due to conflicts caused by
ac89783d2f.

opw-782855
2018-02-16 13:48:59 -08:00
Aaron Bohy ff019aa52f [FIX] web: BasicModel: onchange on X2M: handle command 6
Before this rev., when an onchange returned a command 6 for an
x2many field, it was completely ignored by the BasicModel.
2018-02-16 14:28:50 +01:00
Aaron Bohy cf03101447 [FIX] web: BasicModel: fetch nested x2manys after onchange
When onchange RPCs return a command 4 (LINK TO), the res_id of the
record to link is given, and the BasicModel has to read the fields
in the view for that record. When one of those fields is an x2many
(for instance, displayed with widget many2many_tags), the
subrecords in the relation must be read as well (at least their
display_name).

Before this rev., this last part wasn't done by the BasicModel, and
as a consequence, the many2many_tags widget was always empty, even
though there were records in the relation.

Same thing applied to reference fields, but this is way more
uncommon.

This rev. ensures that x2manys and reference fields are correctly
fetched in this scenario.
2018-02-16 14:28:50 +01:00
Christophe Simonis 0017902733 [MERGE] forward port branch saas-16 up to 675a876347 2018-02-16 13:58:16 +01:00
Christophe Simonis 675a876347 [MERGE] forward port branch saas-15 up to 3a25ff6ccd 2018-02-16 13:57:38 +01:00
Christophe Simonis 3a25ff6ccd [MERGE] forward port branch saas-14 up to 67cc7a7c26 2018-02-16 13:57:03 +01:00
Christophe Simonis 67cc7a7c26 [MERGE] forward port branch 10.0 up to dce265e8fe 2018-02-16 13:25:38 +01:00
xmo-odoo dce265e8fe [FIX] stock_account: typos causing errors
OPW-816769
2018-02-16 13:22:12 +01:00
xmo-odoo 06b565e942 [FIX] stock_account: typos causing errors
OPW-816769
2018-02-16 12:49:29 +01:00
Olivier Colson a42ee08676 [FIX] stock_account: use correct rounding for anglosaxon accounting's price difference line generation
These data are expressed in invoice currency, they must be rounded accordingly.
2018-02-16 12:41:48 +01:00
Alexandre Kühn b09f0c99be [FIX] web: discard new record with empty required field
Before this commit, there is an issue with one2many lists with records that
have been created on 'default_get': if the record has a required field that
is empty, when the user clicks on this empty required field and then somewhere
else, the record is removed from the list.

The cause of this bug is that these records have invalid field changes, here
the required field that is empty. As a consequence, it checks whether the
record is "new", and if so, removes it visually from the editable list.
(Note: a record is "new" when it is not stored in DB).

This behaviour is expected when discarding records created from "Add an item".
However, that is not intended for records that have been created as default
items of the list. These records are still considered as "new"  items, because
they are not stored in DB, but they should stay in the list on discard.

This commit solves the issue by making an additional check before assuming
that the record for which we discard changes comes from "Add an item":
if the record in the list has been created before user interacts on the list
(in other words, the record has been added in the list when the user accesses
it), then we should not remove the record from the list, even though the record
has some invalid fields from the savepoint (e.g. empty required).

opw-806650
2018-02-16 11:17:36 +01:00
David Arnold fcaf459a89 [FIX] account: aged partner report in multi-company.
Was PR #23074. Courtesy of David Arnold
2018-02-16 10:03:30 +01:00
Joren Van Onder e5c6c5db42 [FIX] stock_account: correct forward-port 251b2fdc
5ca0ef97 was forward-ported from 9.0. In 10.0 the function signature
of product.uom's _compute_price has changed. In 10.0 it uses the new
API and it no longer takes a to_uom_id keyword argument.

opw-816738
2018-02-15 15:42:31 -08:00
Romain Derie 4f418c26d5 [FIX] website: sitemap.xml incorrect domain
Before this commit, the domain use to retrieve pages in enumerate_pages was
wrong (mainly used for sitemap.xml). It would only show website.page that:
1. are published
2. are indexed
3. have a publishing date (whatever date, future or past).
Last point was incorrect

Now, we correctly retrieve pages that:
1. are published
2. are indexed
3. have no publishing date or a publishing date in the past
2018-02-15 23:13:50 +01:00
Christophe Simonis ac7abc9879 [MERGE] forward port branch saas-16 up to 7e42a21ee2 2018-02-15 19:40:21 +01:00
Christophe Simonis 7e42a21ee2 [MERGE] forward port branch saas-15 up to d952e3678b 2018-02-15 19:36:09 +01:00
Christophe Simonis d952e3678b [MERGE] forward port branch saas-14 up to 1677d618f0 2018-02-15 19:32:28 +01:00
Christophe Simonis 1677d618f0 [MERGE] forward port branch 10.0 up to 6cedc90f69 2018-02-15 19:31:24 +01:00
Christophe Simonis 6cedc90f69 [FIX] stock_account: method expect a record, not an id
opw-816729
2018-02-15 19:26:33 +01:00
Christophe Simonis c5899612ef [MERGE] forward port branch 10.0 up to 251b2fdc54 2018-02-15 18:43:15 +01:00
Mohammed Shekha e93a5cec48 [FIX] web: archive records in a new Kanban column
Create a new column in Project, add a record and then hit 'Archive Records' : a
traceback occurs.

When creating the new column, the `groupedBy` attribute on the datapoint is set
according to the parent list datapoint, which makes no sense as the records are
not grouped inside the column.

The mentioned attribute is now removed as the records cannot be grouped inside
the column.
2018-02-15 17:26:48 +01:00
Jeremy Kersten 665496fc5c [FIX] website_forum: fix 'submit a link' feature
The pooling of the title was wrong since P3 refactoring.
2018-02-15 16:01:45 +01:00
Goffin Simon 1550c27b84 [FIX] mrp_repair: Only sale taxes must be available on a repair order
Like for the SO, only the taxes of type_tax_use = 'sale' must be displayed
on repair order.

opw:815028
2018-02-15 15:00:15 +01:00
Nicolas Lempereur 4e061d8c51 [REV] crm: allow a user assigned to activity to see lead
This reverts commit ab65a02f5a.

Before that commit "Sales / User: Own Documents Only" had access to
self-assigned or without salesperson assigned leads.

With the change, user of this group were meant to also have access to
leads with an activity to which they were assigned to.

But:

- this is a different behavior from activities on other models.

- there is a technical disability that in some case prevent to have
  fully functionning access rules if based on one2many with
  auto_join=True (we will try to fix this in master).

opw-816246
closes #23085
2018-02-15 13:38:40 +01:00
Lucas Perais (lpe) 6899bb829a [FIX] point_of_sale: http fetch img require right headers
The pos must be in http to talk to the posbox
The problem here is that imgs can sometime be fetch in https depending on the server's configuration

Before this commit, when converting imgs to base64, a "Tainted canvas" traceback was thrown by the browser
due to difference in domain that http VS https make

After this commit, we explicitly allow cross origin when fetching the image
while requiring the server to send the right headers

OPW 805860
2018-02-15 13:22:39 +01:00
Christophe Simonis 251b2fdc54 [MERGE] forward port branch 9.0 up to 840c3be7b5 2018-02-15 12:56:01 +01:00
Florent de Labarre 9a67c8b946 [FIX] stock: UserError message improvement
To know the product still having some active reordering rules.
Closes #22615
opw:813476
2018-02-15 11:46:19 +01:00
Lucas Perais (lpe) c1276c154e [FIX] point_of_sale: flattening only group of taxes when creating amls
Revision 89c63096cb fixed the creation
of the taxes applied to account move lines when validating a pos session

The fix though overlooked two things:
- protection against recursivity
(nothing prevents a group of taxes to have a grand-parent as one of its children)
- the fact that when converting a group of taxes into a regular computed one,
the field children_ids is never reset

Those two caveats provoked a "max recursivity error" in python within the right conditions

This commit protects the recursive process from the two issues, and there is no traceback

OPW 816163
2018-02-15 11:21:21 +01:00
Olivier Dony f4bc3acdd5 [FIX] mail: correct errors in b64 images handling
Rev 666b594842 introduced an autodetection
mechanism for transforming base64 embedded images inside emails into
attachment with a Content-ID URL.

The patch suffered from several issues:

- the base64 detection regex failed to detect base64 data that is folded
  over multiple lines - which happens to be the default in many Python
  versions when a binary field is read, or when using the base64 codec
  to encode a string.
  (Those cases where left untouched and the image was therefore missing)
- there was a logic error in the code when the same image was present
  multiple times, leading to an exception (`name` variable was
  referenced before being assigned)

This patch addresses both issues.

Fixes OPW-815073
2018-02-15 11:12:28 +01:00
Lucas Perais (lpe) 840c3be7b5 [FIX] point_of_sale: display python except message on partner creation
Having base_vat installed (but is potentially more general than this)

In the pos frontend, try to save a partner with an incorrect VAT

Before this commit, the generic and cryptic message "your internet is probably down" was displayed to the user
when a python exception occured

After this commit, we display the exception's message

OPW 807656
2018-02-15 10:38:03 +01:00
Olivier Dony 1605086943 [FIX] reqs.txt: bump up recommended Pillow version
We should normally stick as close as possible to the version we depend
on in the official DEB packages. This in turn depends on the version of
Debian stable at the time of release - for 9.0 that would be Debian 8
(jessie) and thus Pillow 2.6.1.

However Pillow versions before 3.1.1 suffer from a few issues that could
lead to crashes of Odoo workers. The bugfixes have been backported in
the DEB packages for Pillow, so users of Debian/Ubuntu LTS versions
won't be affected if they are keeing their systems updated.

However it's worth an exception to our rule for pip users.

FWD-PORTS: skip
2018-02-14 19:30:16 +01:00
Olivier Dony 962af4b780 [FIX] mail: make List-Id header RFC2919 compliant
Fixes the header initially introduced in
f62f58174b

See also https://tools.ietf.org/html/rfc2919#section-3

Fixes #18408
2018-02-14 19:15:02 +01:00
Christophe Simonis 259686ba78 [FIX] account_voucher: avoid double xml attribute definition 2018-02-14 19:00:22 +01:00
Christophe Simonis 72508cc241 [MERGE] forward port branch saas-16 up to 7792755946 2018-02-14 18:26:57 +01:00
Jeremy Kersten 2d0bcce58c [FIX] website_forum: allow to submit link
Fix/Simplify previous regex that was wrong (eg: http:// instead of http:\/\/)
2018-02-14 17:20:55 +01:00
Christophe Simonis 7792755946 [MERGE] forward port branch saas-15 up to d24bdbde81 2018-02-14 17:18:59 +01:00
RomainLibert b4bda28f0d [FIX] resource: _get_leave_intervals
We were using start_datetime instead of end_datetime. Which resulted
into wring results if we passed in datetimes with different date parts.
2018-02-14 16:53:00 +01:00
Christophe Simonis d24bdbde81 [MERGE] forward port branch saas-14 up to 9d0de61114 2018-02-14 16:34:13 +01:00
Christophe Simonis 9d0de61114 [MERGE] forward port branch 10.0 up to 73c2ac451a 2018-02-14 16:04:23 +01:00
Christophe Simonis 73c2ac451a [MERGE] forward port branch 9.0 up to b7b82f1267 2018-02-14 15:32:37 +01:00