Commit Graph
166719 Commits
Author SHA1 Message Date
Abdelouahab (abla)andJulien Castiaux 5dd1efe3d8 [FIX] auth_oauth: missing user in signin endpoint
Install auth_oauth and via the /web/login, click the "Log in using
Odoo.com" button. You are redirected on odoo.com which ask you for your
odoo.com login and password. When the login form on odoo.com is
submited, you are redirected back on your local database.

The problem is that, in case a new account was created on-the-fly, then
the login fails with a cryptic error. The actual error is that
`request.env.user._is_internal` fails because `user` is an empty
recordset where it should had been the just-authenticated user.

The problem is an inconsistent transaction state between the cursor of
the request, the cursor used with `auth_oauth` (which created a new
user) and the cursor used with `authenticate` (which authenticated the
new user). Yes, there are 3 cursors. The newly created user just isn't
present in the transaction of the request's cursor.

Here is the lifetime of the 3 cursors:

* request.env.cr, it begins when the http request enters Odoo, it is
  commited when a http response exits Odoo.
* /auth_oauth/signin, it begins roughly at the beginning of the
  controller, it is commited once after the user is created (so before
  the authenticate transaction begins but AFTER the request transaction
  begun), it is commited again when the controller exits.
* authenticate, begins when authenticate is called, is commited when it
  returns.

Because the request transaction started before, it cannot access user
created by /auth_oauth/signin.

Because the route is `auth='none'`, if system administrators append the
`auth_oauth` module via `--load` (cli) or `server_wide_modules` (odoorc)
then the controller can be accessed without database. This is the reason
for the explicit registry/cursor/environment inside this controller, we
needed to make sure we are connected to a database, we cannot rely on
request.

The new approach used in this work is to benefit from `ensure_db()`, the
function that is used by various web `auth='none'` controllers such as
/web and /web/login. It makes sure that the database we want to connect
to is already present on the request, otherwise it repeats the request
but this time connecting it to the database. Using this approach we can
have a `auth='none'` controller whose request.env is guaranteed to be
connected on the right database. We can avoid to create explicit new
registry/cursor/environment within the controller and just use request's
ones.

Because the /auth_oauth/signin controller now simply use the request
transaction, the above point:

> Because the request transaction started before, it cannot access user
> created by /auth_oauth/signin.

just doesn't stand anymore as the user is created within the same
transaction. The extra `cr.commit()` must still be present for
`authenticate` to see the newly created user.

opw-3421701

closes odoo/odoo#138051

X-original-commit: e165568f9795af213c8467a7f17948ed781b0799
Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
Co-authored-by: Julien Castiaux <juc@odoo.com>
2023-10-10 01:59:48 +00:00
Mayurrajsinh Rathod 388f66368a [FIX] calendar: modify template for resource appointment
This commit removes the organizer's name in the mail template when booking
an appointment scheduled based on resources.

Task-3458881

closes odoo/odoo#138043

X-original-commit: ca08d996c2ca0f6de6eeddc44609b96f844d8d25
Related: odoo/enterprise#48625
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2023-10-10 01:59:46 +00:00
alsh-odoo 74801ad8e9 [FIX] hr_work_entry_contract: compute duration without employee
This traceback arises when the user changes the 'end_date' without the employee
value, while creating a new 'Work Entry'.

To reproduce this issue:

1) Install 'hr_work_entry_contract'
2) Open 'payroll' and create a new 'Work Entry'
3) Select 'Work Entry Type' as 'Unpaid' and change the 'To' date

Error:- 'KeyError: False'

On the '_get_duration_batch' method, when the user is not given employee value,
there will be no 'contract_id' as it is getting value from 'employee_id'.

It leads to the above traceback as 'result[work_entry.id]' is getting value
through 'employee.id'.

See:- https://github.com/odoo/odoo/blob/a277faa2ffab7559fcbad95fcc1e8fd6a26d756b/addons/hr_work_entry_contract/models/hr_work_entry.py#L110-L112

Will resolve this issue by calculating duration without employee

sentry-4514970596

closes odoo/odoo#138033

X-original-commit: cc3898ad109e9dfdb220a7245936693197ed79b1
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2023-10-10 01:59:46 +00:00
shy 5883843d83 [CLA] signature for PallaviSrivastavaa
closes odoo/odoo#138029

X-original-commit: 76302b888035c11aa7f860a15e1007260b52c23f
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-10-10 01:59:45 +00:00
trungtuan88 257ed9040e [CLA] signature for trungtuan88
closes odoo/odoo#138027

X-original-commit: 4d4f11ff32edb7b510824abff0bf8d3ad3446b7b
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-10-10 01:59:44 +00:00
Julien Van Roy 7b1956d19f [IMP] l10n_fr: add a SIRET to demo data
This SIRET is valid according to `stdnum` but does not correspond to any
existing company.

closes odoo/odoo#138008

X-original-commit: 283e12353008812787711a664c3bc700b6f8982d
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
Signed-off-by: Julien Van Roy (juvr) <juvr@odoo.com>
2023-10-10 01:59:43 +00:00
Victor Piryns (pivi) a772936bad [PERF] sale_project: speed up reads on tasks_ids
Issue:
Reading on the field `tasks_ids` of the `sale.order` model in some
context can be slow, leading to really slow creation and duplication
of tasks on a medium sized database.

Analysis:
After creation of a task, when the ORM flushes the model, it
recomputes all the inverse dependencies that needs to be recomputed.
Currently `task_ids` doesn't implement a `search` routine on the
field, so `task_ids` needs to be recomputed for *all* sales orders,
since we don't know which sales order needs computation. So for
*all* sales orders, we trigger the compute `_compute_tasks_ids`,
which is badly implemented using the general performance anti-pattern
```py
for record in records:
    field = self.env['model'].search(domain)
```
which makes 1 query per record that we are computing.

Solution:
Correct the implementation of `_compute_tasks_ids`, which now uses a
`_read_group` instead so we do 1 query for the whole recordset.
And implement the `search` on the non-stored `tasks_ids` field,
which speeds up the context of re-computations. This allows the ORM
to know for which sales order the field `task_ids` needs re-computation.

Results:
In the context a mid-size database (less than 10k records for the
concerned models)

Task creation/duplication:

|             | Before | After |
|-------------|--------|-------|
| Time        | 1 min  | 1 sec |
| Query count | 40k    | 300   |

Reference:
opw-3445565

closes odoo/odoo#138007

X-original-commit: 81ae499ce975a96c12b6e379581ba40167d025db
Related: odoo/enterprise#48610
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-10-10 01:59:41 +00:00
Romeo Fragomeli 5f454f0ccb [IMP] web,web_editor,website_slide: sortable service for frontend usage
This commit removes the module sortable from jQueryUI and adds instead a
sortable service to use the sortable code already used by the backend.

The service can be called using `this.call("sortable", ...)` and the
sortable listeners are added when the `enable` function is called.
This function (`enable()`) returns an object that contains the `cleanup`
function (`cleanup()`).

```javascript
// start / setup
const sortable = this.call(
    "sortable",
    "create",
    {
        ref: { el: document.querySelector(".list") },
        elements: ".items",
        handle: ".drag-icon",
    },
);

// on attach callback / on mounted
const sortableInstance = sortable.enable();

// on destroy / on willUnmount
sortableInstance.cleanup();
```

Also, it adds some new property to the useSortable:
* clone: the placeholder is a clone of the drag element
* placeholderClasses: classes added to the placeholder element
* applyChangeOnDrop: on drop the change is applied to the DOM
* followingElementClasses: classes added to the element following mouse

task-3439226

closes odoo/odoo#137527

Related: odoo/enterprise#48371
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2023-10-10 01:59:35 +00:00
Romeo Fragomeli 9c970b13b7 [REF] board,web: adapt useSortable to be used natively
This commit removes Owl hooks from the sortable hook builder file and
introduces a new parameter attribute (`setupHooks`) to specify which
functions must be used to set up, update and tear down the draggable
hook.

This has been done to allow using the hook function in environments
where Owl is not available.

Part-of: odoo/odoo#137527
2023-10-10 01:59:35 +00:00
Romeo Fragomeli 917f5f29ce [REF] web: avoid magic number
Part-of: odoo/odoo#137527
2023-10-10 01:59:35 +00:00
Julien Mougenot 8349f8f2a8 [REF] web,*: make draggable hook builder independant from Owl
This commit removes Owl hooks from the draggable hook builder file and
introduces a new parameter attribute (`setupHooks`) to specify which
functions must be used to set up, update and tear down the draggable
hook.

This has been done to allow the draggable hook builder function to be
used in environments where Owl is not available.

Part-of: odoo/odoo#137527
2023-10-10 01:59:35 +00:00
Louis Wicket (wil) a9ca779a1f [IMP] mail: voip refactoring
Adds useful fields to models needed for VoIP to work.

closes odoo/odoo#115689

Related: odoo/enterprise#38339
Related: odoo/upgrade#5021
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2023-10-10 01:59:33 +00:00
Aaron Bohy daf05d48ac [IMP] *: views: deprecate active_* keys from evalContext
This commit aims to simplify the evaluation context used to
evaluate expressions used in views (invisible, required, readonly,
domain and context attributes). For now, the evaluation context is
typically the current record (there's a key for each field in the
view). In addition to that, there're static keys (that may conflict
with field names): uid, allowed_company_ids, current_company_id,
active_id, active_ids and active_model.

The motivation of this commit is at some point to get rid of the
3 active_* keys, because they are misleading and basically useless.

The notion of active_* exists, but it is something else: when you
are in a form view (let's say the form of a partner) and you open
its opportunities (by clicking on the stat button), the list view
of opportunies shows up and in the context, there're 3 keys
active_*, referring to the record from which we came. One can
easily access those information with context.get("active_*"), in
python or in view archs.

However, almost all `active_id` found in archs were actually used
to refer to the id of the current record. Indeed, for now, in the
evaluation context of a record, the value of the `active_id` key is
always the id of the record. So this commit adapts them to
directly use `id` instead. There was no use of active_ids, and
a single use of active_model which was removed (active_model is
the res_model of the view, so it isn't really necessary).

This commit doesn't drop the support of those keys, it deprecates
them. They will be removed for v18. A warning will be displayed if
they are used.

closes odoo/odoo#136665

Related: odoo/enterprise#47917
Signed-off-by: Raphael Collet <rco@odoo.com>
2023-10-10 00:54:04 +00:00
jash-odooandLucas Lefèvre 25d5b98832 [IMP] global_filter: date filtering and automatic user selection
Previously, when users selected the month or quarter filter and saved
it, the filter would only return data from the current year. This issue
has been fixed in this commit.

Merge the month and quarter data filters into a single month/quarter
filter. This will allow users to select a year which behave as year filter.
If a user only selects a month or quarter, the filter will work accordingly.

The year filter will be removed, as the month/quarter filter can now
be used to filter data by year.

In addition, a checkbox will be added to the relation filter that will
allow users to automatically select the current user. This checkbox
will only be displayed if the model is res.users.

closes odoo/odoo#126935

Task: 3370627
Related: odoo/enterprise#43426
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
Co-authored-by: Lucas Lefèvre <lul@odoo.com>
2023-10-09 21:43:48 +00:00
Didier (did) fd68c7d343 [FIX] mail: allow empty message edition
Before this PR, it was not possible to edit a message that has an empty body.

Task-3387170

closes odoo/odoo#137996

Signed-off-by: Didier Debondt (did) <did@odoo.com>
2023-10-09 20:31:50 +00:00
Florian Damhaut a656a5a9a4 [FIX] sale: fix mail template
Fix mail template for better intergration in sale subscription.
Improve english too.

task-id : 3366756

closes odoo/odoo#137988

X-original-commit: 8c94250126876009e94590e0ae5e931185fdc8b1
Related: odoo/enterprise#48605
Signed-off-by: Florian Damhaut (flda) <flda@odoo.com>
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2023-10-09 20:31:48 +00:00
Didier (did) 75ee820002 [FIX] mail: close search panel when changing thread
task-3542981

closes odoo/odoo#137970

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-10-09 20:31:47 +00:00
Julien Van Roy 412fded185 [FIX] l10n_mx: the IEPS taxes should be include_base_amount
Set `include_base_amount` to True for the IEPS taxes.

task-3100679

closes odoo/odoo#137940

X-original-commit: ceacccdc34f80ed5969b1d49bbcdf9adbd2ce76c
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Julien Van Roy (juvr) <juvr@odoo.com>
2023-10-09 19:18:42 +00:00
Julien Van Roy 331642d7ee [FIX] l10n_mx: set the sales IEPS taxes as inactive
To avoid having to many IEPS taxes, set the sales one as inactive.

task-3100679

X-original-commit: d134258f18c8569f1684e7681cfc905d974444f5
Part-of: odoo/odoo#137940
2023-10-09 19:18:42 +00:00
Brice bib Bartoletti 789e17c423 [FIX] account: less restriction on tax.name
The aim of this commit is to allow having several taxes with the same
name if those taxes are from different countries.

Context:
With the new taxonomy, it was much more likely for 2 taxes to have the
same name and that was the case for several taxes.

Before this commit:
It was impossible to instantiate some foreign tax because of the unicity
on tax name constrains.

After this commit:
- Foreign tax with same name than national tax can be created again
- UX is improved by appending the country code to the tax name for
  display purpose.

closes odoo/odoo#137921

Task-id: None
X-original-commit: 502ec287590b95fdae581cc048ca25eb6699e16d
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2023-10-09 19:18:40 +00:00
alsh-odoo d1b0ab32bf [FIX] mrp: give default value when precision rounding value is zero
The traceback arises when the user removes the 'product' from 'stock.move'
and try to add the product in 'mrp.production'.

To reproduce this issue:

1) Install 'MRP'
2) Create a new record for 'Manufacturing Order'
3) First add a line in 'Components'
4) Remove the 'product_id' from component
5) Now try to add 'Product' in mrp

Error:-"AssertionError: precision_rounding must be positive, got 0.0"

on the '_compute_state' method when the state is in 'draft' and
the user added a line in 'move_raw_ids'.

In this case, precision_rounding is getting value from
'product_uom.rounding' or 'product_id.uom_id.rounding' through 'move_raw_ids'.

See:- https://github.com/odoo/odoo/blob/10e0ac377cc235d81819eaa2a4ec2b6a60fffd70/addons/mrp/models/mrp_production.py#L478-#L479

When the user removed 'product_id' from 'move_raw_ids', 'precision_rounding'
will be '0.00'. Which leads to the above traceback.

Applying this commit will resolve the issue by giving a default value of '0.01',
when the 'precision_rounding' value is '0.00'.

sentry-4220927307

closes odoo/odoo#137904

X-original-commit: 5c238bbb18c682ff2d25f740aad604feb7bb5bbc
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
Signed-off-by: Altaf Shaik (alsh) <alsh@odoo.com>
2023-10-09 18:16:58 +00:00
tsm-odoo 403553aebd [IMP] im_livechat: use guest avatar for live chat visitors
task-3471571

closes odoo/odoo#137806

Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
2023-10-09 18:16:57 +00:00
Didier (did) 5e5616a45e [FIX] mail: do not display archived partner in recipient list
Before this PR, archived partner where displayed in the recipient list, but they
will never get notified.
This PR exclude archived partner from the recipient list.

task-3535433

closes odoo/odoo#137759

X-original-commit: a2474635c31d47e480f7a871aa869667f0a90dc5
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Didier Debondt (did) <did@odoo.com>
2023-10-09 18:16:56 +00:00
Louis Wicket (wil) 4adaeabc22 [I18N] fleet: replace “immatriculation” with “registration”
The word “immatriculation” doesn't exist in English.
This commit replaces its occurrences with “registration”.

closes odoo/odoo#137755

X-original-commit: 740979ef152f5cc89682004f9453a03e565bf6ec
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2023-10-09 13:25:38 +00:00
Joseph Caburnay 1569d59c9d [FIX] pos_self_order: correct fiscal position in self order
**Steps to reproduce:**

- Create a fiscal position that maps to a different tax.
- Use that fiscal position as alternative fiscal position for the "Eat in / Take
  away" setting.
- Create a "Take Away" order from the self-ordering app (kiosk or mobile).
- ISSUE: Send the order to the database (by "Pay at Cashier" or "Pay").
  - Check the order and it doesn't have correct fiscal position resulting to
    wrong amounts in the lines.

**FIX:** When creating the order, we make sure the correct fiscal position is
set. Also, we precompute `is_take_away` variable which is used in many places of
processing the order.

closes odoo/odoo#137669

Signed-off-by: Robin Heinz (rhe) <rhe@odoo.com>
2023-10-09 13:25:36 +00:00
Loukas Wets (lowe) abae176131 [FIX] point_of_sale: bad reference in search of paid orders ids domain
This commit fix the reference to an incorrect state of the pos order. It
should be "cancel" not "cancelled".

closes odoo/odoo#137620

X-original-commit: 0182fe024f01f2ef320ae4a290cd1a823f5353c0
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Loukas Wets (lowe) <lowe@odoo.com>
2023-10-09 13:25:35 +00:00
Claire Bretton (clbr) 72d83abb93 [FIX] {l10n_}account_edi_ubl_cii{_tests},account_peppol: change label of checkbox and fix dependency
1. Rename checkbox "Peppol BIS Billing 3.0" to "BIS Billing 3.0" to avoid confusion
with the incoming one we will add with the full support of Peppol.
2. There was a buggy interaction between mail checkbox and BIS Billing checkbox in the Send & Print:
If the Peppol BIS Billing was checked, then uncheck/check the Email box, the Peppol BIS Billing
unchecks automatically. They should be independent.

Task-id:3525932

closes odoo/odoo#137382

Related: odoo/enterprise#48318
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2023-10-09 13:25:32 +00:00
Claire Bretton (clbr) 38fd690434 [IMP] account{_edi}{_ubl_cii},l10n_es_edi_facturae: Send and Print mass download
1. Add the "Download" option back into the Send & Print in list view
2. If the "Download" option is ticked, the Send & Print is run synchronously.
3. "Download" returns a zip containing all documents that are generated (or previously generated)
4. Remove completely "Download Electronic Invoice"
5. When downloading a single invoice that has multiple attachments (pdf, xml, ...)
we now download a zip with all files instead of only the pdf.

Task-id: 3525932
Part-of: odoo/odoo#137382
2023-10-09 13:25:32 +00:00
Didier (did) fa64a23f1c [FIX] mail: load gif category properly
Before this PR the showFavorite status was not properly updated after clicking
on "back".
This cause the categories to use the favorite route when scrolling instead of
the category route.

Task-3504566

closes odoo/odoo#136932

Signed-off-by: Didier Debondt (did) <did@odoo.com>
2023-10-09 13:25:29 +00:00
amdi-odoo 2ca91ca461 [IMP] mass_mailing_sms: improve test modal
Improve test modal:
- change the title
- change the dialog size
- shorten the wording
- rename action buttons

Task-3500568

closes odoo/odoo#136905

Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com>
2023-10-09 13:25:28 +00:00
moerradi 4ede16f157 [IMP] hr_expense: Filter Payment Methods by Company + UI/UX Improvements
- Applies a domain filter to limit payment methods to those of the
running company in multi-company settings.
- Some wording adjustments for better clarity.
- UI tweak: Directly open the expense detail view when only one expense
is linked to an expense report, bypassing list view for better usability

Task-3500674

closes odoo/odoo#136503

Signed-off-by: William André (wan) <wan@odoo.com>
2023-10-09 13:25:27 +00:00
shsa-odoo f5fe01a60f [FIX] web_editor: banner drag issue
Before this commit:

-Banner on drag and drop only drops content.
-Content inside banner were draggable.

After this commit:

-Now we can drop banner as well.
-Prevented content inside banner to be draggable.

task-3512199

closes odoo/odoo#136003

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2023-10-09 13:25:26 +00:00
Dhrumil Shah f840cd9778 [IMP] sale_project: hide button on SO
Before this commit when we confirm SO then create project button appears
In this commit we have made that if product is based on timesheets or
based on milestones then only create project button will appear when we confirm SO

task-3468706

closes odoo/odoo#133410

Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-10-09 13:25:24 +00:00
Lucas Lefèvre 25eec6820b [IMP] spreadsheet: export views with contextual domain
Purpose
-------
Currently, views with a contextual filter/domain are not well managed: e.g.

Today Activities
=> domain=[('my_activity_date_deadline', '=', context_today().strftime('%Y-%m-%d'))]

My pipeline
=> domain=[('user_id', '=', uid)]

Currently, 'context_today().strftime('%Y-%m-%d')' or 'uid' would be replaced by
their values when the view is inserted into a spreadsheet.
If the view is inserted on the 1st June 2023, the date "01/06/2023" is
hard-coded in the spreadsheet.

Specification
-------------
Preserve the domain dynamic parts when inserted into a spreadsheet.

Implementation note: I force the readable format at export just to be sure it
exported that way, no matter the domain origin.

closes odoo/odoo#131874

Task: 3414027
Related: odoo/enterprise#45748
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
2023-10-09 13:25:23 +00:00
zel-odoo 4434f489d6 [FIX] mail: typo in the mention list
closes odoo/odoo#137967

Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2023-10-09 12:03:53 +00:00
mebe-odoo 6d5c6a6255 [FIX] l10n_sa_edi: add tax exemption codes for BT-121 for non-sa customers
Currently, when a customer is located outside of Saudi and a 0% tax is set in the invoice lines, we do not include any TaxExemptionReason or TaxExemptionReasonCode in the UBL file, even though it is required by ZATCA through rule BT-121. This commit aims to fix that. Now, as long as the Supplier (Company) is located in Saudi, we include both TaxExemptionReasonCode and TaxExemptionReason if the tax amount is set to 0%

closes odoo/odoo#137944

X-original-commit: 6711ad24f82a16fbe23a6fb6fed7bd93f682e816
Signed-off-by: Josse Colpaert <jco@odoo.com>
2023-10-09 12:03:52 +00:00
vishal padhiyar 3c89439a16 [FIX] web_editor: calling openMediaDialog on replace media
Before this commit:

In mass mailing, Selecting image and click on replace media you get picture
middle of the screen.

After this commit:

Now, clicking on replace would open media dialog and replace picture.

task-3506590

closes odoo/odoo#137920

X-original-commit: 7e0b8af005e818c9283b332fb140aeaeaf028275
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2023-10-09 10:48:49 +00:00
Odoo's Mergebot 13e3271b23 [MOV] test_mail: reorder tours / tests
Purpose is notably to regroup some tests into a single file (notably tours
in their matching unit tests file), rename some tests / tours, ... and
globally try to lessen test file split.

Reorganize tests, perform some renaming. Tests stay as they are to ease
comparison through versions. We notably extract formatting related tests
into their own class, allowing to keep their setup only for those tests.

Task-3535845 (TestMail: Reorder tests tours / files)
Prepares Task-3527752 (Mail: The Pre-Major Freeze FixImpLint)

closes odoo/odoo#137895

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-09 10:48:49 +00:00
Thibault Delavallée 708090cedd [IMP] test_mail: reorganize mail performance tests
Reorganize tests, perform some renaming. Tests stay as they are to ease
comparison through versions. We notably extract formatting related tests
into their own class, allowing to keep their setup only for those tests.

Task-3535845 (TestMail: Reorder tests tours / files)
Prepares Task-3527752 (Mail: The Pre-Major Freeze FixImpLint)

Part-of: odoo/odoo#137895
2023-10-09 10:48:49 +00:00
Thibault Delavallée 0c1f83a6a1 [MOV] (test_)mail: reorganize tests and tours
Purpose is notably to regroup some tests into a single file (notably tours
in their matching unit tests file), rename some tests / tours, ... and
globally try to lessen test file split.

Task-3535845 (TestMail: Reorder tests tours / files)
Prepares Task-3527752 (Mail: The Pre-Major Freeze FixImpLint)

Part-of: odoo/odoo#137895
2023-10-09 10:48:48 +00:00
Flotchet a7fcb0ccf7 [FIX] website_hr_recruitment: fix legacy _rpc
Behavior before this commit:
When you try to apply for a job on focusout of the mail field, you get
an error raised in website stating that this._rpc is not a function.

Explanation:
The task 3446696 (PR: 131308) has been merged in master
at almost the same time as the task 3439226 (PR: 136271)
that was removing the legacy rpc call (this._rpc({...})).

Behavior after this commit:
The rpc call is working again and so no error is raised.

Fix:
This commit fix it by using the current
rpc call.

closes odoo/odoo#137822

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2023-10-09 09:33:50 +00:00
Leonardo Pavan Rocha 8b7f1c892b [FIX] google_calendar: sync setting needs action status to accepted event
When an event is created by user A and user B is invited, user A automatically
accepts the event. If both users are using google sync and user B accepts the
invitation from the google interface, the status of the events are set to
needAction for user A. This occurs because the odoo values will always write
the time related fields, even when those did not change. This causes the
status to be changed to needAction because we assume the time of the event has
changed and user A needs to verify it. This commit fixes this by only setting
time values when they were really changed and by switching the logic that
triggers the reset of the status. As most times a default alarm is generated
by google, we should not treat it as condition for updating the time and,
therefore, potentially updating the status of the attendee.

task-3464054

closes odoo/odoo#137471

Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Leonardo Pavan Rocha <lpr@odoo.com>
2023-10-09 09:33:48 +00:00
Thomas Lefebvre (thle) 7922b3502d [FIX] project_timesheet_holidays: update future holiday timesheets
Issue:
------
When we modify an employee's calendar, employee's timesheets
are not updated according to public holidays of the new calendar.

Solution:
---------
When we notice that we are modifying the `resource_calendar_id` field,
we delete all the future timesheets which are based on the public holidays
and then recreate them with the new calendar.

opw-3501170

closes odoo/odoo#137910

X-original-commit: c2754727eee8373fe99011658ae0b33dc692d25d
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Signed-off-by: Thomas Lefebvre (thle) <thle@odoo.com>
2023-10-09 07:00:09 +00:00
Pierre Rousseau bd0f2c6d79 [IMP] web: introduce MultiRecordSelector and RecordSelector
This commit introduces two new components, MultiRecordSelector and
RecordSelector, which are used to select multiple records and a single
record respectively.

The MultiRecordSelector component is used to display the selected
records with a tag-like style. It also allows to add new records by
typing/selecting a valut in the input field.

The RecordSelector component is used to display the selected record and
allows to select a new record by typing/selecting a value in the input
field.

These components are created from the DomainSelectorAutocomplete and
DomainSelectorSingleAutocomplete components, which are now an extension
of the MultiRecordSelector and RecordSelector components respectively.

This commit also add tests for these two components.

Part of task-id 3433922

closes odoo/odoo#137650

Related: odoo/enterprise#48423
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2023-10-09 07:00:06 +00:00
Pierre Rousseau 176d3be297 [IMP] web: add support for domain and context in DomainSelectorAutocomplete
This commit adds support for domain and context in DomainSelectorAutocomplete.
This is a step towards the simplification of the Record component.
We would like to remove the case where the Record component is used with
fake resModel/resId only to display a Many2ManyTags or a Many2One.
Instead, we could simply use the DomainSelectorAutocomplete or
DomainSelectorSingleAutocomplete to achieve the same result.

Part of task-id 3433922

Part-of: odoo/odoo#137650
2023-10-09 07:00:06 +00:00
Chrysanthe (chgo) 4739a841b5 [FIX] hr_skills: fix pseudo-element position
Prior to this commit, the pseudo-element in the employee resume tab was
not aligned on every media-query, making it invisible on large devices.

This commits ensure the visibility of the element no matter what device
you are using.

Task-3474635
Part of task-3326263

closes odoo/odoo#137928

X-original-commit: 036e6cdf1deb383c24967618f04070f97dd872e7
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
Signed-off-by: Chrysanthe Gomrée (chgo) <chgo@odoo.com>
2023-10-09 05:55:58 +00:00
Mahamadasif Ansari 255eb5cd90 [FIX] maintenance: restrict deletion of teams related to equipment
Currently, an error occurs when the user follows the below steps and tries to
run cron "Maintenance: generate preventive maintenance requests"

Steps:
- Open maintenance > Configuration > Maintenence Teams
- Create new team e.g. "ABC"
- Go to Equipments and create new equipemnt
- Set 1 "Preventive Maintenance Frequency" from maintenance page
- Select "ABC" in Maintenance Team >> save it
- Delete  Maintenence Team "ABC"

This commit solves the above issue by restricting the deletion
of maintenance teams who are related to equipment.

sentry-4467657509

closes odoo/odoo#137943

X-original-commit: 9e4aa20c05999ccd9952480b8fea22b9fb651d74
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: ANSARI MAHAMADASIF (maan) <maan@odoo.com>
2023-10-09 04:03:56 +00:00
Guillaume (gdi) b3a1d0f9d0 [IMP] website, *: use BS mixin to have responsive font sizes
*: auth_totp_portal, event, portal_rating, web, web_tour, website_blog,
   website_event, website_event_booth, website_event_sale,
   website_event_track, website_event_track_quiz, website_payment,
   website_sale, website_sale_comparison, website_slides,
   website_twitter

This commit allows to have responsive font sizes on all the Odoo
frontend. It is based on the Bootstrap mixin `font-size` which
calculates the font size based on the viewport width.

task-1958098

closes odoo/odoo#129469

Related: odoo/design-themes#673
Related: odoo/enterprise#44578
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-10-08 22:12:13 +00:00
abd-msyukyu-odoo d464ba7c7e [IMP] web: add download error management util
As `download`, the `downloadFile` util is able to perform an `XMLHttpRequest`
(`GET`) if it is provided with only an url. Change the return value of
`downloadFile` in that case to a `Promise`, to match the behavior of `download`.
Previously, the `XMLHttpRequest` was returned to allow the caller to modify the
headers of the request, but that feature was not used.

Extract the configuration of the `XMLHttpRequest` for `download` to a separate
function so it can be used for both `download` and `downloadFile`. It will set
the `responseType, onload, onerror` properties.

Tracking:
- usage of `downloadFile` in Knowledge introduced in [1].

[1]: https://github.com/odoo/enterprise/pull/47056

task-3517796

closes odoo/odoo#137893

X-original-commit: 787f207f9882807598273c34296d0c1d8081f1b5
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Damien Abeloos (abd) <abd@odoo.com>
2023-10-08 11:52:07 +00:00
Brieuc-brd 11df0a1187 [IMP] website_sale, *: adapt CTA style in product pages
*: website_sale_loyalty, website_sale_product_configurator

task-3097005

closes odoo/odoo#120302

Related: odoo/design-themes#687
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-10-08 10:45:45 +00:00