Commit Graph
137577 Commits
Author SHA1 Message Date
William Henrotin 22be775cdc [FIX] mrp: bypass flexible consumption check in immediate production
Case:
  - create a MO for 3 units
  - produce only one but with more than a third of the components
  - the flexible consumption wizard is triggered, accept and make the
  backorder.
  - Mark as done the backorder, the immediate production wizard is
  triggered, accept it.

-> the flexible wizard is triggered again as the components quantity do
not respect the BoM. In this specific case, we want to consume all the
remaining component so we would like to avoid the flexible warning.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 18dddc2027 [FIX] mrp: force default value to 0
Commit 47e40e7f6a set a default value for
the stock moves initial demand (default_product_uom_qty). The issue is
the stock_move_line models also have a product_uom_qty field. This field
on the line is also st to 1 in the default get. Which is non desired side
effect.
This commit adds another default_product_uom_qty equals to 0 for the
stock move lines.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 10a07529b0 [FIX] mrp: change quantity wizard stop producing
Case :
  - production with workorder
  - 0 qty_producing
  - Change product quantity via the wizard
  - the qty_producing is set to the maximum

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 161b3ec702 [FIX] mrp: update only sooner scheduled date
Starting a workorder should update the scheduled date only if the production
is started sooner than expected. In this case we want to clear the
calendar for the other production. If the production is started later
than expected, updating the calendar has no effect. We leave the
scheduled date unchanged to keep the information

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 67e258ef1f [FIX] mrp: additional workorders start without conflict
As additional workorder don't have operation, the cycle computation was
wrong and all the start date was set to the same value

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin de68d33979 [FIX] mrp: production form view improvement
This commit:
  - Show 'Plan' button even in to_close state
  - Move UoM column after quantity done one (like in stock)
  - Hide lot_producing field in state draft
  - Hide production locations if multi location groups is not set

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 3948a8a2c9 [FIX] mrp: tab relabelling
Rename operation into workorder to make distinction with the stock transfers
operations.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 404eb2f00f [FIX] mrp: do not erase move raw at onchange without bom
With this commit, the move raw refresher onchange is bypassed in case of
empty BoM. As the manufacturing user can adds some components on the fly
to create a non manufactured product, changing the quantity to produce
or the unit of measur will erase all the move raw and recreate them from
the BoM lines. As no boms are set, the components are just deleted.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 2a59fdb014 [FIX] mrp: bypass _plan_workorder in case of no workorder
The _plan_workorder function is callable for the production order list
view. Calling it on production without workorder make no sense and can
even crash.
This commit bypass it in those case

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 963ad5eada [FIX] mrp: keep duration ratio
Updating the quantity to produce on a production order will recompute
the expected production duration. This can be counter productive on
prototyping production when no BoM are given. The default expected batch
duration is set to 60 minutes. Setting the actual production time then
updating the quantity to produce will naively change the duration to
60 x the new quantity.
This commit compute the duration pro rata in case of 'no BoM' production
and recompute everything in case of BoM production.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 68f06c7acc [FIX] mrp: copying production order copy all moves
Before this commit, only the moves raw were copied on production
duplication. As the finished move is created normally in an onchange,
this means a production order duplicated have not any move finished.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 57f243bcbb [FIX] mrp: view improvement
Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 49e8fe82af [FIX] mrp: delete finished move at onchange
Changing the Bom on a production order will erase all the raw moves to
recreate the new ones. This commit make sure the finished product are
erased as well.
Before this commit, if the product was changed with the BoM. The first
finished product became a byproduct for the second one.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin 004e7f3256 [FIX] mrp: do not split additional product
On a production, additional are supposed to be linked to the current
lot/serial number and not to the total production like the raw component
on the BoM.
This commit do not split stock move for those product anymore at the
backorder creation.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin af7716df46 [IMP] mrp_workorder: remove activity mixin on workorder 2020-08-10 09:40:24 +00:00
William Henrotin 1cc0af304f [IMP] mrp: replan workorders on delays
In a scenario parent mo <-> child mo, delaying the production start on
the child mo will delay the parent start but not the parent's workorders
This commit will replan the workorders each time a planned production is
delayed.

Task : 2278147
2020-08-10 09:40:24 +00:00
William Henrotin a6cd4d8c8c [IMP] mrp: immediate production
This commit introduce the immediate production mechanism. As it works on
stock.picking, marking a (some) production(s) as done without consuming
anything will pop a wizard allowing the user to transfer all the reserve
component quantities as done quantities.

Task : 2278147
2020-08-10 09:40:24 +00:00
Thibault Francois 53356a5dcf [FIX] sale_timesheet: Create invoice from SO with section
Problem:
When you try to create an invoice from a sale order that contains
section and post paid service product.
You set a date_invoice_timesheet in the wizard.

You got a traceback excpected singleton product.product()
This is cause by the filtering of so line with
sol.product_id._is_delivered_timesheet()
when the sale order line has no product for a section or a note

Solution:
Check there is a product on the line first

closes odoo/odoo#55353

X-original-commit: b49e64d3b118c938154eeeeb85c5fd6d72561a82
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
Signed-off-by: Thibault Francois <tfr-odoo@users.noreply.github.com>
2020-08-03 16:48:26 +00:00
Benjamin Vray 798fa36471 [IMP] website, *: add missing options previews
*: web_editor, website_blog, website_form

task-2280397

closes odoo/odoo#53516

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-08-10 14:51:30 +00:00
fw-bot 600a1da6c3 [ADD] l10n_ar: add moved methods from l10n_ar_edi
This method will be change to generic and to be use for both
l10n_ar_edi and l10n_ar_reports modules

fw-port of 50882

closes odoo/odoo#55687

Related: odoo/enterprise#12329
Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-10 13:48:57 +00:00
oco-odoo be63b44845 [FIX] account, point_of_sale: correct tax_audit computation for pos returns
https://github.com/odoo/enterprise/pull/12091 changed the way the tax report computes its totals wit account moves resulting for return operations in pos. This commit does the same on tax_audit field, so that it stays consistent with the report.

closes odoo/odoo#55664

X-original-commit: 67b3d70c8425dee17731e7b94bcb4797d4b06a97
Related: odoo/enterprise#12320
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2020-08-10 08:14:23 +00:00
Xavier Dubuc 2be6e37aca [FIX] mail: tweak activity mark done popover
- focus feedback textarea on open
- close popover on ESCAPE

task-2250472

closes odoo/odoo#55683

X-original-commit: 63c77139828ff029d76ff4237dcdb5a3aff5265d
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-10 10:30:13 +00:00
Xavier Dubuc 62aad0ff66 [FIX] mail: avoid activities handling on view without activity_ids field
task-2314240

closes odoo/odoo#55679

X-original-commit: 7f626587bd7024e8141662fcc7b9f3cb1ac9485b
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-08-10 09:52:54 +00:00
Nikunj Ladava 658c3e78a2 [IMP] l10n_co: update module description and icon
task- 2316486

closes odoo/odoo#55676

Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-10 10:16:14 +00:00
Nikunj Ladava ade90e8baa [IMP] l10n_uy: update module description
task- 2316493

closes odoo/odoo#55673

Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-10 09:11:10 +00:00
Florian Gilbert 01b8a75061 [FIX] account: add date for fiscal year lock date domain
When an user wants to lock his fiscal year lock date.
The system checks whether all the bank statement lines are reconciled.
However, the date must also be added to the search domain to receive
only the bank statement lines that are included in the lock date.

Task ID: 2297407

closes odoo/odoo#55672

X-original-commit: d232ecacda28614f36dd655a3f000290c6d3a91c
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2020-08-10 09:15:02 +00:00
Florian Gilbert 3a0e364758 [FIX] account: Order move for hash & add security check for resequence
Order move for hash: In the method write, we sort the recordset following this rule: by date, by ref and by id.
This rule is used because we need to be consistent with the method _compute_name.
If we don't filter moves like that, we could possibly have a problem.
If you have several moves and you post them at the same moment with the action "Post entries", the hash sequence
could be in another order than the name sequence.
For example:
Move_20 (29/07/2020) - Hash_2
Move_21 (02/07/2020) - Hash_1

About security check, if the hash is activated, the user cannot reorder by date with resequence
because we don't want that the name sequence have not the same order than hash sequence.

Task ID: 2297407

closes odoo/odoo#55669

X-original-commit: b3ae96dc52178a3b13dda845244fe34268aed8a0
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2020-08-10 08:59:45 +00:00
1e2e0f663e [FIX] web: MEASURES button disappearing when switching back to graph
before this commit, when change view from graph view to pivot view or any other
view and come back to graph view, Measures button disappear, it's only
appearing if we refresh the page.

after this commit, restore previous view state when switching back to graph
view, this was because measures button is rendered in fragment and when
switching between views, as graph view element was destroyed and re-rendered
so measures button will be mounted in fragment as update method of
ComponentWrapper will render it from previous mountArgs, so to avoid this issue
push measures element in DOM.

task-2250051

closes odoo/odoo#55666

X-original-commit: 40c709fb0abe7721d1650af9bd1d17dc8453895a
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mohammed Shekha <msh@odoo.com>
2020-08-10 08:35:10 +00:00
Katherine Zaoral d422192185 [FIX] l10n_latam_invoice_document: fix invoice form view.
The latam docuemnts used for document type an document number are not
showed correctly in the view, they displaying to close side by side and
the related labels are not show.

After this PR this has been fixed and now we have the labels and the
proper separation of the fields in the invoice form view.

closes odoo/odoo#55648

Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-07 22:25:03 +00:00
Yoshi Tashiro 360e910da4 [IMP] base: show module in translation tree
Useful information to identify where a translation comes from
Remove base.group_no_one as the view is already in debug only and
technical

closes odoo/odoo#55649

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-10 08:34:22 +00:00
Katherine Zaoral d167dc201b [FIX] l10n_ar: depreacated post to action_post
Change references of deprecated method in demo data to avoid WARNING message in
odoo log::

    ... WARNING ar py.warnings: ... DeprecationWarning: RedirectWarning
    method 'post()' is a deprecated alias to 'action_post()' or _post()
    DeprecationWarning

closes odoo/odoo#55647

Signed-off-by: Josse Colpaert <jco@openerp.com>
2020-08-07 21:00:36 +00:00
Fabien Pinckaers d56224d35b [IMP] sale: improve first steps onboarding copy writing
PURPOSE

Improve user experience by improving copy writing of tour steps and first
encountered screens.

SPECIFIFCATIONS

Improve Orders to upsell empty list help to help users understanding how
to use it.

LINKS

Task ID-2316699
PR #55604

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-10 08:21:58 +00:00
Fabien Pinckaers f130bb90aa [IMP] crm: improve first steps onboarding copy writing
PURPOSE

Improve user experience by improving copy writing of tour steps and first
encountered screens.

SPECIFIFCATIONS

Improve Pipeline empty list help to be more catchy and help users doing their
first opportunity related steps.

Improve tour copy writing.

LINKS

Task ID-2316699
PR #55604
2020-08-10 08:20:17 +00:00
Dharmraj Jhala e25604e597 [FIX] mail, test_mail: remove archived/deleted users from mail channels
When users are archived / deleted, they are still listed under the members
of a channel. This means that those users could potentially still receive
internal communications.

This commit fixes the issue by removing archived / deleted users from the
members of the private channels they were part of. However, they are not
automatically removed from the public channels.

Public channels are kepts as in most common cases public channels are
mailing list (e-mail based) and so user's partner should always receive
updates from public channels until they manually un-subscribe themselves.

Task ID-2276681

closes odoo/odoo#55496

X-original-commit: 1a3dc58f3d987054c643556dc4b7c3dbcd3d074c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-06 06:13:34 +00:00
Florian Gilbert 2c926abcb3 [IMP] l10n_fr_fec: Set lock date when user ask for official FEC file.
Add the possibility to download a test FEC file.
Set the fiscal year lock date when the user ask an official FEC file.
Add some basic checks.

Task ID: 2297407

closes odoo/odoo#55311

Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
2020-08-07 07:00:48 +00:00
Florian Gilbert 2720cf570c [IMP] account: Change Validation error to redirect warning for lock date
Change ValidationError to RedirectWarning, RedirectWarning is usefull to redirect user to
the problem. For the lock date, we can redirect user to unposted entries or unreconciled bank statement lines.

Task ID: 2297407
2020-08-07 06:59:25 +00:00
Florian Gilbert 6a7ac8eee1 [IMP] account: Change access rights for resequence
Only advisor (or more) can use resequence.

Task ID: 2297407
2020-08-07 06:58:40 +00:00
Olivier Dony 1bd9e8ab20 [FIX] base: avoid bpo-35805 corrupting Message-Id
Python 3 before 3.8 has a bug that causes the email.policy classes to
incorrectly fold and RFC2047-encode "identification fields" in email
messages. This mainly applies to Message-Id, References, and In-Reply-To
fields.

We are impacted by this bug since odoo/odoo#35929 where we switched to
using the "modern" email.message API.

RFC2047 section 5 clearly states that those headers/fields are not to be
encoded, and that would violate RFC5322.

Further, such a folded Message-Id is considered non-RFC-conformant by
popular MTAs (GMail, Outlook), which will then generate *another*
Message-Id field, causing the original threading information to be lost.
Replies to such a modified message will reference the new, unknown
Message-Id, and won't be attached to the original thread.

The solution we adopt here is to monkey-patch the SMTP policies to
special-case those identification fields and deactivate the automatic
folding, until the bug is properly and fully fixed in the standard lib.

Some considerations taken into account for this patch:

- `email.policy.SMTP` is being monkey-patched globally to make sure we
  fix all possible places where Messages are being encoded/folded
- the fix is **not** made version-specific, considering that even in Python
  3.8 the official bugfix only applies to Message-Id, but still fails to
  protect other identification fields, like *References* and
  *In-Reply-To*. The author specifically noted that shortcoming [2].
  The fix wouldn't break anything on Python 3.8 anyway.
- the `noFoldPolicy` trick for preventing folding is done with no max
  line length at all. RFC5322, section 2.1.1 states [3] that the maximum
  length is 998 due to legacy implementations, but there is no provision
  to wrap identification fields that are longer than that. Wrapping at
  998 chars would corrupt the header anyway. We'll just count on the
  fact that we don't usually need 1k+ chars in those headers.

The invalid folding/encoding in action on Python 3.6 (in Python 3.8 only
the second header gets folded):

```py
>>> msg = email.message.EmailMessage(policy=email.policy.SMTP)
>>> msg['Message-Id'] = '<929227342217024.1596730490.324691772460938-example-30661-some.reference@test-123.example.com>'
>>> msg['In-Reply-To'] = '<92922734221723.1596730568.324691772460444-another-30661-parent.reference@test-123.example.com>'
>>> print(msg.as_string())
Message-Id: =?utf-8?q?=3C929227342217024=2E1596730490=2E324691772460938-exam?=
 =?utf-8?q?ple-30661-some=2Ereference=40test-123=2Eexample=2Ecom=3E?=
In-Reply-To: =?utf-8?q?=3C92922734221723=2E1596730568=2E324691772460444-anot?=
 =?utf-8?q?her-30661-parent=2Ereference=40test-123=2Eexample=2Ecom=3E?=

```

and the expected result after the fix:
```py
>>> msg = email.message.EmailMessage(policy=email.policy.SMTP)
>>> msg['Message-Id'] = '<929227342217024.1596730490.324691772460938-example-30661-some.reference@test-123.example.com>'
>>> msg['In-Reply-To'] = '<92922734221723.1596730568.324691772460444-another-30661-parent.reference@test-123.example.com>'
>>> print(msg.as_string())
Message-Id: <929227342217024.1596730490.324691772460938-example-30661-some.reference@test-123.example.com>
In-Reply-To: <92922734221723.1596730568.324691772460444-another-30661-parent.reference@test-123.example.com>

```

[1] bpo-35805: https://bugs.python.org/issue35805
[2] https://github.com/python/cpython/pull/13397#issuecomment-493618544
[3] https://tools.ietf.org/html/rfc5322#section-2.1.1

closes odoo/odoo#55656

X-original-commit: 02b78770147e2eda65a76d29c6f2fc3278581b22
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-08-09 16:18:59 +00:00
Swapnesh Shah a49e38879f [IMP] sms: do not copy error
Error message should not be copied for obvious reason.

closes odoo/odoo#55644

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-07 16:46:19 +00:00
Julien Mougenot 90aa4b3ba4 [FIX] web: Correctly transmit fields to the control panel
Before this commit, the "fields" object given to the control panel was
altered by the view (e.g. dashboard populates it with its aggregates).
As a result the control panel and its subcomponents had an altered
object with more or less fields than expected.

Now, the initial "fields" object is given to avoid such problems.

Task 2312074

closes odoo/odoo#55640

X-original-commit: 472b314614dc3dd9db880f4cb60c2eda89cce6b4
Related: odoo/enterprise#12310
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-10 07:55:13 +00:00
Arnaud Joset f9ddf1b110 [FIX] base: fix crash when using RedirectWarning with an additonnal context
The following commit https://github.com/odoo/odoo/commit/b3d9647695065ea582e4a6b0603f3ebf9fde6976  added the possibility to provide addtionnal context to RedirectWarningHandler.

Unfortunately the RedirectWarning python function does not handle the new argument and crashes.

This commit handle the addtionnal argument.

closes odoo/odoo#55487

Taskid: 2286999
X-original-commit: 60bbf47ad21abb1db7ebd2dc0a9379140007a93d
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05 15:48:22 +00:00
Andrea Grazioso (agr-odoo) 7ec2153ca9 [FIX] hr_expense: fix paid status in expense
Create an expense
Save, create the report and go through the full flow up to the payment
Once paid, the expense sheet will remain in "posted" status, never going
to "paid".
This occur because the action which update the status
react only to invoices
https://github.com/odoo/odoo/blob/d9c715c53d51c21fa105aa35f650d54ea909220a/addons/account/models/account_move.py#L4287
https://github.com/odoo/odoo/blob/d9c715c53d51c21fa105aa35f650d54ea909220a/addons/account/models/account_move.py#L4381

opw-2308203

closes odoo/odoo#55633

X-original-commit: fe618a43eb79b7e2b85fa83da7b321055f5ed0b1
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
2020-08-07 13:42:14 +00:00
jev c18b1598cf [FIX] payment_stripe: show correct stripe error message
Following this commit: https://github.com/odoo/odoo/commit/72e4652983d9c781fd1da8acf3e4b5d7b9acbd4a
Forgot to add this context.

See opw-2272262

closes odoo/odoo#55514

X-original-commit: bddac7937c188848f27fb507f82a2a1147d42f72
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-08-06 08:19:40 +00:00
Pierre Paridans 7a14ecd749 [FIX] website_event_track_online: wrong variable name in ServiceWorker
When switching to offline-mode, an "ReferenceError: requestCopy is not
defined" error is thrown in `service-worker.js`.

This commit fixes a variable left to its original name after extraction
to the `matchCache` method (see commit
odoo/odoo@f538a551b1 ).

closes odoo/odoo#55659

X-original-commit: 48e02f6a334af66bc0a62a4884d28adbe0177ee9
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
2020-08-09 22:21:03 +00:00
Olivier Dony 1af543a399 [IMP] http: remove default CSRF tokens expiration
Our CSRF tokens are based on the current user session, and automatically
expire as soon as the session does.

However, they also come with a default 1h expiration delay. This  proves
to be a frequent annoyance for users who pause more than 1h on a form
before submitting it (e.g. user logs out and browser sits on login page
until the next day).
It can even lead to blocking bugs, e.g. when the 1h expiration occurs in the
middle of taking a survey exam, and the user is never able to post the
answers that are only present in the state of the form they need to
post.

More generally, users have a hard time understanding those CSRF expiration
errors, and don't know how to react.

Longer default expiration times have been considered (e.g. 1 day or
1 week) but those would not bring any identified benefit in terms of
security, while still giving a chance that some users would experience
the incomprehensible HTTP 400 errors).

Attacks that can typically compromise the CSRF token (XSS, RCE)
can achieve as much, or more, on the system or user account than what is
possible with the token. And nothing generally prevents the attacker
from using the token immediately after capturing it, during the initial
attack, making the expiration delay rather irrelevant.

Given there seems to be no significant benefit in expiring the tokens
before the session itself, let's just keep them valid as long as the
session.

Note: sessions are GC'd automatically after 7 days of inactivity,
which gives an effective 1 week expiry for abandoned web forms anyway,
as the token expires with the session.

Additionally, fix `survey` module tests, that were using an incorrect
regex for extracting CSRF tokens.

closes odoo/odoo#51499

Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-08-09 14:49:12 +00:00
stefanorigano (SRI) 9830ee75e0 [IMP] web_editor: restore bootstrap's default monospace font-family
Part of https://github.com/odoo/odoo/pull/55645
task-2157252

closes odoo/odoo#55645

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-08-07 22:14:22 +00:00
stefanorigano (SRI) 4c6775ee6c [IMP] web_editor: review dropdown design
Part of https://github.com/odoo/odoo/pull/55645
task-2157252
2020-08-07 22:14:22 +00:00
stefanorigano (SRI) b7098ddf2c [IMP] web_editor, website: review color combination preview
Part of https://github.com/odoo/odoo/pull/55645
task-2157252
2020-08-07 22:13:18 +00:00
stefanorigano (SRI) b8717c5b72 [FIX] web_editor: use border-radius on we-button-group edge buttons only
Part of https://github.com/odoo/odoo/pull/55645
task-2157252
2020-08-07 22:13:18 +00:00
stefanorigano (SRI) 36a8e2a791 [REF] web_editor, *: allow reusing links and buttons design
*: website

Part of https://github.com/odoo/odoo/pull/55645
task-2157252
2020-08-07 22:13:18 +00:00