Commit Graph
141473 Commits
Author SHA1 Message Date
Odoo Translation Bot 34ae29e68b [I18N] Update translation terms from Transifex 2019-06-09 03:07:58 +02:00
Lucas Lefèvre 92d0419467 [FIX] hr_holidays: Display approve button when needed
This commit reverts commit 492764c

*Note for forward port*
This commit will conflict with 76ee0af. Keep this version.

TL;DR: the fix had unintended effects and the original problem has been
fixed by b5c2004 in the mean time.

Why the original commit?
------------------------
To know if the current user has the rights to approve/delete a leave,
two boolean fields are computed (respectively `can_approve`
and `can_reset`). Associated buttons are shown in the form view according to
the field values.
In the compute methods, the `check_approval_update(state)` method is called.
This method checks various conditions, including `ir.rules` by calling the ORM
method `self.check_access_rule('write')`. If one condition or one `ir.rule`
is not met, an Error is raised.

If the method raises, the user does not have the rights.
The exception is catched and the field `can_approve|reset` is set to False.

However, an unexpected behaviour happens when fields are re-computed
in the context of an onchange. In an onchange, `self.ids` is an empty list.
When checking ir.rules, the `_filter_access_rules()` method is used
to retrieve valid records in self by checking every record against ir.rules.
If some records are not in the valid set, they are considered invalid and an
exception is raised.
But because self.ids is empty, no record is actually checked and therefore
no record is valid.
=> in an onchange it always raises an AccessError and the users is considered
as not having the rights to approve nor refuse a leave as soon as an
onchange has been triggered. Thus associated buttons does not appear.

The original commit fixed the problem by preventing checking the rules
when in an onchange.

In the mean time, the root cause of the problem has been fixed by b5c2004.

Why revert?
-----------
While commit 492764c allowed HR users and Team leaders to approve
after an onchange, it had the unintended effect to
show the "Approve" and "Refuse" buttons to other users.
In summary:

- With commit 492764c: buttons are shown more than necessary
(which is confusing to users who don't actually the rights
to approve)

- Without: Thanks to b5c2004, the original problem no longer exists.
Users with access rights always see buttons. Users without never see
buttons.

closes odoo/odoo#33894

Signed-off-by: Romain Libert (rli) <rli@odoo.com>
2019-06-07 13:10:05 +00:00
Victor Feyens 9cfe599973 [FIX] event_sale_product_configurator: remove files brought back by conflict 2019-06-07 11:33:42 +00:00
Christophe Simonis a2582c4252 [MERGE] forward port branch 11.0 up to bdc62d8031 2019-06-07 13:00:07 +02:00
Christophe Simonis bdc62d8031 [FIX] test_lint: move custom pylint checkers to new module
Oversight of previous forward-port.
2019-06-07 12:08:29 +02:00
Christophe Simonis 9bf4766f3d [MERGE] forward port branch saas-15 up to 6c6e652673 2019-06-07 11:38:48 +02:00
Christophe Simonis 6c6e652673 [MERGE] forward port branch saas-14 up to 757846c591 2019-06-07 11:09:29 +02:00
Christophe Simonis 757846c591 [MERGE] forward port branch 10.0 up to 7746621b92 2019-06-07 11:08:13 +02:00
Nicolas Martinelliandjev-odoo b5a04fd29f [IMP] mail, website_mail, base: extra info on error messages
Display extra information on error messages:
- Access error based on ACLs: user, fields (if applies)
- Access error based on record rules: user, ids
- Missing error: model, operation, user, ids

closes odoo/odoo#33942

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>


Co-authored-by: jev-odoo <jev@odoo.com>
2019-06-07 06:38:06 +00:00
Christophe Simonis b4337f57d7 [MERGE] forward port branch saas-15 up to ec8cfd5624 2019-06-18 10:59:18 +02:00
Odoo Translation Bot ca8b354cc1 [I18N] Update translation terms from Transifex 2019-06-16 03:07:16 +02:00
Julien Castiaux 45bd7a58d5 [FIX] website_sale_comparison: concurrent add/delete
1) Add a 1st product to compare from the ecommerce /shop page.
2) Open the compare list pop up at the bottom.
3) Add a 2nd product to compare from the /shop page.
4) Remove the 1st product from the compare list before the rpc of the
2nd product is done.
5) Javascript error `self.product_data[res] is undefined`

The function `add_new_products` and `rm_from_comparelist` are
concurrent, they both modify the internal `comparelist_product_ids`
product list. The first one perform an RPC and delay the update once the
request is done, the second does the update immediately.

The solution has been to use a mutex to exclude the two functions.

opw-1974108

closes odoo/odoo#33302

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-06-14 09:02:09 +00:00
Lucas Perais (lpe) 187b77d7b9 [FIX] product: report pricelist empty data
Try to get the report_pricelist with empty data
(Studio Report editor can)

Before this commit, it crashes because we tried to access dict keys directly
in an empty dict

After this commit, it doesn't crash

OPW 2009862

closes odoo/odoo#34118

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2019-06-14 08:05:33 +00:00
ThanhDodeurOdoo 66e2aeb660 [FIX] tools: image.crop_image default type fix
Backport of fa39019ee1.
If crop_image is called without a default format, it would try the default,
'PNG', to save the result and crash at save when processing non-PNG images.
For example, if a jpeg image was in CMYK colors.

Here it will still crash non-gracefully when failing to save, but the default
should almost always work; if it doesn't it means we failed to detect the format
of the stream, so it is unlikely that we could save the image anyway.

opw 2009029

closes odoo/odoo#34088

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-06-13 16:05:34 +00:00
Nicolas Martinelliandjev-odoo fa492d87f4 [IMP] mail, website_mail, base: extra info on error messages
Display extra information on error messages:
- Access error based on ACLs: user, fields (if applies)
- Access error based on record rules: user, ids
- Missing error: model, operation, user, ids

closes odoo/odoo#33945

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>


Co-authored-by: jev-odoo <jev@odoo.com>
2019-06-07 06:37:25 +00:00
Lucas Lefèvre 6b93738299 [FIX] test_assetsbundle: Properly unpatch ir.attachment
`_patch_method` and `_revert_method` do not work properly.
This commit fixes a test which patches `create` and `unlink`
of `ir.attachment`.
The methods are not correctly unpatched.

One consequence:
if a module is installed after this test is executed and
the new module overrides `create` and `unlink`, the overritten
methods are never called.

closes odoo/odoo#33952

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-06-06 14:23:28 +00:00
Odoo Translation Bot bafe82309a [I18N] Update translation terms from Transifex 2019-06-09 06:06:20 +02:00
Lucas Lefèvre 12ace54a9f [FIX] hr_holidays: Fix out of office message default value
If a user has an ooom in his Preferences, it should be
used as the default value for a leave ooom.

closes odoo/odoo#33890

Signed-off-by: Romain Libert (rli) <rli@odoo.com>
2019-06-07 12:51:02 +00:00
Lucas Lefèvre 8dff37f3ec [FIX] hr_holidays: Fix out of office message edition
Purpose
=======
Currently, the ooom field is editable in the leave view but an ir.rule
prevents the employee to save as soon as the leave is approved.

Specification
=============
An employee should be able to edit the out of office message
even if the leave is already approved.
2019-06-07 12:51:02 +00:00
Cedric Snauwaert cc6cc7ae8b [FIX] account: remove the warning in reconciliation widget for to_check
The goal of the to_check checkbox in the reconciliation widget is to set the to_check field present on the move that will be created. However since the UI is not perfect, the to_check checkbox was added on the wizard when we create a new line in the widget, which cause the following problem: what if we select to_check on line1 and then deselect it on line2, previously it was not possible to do this, a warning was thrown to tell the user that he had some line with to_check set and some other not. A better way to do this, and more user friendly is by preventing the user from deselecting the checkbox if some other line has the to_check value set.

closes odoo/odoo#33956

Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2019-06-07 09:15:43 +00:00
Rishabh Jadia 7746621b92 [FIX] base: prevent renaming the column for non stored field
Before this task, when creating the related field from the studio, it is by
default stored. When we change the field name in 'ir.model.fields' using ORM's
write method, it also renames the column in the table associated with the
field's model.

This is the expected behavior. But when someone tries to change the 'name' of a
non stored field, the column is not available in the associated model, and so
trying to rename the column results into traceback. This issue was probably
there for a while but came into light with the task 1985710. More info can
be found on the chatter of the task.

This commit fixes the issue by adding an extra check before renaming the table
column. The query will be executed only when the field is stored and thus
exists in the table.

closes odoo/odoo#33944

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2019-06-06 11:47:19 +00:00
wan e358c41313 [FIX] account: manual reconciliation no data
The function get_all_data_for_manual_reconciliation got an empty list instead of None. This leads to not query the db. However we want to get results in the default behavior for get_all_data_for_manual_reconciliation

closes odoo/odoo#33711

Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2019-06-06 10:26:42 +00:00
Nicolas Martinelli f7b870ca1b [IMP] account: constraint error message
Make SQL constraints errors more accurate.

closes odoo/odoo#33934

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-06-06 08:34:00 +00:00
Barad Mahendra ef7ae9ae14 [FIX] base: avoid traceback on params field of client action
The content of these fields can't be updated, there's no reason to
even show them. Just remove them from the default / auto-generated
view for client actions.

Task 1772242

closes odoo/odoo#29179

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-06-06 10:10:12 +00:00
Goffin Simon d1a5ce02dc [FIX] hr: Impossible to change job_id in hr.employee
The field job_id is displayed in the tree view but it was not available in the form view
like in 12.0. So it was not possible to change it.

opw:2006084

closes odoo/odoo#33933

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-06-06 08:16:12 +00:00
Victor Feyens 1f0721acf0 [FIX] Purchase description string 2019-06-06 06:52:26 +00:00
Victor Feyens bbc963ef11 [FIX] Sales description string 2019-06-06 06:52:26 +00:00
Victor Feyens 0085bb87d1 [FIX] event_sale : fix event_configurator tests to satisfy runbot when rental_configurator is installed. 2019-06-06 06:52:26 +00:00
Victor Feyens e7a9c24315 [IMP] sale : name for xpath 2019-06-06 06:52:26 +00:00
Victor Feyens ebc64a089a [REF] product_configurator
Purposes:

* Remove bridge module event_sale_product_configurator
* Ease developement of product configurators AND product-based sale_order_line configurators
* Fix the tests for those extensions
	* Note that despite the widget being extensible, the tests from the other configurators can easily crash when other configurators are installed because of query counts or limited data available in tests environments.

Technical clarifications:

A main product_configurator widget base in odoo/addons/sale, set on the product_product and product_template on the sale_order_line inline list, providing:

* 5 hooks:
	* _onTemplateChange for product_product configurators based on product templates
	* _onProductChange for sale_order_line configurators based on product_product
	Those two hooks are expected to return a boolean promise to know whether the line has been configured or not, avoiding the opening of multiple wizards.
	* _isConfigurableProduct
	* _isConfigurableLine
	If true, a pencil button is shown next to the product/product_template, calling _onEditProductConfiguration when clicked.
	* _onEditProductConfiguration
		Called when clicking on edit pencil button.

Examples :

Product configurator : odoo/addons/sale_product_configurator module --> product_configurator (true one, the one in sale doesn't do anything until extended)
Sale Order Line configurator : odoo/addons/event_sale/ --> event_configurator, future rental configurator
2019-06-06 06:52:26 +00:00
Xavier-Do 154703d21c [IMP] core: log traceback in one group
Traceback coming from tests are currently logged
line by line. This will implies that runbot will have one
ir_logging entry per line which is not practical. More than
that, the log prefix can make the traceback less readable
because of line returns and difficult to copy paste.

This commit simply remove this feature. After discussion with odo
and chs, we will also remove the docstring from test shortDescription
since most of the time this information is not clear and can be accessed
in source code if needed.

closes odoo/odoo#33911

Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2019-06-05 14:34:33 +00:00
Olivier Colson bd38c693f1 [IMP] account: stronger constraint on repartition lines
We now force tax repartition lines to use the same percentages for invoices and credit notes. Thanks to that, we are able to simplify the way manual modifications made on vendor bills' account.invoice.tax entries must affect the ones of the refunds created for them. This also prepares the code for the incoming big accounting revamping.

closes odoo/odoo#33577

Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2019-06-05 14:04:42 +00:00
Nathan de Pryck f435c65517 [FIX]account_asset: Increase performance to generate asset entries
For each asset depreciation lines we verify that there are not linked
to a move. This verification was done for each line separately.
Moreover, during the creation of the journal entries, we were writing
on the 'line_ids'. In this case, accessing the move of a line
was invalidating the cache. This fix ensure that this operation is
done out of the loop and the cache is then not invalidated at each
step.

See opw-2000305

closes odoo/odoo#33908

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-06-05 12:47:02 +00:00
RomainLibert 6d34a19ba8 [FIX] hr_holidays: fix multi company issue in onchange
If you are logged into a company that differs from the company of your
employee, you won't be able to read the informations on that employee,
and you will have a crash.
Instead of taking the employee linked to the current user, we use search
in order to first apply the ir.rules hence we ensure that we will be
able to read the needed informations.

closes odoo/odoo#33903

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-06-05 11:35:49 +00:00
RomainLibert 9761342c12 [FIX] hr_holidays: add method to override selection of calendar 2019-06-05 11:35:49 +00:00
Jeremy Kersten 521f7d36c1 [IMP] odoo: ignore unsupported args from controller
Before this commit, call a controller defined as:

```
@http.route('/route', type='http', auth='public')
def controller_func(self, foo):
do_it()
```

and called with url like /route?foo=1&bar=2

will crash with an exception:
`TypeError: controller_func() got an unexpected keyword argument 'bar'`

Now, we remove the extra parameters if the controller doesn't support it.
This case is not uncommon, you can easily arrive in this case with utm or
debug as extra parameter.

closes odoo/odoo#33962

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-06-08 13:53:57 +00:00
Christophe Monniez f167ae7d6e [FIX] core: change ready code warning into info
In JS tests, when the ready code takes too much time, a warning is
logged. As a consequence, the runbot updates the github status as a
failure, causing real pain to people who simply wants to merge their
features.

With this commit the warning is changed into an info and the runbot will
be happy.

closes odoo/odoo#33931

Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2019-06-06 07:43:58 +00:00
Romain Derie 9813ee4eb8 [IMP] doc: adapt doc to new test asset and JS test file structure
Adapt doc to d7cd97a9b

closes odoo/odoo#33921

Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
2019-06-05 16:04:25 +00:00
Martin Trigaux c5bb52f33e [FIX] test_translation_import: avoid selection clash
export.selection.withdefault and export.selection both have a selection field
with Foo and Bar as possible selections.
When doing
self.env["base.update.translations"].create({'lang': 'fr_FR'}).act_update()
the base.update.translations wizard exports the translations of ALL modules,
including the ones of the test_impex module.

The generate po entry is something like:

#. modules: test_impex, test_translation_import
#: selection:export.selection,value:0
#: selection:export.selection.withdefault,value:0
#: selection:test.translation.import,import_type:0
msgid "Bar"
msgstr "Bar in french"

but may also be

#. modules: test_translation_import, test_impex
#: selection:export.selection,value:0
#: selection:export.selection.withdefault,value:0
#: selection:test.translation.import,import_type:0
msgid "Bar"
msgstr "Bar in french"

(not sure where the indeterminism comes from)

which creates 3 translation entries that are sometimes linked to the module
test_impex (ignored when exporting the translations of test_translation_import)
but are sometimes linked to the module test_translation_import instead

In the second case, this makes 3 more translations that is was supposed to
exist.

This commit hides the symptom by making sure there is no longer a clash
when exporting the translations of the module test_translation_import.
A real fix to avoid creating unnecessary translations during an execution of
the base.update.translations wizard must also be made in the future.

It is assumed the unnecessary translations problem was already present before
a7621137cb but polib introduced the indeterminism
making the test fails from time to time.

closes odoo/odoo#33958

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-06-06 14:10:08 +00:00
b14921d847 [FIX] website_sale: fix concurrent update
Since forward-port, `/sale/get_combination_info_website` and `_cart_update`
would lead to a concurrency error.

Indeed, the session would not have an order_id at first. Then both rpc would
be sent at the same time:
- `cart_update` would create an order and add it in the session
- `/sale/get_combination_info_website` would end up calling `_compute_cart_qty`
which would call `sale_get_order` and would set the `sale_order_id` to none,
just aftet the `_compute_cart_qty` would actually add an order in the
session, simultaneously.

closes odoo/odoo#33993

Signed-off-by: Christophe Simonis <chs@odoo.com>


Co-authored-by: Romain Derie <rde@odoo.com>
Co-authored-by: Christophe Simonis <chs@odoo.com>
Co-authored-by: Sébastien Theys <seb@odoo.com>
2019-06-08 10:14:52 +00:00
Romain Derie 8c7423298f [IMP] website_sale: move code from JS tour to python
In order to setup the tour environment, the tour would create and write on
some records.
This part of code could be moved from JS to python to avoid potential
concurrent error and to gain time.
2019-06-07 16:16:51 +00:00
Christophe Simonis 04d21a99d7 [FIX] account: avoid infinite recursion on account.move.line defaults
Now that `.new()` compute default values, calling `new()` from
`default_get` should avoid the recursion itself.
2019-06-07 12:37:49 +02:00
Christophe Simonis 83d0eaedc7 [FIX] web: temporary disable failing test 2019-06-07 12:37:49 +02:00
Christophe Simonis 8670584299 [FIX] core: in onchanges, verfiy that x2many are the same records
Comparing the length of the recordset is not enough for determining if
there is changes on m2m.

This also fix the merge of f14ae73a98 and
d0bb596f1d

Oversight of previous forward-port.
2019-06-07 12:37:49 +02:00
Sébastien Theys 3b63c7c2a6 [FIX] website_slides: fix typo introduced in cd4cd51 2019-06-07 11:17:10 +02:00
fja-odoo 5ab24668f4 [FIX] sale, website_sale: move #buy_now disable
Some code was not correctly merged during forward port.

commit introducing the new method
https://github.com/odoo/odoo/commit/51ef8514eaddaebbdfee73230cfe955735d02f67

commit introducing the issue:
https://github.com/odoo/odoo/commit/71a50a2214748fec413c5a0f042d0e7172ae6ea9
2019-06-07 11:16:20 +02:00
David Monjoie 83f0bc2280 [FIX] web: fix field signature xmlDependencies loading 2019-06-06 16:10:15 +02:00
Romain Derie d02c0eb4c9 [FIX] survey: fix forward port
d273bdfed7 got ported from 12.0 to master but this file does not exist as it
has been renamed with fdbf11643f
2019-06-06 15:08:04 +02:00
Romain Derie aebbd0317f [FIX] mail, web: directly load async debug.xml during QUnit tests
Before this commit, the test `list: edit view menu item` would sometimes crash
as now the debug manager loads its templates with an `xmlDependencies` where it
was not the case before (included in base.xml), see 73327db065.
2019-06-06 15:08:04 +02:00
Christophe Simonis 4f18c7c44b [FIX] test_mail: correct test
*/ Adapt test to new version
*/ do not use removed method `do_in_onchange`
*/ remove duplicated test
2019-06-06 13:33:16 +02:00