Commit Graph
124700 Commits
Author SHA1 Message Date
Géry Debongnie 1bb15e0559 [FIX] mail: fix performance issue for activity view
Fun fact: for the subscription model in odoo production database, the
get_activity_data rpc takes 36s, and transfer 420mb (non gzipped) of
data (when looking at all subscriptions).

The main reason for that is that the get_activity_data method create a
domain with all the res_ids (so, if you have 20k subscriptions, the
domain will look like (res_id, in, [...20k ids]).  This domain is given
to read group, and the resulting groups (each with a domain key which
includes those res_ids) will be sent back to the web client.

As far as I can tell, the domain key is not used by the web client, so
we send (number of groups)*(number of records) of useless data.

This commit improves the situation in two different ways:
- we only generate the domain if there is a domain at the beginning.
  This should greatly improve the performance when there is no current
  domain
- we do not transfer the data to the web client
2018-11-15 15:26:49 +00:00
jbm-odoo 662657f44b [IMP] hr_holidays: Re-introduce complete tests suite
The tests have been detroyed while merging a refactoring for 12.0.

This commit reintroduces unit tests to checks each business cases from
"The Flow" into python tests.

closes odoo/odoo#28323
2018-11-15 15:24:58 +00:00
Géry Debongnie 92b4e2e866 [FIX] web: fix performance issue with read_progress_bar
The read_progress_bar method is incredibly not efficient.  It is also
wrong in other ways (for example, if 2 groups have same labels, there is
a collision). But let us talk about efficiency: it iterates on each
records on the domain, then, it computes some information. It is really
worse for selection fields: it performs a fields_get for each iteration.

This commit improves the situation by doing the fields_get only once.

Note that this is not the end of the story: this only has a small effect on
the performance of this method. It looks like there is a deeper issue in
some cases (kanban view for subscription, field 'activity_state')
2018-11-15 15:24:27 +00:00
Romain Derie 410c07283b [FIX] website: set inherit_id on child COW for view validation
Before this commit:
1. If a view A is being inherited by a view B and C and the view C is doing an
   xpath on B (but inherit A), then copying the tree to make it specific would
   crash.
   Indeed, when copying C, the view inheritance check (while doing the xml
   check) would break since C would be tested against the generic tree and not
   the new specific tree.
2. If a generic view being written with a website_id in the context had already
   a specific child, we would copy both its specific child and generic child
   for the same key instead of simply copying the specific one.
   This happens if we triggered previously a COW on a child view, then only
   that view had been made specific (and is still in the generic tree).
   Then, when cloning the parent, we need to copy and make specific all the
   hierarchy but ignore the generic elements if they already have a specific
   one.

Now:
1. Fixed with adding the inherit_id on the copy vals
2. Fixed with filtering children_ids with filter_duplicate() before cloning the
   children tree

opw-1908308
Closes #27914

closes odoo/odoo#28405
2018-11-15 14:17:28 +00:00
Toufik Ben Jaa 4dae545bf9 [FIX] mass_mailing_sale: check access on SO & invoice report
- When computing the count of quotations count and the invoiced amount
  on a mass mailing, we do not check if the current user has access to
  the models `sale.order` and `account.invoice.report`.

  This fix first check the access rights on the models, if the current
  user doesn't have read access, then we set the computed value to 0.

closes odoo/odoo#28717
2018-11-15 11:39:05 +00:00
Goffin Simon 7077f18e3a [FIX] website_event: Impossible to track proposal on website
Programming error introduced by 602807acdf

Steps to reproduce the bug:

- Create an event with category='conference'
- Checked Track Proposals on Website
- Save it

An error was raised saying that the website with the id of the event didn't exist.

Further, with the fix but without a website_id specified, checked Track proposal didn't
add the menu to track proposals on the conference.

opw:1904078

closes odoo/odoo#28688
2018-11-14 15:31:08 +00:00
Alexandre Kühn 2b245ebb43 [FIX] mail: no crash on grouped inbox messages previews
Revision on https://github.com/odoo/odoo/commit/5f8d3c61bee40d027efc5041cdc4bca5e67c42d7

Before this commit, there was a traceback when you had two needaction
notifications related to the same document.

This is caused by a typo in the commit above: the object `similarItem`
has a property `messageIDs`, but the code wrongly access the property
`messagesIDs` (see the extra "s").

Steps to reproduce:

- Set notification management to 'Handle with Odoo' for Admin
- Demo mention Admin twice on a specific project task
- Admin opens messaging menu

Display error `Cannot read property 'concat' of undefined`

Issue reported on this PR comment: https://github.com/odoo/odoo/pull/28462#pullrequestreview-175001349

Task-ID 1909521

closes odoo/odoo#28703
2018-11-14 20:29:29 +00:00
Toufik Ben Jaa 774991946e [FIX] mail: no mail sent to followers
- If the `internal` field/column on the message subtypes (table: `mail_message_subtype`) is set to null instead of false in the
  database, the notifications to the followers are not sent by mail.

closes odoo/odoo#28699
2018-11-14 18:54:12 +00:00
Nicolas Martinelli ce616fff6c [FIX] sale: 0.01 discount
A discount of 0.01 should appear as a regular discount.

closes odoo/odoo#28686
2018-11-14 14:51:30 +00:00
Géry Debongnie c0c326f5ab [FIX] web: restore/remove skipped tests
Some tests were skipped these last months.  This is a slippery slope.
The best time to reactivate them is the moment they were skipped, the
next best time to reactivate them is now.  So, this is what this commit
does.

Three kinds of tests were skipped:
- 3 password tests
- 2 kanban progress bar tests
- one keyboard navigation test

Password tests
--------------
When the auth_password_policy addon was introduced, two tests in web/
were skipped, because they would fail when the auth_password_policy
addon is installed.

Since then, a commit was done to change the way the password field works
(commit 5bbbd25edf).  With this commit,
the password field is no longer an 'include', but a new field widget.
This means that the skipped tests no longer fails.

Kanban progress bar tests:
--------------------------
In saas 11.2, the 'archive all' feature was removed, but it was readded
in saas 11.4.  The tests had to be slightly adapted to make sure they
use the proper css selectors.

Keyboard navigation test:
-------------------------

It is now a functional decision not to allow moving from one cell to the
next by using left/right arrow, so this test is no longer valid.

closes odoo/odoo#28685
2018-11-14 14:44:48 +00:00
qsm-odoo 931fb8f80c [FIX] website: recompute auto more menu on window full load
The previous code made sure we wait for images to be fully loaded before
initializing the auto more menu. But in some cases, it is not enough, we
also have to wait for fonts or even extra scripts. Those will have no
impact on the feature in most cases though, so we will only update the
auto more menu at that time, not wait for it to initialize the feature.

closes odoo/odoo#28684
2018-11-14 14:00:59 +00:00
qsm-odoo 353748c664 [FIX] web: handle auto margins for auto more menus
The auto more menu feature is used to enforce that all items of a menu
stay on one line by adding the ones that would overflow in a dropdown
menu. The feature first need to compute the maximum width the menu can
have. This computation was not correct as it was not considering auto
margins.

This is particularly important with BS4 where all standard menus have
auto margins.

closes odoo/odoo#28683
2018-11-14 14:36:00 +00:00
Arnold Moyaux 4f080a6605 [FIX] mrp, purchase_stock: wrong company on rules
Usecase to reproduce:
- Install a database with demo date and mrp or purchase

The buy/manufacture rules have a wrong company for warehouses
in company 'My company, Chicago'

It happens because the warehouse is not specify in the create
values. In this case it creates the rules and set the user current
company as default.

This commit specify the company during the create call.

closes odoo/odoo#28682
2018-11-14 13:49:24 +00:00
Lucas Perais (lpe) 50e5f73b4e [FIX] fields, test_new_api: monetary related custom
This commit allows for not copying the currency_field attribute
of a monetary field when the monetary field is related,
and when the currency_field attribute is not explicit

Before this commit, the currency_field attribute on the related monetary
was set as the one on the distant model

After this commit, the currency_field attribute takes the field on the
current model

Though the test may appear like an incoherent use case,
it is on the contrary totally legit, as web_studio allows it

OPW 1903113

closes odoo/odoo#28144
2018-11-14 15:14:36 +00:00
Denis Ledoux c41902a21c [FIX] mail: mail queue is interrupted if a recipient is not ascii valid
This is related to revision
71f188082f

This is nice to have a meaningful explanation
for the user to understand why his mail is not sent,

this is better to not interrupt the mail queue when doing so.

Because of the above revision,
when the mail queue iterated on a mail failing because
of an ASCII encoding issue,
the mail queue was interrupted,
and on the next cron call it failed again and again
on the same mail, therefore leading to the mail queue
to never be processed.

Fixes #27804
2018-11-14 17:18:34 +01:00
Christophe Monniez c2827f6b72 [FIX] l10n_be_invoice_bba: remove warning at install
The malformed manifest is causing a warning when testing all l10n.

closes odoo/odoo#28680
2018-11-14 13:29:44 +00:00
Nicolas Seinlet 37306b85de [FIX] project: project var is not defined
closes odoo/odoo#28678
2018-11-14 13:22:55 +00:00
Laurent Smet 6053daadb3 [FIX] account: Search res.partner.bank before creating it
- Import 2 bank statement lines having acc_number set but no res.partner.bank having this account
number.
- Reconcile the first one with a line: a res.partner.bank is created.
- Reconcile the second one with a line: UserError('Account number must be unique!')
2018-11-14 11:59:18 +00:00
David Beguin 3715104e98 [FIX] mass_mailing : returns set of normalized email in _get_opt_out_list
If a recipient has a formatted email address like 'A <a@b.com>', the returned
opt_out list must contain normalized email ('a@b.com') in order to be comparable
during the get_mail_values of the mail.compose.message.
Otherwize, It won't match.

Task ID : 1909314
Closes PR #28667
2018-11-14 11:23:44 +00:00
qsm-odoo 6b9625e098 [FIX] website, *: enforce correct UI text-muted color
* web_editor

- Restore the preservation of Odoo text-muted color (the rule became
  !important with BS4 and had thus to become !important in the
  preservation mixin).
- Preserve base design in the "new content" menu (which now uses
  text-muted). Indeed, in some themes, the "new content" links were not
  even visible anymore.

closes odoo/odoo#28666
2018-11-14 10:59:34 +00:00
Géry Debongnie aa18aaa292 [FIX] web: restore formview mode when coming back (breadcrumbs)
Before this commit, when the user is in a form view (edit mode) and
click on a stat button, a new action is added to the action stack.  When
the user then comes back to the form view by clicking on the breadcrumb,
it is supposed to be in readonly mode.  Before this commit, this was not
the case.

This bug comes from the action manager refactoring, which removed the
view manager. With this commit, we add a new action lifecycle method
which is called when the action is restored.

Note that this commit implicitely changes the semantic of actions with
'target=inline'. As far as I can tell, this only applies to the settings
form view, which can easily be fixed by overriding the restore hook.

closes odoo/odoo#28663
2018-11-14 11:19:40 +00:00
Nicolas Martinelli 79d29c51df [FIX] base_import_module, cli: deploy
The use of the `deploy` command always fails because of an incorrect
CSRF token since commit 9bae56acd4. Indeed, the latter
re-introduces the session rotation, i.e. the session ID is changed at
authentication.

Practically, what happens server-side is:
- authentication
- generate CSRF token
- create the response with the token and a change of session ID

At this point, the token generated is not correct anymore since it is
based on the 'old' session ID. Therefore, when it is reused at
uploading, an error is raised.

It is actually possible to simplify the process by performing the
authentication and the file upload in a single request. There is indeed
no real use of extracting the authentication, since the request is then
only used to upload the module.

opw-1902863

closes odoo/odoo#28653
2018-11-14 09:40:17 +00:00
Aaron Bohy 4df0a1e31a [FIX] web: wrong tests
This commit fixes two tests that became meaningless after tweaks
in production code:

 - form_tests: use two char fields, as integer fields can't be
   unset since rev. c62a4edcb
 - pivot_tests: the button is disabled since rev. 4f4f111, but
   simulating a click with jQuery bypasses the disabled attribute

This commit also removes unecessary overrides of mockRPC. Those
overrides existed  because the attachments part of the sidebar
used to make a search_read RPC, but this has been removed at rev.
1dbb555.

closes odoo/odoo#28650
2018-11-13 19:56:55 +00:00
Arnold Moyaux a172166a8b [FIX] purchase_stock: merge po by default
Usecase to reproduce:
- Create a product with a vendor and mto/buy route checked.
- Create 2 SO and confirm them

The system generated 2 RDF instead of a single with 2po lines (same than
v11). It happens because the propagation option of buy rules is
leave empty in v11 and Propagate in v12. It was unintentionally removed
by commit 1e160dffd3

This commit set leave empty as default value for buy rules.

opw-1904165

closes odoo/odoo#28637
2018-11-13 14:22:51 +00:00
Nathan de Pryck 3af06bf47c [FIX] stock_account: view priority
In some case, this view was used to perform a search of product.product.
Before, this modificiation all the search view had the same priority
which means that depending on some situation, the wrong search view was
loaded.

opw-1903611

closes odoo/odoo#28634
2018-11-14 09:35:26 +00:00
len-odoo 93c6d22e01 [FIX] sale_timesheet: fix incoherent demo data
The uom unit of a product on a sale order line was not with the product uom.
As a result, an error would be triggered when trying to edit the SO, without the
possibility to fix it (as the field is not in the view).
Odoo takes a stand against incorrect demo data.

opw 1906315

closes odoo/odoo#28641
2018-11-13 15:11:40 +00:00
Goffin Simon 51982f9199 [FIX] website: Impossible to link an analytic account
Steps to reproduce the bug:

- Go to Website > Dashboard > Analytics and click on "Link my analytics account"
- Enter some data and save

Bug:

A traceback was raised: TypeError: website_set_ga_data() missing 1 required
positional argument: 'website_id'

opw:1905874

closes odoo/odoo#28636
2018-11-13 16:12:47 +00:00
Lucas Perais (lpe) 40b4584b00 [FIX] *: boolean in domains should have value True or False
Because the JS cannot handle 1 or 0 being equivalent to true or false, the views should comply
Issues specifically arise in the kanban view when, instead of reloading every record with python,
the JS actually computes which record should be displayed by reinterpreting the domain

From a user point of view, on a fresh db with CRM installed, go to the app kanban view
Click on the contextual menu of the CRM kanban label, click uninstall

The modal opens, but click cancel. The kanban label of the kanban view has disappeared

This is due to commit 33ba61bfdb, which prevents reloading all the view
for performance purposes

This commit prevents the label from disappearing

OPW 1903534

closes odoo/odoo#28484
2018-11-13 10:09:03 +00:00
Humberto Arocha 09fde26854 [FIX] account: Calling oldname cash_basis_account instead of new field
closes odoo/odoo#28594
2018-11-12 20:16:10 +00:00
Robot Odoo 5f8d3c61be [MERGE][FIX] mail: preview not linked to any document
This fixes two issues relating to previews in the systray messaging menu
that are not linked to any document:

1. Clicking on such preview now redirects to Inbox

There was a traceback, because it was attempting to open a document.

2. Marking a read one of those previews now only marks this preview

It was marking all previews not linked to a document as read.

Task-ID 1891350
Task-ID 1907159

closes odoo/odoo#28462
2018-11-14 08:13:29 +01:00
Goffin Simon 8efa9e5fe9 [FIX] website_sale: Impossible to modify text in "shipping" area on e-commerce
Inspired from this commit: 90219a7e0a

It's not possible to modify the shipping area description on a product in
the e-commorce.

opw:1908308

closes odoo/odoo#28624
2018-11-13 12:43:46 +00:00
Vincent Schippefilt fe7fd9c0d7 [FIX] web: fix qweb test that fails on windows
When the qunit tests runs they are expecting the new line to be the character 10,
but in windows the new line is 10+13.
The test has been updated to ignore the character 13.

closes odoo/odoo#28599
2018-11-13 08:14:07 +00:00
Alexandre Kühn 8af392865d [FIX] mail: mark as read per preview
Before this commit, when there was several previews
on the messaging menu that were not linked to any
document, marking one of them as read had the unintended
behaviour to mark all of them as read.

Steps to reproduce:

- Admin with notification management as 'Handle with Odoo'
- Demo assign Admin to two different tasks
- Admin mark one preview as read
> Both previews notifying assignment to a task have been
  marked as read

This is caused by the fact that messages of those previews
are not related to any document. As a result, when marking
one preview as read, it maps related messages to mark as
read, which was taking into account all messages that are
not related to any document.

With this commit, previews now tracks message IDs, so that
marking one preview as read only mark the related messages
as read.

Task-ID 1907159
2018-11-07 10:20:49 +00:00
Alexandre Kühn b3e450abca [FIX] mail: open inbox on preview click not linked to any document
Before this commit, when the user clicked on a preview in the systray
messaging menu that is not linked to any document, there was a
traceback.

Steps to reproduce:

- Admin sets notification management to "Handle with Odoo"
- Demo user assigns Admin to a task
- Admin clicks on preview from being assigned to a task

Those are previews from notifications received from the inbox,
which are not related to any document. It attempts to open a
document that does not exists (i.e. no model/id).

With this commit, when such a preview is not linked to any
document, it now opens Discuss with Inbox.

Task-ID 1891350
2018-11-07 09:35:54 +00:00
Andreas Perhab eb11b465dc [FIX] odoo: fix addons paths on windows with use of normcase
This is necessary to get --dev=xml working on windows, because the xml
import uses normcase in file_open and the case normalized filename is
then used to find the addon path (which was not found before on windows)
With this fix arch_fs is now correctly filled in windows and --dev=xml
works.

closes odoo/odoo#28331
2018-11-01 10:41:58 +00:00
Jorge Pinna Puissant c5a3b607e6 [FIX] website_sale: empty error message
opw-1918450

Before this commit, the error message wasn't shown when a field was
empty.

Now, the error message shows correctly.

closes odoo/odoo#29993
2019-01-07 13:13:47 +00:00
Arnold Moyaux df7953f303 [FIX] stock: unreserve drop all the processed work
Usecase to reproduce(or any other way to lower initial demand on move):
- Build a MO with 5 products to do
- Produce 3
- Update the quantity on the mo to 3
-> All the consumed quantity on move lines is dropped.

It happens because lowering the initial demand on a move
will call unlink on its move lines. (increase it will
update the move's state and reassign if it comes from a supplier)

Instead of dropping and reassign the move in order to change
the reservation, it is possible to directly write the new
reserved quantity on the move lines and that will update the
reservation on qaunt directly. Also we don't want move lines
without reserved quantity and quantity done thus we drop them.

closes odoo/odoo#29941
2019-01-04 13:57:49 +00:00
Odoo Translation Bot e2afb0755d [I18N] Update translation terms from Transifex 2018-11-01 02:44:41 +01:00
Christophe Simonis 21eb31d804 [MERGE] forward port branch 11.0 up to a587325ca7 2018-10-31 19:22:21 +01:00
Christophe Simonis a587325ca7 [MERGE] forward port branch saas-15 up to 00829a0beb 2018-10-31 18:31:53 +01:00
Christophe Simonis 00829a0beb [MERGE] forward port branch saas-14 up to c552e368b3 2018-10-31 17:58:05 +01:00
Christophe Simonis c552e368b3 [MERGE] forward port branch 10.0 up to 93d69933ac 2018-10-31 17:23:32 +01:00
Goffin Simon e2db39e96b Revert "(FIX] account: Impossible to make a partial credit note"
This reverts commit bb939ffac0.

closes odoo/odoo#28321
2018-10-31 14:48:14 +00:00
David Beguin f20cd3db75 [FIX] hr_attendance : kiosk mode multi scanning
- Scan a barcode for employee 1 in kiosk mode
- At greetings message, scan a barcode for employee 2

2 attendance entries are created for employee 2 instead of 1.

When scanning the barcode for employee 2, the event listener
`_onBarcodeScanned` is still active on `KioskMode`. Therefore, the RPC
call to `attendance_scan` is performed twice.

We deactivate the event listener after scanning, and reactivate on
`KioskMode` only if there is an issue. This is sufficient since the call
to `do_action` in `GreetingMessage` will create another instance of the
client action. In `GreetingMessage`, we add back the redirection to
`KioskMode`.

Co-authored-by: Nicolas Martinelli <nim@odoo.com>

Linked to Task ID 1878251
opw-1878632
opw-1888402

closes odoo/odoo#28150
2018-10-31 14:35:27 +00:00
len-odoo 180f528528 [FIX] web: reload many2one data if the context has changed
When a view is loaded, it checks which fields it has to load.
In the case of a many2one, it could be the case that a context key is present in
one view and not in the other; if it happens, we should reload the data, as a
name_get result could vary.

opw 1891295

closes odoo/odoo#28298
2018-10-31 12:52:36 +00:00
len-odoo 622eb6b747 [FIX] sale_stock: compute quantity differentiating incoming and outgoing pickings
Suppose that you have a SO that you deliver.
Then the client returns the products, getting a refund,
which creates an incoming picking.
If you do then update the product sold quantity, the quantity to deliver is
computed by summing the relevant picking.
We now discriminate incoming and outgoing picking, respectively substracting and
adding the quantities.

opw 1903559

closes odoo/odoo#28315
2018-10-31 12:23:33 +00:00
Goffin Simon 93d69933ac [FIX] stock: Wrong production/scrap/adjustment location used in multicompany
- When using perpetual inventory valuation, the accounts used for scrap, manufacturing,
and inventory adjustment operations are set on the corresponding locations .
- In a multicompany environment, you will have a separate chart of accounts for each company.
- Account fields on locations are not property fields.
- Therefore, in order to separate the accounting of manufacturing, scrap, and inventory
adjustment operations, you must use a location for each operation for each company.
- Set up one location for each company for scrap, production, and adjustment
locations, setting the company field on each.

Bug:
- When attempting to create a MO, inventory adjustment, or scrap order while signed
in to the second company, you will receive a permissions error on stock.location.

Fix:
- Now the right location is taken according to the company of the user.

Backport of this commit: c7526407ab

opw:1817339
2018-10-31 11:51:09 +01:00
Olivier Dony 9cc8a8d0a4 [FIX] reqs: bump up recommended requests version
In light of CVE-2018-18074, using python-requests 2.20.0 is recommended,
or any distribution-specific version that was patched.

See also https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18074
2018-10-30 18:49:35 +01:00
Martin Trigaux 214975911b [FIX] l10n_ro: fix xml syntax 2018-10-30 18:28:00 +01:00
Duc Dao f978722503 [IMP] l10n_vn: fix syntax and allow reconcilation
for accounts 3341, 3348, 141, 1388, 3388
2018-10-30 18:24:15 +01:00