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
closesodoo/odoo#139761
X-original-commit: 8b4a22baa92f196361f1ef622b55312015cf8128
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
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 #3130665closesodoo/odoo#139757
X-original-commit: 59c434773c17f81d3a1c160407e8b4533f48e911
Signed-off-by: William André (wan) <wan@odoo.com>
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.
closesodoo/odoo#139733
X-original-commit: 2d9d8ea78f71669486644bdb599d2b4a5cc7a5c8
Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
Purpose
=======
Cannot currently save My Profile due to those 2 fields
- attendance_manager_id (allowed for groups 'Attendances / Administrator')
- employee_cars_count (allowed for groups 'Fleet / Administrator')
They are in the SELF_READABLE_FIELDS property, but the method
check_field_access_rights is not taking that information into account.
Part-of: odoo/odoo#139731
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.
closesodoo/odoo#139721
Task-id: 3525764
X-original-commit: ceab3ee21d3e6eb4cfcf0a0cd8df40873744beaa
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
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
- 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.
closesodoo/odoo#139718
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
- `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
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
closesodoo/odoo#139709
X-original-commit: b416e0b684c3e371d70db3a9f6653f1371acf972
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Valeriya Chuprina (vchu) <vchu@odoo.com>
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/70043822103638f651a521bd2da36cfdfd86245eclosesodoo/odoo#139702
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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.
closesodoo/odoo#139701
Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
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.
closesodoo/odoo#139698
Task: 3270458
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
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
closesodoo/odoo#139689
X-original-commit: 17f3fc980bf65f3ca4a02da998afafdfd386e0de
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Signed-off-by: Hugo Poncelet (hupo) <hupo@odoo.com>
Currently if a record is not in the cache it raises a `CacheMiss` the
handling of which leads to loading the record from the database (or
something).
If an issue occurs during that loading, because the loading is an
`except` scope the cache miss gets linked with the new one via
> During handling of the above exception, another exception occurred:
This is both noise (the cache miss is not actually relevant) and
misleading, because the wording makes it look like an unrelated error
occurred during handling.
- move the loading of the record out of the `except` to limit the
scope of the `KeyError` and avoid "inheriting" it
- try to `from None` a few specific errors to remove implicit linkage,
as the new error should have all relevant information, the key error
/ cache miss is just an implementation detail
closesodoo/odoo#139680
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
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
closesodoo/odoo#139670
X-original-commit: 8b6bd8c92402a92efed71f97de61eaeffb0caea7
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Before this commit it is impossible to find the qweb error when you preview an email template.
closesodoo/odoo#139668
X-original-commit: 1f373de5f218a1f43015f4f80e60d1da0188d6b5
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
closesodoo/odoo#139615
Signed-off-by: Laurent Smet (las) <las@odoo.com>
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.
closesodoo/odoo#139612
Related: odoo/enterprise#49477
Signed-off-by: Laurent Smet (las) <las@odoo.com>
- 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
*: 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.
closesodoo/odoo#139555
Related: odoo/enterprise#49442
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
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.
closesodoo/odoo#139317
Task: 3565443
Related: odoo/enterprise#49313
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Purpose
=======
Make it possible to compare analytic values between plans by inputting
up to one account per plan on each line.
For instance, if we have 2 plans: "Country" and "Product Type", with the
following accounts
| Country | Product Type |
| ------- | ------------ |
| BE | Drinks |
| LU | Food |
And the following invoices:
* 1000€ of drinks in Belgium
* 2000€ of food in Belgium
* 3000€ of food in Luxemburg
We want to be able to display the following pivot tables:
| | Drinks | Food | Total |
| --- | ------ | ---- | ----- |
| BE | 1000 | 2000 | 3000 |
| LU | 0 | 3000 | 3000 |
| Tot | 1000 | 5000 | 6000 |
| | Total |
| ------ | ----- |
| Food | 5000 |
| * BE | 2000 |
| * LU | 3000 |
| Drinks | 1000 |
| * BE | 1000 |
| Total | 6000 |
Implementation
==============
* `ir.fields` are added/removed dynamically on `account.analytic.line`
* Each analytic plan corresponds to one field on `account.analytic.line`
* The fields are added dynamically in the views.
* `account.analytic.plan` doesn't have a `company_id` field anymore,
meaning that all the companies have access to all the plans. This
means that the applicability fields and lines are now company
dependent, and those can be used to know which fields/plans to display
for which company.
* There can no longer be one "Project" plan per company, even if the
accounts of that project can still be owned by only one company.
* There is now only one method to get the default (or "Project" plan),
which is `_get_plan_columns`
task-3497653
closesodoo/odoo#139225
Related: odoo/upgrade#5306
Related: odoo/enterprise#49226
Signed-off-by: William André (wan) <wan@odoo.com>
Co-authored-by: william <wan@odoo.com>
Co-authored-by: h4818 <ayh@odoo.com>
Currently, users who want to change the visibility of product's
documents need to open their form view and edit it.
The selection widget now allows users to quickly edit the way a document
is displayed to their customers from the product's documents kanban view.
Part-of: odoo/odoo#137975
The rational is:
Currently we have 2 columns. One for reservation, the other
for quantity picked.
However in real time, either you follow the reservation and everything
goes well. Otherwise you pick something else. In the case where you
pick somewhere else than reserved, you would like to modify the
reservation to have something similar and free the quantity you
didn't pick and expect the system to not suggest the ones you took.
In other hand, we always want to have the reserve quantity similar to
the done.
On top, having two columns could be confusing for the end user.
The cons:
-The qty_done column could be use during the picking, to
remember if something has been pick or still to pick.
- For some flow (put in pack), it's easier to write a part of the quantity to pack
and still want to reserve the full amount of product.
We goes back and choose a ligther interface over complex feature.
Changes:
Qty done and reserved qty are merged into a single column.
A new checkbox on the move exists to mark it as picked or not
Since the reservation always follow the quantity, it's now possible
to have more reserved quantity than stock. However the system will
never propose it and the inventory showing reserved > quantity should
be a warning.
The system should never modify a move that has been picked. We don't
want to overide the user action.
Regression:
Not able to pick a single stock.move.line
closesodoo/odoo#137864
Related: odoo/enterprise#48709
Related: odoo/upgrade#5310
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
In this commit a new default floor plan is added along with one table when
creating a new restaurant pos_config. It ensures that the default floor
is removed for the demo data and for the tests.
closesodoo/odoo#139594
Signed-off-by: David Monnom (moda) <moda@odoo.com>
Task Description
o-spreadsheet now allows to insert images in a spreadsheet, and
we also allow to export them inside .xlsx file. However, while this
works as intended in a standalone o-spreadsheet server, it doens't
work correctly in Odoo as the data of the image are not found while
we try ton convert the spreadsheet to an xlsx file. This PR aims to
simplify the request made to get the binary data of the image file.
Related task
closesodoo/odoo#139549
Task: 3524473
X-original-commit: 301a98c
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
The onchange on the stage_id/project_id wasn't triggered when modifing tasks in batch
we are now putting the same conditions as the onchange but in the task write() method
closesodoo/odoo#139491
X-original-commit: 0accffc0eb65f40e44d31402a0a362abaaa9b9bd
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Now that some field attributes like invisible are given by Python expressions
and that those can involve some set operations, we have to ensure that
the views can be validated if they use such operations. We do that and
add a test.
closesodoo/odoo#139451
Signed-off-by: Géry Debongnie <ged@odoo.com>
Now that some field attributes like invisible are given by Python
expressions that can involve set operations, we want to be able to easily
edit those expressions in the expression editor. For this we have to
improve a bit the mapping expression <-> condition tree, in order to
have simple rewrittings like
"set(user_ids).intersection([1, 2])" <-> condition('user_ids', 'in', [1, 2]).
Part-of: odoo/odoo#139451
We make py_js support sets and the operations intersection, union, and
difference.
Part-of: odoo/odoo#139451
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Christophe Matthieu <chm@odoo.com>
This commit addresses a specific issue: the prevention of work entries being
generated when an employee's leave needs to be deferred. In some cases,
employees may need to postpone or reschedule their entire leave period at
once, rather than creating separate work entries for each day of leave. This
change in the code ensures that such deferred leaves are handled more
efficiently, allowing for the entire leave duration to be deferred in one action
streamlining the leave management process.
closesodoo/odoo#139434
Task: 3424006
X-original-commit: 17ca2e19fd231df5e19297eaee72a4e946825a94
Related: odoo/enterprise#49390
Signed-off-by: Bertrand Dossogne (bedo) <bedo@odoo.com>
Before this commit:
When we paste html using selectAll and we click code view button then the newly
added template will be visible and immediately got removed by old template. This
problem is because of pasted html is not sanitized.
After this commit:
Now when we paste html using selectAll then we actually see new html template in
result.
task-3473633
closesodoo/odoo#139384
X-original-commit: 6d6e1527ccdf5e616330905bc4b7e4fdd80c6192
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Before this commit:
When you try to copy paste html in code view of email marketing then in preview
it will show the code instead of template.
After this commit:
Now when you try to paste html in code view of email marketing then it will show
template preview as a result.
task-3473633
X-original-commit: 5cd1a900d89c34877be2c1036ad52d8b4a70c849
Part-of: odoo/odoo#139384
The res config settings view contains block in which peppol can be
enabled. Enabling peppol using the checkbox inside the block installs
the peppol module. Once installed, the "Use Peppol invoicing" option is
available, which is itself a checkbox, nested inside of the previous
one. This gives the appearance of duplication, and in addition it's not
relevant at this point to provide the user the option to uninstall
peppol from this menu.
The solution is to replace this content in the view when peppol is
installed, such that the peppol options are always displayed, and the
enable peppol checkbox is replaced.
For this reason, references to the "is_account_peppol_participant" have
been removed, as its use was primarily for hiding/displaying these
settings. The field is no longer useful, and should, references to be
removed in a later Paccount_R have been removed, as its use was
primarily forhiding/displaying these settings. The field is no longer
useful, and should be removed in a later upgrade script.
Required fields have been modified in the xml such that they no longer
prevent saving from the res config settings, instead validation is
performed on the "validate registration" button action.
closesodoo/odoo#139379
Task-id: none
Signed-off-by: Laurent Smet (las) <las@odoo.com>
This PR introduces a general redesign of the Portal user interface in order
to give it that fresh and sleek vibe we also introduced in the backend.
A list of the different changes can be found below. It includes redesign
of some elements as much as layout modification, or element additions.
closesodoo/odoo#138077
Related: odoo/enterprise#48641
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: fdamhaut (FLDA) <flda@odoo.com>
Co-authored-by: stefanorigano (SRI) <sri@odoo.com>
This commit removes unused variables inside portal.
Before the redesign, portal was using a card layout. To ensure these
cards were always visible and readable, we used SCSS variables to detect
the `background-color` of the page. If the `background-color` was white,
we would set it to a light gray to ensure our cards are visible.
With the new design, we modified the structure and layout of the page,
using a bg-light class directly on the cards rather than modifying the
background of the body, which made these lines useless.
Since they are not used anywhere, we remove them from our SCSS file.
task-3046004
Part-of: odoo/odoo#138077
This commit removes the promise extension which added the function
`guardedCatch`. It was used to filter server and connection errors from
javascript errors. Instead of using guardedCatch, we should use catch
and check if the reason is a server or connection error if needed and
re-throw the error if it's not handled.
closesodoo/odoo#137702
Task: 3439226
Related: odoo/enterprise#48451
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Since it is cached by the ORM (see parent commit), there is no need to
manage the caching in the business code anymore.
In most cases in addition to making the code shorter, it also makes it
more readable by making the direction of the rate more obvious with the
use of the `to_currency` parameter.
closesodoo/odoo#137609
Signed-off-by: Raphael Collet <rco@odoo.com>