Commit Graph
111084 Commits
Author SHA1 Message Date
Christophe Simonis 89819c6f42 [MERGE] forward port branch saas-14 up to 1f74b878f4 2018-05-07 12:21:05 +02:00
Christophe Simonis 1f74b878f4 [MERGE] forward port branch 10.0 up to 0aeb92ccbc 2018-05-07 11:54:15 +02:00
Christophe Simonis 0aeb92ccbc [MERGE] forward port branch 9.0 up to 4e5119c6e5 2018-05-07 11:47:44 +02:00
xmo-odoo 4e5119c6e5 [IMP] warn when using logrotate in multiprocess
The built-in log rotation is *very* unreliable in a multiprocess
context, which can lead to significant data loss (up to hours of log
missing) right after rotation[0][1].

Technically, according to the cookbook even filehandler does not
support multiprocess logging[2].

Either way, we should at the very least warn that logrotate is a Bad
Idea in multi-workers scenario. Ideally we'd just fall back on regular
file/stream logging but that likely could & would break existing
deployments, so maybe implement that for master instead?

Alternatively: implement it properly in multi-worker scenario with
only the "root" process actually logging to whatever output was set
up, and all workers sending stuff to log to it via a queue or network
socket or w/e.

[0]
https://stackoverflow.com/questions/34186774/why-doesnt-timedrotatingfilehandler-work-properly-and-how-to-solve-this-issuer
[1] https://github.com/odoo/odoo/issues/16566
[2] https://docs.python.org/3/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes
2018-05-07 11:24:06 +02:00
Christophe Simonis a10240c019 [MERGE] forward port branch 9.0 up to d13ce05c96 2018-05-07 11:02:00 +02:00
Odoo Translation Bot 370ed2b66f [I18N] Update translation terms from Transifex 2018-05-06 00:26:43 +02:00
Alexandre KühnandNick Booker c3ce712359 [FIX] web: correctly display filename when uploading a file
Before this commit, we had the following issue with binary widget in a form:

Suppose we have a binary field with filename attribute set. When uploading a
new file 'temp.txt' with content 'Cg==', the displayed value is 'Cg=='. When
the changes are saved, the displayed value becomes 'temp.txt'.

It should always display 'temp.txt', which is what is fixed by this commit.

In addition to fixing this issue, we describe what is the expected displayed
value of a binary field. This is based on whether the attribute filename is
provided, and whether the record is in edit or read-only mode.

Fixes #21630
Closes #24275

Co-authored-by: Nick Booker <nick.booker@opusvl.com>
2018-05-04 17:10:29 +02:00
Olivier Colson d13ce05c96 [FIX] account: use company currency in _compute_matched_percentage in case no currency is set on account.move
When a move or move line is supposed to use the company currency, its currency_id field is empty. _compute_matched_percentage did not take this into account, causing the rounding method to sometimes be called with a precision equal to False, resulting in erronous and weird behavior (0 was considered different from 0, causing a division by zero in the following condition).
2018-05-04 16:43:41 +02:00
Arnold Moyaux aab2ceefec [FIX] stock: prevent to create the reception route over and over when deleted once
When the reception route of a warehouse company is deleted by the user
e.g. My company, Chicago Receipt in 1 step is deleted,
and then changing the given warehouse `Incoming Shipments`
multiple times
e.g. from `one_step` to `two_steps` multiple time,
the reception route is created again and again and again.

This is because the reception route which is created for the
warehouse is not being assigned to the warehouse
as the `reception_route_id` once newly created.

_update_routes should work the same way than _create_routes,
it should return new value to write on the warehouse.

based on preliminary by Denis Ledoux

opw-1836544
2018-05-04 14:20:37 +02:00
Christophe Simonis 333a58e4ef [MERGE] forward port branch saas-14 up to 4e90a676da 2018-05-04 14:19:53 +02:00
Christophe Simonis 4e90a676da [MERGE] forward port branch 10.0 up to 4b7f4f32ea 2018-05-04 13:19:12 +02:00
Romain Derie b5516d400e [FIX] website_sale_comparison: use variant id and not product id
Before this commit, the compare button from the customized view "Alternative
Products" would create the URL by joining `alternative_product_ids` which are
ids from product.template.
But the route /shop/compare is supposed to receive variants (product.product)
IDs.
Thus, it would try to search given product.template IDs in product.product
records.
It would then show incorrect items or no items at all if the ID does not exist.

Now, we create the URL with the first variant (product.product) of the
product.template.
Obviously, the first product.product is arbitrary but we can't retrieve all the
variants ids, it would most of the time returns too many items.

opw-1840321
2018-05-04 12:58:20 +02:00
Christophe Simonis 4b7f4f32ea [MERGE] forward port branch 9.0 up to f12daec1a1 2018-05-03 16:25:17 +02:00
Lucas Perais (lpe) f49a6b6ebe [FIX] website_slides: avoid double slash in slide url 2018-05-03 13:52:45 +02:00
Olivier Dony 78ce64a6a7 [FIX] account: do not block reconciliation on different partners
This constraint was added during the Great Accounting Reform of v9, in
an attempt to help users avoid reconciliation mistakes.

It turns out that such mistakes are difficult to make in normal
situations, since the system only offers matching entries to reconcile,
so the constraint is largely redundant.

On the other hand, it does block legit cases of reconciliation,
such as those where a large number of lines with different partners are
reconciled together. This often happens when reversing a Journal Entry
that encompasses multiple customers, such as a POS closing entry, or a
manual entry.

To make the system more flexible, let's consider that when a manual
reconciliation breaks the "single partner" rule explicitly, it's for a
good reason, so we should allow it.

OPW: 1840437

Backport of 8e73023f68
2018-05-03 12:17:55 +02:00
Goffin Simon 7353405aa4 [FIX] stock: Scheduled date purchase order wrong
When running the scheduler for a reordering rule, the delivery lead time
of the seller was not taken into account.

opw:1837550
2018-05-03 10:29:14 +02:00
Nicolas Lempereur f12daec1a1 [FIX] web: don't change page before saving
When we edit a list view and change page before the change has been
savec, the saving and page changing will be done concurrently thus
possibly causing an error if the page is changed before the saved is
finished: the save will try to modify the page that is no more
displayed.

In this change, the list view editable wait for the saving to be
finished before reloading its content.

note: for 9.0 up to saas-15

opw-1839149
closes #24471
2018-05-03 09:11:44 +02:00
Christophe Simonis 810603f4ef [MERGE] forward port branch saas-14 up to 55ce6aff10 2018-05-02 14:49:58 +02:00
Christophe Simonis 55ce6aff10 [MERGE] forward port branch 10.0 up to 79bbd1dcb8 2018-05-02 13:52:12 +02:00
Nicolas Martinelli 79bbd1dcb8 [FIX] product: name search not ilike
- Create a product named 'toto'
- Perform a call to `name_search`:
  `self.env['product.product'].name_search('pouet', [], 'not ilike')`

Product 'toto' doesn't show up in the result list.

The domain should take into account that `default_code` can be `False`.

Note: the bug also occurs if the product is called 'trululu'.

opw-1837957
2018-05-02 12:58:52 +02:00
Christophe Simonis a33362bb51 [MERGE] forward port branch 9.0 up to 532b11ce41 2018-05-02 11:01:38 +02:00
Lucas Perais (lpe) 208a400b06 [FIX] website_slides: avoid mixed content iframe when computing iframe src
Have a nginx set up with HTTPS (and the web.base.url too, obviously)
HAve a multilang website
Call a slide with the https domain with the non-default lang in the path of the resource
[https://domain/fr_FR/slide....]

Before this commit, when the iframe src is requested for by the browser
the python will transform the url of the iframe by injecting /fr_FR/

When the request for the *content* of the iframe is actually fetched by the browser, there is a mixed content
(though in the SAAS case and through cloudFlare for some reason)

After this commit, since we explicitly form the iframe src with lang, there is no error of mixed content

OPW 1839308
closes #24445
2018-05-02 10:03:22 +02:00
Lucas Perais (lpe) 472c5a4f9f [FIX] web_editor: disable button when html field loading
Commit bed33e1ca2 forgot to include the case
where the html field is in a modal

This commit accounts for that case

closes #24500
2018-05-02 09:58:04 +02:00
Nikunj Ladava 95a90689aa [FIX] l10n_fr{certification,_pos_cert}: Set server actions' 'state' to 'code'
Since these server actions are triggering python code, their 'state' field must explicitely be set to 'code'.
Currently it is taking default value for 'state' field which is, since saas-15, 'object_write' and thus not working as intended.

Was PR #22706
Was task: 1813998
2018-05-02 09:54:58 +02:00
Odoo Translation Bot 532b11ce41 [I18N] Update translation terms from Transifex 2018-05-01 02:39:26 +02:00
Odoo Translation Bot 5ff3c03410 [I18N] Update translation terms from Transifex 2018-04-29 00:28:03 +02:00
Nicolas Lempereur 416d07f0bb [FIX] account_check_printing: multi payment has amount in words
In the wizard for payment several invoices with one payment, there was a
error when making the previous fix: 29c6c06de7.

The patch still worked because of a particularity of readonly and
related on account.payment but the check_amount_in_words would possibly
not be set when it should have.

opw-1839720
closes #24476
2018-04-27 15:11:24 +02:00
qsm-odoo ce6f8632cc [FIX] web_editor: update summernote copy-paste feature
The copy-paste feature of summernote was messy and led most of the time
to breaking the template you were trying to edit. While it is difficult
to solve as it mostly comes from the lib itself and that the lib is in
a complicated state as Odoo had to overridde part of its internal code
for its own purposes, this commit hopes to solve the problem by updating
only the copy-paste feature to the latest summernote version.

Of course, as summernote changed a lot meanwhile, it was not possible to
just take the up-to-date summernote file. This commit refactores the
up-to-date summernote clipboard code so that it fits the old summernote
version Odoo is using.

Note: the main problems occurred while using Windows/Mac and not Linux.

opw-1837818
2018-04-27 12:28:57 +02:00
Olivier Colson edc955d28d [FIX] base: currency: add missing dependance to compute function of 'rate' field 2018-04-27 10:47:52 +02:00
Nicolas Martinelli 517fb99926 [FIX] mail: emoji substitution
- Create a message with 100k+ smileys
- Send it to a colleague you hate
- His (and your) web browser starts eating up all the memory
- Go cry to the technical guy because you can't use Odoo anymore.

On some browsers, like Chrome, the image rendering consumes a lot of
memory up to the point it makes it unusable.

opw-1831610
2018-04-27 08:08:36 +02:00
Nicolas Lempereur b6a1389b8c [FIX] web_editor: firefox remember CTRL+A selection
In firefox the range when doing CTRL+A is the first level content of the
contenteditable element, but this was not taken into account when
"remembering" the range after clicking on buttons or features of the
editor.

In chrome the selection begin with the first displayed element (so it
may not be a direct child of the editable and is taken into account in
the code).

opw-1824017
closes #24424
2018-04-26 17:06:05 +02:00
Goffin Simon feba353c65 [FIX] purchase: Wrong Fiscal position in multicompany
Steps to reproduce:

 -Create company A
 -Create company B
 -Admin user with both companies but currently in company B
 -Create Demo user only with company B
 -Create fiscal position A to company A
 -Create fiscal position B to company B
 -Create vendor with fiscal position A with company A and the same vendor with fiscal position B in company B
 -Create product and add the vendor created before
 -Set like Create a draft purchase order
 -Logging with Demo user
 -Create sale order with one sale order line with route make to order
 -Validate sale order

Bug:

 The purchase order created by sale order had the fiscal position company A.

Backport of this commit: 5bb6517072
Closes #23561
opw:1825098
2018-04-26 16:29:34 +02:00
Nicolas Martinelli bcd4c90a71 [FIX] web: get_file and CPU time exceeded
- Create a binary field which takes some time for computation. For
example:
```
ding_dong = fields.Binary(compute='_compute_ding_dong')

def _compute_ding_dong(self):
    if not self.env.context.get('bin_size'):
        while True:
            3*3
    for x in self:
        x.ding_dong = x.product_id.image_medium
```
- Run the server with a limited CPU time, for example:
  `--workers=2 --limit-time-cpu=10`
- Download the file

A JS traceback occurs, without any information about the real crash.

The error management is simply not working: `JSON.parse` is called on a
string which is not JSON-parseable.

opw-1838832
2018-04-26 15:14:47 +02:00
Goffin Simon 409970c188 [FIX] payment: Error to get the default country for a partner
When there was no company_id in the context and the company with id=1
didn't exist it generated an error.

opw:1838932
2018-04-26 15:14:26 +02:00
Nicolas Martinelli da27836f45 [FIX] account: unreconcile payment
- Company currency in EUR
- Create 2 rates for USD:
  1.0 on 2018-01-01
  0.5 on 2018-02-01
- Create an invoice on 2018-01-02 of 111 USD
- Register a payment on 2018-02-02 of 111 USD
- Unreconcile the payment

An error occurs: 'You are trying to reconcile some entries that are
already reconciled!'

In this specific case where the rate decreases, the exchange rate entry
is reconciled with the payment, so we need to keep the payment entries.
2018-04-26 08:37:33 +02:00
Christophe Simonis cae950e826 [MERGE] forward port branch saas-14 up to 0c40ba6c8b
Also include a fixup in purchase.pot of previous forward-port
2018-04-23 17:36:56 +02:00
Christophe Simonis 0c40ba6c8b [MERGE] forward port branch 10.0 up to 76c17ab3f5 2018-04-23 17:06:55 +02:00
Toufik Benjaa 76c17ab3f5 [FIX] stripe: Fix float representation error
- Stripe needs to have the amount in integer, so we have to multiply by 100 the amount.
  Which sometimes create float representation errors and remove/add ~1 cent on some transactions (i.e 72.60€)
2018-04-23 16:25:49 +02:00
Nicolas Lempereur 29c6c06de7 [FIX] account_check_writing: write multi payment
When you pay multiple invoice with one payment, you need the write
permission on account.journal, this had been solved when registering a
payment for one invoice in 91ca84644

In this commit, the same logic is applied on account.register.payments

opw-1835888
opw-1834343
closes #24369
2018-04-23 16:23:19 +02:00
Goffin Simon e4731d0327 [FIX] base: Traceback when creating a partner with an ascii character
Steps to reproduce:

- Go to the Contact
- Create a new contact with an email address with an ascii character

Bug:

A traceback was raised.

Closes #19852
opw:1837714
2018-04-23 16:18:03 +02:00
Christophe Simonis 6b94555af0 [MERGE] forward port branch saas-14 up to dd18811e6c 2018-04-23 16:00:32 +02:00
Nicolas Lempereur dd18811e6c [FIX] purchase: use PO company for PO notification
In 41ffb503 the "Invoice Notification Email"  and "Sale Order
Notification Email" were modified so the company used was the one of
the object if available or the sender otherwise.

This had not been done for the "Purchase Order Notification Email" which
was added in saas-14 which might be unexpected.

Also as in 7a03f9ce9 specify the company when displaying the logo.

opw-1838112
closes #24344
2018-04-23 15:31:52 +02:00
Christophe Simonis 0bf642cb27 [MERGE] forward port branch saas-14 up to 2bc3fd89f2 2018-04-23 14:47:23 +02:00
Christophe Simonis 2bc3fd89f2 [MERGE] forward port branch 10.0 up to 2d12ae3202 2018-04-23 14:39:41 +02:00
Christophe Simonis 2d12ae3202 [MERGE] forward port branch 9.0 up to c9e7433c23 2018-04-23 14:07:12 +02:00
goliveirab 6157750a66 [FIX] l10n_mx: account 802.02
Changing account nature D > A, 802.02 Contra Cuenta CUFIN

Closes #24331
2018-04-23 13:53:24 +02:00
qsm-odoo c9e7433c23 [FIX] web_editor: prevent crash on outside-iframe click
The editor is performing text selection check when clicking on the
window. However, when clicking outside the iframe an editor is running
in, a crash may occur as the editor was trying to check a range outside
of its environment (the iframe).

Related to opw-1837818
2018-04-23 12:56:34 +02:00
Stefan Rijnhart 04b0d761e4 [FIX] core: Validate custom views without an XML ID
Regression of fc91feda30

Closes #23646
Closes #23626
2018-04-23 10:27:40 +02:00
Christophe Simonis 3bee6ebb0a [FIX] core: effectively warn on invalid custom views
Since new-api migration of `ir.ui.view`, the method that check views
raises exceptions instead of returning a boolean. Show them as warning.

Related to #14521
2018-04-23 10:12:16 +02:00
Goffin Simon 4ac10f20c4 [FIX] account, purchase, sale: Wrong company displayed in the footer
Steps to reproduce the bug:

- Set a multi company environment with two company A and B
- Set user admin in company A
- Set user demo in company B
- Create a PO with user demo
- Send a RFQ

Bug:

The company of the admin user was displayed in the footer of the email.

The function _notify called on res.parter model is called in sudo by
the function _notify on mail.message model.

The function render_template on mail.template model uses the user defined
on self.env to render the template. So the user admin was always used.

opw:1835647
2018-04-23 09:33:22 +02:00