Commit Graph
160206 Commits
Author SHA1 Message Date
Jorge Pinna Puissant 18ef0727e4 [IMP] web: qunit: add QUnit.todo counter in topbar
This commit adds an information in the topbar (thus always visible) to
indicate the number of QUnit.todo tests that have been completed and the
number of QUnit.todo tests that are uncompleted.

closes odoo/odoo#118402

Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
2023-04-13 11:12:59 +02:00
Karnav Sojitra 3e1bbf0275 [FIX] point_of_sale: prevent the archive stock picking type
IndexError list index out of range occurs when we archive the stock
picking type and try to access the point of sale session. This happens
because the archive record is not read by search_read so the list is empty.

This commit added an ORM constraint that throws a validation error when
we try to archive the operation type which is used by POS configuration.

sentry - 3967651255

closes odoo/odoo#118394

X-original-commit: 3e21dad7be482c7dbb9cd50619adf89c4b35cb8a
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2023-04-13 11:12:56 +02:00
hupo-odoo b92d038164 [IMP] l10n_gcc: invoice pdf company currency
Add information on pdf invoices including the totals and taxes in company currency when the invoice is set in foreign currency. This is a requirement for the gcc localization. In another task, we added a tax amount in company currency in the AE module, but people use the AE module a lot together with the l10n_gcc_invoice, which allows for dual language invoices and these amounts were not added in the gcc localization invoice. it is however needed.

task : 3267784

closes odoo/odoo#118357

X-original-commit: 929db9e295a1b713baeae693bad974c165a8bf08
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: hupo-odoo <hupo@odoo.com>
2023-04-13 09:31:31 +02:00
lejeune quentin 1981697e02 [FIX] core: try import geoip2 for iot
The geoip2 module is not installed in the iot so this one cannot launch Odoo.
This module is not used by the iot so it is not necessary
to install the module in the iot and therefore to make a new build

From this commit c59750d824

closes odoo/odoo#118240

X-original-commit: 5f251f7c95adf9b67ef1c81ee0084b0b5c396cc3
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
2023-04-13 09:31:26 +02:00
Angel Parra 5b720c0503 [ADD] CLA
closes odoo/odoo#118141

X-original-commit: faabaf798c70035b3faebad546d034bab268670a
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-04-13 09:31:23 +02:00
Hansun (hale) 7618380c46 [FIX] project_sms: fix sms failure
1. Install Contacts, Projects
2. Settings - Register account for SMS
3. Add the account with credit for IAP service with debug mode on
4. Create a Contact with mobile number and country from step 2
5. Go to Projects
- create a project and stages
- create SMS templates under Configuration
- under Task Stages, add sms template to each stages of the project
- on the task created, set the customer to what you created on step 3
- move the task from a stage to another

Issue:
- Lognote shows failed state when it is sent successfully
- On Settings/Technical/Discuss/Messages, record is duplicated

Resolve by:
- partiallly revert commit https://github.com/odoo/odoo/commit/5de1b941ce580253a21f0e4f6da0a8ca818f26b3

opw-3251410

closes odoo/odoo#118391

X-original-commit: c1a7e3c20244f45d49496db7d506bbf0fd96472a
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-04-13 05:07:55 +02:00
Arnaud Joset abdf22c9dc [FIX] google_calendar: keep partner order according to email order
Before this commit, when an event was synced with internal and external users,
the corresponding partners were merged like this:
1) partner corresponding to internal users
2) regular partner

If the list of emails provided by google was in another order: regular partners
then internal, there were an issue:

```
emails = [a.get('email') for a in google_attendees] # sorted by google, external then internal for example
partners = self._get_sync_partner(emails) # always internal then external partners
for attendee in zip(emails, partners, google_attendees):
    # we are associating the external email with internal partner
    # the external attendee is skipped because we take the user partner
```

This commit makes sure to return the partner is the order of the mails in _get_sync_partner.

closes odoo/odoo#118355

X-original-commit: ae442c20878277da93feb8761f5ed556c0c735b2
Signed-off-by: Kevin Baptiste <kba@odoo.com>
Signed-off-by: Arnaud Joset <arj@odoo.com>
2023-04-13 05:07:41 +02:00
kir-odoo 71a2c5a551 [FIX] delivery: exclude neg qtys from shipping weight
This commit prevents inclusion of negative qty SO products from
the calculation of its estimated shipping weight. Negative qtys can
indicate a return, which would be a separate picking from the delivery
 => we shouldn't subtract their weight from the delivery. This
subtraction, may have resulted in shipping rates being calculated as
lower than they should have been within the SO.

Additionally fixes the following use case (requires Fedex connector):
- create a SO with 2 products with the same weight
- set 1st product qty = 1
- set 2nd product qty = -1
- add shipping => Shipping Method = Fedex US
- click on "Get Rate"

An error will occur because the SO._get_estimated_weight() = 0, and
you cannot have a rate for weight = 0

TaskId - 3028023

closes odoo/odoo#118348

X-original-commit: ecf0262e3ef746c33a29c4f2de7868e3ab61cce2
Signed-off-by: Tiffany Chang <tic@odoo.com>
2023-04-13 05:07:36 +02:00
Vincent Larcin 28aa5b7592 [FIX] web: remove space before colon in calendar popover
This commit removes the space between the field name and the colon in the calendar view popover

closes odoo/odoo#118347

X-original-commit: 2e220c722faf688a0bce68c3af1f92e9b379802b
Signed-off-by: Luca Vitali <luvi@odoo.com>
Signed-off-by: Larcin Vincent (vila) <vila@odoo.com>
2023-04-13 05:07:33 +02:00
Vincent Larcin 4e3f4f2dbc [REM] project,hr_timesheet: remove task report list view
In a previous task, the task reporting list view was removed from
the interface, but the view is still present in the code.

Since this view is no longer used, this commit removes it.

closes odoo/odoo#118328

Upgrade: https://github.com/odoo/upgrade/pull/4538
Related: odoo/upgrade#4538
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-04-13 05:07:28 +02:00
Jorge Pinna Puissant 38acd9f7d4 [FIX] mail, test_mail: Keep track of last update images
Since [1], a unique id is used for fieldNodes, therefore, the code to
keep track of last update images on the activity view needs to change
also.

Before this commit, we search the write_date on the fieldModes using the
id, and if it's not present, a new one is created using as id
"write_date".

Now, as a unique id is needed, we search using the name, and if it's not
present, a new one is created using as id "write_date_0".

Note that this is already the behavior on kanbanParse.

[1]: https://github.com/odoo/odoo/commit/baebb6a5b05ac8d59501a6071a5513e31a4ca047

closes odoo/odoo#118320

Signed-off-by: Luca Vitali <luvi@odoo.com>
2023-04-13 04:08:53 +02:00
Guillaume (guva) 2361f021c3 [FIX] base_import: date/datetime format on import
Add support for converting moment.js date formats
to strftime format in BaseImportModel

Steps:

- Try to import csv with date_format "YYYYMMDD"
- ImportValidationError:
-> "Column date_format contains incorrect values"

error is raised because the date format is not
converted before being send to the python import
method.

opw-3247615

closes odoo/odoo#118308

X-original-commit: ee940fc6911656263fb56f9ce63a564f45cdc16b
Signed-off-by: Luca Vitali <luvi@odoo.com>
Signed-off-by: Guillaume Vanleynseele (guva) <guva@odoo.com>
2023-04-13 04:08:50 +02:00
Paolo Gatti (pgi) 3b50f97972 [IMP] l10n_it_edi: DatiFattureCollegate, down payment and credit notes
If the invoice has a deduction line for a down payment, the EDI
generated XML file should have a reference to it in the
DatiFattureCollegate. We take the reference from the related sales
order.

Same goes for credit notes: they should have a reference to the original
invoice. We take the reference from the move's reversed_entry_id field

Task link: https://www.odoo.com/web#id=3210485&model=project.task
Task-3210485

closes odoo/odoo#118307

X-original-commit: 1f62ed76731a15cee5345dc0312ac819dadbcb44
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
2023-04-13 04:08:48 +02:00
Louis Wicket (wil) c16bef413f [FIX] mail: adjusts member list separator to the locale
Prior to this commit, the separator used to separate the names of the
members of a group DM could not be translated. This is because the
string being translated is too short to be considered by the translation
system.

This commit fixes the problem by no longer relying on the Odoo
translation system and instead using the ECMAScript Internationalization
API.

closes odoo/odoo#118306

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-13 04:08:45 +02:00
niyasraphy 7bd2be754e [IMP] hr: remove tracking from binary field
before this commit, tracking is enable for the
binary field, but odoo is not tracking binary
fields to the chatter.

after this commit, the tracking attribute is
removed from the binary field

closes odoo/odoo#118297

Related: odoo/enterprise#39631
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2023-04-13 04:08:40 +02:00
Xavier Morel 215ccd1194 [FIX] website_slides_survey: fix uninstall_hook
When #114353 forward port of #112425 which adds an uninstall_hook was
merged, it was not updated with the API change of #108254, which
replaced the `(cr, registry)` parameters by a sole `(env)` as most if
not all uninstall hooks immediately created an environment anyway.

So this hook has been breaking uninstall on anything on which
`website_slides_survey` depends since it was merged.

Fix the hook to match the new API.

closes odoo/odoo#118296

X-original-commit: 201a4b369cf1652a2da763181f6837cfb7f44f3e
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2023-04-13 04:08:35 +02:00
Alexandre Kühn 1a6c04211e [FIX] mail: emoji picker add() should not useRef
`useRef()` hook should only be used in `setup()` of component.
The `add()` function of emoji picker can be used anywhere.

This commit fixes the issue by limiting use of `add()` to pass
Object whose `el` is an element. We should pass the ref immediately
rather than the refName.

closes odoo/odoo#118293

Related: odoo/enterprise#39626
Signed-off-by: Debondt Didier (did) <did@odoo.com>
2023-04-13 04:08:30 +02:00
Renaud Thiry dddb2f5355 [IMP] base: Clear precommits on test cleanup
Precommit hooks would stock data until a call to ``cr.flush`` was made.
Notably, this happens when the ``assertRaises`` method is called.
Functions were applied on records already cleared from the cache.

This change adds a cleanup call for `TransactionCase` as it keeps
the same cursor for all tests. Cursor precommits can now
be safely executed inside tests.

Task-2834304

Forward port of #117555

closes odoo/odoo#118290

X-original-commit: ff5d0c75fcea5842c5236b1b3f7480ef5a3dc415
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Thiry Renaud (reth) <reth@odoo.com>
2023-04-13 04:08:25 +02:00
tsm-odoo 1c1604466f [IMP] mail, im_livechat: add pin messages feature to channels
With this commit, messages can be pinned on a channel and
chat conversation. There's a new menu listing all pinned
messages on a conversation, and we can jump to these messages
in the current conversation.

As this feature incentives to see older messages, this commit
also adds a "Jump to Present" button when looking at old messages.

closes odoo/odoo#116666

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-13 04:08:11 +02:00
Alexandre Kühn fc9d46f3b9 [REF] mail: clean message fetch code
Adapt code of message fetch so that fetching of
(needaction) messages are controlled in a way to
keep continuous sequence of messages at all time.

This code design solves the "holes" problem in a message
list by not allowing holes. This fixes many scenario that
generated these holes, resulting in unfetchable messages.

Example of such a scenario:
- post 40 messages
- post a new message that is reply of the oldest message
- page reload and scroll up until load more
=> 10 messages are missing in-between replied message and
 following message (that should have been 11 messages apart)

This code also prepares for allowing jumps in a conversation.

Part-of: odoo/odoo#116666
2023-04-13 04:08:11 +02:00
vlst 05fd65e855 [ADD] pos_self_order: QR Code Menu for Restaurant
New module that would allow restaurant customers to see the menu on their own devices by scanning a qr code and navigating to the provided link.
Task id 3232765

closes odoo/odoo#114022

Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2023-04-13 04:08:08 +02:00
Julien Carion (juca) 963f53336b [FIX] web: Remove view_ref keys from context in many2one
This commit ensures that keys ending with _view_ref are properly
removed from context when using create and edit action

opw-3256019

closes odoo/odoo#117471

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2023-04-13 03:15:46 +02:00
Viktors Lipskis (vili) e92e93bdae [IMP] web,calendar: improve design of popover for crowded events
Calendar popovers are now easier to read and navigate.
If an event contains a lot of information, its popover now grows tall
instead of wide.
In case of more than a few attendees, the widget shows a summary and
allows the user to expand the full list.
The displayed total number of attendees is now accurate, without the
default field limit.

task-2685440

closes odoo/odoo#112114

Signed-off-by: Arnaud Joset <arj@odoo.com>
2023-04-13 01:11:43 +02:00
Adrien Guilliams (adgu) b90cae0650 [IMP] point_of_sale: remove loading of products and partners in background
In a previous PR, we changed the default value of the background loading
of the partners and products to false in 16.0 to saas-16.2
because the features were causing loss of performance in the pos
when clients had lot of products or partners.
We now remove completly this feature saas-16.3 and hardcode the number
of loaded products and partners at the opening of the PoS to respectively
20000 and 100.

closes odoo/odoo#118006

Related: odoo/upgrade#4531
Signed-off-by: Heinz Robin (rhe) <rhe@odoo.com>
2023-04-13 00:06:03 +02:00
Xavier Morel c2848b9bb4 [IMP] point_of_sale: modernize get_price
- Remove dead code around now-unused categories
- lift `price` processing outside of `find` which complicates it
- use arrow functions, which obviates the need for aliasing `this`
- use slightly more expression-oriented code-style where applicable

Results in code which is noticeably shorter and (I hope) easier to follow.

closes odoo/odoo#117874

Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2023-04-13 00:06:00 +02:00
Xavier Morel e702e3a776 [IMP] point_of_sale: simplify can_be_merged_with code
Existing version uses a visually complicated chain of if/else and
double negations, this is much more readable as a simple chain of
AND-ed conditions checking for positive merge-ability factors.

Part-of: odoo/odoo#117874
2023-04-13 00:06:00 +02:00
Kartik Chavda 14b5a466ea [IMP] project_timesheet_holidays: update info to make it more understandable
Before this commit generating timesheet for time off doesn't have
clearer info after the recent change.

This commit update info according to recent changes to have better
understanding to end user.

task-3186664

closes odoo/odoo#115265

Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-04-12 22:47:57 +02:00
stevTresCloudandAndres Calle 0298e4b5a7 [FIX] l10n_ec: First fixes
- Inactivate unused identification types: passport and unknown
- Fix website in the  manifest to point to official documentation
- Fix data in some taxes
- Adds reimbursement taxes

closes odoo/odoo#114273

X-original-commit: 3ee5d7a0fbccae5f742e1aba8d3d24f8bab3cbdd
Related: odoo/enterprise#37747
Signed-off-by: Josse Colpaert <jco@odoo.com>
Co-authored-by: Andres Calle <andres.calle@trescloud.com>
2023-04-12 22:47:49 +02:00
Aditya Sharma 434d0eb236 [IMP] website_slides: improve frontend ui of slides
Make the alignment proper between 'external sources' and 'additional resources'
by using the 'col' classes and add the spacing between them.

Task-3229139

closes odoo/odoo#116634

Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2023-04-12 20:44:00 +02:00
Odoo's Mergebot d31a393629 [IMP] pos: New FloorScreen kanban view and more
Currently, there is only 1 plan view that is unreadable on mobile and sometimes also complicated in some cases.
This commit  adds a new "Kanban" view used by default on mobile and available in desktop too. This commit also changes the edit bar of the FloorScreen: the design is changed and some features are added like the multiple selection of the tables or the adding and removing of floors directly from the frontend. It also changes the navbar of the PoS, moving the buttons in a navigation menu accessible thanks to a button.

Related Enterprise PR: odoo/enterprise#38699

Task-id: 3212032

closes odoo/odoo#116534

Signed-off-by: Heinz Robin (rhe) <rhe@odoo.com>
2023-04-12 20:43:55 +02:00
Aurélien Warnon 66a49c7ae8 [IMP] survey: scored questions need at least one correct answer
This commit slightly modifies the condition to be considered as a
"scored question" for questions of type simple/multi choice.

Now, to be scored, you need to have at least one correct answer.

This notably allows not showing "incorrect answer: 1" when displaying survey
statistics as there is no way to get it correctly.

Task-3224732

closes odoo/odoo#115322

Signed-off-by: Stéphane Debauche (std) <std@odoo.com>
2023-04-12 20:43:53 +02:00
Bruno BoiandLeonardo Pavan Rocha d6afa9f325 [IMP] web: can add popover in iframes
Before this commit:
It is not possible to add a popover in an iframe (with the popover
service of an app from outside the iframe).

After this commit:
The position hook now finds out the possible target's iframe element,
from which it can compute an offset so it could position properly the
popper element.

Known limitations:
The popover element is not attached inside the iframe's DOM, so there
may be some cases where the popover is shown outside of the iframe
(depends on scrolling).

closes odoo/odoo#116499

Taskid: 3184061
Related: odoo/enterprise#36168
Signed-off-by: Arnaud Joset <arj@odoo.com>
Co-authored-by: Leonardo Pavan Rocha <lpr@odoo.com>
2023-04-12 18:58:29 +02:00
Bruno Boi 0613af8fa7 [REF] web: rename a usePosition arg for clarity
**Before**
The "reference" argument of the usePosition hook is badly named as it
easily be confused with useRef's references.

**After**
The argument has been renamed "target",
which is a terminology used in other places, for example for popovers.

Part-of: odoo/odoo#116499
2023-04-12 18:58:29 +02:00
Nikunj Ladava 4f2e06d0ca [IMP] website_slides: add next lesson field to membership
Before this commit,
There is no way to see the next lesson of attendee.

After this commit,
User/Manager can see the next lesson from backend.
Also added 'is_published' field into course's tree view.
Added search for responsible, tag and content, also added 'Archived' filter.

Task-2199207

closes odoo/odoo#79119

Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2023-04-12 18:58:23 +02:00
Nikunj LadavaandMohammed Shekha 3607efc9f9 [IMP] website_slides : archive enrolled attendee instead of deleting it
Before this commit,
- Attendee was deleted on leaving the course.
- Remove from membership subtracts earned karma points.

After this commit,
- we will only archive the attendee on leaving the course.
- Joining course again will continue the progress of attendee.
- User inputs also archived on the leaving the course and can continue progress on
  joining again.
- Added Archived filteres for the User Input and Attendee.
- Remove from membership will keep the earned karma points as it is and after
  rejoining that course will not affect karma points.
- Added 'published' ribbon for only published courses in the kanban view of all
  courses.

Task-2199207

Part-of: odoo/odoo#79119
Co-authored-by: Mohammed Shekha <msh@odoo.com>
2023-04-12 18:58:23 +02:00
Nikunj Ladava 35bd7c43b0 [IMP] survey: move data creation to setupclass
Move data creation of survey tests from setUp to setupClass as there is no reason
to completely re-create data in between every test and this increases the test
speed without drawbacks.

Task-2199207

Part-of: odoo/odoo#79119
2023-04-12 18:58:22 +02:00
moerradi 56315dd6b9 [IMP] l10n_*: Update manifests to redirect to own documentation
Removing external links from localization manifests and redirect to our own documentation. Ensure that users can learn about our standard localization modules from a source of information that we have authorship on.

closes odoo/odoo#117005

Task-id: 3248632
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2023-04-12 16:33:11 +02:00
Adrien Guilliams (adgu) d46d417ab1 [FIX] point_of_sale: correct showCashMoveButton()
The showCashMoveButton function was not working correctly anymore
due to refactoring. This commit corrects the behaviour of the
function.
2023-04-12 15:42:27 +02:00
Adrien Guilliams (adgu) 6cabcd7f1c [IMP] pos: New FloorScreen kanban view and more
Currently, there is only 1 plan view that is unreadable on mobile
and sometimes also complicated in some cases.
This commit  adds a new "Kanban" view used by default on mobile
and available in desktop too. This commit also changes the edit bar
of the FloorScreen: the design is changed and some features are added
like the multiple selection of the tables or the adding and removing
of floors directly from the frontend. It also changes the navbar
of the PoS, moving the buttons in a navigation menu accessible
thanks to a button.

Task-id: 3212032
2023-04-12 15:42:27 +02:00
niyasraphy 7eb3f91777 [IMP] website_profile: change badge decoration with xp
Before this commit, if an user receives an increase or decrease in the XP,
both are currently shown with success badge (green).

After this commit, if there is decrease in user XP, it will be shown with
warning badge (orange).

closes odoo/odoo#118068

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-04-12 14:02:35 +02:00
Ryan Cen ed7f4ebb6a [FIX] website_sale: CSRF token should not be cached
Issue:
CSRF token was being cached and this caused issues when the session id was updated.
Post requests would continue to use the old CSRF token and it would not be able to be validated with the session id.

Solution:
Added the t-nocache attribute to every instance where csrf_token is called in the case that the session_id is different.
This is changed to behave the same as the csrf token input in the products_item template.

opw-3256880

closes odoo/odoo#117923

X-original-commit: 629d9cb15a6a6eb68756bad9da83cf0a81a3b5bd
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-12 14:02:32 +02:00
paso-odoo 9e6d230715 [FIX] point_of_sale: fix archived pos config issue
If applied, this commit will solve the issue of the archived pos config issue
while session accessed from another tab, another device, or another user.

Steps to produce:
- Open the pos session.
- From another device or another tab archive the pos.config record.
- Refresh the opened session.

sentry - 4057306284
see - https://tinyurl.com/2opdugz4

closes odoo/odoo#117707

X-original-commit: 75c0f1ca2767837f3e75698ceadeedf362110bd8
Signed-off-by: Achraf <abz@odoo.com>
2023-04-12 14:02:30 +02:00
damr bceab17e68 [FIX] mail: prevent a traceback when an onclick is triggered on an empty
m2o avater user widget

This commit's purpose is to prevent a traceback when the user click on
an empty avatar user icon.

task-3254564

closes odoo/odoo#117374

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-12 14:02:27 +02:00
Lucas Lefèvre 0651424113 [FIX] documents_spreadsheet: list dates with correct format
Commit odoo/enterprise@4bbf70f was fixing a timezone issue. Datetimes coming
from lists inserted in a spreadsheet were always displayed in UTC.

However, this commit also changed the formatting behavior.
Before the fix: date/datetimes were dispalyed with the server format
After: they are displayed with the local format (FR if the user lang
is French)

This can lead to issues because spreadsheet only understands a
handfull of date(time) format.
For example, it doesn't understand dd/mm/yyyy format but only
the other way around (mm/dd/yyyy)

This commit restores the previous format (server format), while
preserving the timezone conversion.

opw-3251586

Manual forward-port of odoo/enterprise#39438

closes odoo/odoo#118285

X-original-commit: bf84195bce4fbea55d1a4e6a6cd9f17d9be86b73
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2023-04-12 12:26:26 +02:00
Alexandre Kühn 5ffd9c15cf [FIX] im_livechat: chatbot step answer style in external lib
Before this commit, when using chatbot on an external website,
the answers were not styled like buttons.

This happens because styling is using bootstrap classnames, which
are not available in the external lib.

This commit fixes the issue by putting SCSS equivalent style rules,
so that the answers are properly styled.

opw-3234872

closes odoo/odoo#118264

X-original-commit: c2c5eee10aa917852c942e1092c026746387e11a
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-04-12 12:26:23 +02:00
Rodolpho Lima 5190870a7c [FIX] web_editor: remove link when pasting over its content
This commit prevents pasting content inside a link when it is
empty (ZeroWidthSpace only) or its text content is fully selected,
making the pasted content replace the link.

task-3081254

closes odoo/odoo#118204

X-original-commit: 7d0da7f56904927f93ef3d678083f3219fadfdc9
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2023-04-12 12:26:09 +02:00
Rodolpho Lima 302f279c86 [FIX] web_editor: add missing tests for pasting URLs
This commit adds the following test cases that were missing in the
unit tests suite:

-Paste an image URL or a youtube URL as link

-Paste text containing a valid URL among other text fragments

-Paste text containing multiple URLs

-Test if the selection is properly restored after pasting content on a
non-collapsed range followed by an UNDO.

task-3099012

X-original-commit: 0167b031bc9238893c5b4f09bbda996ed0ee914f
Part-of: odoo/odoo#118204
2023-04-12 12:26:08 +02:00
Rodolpho Lima 267bce176f [FIX] web_editor: fix issues when pasting media URL
Issue # 1: pasting image/video URL as text

This commit removes this command, because it was considered to be useless.

The category names "Embed" and "Paste" for the other two commands
("Paste as URL" and "Embed Image/Video") were ommited as it is no longer
relevant to group commands, as this would result into two categories with
one command each (the powerbox does not display the category name when all
the commands are under the same one - undefined in this case).

Issue # 2: pasting image/video URL + other text fragments

The powerbox commands are not compatible with an image/video URL + text
or multiple URLs. Choosing one of its commands will lead to loss of all
text fragments but the last valid URL.

This commit ensures the powerbox options are only offered when a single
image/video URL is pasted.

Issue # 3: pasting image URL inside an exisiting link

Even though the Editor's specs do not allow a URL to be transformed into
a link when pasting it inside an exisiting link, before this commit,
pasting an image URL inside a link would open the powerbox with 3 commands,
one of them allowing to transform the URL into a link.

This commit ensures the powerbox with the "Paste as URL" command is not
opened in such case. When pasting an image URL inside an existing link, the
image is directly embedded, and other URLs are pasted as text.

Issue # 4: unnecessary regex matching

Before this commit, every text fragment in "text URL text" was being
prepended with "https://" and a match with the URL regex was attempted.
Every fragment (text or URL) was also probed for a match with the
youtube video URL regex, but such matches would be discarded anyway in
modules like note and mass_mailing where the allowCommandVideo option
is set to false.

This commit avoids unnecessary searching with regular expressions by treating
pasting of a single URL (possibly an image or video URL that would lead
to powerbox commands) differently than URLs pasted among other text fragments
or other URLs (see issue # 2 above).

Issue # 5: `historyPauseSteps` with argument

This function takes no arguments. Yet, it was called with the string 'onPaste'
as argument. This commit removes it.

task-3099012

X-original-commit: 3fb93d7e9047a73a8e84f165e2ff52b9887d34a4
Part-of: odoo/odoo#118204
2023-04-12 12:26:08 +02:00
Rodolpho Lima dcd93a6685 [FIX] web_editor: hide powerbox category name when single one
Powerbox commands are grouped under categories.
But this is not very usefull when:
- All commands are under of the same category
- Each command is under a different category

This commit hides the category name when all the commands passed to the
powebox are under the same category.

In order to avoid the second scenario, the commands array should be passed
to `Powerbox.open()` with all commands having the same category name (the name
 does not matter), or even with `category` undefined.

X-original-commit: 93d632861996c78502b33538cc7ff06d8419602c
Part-of: odoo/odoo#118204
2023-04-12 12:26:07 +02:00
Rodolpho Lima d49da8aae4 [FIX] web_editor: restore selection after paste and undo
Before this commit, after pasting a valid URL on a non-collapsed selection
followed by UNDO, the selection was not restored to the original range.
This was due to not recording the selection in the current history step
before creating the link.
After pasting text composed of a valid URL between text fragments on a
non-collapsed selection followed by UNDO, the selection was again not
properly restored. This time, because each text fragment insertion was
done via execCommand, which calls _computeHistorySelection and thus
overwrites the current step's selection.

This commit:
- refactors code for link creation into a single function;
- wraps the link creation at `_onPaste` in a 'insertHTML' command called
via `_applyCommand`, which records the selection properly in the history
step;
- replaces `execCommand` by `_applyCommand` for text fragments
insertion.

task-3099012

X-original-commit: 20bb1a2090c90f87a819fdc1c3bbb332cae3720e
Part-of: odoo/odoo#118204
2023-04-12 12:26:07 +02:00