Commit Graph
123205 Commits
Author SHA1 Message Date
Romain Derie 7c045dda0a [FIX] test_website: remove race condition and restore test
Commit fcb972d skipped a test on saas-12.2 after forward port as it was not
working on that version.
This commit restore the test and fix it.

It was actually a race condition on the save step on edit mode.
Something similar was done already for another test, see 74a98ea.

closes odoo/odoo#31465
2019-02-27 14:42:47 +00:00
Nicolas Martinelli c8834073a7 [FIX] sale: blocking message
When a blocking message is configured on a product, we force the removal
of the `product_id` on the SO line. This causes a problem in method
`_get_display_price`. When the pricelist is configured with
`discount_policy != with_discount`, `get_product_price_rule` is called
with an empty `self.product_id`.

We move the `product_id` removal at the end of the onchange.

opw-1934386

closes odoo/odoo#31456
2019-02-27 12:10:22 +00:00
Martin Geubelle e39bcae818 [FIX] web: avoid crash when clicking on colored m2m in list
With the BS4 update, a traceback occured when clicking on a m2m tag using colors
in a list view.

When using colors on m2m tags, the badge was wrapped inside a `dropdown-toggle`.
However, there is no `dropdown-menu` by default (it is only rendered in FormFieldMany2ManyTags
when clicking on the `.dropdown-toggle`, hence the traceback.

The `dropdown-toggle` class is now only set if necessary.

Task 1925313

closes odoo/odoo#31445
2019-02-27 11:39:52 +00:00
Nicolas Martinelli 70c8fd7f75 [FIX] sale_management: optional product
- Activate 'Multiple prices per product'
- Create a Product A, and add an entry in the 'Pricing' section of the
  product form
- Create a SO, a product, and add A in the 'Optional Products' tab.
- Click on 'Add to order lines'

A crash occurs at currency conversion.

When getting the conversion rate, the company is empty in method
`_get_conversion_rate`. This is because the company is a stored related
field, which is computed after creation. However, the method
`_prepare_add_missing_fields` is called before creation. This method
calls several onchange methods, one of them computing a price
conversion.

We explicitly add the company when creating the SO line.

opw-1939106

closes odoo/odoo#31455
2019-02-27 09:39:32 +00:00
snd 2181a9fb96 [FIX] maintenance: tooltip showing wrong informations
opw-1943556

closes odoo/odoo#31439
2019-02-27 08:38:11 +00:00
Martin Trigaux 339bf145ce [FIX] base: allow languages with iso code of size 6
Some languages like kabyle ou filipino have the iso code kab_DZ and fil_PH
It was not possible to import it.

closes odoo/odoo#31332
2019-02-21 15:51:03 +00:00
Nicolas Martinelli 22a935afd3 [FIX] mrp: clean variant
- Create a product with variants
- Create a BOM for this product
- Add a component, specify a variant in 'Apply on Variant'
- Change the product of the BOM

The 'Apply on Variant' fields remain filled, although it doesn't apply
anymore to the new product.

opw-1943918

closes odoo/odoo#31435
2019-02-26 14:34:16 +00:00
Nicolas Martinelli 489222e373 [FIX] mrp: domain on variant
Make sure there is a product set before searching the attributes, otherwise
it crashes.
2019-02-26 14:34:16 +00:00
Nicolas Lempereur 05533ceda6 [FIX] mail: link mention if it is still working
In some special instance, a mention could get linked and the user would
not really be linked.

This is because of a difference between linking the mention and adding
the user as follower that required a space after the mention.

With this change:

- `[adding mention]@admin [backspace].`: was linked but not added as
   follower => now it is not linked either.
- `[adding mention]@admin [backspace][enter][adding mention]@admin `:
   the first @admin was linked => now the second is linked

Without the change, added test fails with:

 "should not contain a link in the message content"
 "should not have linked mention without space"

opw-1934946
closes #31433
2019-02-26 14:46:25 +00:00
Xavier Morel e36ad5b0b0 [FIX] core: handling of o2m record deletion in SSF
The SSF would properly mark its own records as deleted, but it would
not properly handle deletion requests coming from an onchange, and it
would not necessarily convert DELETE_ALL commands (5) into the proper
sequence of individual (2)s matching existing records.

closes odoo/odoo#31431
2019-02-26 13:18:57 +00:00
Lucas Perais (lpe) ca6d495ebf [FIX] portal: portal share default get
Before this commit, we used dict keys before they existed
And made the share button crash

After this commit, there is no crash

OPW 1943301

closes odoo/odoo#31427
2019-02-26 12:18:18 +00:00
Nicolas Lempereur 08b2d1f9ac [FIX] web: margin-top on top of report
The margin-top/margin-bottom on a address on the top of the report does
not work because:

- display flex on an address in wkhtmltopdf is not perfectly implemented
  and seems to remove vertical margin
- margin-top on the page first visible element is removed

To fix this issue, this code remove the display:flex on the address
widget and add an empty "visible" element at the start of pages.

opw-1925894
closes #31184
2019-02-18 10:46:41 +00:00
Lucas Perais (lpe) 6af6da5c59 [FIX] sale: mail notification pay now translatable
Before this commit, the template that was rendered when sending
an email to a customer to invite hime to pay online
was not translatable
This was because the override of the template did not have an xml_id

After this commit, it is translatable

OPW 1944258

closes odoo/odoo#31396
2019-02-25 09:18:49 +00:00
Julien (juc) Castiaux 01405ca1ab [FIX] account: currency of reconci. suggestion
When the currency used for a payment/internal transfert is not the same
as the company currency, the prices shown in the reconciliation
suggestions are computed using the company currency.

1) Enable multi-currency.
2) Setup two bank, one in USD, the other in EUR.
3) Leave the company currency to USD.
4) Create an invoice for a partner targeting the EUR bank and
   validate it.
5) Create a bank statement for the EUR bank amounting the **exact**
   value of the invoice for the **same** partner and reconcile it,
   this will create the payment behind the hood.
6) In the reconciliation the invoice appears as suggestion, if the
   currency symbol is correct, the amount is shown as USD.

opw-1937202

closes #30623

closes odoo/odoo#31290
2019-02-26 08:23:16 +00:00
Lucas Perais (lpe) 6530f1253d [FIX] web: list editable create then escape
Have an editable list that begins with a date/time field
create a line.
The first field is focused and the datetimepicker is popped up

Now, stroke ESC key

Before this commit, there was a traceback because the datetimepicker received an erroneous
BLUR/INPUT event

After this commit, there is no traceback as we detroy the widgets of the line
(including the datetimepicker) before removing the row from the DOM

OPW 1932409

closes odoo/odoo#31342
2019-02-26 07:07:09 +00:00
Nicolas Martinelli cf6fa5f0e5 [FIX] sale: salesperson
Fallback on the salesperson of the commercial partner if no salesperson
is set on the order partner.

opw-1909177

closes odoo/odoo#31341
2019-02-22 08:07:39 +00:00
Martin Trigaux 06d73eab62 [FIX] models: do not erase master version
For a translated field with a callable method (e.g. xml_translate), when
modifying the value of this field in another language than en_US, the master
version was lost.

Before this patch:

>>> record.arch = "<h1>Title</h1>"
>>> record.with_context(lang='fr_FR').arch = "<h1>Titre</h1>"
>>> record.with_context(lang='fr_FR').arch
"<h1>Titre</h1>"
>>> record.arch
"<h1>Titre</h1>"  # lost English version

After this patch:

>>> record.arch = "<h1>Title</h1>"
>>> record.with_context(lang='fr_FR').arch = "<h1>Titre</h1>"
>>> record.with_context(lang='fr_FR').arch
"<h1>Title</h1>"  # write had no effect
>>> record.arch
"<h1>Title</h1>"

When modifying a translated HTML field in English, a matching to detect the
difference and avoid losing the translations is done.
This is not supported for update in another language.
The main reason is the difficulty to detect changes in the architecture.

To update translations, the supported way is to go to the list of translations
and update them there.

Before this patch, the given value in another language was given to the SQL
query and made an update in database:
if single_lang or not (has_translation and field.translate is True)
-> True or not (True and False) -> True

If a field is callable, it should also be ignored, the same way than
translate=True fields

opw-1887162

closes odoo/odoo#31330
2019-02-21 15:13:51 +00:00
Nans Lefebvre c38a0d6768 [FIX] mail: allow to assign an activity to an user currently in another company
Let users A, B be in in companies C1 and C2,
such that A is currently in C1 and B in C2.
User A tries to assign to B an activity on record R belonging to C1.
It fails because at the time of the check B is not in the correct company,
even if B could handle the activity after switching company.

The _check_access_assignation was added in commit 96a223a5f0,
to avoid activities to be created for records that the target user can't read.
Previous use-case is a legitimate one where we want to bypass this restriction.
Note that the systray notification widget is not company dependent,
and there is no way to remove a notification on a record the user can't read.*

In case where the record is company dependent and on a different company,
we skip the record rules check.
It is assumed that the check would fail because or company-related record rules.
It will create some unwanted activities, but only the minimal number we can let
through while allowing for all legitimate flows.

*Better solution for master is to give the user some more explicit message
if reading the record, suggesting to switch company,
or to allow to dismiss the notification altogether.

opw 1933862

closes odoo/odoo#30810
2019-02-22 13:08:16 +00:00
Jorge Pinna Puissant 6b7bb096e1 [FIX] sale: transfer's transaction status in SO
Have a SO; accepted and signed; and the client choose to pay with wire
transfer.

Before this commit, the transfer's transaction is never updated to 'done'.
Even after the invoice is created and the payment is encoded and
reconciled. The client will continue to see the pending message.

Now, when the SO is confirmed, the transfer's transaction is set to 'done'.
The client will see the done message.

opw-1935516

closes odoo/odoo#31352
2019-02-22 10:41:31 +00:00
Yenthe666 cc0e654876 [FIX] doc: replace from_string methods to native datetime calls
closes odoo/odoo#31093
2019-02-25 15:14:09 +00:00
Nicolas Bayet aa5de574aa [IMP] doc: add email gateway documentation
Explain how to use addons/mail/static/scripts/odoo-mailgate.py through
an incoming mail server like Postfix or Exim.

closes odoo/odoo#31363
2019-02-22 12:43:19 +00:00
Lucas Perais (lpe) dd28160c28 [FIX] stock_account: search view for current valuation
Before this commit, it was impossible to search anything in the list view
when doing a Inventory Valuation > Current Inventory

After this commit, a few meaningful fields are searchable

OPW 1943676

closes odoo/odoo#31356
2019-02-22 10:45:12 +00:00
Odoo Translation Bot 917ad03026 [I18N] Update translation terms from Transifex 2019-02-24 01:37:50 +01:00
Jeremy Kersten 96dc825c8c [FIX] website: reset template
fix retro compatibilty

Old qweb template http_error_debug was wrong, but we never entry in the if.
Now that we fixed to enter in the if, we need to make retrocompatible code to
be able to display the QWebException from v9 with the old view from v8.

odoo.exceptions.QWebException
  vs
odoo.addons.base.models.qweb.QWebException

closes odoo/odoo#31383
2019-02-14 13:39:55 +00:00
Nathan de Pryck 9434ee850f [FIX] sale: Correct fiscal position access right
The issue happened when a user which does not have access to some fiscal
position try to print a sale order. In this case a traceback is generated.
In order to avoid the traceback and to be able to print the report
the access rights are bypass thanks to a sudo() in the report.

OPW-1943727

closes odoo/odoo#31357
2019-02-22 10:55:56 +00:00
Jorge Pinna Puissant a1e6a0f0c5 [FIX] account: price_unit report decimal precision
Before this commit, the unit price in the invoice's reports, had the
same decimal precision as the currency and not the one specified for the
unit prices.

Now, the reports shows the unit prices with their specific decimal
precision.

opw-1940406

closes odoo/odoo#31314
2019-02-21 08:35:09 +00:00
Aaron Bohy 7ffe3ce5c6 [FIX] web: kanban: rendering of async widgets
This rev. fixes 3 issues with async (field) widgets in the kanban
view.

From rev. 5faec34a, widget'$el doesn't exist before start. This
means that for async widgets, one can't interact with the widget's
$el right after calling appentTo. In KanbanRecord, this is exactly
what we did for both field widgets (<field name=.../>) and widgets
(<widget name=.../>).

Moreover, when the kanban view was updated (e.g. when the user
refined the search using the search view), and the rendering was
async (because of the presence of an async widget), the renderer
didn't wait at all for the widget to be ready before updating the
view. This caused flickering, mostly, but also a crash in
accounting with the JournalDashboardGraph widget (because
on_attach_callabck was called before the widget was ready). To
reproduce this particular issue, go to accounting, add a filter
that doesn't match any record and save it as favorite (default),
press F5 (no record is displayed), remove the filter.

opw-1925079
opw-1925479

Fixes #30087
Closes #31254

closes odoo/odoo#31327
2019-02-21 13:54:47 +00:00
Lucas Perais (lpe) 6fc08a88ae [FIX] web_unsplash: save image for res_model
Go on the website, create a new product from there
Click on the image to change it, select an unsplash image

Save your product.

Beforer this commit, the image wasn't saved because the qweb field image
did not know what to do with /unsplash/ urls

After this commit, the image is saved on the product (or any object...)

OPW 1936191

closes odoo/odoo#31328
2019-02-22 08:14:10 +00:00
Nicolas Martinelli 27f8bb8913 [FIX] stock: inventory on category
- Create a product category A
- Create a product category A1
- Add a product in A1
- Launch an inventory adjustment on A, and select 'Exhausted Products'

All products (even from other categories) are included.

Since there is no product found in the category `products_to_filter`
and `quant_products` are empty. Therefore, we fall back on
`[('id', 'not in', [])]`, which selects everything.

The root cause is that we don't include child categories. There is no
real point of doing so.

opw-1932192

closes odoo/odoo#31322
2019-02-21 10:41:45 +00:00
Christophe Simonis b2db72c9d1 [FIX] core: handle multiple m2o levels in Form
closes odoo/odoo#31335
2019-02-21 17:03:27 +00:00
Martin Trigaux cdc6b598e3 [ADD] base: Filipino language
As odoo.com is going to be translated in Filipino
Date format source: https://lh.2xlibre.net/locale/fil_PH/

closes odoo/odoo#31276
2019-02-21 13:36:00 +00:00
Hiral BhavsarandMohammed Shekha bb6aec1ac3 [FIX] web: several columns in line chart tooltips for large data
Currently tooltip goes out off the screen when the
graph view (in line mode) presents a large number
of groups.
The present commit splits the tooltip content in
three columns when the number of groups exceeds
20. This split is not done in mobile mode because
it is not an appropriate in that situation.

Co-authored-by: Mohammed Shekha <msh@openerp.com>

Related to Task: 1917958

closes odoo/odoo#30288
2019-02-21 13:03:22 +00:00
Hiral BhavsarandMohammed Shekha 4b652ebe8a [IMP] web: properly display min and max abs when less that 3 abs.
In graph line mode, min and max abs are
displayed beyond the screen when there are less
than 3 abs.
This is happening because nvd3 fixes their
text-anchor to 'middle'. The present commit fixes
correctly their text-anchors to start and end
respectively by using the '!important' rule (it
seems difficult to do otherwise).

Co-authored-by: Mohammed Shekha <msh@openerp.com>

Related to Task: 1917958
2019-02-21 13:01:26 +00:00
Jaykishan Solanki 2dd90370cd [FIX] stock: prevent crash if key does not exit in dict
Closes #31049

closes odoo/odoo#31323
2019-02-21 11:49:26 +00:00
Lucas Perais (lpe) 9fc2420ec6 [FIX] l10n_it_edi: cleaned context default_type
On the accounting dashboard, click on the button
"new invoice" on the customer journal.
Validate the invoice

Before this commit, it crashed because, as always
the key "default_type" was propagated all the way down
to the attachment creation

After this commit, we clean the context from that key
to avoid the problem

Note: There is no clean and safe method to clean
the context from keys only useful to `default_get`
in stable...

OPW 1943439

closes odoo/odoo#31319
2019-02-21 10:06:42 +00:00
Lucas Perais (lpe) 84143a34b3 [FIX] hr: tz on user required in view because of resource mixin
In the user preference, change the timezone of the user to blank (False value)
Save

Before this commit, a cryptic error was raised because the field tz in
resource.resource is required
Note that when writing on res.user, we write some fields (including tz)
on hr.employee, which is a resource.mixin, and therefore uses resource.resource

After this commit, we make the field required in the view

OPW 1934462

closes odoo/odoo#31312
2019-02-21 08:33:26 +00:00
keylor2906 faf8c41d80 [FIX] l10n_mx: Fix warnings related to wrong fields names on the creation of tax templates for the mexican coa.
closes odoo/odoo#31296
2019-02-20 20:45:51 +00:00
Arturo Flores 10db0a5052 [CLA] Update Vauxoo's CLA
closes odoo/odoo#31302
2019-02-21 04:03:24 +00:00
Hugo Adan f7fc5bc0d5 [FIX] account: Fix forward-port of ec25b9d
since the fix of the forward-port has missed checking the chart template
too
https://github.com/odoo/odoo/commit/2bba89c4ad5d393a15e02f0b7435ea7c63935bb0

Check the chart template is required because company could have a chart
template and any record at  ['account.move.line', 'account.invoice',
'account.payment', 'account.bank.statement'] models

closes odoo/odoo#31218
2019-02-18 20:18:56 +00:00
Romain Derie edce2fd6d0 [FIX] website: keep only specific views on _views_get recursive calls
Before this commit:
If a view A was doing a t-call on a view B and view B had view C as child.
And view A had view D as child.
And view D also t-call view B (that as mentionned above has view C as child).
And view D was inactive.

Then COWing C to set it as inactive would make `get_related_views()` on A to
return both generic active C and COW inactive C.

This rare case appeared for customize option that were enabled by default, like
wishlist, compare..

Disabling this customize option would show both the generic customize view and
the COW customize view.
Resulting in the customize toggle being shown twice, one enabled and one
disabled.

Detailed explanation:
1. `website_sale.products` would call `_views_get()` with `options=True` for its
   t-call node `website_sale.products_item`, returning the full view tree,
   including COW wishlist.
2. `website_sale.products` would then call `_views_get()` on its child views
   with `options=extension.active`.
   It is the case for `website_sale.products_list_view`, which also has a
   t-call node `website_sale.products_item`.
   It would then perform the same `views_get()` as in step 1. but with
   `options` set to the view active state, in this case False.
   At that point, the `_view_get_inherited_children` method would filter by
   active before filter_duplicate, leaving the generic view over the specific
   one as it should.

closes odoo/odoo#31286
2019-02-20 14:31:02 +00:00
Christophe Simonis f6540c26ff [FIX] stock: correctly correct report view 2019-02-20 18:59:46 +01:00
Christophe Simonis d98bf74579 [FIX] stock: correct report view
Oversight of previous forward-port
2019-02-20 18:31:04 +01:00
Christophe Simonis 7dcbd15278 [FIX] base_import_module: typo in view declaration 2019-02-20 18:25:52 +01:00
Christophe Simonis db1c7765cb [MERGE] forward port branch saas-11.3 up to 2c495502aa 2019-02-20 17:37:22 +01:00
Christophe Simonis 2c495502aa [FIX] hr_holidays: import used function
Oversight of previous forward-port
2019-02-20 13:58:03 +01:00
Christophe Simonis f1ff55bca1 [MERGE] forward port branch 11.0 up to de8cefcef4 2019-02-20 13:40:48 +01:00
Nicolas Martinelli 7151f98358 [FIX] base: _name_search of state
When creating a new customer, the selection list for the state is empty
unless the country is filled in.

This is an issue since users usually fill the address fields in the
sequential order: street, city, state, zip and then country. Since no
state proposal is displayed, users tend to create a new state.

Introduced in 5fcf891e07.

opw-1941579

closes odoo/odoo#31273
2019-02-20 10:41:09 +00:00
Pierre Masereel 7d24d77511 [FIX] sale_stock: display picking in portal
When a picking is linked to a sale order, it is not displayed anymore
ont the user portal.

This comes from a fix in rev: https://github.com/odoo/odoo/commit/7825d008279702b3a5017196aa0345a0e48810c9
that hides the shipping_adress div, which is the one targeted by the
xpath for shoing picking. To fix this behavior, we changed the xpath.

TASK-ID: 1939813

closes odoo/odoo#31267
2019-02-20 09:47:21 +00:00
Nicolas Lempereur d2b55ab607 [FIX] sale_quotation_builder: warn edit product description
On the quote builder, we have a description per product that is either:

- the description of the product on the quotation template
- the quote_description of the product

and if it is empty we can edit it on the quote builder.

But if we have several of them, we only see several empty editing blocks
without knowing which product it refers to: thus if we removed the line
it could have adverse effects by removing something not related.

With this change, there is an alert when editing that explain each
line description being.

opw-1943009
closes #31263
2019-02-20 07:53:13 +00:00
Nicolas Lempereur e8cb9c0e45 [FIX] base: better branding with view inheritance
To edit a view on the website, we use the branding mechanism.

This mechanism adds informations to node which can be edited about how
or where the change should be saved, for example:

```
  <template id="a">
    <div><b>hello</b></div>
  </template>
```

might be rendered to someone that can edit it:

  `<div data-oe-model="ir.ui.view" data-oe-id="5" data-oe-field="arch"
     data-oe-xpath="/div[1]"><b>hello</b></div>`

when something is changed: we will send the modified content, the view
id (eg. 5 for view `a`) and the xpath in this view of what is replaced.

If a view is overridden, there is mechanism to distribute the branding
to children, for example:

```
  <template id="b">
    <div>
      <b>hello</b>
    <div>
  </template>
  <template inherit_id="b">
    <div position="inside">
      <b>world</b>
    </div>
  </template>
```

The branding can't be on the parent div that will contain other content,
because the other content is in another template and should not be saved
in template `b`, so this would be rendered like this:

  `<div><b data-oe-model="ir.ui.view" data-oe-id="6" data-oe-field="arch"
    data-oe-xpath="/div[1]/b[1]">hello</b><b data-oe-model="ir.ui.view"
    data-oe-id="7" data-oe-field="arch" data-oe-xpath="/div[1]/b[1]"><b>
    world</b></div>`

This changeset fixes two issues:

- if we have a primary inheriting view: the xpath are wrong in the
  primary inheriting view part, they are computed on the view applied on
  its inherit_id; the part of the inherit_id view have the primary
  inheriting view ID instead of inherit_id view id.

- if we have `<div t-call="..."/>` in a view, the branding of view
  should be distributed to children and not affect t-call part: this was
  done for `<t t-call="..."/>` but not for `<anyothertag t-call/>`.

The added test failed on all assertions before the change:

- "test_branding_primary_inherit" would not distributed
- "test_call_no_branding" would distribute branding on `t-call`

opw-1937757
closes #31039
2019-02-20 12:05:05 +00:00