Commit Graph
134700 Commits
Author SHA1 Message Date
Lucas Lefèvre bd2e82b504 [FIX] base_setup: Add DOM id to license link
With Odoo Enterprise Edition, the license is still GNU LGPL.
A DOM id is added here to allow targeting the license link in `web_enterprise`

Task 2198484

closes odoo/odoo#46263

Related: odoo/enterprise#8776
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-02-25 14:32:39 +00:00
David Beguin c06a7cf2de [FIX] gamification: fix karma tracking demo data
Before this commit, when checking the gained karma per month or per week in
/profile/users route, the users gained more karma than they actually have.

This is due to the way demo data are loaded : karma tracking history is added
but when the final karma is set on the user, a new line of karma tracking is
created on the DB (via write or create method). But as the transaction with
karma tracking demo data is not commited yet, the old value is still 0.
That leads to add a new karma tracking line that have old_value = 0 and
new_value = user.karma. At the end the users 'gained' as addition the amount
of the karma they have.

E.g : Mitchell Admin has 2500 karma and his karma tracking history is the
following: 0 -> 1000 then 1000 -> 1500 then 1500 -> 2500.
In total, Mitchell should have gained 2500 XP: (2500-1500)+(1500-1000)+(1000-0)
But, before this commit, as there is an additional 0 to 2500 karma tracking
line, Mitchell Admin gain in total : (2500-0)+(2500-1500)+(1500-1000)+(1000-0)
= 5000 karma.

This commit clean that additional karma tracking line to get a correct karma
tracking history.

Task ID: 2209743
PR #48042

closes odoo/odoo#48061

X-original-commit: 858f80e2529b17d1857d77f372c378ae235443de
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-03-19 17:22:06 +00:00
Julien Mougenot 71af8ee4f8 [FIX] web: update clickAll test helpers
Before this commit and following the refactoring of the home menu and the control
panel to the Owl framework, some of the helpers of the 'clickEverywhere' test have
not been properly updated to the new classes/behaviours.

Now the selectors target the right elements and some actions that were previously
synchronous are now properly awaited (home menu toggling, filter menu interactions,
etc.).

Also slightly changed the behaviour of the clickAll functions:
- requesting a click on a null element will make the test crash (added some conditions
  to avoid this in a standard flow).
- any error crashing the test at a deeper level will be displayed in the console
- an animation frame is awaited after clicking on an element. This is to comply
  with the Owl rendering system.

closes odoo/odoo#47762

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-03-18 12:33:02 +00:00
Laurent Stukkens (LTU) ad986ee0db [FIX] purchase: set date_approve as now when approve
685f4eff50 added date_approved as
fields.Date.context_today
b5cea7e2b6 has changed the field
as a Datetime

Both together introduced a miss calculation of the date_approved

closes odoo/odoo#48055

X-original-commit: 6dff3024d19c9dd44c71992469540e3f09dd3247
Signed-off-by: Denis Ledoux (dle) <dle@odoo.com>
2020-03-19 16:33:05 +00:00
Swapnesh Shah 4613d95053 [FIX] purchase: No drag and drop when grouped by Vendor
Fixes #47727
Closes #47955
Before this commit, it was possible to change the Vendor/Currency of the PO when Grouped by Vendor/Currency on Kanban view which is not Ideal Behavior.

Now we block drag and drop using these fields.

closes odoo/odoo#48050

X-original-commit: 7b19964a203c205b67d8f3bc05c1279362d38a61
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-19 15:57:52 +00:00
Jeremy Kersten 5bdec6351a [FIX] web_editor: allow widget text on field html in studio
Before this commit, widget='text' was not available in web_studio since 'html'
was missing from the supportedFieldTypes list of the TextField.

After this commit you can use widget text (and other derivated type of text).

task-sbu-feedback

closes odoo/odoo#48043

X-original-commit: 34bd90e7fc2aa094eac92b6f635c2d8d933ecb86
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-03-19 15:20:29 +00:00
Odoo's Mergebot 04e07ba9aa [FW][FIX] website: perf - reduce SQL queries on hot execution on website page
This PR is the continuity of #46925

It is a bunch of small commits, retro compatible, that should reduce
the number of sql query for each page.

--

Optimistic stats
```
|                       | Query |   Time |
| --------------------- | ----- | ------ |
| website.page          |       |        |
| Before                |    25 | 0.0218 |
| Now                   |    12 | 0.0106 |
| tracked website.page  |       |        |
| Before                |    34 | 0.0276 |
| Now                   |    20 | 0.0123 |
| tracked homepage      |       |        |
| Before                |    34 | 0.0223 |
| Now                   |    19 | 0.0194 |
```

task-2211013

closes odoo/odoo#48048

Forward-port-of: odoo/odoo#47891
Forward-port-of: odoo/odoo#47257
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
2020-03-19 17:01:17 +01:00
Romain Derie ffd6ebff72 [FIX] website: add SQL performance test for page loading
This will ensure the performances stay correct for a blank page (no layout),
a standard page and a homepage (which has its own controller).

Related to #47257
task-2211013

X-original-commit: 08e01b5fc4a71b8f7639a953137fbb546ddf3b3e
2020-03-19 15:37:49 +00:00
Jeremy Kersten 89bbf76c44 [FIX] website: perf - get most specific in SQL
Before this commit, we would get all the pages for the requested URL then
filter to get the most specific.
This can just be done in SQL by sorting website_id desc so the specific are
returned first.

Note that this will respect 41897f0dba.

This will avoid having to prefetch the generic page when it is useless.

Related to #47257
task-2211013

X-original-commit: b31294592a80d9e55f887f0122cc01225b64966c
2020-03-19 15:37:48 +00:00
Romain Derie b98d9c968c [FIX] website: perf - ormcache the website menus
To avoid a SQL Query on hot state, the website menus ids are now prefetch.

Related to #47257
task-2211013

X-original-commit: 73421c27f01e7100403eaa72e027c34dbdf9f720
2020-03-19 15:37:48 +00:00
Jeremy Kersten 9430dd1287 [FIX] website: perf - use lang cache in url for.
Before this commit, url_lang (= url_for) will make query to find the lang_code
but we alrady have this info in ormcache with get_available method.

So instead to rebrowse (search query) the lang, we use a new method that will
try to find it in cache if possible before to make the query.

The gain on each page is n-1 (where n is # lang installed)
Because the switcher of languages do an url_for for each lang available.

Related to #47257
task-2211013

X-original-commit: 2cecbe356ce283e15fb0bbd0a6e9aa4735af520e
2020-03-19 15:37:47 +00:00
Jeremy Kersten 4c40393490 [FIX] website: perf - translation - avoid query to find what we know
Before this commit, each module override _get_translation_frontend_modules_domain
from ir.http to add its own translation in website if needed and that module
is not starting by website_. Updating the domain from the super() call.
Since we know in most of the case the name, it is useless to do a:
   select name from module where name = 'name1' or name = 'name2'...

Now we support a new override of _get_translation_frontend_modules_name that will
allow to add the known module name directly in the list instead to make a search.

In case nobody override _get_translation_frontend_modules_domain, we don't need to
make an extra rpc to find the module.

Related to #47257
task-2211013

X-original-commit: 0dc54814161ab55c34dd2242f65dea23d19fdfca
2020-03-19 15:37:47 +00:00
Jeremy Kersten c2142a34f7 [FIX] website: perf - cache the compute hash for translation
Before this commit, we compute the hash on each request, to know if we need to
download the file from the frontend or if we can use cache.

Now we store the hash computed in cache. The cache will be invalidated when we
touch one of these translations (openerp-web in the comments) or when you
install a new lang (already the case).

+ avoid to use read on a record, since it will not use the cache from record.

Related to #47257
task-2211013

X-original-commit: d5aaecbc51de19ef1d8d9988b691177fc73a4b86
2020-03-19 15:37:47 +00:00
Romain Derie e27eb978a6 [FIX] website: perf - don't force homepage on website in data
Let the homepage being set in bootstraping

Without this, any -i will set generic homepage as website homepage_id.
This is not really an issue for enduser as they probably don't do -i once
website is already installed.

But this code was useless anyway, as the homepage_id set in XML would be
overriden during bootstraping of the homepage in website create() override.

Note that this is important to have the correct homepage_id in DB, otherwise
it has to prefetch the generic homepage.

Related to #47257
task-2211013

X-original-commit: 385203d7632daeaab762c57319cc93b8312cc043
2020-03-19 15:37:46 +00:00
fja-odoo 124c3539aa [FIX] website: perf - prefetch access token to avoid extra request
Access_token has a restricted group, so it not fetched by defaut.

In our case, we know that after the first access to partner_id, that will fill
the cache without access_token, we will access access_token (so new query).

So we access first the access_token, to have only one request that fill the
cache with the access_token, and the partner_id used later.

Related to #47257
task-2211013

X-original-commit: 7dd69d10d00d5f4a7c12ec414d63f868a10683be
2020-03-19 15:37:46 +00:00
Jeremy Kersten 51c9599b79 [FIX] website: perf - use lang cached to check if rtl or not
Before this commit, on each rendering of frontend layout, we make a new request
to check if env lang was in rtl or ltr.

Now we use a cached method, that have more than probably already cached this
record.

Related to #47257
task-2211013

X-original-commit: 7566b06500e42593919631cc6fa180aececfc623
2020-03-19 15:37:45 +00:00
Jeremy Kersten 30f24d1ca7 [FIX] website: perf - don't search backend menu if you will not see it
Before this commit, in all cases, we search the backend menu to open if you
click on edit backend menu.
But the backend menu edit is useless for non editor user.

This feature has been introduce in v13, since eLearning have his own apps, so
when you edit in backend, you want to see the slide form view, into the
elearning app and no website App.

Related to #47257
task-2211013

X-original-commit: 1da7e53f4cdd82574688eb62f7a1cb8ddca871e6
2020-03-19 15:37:45 +00:00
Sébastien Theys 1d981f22f3 [FIX] website: perf - prefetch website.menu's mega_menu_content
Since this field is not sanitized, it is safe (perf wise) to prefetch it.
It should not be CPU heavy, plus whenever we access a `website.menu`, it is
most likely we will read that field.

with following structure, 5 SQL queries will be avoided:
- Top menu
  - Home
  - Contact us
    - Sub Contact us
      - Sub Sub Contact us

Related to #47257
task-2211013

X-original-commit: 20cddcd899e7a119fa9f365e62527499f8e5ff7d
2020-03-19 15:37:44 +00:00
Romain Derie f95af92ae3 [FIX] website: perf - prefetch every website menus in one go
Without this commit, the website menus would not be prefetch all in once.
Thus, every call to `submenu` template (called recursively) would do SQL
queries. One when accessing website.menu_id, then for every access on menu's
child_ids. It would also make an extra request for groups since the menus have
an ir.rule for that.

with following structure, 13 SQL queries will be avoided, regardless if there is
a group or not on the menus:
- Top menu
  - Home
  - Contact us
    - Sub Contact us
      - Sub Sub Contact us

Related to #47257
task-2211013

X-original-commit: 7fb016f9966bb5e2289ba17eacafb8887626514e
2020-03-19 15:37:44 +00:00
svs-odoo 96486de1c1 [FIX] stock: start/continue inventory
Related to 18e5416636

Due to changes made into the related commit, the buttons to start or
continue an inventory adjustment no more work.

closes odoo/odoo#47795

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-19 08:01:30 +00:00
svs-odoo d3c6e1fbc2 [REM] stock: quant default search group
Since trying to create a record in a grouped tree view has no effect
(previously that opens a new record in form view), this commit removes
useless dynamically added default group for the quant list view.

task-2217907
2020-03-19 08:01:30 +00:00
svs-odoo 51d43c0cd4 [FIX] stock: qty on hand display 0 qty product
Related to b08e3d114a

Since the related commit, when a product has no available quantity, the
button "Update Quantity" and the stat button "Qty. On Hand" doesn't work
properly: the view doesn't find the default product(s) and doesn't adapt
the fields according to the product (for instance: serial/lot number).
To fix that, we need to take also all active product variants of the
template, even they have no available quantity.

task-2217907
2020-03-19 08:01:30 +00:00
Rémy Baranx (bar) bbd4391c15 [IMP] various: update of documentation links in res.config
Purpose
=======

- Change the font-awesome icon from fa-book to fa-question.
- Change the icon color to text-secondary (the same than the multi-company
  icon).
- Adjust the icon size to the uppercase text size.

closes odoo/odoo#47210

Taskid: 2209062
Related: odoo/enterprise#9116
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-18 09:53:15 +00:00
Odoo's Mergebot 70f3dd8a17 [IMP] survey: allow more question type scoring
### PURPOSE

Support correct answers, scoring mechanism, and demo data on additional question types:
- Numerical Value
- Date
- Datetime

Additional improvements and fixes include:
- When checking answer type, add in check to allow 0 as a valid survey answer to a question of type Numerical Value.
-  Include "most common" tab for question type Date in results page.
- Do not show skipped answer (i.e. blank User Response value) rows in results page tables (for results of non-choice questions).

### SPECIFICATIONS

**New question types scoring:**

Previously only the question_types: 'simple_choice' and 'multiple_choice' could be scored and have a "correct" answer(s). This change makes it so that question_types: 'numerical_box', 'date', and 'datetime' can also have a "correct" answer and an associated 'answer_score'. Some restructuring of scoring logic was required in order to accommodate and better streamline new question_types scoring.

Demo and testing data also added for these new scorable question types. New demo data includes both scored and unscored (i.e. answer_score = 0) instances for the 3 question types to ensure differing behavior is viewable in survey results. During this update, errors in existing demo data were fixed when discovered. The same demo data additions/updates were duplicated in the relevant tests.

**Additional improvements/fixes:**

- Answer type check: additional conditional needed to handle 0 evaluating to False even though it is a valid entry as a numerical value.
- "most common" tab added only for Date since it is currently not expected to be useful for Datetime questions. Implementation is left generic for future additional question types scoring implementations.
- Skipped answers were shown either as a blank value for Date, Datetime, Multiple Line Text Box, Single Line Text Box or 0.0 for Numerical Value question types. A simple check to skip these skipped lines from being shown in the results page is all that is needed.
- Light rewriting of question form view to include answer-related options and choices directly in the "Answer" tab.

LINKS

Upgrade PR: odoo/upgrade#835
Task ID: 2061937

closes odoo/odoo#43014

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-03-19 17:00:26 +01:00
Tiffany Chang (tic) 0ca0e681db [IMP] survey: add "most common" date results tab
Under a survey's results (i.e. summary of all user submissions) the
question type 'numerical_box' has a "Most Common" tab of its results
displaying the top 5 survey user answers. This commit adds the same tab
to question type 'date'. It is expected this tab will be most useful for
'date' questions that are scored.

Implementation was left generic to allow for other question types to
easily adopt similar display. For now, question types: 'text_box' and
'char_box' results do not have a "Most Common" tab since this currently
adds no benefit (once scoring is implemented for 'char_box', then there
may be a benefit for it). 'datetime' is also expected to not benefit
from this additional tab and requires a more complicated implementation
to handle timezone display consistently between tabs and potential
"Right answer" (see related task id: 2169184).

Upgrade PR: odoo/upgrade#835
Task ID: 2061937
2020-03-18 10:17:42 +00:00
Tiffany Chang (tic) c099a504ad [IMP] survey: add new scoreable questions demo/test data
Adding additional demo and test data for new scorable question types:
'numerical_box', 'date', and 'datetime'. Includes both a scored and
unscored (i.e. answer_score = 0) version for each question type to
ensure differing behavior is viewable in survey results.

Also updating existing data/tests to:
1. Follow American standard for $ placement.
2. Have hardcoded 'answer_is_correct' and 'answer_score' demo data (due
   to updated correct answer implementation being done via frontend
   input only)
3. Update minor errors in the existing demo data (for example, removing
   2nd answer for a single answer choice question for the same survey
   submission).

Upgrade PR: odoo/upgrade#835
Task ID: 2061937
2020-03-18 10:17:08 +00:00
Tiffany Chang (tic) fb7b30b2e1 [REF] survey: allow more question type scoring
Previously only the question_types 'simple_choice' and 'multiple_choice' were
scoreable and could have "correct" answer(s).

In this commit we change this behavior so that question_types 'numerical_box',
'date', and 'datetime' can also have a "correct" answer and an associated
answer_score.

Task ID: 2061937
Community PR #43014
Upgrade PR odoo/upgrade#835
2020-03-18 10:16:10 +00:00
JPRandmba-odoo 0beebad0ff [IMP] sale, sale_management: avoid reload when add optional product added in portal
porpose of the task is to avoid the reload of the web client
when you add an optional product, in the customer portal

this commit will fix the issue of window reload when add optional product and delete
product in customer portal.
removed order line from sale order, when a customer set the quantity of an option line to 0 in the portal

task-1961015
Closes #32551

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: mba-odoo <mba@odoo.com>
2020-03-16 09:02:23 +00:00
Aaron Bohy 0b88e862a8 [FIX] web: editable list: activate correct field
We have an editable list with 4 fields:
  - fieldA (say boolean)
  - fieldB with readonly modifier, readonly iff fieldA is true
  - fieldC with readonly modifier, readonly iff fieldA is false
  - fieldD

Add a new row to the list: fieldA being false by default, fieldC
is readonly whereas fieldB isn't.

Change the value of fieldA: fieldB becomes readonly, and fieldC is
now editable.

From that point, before this commit, clicking on fieldC activated
fieldD (instead of fieldC).

The bug occurred since 3fd7b20, which added a delay between
the moment fields are re-rendered (and inserted at the end of
allFieldWidgets) and the moment there previous instances are
destroyed (and the new ones take their place in the list). So when
several fields were re-rendered at the same time, the order in
allFieldWidgets could not match the actual column order anymore,
and cause issues like the one described above.

Part of task 2210323

closes odoo/odoo#48039

X-original-commit: 89b9717c08e148ad94db17d8746faa2312b6a07a
Signed-off-by: Michaël Mattiello <mcm-odoo@users.noreply.github.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-03-19 14:59:50 +00:00
Nicolas Martinelli b42e9c4547 [FIX] stock: immediate transfer
- Install Purchase
- Activate multi-step routes, multi warehouses and packaging
- Create 2 wharehouses WH1 et WH2
- 'WH1: Receipts' and 'WH2: Receipts'
  Show Detailed Operations: True
  Pre-fill Detailed Operations: True
  Move Entire Packages: True
- 'WH1: Internal Transfers'
  Show Detailed Operations: True
  Move Entire Packages: True
- Create a route 'WH1 -> WH2':
  Applicable On WH1
  Rule:
    Action: Push To
    Operation Type: WH2: Receipts
    Source Location: Virtual Locations/Inter Company Transit
    Destination Locaion: WH2/Stock
    Automatic Move: Manual Operation
- Create a PO for 100 units of P1 and P2, validate
- Go to the picking, set 40 units done for P1 and P2
  => Put in Pack
- Set 60 units done for P1 and P2
  => Put in Pack
- Validate
- Create an Internal Transfer in WH1:
  Operation Type: WH1: Internal Transfers
  Source Location: WH1/Stock
  Destination Location: Virtual Locations/Inter Company Transit
- Add the 2 packages previously created, save and validate

4 pickings are created in 'WH2: Receipts': 40 P1, 40 P2, 60 P1 and 60
P2. There should only be one picking with the 2 packages.

The issue is similar to 2d4a743600f4501bbbed60a063ea2a87f1bce075: the
`default_immediate_transfer` context key pollutes the creation of the
pickings.

opw-2197720

closes odoo/odoo#48038

X-original-commit: 6e5cfb62b43f0781c246e9a27259e63199203221
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-19 14:59:28 +00:00
Barad Mahendra 38fab0afcf [IMP] project, sale_timesheet: Make demo data compatible with timesheet app
Currently when the timesheet is filled by the timesheet syncronization
app then it was not going to display the demo projects to project
selection dropdown due to restricted domain and demo data of timesheet
was not properly appear in timesheet app

So updated the demo project in such way that it should display the demo
project's and task to the timesheet app.
Added the demo project to the favourite list of the admin so it should
appear on the selection of the timesheet App and modify the sale's order
project and task so it should display the proper data to app.

closes odoo/odoo#47570

Taskid: 2194361
Closes: #47570
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-19 05:30:35 +00:00
jdoutreloux 1d0b5072f8 [FIX] sale_timesheet : fix the default value for timesheet_product_id
The timesheet_product_id is required if allow_billable is True and
it should have a default value.

Task-2199650

closes odoo/odoo#48028

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-11 15:22:21 +00:00
Rémy Baranx (bar) 6ab6750041 [IMP] sale_timesheet: prevent tasks/projects deletion used on timesheets
If a timesheet has already been invoiced (and the invoice is in 'posted' state),
it is not possible to delete it anymore.

closes odoo/odoo#46891

Taskid: 2168071
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-19 13:00:55 +00:00
Rémy Baranx (bar) 1a3c9be63d [IMP] hr_timesheet: prevent deleting tasks/projects linked to timesheets
In order to avoid losing some timesheets after tasks/projects deletion,
a warning message is displayed to the user to inform him that before
deleting tasks/projects, he has to delete timesheets associated to these
tasks/projects.

To ease this process, a button on the warning form allows him to directly
see the list of timesheets associated to selected tasks/projects (using
RedirectWarning exception).

TaskID: 2168071
2020-03-19 13:00:04 +00:00
Rémy Baranx (bar) b3d9647695 [IMP] web: use do_action instead of BBQ push_state on RedirectWarning
In the RedirectWarning exception handler, it is better
to use 'do_action()' instead of using a BBQ push_state() and then
a location.reload(), to preserve the context and avoid losing menus
and breadcrumbs for example.

As the RedirectWarning receives only the action ID and not the full
action, a new parameter has been added to be able to provide a context.
This context is added in the 'additional_context' parameter of the do_action()

TaskID: 2168071
2020-03-19 12:59:09 +00:00
Laurent Smet 8e64645b5a [FIX] purchase: Fix unknown field '_invoice_payment_ref'
closes odoo/odoo#48008

X-original-commit: 3f7da29c850740d7b45dda5210d9fa612b4405cb
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2020-03-19 11:34:56 +00:00
Christophe Monniez 7e1481355f [FIX] tests: move post_install only warning into browser_js
This warning should only appear when Chrome is used.

closes odoo/odoo#48009

X-original-commit: 013b32f000520217af17b6e1ffe1872ec97afdf0
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2020-03-19 11:47:41 +00:00
Simon Lejeune d0fc2ecfaa [FIX] stock: unlink zero quants
If you create a quant through the inventory mode of the list view and
you don't set a quantity, the quantity is null and the quant isn't
unlinked by _unlink_zero_quants.

Also consider null quantity as 0.

We don't have the issue for the reserved_quantity field since this one
is not nullable.

closes odoo/odoo#48005

X-original-commit: 08e428458aa545b3602c56b6866a447126cf8825
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-19 10:56:36 +00:00
Cedric Snauwaert 5b7cff06f7 [FIX] account: don't recompute ending balance of last statement
Previously a task was created to prevent holes between bank statement,
meaning that starting balance should always be the same as previous
ending balance. The goal was that during synchronization or imports,
we could add statement lines in previous statement and not have to
recompute manually the full chain of starting and ending balance of
next statements entries. This works fine with online synchronization
as we always write after creating the statements the balance
of the account on the latest statements to detect missing stmts,
however if we create stmts by hand, it is possible that we have the
following case:

Statement on 10 January with a starting and ending balance of 100 and 200
respectively. We are missing 2 statements with a line of 50 each before that
date. So we create the first missing statement at date: 8 January with a
starting balance 0 and ending balance 50, this will recompute the starting
and ending balance of next statement and overwrite the values to 50 and 150
(starting and ending balance respectively). At that time the system will say
that everything is normal but we are still missing a stmt and we are not seeing
it.

The way to fix this is by not touching the ending balance of the last
stmt entry during the computation, that way we can still detect that there is
an error and that 50€ are still missing.

closes odoo/odoo#48000

X-original-commit: b97b4f4217989e8cae5c32be0d62c11d36eaf1d7
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2020-03-19 10:30:43 +00:00
Cedric Snauwaert eee8ecdc02 [FIX] account: fix rounding error in is_valid_balance_start check
Field is_valid_balance_check is used to display a warning in case
starting balance of a bank statement is not the same as ending balance
of the previous statement. However the check was done without rounding
resulting in some error in the following casse:
starting_balance = 10.00000001
previous_ending_balance = 10

X-original-commit: 6673d23cfdee97b1e5e6368bc527a9a784578977
2020-03-19 10:30:42 +00:00
Nicolas Martinelli 3590efa478 [FIX] stock_account: no analytic info on COGS
- Create a FIFO product, Automated
- Make some stock
- Create a SO, add the product
- On the SO, add an analytic account
- Validate the picking, create the invoice
  => the analytic info are propagated to the invoice, as expected
- Validate the invoice

The analytic info is propagated on the COGS entries, in particular the
the output account, which is incorrect.

Lost forward-port of 24c7efc8fef63437ac28883b29ed84809234ed76

closes odoo/odoo#47995

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-03-19 10:17:58 +00:00
Romain Derie e7ef57f687 [FIX] website_blog, website_event: prevent wrong meta og:image URL
Without this commit, if the cover properties's background-image contains single
quotes in the `url()`, that will lead to 404 image in SEO dialog.
It will also lead to wrong og:image in the DOM.

Before:
`<meta property="og:image" content="'website_blog/static/src/img/cover_1.jpg'"/>`
Now:
`<meta property="og:image" content="http://localhost:8069/website_blog/static/src/img/cover_1.jpg"/>`

This is the case for all our demo data.

closes odoo/odoo#47994

X-original-commit: 2338f8ecc8c21299774e288ab07bb084a58cc7ab
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
2020-03-19 10:15:37 +00:00
Julien Mougenot 22e583a882 [FIX] stock: fix traceability action traceback
Before this commit, the control panel of the stock traceability report actions was
updated before being instantiated.

Now, only the props of the control panel are updated before its first rendering.
Added a test asserting that the action is properly working.

closes odoo/odoo#47823

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-03-19 10:24:54 +00:00
Pierre Paridans eb724d9add [FIX] mail: correctly parse datetime returned from server
When a user is Out-of-Office, the return date is displayed as "Invalid
date" on Safari (both iOS & macOS).

The parsing of the date returned by the server was done using the Date
constructor and passing the string as-is. This constructor delegates the
parsing to the `Date.parse` method. But the DateTime format used to
stringify dates in Odoo doesn't fully follow the ISO 8601, as required
by `Date.parse()`:

expected format: "YYYY-MM-DDTHH:mm:ss.sssZ"
actual format: "YYYY-MM-DD HH:mm:ss"

Also, Safari applies more strictly to this requirement than Chrome &
Firefox, resulting in a parsing error in the former browser.

This commit fixes it by using the utility function `str_to_datetime`
from `web.time` to correctly parse this date, independently of the
browser used.

NB: as this issue is browser dependent, no test has been added.

References:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
https://tc39.es/ecma262/#sec-date-time-string-format

Task ID: 2198486

closes odoo/odoo#47987

X-original-commit: b85a44aea9617b9018dd80d5f8159354bbc88f09
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2020-03-19 09:38:07 +00:00
Xavier Morel fe376d50d0 [FIX] core, base: leftover deprecation warnings
* from collections import <ABC> is deprecated, unclear why the
  deprecation warning didn't appear before (possibly only appears in
  3.7/3.8?) either way `collections.abc` should be 3.3+ so switch
  everything to it.
* add some more ignores on third-party packages deprecation
  warnings (meh)
* while at it, mitigate generation of non-breaking space on some
  versions of Babel (in the french locale used by our tests anyway)

closes odoo/odoo#47581

Related: odoo/enterprise#9214
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-03-19 09:32:21 +00:00
Siddarth Gajjar 41822a5022 [IMP] web: improve height of input inside oe_title > h1
studio now supports adding of oe_avatar, in few cases oe_avatar field is added
inside oe_title > h1 and while input is also inside h1 so height of input
increase as we have image tag as a sibling, to fix this set height of input
to fit-content.

task-2172320
Closes #47968

Related: odoo/enterprise#8176
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-03-19 09:16:50 +00:00
Dharmraj Jhala 7557ac299b [FIX] web: properly set page data in 'ModelFieldSelector' widget
When passing a default field chain to ModelFieldSelector, the page data is
not set correctly for the relational field. To understand the issue :

- login to master enterprise all db branch in runbot (debug mode recommended)
- create a mass mailing, add subject, select 'Contact' in `Recipients` field
- click on domain selector and select 'Company' from ModelFieldSelector popover
- click somewhere else to close the popover
- again open domain selector and observe the popover

Current behavior : fields of  `Contact` are visible in the page even thogh
                   `Company` is selected in the ModelFieldSelector
Expected behavior : fields of `Company` should be visible in the dropdown page

This commit fixes the issue by correctly pushing the page data
in ModelFieldSelector.

task - 2058702

closes odoo/odoo#39548

Related: odoo/enterprise#5370
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-03-19 09:21:20 +00:00
Julien Mougenot 9cf534f577 [REF] web: properly wait for services to start
When using a mock environment, some services are started and need to be loaded
for some tests to work as intended. Before this commit, we waited for the result
of the `start` method of each service to be resolved. This was flawed because these
methods are all synchronous, so the awaiting period was actually a single microtask
tick.

To clarify this and still make sure that the asynchronous services have enough time
to load properly, the `Promise.all` has been replaced by an Owl next tick method
(with animation frame request).

Consistently waiting for services to be fully ready does not make sense anyway as
we may want to mock a delay during the starting mechanism.

closes odoo/odoo#47865

Related: odoo/enterprise#9328
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-03-18 14:51:36 +00:00
Julien Mougenot c9ce8a07e1 [REF] mail: update discuss helpers
Update the 'createDisuss' helper to be appended to the DOM using 'dom.prepend' to
benefit of its 'on_(attach|detach)_callback' calls. This allows the mail test suite
environment to be closer to the actual action behaviour (having those methods called
each time it is created/destroyed).

Some tests in which these methods were manually called have been adapted.

Also, one of the tests was destroying the action too quickly and exposed an issue
within the Discuss action, in the 'on_detach_callback' method. It has thus been
fixed as well.
2020-03-18 14:51:35 +00:00
Lucas Lefèvre 3ad4abe171 [IMP] sale: Change default invoicing policy
Purpose
=======
The default invoicing policy should be based on the delivered quantities
by default because:
- In countries with anglosaxon accounting, that's mandatory
- Even for other countries, it's probably as frequent as the "based on ordered"
  quantities

Task 2159161

closes odoo/odoo#47526

Related: odoo/enterprise#9355
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-19 07:44:40 +00:00