Commit Graph
122185 Commits
Author SHA1 Message Date
Robot Odoo 1c1ae3bef9 [REF] base_geolocalize: support multiple provider
- Make it generic: geo_coder (logic) / geo_provider (list of provider)
- Add support for openstreetmap since google make it more complicated: https://cloud.google.com/maps-platform/user-guide/account-changes

Courtesy of @ecino

closes odoo/odoo#28747
2018-11-17 18:41:18 +01:00
Christophe Simonis 6faad524cf [MERGE] forward port branch 12.0 up to bc744a1da4 2018-11-16 19:30:20 +01:00
Robot Odoo bc744a1da4 [MERGE][FIX] mail: several fixes in discuss, chat window, chatter
This merge fixes a crash in discuss, in addition to re-introduce some _quality of life_
features that have been mistakenly removed from the chatter and from chat windows:

### 1. No crash when searching messages

This was caused by the addition of moderated channels. In short, fetching twice
the same message was performing a re-render of the thread due to a mis-consideration
of a moderation status change. When the fetch reaches the fetch limit, the re-render is
considered as a "load more" fetch, which only works when there is at least one message
registered for the current search.

This is fixed by re-render when there is a change of moderation status only.

Task-ID 1910180

### 2. Easily mention followers and employees in chatter

When mentioning a user from the chatter in a document, it was always
fetching all partners in a arbitrary order. As a result, it was hard to mention
followers and employees.

This is fixed by re-introducing the previous behaviour on mentions, which
groups them by followers, then employees, then all partners.

Task-ID 1910111

### 3. Show message document link in chat window

When a message is linked to a document, it usually shows a
link next to the message. This still works in the Discuss app,
but not in chat windows.

This erroneous regression was caused by a refactoring.
This is fixed by re-introduced document links on messages in chat
windows.

Task-ID 1910119

closes odoo/odoo#28744
2018-11-16 17:53:55 +01:00
Jeremy Kersten 6c67539b92 [REF] base_geolocalize, base_setup: ref + make it configurable in settings
Migrate in v12 and Refactor a part of the code
Allow to configure it in setting
2018-11-16 16:24:49 +00:00
Alexandre Kühn e3f36b10ac [FIX] mail: no crash when searching messages
Revision on https://github.com/odoo/odoo/commit/299ebb2cdf63de2e3967da0d2f3e7effd239812b

The commit above added the notion of moderation, which
requires re-rendering the thread when a message has its
moderation changed (i.e. the message is deleted on reject
or is no longer marked as 'pending moderation').

However, this condition was triggered even when the
moderation status on the message has not changed.

This introduced a crash when using the search in discuss:

- Access a channel with more than 30 messages, so that
  not all messages have been fetched.
- Search messages in this thread so that it displays more
  than 30 messages, and the last message of those has already
  been fetched.
> It crashes with "Cannot read property 'getID' of undefined".

The bug comes from re-fetching messages: it behaves as a
"load more" fetch, although no message has been stored yet.
A "load more" fetch requires at least one message in order to
determine the minimum message ID to fetch, thus the crash due
to having no message to get such an ID.

Here's the explanation why it fetches with load more:
when performing the search and fetching the same last message,
it will detect that it has already been fetched. Its moderation
status is 'accepted', and it will assume a change of moderation
status. This will trigger a fetch and render of the thread.
At this moment, if the search exceeds the fetch limit, not all
messages will be fetched, so that this fetch is considered as a
"load more" fetch.

This commit fixes the issue by only re-rendering the thread
when there is a change of the moderation status on an already
fetched message. Since changes of the moderation status are
handled by means of the longpolling, it should be rare to run
into the case of having a change of moderation status on a
message while using the search on a thread.

Task-ID 1910180
2018-11-16 14:04:46 +00:00
Alexandre Kühn 7613db4178 [FIX] mail: show message document link in chat window
Revision on https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c

The commit above consisted of refactoring the JS mail module.

A small regression was introduced on messages linked to a document
from a chat window: it was no longer displaying the link to redirect
to the document that this message originates from. This issue was
only isolated to chat windows: it was working fine in the Discuss app.

This commit re-introduces the displaying of the document link on
messages from chat windows.

Task-ID 1910119
2018-11-16 13:43:41 +00:00
Alexandre Kühn 9eff26367f [FIX] mail: easily mention followers and employees in chatter
Revision on https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c

Resulting of the mail JS refactoring, the list of prefetched suggestions
has been changed as follow:

- before: list of list of mention suggestions `{Array<Object[]>}`
- after: list of mention suggestions `{Object[]}`

The change resulted in wrongly thinking that wrapping the list of
suggestions in a list was pointless, thus simplifying it as a simple
list of mention suggestions.

However, because of this change, it has become much harder to
mention employees and followers of documents from the chatter:
it now always fetches all partner suggestions at all time, whereas
before it was suggesting followers, then employees, and finally all
partners based on the input of the user.

In fact, there was a purpose of using a list of list of prefetched
mention suggestions, which is to group suggestions by "priority":
followers first, then employees, and all partners as a last resort.

This commit re-introduces prefetched mention suggestions as a list
of list of partners, so that it re-becomes easier to mention
followers and partners of a document from the chatter.

Task-ID 1910111
2018-11-16 13:43:41 +00:00
Toufik Ben Jaa 6f7262f508 [FIX] mail: do no try to send notification to inactive users
- This commit prevent to send notifications to inactive users.
- This fixes a bug where two partners have been merged and one of its
  users is archived.

  If one of the two users is inactive the code might use its `notification
  type` preferences instead of the active user's one.

closes odoo/odoo#28730
2018-11-16 11:13:56 +00:00
Olivier Dony 8ee02ad136 [FIX] digest: correct a few typos 2018-11-16 16:35:22 +01:00
Olivier Dony 8545e05fc0 [FIX] mass_mailing: fix slow contact number query
The query was computing the count for all mailing lists, not just the
one being requested. This prevents optimizing the SELECT with indexes.
In addition, using a subselect for the blacklist forced a full table
scan on the contacts - switching to a LEFT JOIN avoids that.

With a blacklist of a few hundred thousand entries, and a table of
mailing list contacts in the same order of magnitude, this brings the
SELECT from 3+ seconds down to 3 milliseconds - with the same result.

Bonus: no need to perform the regexp extraction of emails to test for
NULL values -> substring(x) is NULL iff x is NULL.
2018-11-16 16:35:22 +01:00
Olivier Dony a103d4a43e [FIX] mail: use strict email matching for bounces
When a bounce is received, we look for matching partners in order to
increment the bounce counter. However by using [`ilike','email`] we carry
the risk of matching emails that contain the bounce email:

   ['email', 'ilike', 'john@hitmail.com´]

will also match 'random.john@hitmail.com' for example.

Using strict equality is safer, and the worst that can happen is that
we fail to count one bounce.
2018-11-16 16:35:22 +01:00
Christophe Simonis eafda0469a [FIX] calendar: adapt test version 12
*/ Use existing partner name
 */ correctly compare dates
2018-11-16 16:29:21 +01:00
Christophe Simonis 4b8bd36219 [MERGE] forward port branch saas-11.3 up to bab2a191d2 2018-11-16 15:39:02 +01:00
qsm-odoo ec7aa3c1f1 [FIX] website: properly enable a website view from its generic view
Before this commit, when enabling a generic view from a specific website
context and that view already had a specific view for this website, the
view was duplicated again instead of writing on the already existing
specific one.

This is because we did not consider inactive views when checking if a
view that is being written already has a website-specific view.

closes odoo/odoo#28743
2018-11-16 10:03:13 +00:00
Christophe Simonis bab2a191d2 [FIX] web: correct forward-ported test 2018-11-16 10:21:32 +01:00
Christophe Simonis 15f686eef6 [MERGE] forward port branch 11.0 up to 468dab6748 2018-11-15 20:39:10 +01:00
Emanuel Cino 0fda77e777 [FIX] base_geolocalize allow to use Openstreetmap instead of Google
- Change API provider to prevent invalid API calls
- Move geo_find methods into base.geocoder object to ease inheritance
- Add system parameter to allow use of another provider

fixes #x26924
fixes #x6929
2018-11-15 18:13:46 +00:00
Christophe Simonis 468dab6748 [MERGE] forward port branch saas-15 up to 3c78026dc0 2018-11-15 18:57:09 +01:00
Christophe Simonis 3c78026dc0 [MERGE] forward port branch saas-14 up to 55104b915e 2018-11-15 18:15:47 +01:00
qsm-odoo 55104b915e [FIX] website_event: restore event list layout
Commit https://github.com/odoo/odoo/commit/b43364af7258e45ad846fbbf1f375ad26e58eb0d
introduced a row in a row. On a standard database, the bug is invisible.
When the user wants to edit that event list page, the right column... is
not on the right anymore.

Note: in 12.0, thanks to BS4, the bug was revealed even more as even on
a standard non-edited database, the bug is visible.

Closes https://github.com/odoo/odoo/pull/28693
2018-11-15 17:15:54 +01:00
qsm-odoo f1e999d33e [FIX] web_editor: properly post process document upload
When using the media dialog, when uploading an image, the image list
refreshes itself properly. This was not the case for documents as it
was... refreshing the image list too instead of the document list. Also,
when uploading a document, it is supposed to be added in the page
directly and the media dialog is supposed to close. This feature was
broken for the same reason: the iframe system of both tabs which were
using the same name.

Bug introduced with https://github.com/odoo/odoo/commit/abde8bddf8ec45cf12aab59e95c330321158cfba
(even though is was technically wrong for the same reason before).

Closes https://github.com/odoo/odoo/pull/28722
2018-11-15 17:07:32 +01:00
Christophe Simonis 5523e6b1c9 [MERGE] forward port branch 10.0 up to 8a9569b31e 2018-11-15 17:00:52 +01:00
Lucas Perais (lpe) de76e5e081 [FIX] purchase: wrongly written domain
closes odoo/odoo#28735
2018-11-15 15:09:04 +00:00
Nicolas Seinlet 1512f1d60a [IMP] web_tour: restrict tour access to own ones
Even if only admin can access all tours, retrict tour access
to own user

closes odoo/odoo#28736
2018-11-15 16:11:03 +00:00
Goffin Simon 0cd13d67ba [FIX] website_sale: modifying the shipping area text in the shop
Thanks to this commit: https://github.com/odoo/odoo/commit/e011b465316fe2b6d45e31f99829d26edc01f74e

Now it's possible to edit the shipping area text in the shop.

opw:1908308

closes odoo/odoo#28732
2018-11-15 14:43:27 +00:00
Robot Odoo 11282ced17 [FIX] web: fix performance issue with read_progress_bar
This PR fixes some miscellaneous issues:
- performance issue in read_progress_bar
- performance issue in activity view
- crash in ungrouped kanban view with progress bar

closes odoo/odoo#28715
2018-11-15 17:25:30 +01:00
Géry Debongnie 990dce6e2a [FIX] web: prevent crash in ungrouped kanban views with progressbar
The progressbar widget is not supposed to be displayed in non grouped
mode.  Before this commit, this situation resulted in a traceback. For
example, if the user has an activity on the subscription model, and
tries to open it, it will open an ungrouped kanban view.

With this commit, we check first that the kanban view is in grouped
mode, before loading the progress bar data.
2018-11-15 15:26:49 +00:00
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
mao-odoo 8a9569b31e [FIX] auth_signup: Error when sending quotation
Fine tuning of this commit:https://github.com/odoo/odoo/commit/7501691da9a9dae832b7d6e78c6a5f57fc983b5c
Fields signup_token, signup_type, signup_expiration are protected
When sending a quotation (mail template 'Sales Order - Send by Email'):
the token needs to be read (and sometimes written)

opw:1907157
2018-11-15 15:28:48 +01: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
Robot Odoo 3657dc77c2 [MERGE][MOV] survey: rename and split files according to their underlying models
Purpose of this merge is to polish a bit this old module before working
on it. Contains

 * split python model into separate main files to ease models understanding;
 * split views into separate main files to ease views finding;
 * rename files according to guidelines;
 * move data lost in views to data files (server action notably);
 * merge templates in the same file to have all available at hand;
 * move assets in their own file in order to remove noise from templates;

No functional behavior change should occur with this commit. Only move
has been performed.

Future commits will come that will change and improve the way survey behaves.
Having clean files holding code easier to find will help understanding future
changes.

Note that we might loose part of the history as splitting files creates a new
history for new files. However considering history of survey module that is
untouched since several versions we think the tradeoff is acceptable.

This commit is linked to task ID 1903617 and PR #28166.
2018-11-15 15:00:18 +01: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
Mohammed ShekhaandTejas Shahu f3f20653d3 [FIX] web: update renderer when _callButtonAction failed
Before this rev., the following scenario didn't work:

Open manufacturing order and click on Produce button (note that
bom product should have Serial number enabled) then add quantity
in Done field in o2m and press Record Production button in wizard,
it will produce UserError and after then if you change Lot number
field in wizard's o2m then the many2one value doesn't get selected.

This occured because the renderer wasn't updated after the RPC fail
and thus still got an outdated version of the state.

The issue raised after commit: 02eef78bbd which was done to remove
useless rpc call, it's OK to remove rpc call but let's keep
updating renderer.

Related to task ID: #1852715

Co-authored-by: Tejas Shahu <tsh@odoo.com>
2018-11-15 09:37:22 +01: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
Thibault Delavallée 6da632a68e [MOV] survey: split and move files according to their underlying model
Purpose of this commit is to polish a bit this old module before working
on it. Contains

 * split python model into separate main files to ease models understanding;
 * split views into separate main files to ease views finding;
 * move data lost in views to data files (server action notably);
 * merge templates in the same file to have all available at hand;
 * move assets in their own file in order to remove noise from templates;

No functional behavior change should occur with this commit. Only move
has been performed.

This commit is linked to task ID 1903617 and PR #28166.
2018-11-14 14:57:27 +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
Thibault Delavallée 066d677b56 [MOV] survey: rename files according to guidelines
Purpose of this commit is to rename some files before going into some more
work. No split or cleaning is done here, only preparing by doing some pure
renaming.

No functional behavior change should occur with this commit. Only move
has been performed.

This commit is linked to task ID 1903617 and PR #28166.
2018-11-14 14:51:25 +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
Goffin Simon 9148d86f35 [FIX] sale_stock: Decreasing ordered quantity on a SO
Steps to reproduce the bug:

- Set decimal precision to 7 for products.

- Order 2.000000 of a product.

- Deliver 2.6791200 of the product.

- Go back to the Sales order and change the ordered quantity to 2.6791200.

Bug:

A UserError was raised: "You cannot decrease the ordered quantity below the delivered quantity."

opw:1904580

closes odoo/odoo#28674
2018-11-14 12:42:56 +00:00