Commit Graph
169021 Commits
Author SHA1 Message Date
Antoine Dupuis (andu) 69d292fa2e [FIX] l10n_ch_hr_payroll_account: Fix employee cost account codes
In https://github.com/odoo/odoo/pull/105119, new accounts were added
to represent employee-related expenses. Based on the non-official
document https://swissdec.ch/document/share/295/4cc46aca-8b47-49e9-882a-03c37eb8dea3
we used account codes 2990 and 2999 for accounts 'Indemnities' and
'Company Car Correction'.

However, these accounts have no place with the equity accounts in 29xx,
since they are not equity but rather expense accounts. Examples of CoAs
that include employee indemnity accounts place them under account group
5 with the other employee-related expenses.

(e.g. https://plancompta.com/plan-comptable-suisse-pcg-2021/)

As such, we move accounts 2990 Indemnities -> 5840
and 2999 Company Car Correction -> 5031.

Fixing this in stable will not cause any in-database corruption, since
the updated code is only executed when the CoA is loaded/reloaded.
However, users will need to reload the CoA in order to take advantage
of the fix.

This also ensures that the Swiss Balance Sheet is balanced.

taskid:3060790

closes odoo/odoo#150692

Related: odoo/enterprise#54941
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2024-01-24 10:44:42 +00:00
std-odoo 9792d5d761 [FIX] web: decimal property crash in list view
Bug
===
The decimal property crash when added in a list view, if some records
have False as a value.

Technical
=========
Since fe797a03285ec9c81d29ed631839c91e2b9957a4 , we use the wrong
Formatter in the Float field.

Task-3698415

closes odoo/odoo#150682

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-01-24 10:44:41 +00:00
Julien Castiaux f003eaf884 [FIX] link_tracker: make relative target URLs absolute
Install mass_mailing with demo data, send a mailing using the "Thank
you for joining us" template. Inside your mail client, click on the
LOGIN button, this open your web browser on a link-tracker URL but the
page fails to load because "The page isn't redirecting properly".

Inside the template of that "Thank you for joining us" mail, the logging
button is basically defined as follow: `<a href="#">LOGIN</a>`, a URL
with a fragment that is empty, a redirection to the current page.

Upon rendering that template and send it to the recipients, all links
are wrapped inside a link-tracker for well tracking purpose, this
created a link `/r/xyz` targeting `#`. Upon accessing that `/r/xyz` URL
the client would be redirected to `#` which in that context is actually
`/r/xyz#`: the link-tracker itself. The browser detects that there is a
redirecting loop and show an error instead.

The problem is solved by saving an absolute link with the link-tracker
instead of a relative one.

Task-3603607

closes odoo/odoo#150678

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-01-24 10:44:40 +00:00
Julien Castiaux 05fd991389 [FIX] link_tracker: prevent links from linking themselves
It was technically possible to register a link that would loop on itself
by abusing the query and fragment parts of the URL. It was possible to
register a link targetting `#` and get the following HTTP exchange which
enter an infinite loop.

	GET /r/bAd HTTP/1.0

	HTTP/1.0 301 Redirect
	Location: #

	GET /r/bAd# HTTP/1.0

Prevent such links from being registered and highlight flaws inside the
`validate_url` method with unittests.

Part-of: odoo/odoo#150678
2024-01-24 10:44:40 +00:00
Benoit Socias caf01f9bb2 [FIX] website: repair registry calls for model-based forms
Since [1] when the legacy registry was replaced for website forms,
model-based forms cannot be created anymore because the legacy registry
getter returned a falsy value upon missing keys, while the new registry
raises an error.
Commit [2] already fixed one of the wrong calls but there were two other
ones.

This commit specifies a default values on the calls to the registry to
avoid the error.

[1]: https://github.com/odoo/odoo/commit/2d9f6fb32441b5db386e35200a5aab6b11b840dd#diff-59b3bc5742547152ea8d3248e1bd6606fbace25e572d7ca6c50c61e5847d184fL3-R3
[2]: https://github.com/odoo/odoo/commit/38155143dc67cee86fef50af8e164f063e5413bb

opw-3677790
opw-3683466

closes odoo/odoo#150659

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2024-01-24 10:44:39 +00:00
Yannick Tivisse 1cc423954c [FIX] hr_work_entry_contract: Don't recompute work entries on salary simulation
closes odoo/odoo#150648

Related: odoo/enterprise#54928
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2024-01-24 10:44:39 +00:00
AH-Yussef ed95da37dc [FIX] base: translate partner display_name
Steps to reproduce:
- Install Contacts app
- Go to General Settings and add another language
- Add a new contact to a parent.
        - Don't add a specific contact name
        - Assign a contact type (delivery address, invoice address, other address)
- Go to the list or kanban view of the contancts and change the language
- The type of the contact listed next to the parent name is not translated from English.

Investigation:
- When the contact name is not set, the `display_name` displayed in both kanban and list views is set by concatinating the parent name with the contact type.
- The line https://github.com/odoo/odoo/blob/03b7e17faef4075dbbb805bca4e7f40f7fbcc988/odoo/addons/base/models/res_partner.py#L345 in the function `_compute_display_name`, `with_context({})` in particular basically enforce to compute the name in english language regardless of the active language. That actually makes sense as the `display_name` field has `store=True` https://github.com/odoo/odoo/blob/03b7e17faef4075dbbb805bca4e7f40f7fbcc988/odoo/addons/base/models/res_partner.py#L199

Solution:
- add a computed field that is not stored that gets recomputed on changing the language.

opw-3569171

closes odoo/odoo#147650

X-original-commit: 60b3ae846de59b1f6e71df68e99e29758ba734fe
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
Signed-off-by: Ali Hassan Youssef (alhy) <alhy@odoo.com>
2024-01-24 10:44:36 +00:00
Chrysanthe (chgo) cdb2612357 [FIX] portal: missing space in messages count
This commit fixes a spacing issue with the count of messages sent in the
portal chatter being placed right next to the word `comment`, without a
space.

fixes #147801
task-3651084

closes odoo/odoo#147496

Related: odoo/enterprise#53383
Signed-off-by: Chrysanthe Gomrée (chgo) <chgo@odoo.com>
2024-01-24 10:44:35 +00:00
Chrysanthe (chgo) 1c79cbe778 [FIX] portal: fix layout and spacing issues
This commit fixes some layout issues from the portal redesign.

The aims of this commit is to :

1) fix some issues with the column layout, mainly in the quotation section.

2) fix some spacing issues by using the right classes and better units.

3) fix the typescale and the information architecture with the right
heading tag.

4) fix some layout issues within the column layout and fixing unconsistent
layouts shared between different items.

5) fix an issue about the first information of the sidebar often
being hidden when scrolling, due to the sticky position of the sidebar

task-3651084

Part-of: odoo/odoo#147496
2024-01-24 10:44:35 +00:00
Benoit Socias 9bd063cd23 [FIX] web_editor: apply spacing after palette only when on same row
Since [1] a margin is applied when another `o_we_user_value_widget`
follows a color palette. Unfortunately this is also applied when the two
elements are not on the same row. Because of this the "Slideout Effect"
option below the "Colors" option of "Footer" looks like it is indented
while it is unrelated to the color selection.

This commit restricts that margin to elements that belong to the a
`we-row`.

[1]: https://github.com/odoo/odoo/commit/2f81c6ae68751d5f93c30aef822730ee04ead391

task-3696870

closes odoo/odoo#150701

X-original-commit: 50c0a5479a11fef0b03bf319283817a94a32cea4
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
2024-01-24 09:12:44 +00:00
Florian Charlier 6baf904cc3 [FIX] survey: review survey answers past deadline
Reproduce the bug:

1. Create a survey and share it with someone with a deadline
2. Complete the survey as that someone
3. Change the deadline of the answers to a date in the past
  (simulates reviewing later on)
4. Go to the participation record and try "Print"

Issue: You are denied access to review the answers because
the deadline is in the past.

Fix: Do not check deadline for reviewing/printing answers. This
deadline is only a limit for answering the survey.

Task-3680802

closes odoo/odoo#150793

X-original-commit: 8f4c5c85c9bc194b4fec9698753db4cc84a08a90
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2024-01-24 07:55:37 +00:00
Arnold Moyaux 610fbd7060 [FIX] stock_account: valuation category change
This reverts commit 652edc38527b14995f017d514053a57825091813.

It creates a new issue with valuation change.

Steps to reproduce:
-Create a new product with a cost of 10 (std, manual)
-Create an inventory adjustment to set the quantity to -3
-Change the product's category to real-time
-Now the valuation for this product is -30€, but the accounting part has 30€, creating a difference of 60€."

A better solution to fix both issues has been tried but it was far from
optimal. Since it's an edge usecase we will not support it until master

closes odoo/odoo#150112

X-original-commit: a3bae79d8102f528c4947b2231ecabe8cf907bce
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
2024-01-24 07:55:35 +00:00
Victor Piryns (pivi) c92bdffd16 [PERF] account: index account_type to speed up reports
Description:
Add missing index to speed up queries related to the P&L reports. As the
report queries per `account_type` it's beneficial to have it indexed.
The field is not write heavy, and has low count of distinct values (
since it's a selection field), so there is little downside of having it.
It is meant to support the changes done in the related enterprise PR.

Reference:
opw-3659497

closes odoo/odoo#150775

X-original-commit: 01ec86ded9128ae9fd11d27285e64d139a0ce31b
Related: odoo/enterprise#54986
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Signed-off-by: Piryns Victor (pivi) <pivi@odoo.com>
2024-01-24 06:39:17 +00:00
lejeune quentin 013a0f6f65 [FIX] point_of_sale: Fix modules version for iot
When the IoT V23_11 checkout a Odoo DB 15.0, the newest module:

urllib3
PyPDF2
Werkzeug

Can't run this Odoo version.

So we fix the version of these module to match to Odoo 15 / 16 / 17

closes odoo/odoo#150708

Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
2024-01-24 00:16:52 +00:00
Hubert Van De Walle 28a954997f [FIX] spreadsheet_dashboard: prevent crash on chart double click
Steps to reproduce
==================

- Use a mobile viewport / device (small window)
- Go to Dashboard
- Double click on a chart

=> `this.env.openSidePanel is not a function`

Cause of the issue
==================

On mobile, the MobileFigureContainer is used instead of the Spreadsheet component.
The both use `useSubEnv` but the mobile one was missing the
openSidePanel function.

Solution
========

Add an empty `openSidePanel` function that does nothing.

opw-3677552

closes odoo/odoo#150702

X-original-commit: 990452ad985b1515ba565ff1fe8c6bbaa14fb031
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2024-01-24 00:16:51 +00:00
Hubert Van De Walle a76641cb06 [FIX] web: prevent empty json field from passing the required check
Steps to reproduce
==================

- Enable analytic accounting
- Go to customer invoices
- Open a record
- Open studio
- Click on the Invoice lines > Edit list view
- Set the analytic field as required
- Close studio
- Create a new record
- Add a new line
- Click on the analytic field
- Close the popup
- Save the record

=> Even though we didn't set a value for the field, it is saved

Cause of the issue
==================

The actual field value is an empty object.
The validity of a field is checked here [0].
An empty object is considered a truthy value.

When setting the required attribute directly on the python field
declaration, an empty object does not pass the check

Solution
========

Add a specific check for json fields. When the value is either false
(not set) or an empty object, the field is considered invalid.

---

[0]: https://github.com/odoo/odoo/blob/23f01c533512cbfb33e90509e22cd3c3c4f99d40/addons/web/static/src/views/basic_relational_model.js#L284

opw-3659763

closes odoo/odoo#150677

X-original-commit: 51b538b3f678298f27bbbf458de5696706c18349
Signed-off-by: Francois Georis (fge) <fge@odoo.com>
Signed-off-by: Hubert Van De Walle <huvw@odoo.com>
2024-01-24 00:16:50 +00:00
Claire Bretton (clbr) a5d169f1a8 [FIX] l10n_ch: fix data migration
In a previous commit we fixed Swiss localization's taxes data.
We changed two children taxes that had wrong tax_type_use since it depends
on their parents.
This could raise the python constraint `_check_children_scope()` which is preventing
some databases to correctly update their taxes.

See https://github.com/odoo/odoo/commit/7b07df873535446f97abc1de9176b9332de5cb07

closes odoo/odoo#150669

X-original-commit: 90e064140b88b77d75686558106f79664da4af48
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2024-01-24 00:16:49 +00:00
Xavier ALT 4c01f803be [FIX] hr_recruitment: "Generate Email" invisible on new link tracker
To reproduce on runbot:

- Log-in as admin
- Enable debug mode
- Go to Settings / General Settings
  and ensure that there is a alias domain configured for the
  current company

- Go to recruitment app
- on "Experienced Developer", open the option dropdown (meatball)
  and click on "Trackers"
- observe there is no button "Generate Email"

The `has_domain` field serve to check if the mail alias domain is
correctly configured, before odoo/odoo@638e0f658, is was computed
only from the `mail.catchall.domain` ICP, now we only consider
the alias domain from the recruitment source alias.

  But for new record there is no alias, so `has_domain` is always
falsy which prevent the `Generate Email` button to be show.

This commit fallback to the job's or user's current company mail alias
domain to check if mail alias is correctly configured when there is no
alias on the recruitment source.

closes odoo/odoo#150645

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2024-01-24 00:16:47 +00:00
Yosua Nicolaus 4544b4642f [FIX] l10n_ro_edi: CIUS-RO DocumentTypeCode rule
In one of the schematron rules for CIUS-RO, there is a rule for
DocumentTypeCode element in the XML that failed the validity test.

`
<rule context="cac:AdditionalDocumentReference">
  <assert id="UBL-SR-43" flag="fatal" test="((cbc:DocumentTypeCode='130') or
  ((local-name(/*) = 'CreditNote') and (cbc:DocumentTypeCode='50')) or
  (not(cbc:ID/@scheme) and not(cbc:DocumentTypeCode)))">
    [UBL-SR-43]-Scheme identifier shall only be used for invoiced object
    (document type code with value 130)
  </assert>
</rule>
`

This commit fixes the current behavior by applying this behavior:
- DocumentTypeCode won't show up when exporting Invoice XML
- DocumentTypeCode will show up with the value '50' when exporting
  CreditNote XML

closes odoo/odoo#150613

Task-id: 3649426
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2024-01-23 22:52:03 +00:00
Mehdi Outagant (MOU) 124bbda127 [FIX] website: prevent using multiple content menus with the same DOM id
Steps to reproduce (17.0+):

- Go to an event website page > go to “Site” > “This Page”.

- The menu item used to edit the page content menu “Edit Event Menu” is
duplicated.

After the event page refactoring in [1], a second template using the
same content menu ID was added to customize the UI for mobile.
And since the “Edit Menu” items generation is based on detecting current
sub menus from the DOM using the same ID (`data-content_menu_id`), we
get a new menu item in the nav bar for every menu template using it.

The goal of this commit is to fix this behavior by simply ignoring the
duplicated menu IDs (The same menu record will be edited anyway).

Remark: the behavior fixed by this commit was detected in 17.0, but we
target 16.0 to prevent any potential issue linked to duplicated menus in
the DOM, also, the duplicated data attribute will be removed in master
(one ID is enough for the content menu to be detected and edited.)

[1]: https://github.com/odoo/odoo/commit/9f2442d09b62fcb3f687ec39928ea0e3ac49557e

task-3645985

closes odoo/odoo#150568

X-original-commit: e8ebb33269cbb8d049ca3e4749c486b6d137e044
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Outagant Mehdi (mou) <mou@odoo.com>
2024-01-23 22:52:02 +00:00
qsm-odoo 941f63aa2a [IMP] website: support all menus edition from a mobile device
Commit [1] (later refactored by [2]) hid the buttons which allow to
edit the main website menu and custom website menus (as the ones in
event pages), when using Odoo on a mobile device. Reading the code and
related commits, this seemed to have been done for no apparent reason.
After testing 16.0, it appears that menu edition from mobile devices was
actually not working: the re-ordering UI was strangely hidden.

After investigation, it appears that this was solved by chance, thanks
to the unrelated commit [3] in 16.2. That commit indeed removes legacy
CSS which was hiding all jQuery.ui.sortable UI elements by mistake.

In 17.0, this was further improved anyway by not using jQuery.ui anymore
(with [4]) and thus editing website menus from a mobile device works now
perfectly... except that the buttons to open the menus edition dialogs
were still hidden. This commit enables them. It was chosen to do it in
17.0 and not 16.2 as it is more an improvement than a fix in the end.

[1]: https://github.com/odoo/odoo/commit/78c59afd133de8308f4eeb6e1a2a930d870878e7
[2]: https://github.com/odoo/odoo/commit/2dc82504e08cc370b67cdf1d580f26705870a085
[3]: https://github.com/odoo/odoo/commit/ee3e28987eb1ec23b8bacc7c4043d9690aada144
[4]: https://github.com/odoo/odoo/commit/a4b1c268131ed771dd68616a26a9f1ce50a189f0

Related to task-3645985

closes odoo/odoo#150530

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2024-01-23 22:52:00 +00:00
Florent de Labarre 3789a944ac [FIX] website_sale: internal user cannot go to shop page
- Create a company A with a ebsite
- Create a company B without website
- Create user 1 in company B only
--> Issue when user 1 go to /shop --> error 403

Due to security restrictions, you are not allowed to access 'Companies' (res.company) records.

closes odoo/odoo#150529

X-original-commit: be5bf24234955a4f9ccc044482b71ab37a44b8b0
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-01-23 22:51:59 +00:00
Jinjiu LiuandGoaman bc440ff045 [FIX] web_editor: blinky colorpicker when applyColor on removed fonts
Reproduction:

1. in Note, type ` abcd ` in an empty note
2. color the background of all the text, bold `abcd`
3. select from the end till the letter `b`, try to change the color,
traceback pops up

Fix: The main reason is we remove element in `splitElement`/
`splitAroundUntil`. In this special case, there are two selected nodes
which returns the same font element. The first font element will be
removed and replaced first. Because the first font element doesn’t exist
anymore, when recovering selection, the second element considered as
collapsed and the recovered selection is a caret. Thus the color picker
is gone after applying the color (preview)

The fix is then, we always make sure that the font we have is still
connected to the page (exist in the page), otherwise it’s problematic to
apply color to a non-existing element and recover cursor from it. If
there is font element(s) that is not connected, we simply get the fonts
again, because new font element is created for the second node, it won’t
split (remove) the first node’s font element again

Task-3476494

closes odoo/odoo#150500

X-original-commit: 06a8b930176093e2c5a853b78431316af90f3550
Signed-off-by: Nicolas Bayet (nby) <nby@odoo.com>
Signed-off-by: Jinjiu Liu (jili) <jili@odoo.com>
Co-authored-by: Goaman <nby@odoo.com>
2024-01-23 22:51:57 +00:00
Thomas Lefebvre (thle) aba7b00cd8 [FIX] hr_timesheet: add fallback to current company to get UoM
Steps to reproduce:
-------------------
- install helpdesk_fsm and sale_timesheet;
- to be in a multi-company environment;
- create a new helpdesk team with "Timesheets", "Time Billing";
- the newly created project has no company;
- create a service product that creates a task with UoM in hours
in the newly created project for the helpdesk team;
- create a sale order with this product with a quantity of 100 hours and confirm it;
- in the helpdesk app (in the new team), create a ticket linked to the sale order line
of the product (the customer is necessary);
- on the ticket the "Remaining Hours on SO" is 100 hours;
- create a timesheet directly in the tree view;
- the remaining hours of the sale order are reduced;
- create a timesheet from the timer;
- the remaining hours of the sale order are not reduced;

Cause:
------
During the link between the newly created timesheet and the ticket,
we write to the `helpdesk_ticket_id` field (during the flush) in the `account.analytic.line` record.
As a result, we pass in the override of the `write` method, which calls `_timesheet_preprocess`.
Without a company on the project (or on the analytic account if there is one),
the value `{'product_uom_id': False}` will be added to the values to be written to the timesheet.
Without a unit of measurement, the timesheet will not be used to calculate the remaining hours.

Solution:
---------
Add a fallback on the current company if no company is found.

opw-3651830

closes odoo/odoo#149917

X-original-commit: 2e5c13b0dea40f349e96cadf9d02fdb3c1746c7e
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2024-01-23 22:51:53 +00:00
Antoine Vandevenne (anv) 5cea9dddcc [IMP] payment: improve test coverage
Some logic of the `payment.provider` and `provider.method` models was
not properly covered by unit tests.

closes odoo/odoo#149833

Related: odoo/enterprise#54930
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-23 22:51:51 +00:00
Ali Alfie (alal) ba1706eca1 [ADD] l10n_es_edi_facturae_invoice_period: invoice periods for EDI
Patch module to add missing fields to the factura-e xml.

task-3673113

closes odoo/odoo#149362

Signed-off-by: William André (wan) <wan@odoo.com>
2024-01-23 22:51:50 +00:00
vava-odoo ff2906aaf0 [IMP] product,sale(_pdf_quote_builder): embed further pdf quote builder
This commit improves the user experience with pdf quote builder by
- showing document for both product template and product variants
- providing pdf example for headers/footers

task-3543479

closes odoo/odoo#146183

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-01-23 22:51:49 +00:00
Lucas Lefèvre (lul) aae6b72823 [IMP] spreadsheet: allow to sort month pivot headers
Currently, if you have a pivot grouped by a date field, aggregated by week
month or quarter, sorting all the pivot cells does not work as expected
when sorting based on the date header column.
"April 2023" would end up being before "March 2020" just because "A" is
before "M". Similarly, "W1 2023" is before "W2 2020" and "Q1 2023" is before
"Q2 2020"

With this commit, for months aggregates, the result of
`=ODOO.PIVOT.HEADER(1,"create_date:month","04/2023")` is currently the
string "April 2023".
The result now becomes a real date just like any other date value
in a spreadsheet. It's the number corresponding to the first day of the
month.

For week and quarter aggregates, we could move the year first ("W1 2023"
becomes "2023 W1"). However, we decided not to do it to keep consistency:
- with other places in odoo (pivot views)
- with the way we talk/think (quarter/week comes first)

closes odoo/odoo#139295

Task: 3570281
Related: odoo/enterprise#49300
Signed-off-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
2024-01-23 22:51:48 +00:00
Lucas Lefèvre (lul) 06920e4176 [REM] spreadsheet: remove unused method
Task: 3570281
Part-of: odoo/odoo#139295
2024-01-23 22:51:48 +00:00
Lucas Lefèvre (lul) 943a2fb021 [FIX] spreadsheet: format pivot days header
This commit fixes 2 very similar issue.
See enterprise commit.

- Group a pivot by any date field, with the day aggregate
- insert it in spreadsheet
- autofill a pivot function
=> the autofill tooltip displays the day number instead
   of the day formatted as a date.

- on the same pivot
- click on menu "Data > Insert pivot > insert pivot cell > [you pivot]"
=> in the dialog, numbers appears for the headers.

Task: 3570281
Part-of: odoo/odoo#139295
2024-01-23 22:51:48 +00:00
Lucas Lefèvre (lul) e55dad2d30 [REF] spreadsheet: factorize pivot value format
This commit factorizes how the format is computed for ODOO.PIVOT and
ODOO.PIVOT.HEADER functions. It was essentially duplicated.

Also move the date(time) format responsibilty to each time adapters,
instead of handling the different aggregate cases separatly.

This commit also prepares the next commit which fixes a formatting bug.

Task: 3570281
Part-of: odoo/odoo#139295
2024-01-23 22:51:48 +00:00
Lucas Lefèvre (lul) 33b910fcfd [REF] spreadsheet: colocate special args in one place
For the ODOO.PIVOT.HEADER functions, "special" values such as measure and
total were managed in different places (total management  was also duplicated
 see enterprise commit).

Now the measure and total are managed in one place, in the high level method.
There's also now a dedicated method to get a measure display name. The method
`getGroupByDisplayLabel` was perverted at that purpose (see enterprise commit)

Task: 3570281
Part-of: odoo/odoo#139295
2024-01-23 22:51:48 +00:00
Lucas Lefèvre (lul) fbfc5b2d5d [REF] spreadsheet: clean method names
Method names in the pivot data source/model are not particularly clear
and self-explanatory.

To commit renames some methods (and their argument names) with hopefully
more meaningful names.

I'm also moving `getDisplayedPivotHeaderValue` (now
`computeOdooPivotHeaderValue`) from the model to the data source. It's
a high level function, the implementation can be in the data source.

Task: 3570281
Part-of: odoo/odoo#139295
2024-01-23 22:51:48 +00:00
visp-odoo 47ce4a3623 [FIX] web_editor: wrong time in history of changes
Before this commit:

When a user edits an article and selects the restore button to revert to a
previous version, the displayed time is incorrect because it shows universal
time instead of the user's timezone.

After this commit:

When a user edits an article and utilizes the restore button to revert to a
previous version, the timestamp will now reflect the time in the user's current
timezone.

task-3641579

closes odoo/odoo#149177

Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
2024-01-23 19:49:34 +00:00
Shubham Thanki 8da12ebd75 [FIX] mail: stop the bubbling of various click events
Technical Reason:
- The events bound to the specific elements inside the `FileViewer` are
propagating/bubbling up and are triggering the `onGlobalClick`
(https://github.com/odoo/enterprise/blob/eaf40edbbacfc6a8eb9e0137c20e7f94b1f5d723/documents/static/src/views/kanban/documents_kanban_renderer.js#L36-L42)
event bound on the `DocumentsKanbanRenderer`.
(https://github.com/odoo/enterprise/blob/71dbc617d6fe533c4d0153361f9711bd4c9e4885/documents/static/src/views/kanban/documents_kanban_renderer.xml#L6)

After this commit:
- Only the events bound to the specific HTMLElements are now triggered.
- We successfully prevent the un-necessary call of the `onGlobalClick`
method mentioned above.

Refer the related enterprise PR for the test case of this fix.

Task-3489455

closes odoo/odoo#150257

X-original-commit: e321fe3a40dd470095c79e7abcd273d6fa0cfe7c
Related: odoo/enterprise#54752
Signed-off-by: Stéphane Debauche (std) <std@odoo.com>
2024-01-23 18:27:45 +00:00
lejeune quentin c17917b8d2 [FIX] point_of_sale: Stop Odoo service during a checkout
Actually when we link a DB and the iot need checkout a
specific version of Odoo, the service odoo in the iot
is still active.

This can disrupt the checkout and make the box unusable.

So now we stop the odoo service before the checkout.

closes odoo/odoo#150190

X-original-commit: 3e6700c7be8e58f07791ab1ef2b7b77b7a0597e2
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
2024-01-23 18:27:43 +00:00
Nicolas Martinelli 85c06dd3ae [IMP] base: log job duration
Log the job duration of the usual `INFO` level for easier monitoring.

closes odoo/odoo#149881

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2024-01-23 18:27:42 +00:00
Louis (loco) be782ddde5 [FIX] web_editor, *: correctly display the hierarchy between elements
*website

Steps to reproduce:
- Drop a "Text-Image" snippet on the website.
- Click on a column and hide it on desktop.
- Click on the parent snippet and hide it on desktop.

-> The column is not a child of the parent in the invisible entry.

Since [1], invisible snippets are shown hierarchically in order to
better visualize the "parent-children" relation that could exist between
them. To do so, [1] based its logic on the `.o_snippet_invisible` to
find the invisible elements. However, since [2], a distinction has been
made between elements that are hidden only on desktop, only on mobile or
on both depending on some conditions. The goal of this commit is to take
the new `o_snippet_mobile_invisible` and `o_snippet_desktop_invisible`
classes into account at the creation of the invisible entry.

[1]: https://github.com/odoo/odoo/commit/922d3e63b597b1ef7fbbb5ebb4641a3ad8bdf4ed
[2]: https://github.com/odoo/odoo/commit/3103e0553011b5c1f4078972d7a88fa3fd4068b2

task-3679823

closes odoo/odoo#150512

X-original-commit: c8f247ee5fa178f012b2852cba3d0e9322a2c3a6
Signed-off-by: Robin Lejeune (role) <role@odoo.com>
2024-01-23 16:01:50 +00:00
roen-odoo d45e933a89 [FIX] point_of_sale: Correctly delete linked pos_printer to iot_box
Current behavior:
You couldn't delete an iot_box if a pos_printer was linked to it.
You always get a validation error saying that "Proxy IP cannot be empty"
To fix this we first want to check that the device_id linked to the
printer still exists. To do this we need to move the constraint to the
pos_iot module (because the device_id field is defined there)

Steps to reproduce:
- Install pos_iot
- Activate preparation printer in POS
- Create a printer and link it to an iot_box device
- Try to delete the iot_box

opw-3597370

closes odoo/odoo#150502

X-original-commit: 7b41e51043c1f80971f6cc698876f8bda35f07ef
Related: odoo/enterprise#54874
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2024-01-23 16:01:47 +00:00
snd 72c4a2352c [FIX] mrp: have a coherent flow for replenishing after scrap
When ticking 'Replenish' on a scrapping, the created move is unrelated to the
production order. This means that in a 2-steps manufacturing flow, validating
the move will not automatically reserve the product(s) on the production order
as is done when validating the moves created by the MO confirmation.
This is because the new move has no move_dest_ids.

This fix has 2 parts:
- first, add the new move to the already existing procurement group of the MO
so that it is easier to find.
- second, assign a move_dest_ids to that move so that when it is validated,
the quantity is automatically reserved on the MO.

opw-3560182

closes odoo/odoo#150499

X-original-commit: 71ae6392c3626da58b6c7440f93c8661e99fe314
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: Stéphane Diez (snd) <snd@odoo.com>
2024-01-23 16:01:46 +00:00
Julien Castiaux 5a14c8d5a6 [FIX] mail: support hebrew charset iso-8859-8-i
One of our customers is receiving emails with headers and attachments
encoded using the "iso-8859-8-i" charset instead of "iso-8859-8" which
is natively supported by Python. Both encoding are using the same
character set[^1] and only differ in the way the text is rendered on
screen[^2][^3] which is not revelant for Python.

Add an alias for iso-8859-8-i so that the emails that this customer
receive stop failing in Odoo. Note that there is a PR opened on
CPython for exactly that, see [bpo-18624].

opw-3653210
[bpo-18624]: https://bugs.python.org/issue18624
[^1]: https://encoding.spec.whatwg.org/#legacy-single-byte-encodings
[^2]: <data:text/html;charset=iso-8859-8,hello%20%E0%E1%E2%E3>
[^3]: <data:text/html;charset=iso-8859-8-i,hello%20%E0%E1%E2%E3>

closes odoo/odoo#150467

X-original-commit: 5a025467a605ca4fa963b79bae254c823518d54c
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-01-23 16:01:43 +00:00
shsa-odoo 59e252c715 [FIX] web_editor: font styles shows active while selecting cells
Before this commit:

-Font styles shows active while selecting cells.

After this commit:

-Font styles should not be active by default.

task-3547652

closes odoo/odoo#150443

X-original-commit: d026f4d7160ec00b6cb27b4cf5b34afc9dbfda13
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-01-23 16:01:42 +00:00
Benoit Socias 140e58c5a6 [FIX] web_unsplash: ignore received duplicates
When obtaining several batches of images for the same string query on
Unsplash, sometimes the same image appears in several batches.
Because of this the `t-foreach` in the `web_unsplash.ImagesListTemplate`
template fails when duplicate records appear in the list of images.

This commit ignores duplicates received from Unsplash to avoid the
issue.

task-3637756

closes odoo/odoo#150511

X-original-commit: 78cad00e169e42d13aecf37ffb19615d725f4e2d
Signed-off-by: Robin Lejeune (role) <role@odoo.com>
2024-01-23 09:47:24 +00:00
Yolann Sabaux 6e56b09573 [FIX] account_edi_ubl_cii: strip phone number ubl
Steps to reproduce:
[l10n_sa_edi]
- create a SA customer with phone number e.g.:`+971 56 777 7777`
- create an invoice
- Zatca Process it

Issue:
Error: "The Buyer’s contact phone number (BT-57) shall start with “0“ or “+”, followed by a maximum of 15 number and minimum 4 character after the “+“ or “0“ , if exist."

Solution:
For Saudi Arabia, it is not necessary to have the phone number.
For other locations, I assume that stripping the phone number could not harm the process.

opw-3666195

closes odoo/odoo#150495

X-original-commit: c8d93c7574f97ddd8924ed80031327db36c1c336
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
Signed-off-by: Yolann Sabaux (yosa) <yosa@odoo.com>
2024-01-23 09:47:23 +00:00
visp-odoo 2bb2349e49 [FIX] web_editor: can't get out of inline code block
Before this commit:

If we entered text within a inline-code block and pressed the backspace key,the
zero-width space (zws) at the end of the inline-code block would be deleted.
Consequently, there was no way to exit the inline-code block.

After this commit:

Users can now navigate out of the inline-code block by using the right or left
arrow keys when inside an inline-code block.

task-3613340

closes odoo/odoo#150453

X-original-commit: 31c73e9dd53fa0f7379d87e9c9970b2788e454cd
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-01-23 09:47:22 +00:00
sesn-odoo 3ca0e0c55f [FIX] l10n_ph: ensure string input in regex substitution
Steps to reproduce
------------------
* install `l10n_ph`
* switch to a Filipino company
* create a vendor bill with a line with no product and a tax that has a
  "Philippines ATC" defined (ex: 5% WI010 - Prof Fees)
* attempt to generate the `BIR 2307 Report` through the action menu

You should be met with a traceback.

opw-3683037

closes odoo/odoo#150566

X-original-commit: c1ab55fd1e0eecb9848392995f91d994ad6d4d4c
Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <jbw@odoo.com>
Signed-off-by: Séna Serge Nshimiyimana (sesn) <sesn@odoo.com>
2024-01-23 07:07:55 +00:00
Olivier Monnom (mool) d5822a1f72 [FIX] point_of_sale: Select the NetworkManager or directly wpa_supplicant
Above IOT Image 23.09, the Debian "bookworm" distribution is used. This
distribution uses the NetworkManager configuration tool suite to setup
the network. This break the code used until 23.09 included.
In this PR, the code check the Image version and switch to NetworkManager
if necessary.

Before: Conflict with wpa_supplicant management in Debian "bookworm"

Now: The network management tool is choosen in relation to image version

mool

closes odoo/odoo#150560

X-original-commit: 8f96e05c851a748c93caa7577e9af87f724adad1
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
2024-01-23 07:07:54 +00:00
Achraf c096cccb4d [FIX] web: usable *_activity widget in many2many subview
Example of steps:
	- Install `web_studio`
	- add a `many2many` field from res.partner
	- create a record
	- add a line by selecting a partner

In this case `_parseServerValue` will crash

https://github.com/odoo/odoo/blob/29d55e44035b6e6c6aba6fa4a114d555a766b7c7/addons/web/static/src/legacy/js/views/abstract_model.js#L101-L111

Because `field.selection` is undefined
this code is getting field from this line

https://github.com/odoo/odoo/blob/d3ef5891e8e92636dd61b8f2b7186ad139e8b42a/addons/mail/static/src/web/fields/kanban_activity/kanban_activity.js#L14
Instead of specifying `selection: []` in the fieldDependencies
this pr fixes this issue generally and prevents these kind
of fixes https://github.com/odoo/odoo/pull/125052

opw-3671417

closes odoo/odoo#150445

X-original-commit: 139e107a58ff4be4f03a57df07806355cb7d6236
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2024-01-23 07:07:53 +00:00
Naman Shah 32c6377563 [FIX] l10n_in: invisible the l10n_in_pan field if company is not indian
Before this commit:
If Indian-Accounting is installed in the user's system but the user is in
another company, still the l10n_in_pan(PAN) field is visible.

Technical Reason:
attrs was not there to invisible the field.
Adding invisible attrs if the active company is not Indian.

After this commit:
l10n_in_pan(PAN) field is not visible if the active company is not Indian.

Task-3635445

closes odoo/odoo#149496

X-original-commit: 5fb795f5ab3b54b2c37fe1b734f949cc3ce9a6de
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Naman Shah (nash) <nash@odoo.com>
2024-01-23 07:07:52 +00:00
Dylan Kiss (dyki) 708088d5ad [FIX] account: no default taxes on cutoff entries
When creating a cut-off entry with an account that has a default tax
configured on it, we don't want that tax to be computed on the cut-off
entry again. Reason is both that we don't want to impact the tax report
again with these taxes, and it would also create an auto-balancing line
to balance out the computed tax on a suspense account, which is pretty
confusing to the user.

task-3650271

closes odoo/odoo#150446

X-original-commit: acf21ee79cb97470c014e0897316f0c59e2ee485
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
2024-01-23 05:56:22 +00:00