Commit Graph
141092 Commits
Author SHA1 Message Date
Sven Fuehr 6e230629c0 [FIX] l10n_at: translate accounts, tax report to English
Currently the accounts and tax report are still defined directly in German.
This commit translates them to English and uses the appropriate
translation mechanism for the translation into German.

task-3354661

closes odoo/odoo#135485

Related: odoo/enterprise#47405
Related: odoo/documentation#5859
Signed-off-by: Josse Colpaert <jco@odoo.com>
2023-10-26 12:10:11 +00:00
Sven Fuehr d19600b7d0 [IMP] l10n_at: add external / SAF-T tags to accounts
The Austrian SAF-T specification defines a chart of accounts (CoA).
All accounts that are "exported" in the SAF-T document have to be
annotated with their corresponding account in the SAF-T CoA.

This commit introduces tags to associate individual accounts with a code that
should be used for external reports.
For now they will be used to map the company's CoA to the SAF-T CoA.

task-3354661

Part-of: odoo/odoo#135485
2023-10-26 12:10:11 +00:00
Sven Fuehr 715d1eb1a1 [IMP] l10n_at: update CoA; i.e. prepare for SAF-T export
This commit adapts the default chart of accounts to be compatible with
the SAF-T chart of accounts.

In other commits new tags will be added to each account that map our
CoA into the SAF-T CoA (and the account names will be translated).
To make it easier to review the CoA changes the changes are kept separate in this commit.

The account "2600 eigene Anteile" was moved and made into an equity
account since as of today they are part of the equity section of the balance
sheet (by law).

task-3354661

Part-of: odoo/odoo#135485
2023-10-26 12:10:11 +00:00
Sven Fuehr 10b7ffeaf2 [IMP] l10n_at: add country to tags
Previously the tags had no country information.
This commit adds it; they all belong to Austria.

Part-of: odoo/odoo#135485
2023-10-26 12:10:11 +00:00
198e226f5b [IMP] website: Expose models on the website
This commit implements a way to expose any model publicly on the website. Both manual and
existing models can create such pages called 'Model Pages'.
A manual model is a model that has been created by the user at runtime, via the technical menu,
via studio, or with an xml declaration.

The main interface to easily create such page is in Studio, in the tab Website Integration. But a
partner or developer could easily import those without studio installed. That's the reason most of
the code to handle the display of such pages is present in the website module directly.

The listing can handle two display modes (Grid or List). Once the user changes the display mode,
the latest value is set in the session to be remembered for the next visit of the page.
A default_layout can be set and is customizable in the website editor or from the backend of Website.
This value is linked to the page to display, so each listing page can use a different layout by default.

The route on which the models are exposed is:
"/model/<string:page_name_slugified>",

With the derived routes:
"/model/<string:page_name_slugified>/page/<int:page_number>",
"/model/<string:page_name_slugified>/<string:record_slug>"

task-id-3231144

Part-of: odoo/odoo#130544
Co-authored-by: Florent Dardenne (dafl) <dafl@odoo.com>
Co-authored-by: Luca Vitali (luvi) <luvi@odoo.com>
2023-10-26 12:10:08 +00:00
flvr-odoo 8d18978b05 [FIX] website: quick fix for install without demo data
Fix crash at install without demo data

closes odoo/odoo#139817

Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
2023-10-26 08:46:01 +00:00
Adrien Dieudonné e6c747b43b [REF] *: keyboard: replace deprecated charCode, keyCode and which properties
These properties are deprecated.

We should consider to use `KeyboardEvent.key` or `KeyboardEvent.code` for new code.
Note that we prefer to use the `key` property as multiple physical keys
can send the same value (e.g. Enter can also be sent by the numeric pad).
We should only use `code` when we explicitly want to target a single physical
key on the keyboard.

By doing this, we can now remove the dependency of `jQuery.ui.keyCode`
that was used as mapping of key code descriptions to their numeric values.

References:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/charCode (deprecated)
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode (deprecated)
https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/which (deprecated)

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key

https://api.jqueryui.com/1.12/jQuery.ui.keyCode/

Some links that helps:
https://w3c.github.io/uievents/tools/key-event-viewer.html
https://www.toptal.com/developers/keycode/table

closes odoo/odoo#139809

Related: odoo/enterprise#49591
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
2023-10-26 08:46:00 +00:00
Nicolas Viseur (vin) 5dc625fada [IMP] l10n_au: Remittance Advice
In AU, it is customary to name proof of payments document
with different headers if the partner is a customer or a
supplier.

If the partner is a customer, the current "Payment Receipt"
is expected.
If the partner is a supplier, "Remittance Advice" is expected.

This change will bring this to the payment receipt report
if:
- the australian localisation is installed
- either the company or the partner are from Australia

Task id # 3465257

closes odoo/odoo#139543

Signed-off-by: Laurent Smet (las) <las@odoo.com>
2023-10-26 08:45:57 +00:00
anhe-odoo 33e00d1c13 [IMP] spreadsheet: allow to download a shared dashboard
Task Description

The aim of this PR is to be able to download a shared dashboard.
This is done by adding a "Download" button on the shared dashboard
(next to the frozen date), which allow to export the dashboard as
an .xlsx file.

Related Task

closes odoo/odoo#139426

Task: 3512907
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2023-10-26 08:45:56 +00:00
svs-odoo 28a9fba05f [IMP] product,purchase: compute price with discount
Add two computed fields, `price_discounted` on `product.supplierinfo`
and `price_unit_discounted` on `purchase.order.line`, to get more
precise price.
For the vendor pricelist, it's useful to get the actual lower price (a
vendor price can be lower than another one but the result can be
different if the discount is take in account).
For the purchase order line, it's useful to get the right price in the
products catalog.

task-3373589

closes odoo/odoo#135502

Related: odoo/upgrade#5223
Related: odoo/enterprise#48375
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2023-10-26 07:22:56 +00:00
svs-odoo bc01c7bcec [IMP] product,purchase,sale,*: product catalog
This commit makes two major things:

1. Move the product catalog from `sale` to `product`.
It moves the product catalog's code from `sale` to `product` module in
order to be able to use it in other modules.
A mixin, `product.catalog.mixin`, was created for to make other models
catalog compatible.

2. It enables the product's catalog in `purchase`.
In `purchase`, the catalog differs a little bit from `sale`:
- If Unit of Measure is enable, the UoM for each product will appear in
  the catalog;
- If the product purchase's UoM or the purchase order line's UoM is
  different than the default product's UoM, the former one will be
  displayed (in bold so the user can know it's the UoM to refer);
- When opening the product's catalog from a purchase order, the products
  will be filtered by the PO's vendor;
- Some data from the vendor list will be used if appliant: the minimum
  quantity and the price;
- If there is at least one product's packaging, a button will be
  displayed to increase the qty by the packaging's one. If a packaging
  is set on the purchase order line, this one will be used.

task-3373589

Part-of: odoo/odoo#135502
2023-10-26 07:22:56 +00:00
svs-odoo 0a80dbd643 [FIX] purchase(_stock): check style corrections
Part-of: odoo/odoo#135502
2023-10-26 07:22:56 +00:00
svs-odoo aabcdd2bc6 [MOV] purchase(_stock): separate PO & PO line
Separates the file `model/purchase.py` into two files:
- `model/purchase_order.py`
- `model/purchase_order_line.py`

Since every model should have their own file, `purchase.order` and
`purchase.order.line` have it now.

Part-of: odoo/odoo#135502
2023-10-26 07:22:56 +00:00
svs-odoo 500c837f55 [FIX] stock: clean product's views indentation
Part-of: odoo/odoo#135502
2023-10-26 07:22:56 +00:00
Pierre Paridans 963842381e [IMP] web,*: replace ClipboardJS with Web API and homebrew polyfill
*: auth_totp_portal, mrp_subcontracting, project, survey, web_editor,
   website, website_links, website_sale_loyalty, website_slides, test_lint,
   spreadsheet

Implements missing `clipboard.write()` and `ClipboardItem` ; targets
only Firefox (which partially implements Clipboard API, features hidden
behind a preference flag).

Supported browsers: Chromium 76+, Safari 13.1+, Firefox 63+, Safari iOS
13.4+.

This allows to replace ClipboardJS by the native Clipboard Web API.

Reference:
https://caniuse.com/?search=clipboard
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API
https://w3c.github.io/clipboard-apis/

task-3439226

closes odoo/odoo#134881

Related: odoo/enterprise#47154
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2023-10-26 07:22:54 +00:00
jorv 54dcdda950 [FIX] mail: Make flanker log message more general
The `flanker` python library can be installed to implement optional
email address validation.
Nevertheless, it is not fully supported in python 3 (see https://github.com/mailgun/flanker).

Recent issues point to the fact that the latest pip release version 0.9.11
does not work under python 3.10.
This can lead to features, using the email validation, creating blocking
behavior due to error tracebacks.

As this is more of an issue on flanker's side than Odoo's, we remove the
`pip install` instruction. It can be assumed that someone wanting to go
out of their way to install flanker, should be proficient enough to either
make sure the python <3.10 is running or install one of the Github repo tagged
versions.

After this change, we still inform the user of the optional feature, but do not directly
incite them to pip install it, which should prevent normal users from
inadvertently blocking parts of their Odoo database.

opw-3562596

closes odoo/odoo#139800

X-original-commit: 637e60cb9687e9859d081f7367717c84d29fb82a
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-26 06:16:16 +00:00
Martin Trigaux 1e06577306 [FIX] mass_mailing: don't show inactive mailing lists
Those are no longer used and should never be displayed

Source: feedback of users that were wondering why they are subscribed
to very old unrelated mailing lists while those are all inactive

closes odoo/odoo#139442

X-original-commit: 35203a93dbb002e2e8c6943073c14acdfc5f90f1
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-10-26 05:13:31 +00:00
Thomas Becquevort (thbe) f25ede851e [IMP] account: easier payment registration for bills
Description of the issue/feature this commit addresses:

Currently, the payment registration for vendor bills is kinda hard to figure.
Noticing which bills are overdue, which require a payment is not made so easy
by the interface and could be improved. Also there is no way to register a
payment for multiple lines at a time which could improve the UX.

Desired behavior after the commit is merged :

The buttons "Bills to Pay" and "Late Bills" redirect to a Journal Items view
called Payment Items with specific filters to show only the necessary lines.

The order of the columns in the Journal Items has been changed and their
visibility has been changed too.

The default filters of the Journal Items when coming from the dashboard buttons
has been changed. Payable has been replaced by Purchases.

Filters, Group by and Search by options have been added for the Due Date
and the Discount Date fields in the Journal Items.

task-3516496

closes odoo/odoo#138188

Related: odoo/enterprise#48679
Signed-off-by: William André (wan) <wan@odoo.com>
2023-10-25 22:14:51 +00:00
Florian Damhaut 060e13ad6d [IMP] sale: Allow override line editability in portal
Add function to allow line editability to be overriden.

task-id : 3186629

closes odoo/odoo#137563

Related: odoo/upgrade#5312
Related: odoo/enterprise#48394
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2023-10-25 22:14:48 +00:00
Florian Damhaut 730c6c3011 [IMP] sale: Portal View generic IMP
Refactor the "details" part of the portal view to unify with subscription
as well as add different id "hooks" for inheritance.

task-id : 3186629

Part-of: odoo/odoo#137563
2023-10-25 22:14:48 +00:00
Antoine (ande) a4600f2790 [FIX] account: cannot make branch with generic coa
Current behaviour:
When your current company is South Korean,
The chart of account is generic.
If you try to create a South Korean company
branch, you'll get an error message:
The Currency of a subsidiary must be the same as its root company.

Steps to reproduce:
1. Install account_accountant
2. Go to Settings
3. Go to Users & Companies > Companies
4. Create a new company
5. Country: South Korea
6. Currency: KRW
7. Switch into the new company (top right)
8. Go to Accounting
9. Go to Configuration > Settings
10. Fiscal Localization: Generic Chart Template
11. Save the changes
12. Fiscal Country: South Korea
13. Main currency: KRW
14. Save the changes
15. Go to Settings
16. Go to Users & Companies > Companies
17. Select the Korean company
18. Create a new branch
19. Country: South Korea
20. The Currency of a subsidiary must be the same as it's root company.

Cause of the issue:
The generic chart of account's currency is USD

opw-3537346

closes odoo/odoo#139796

X-original-commit: 303fde24a62269159def12760e438997f6c6f147
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2023-10-25 20:56:17 +00:00
roen-odoo 160b404fa9 [FIX] point_of_sale: correctly delete sequences when uninstalling PoS
Current behavior:
After uninstalling the PoS module, if you try to install it again, you
get a traceback because Odoo is trying to create a sequence that already
exists.

Steps to reproduce:
- install PoS
- uninstall PoS
- install PoS
- you get a traceback

opw-3515647

closes odoo/odoo#139767

X-original-commit: c57bb574721a3610f66320dacdc703abc490d5d4
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2023-10-25 20:56:17 +00:00
Aman Patel a56dfd43a2 [FIX] fleet: change Co2 text to CO2
Steps:
- Install fleet.
- Create new. Select a car.
- Goto `Model` page.
- Below CO2 Emissions string there is Co2 Standard string.

Issue:
- In the Engine section, there is a `CO2 Emissions` and a `Co2 Standard` field.
If these are both referring to carbon dioxide, then they should be written
consistently in the same format (CO2). Currently, one has a lowercase `o` while
the other (correct) one has a capital `O`.

Fix:
We are adding the necessary string.

task-3498197

closes odoo/odoo#139761

X-original-commit: 8b4a22baa92f196361f1ef622b55312015cf8128
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-10-25 20:56:16 +00:00
Nicolas Viseur (vin) 451f4cea3e [IMP] l10n_id_efaktur: do not consume numbers if no taxes
At the moment, the efaktur system will consume a number even
for invoices not using any taxes.
This change will try to avoid that by not consuming numbers
for invoices when no lines has a tax_ids set.

task id #3130665

closes odoo/odoo#139757

X-original-commit: 59c434773c17f81d3a1c160407e8b4533f48e911
Signed-off-by: William André (wan) <wan@odoo.com>
2023-10-25 20:56:15 +00:00
Arnaud Baes c159385502 [IMP] pos_restaurant: Make Restaurant a standalone app.
People must be able to install `point_of_sale` without `pos_restaurant`
if they don't need it. But in order to let users know that they can
install `pos_restaurant` directly, we make it an app, that will also be
selectable from the Start Trial page.

closes odoo/odoo#139733

X-original-commit: 2d9d8ea78f71669486644bdb599d2b4a5cc7a5c8
Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
2023-10-25 20:56:13 +00:00
Yannick Tivisse 7ebafb1eb7 [IMP] base: Remove manager rights to user demo
closes odoo/odoo#139731

Related: odoo/enterprise#49562
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-10-25 20:56:11 +00:00
Julien Carion (juca) 1693fee3db [REF] web: remove orm service nameGet
This commit removes all usages of the nameGet method of the orm service
following changes introduced by https://github.com/odoo/odoo/pull/122085

task-3377209

closes odoo/odoo#139727

Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
2023-10-25 20:56:10 +00:00
Pierre Masereel 92565aae27 [IMP] base_import_module: add fields for industry modules
closes odoo/odoo#139726

Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
2023-10-25 20:56:09 +00:00
Gabriel de Paula Felix (gdpf) a2993fc85d [FIX] microsoft_calendar: limit events request range to calendar view
Before this commit, a time window of two years was being used for requesting events occurrences from Microsoft Graph API. This way, events that were not being visualized in the calendar view were being fetched from the API many times, wasting requests and decreasing the calendar app's performance.

After this commit, this time window is limited to the range being shown in the calendar view to avoid fetching events not being visualized and then increase performance.

closes odoo/odoo#139721

Task-id: 3525764
X-original-commit: ceab3ee21d3e6eb4cfcf0a0cd8df40873744beaa
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2023-10-25 20:56:08 +00:00
Gabriel de Paula Felix (gdpf) 30132c02ef [FIX] microsoft_calendar: performance issue with a lot of recurring events
Before this commit, crap sql query were performed with a lot of recurring events were searched:

```
bad query: SELECT "calendar_recurrence".id FROM "calendar_recurrence" WHERE (((((([...]
((((((("calendar_recurrence"."microsoft_id"::text like '%:XX0') OR (
"calendar_recurrence"."microsoft_id"::text like '%:XX1'))
OR ("calendar_recurrence"."microsoft_id"::text like '%:XX2')) OR ("calendar_recurr [...]
```

After this commit, the search method was replaced for a SQL query, thus not exceeding memory limit anymore when receiving many records from Outlook.

Task-id: 3525764
X-original-commit: 2b089ce43a6290865699c3b9167edc9eb9648a3d
Part-of: odoo/odoo#139721
2023-10-25 20:56:08 +00:00
aliya c2ef126948 [FIX] account_peppol: remove inactive canceled edi users
- If an edi user needs cancellation before they were registered on the SMP,
we should let them cancel and return to the very first step.
We don't need the edi user anymore in that case (no messages could've been
received or sent) so we can safely unlink.
Same is done on the proxy side.
- With that, reopening the registration is no longer needed,
as we currently don't let users reopen their application when they're rejected.

closes odoo/odoo#139718

Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
2023-10-25 20:56:05 +00:00
aliya d5a2a802c9 [FIX] account_peppol: hide peppol_move_state on vendor bills, refunds
- `peppol_move_state` is only useful when sending an invoice/credit note.
  Hide this field from the form view and the tree view for vendor bills and refunds
- when getting new documents from the IAP, ignore messages with peppol state
  `error` as these are not useful for the users.
  Also, if there is an error when creating an invoice from the attachment,
  the vendor bill should still have `peppol_move_state` set to `done`,
  because we have received the vendor bill after all.
  Users can fill out missing details if necessary, by looking at the attachment.

Part-of: odoo/odoo#139718
2023-10-25 20:56:05 +00:00
zel-odoo 8bea49fef6 [FIX] mail:Remove duplicate autofocus code
closes odoo/odoo#139717

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-10-25 20:56:04 +00:00
Valeriya(vchu) 85342d72ee [FIX] sale_product_configurator: fix function _addProduct
steps to reproduce:
- create product A with optional product B
- add product A as optional of product B
- create SO with product A and add optional product B in configurator
after this commit choosing optional product is fixed
opw-3388598

closes odoo/odoo#139709

X-original-commit: b416e0b684c3e371d70db3a9f6653f1371acf972
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Valeriya Chuprina (vchu) <vchu@odoo.com>
2023-10-25 20:56:02 +00:00
Adrien Schoffeniels 6fb1d19ecd [IMP] product: move properties from product.product to product.template
Purpose:
-------
Commit [1] added the properties field on the product.product template.
However, the product.template model is more suitable to hold these
properties as the product.product model already has attributes which
are quite similar to properties.

Task-3570286

[1]: https://github.com/odoo/odoo/commit/70043822103638f651a521bd2da36cfdfd86245e

closes odoo/odoo#139702

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-25 19:37:37 +00:00
flvr-odoo 7d25e7bf92 [IMP] website: add signature to form
This commits add a signature to the website_form.

The purpose of this modification is to allow the controllers to be
able to verify that the form was originally generated from the view.

This prevent the end user to submit arbitrary values to the website_form
controller.

In this commit, email_cc and email_bcc are treated as the same fied as
it holds the same function

This does not offer protection against submission replay. Previous versions
of the form are not invalidated by editing the view.

If one need to completely reset that protection and invalidate the
previously generated website_form, the only solution is currently to
change the database secret.

closes odoo/odoo#139701

Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
2023-10-25 19:37:36 +00:00
Maximilien (malb) c123b676da [FIX] l10n_ar: traceback filter
It seems that the invisible is not working on filter and so the fiscal
country_code cannot be evaluated which causes a Traceback when trying to access
the res_partner form view.

closes odoo/odoo#139698

Task: 3270458
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2023-10-25 19:37:35 +00:00
hupo-odoo 128054575c [FIX] account: move bank reco menuitem to Enterprise
Without the Accounting app and the Bank Reconciliation part, the menu item "Reconciliation Models" is irrelevant. We therefore move the menu item from account to account_accountant.

task-3540705

closes odoo/odoo#139689

X-original-commit: 17f3fc980bf65f3ca4a02da998afafdfd386e0de
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Signed-off-by: Hugo Poncelet (hupo) <hupo@odoo.com>
2023-10-25 19:37:34 +00:00
Eteil Djoumatchoua(etdj) 893781c9a8 [FIX] sale_project: correct the domain of task's sale order
Steps:
- Create a contact with 2 sub contacts Sub1 and Sub2.
- Create a service product with project creation on order.
- Create a quotation for Sub1 and the created product and confirm.
- Go to the created project and create a task.
- Edit the task and change the customer to Sub2.
- Empty the sale order item.

Issue:
The sale order doesn't appear in the drop list.

Cause:
Wrong domain on ``ProjectTask.sale_line_id``.

opw-3441194

closes odoo/odoo#139670

X-original-commit: 8b6bd8c92402a92efed71f97de61eaeffb0caea7
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-10-25 19:37:28 +00:00
Jigar Vaghela 7389345696 [IMP] product*: create product and variant by xml file
before this commit:
===================
you can not create xml record for product.template and product.product and link them for same product
if you like to achieve it you need to do it like

```
<record id="product_template_1" model="product.template">
    <field name="name">Box</field>
    .
    .
    .
    <field name="list_price">8000.0</field>
</record>
<record id="product_template_attribute_line_1" model="product.template.attribute.line">
    <field name="product_tmpl_id" ref="product_template_1"/>
    <field name="attribute_id" ref="product_attribute_color"/>
    <field name="value_ids" eval="[(6, 0, [ref('product.product_attribute_value_1'), ref('product.product_attribute_value_2')])]"/>
</record>

<function model="ir.model.data" name="_update_xmlids">
    <value model="base" eval="[{
        'xml_id': 'product.product_template_attribute_value_1',
        'record': obj().env.ref('product.product_template_attribute_line_1').product_template_value_ids[0],
        'noupdate': True,
    }, {
        'xml_id': 'product.product_template_attribute_value_2',
        'record': obj().env.ref('product.product_template_attribute_line_1').product_template_value_ids[1],
        'noupdate': True,
    },]"/>
</function>

<function model="ir.model.data" name="_update_xmlids">
    <value model="base" eval="[{
        'xml_id': 'product.product_product_red',
        'record': obj().env.ref('product.product_template_1')._get_variant_for_combination( obj().env.ref('product.product_template_attribute_value_1')),
        'noupdate': True,
    }, {
        'xml_id': 'product.product_product_4b',
        'record': obj().env.ref('product.product_template_1')._get_variant_for_combination( obj().env.ref('product.product_template_attribute_value_2')),
        'noupdate': True,
    }]"/>
</function>
```

after this commit:
==================
you can create product.tempalte and product.product from xml file and link it manully by attribute value

like
```
<record id="product_template_1" model="product.template" context="{'create_product_product': False}">
    <field name="name">Box</field>
    .
    .
    .
    <field name="list_price">8000.0</field>
</record>

<record id="product_template_attribute_line_1" model="product.template.attribute.line" context="{'create_product_product': False}">
    <field name="product_tmpl_id" ref="product_template_1"/>
    <field name="attribute_id" ref="product_attribute_color"/>
    <field name="value_ids" eval="[(6, 0, [ref('product_attribute_value_blue'), ref('product_attribute_value_red')])]"/>
</record>

<record id="product_template_attribute_value_1" model="product.template.attribute.value">
    <field name="attribute_line_id" ref="product_template_attribute_line_1"/>
    <field name="product_tmpl_id" ref="product_template_1"/>
    <field name="attribute_id" ref="product_attribute_color"/>
    <field name="product_attribute_value_id" ref="product_attribute_value_blue"/>
</record>

<record id="product_product_blue" model="product.product">
    <field name="product_tmpl_id" ref="software_reseller.product_template_1"/>
    .
    .
    .
    <field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_1')])]"/>
</record>

<record id="product_template_attribute_value_2" model="product.template.attribute.value">
    <field name="attribute_line_id" ref="product_template_attribute_line_1"/>
    <field name="product_tmpl_id" ref="product_template_1"/>
    <field name="attribute_id" ref="product_attribute_color"/>
    <field name="product_attribute_value_id" ref="product_attribute_value_red"/>
</record>

<record id="product_product_red" model="product.product">
    <field name="product_tmpl_id" ref="software_reseller.product_template_1"/>
    .
    .
    .
    <field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_2')])]"/>
</record>
```

closes odoo/odoo#139669

Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
2023-10-25 19:37:26 +00:00
Florent de Labarre 96e3f27424 [FIX] mail: show correctly qweb error
Before this commit it is impossible to find the qweb error when you preview an email template.

closes odoo/odoo#139668

X-original-commit: 1f373de5f218a1f43015f4f80e60d1da0188d6b5
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-25 19:37:25 +00:00
Sébastien Theys 67d32fff44 [FIX] snailmail: tests: fix "message_tests.js"
runbot-24463
runbot-24508

closes odoo/odoo#139646

X-original-commit: f6b658a5dbc227c30830d0c60a2d862892c3306f
Signed-off-by: Didier Debondt (did) <did@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-10-25 18:11:12 +00:00
aliya 556b05125b [IMP] account_peppol: improve move states and filters
Structure `peppol_move_state` according to the following logic:
1. Ready to Send / Invoices confirmed addressed to partners that are Peppol valid and not in one of the other statuses. Default behavior upon posting such an invoice.
2. Queued / In case of asynchronous sending only, the instruction to send has been given via the Send & Print but the cron wasn't run yet. It is still possible to cancel the sending.
3. Pending Reception / Too late to cancel, synchronous or asynchronous sending makes it now impossible to cancel the sending
4. Canceled / Once asked explicitly by the user. It's instant.
5. Done     / Upon confirmation or delivery received from the AP
6. Error / Upon confirmation of a notification of error received from the AP

Add an action on sale journals to open invoices that are ready to be sent via Peppol

- Peppol ready filter in Customer Invoices view
- Rename `PEPPOL state` to `Peppol status` for consistency
- Pre-fill valid phone numbers in `account_peppol_phone_number` field
- Fix async sending in demo mode

closes odoo/odoo#139615

Signed-off-by: Laurent Smet (las) <las@odoo.com>
2023-10-25 18:11:11 +00:00
Claire Bretton (clbr) 489faccb78 [FIX] account: Send & Print - prevent multi email if no mail template set
We don't want to allow to send multiple invoices by email if there is
no mail template set. It would lead to unwanted behaviors.

closes odoo/odoo#139612

Related: odoo/enterprise#49477
Signed-off-by: Laurent Smet (las) <las@odoo.com>
2023-10-25 18:11:10 +00:00
Claire Bretton (clbr) c0f12dc031 [FIX] account: Send & Print values on move shouldn't be copied
We don't want to copy values to be sent when duplicating a move.

Part-of: odoo/odoo#139612
2023-10-25 18:11:10 +00:00
Claire Bretton (clbr) c5c1e6a4e2 [FIX] account,*: Send & Print - remove useless param
Remove useless parameter on the `_get_wizard_values` method, coming
from previous implementations.

Part-of: odoo/odoo#139612
2023-10-25 18:11:10 +00:00
Claire Bretton (clbr) 0d3d6c8e27 [REF] account,*: Send & Print - clean computes
- Clean computes to avoid unnecessary recomputations and improve
the readability.
- Various small fixes after this refactor PR https://github.com/odoo/odoo/pull/139311:
wrong usage of `self`, missing `api.model`

Task-id: 3415101
Part-of: odoo/odoo#139612
2023-10-25 18:11:10 +00:00
Claire Bretton (clbr) da165d53a3 [FIX] l10n_es_edi: Move Send & Print files under wizard files
The Send & Print files were in the wrong folder, they must be under
`wizard` folder.

Task-id: 3415101
Part-of: odoo/odoo#139612
2023-10-25 18:11:10 +00:00
“moda” 4db538611d [IMP] point_of_sale,pos_*: automaticaly paid order when amount is 0
*: pos_online_payment_self_order,pos_restaurant,pos_self_order

Previously, when self order was set to "pay after each" and a user
ordered an order with a total of $0.00, the order was not automatically
set to paid status, as is the case with point_of_sale.

Now, when the self order is set to "pay after each" and an order with a
total of $0.00 is placed, it will be automatically paid.

Minor fixes:
- A props has been removed from `ReceiptHeader` because it was causing
an error in debug mode.
- In point_of_sale, when an order was placed with a total of $0.00, an
error was raised during validation because no payment method was
selected. Now, before checking this payment method, we first check
whether it exists.

closes odoo/odoo#139555

Related: odoo/enterprise#49442
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
2023-10-25 18:11:05 +00:00
vlst c12a87180e [REF] pos*: remove getSteps
pos*: l10n_es_pos, point_of_sale, pos_hr, pos_loyalty, pos_online_payment,
      pos_online_payment_self_order, pos_restaurant, pos_sale, pos_self_order

In this commit we refactor all the pos tours.

Changes:
 - Removed the `startSteps`, `getSteps` functions as they were
   no longer serving a purpose. We now simply put the tours steps
   in the array returned by the function given to `steps`. We
   apply `flat()` to this array in order to be able to provide both
   single steps and arrays containing multiple steps;
 - removed the classes from the tours. Now each helper function
   is simply exported from it's file and is consumed as `import * as myHelpers`;
 - removed the `do`, `check`, `exec` subpaths as they were not providing
   a clearer api. The functions themselves already have descriptive names.
   ( writing `ProductScreen.do.clickHomeCategory()` is not clearer than
   `ProductScreen.clickHomeCategory()` )
 - formatted all files.

closes odoo/odoo#139317

Task: 3565443
Related: odoo/enterprise#49313
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2023-10-25 18:11:01 +00:00