before this commit, the confirmation message
to use web printer was not translatable
to user language
after this commit, confirmation message will
be shown in user's language
closesodoo/odoo#133165
X-original-commit: 916b07f467bb6dad06f452b4437f01193209ff25
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
To reproduce the issue:
1. Create two products A, B
2. Create two BoMs:
- Product: A
- Component: B
- Product: B
- Component: A
3. On one BoM, open the report "Structure & Cost"
Error: an Odoo Server Error is raised: "[...] maximum recursion
depth exceeded while calling a Python object"
The error occurs because of the cycle between both BoMs. There is
already a check for that in `:MrpBom.explode`:
https://github.com/odoo/odoo/blob/2a73890d304476833d76bac9a36ef92f12f267a3/addons/mrp/models/mrp_bom.py#L329
But it's too late in the flow. We should not be able to configure
such BoMs.
OPW-3200969
closesodoo/odoo#132806
X-original-commit: ba66f6b2ad3ea226779af23cdb4ddf223dd7fe85
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
before this commit, if user need to take the sales details
of a pos session, user cannot directly take from the session
form in the pos backend.
if needed from the backend, user has to print from the
point of sale -> reporting -> session report
after this commit, the report will be shown also in the
pos session form, so that user can print the details
by clicking the report from print button in the top
without going to reporting menu.
closesodoo/odoo#132446
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Following 332c117, the list of workorders cannot be accessed from the
menu. This is due to the `parent` not being defined in this case. The
`column_invisible` clause is useful when using the tree view from within
a MO form.
Before the change, the `attrs` attribute (containing the
`column_invisible` clause) was overwritten in the inherited view that is
accessible from the menu. Now that each previously-attrs are separate,
we need to explicitely overwrite `column_invisible` to get rid of the
reference to `parent`.
closesodoo/odoo#133026
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
This traceback raises when user tries to send an invoice without email template.
To reproduce this issue:
1) Install 'Accounting'
2) Open any existing invoice (not a draft one)
3) Click Send & Print button, an wizard will be opened
4) Make 'Use template' blank and give any subject
5) Click on 'send and print' button of wizard.
Error: "Expected singleton: mail.template()"
Note:- This traceback also appears when cron job
(model._cron_account_move_send(job_count=20)) runs.
On '_send_mails' method 'mail_template' variable is getting value from
'self.mail_template_id'. When user removes the template from wizard,
'mail_template' will be false.
See:
https://github.com/odoo/odoo/blob/ce2140fc73e46906acf3963d8bdf9694a499008a/addons/account/wizard/account_move_send.py#L461-L473
In the above usecase 'mail_template' is passed in 'get_default_email_from'
method as an argument, which is used to return
'_get_mail_default_field_value_from_template' method, in that
'mail_template' is used to 'render_field', in which ensure one is used.
It leads to above traceback.
sentry-4364692484
closesodoo/odoo#132847
X-original-commit: dde276cdac5124a5333d03e7a985a2c690d84080
Signed-off-by: Laurent Smet (las) <las@odoo.com>
* account, account_peppol, purchase_requisition, stock_delivery, base
There are some conditions in xml that uses `in` or `not in` for a check
with a string. These are replaced by `==` or `!=` operators,
respectively.
closesodoo/odoo#132798
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
In this PR,
Replace the manual tour steps with existing tour utils.
task-3279232
closesodoo/odoo#129317
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Purpose
=======
If not unlinked, it could make it impossible to create a not null
constraint on columns that are installed after l10n_ch before the
garbage collector dropped the existing wizard, leading to an error
like the following:
Table 'res_config_settings': unable to set NOT NULL on column 'ebay_currency'
Part-of: odoo/odoo#105119
When we have more chat windows open than can be shown on screen, they
get hidden. When we try to open one of the hidden chat windows from the
messaging menu of the system tray, the chat window will unfold in the
hidden menu.
This commit fixes this issue by swapping the hidden chat window that is
being opened with the last visible chat window.
opw-3478264
closesodoo/odoo#133128
X-original-commit: 3649d3c0ba5a8999264b9746cfac0d9a4d1cc061
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
First bug
=========
Steps to reproduce
------------------
- Go to A project task
- Upload an pdf
- Preview the pdf
- Press on the "+" key
```
TypeError: Cannot read properties of null (reading 'offsetWidth')
at AttachmentViewer.updateZoomerStyle
```
Cause of the issue
------------------
Some operations should only be called when the current attachment is an
image.
Second bug
==========
Steps to reproduce
------------------
- Go to documents
- Click on an image document
- Edit the "Tags" field and type +
The image is resized
Cause of the issue
------------------
In the documents app, the viewer is not fullscreen.
The keyboard actions should only be used when the attachment viewer is
focused. The onKeyDown was bound to the document.
Solution
--------
We can bind the `onKeyDown` to the AttachmentViewer.
Since we now need the viewer focused, we can use the autofocus hook.
opw-3456439
closesodoo/odoo#133126
X-original-commit: 7fa95127e55e21bcaf28191c872cd0a1b8a0a6a6
Related: odoo/enterprise#46270
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Hubert Van De Walle <huvw@odoo.com>
Before this PR, RPC in the search GIFs form could resolve in the wrong order and display outdated result.
This PR introduce the use of useSequential hook witch ensure that irrelevant RPC
are canceled.
closesodoo/odoo#133125
X-original-commit: 39fe84706e02ff7828d5098c9ec56aff274cba64
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Before this commit, discuss models were compared with object
reference, e.g. `thread_1 === thread_2`.
This is unsafe with `owl.reactive()`, because it wraps the objects
in a Proxy, and different proxies may map to a same raw object.
This commit fixes the issue by defining `.eq()` and `.in()` methods
on discuss models, which makes comparison on raw value rather than
proxy/reactive one.
This PR also introduce "not" variants, e.g. `.notEq()`, which eases
readability by having "not" and "eq" next to each other.
These "not" variants must be used without optional chaining,
otherwise this gives the opposite result. For example:
```js
const [t1, t2] = [Thread.insert()];
t1 === t1 // true (OK)
t1.eq(t1) // true (OK)
t1.notEq(t1) // false (OK)
t2?.notEq(t1) // undefined => falsy (notOk)
!t2?.eq(t1) // true (OK)
```
closesodoo/odoo#133065
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
The tour `mass_mailing_code_view_tour` indeterministically fails:
When clicking on save in the mass_mailing form, it trigger multiple
call to `MassMailingHtmlField.commitChange`. The expression
`await this.props.record.update({[fieldName]: inlineHtml});` will
subsequently temporarily add the class `o_form_dirty`, after the steps
of `stepUtils.saveForm` have been consumed by the tour.
When a tour finishes, some python code (see
`ChromeBrowser._handle_console`) check that there is no
`.o_form_dirty` element in the DOM. As the class `o_form_dirty` will
temporarily be in the DOM:
- if the check happen before the class is added or after it is
removed, the test will succeed
- if the check happens right before the class is removed, the test
will fail
As the timing is indeterministic, the test is indeterministic.
This commit uses `discardForm` rather than `saveForm` (to avoid having
`.o_form_dirty` from being temporarily added upon save)
Using `discardForm` can make a traceback occurs because a `setTimeout`
callback is called trying to use a selection that is undefined because
the document has been removed at the time of the call.
For this reason, this commit also check that the existence of the
selection.
runbot-23605
closesodoo/odoo#132983
X-original-commit: f34d87ecb7772417f1dd8f3d8836c89ddb903de8
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
In our continued effort to remove legacy code, this commit replaces
the unique usage of the legacy MutexedDropPrevious util with the new
mutex util. The legacy MutexedDropPrevious has been removed.
Part-of task-id 3439226
closesodoo/odoo#132948
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Use the number "8" to define the header of communication in additional data.
Follow the EMVCo Merchant Presented QR Specification document: "If present,
the content of the data object value for IDs "01" to "08" shall be either ***
or a value defined by the merchant. The presence of *** indicates that the
mobile application is responsible for obtaining the necessary information.
Reviewed the Napas QR Specification of VietQR document. The number "8" means
Purpose of Transaction. And almost Bank Applications in Vietnam will use
the number "8" to auto-fill the communication on invoices to their applications.
Already checked with 4 bank applications, also 1 social application in Vietnam.
Closes#132479closesodoo/odoo#133143
X-original-commit: 20d23b1206d0c47cbfd627f85b8c0144df552f10
Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <jbw@odoo.com>
*: mrp_subcontracting, project
This widget is no longer used and is simply dead code. This commit
removes it and references to it in assets bundles.
closesodoo/odoo#133139
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
*: web_editor, website, website_sale, website_slides
This commit removes the legacy storage (localStorage and sessionStorage)
and replaces it with the storage coming from browser.
Part of task-id 3439226
Part-of: odoo/odoo#133132
When a model selection record is going to be deleted, a _process_ondelete method is called in order to delete all the records of the corresponding model that have that selection. These records are obtained by calling _get_records, which uses a query that needs a table. Thus, we should avoid cases for non-abstract models that have _auto = False.
closesodoo/odoo#133118
X-original-commit: 408175a727ecbca88957a9d63d8ec28f3e54c9df
Signed-off-by: Raphael Collet <rco@odoo.com>
This PR odoo/odoo#125747 missed the account 973, which is still not in Ukrainian.
This account should be translated as well.
closesodoo/odoo#133092
X-original-commit: 3b484521ae3d4d1de11ded40ef5528c5cc5eec8e
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
In preparation to further remove `afterNextRender` and other slow
waiting operations.
closesodoo/odoo#133022
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
* point_of_sale, pos_loyalty, pos_restaurant
before this commit, syntax error exist in point_of_sale,
pos_loyalty and pos_restaurant modules.
* export translation of above modules
* check odoo log file
errors in the log:
* Opening and ending tag mismatch: input line
* XMLSyntaxError: Entity 'nbsp' not defined
* Opening and ending tag mismatch: button line
* Specification mandates value for attribute disabled
after this commit, no error's wont be shown in
the log
closesodoo/odoo#132132
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Refactoring of the accrual computation methods and views. There are also
2 new features: custom carry-over date and allocation time:
Custom carry-over date:
Previously, an accrual plan was always evaluated on the 1st of january
to decide if days were lost or postponed to next year. Now the user can
choose any recurring date in the year for that evaluation
Allocation time:
Previously the days were given at the end of the accrual period, meaning
an employee had to work the whole period to get his days. Now there is a
choice between accruing at the start or at the end of a given period.
Simulation:
On an allocation of type accrual, changing date_from or
accrual_plan launches the calculation of the days to allocate. This lets
the user know how many days the allocation would give to an employee and
lets him eventually change that number. After saving the record the flow
resumes like before. There is no more need to create fake allocations.
Additional tests written and some existing tests have corrected values /
parameters to still test same feature but be correct with the new
functioning.
task 3060724
closesodoo/odoo#112383
Related: odoo/upgrade#4597
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
This commit fixes the collapse between the User Menu's Dark Mode check
box and its label on small screen.
Follow-up of odoo/odoo@49176fe372 .
opw-3474193
closesodoo/odoo#133115
X-original-commit: 85ce415d756a454fb4c35588883cd23c1e7365a2
Related: odoo/enterprise#46268
Signed-off-by: Romeo Fragomeli (rfr) <rfr@odoo.com>
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
This tour takes ~60 seconds which is very close to the default timeout
for tours, which can cause it to fail randomly. This commit bumps the
timeout to avoid this issue.
closesodoo/odoo#133088
X-original-commit: f312967ca217a2153534bbe26814de20fd5a904b
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
Steps to reproduce:
1. Go to a blog post
2. Add a header
3. Hide the element on desktop and save
4. Click the button to translate the page
When translating a page, `getScrollOptions` is not initialized, which
throws an error when updating invisible DOM, as it could require the
function to be loaded.
This is because `_updateInvisibleDOM` needs this property to be set.
Similar fix: https://github.com/odoo/odoo/commit/62cc16dae74729a805a08f17db8ba75d9c51d096
opw-3430581
closesodoo/odoo#133100
X-original-commit: 233cc3439799d2ecc7342c5f02176cef394e08a7
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Walravens Mathieu (wama) <wama@odoo.com>
This commit fixes the color of the "replace" buttons on images in the web
editor.
task-3376752
Part of task-3326263
closesodoo/odoo#133091
X-original-commit: a9a89bc54c7c110460382629bd283effdd7eade6
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Prior to this commit, the "Buy Membership" was not correctly aligned with
the status of the membership. It was also missing spacing.
task-3458625
Related to task-3326263
closesodoo/odoo#133076
X-original-commit: 72bb2ee1a8ac0cb36374d5d45d53946fddf6f0e2
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Since the new product catalog provides filtering by product categories, and the pricelist rules have long been configurable by product categories, it makes sense to allow users to configure categories directly in the sales application.
closesodoo/odoo#133063
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
1) The aim of this commit is to make the tax template more consistent with
the instanciated tax.
Indeed a tax wouldn't pass the constrains if it hadn't all its
repartition line.
2) Make the refund consistent with the rest of the taxes.
closesodoo/odoo#133055
Task-id: None
X-original-commit: 2c5506a60d4245a7bf84a073d887c2f1bcd7111c
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
Current behavior:
When using a gift card in the PoS, you would get 2 gift card reward
lines, one positive and one negative. Wich should not be the case.
This happens because the gift card reward had taxes.
To fix this we need to remove the taxes from the gift card reward,
as it is done in the sale_loyalty module ´_get_reward_values_discount´
https://github.com/odoo/odoo/blob/30062210cc879a1d2349b888a510f29ea40d5920/addons/sale_loyalty/models/sale_order.py#L313
Steps to reproduce:
- Install the pos_loyalty module
- Open PoS
- Buy a gift card and copy the code
- Buy a product and pay with the gift card
- You will see 2 gift card reward lines, one positive and one negative
opw-3472830
closesodoo/odoo#133034
X-original-commit: 7814bb2663ac75ef91922897b88022d87f58241f
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
Before this PR, if a user copy/past an already encoded url in the composer, the
linkify function would reencode already encoded character.
`%5B%5D` (witch mean `[]`) would become `%255B%255D` because `%` whould be encoded
`%25`.
We start by decoding the url, just in case it's already encoded.
closesodoo/odoo#133010
X-original-commit: 453c91d9c5b0353b5f362ecad487ccfd547856c6
Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
Signed-off-by: Didier Debondt (did) <did@odoo.com>
Bug:
bug introduced by previous fix
https://github.com/odoo/odoo/pull/130252
tracking number is set twice on the delivery
Fix:
only set the tracking number on the related picking where it hasn't been
set yet.
closesodoo/odoo#133004
X-original-commit: 09842a47c08a4cd9da3f5f4da1d7870d9ced9d02
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
Turkey has adapted its standard VAT from 18% up to 20%
This commit sets the 18% VAT taxes and its tax group to inactive and
introduces the respective 20% taxes and a 20% tax group.
closesodoo/odoo#132988
Task-id: None
X-original-commit: 8fe87d4a743413e384c0a5b1f090695601ef06c3
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
Signed-off-by: Daniel Kosky (dako) <dako@odoo.com>
Co-authored-by: Ramazan Subaşı <subasiramazan@gmail.com>
Issue:
======
You can create the same sequence with the same code
Steps to reproduce the error:
=============================
- Install inventory and activate storage locations
- Go to inventory/configuration/Operations Types
- Create 2 operation typs with the following values:
name :any random name , type of Operations : internal transfer,
sequence prefix : test , locations as WH/Stock
- Go to sequences and search for test
- You will have 2 duplicate sequences with the same values
Origin of the problem :
=======================
- Creating an operation type always creates atuomatically a sequences if
the sequence_code is provided but the sequence_id isn't.
Solution:
=========
Display an error when the name already exist.
opw-3238331
closesodoo/odoo#132982
X-original-commit: e1f9480c7aa2a982d828ffd0fbc032e4066089d4
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
Due to a problem with eslint configuration,
few eslint errors were introduced during
09535ef5e6.
In this commit, these errors are fixed.
closesodoo/odoo#132963
Signed-off-by: Luca Vitali (luvi) <luvi@odoo.com>
Prior to this commits, new directional icons [1] from the ui icons
library were not adapted for RTL language.
This commit fixes this issue.
[1] 418413e499
task-3414560
Part of task-3326263
closesodoo/odoo#132946
X-original-commit: 8f3ea530a52e3c51f4f46f95119e093a37266e6c
Signed-off-by: Pierre Paridans (app) <app@odoo.com>