68 Commits
Author SHA1 Message Date
Mahdi Cheikh Rouhou (macr) c37b978b03 [FIX] web_editor: save document layout with tabs in different browsers
Issue:
======
If you have some tabs in a html_field, opening  with a different browser
may cause an issue when saving the document layout.

Steps to reproduce the issue:
=============================
- Open with firefox
- Go to settings , document layout
- Added some `tab` in the footer or any html field
- save
- Open with chrome
- Go to settings , document layout
- click save without doing anything
- error

Origin of the issue:
====================
When calling sanitize in the constructor, the tabs size doesn't change
because we didn't add the class `odoo-editor-editable` which doesn't
make the `editable` dirty since no changes has been made. When calling
save, `cleanForSave` will be called with a clone of the `editable` so in
sanitize it won't matter since the element is not connected to the dom
so again no changes and the edtior still no dirty, after that ,
`onWillUpdateProps` of  `Wysiwyg` will be called and we will set the
value of the editor by the new value which will call `resetContent` of
`odooEditor` and it will sanitize the editable but this time it has the
class `odoo-editor-editable` so the finally the sizes of the tabs will
be changed and the editable will become dirty. Now `onWillUnmount` in
`html_field` will be called and since the field is dirty it will commit
changes as a normal save , but a traceback will occur since the
component is already destroyed.

Solution:
=========
Add the class `odoo-edtior-editable` before the call to sanitize to mark
the field as dirty from the start and will be updated with the new sizes
of tabs on the first commit and not in the commit of `onWillUnmount`.

opw-3742423

closes odoo/odoo#156898

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2024-04-24 06:23:02 +00:00
Mahdi Cheikh Rouhou (macr) f5d8b89bd7 [FIX] web: fix colorpicker position in iframe
Issue:
======
Colorpicker doesn't appear in mass mailing

Steps to reproduce the issue:
=============================
- Create a new mass mailing with a some template other than plain text
- Try to change the color of some text
- The position of the colorpicker is wrong.

Origin of the issue:
====================
When wysiwyg was converted to owl in [1], an effort was made to
speed up the loading of the iframe in mass_mailing. One of the
changes that were done in that regard was to remove assets from
the iframe to make it load faster. This required to create the
sidebar (SnippetsMenu) outside of the iframe since the iframe did
not have the required files anymore, and insert it back in the
iframe afterwards, since it was designed to work inside the iframe.

This change actually had an impact on the positioning of the
colorpicker, and basically anything that relied on popper.js for
positioning, because since popper.js was outside of the iframe then
the checks it did based on `instanceof HTMLElement` were returning
false for every node inside the iframe. At the time of [1] this
went unnoticed because the chatter was not yet in the side of the
screen for mass_mailing, so the wrong positioning of the colorpicker
was actually only slightly off the right position, thus being hard
to catch while not specifically looking for that particular issue.

As soon as the chatter was made to be on the side even in the case
of mass_mailing, the wrong colorpicker position became visible but
the issue went unnoticed at the time as well, probably because the
two changes were completely unrelated. This went live in saas-16.4
and is the case in 17.0 as well. However, the issue does not exist
anymore in saas-17.1 due to the refactor of mass_mailing to have
the sidebar (SnippetsMenu) working from outside of the iframe
instead of inside.

Solution:
=========
Fixing this issue properly would require huge changes to how the
SnippetsMenu is constructed and would most likely require going
back to the slow iframe with all the assets inside. That would not
be a desirable outcome, especially in a stable version. With that
in mind, and considering the issue doesn't exist in saas-17.1, we
decided it was a prime example where a local change in the popper.js
library was actually the best fix. The library is very unlikely to
be updated in a stable version and the change won't reach saas-17.1.

[1]: https://github.com/odoo/odoo/commit/76d4f98
co-authored with dmo-odoo

task-3614965

closes odoo/odoo#162964

X-original-commit: 88c16966b6b2d29d464ac3b43cc4998d3f4fe0e2
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-04-23 15:32:55 +00:00
Mahdi Cheikh Rouhou (macr) 537b8d354c [FIX] web_editor: position powerbox correctly in rtl direction
Issue:
======
The powerbox keep increasing in size when you input.

Steps to reproduce the issue:
=============================
- Install arabic
- Go to notes
- write `/`, you can see the powerbox is a bit smal
- use `down/up`arrows to navigate in the powerbox.
- The powerbox width increase until finally gets to it's intended
  position.

Origin of the issue:
====================
Since we are providing that `marginRigh` should be equals to `20` in
`getRangePosition` we will move the powerbox to the left a bit and then
with the style property `max-width=100%` it will increase in size
because the current size is a bit small for it. So at every key pressed
it will increase by 20px until it gets to a point where everything is
set and the `marginRight=20` is finally visible.

Soltuion:
=========
We set min-width as max-content so we can position correctly the
powerbox knowing it's final width.

task-3721794

closes odoo/odoo#161924

X-original-commit: b815447bf239049b37a3705cd014c67e3897ba9c
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-04-16 08:36:05 +00:00
Mahdi Cheikh Rouhou (macr) 8f2a03077b [FIX] web: fix gradient colorpicker traceback
Issue:
======
traceback when clicking on gradient colorpicker in mass_mailing

Steps to reproduce the issue:
=============================
- Got to email marketing
- Add some text
- Select the text and go to graadient and activate custom
- click any color in the colorpalette -> traceback

Origin of the issue:
====================
Some colorpickers are created inside the snippets sidebar and then gets
removed by `_updateRightPanelContent` in `SnippetsMenu` so the owl
components corrosponding to them will have `this.el = null` which will
cause a problem when updating the props since we will use it in the
update.

task-3834112

closes odoo/odoo#161275

X-original-commit: 9ccd820813f6c0bd7608e80570a6999577aff513
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-04-12 08:16:10 +00:00
Mahdi Cheikh Rouhou (macr) b3fbbb5713 [FIX] project_todo: display only one scrollbar in todo
Issue:
=====
double scrollbar appears in notes.

Steps to reproduce the issue:
=============================
- Go to notes
- Insert a table
- Add some columns and try to stretch the last one to the right until it
  goes outside the width of the editable.
- Click on the last cell to the right in the table and scroll left
- Another scrollbar will appear.

Origin of the issue:
====================
The part of the table that is invisible in the editor is considered as
overflow for the `html_field` so it will show a scrollbar which is not
needed since we already have a scrollbar in the edtibale.

Solution:
=========
We mark hide the overflow in `html_field` and let the editable takes
care of the overflow.

task-3721794

closes odoo/odoo#160953

X-original-commit: c98c58301da82ad896e296b9bbbdf6bbb0bc2a8e
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-04-09 09:37:54 +00:00
Mahdi Cheikh Rouhou (macr) 4a05740bd3 [FIX] web_editor: apply color unremovable
Steps to reproduce the issue:
=============================
- Go to website and open editor
- Click on the 'Contact Us' button
- Change the color of the text
- error

Origin of the issue:
====================
`HistoryReverCurrentStep` will call `observerFlush` which will mark
`_toRollback = true` and in `_observeOdooFieldChanges` we will update
the html with `withoutRollback` but this only works only if
`_toRollback` is `false`.

Solution:
=========
We need to rever  the step without rollback too.

task-3770287

closes odoo/odoo#156461

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2024-04-03 14:29:07 +00:00
Mahdi Cheikh Rouhou (macr) c0a4a01915 [FIX] web_editor: spacing issue between columns of tablepicker
Issue:
======
The last column in `rtl` direction is connected to it's neighbor column.

Steps to reproduce the issue:
=============================
- Install notes and website
- Change language to arabic
- Go to notes and write `/` and opent eh table picker
- The last column (most left) is connected to it's neighbor

Origin of the issue:
====================
We forced the margin-right of the last cell in the row to have
`margin-right = 0` which is the case for `ltr` but not in `rtl`.

Solution:
=========
Use of `end` and `start` better to handle the direction
(https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-start)

task-3825970

closes odoo/odoo#159643

X-original-commit: 0d57a30d12775d8c0ecdb6c3fab5ce191d3f2ccc
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-03-29 07:53:01 +00:00
Mahdi Cheikh Rouhou (macr) 7c59e05595 [FIX] web_editor: expand tablepicker in correct direction
Issue:
======
Table picker isn't intuitive in rlt language and doesn't expand in the
correct direction.

Steps to reproduce the issue:
=============================
- Install arabic language
- Go to notes and create a new one
- Write `/` and choose table
- Use left/right arrow keys to see how the table expand.

Solution:
=========
For rtl direction it's better to make left for increase and right for
decrease since that's the direction of the langauge. Also the table
should be fixed on the right and expand on the left. (exactly the
opposite of ltr direction).

task-3721794

X-original-commit: 9d4c937e67cb72ff7152e01cda23255bf3c4d344
Part-of: odoo/odoo#159643
2024-03-29 07:53:01 +00:00
Mahdi Cheikh Rouhou (macr) 4e8d7e8edf [FIX] purchase_mrp: fixing test test_valuation_with_backorder
this commit https://github.com/odoo/odoo/pull/158788/commits/07e2fca9e39e9c32182f10bae6ba814a4241b6bf
uses `qty_done` instead of `quantity` in test
`test_valuation_with_backorder`

closes odoo/odoo#159248

Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2024-03-26 11:40:20 +00:00
Mahdi Cheikh Rouhou (macr) 7d66b910c4 [FIX] web_editor: resize columns correctly in RTL
Issue:
======
resizing columns doesn't work properly in rtl direction.

Steps to reproduce the issue:
=============================
- Install arabic
- Go to notes
- insert a table
- Try to resize columns

Solution:
=========
We will handle the cases one by one:

Start: We need to update the `marginRight` prop instead of `marginLeft`
and calculate `sizeDelta` correctly which `clientX - (rect.x +
rec.width)`.

Middle: We will handle this the same as ltr direction, since it's the
reverse direction, we swap `previous` with `next` and `next` with
`previous`. Columns are sorted from right to left so we need to swap
columns when we recalculate them from the columns array so `item` will
be the one on the left and `neighbor` the one on the right.

last: We calculate correctly `sizeDelta` which is `rect.x - clientX`

task-3721794

closes odoo/odoo#159087

X-original-commit: 87f8bcd99a4b1049deed7bccbc5b85812ebc4674
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2024-03-25 16:26:58 +00:00
Mahdi Cheikh Rouhou (macr) 711e2a534a [FIX] web_editor: move columns left/right correctly
Issue:
======
The icons does match the direction of the move but it doesn't match the
label in the ltr language.

Steps to reproduce the issue:
=============================
- Install arabic
- Go to notes and insert a table
- write something in a column in the middle
- Click on the top of the column on the 3 points.
- The first item of the dropdown have the label in arabic meaning `Move
  to left` but the direction of the icon and clicking on it will move it
  to the right.

Origin of the issue:
====================
- The icon is being flipped because we are in rtl but in realtity left
  is the same for rtl or ltr direction.
- We need to call `_onTableMoveLeftClick` when we are moving to the
  right in rtl because the left of rtl direction is the visible right.

task-3721794

X-original-commit: 58cdfb8c80ecfb305ecdb84398508bd2fc180fb3
Part-of: odoo/odoo#159087
2024-03-25 16:26:58 +00:00
Mahdi Cheikh Rouhou (macr) 85ac6cb2fe [FIX] purchase_mrp: calculate valuation unit_cost correctly
commit that introduced the issue : https://github.com/odoo/odoo/commit/8e516dccac4ced7e48adfabe756a899784bac9ca

Issue:
======
valuation unit cost is wrong when we do backorder with real time unit
price computation

Steps to reproduce the issue:
=============================
- Create a kit with 2 components with product quntity to produce =  3
- Put qty = 2 for the first component and qty = 1 for the second component
- Assign product category to the kit product and the components as fifo
  one with automatec price computation
- Create a purchase order with 30 quantity of the kit and price unit =
  90
- confirm order and go to receipt
- Confirm 4 qty for the first component and 2 qty for the second.
- Create backorder
- Go to the confirmed receipt and go to valuation
- You will see that the total sum corresponds to the price of all the
  products and not only the confirmed ones.

Solution:
=========
We need to use the bom quantities and not the order line to get the
unit_cost of each component.

opw-3790132

closes odoo/odoo#158788

X-original-commit: a72232694f68a810986e5c1c24fd0394d058af41
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-03-22 14:48:02 +00:00
Mahdi Cheikh Rouhou (macr) 63fa6dd45d [FIX] web_editor: conserve changes on edit link label
Issue:
======
When you update the link button label from the sidebar it loses its
style.

Steps to reproduce the issue:
=============================
- Got to website editor
- Insert a text block
- Added a button in the text block and any label
- Click on the button to edit it from the sidebar
- Change font size or font color or any style you want
- Update the label
- The style is lost

Origin of the issue:
====================
When updating the label, we search for the first child that has that
text, but when we have `ZWS start`  it will be considered as the first
child and then we update the inner text of the `a` element so we loose
the span of the text which has the custom styles.

Solution:
=========
We search for the first child which is not `ZWS`

task-3721686

closes odoo/odoo#157758

X-original-commit: 999d5787e3d8d0518692f987341dd6b298d7ffc4
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-03-18 08:45:39 +00:00
Mahdi Cheikh Rouhou (macr) 0649134444 [FIX] web_editor: Select hex in colorpicker
Issue:
=====
Clicking on hex color or rbga in colorpicker will reselect the inital
selected text and not the value if hex or rgba.

Steps to reproduce the issue:
=============================
- Create a note , type anything and apply custom color
- When clicking on the hex color code , the cursor is alwyas set back to
  the text.

Origin of the issue:
====================
The behavior was introduced by
https://github.com/odoo/odoo/commit/033b49e1a810c3decd8988698620616bd927f6c3
In the click listener, we always reset the comuted selection wich
reselects the original text. When clicking on empty space on the
dropdown menu, it happens too but it doesn't matter since the menu
closes anyway, but clicking on text input fields that you want to update
will be a problem since the menu doesn't close but the text get
reselected.

Solution:
=========
To overcome the problem of resetting when clicking on the dropdown, we
first check if the click is on the colorpicker or not, if Yes do nothing and
skip this.

task-3648629

closes odoo/odoo#155947

X-original-commit: 2c0a68df214f69b3d459507a6ce867620bf0513f
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-03-01 08:45:46 +00:00
Mahdi Cheikh Rouhou (macr) 4477af4041 [FIX] web_editor: delete forward invisible white spaces at start
Issue:
======
Invisible whitespaces at the start gets deleted by one by one with
delete forward.

Steps to reproduce the issue:
=============================
- Go to knowledge
- Add any text
- Make sure you have an empty line before it
- Change the html of the added text and add some spaces at the start
  (this is the easiest way to reproduce it)
- Go to the line before and keep deleting forward
- The invisible spaces will be deleted one by one.

Solution:
=========
When the selection is at the start of the node and it contains
whitespaces, `parentState` whill have undefined node when deleting
forward since we are at the first leaf. We need to keep deleting forward
with the text node instead of parentElement because calling delete
forward with the parent will do a 1 delete backward call from the
specified offset and it will not propagate forward anymore.

task-3629743

closes odoo/odoo#155435

X-original-commit: 6cfe30b1f194f7c53e8f91dde3251d7ba327ec56
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-27 08:07:49 +00:00
Mahdi Cheikh Rouhou (macr) 179f3e225e [FIX] web_editor: delete forward emoji
Issue:
======
Delete forward on emoji dosn't work

Steps to reproduce the issue:
=============================
- Go to knowledge
- Add an emoji and put the cursor on the left of the emoji and delete
  forward
- only half of the emoji gets deleted

Solution:
=========
We need to get the correct offset and correct charsize because not all
of the items of the sliced string had char size equal to `1`. So we
slice the string and get the offset corrosponding to the target offset
and of course we need to handle the directions differently

task-3629743

X-original-commit: 80a5b41b85c7f6732407bec80c8e6117ae795333
Part-of: odoo/odoo#155435
2024-02-27 08:07:49 +00:00
Mahdi Cheikh Rouhou (macr) 96d5302914 [FIX] web_editor : hide dropdown on blur toolbar studio
Steps to reproduce:
===================
- Open any app (sales for example)
- Toggle studio
- select reports tab
- Select any report
- Select some text and open any dropdown (font size or color)
- Click somewhere else on the document
- Select some text again
- The dropdown stayed open from the first select

Origin of the issue:
====================
Clicking somewhere on the document in studio doesn't trigger the events
`defined in bootstrap/js/dist/dropdown.js` because of the iframe.

Solution:
=========
Trigger click event on toggle button for the opened dropdown when hiding
the toolbar to close them

task-3674736

closes odoo/odoo#154969

X-original-commit: 878f3b27966a278a9332ef43e827eb2006911583
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-22 11:14:55 +00:00
Mahdi Cheikh Rouhou (macr) 1fd3b86de9 [FIX] web_editor: undo after columns
Issue:
=====
When you undo a column command, you won't be able to write on that line
anymore.

Steps to reproduce the issue:
=============================
- Go knowledge
- Use column command to add columns
- Do ctrl+z
- Try to write anything

Origin of the issue:
====================
When we apply a columns operations , it will use the current block and
insert it under the first column so the `ouid` of the block will change
to the `oid` of the div (the column) so will will have 2 mutations : one
to remove the block from the root and one to add the block under the
column.
Reverting history will do the operations in reverse order, so it will
remove the block from under the column and the add it under the root but
the `block.ouid` is already set to `oid` of  the column which is
different from the actual `ouid` which is `root` so adding any text to
the block will first add a textnode with `getOuid(node,true) =
block.ouid) != "root"` and `getOuid(node,false) = "root"` so it will
mark `this._toRollBack` as true and the operation is rolled back that's
why we can't add anything anymore.

Soltuion:
=========
Mark the `ouid` of the removed elements as undefined so when we insert
them again we can recalculate it correctly.

task-3693076

closes odoo/odoo#154815

X-original-commit: 16163f135d4fc215361dddf2f4520d08a3b0ac1c
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-21 11:27:59 +00:00
Mahdi Cheikh Rouhou (macr) 4254e0aba9 [FIX] mrp: update stock move date on mark done production
Issue:
=====
The stock move date is the scheduled date of the production and not the
date the production is done.

Steps to reproduce the issue:
=============================
- Create a manufacturing order with any product (large desk)
- Assign a date in the past for scheduled date (5 days before)
- Confirm the order.
- Added quantity produced  and mark as done
- Go to traceability , you will see the date here is the scheduled date
  and not the production date.
- You can see also the inventory at date in
  inventory/reporting/locations will have the product they after the
  scheduled date.

Solution:
=========
Use the value of `date_finished` if it's set when calculating the `date`
for `move_finished_ids`

opw-3640708

closes odoo/odoo#154811

X-original-commit: ac94a429ed5ab0ffe7ac8fbc55243adaed3ce60f
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-21 09:41:27 +00:00
Mahdi Cheikh Rouhou (macr) 43ac070d1d [FIX] web_editor: undo only table resize website editor
Issue:
=====
Undo of resize operation on table do 2 undos in a row.

Steps to reproduce the issue:
=============================
- Go to website editor
- Add a text block
- write `/table` to insert a table
- Resize the table
- Press `ctr+z` to undo
- The table is removed

Origin of the issue:
====================
The resize operation wasn't saved a step and is considered as draft
then it will be discarded and then the undo applied on the last saved
step that's why it appears as 2 undo in a row.

Solution:
=========
Call `historyStep` when we stop resizing.

task-3743697

closes odoo/odoo#154402

X-original-commit: 836a68e29c8fa881854b19c7489086537127d4a3
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-02-19 09:06:54 +00:00
Mahdi Cheikh Rouhou (macr) 26d17f6a34 [FIX] mass_mailing{,themes}: wrong image width
Issue:
======
Some templates that contains an image have wrong width and it can't be
updated.

Steps to reproduce the issue:
=============================
- Use a view with width < 1135px
- Go to email marketing
- Create a new mailing
- Use the welcome message template
- The size of the signature is wrong and you can't update it

Origin of the issue:
====================
There is an applied style which fixed the minimum width to 100% if the
img is alone inside the parent element (has no siblings)
https://github.com/odoo/odoo/blob/749133f3170f795c9deabc6ad6f7684baa76db59/addons/mass_mailing/data/mailing_data_templates.xml#L98

Solution:
=========
Add `img-fluid` class to some `img` elements to keep the layout correct.

task-3718618

closes odoo/odoo#153508

X-original-commit: 1126a8103d56b8587b793735f08b4a5917a0d15c
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-12 10:44:46 +00:00
Mahdi Cheikh Rouhou (macr) 6309d5e4e0 [FIX] mass_mailing: solve error on add block mailing
Issue:
======
Adding a new block in mailing in email marketing raises an error.

Steps to reproduce the issue:
=============================
- Go to email marketing
- Create a new mailing
- Create one from scratch
- Drop any block
- `TypeError : Cannor read properties of null (reading 'parentElement')`

Origin of the issue:
====================
When we drop the block in the iframe's document we trigger the `click`
event but we don't have any selection yet in the document so
`anchorNode`will be `null` thus the error.

task-3724551

closes odoo/odoo#152814

Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-02-08 10:57:00 +00:00
Mahdi Cheikh Rouhou (macr) a9acebb086 [FIX] web_editor: solve traceback table RTL scroll
Commit that introduced the issue: fbc167bf84340b4bb6d0f8c59f2734814f56c6df

Issue:
======
Adding a table in a long chatter message with scroll raise a traceback

Steps to reproduce the issue:
=============================
- Switch to RTL lang
- Go to any form view and open the editor composer to create a log note
- Write a lot of lines so that the scrollbar appears
- Add a table
- Log the note
- Try to scroll -> traceback

Origin of the issue:
====================
The `_onScroll` method is called and it has `this._rowUiTarget` as the
row from the composer dialog which is not in the ui anymore so
`closestElement(row, 'table')`  will return `null`.

Solution:
=========
We just do nothing when the element is not connected.

task-3707808

closes odoo/odoo#151800

Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-02-01 14:30:03 +00:00
Mahdi Cheikh Rouhou (macr) 4838909bce [FIX] web_editor: discard changes html field
Issue:
======
Discard changes of form having html field doesn't remove the changes
applied in the html field.

Steps to reproduce the issue:
=============================
- Open any mail template
- Add modification on the template
- Click on discard changes

Origin of the issue:
====================
The function `this.props.update` is responsible of updating `_changes`
and updating the record which is called for usual input_field using
`useInputField` hook, but since this html field isn't of the same format
we didn't use it and it's only called in `commitChanges`

Solution:
=========
We update the value of in `_onWysiwygBlur` in case we are `inlineStyle`
so we don't commit but we save the changes for the discard to work
properly.

task-3453497

closes odoo/odoo#151993

X-original-commit: 1624da6f42561792be816836c6d88bc986c3538a
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-01 11:20:08 +00:00
Mahdi Cheikh Rouhou (macr) 4a3e8e8281 [FIX] website_sale: show payment method on change delivery
Issue:
======
Payment methods doesn't show when updating delivery method

Steps to reproduce the issue:
=============================
- Install website_sale
- Activate coupons and promotions in settings
- Create a coupon program with the follwing values : reward: discount,
  percentage: 100%
- Save the program and generate some coupons
- Activate at least 1 free delivery method and 1 free delivery method
- Activate at least one payment method
- Go to shop add anything to cart
- Apply one of the codes from the generated coupons
- Go to confirm order and change between the delivery methods.
- If the default delivery method is free, the payment methods will never
  show , otherwise they will always show.

Origin of the issue:
====================
The payment methods were rendered using `t-if` directive which means
that we can't toggle it dynamically since they don't exist in the view.

Solution:
=========
we reload the page only when we toggle from zero to non zero total.

opw-3662606

closes odoo/odoo#148431

closes odoo/odoo#149487

closes odoo/odoo#149909

X-original-commit: c88eaa301544d470088d5295028910364ebb34cf
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-01-18 15:12:00 +00:00
Mahdi Cheikh Rouhou (macr) 2b65959cdc [FIX] web_editor: sign documents with safari 15.4+ with ios
Issue:
=====
Users with IOS can't sign with safari.

Steps to reproduce the issue:
=============================
- Install sign
- Make sure you have a template which has at least one signature sign
  item.
- Share the document and open the link with ios on safari in v 15.4+
  (browserstack) for example.
- Go to the signature sign item and use auto and click sign or sign all
- Nothing will happen.

Origin of the issue:
====================
https://github.com/niklasvh/html2canvas/issues/2864

Solution:
=========
https://github.com/niklasvh/html2canvas/issues/2864#issuecomment-1111044861

opw-3660682

closes odoo/odoo#149903

X-original-commit: f11723f406f2af95090bdd13e9acb30c89014638
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2024-01-18 15:11:59 +00:00
Mahdi Cheikh Rouhou (macr) e05dbe37e5 [FIX] web: show the name fully in signature sign item
Issue:
======
The auto signature has hidden overflow part in y axis when having long
characters in bottom like (y, j, g)

Steps to reproduce the issue:
=============================
- Use any sign template that have at least one name_and_signature sign
  item.
- Enter a name that have at least one of the characters (y,j,g)
- Click on auto
- The signature doesn't show fully

Solution:
=========
Update the hardcoded values for the y-axis for the name and the line of
signature and the font size to make sure it fits perfectly inside the
canvas.

opw-3639171

closes odoo/odoo#148299

X-original-commit: c9653d5649a35640cc461c9baa0b73e8c6c1cace
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-01-05 15:14:36 +00:00
Mahdi Cheikh Rouhou (macr) 8a892da746 [FIX] hr_attendance: kiosk mode phone display
Issue:
======
the display of kiosk mode in phone is broken

Steps to reproduce the issue:
=============================
- Install hr_attendance
- Activate Employee Pin Identification in the settings
- Change to phone view
- Go to attendances/kiosk mode
- Identify Manually
- You can't search for employee , scroll employees and see the name of
  the employees.
- Click on any employee, the button back isn't fully shown and clicking
  on it does nothing.

Solution:
=========
Display:
- Added some css for `md` size devices.

Back button:
- There click function was missing.

opw-3645708

closes odoo/odoo#147830

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2024-01-04 13:54:48 +00:00
Mahdi Cheikh Rouhou (macr) a058996ecc [FIX] website_sale: show phone required error on same address
Issue:
======
The phone field is required in a billing and shipping address at the
same time but no warning appears.

Steps to reproduce the issue:
=============================
- Install ecommerce
- Log in with mitchel admin and add anything to cart then go to checkout
- Update the saved address which is for shipping and billing and remove
  the phone
- Save the adress , the page will reload and no error appears.
- Add the phone and save it will works.

Origin of the issue:
====================
`use_same` wasn't passed in `kw` when updating the address.

Solution:
=========
Force `use_same` when validating the values when we have the address is
the same for shipping and billing.

opw-3617720

closes odoo/odoo#146266

Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-12-19 12:20:06 +00:00
Mahdi Cheikh Rouhou (macr) 13b338acd8 [FIX] web: solve datetime_picker with 12H format error
Isssue:
=======
When using a language with twelve-hour format (arabic) and open
datetime_picker it will raise an error.

Steps to reproduce the issue:
=============================
- Change lang to arabic
- Create a task in a project an try to modify the deadline

Origin of the issue:
====================
When we have `props.focusDateIndex != 0` and `props.range = False` we
will have only that index in the array `this.state.timeValues` ,
iterating over the array in `handle12HourSystem` function will result in
error because it starts iterating from index 0 which is undefined.

Solution:
========
Skip the undefined indexed;

opw-3629657

closes odoo/odoo#145424

Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2023-12-19 12:20:05 +00:00
Mahdi Cheikh Rouhou (macr) e64211e04f [FIX] hr_attendance: open front camera in kiosk attendance
Issue:
======
Front camera doesn't open even if we set it in the configuration.

Steps to reproduce the issue:
=============================
- Install attendance
- Go to attendance/ configuration and put front camera in barcode source
- Use mobile : Go to kiosk mode and start scanning

Origin of the issue:
====================
There was a typo in the props values where we assigned `employee` to
`barcodeSource`

opw-3621239
opw-3608019

closes odoo/odoo#145880

Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-12-13 14:15:43 +00:00
Mahdi Cheikh Rouhou (macr) c4eb6098da [FIX] calendar: Mark activity as done with text
Issue:
======
Marking an activity of calender event as marked with text raises an
error.

Steps to reproduce the issue:
=============================
-Go to any contact and create a meeting with him as an activity in the
chatter.
- Mark the actvity as done and add some text as feedback.
- An error showing that the record is deleted.

The issue already solved here , this commits only add the test.

opw-3623719

closes odoo/odoo#146045

X-original-commit: 787f2f44961b9b5283b7bdc944acc2e8284212cc
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-12-13 07:15:52 +00:00
Mahdi Cheikh Rouhou (macr) 020038af1c [FIX] website_sale_stock: solve access error product quick add
Issue:
======
When we have a product with `out of stock:continue selling` disabled,
accessing the shop page will give an access error.

Steps to reproduce the issue:
=============================
- Make sure to have a storable product with `out of stock: continue
  selling` disabled in the sales tab of the product.
- Log out and go to shop
- Access error related to warehouse records

Origin of the issue:
====================
The function `_website_show_quick_add` being called from the template in
odoo/addons/website_sale/views/templates.xml to display the shopping
card button in at the bottom of the product. Since the user is public he
doesn't have the right to access the record in warehouse to see if the
product is out of stock or not.

The test `test_back_in_stock_notification_product` already tests the fix
and doesn't work without this fix , so no need to add extra test.

opw-3620172

closes odoo/odoo#145916

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2023-12-12 23:08:55 +00:00
Mahdi Cheikh Rouhou (macr) 8891e6a957 [FIX] calendar: send attachment with calendar event invitation mail
Issue:
======
Attachment files aren't sent with the event invitation email.

Steps to reproduce the issue:
=============================
- Add any attachment to the email template : `Calendar: Meeting
  Invitation` and save it.
- Go to website and book an appointment.
- Go to Scheduled Actions  and run manually email queue manager to send
  the notification.
- The sent email doesn't have the attachement you provided, it has only
  1 attachement which is the calendar one.

Origin of the issue:
====================
The notification of the event invitation was taking only the calendar as
attachment and ignores the template attachemnt.

Solution:
==========
Now the calendar event invitation email will take into account the
attachment of the email_template.

opw-3593140

closes odoo/odoo#145628

X-original-commit: 28880c32e62b6e2e6c87c35094da0e20c6c14c21
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-12-11 12:36:59 +00:00
Mahdi Cheikh Rouhou (macr) 3341285652 [FIX] website_sale: not reset access point on payment method change
Similar to this: https://github.com/odoo/odoo/pull/124425

Issue:
======
The shiping and billing address are the same when choosing pick up
locations which is not true.

Steps to reproduce the error:
=============================
- install website_sale and delivery_sendcloud module;
- create a shipping method (use Sendcloud provider);
- configure the integration with
"Mondial Relay Point Relais International 1-2kg";
- configure option with shipping rule and use location;
- on website create a new quotation with the pubic user;
- process the checkout;

(Check in backend the shipping weight)

- fill City and Zip Code fields with correct value
(example: Paris | 75011)

(- configure the company's country)

Origin of the issue:
====================
Updating the payment method will trigger a cart update which will reset
the access_point_address.

Solution:
=========
Using the context variable `no_reset_access_point_address` introduced
in the commit mentioned above.

opw-3615829
opw-3596705

closes odoo/odoo#145425

X-original-commit: 7d43176d35faad025dd98c52cebb07a8f16e2270
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-12-08 00:09:00 +00:00
Mahdi Cheikh Rouhou (macr) 11bd9e01b7 [FIX] website_sale_{loyalty,delivery}: display using website lang
Issue:
======
When we use the website in a language different the the partner lang ,
it will always display `Free product`  in the partner language.

Steps to reproduce:
===================
- Create a loyalty program that gives a free product
- Install another lang (FR for example) apply it for website too
- Go to website and change lang to FR
- Added the product which gives the free product promotion
- Go to cart

Origin of the issue:
====================
The lang was forced as partner language in displaying the free product
name.

Solution:
=========
If the call is being made from website , then we need to use the website
lang, otherwise the partner_lang

opw-3593505

closes odoo/odoo#145122

X-original-commit: fe43d01085f46ac736e598ecfcf9fc3e0c9739f6
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-12-06 08:20:14 +00:00
Mahdi Cheikh Rouhou (macr) 2a84495a47 [FIX] website_sale_loyalty: add product when exists as reward in cart
Issue:
======
When we have a product as a free product reward in cart and we want to
add the same product from the shop nothing will happen and the cart
stays the same.

Steps to reproduce the issue:
=============================
- Create a loyalty program with the following options:
type: pormotions
rule: minimum quantity :1 , gran 1, minimum purchase 0, per order,
product:  select anyone
reward: type : free product , quantity rewarded : 1, product : select
any other product
- Go to website and add the product from the rule to cart
- Go to cart and claim reward
- Go back to shop and add the product from the reward to cart
- Go to cart
- The cart stays the same

Issue:
======
When searching for the `line` it doesn't consider if the line is a
reward or not.

Solution:
=========
We filter the reward lines if `line_id=False`

opw-3550585

closes odoo/odoo#143581

X-original-commit: 2b97bb83b312f553d3ec1b6e96a74c744955aed6
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2023-11-25 05:41:43 +00:00
Mahdi Cheikh Rouhou (macr) 96645bd31b [FIX] pos_sale: not pos_groupable uom with float quantity pos sale
Issue:
======
When we settle an order that has a product with uom not pos_groupable
and quantity isn't an integer for example 3.5 it will add 4 lines each
with quantity = 1 which is not correct.

Steps to reproduce the issue:
=============================
- Create a product with a not pos_groupable uom (kg for example)
- Create a sale order with that prouct and add a not integer quantity
- Go to pos and settle the order
- You will have 4 lines added each with quantity = 1

Origin of the issue:
====================
The quantity was hardcoded = 1

Solution:
=========
I addeed order lines equal to the integer part of quantity and one last
order line that have the rest quantity.

opw-3579225

closes odoo/odoo#143566

X-original-commit: 3db0515959861e65f05b572d4827692ed00a1925
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-11-25 05:41:41 +00:00
Mahdi Cheikh Rouhou (macr) d3b92f1dc6 [FIX] l10n_ar_website_sale: process checkout using public user l10n_ar
Issue:
======
When using l10n_ar company , the public user (without sign in) will have
an access error on the address page when clicking on process checkout
from the website.

Steps to reproduce the issue:
=============================
- Install ecommerce + l10n_ar
- Go to website without signing in and add any product to cart and
  process checkout

Origin of the issue:
====================
Public user doesn't have the right to read
`l10n_ar.afip.responsibility.type` and `l10n_latam.identification.type`

opw-3591440

closes odoo/odoo#142997

X-original-commit: ed020ce2942c8fb2ef43ea44bd3768fcc14cb45f
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-11-22 07:43:08 +00:00
Mahdi Cheikh Rouhou (macr) 6ae9c9c2f1 [FIX] website_sale: show pickup locations if case of 1 shipping method
Issue:
======
When we have 1 delivery method enabled that have pickup locations, it
will be selected by default and the pickup locations will never be
displayed.

Steps to reproduce the issue:
=============================
- Set up pickup locations carried for sendcloud (like mondial relay)
- Go through the website with just that shipping method available and
  add a product to cart valid with the configuration of sendcloud.
- Go to checkoutout you will get the shipping method selected but no
  pick up options

Origin of the issue:
====================
If the delivery method is already selected it will skip showing pickup
locations.

Solutions:
==========
Now there is another check to make sure that it will be skipped only
when the pick up locations are displayed.

opw-3569497

closes odoo/odoo#142958

X-original-commit: 7beb8767cd82f2938ffbb53ec496e1f817af8730
Signed-off-by: Steve Van Essche <svs@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-11-22 07:43:07 +00:00
Mahdi Cheikh Rouhou (macr) f51f2d5674 [FIX] pos_self_order: compute price product variants in self order
Issue:
======
When choosing product with attributes that have attributes which have
variant creation mode never it will not take into account the extra
price.

Steps to reproduce the issue:
=============================
- Install pos , restaurant
- Create a product which have `Size` attribute and add some values in
  it, 'S' and 'M'  for example , then add extra prices in each one of
  them. Enable available in POS setting in Sales page of the product.

- Got to point of sala , click on 3 dots in restaurant and open mobile
  menu.
- Added the created product to cart and click review.
- The price shown is the original price of the product and not taking
  into account the extra price of the attribute.

Origin of the issue:
====================
This was not supported before

Solution:
=========
Using the attribute_value_ids value in the line we can calculate the
extra_price of those attributes and add it to the price_unit so we can
get taxed_amount and untaxed_amount correctly.

opw-3511374

closes odoo/odoo#142485

X-original-commit: a54fddd9270b3431a8cde0a6bf30349c5671b0ac
Signed-off-by: David Monnom (moda) <moda@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-11-20 12:41:32 +00:00
Mahdi Cheikh Rouhou (macr) 4bb1bfe25b [FIX] website_slides_survey: compute left attempts correctly
Issue:
======
- When a user attempt a certification it will count as 1st attempt and
then do retry directly it will count as second attempt : fine.
- When a user attempt a certification it will count as 1st attempt and
  then exit the page and go to the certification again it will count as
  1st attempt too. So the user can have unlimited number of attempts
  like this.

Steps to reproduce the issue:
=============================
- Install survey , elearning
- Go to a course with a certification and do the certification, exit the
  page and enter to it again.
- Go to the user page and see the certifications you will see they both
  counted as 1st attempt.

Expected behavior:
==================
- when a user leaves a course (willingly or not) we remove the
  relationship between the user_input and slide_partner_id.
- To get the remaining attempts we just get the user_input_ids of the
  slide_partner because the old ones are removed.

opw-3498054

closes odoo/odoo#140305

X-original-commit: 74d2b551ae392fa20744fa22582b5b38b3babff7
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-10-30 16:41:52 +00:00
Mahdi Cheikh Rouhou (macr) 2c6671e75e [FIX] sale_stock : Create backorder with inventory admin
Issue:
======
We have a delivery order created by a sale order by another user.
A user with administrator access to inventory and sale : own documents
only ,can't deliver products of
that sale order without backorder , it shows access error.

Steps to reproduce the error:
=============================
- Create another user with admin access for inventory and own documents
  for sale.
- Create a sale order with the current user.
- Change now for the inventory admin and deliver some of the products
  and click on no-backorder.
- Access error will show.

Origin of the issue:
====================
The admin user should be able to deliver the products but when creating
no backorder he needs to write on the sale_order.

Solution:
=========
Added `sudo` to the function that logs in the sale_order.

opw-3380566

closes odoo/odoo#138176

X-original-commit: de2d889b053827e39b11a648797ad2f30e646ce6
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-10-10 12:35:07 +00:00
Mahdi Cheikh Rouhou (macr) efea7e13c5 [FIX] base, test_read_group : process duplicated groupbys without lazy
Issue:
======
When you have duplicate groupbys with `lazy=False` you will get an error.

Steps to reproduce the error:
=============================
- Install timesheet
- Go to timesheet / reporting / By Employee
- Add a groupby by month for one employee
- I will show an error.

Origin of the issue:
====================
The timesheet component will the send a request for read_group having
`['date:month', 'date:month']` so we will have duplicated groupby which
will be processed later in `_read_group_format_result` which update the
value of `row[group]` for each group so the first group will have the
original values which is ok but the second one will have the updated
values by the first iteration which will result in error.

Solution:
=========
We need to check that the value is of class BaseModel to update it , it
means that's the first time encountered.

opw-3497803

closes odoo/odoo#137000

X-original-commit: 91d6dc7ed56f67d41adab90ec0019fbb920d9042
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2023-09-29 08:07:02 +00:00
Mahdi Cheikh Rouhou (macr) 2b78a43185 [FIX] l10n_ar, l10n_gcc_invoice : show invoice_label on invoice print
Issue:
======
`invoice_label` doesn't appear in invoice print.

Steps to reproduce the issue:
=============================
- Install accounting and l10n_sa
- Go to taxes and select tax 15% sales
- Go to advanced options and change label on invoice.
- Go to any invoice having that tax and print it.

Origin:
=======
The name of the field was the changed from `description` to
`invoice_label` but not updated in all the templates.

opw-3500060

closes odoo/odoo#136723

X-original-commit: 7bc65d85d6d395e8e098aff755d29832c18fa60a
Signed-off-by: Andrea Grazioso (agr) <agr@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-09-28 03:19:06 +00:00
Mahdi Cheikh Rouhou (macr) 9e8b8d1bf7 [FIX] account, web : display monetary and numbers in rtl language
Issue:
======
- Display of monetary values in kanban views is wrong in rtl language
- Pivot display has multiple erros in rtl language: values are left
  aligned and they are supposed to be right aligned like in ltr lang,
  negative numbers has the sign in the wrong place, the (plus/minus)
  icon placement is wrong (it should be before the title and not after)

Steps to reproduce the error:
=============================
- Install accounting and rlt language (arabic for example)
- Go to accounting (display of monetary fields is wrong)
- Go to accounting/accounting/journal items/pivot view
- Choose residual amount in view (it has some negative values)

Solution:
=========
Kanban Solution:
- I fixed the direction of the display to be ltr always for monetary
  values and added the class to the appropriate tags.
Pivot Solution:
- I fixed the direction and text-align style for the values to always
  display the same like rtl.
- displaying the icon and then the title will always give the desired
  display since the direction will reverse their order itself when it's
  rtl

enterprise fix : https://github.com/odoo/enterprise/pull/46675

opw-3295573

closes odoo/odoo#134296

X-original-commit: 6b7f89b43b6abc970c955760da203a1e41c53652
Related: odoo/enterprise#46900
Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <jbw@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-09-07 10:29:43 +00:00
Mahdi Cheikh Rouhou (macr) b580444adc [FIX] web : save chatbot lines without error
Iusse:
======
When you update a chatbot a line and then save the chatbot form it will
throw an error.

Steps to reproduce the error:
=============================
1-Go to Live Chat/configuration/Chatbots and select one
2-update one line in the script (add some letters in one name)
3-save the chatbot form

Problem:
========
Some fieldName doesn't exist in the list of fields.

Solution:
=========
Swapped the values in the assign in duplicateDataPoint.

opw-3454514

closes odoo/odoo#134024

X-original-commit: 4ce57085b302957e2c260183f05f534160fa7ea4
Signed-off-by: Francois Georis (fge) <fge@odoo.com>
2023-09-04 09:19:15 +00:00
Mahdi Cheikh Rouhou (macr) f1e563f6b2 [FIX] base_import : show meaningful error message on import fail
Issue :
When you try to import a big file it will display a blank error.

Steps to reproduce the error :
1-install inventory and e-commerce
2-go to products and import records
3-upload the file attached the ticket

Reason :
Before, there was a type included in the `reason` but now
it seems that the error has no type neither a message.

Fix:
I tried to just output a general error.

opw-3410954

closes odoo/odoo#133950

X-original-commit: 95cc5c84c3b4529cd269cf278fd4ab289f28685f
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-09-01 15:09:58 +00:00
Mahdi Cheikh Rouhou (macr) 0630d76488 [FIX] stock : prevent creating sequences with same code
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

closes odoo/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>
2023-08-24 20:04:25 +02:00
Mahdi Cheikh Rouhou (macr) c9cbd5bf58 [FIX] web : display timepicker in ltr direction for rtl lang
Issue:
======
The time display for rtl language is the sale as ltr but in the
timepicker it's displayed as seconds-minutes-hours which is wrong.

Steps to reproduce the error:
=============================
1-Install calendar
2-Change the language to Arabic
3-Go to calendar and click on create new
4-Click on the datepicker for start for example and click on select time

Solution:
=========
I made the display of the datepicker independant of the direction of
language and alwyas display it in ltr direction.

opw-3423875

closes odoo/odoo#132589

X-original-commit: 3e21b50ef51b9f3ebf06b5cd16e3b11497b56896
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-08-21 19:57:59 +02:00
Mahdi Cheikh Rouhou (macr) e43ee20eb0 [FIX] account, web: display total and subtotals correctly rtl lang
Issue :
After the last fix https://github.com/odoo/odoo/pull/124663
there is still an issue of currency placements and alignement
of numbers in rtl language at the total and subtotals.

Steps to reproduce the isse :
1-create an invoice and confirm it.
2-install accounting
3-go to accounting/customer invoices and choose the created invoice

Origin of the problem :
The fields displayed didn't have the appropriate classes and the
style for number and monetary values for rtl language is missing from
the css folder.

Fix:
I applied the class on the `td` tag and `span` tag.

opw-3295573

closes odoo/odoo#132572

X-original-commit: e3eb140fb431aa1fc08e718d79f332c50e86c079
Signed-off-by: Bastien Fafchamps (bafa) <bafa@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-08-21 19:57:55 +02:00
Mahdi Cheikh Rouhou (macr) 0e2a431fc9 [FIX] sale_product_configurator: edit product with variants sale line
Issue:
======
When you edit an already saved product line which has variants it will
throw an error.

Steps to reproduce the error:
=============================
1-create 2 products having at least one variant each and make them
storable
2-create a sale order and add only the first product and save the SO
3-edit the sale line of the first product with the second product and
try to save it

Origin of the problem:
======================
When retrieving combination we didn't check that the variants are
associated to the product.

Solution:
=========
Try to get the variants that are associated to the product , if there is
no such variants we apply get_first_possible_combination

opw-3423065
opw-3450266

closes odoo/odoo#132527

X-original-commit: 06d18005762377c5188c5537ba4d17c4efd66948
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-08-21 19:57:31 +02:00
Mahdi Cheikh Rouhou (macr) eeee7dc9e7 [FIX] website_sale_stock_product_configurator : fix filename
In this commit 721efd0fd7e7a1fd78a812a4b752f126b455cbdb there is a typo
in a filename

opw-3341377

closes odoo/odoo#129964

X-original-commit: c4798a1e8e8aa1838a908d79d3bfacdfc6480520
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-07-28 14:54:16 +02:00
Mahdi Cheikh Rouhou (macr) 328f0ec84c [FIX] web : display currencty in correct place
This fix is a continuation of an old fix https://github.com/odoo/odoo/pull/121689
After fixing the display of numbers to be always on the right , The symbol also should be display the same as in english from ltr.
Also the headers and the footers are not placed well, they should be aligned with the numbers.

Steps to reproduce the issue :
1-install arabic language
2-go to accounting / customer invoices and you can see the placement of the symbol is reversed

opw-3295573

closes odoo/odoo#127231

X-original-commit: 8fcdc24abf4734d020cb41392a2e449a73433d3b
Signed-off-by: Bastien Fafchamps (bafa) <bafa@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-07-04 15:18:23 +02:00
Mahdi Cheikh Rouhou (macr) 699ba2d782 [FIX] repair : send email to author when included
When we include the author in the recipients of the quotation email of a repair order he doesn't receive the email.

Steps to reproduce the error :
1- create a repiar order
2- add the author in the list of recipients
3- send the email

The origin of the problem is that mail_notify_author=False , se we need to add it as True when we have the author in the recipients.

Similar old fix : https://github.com/odoo/odoo/commit/f49dbf595c870b682f36c11443c9cf1a9a027474

opw-3295744

closes odoo/odoo#126986

X-original-commit: d4d48526867e93295d93d4504e824cfdc2b146a7
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-30 20:13:43 +02:00
Mahdi Cheikh Rouhou (macr) b98425b1d9 [FIX] website_sale_product_configurator : show correct available qty in product page
When you add items in the cart it always show the number of available left in stock of the previous state for example :
1- cart is empty it shows 20 items
2- add one into cart - it shows 20 items left in stock (should be 19)
3- add another one into cart - it show 19 items left in stock (should be 18)

Steps to reproduce the error :
1 - Go to one of the product and make sure that it has some available quantity
2 - Go to sale configuration on the product and remove "out-of-stock : continue selling" and add show available qty only if below 5000 for example
3 - Go the web page of the product and try to add some items into the cart you will see that the stock message is wrong

The origin of the problem is that when we have optional products activated , it will launch a product configurator modal. After posting the update in the database there is no call to the function that updates the stock message.

opw-3341377

closes odoo/odoo#126802

X-original-commit: cec84ac8f761b516aef61e2721b7d619834be730
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-30 00:21:19 +02:00
Mahdi Cheikh Rouhou (macr) 0ecc280e7e [FIX] website_slides : Adjust container to contain the full course name
When we have a long course name or we update the font size to something
big (24 px) for example the course name and the progress bar will overflow
outside its container.

Steps to reproduce the error :
1- go to one of the courses and update it's name to make it a bit long
2- click on one of it's content and got website preview
3- you can see that the progress bar is outside the container
4- if not : click edit -> theme -> change font size to 24 px
5- You can see now clearly that there is overflow from the container

The origin of the problem was because the container has fixed height
equals 80px

opw-3191888

closes odoo/odoo#126460

X-original-commit: 8184374450f8e2b775a29ff05b3128c24579bbba
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-27 16:26:59 +02:00
Mahdi Cheikh Rouhou (macr) 0a89e70e5b [FIX] web : translate all content in customer preview
When we go into customer preview of a quotation for example and change the language different than English (to fr_BE for example)
we see that some of the content isn't translated  and still displaying in english.

Steps to reproduce the error :
1-Install sales and website app
2-Create a quotation for a customer and just save it don't confirm it.
3-Go to customer preview
4-Change the language to fr_BE
5-Click on "signer & payer"
6-You can see that it still display 'Full Name' in english and also some other terms

The origin of the problem is that all the parts that were rendered via a t-call gets rendered in english.
I investigated the problem and it turns out that the language code for the _t is alwyas english(https://github.com/odoo/odoo/blob/06719a84c52c7a97487b7ee0bef3bbe166d5b502/addons/portal/static/src/js/portal_signature.js#L45)
The problem is that the user_context.lang is always undefined here (https://github.com/odoo/odoo/blob/06719a84c52c7a97487b7ee0bef3bbe166d5b502/addons/web/static/src/legacy/js/core/session.js#L201)
As a solution I copied the code from 15.0 which was working fine (https://github.com/odoo/odoo/blob/4fa2dbcaf777c23758519ab0feb9707a7592cd6b/addons/web/static/src/legacy/js/core/session.js#L199-L209).

opw-3192666
.

closes odoo/odoo#125638

X-original-commit: 441c94270a4935d2b0b67a9f8201fcba9d15d957
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2023-06-19 19:17:00 +02:00
Mahdi Cheikh Rouhou (macr) 41ba2c136a [FIX] sale_timesheet : allocate hours to different projects with different templates
When we create a sale order with multiples services which have different projet templates, the projects created will have the sum of all hours which is not true.

Steps to reproduce the error :
1- create at least 2 product with type service and choose create on order : project & task , and create a template for each one on the fly
2- create a sale order with the created services and choose some quantity for each one of them
3- confirm it
4- Click  on the smart button projects
5- you will see that the allocated hours for each project have the sum of all the quantities

The origin of the problem is that we don't check on the template_id when calculating the allocated hours so we sum the allocated hours of  all the services having project & task for each one of them .

opw-3341546

closes odoo/odoo#125071

X-original-commit: 537a0093b0467f80aac6b1de2e93bf04c0298e5b
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-15 16:02:29 +02:00
Mahdi Cheikh Rouhou (macr) 297cf7c7ea [FIX] purchase_requisition : prevent creating purchase agreement from PO form
When you create a purchase agreement from the from view of a purchase order , it can have some invalid states which may lead to not having a vendor too.
Since choosing a purchase agreement makes the vendor read only on the PO form , then it may lead to having a PO form without a vendor and can't update it.

Steps to reproduce the error :
1- activate blanked orders
2- create a new purchase order directly from the PO form

opw-3335891

closes odoo/odoo#124528

X-original-commit: 100187e904b85306a7823c54adb78f493abacf78
Signed-off-by: Tiffany Chang <tic@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-12 11:22:07 +02:00
Mahdi cheikh rouhou (macr) 45387e5974 [FIX] website_slides : hide email share without template
When the channel share template isn't set , trying to share the course on the website via email will result in error.

Steps to reproduce the error:
1- Activate developer mode
2- Create a new course Test
3- Leavy Channel share Template  empty
4- Go to website via smart button
5- Click share and enter an email and send email
6- You will get an error

The error was happening because there was no check if the object has an
email template available

opw-3266197

closes odoo/odoo#123412

X-original-commit: c8e1bef559c64d6087492f05214606be7e48ef12
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-06-05 14:49:43 +02:00
Mahdi Cheikh Rouhou (macr) 3267f4b46e [FIX] web : align number on right in rtl lang
Numbers should be alinged on the right in rtl langauge same as ltr langs

Steps to reproduce the isse :
1- Change the language to arabic
2- To to the list of invoices in accounting and you can see that the numbers are aligned to the left

The origin of the problem is that rtlcss reverse the alignment from right to left

opw-3295573

closes odoo/odoo#122196

X-original-commit: 180139cd9244b6d6c7fc3b22e37d691215790359
Signed-off-by: Bruno Boi (boi) <boi@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-05-24 13:10:43 +02:00
Mahdi Cheikh Rouhou (macr) 9358a7f550 [FIX] loyalty : unarchive archived rules and rewards
When archive a loyalty program which have somes rules and rewards and the unarchinving it will not have the rules and
rewards that it had before.

Steps to reproduce the error :
1- install sales
2- activate Discounts, Loyalty & Gift Card in sales settings
3- go to sales/products/Discount&loaylty
4- select one of the default programs and try to archive it and unarchive it after
5- you will not get the rules that it had before

The problem was in the toggle_active function of the loyalty program we try to unarchive already unarchived items because
we do ```program.rule_ids``` so it will get only active items.

opw-3299295

closes odoo/odoo#121710

X-original-commit: 1d9fbda1c5ec69ba83968668ddecec6a7e1421bb
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-05-19 13:33:16 +02:00
Mahdi Cheikh Rouhou (macr) d8a3d76b25 [FIX] loyalty : send email in partner language
When sending email with gift card, it will have the user langauge and not the partner language

Steps to reproduce the error :
1- Add french and english language
2- Make the current language english
3- Install contact and sales and activate gift cards
4- create a contact having french language
5- create a gift card for the french partner and send it to him
6- the email will be in english lang

The origin of the problem was the missing lang field in the template

opw-3308919

closes odoo/odoo#121086

X-original-commit: f09ac453aa7cffe1e31f30b68fa0665ef504283a
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-05-11 09:36:31 +02:00
Mahdi cheikh rouhou (macr) 63d54abe4b [FIX] account : correct button title invoice email manually
Sending invoice in emails to customers now display View Journal Entry in
v16.2 instead of view Invoice.
Steps to reproduce the error :
1- Install accounting
2- Go to accounting/customers/invoices
3- Create an invoice and send it by email to the customer
4- View The email on mailhog

The reason of the error was becayse we didn't provide model_descirption
to the function of sending the email, so it will take the one by default
whch is Journal Entry.

opw-3289880

closes odoo/odoo#120480

X-original-commit: 21cab7ffa6a71a67b64d3a7e7a62a6599127343d
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-05-10 15:19:43 +02:00
Mahdi cheikh rouhou (macr) bce7da2a38 [FIX] account : forbid recipient bank update on posted bill
When updating the recipient bank on a posted vendor bill the chnages
will not be saved.

Steps to reproduce the error:
1-Go to accounting
2-Create a vendor bill and confirm it
3-Change the bank recipient and click manual save
4-Reload and you can see the changes disappeared

The error was happening because the recipient bank was not displayed as
readonly on a posted state of the account move.

opw-3247282

closes odoo/odoo#118783

X-original-commit: 7e7ca95080a601ccf5c0da679aae00a61a9f8ccf
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-04-17 16:35:00 +02:00
Mahdi cheikh rouhou (macr) de1d04db4c [FIX] calendar : change stop date for recurrent event
Changing end time for recurrent event will generate an error.

steps to reproduce the error:
1- Create an event in the calendar app with recurrence on
2- Save and close
3- Edit this event again and select change all events at the top
4- Change the ending time

The error was happening because the wrong key was accessed in a
dictionary

opw-3236432

closes odoo/odoo#118087

X-original-commit: 97f51b24da5db1a0217121aae583a9c1d715adc4
Signed-off-by: Adrien Widart <awt@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-04-11 11:33:54 +02:00
Mahdi cheikh rouhou (macr) 1b76e2835d [FIX] stock : update UoM of SM on product change
An error appears when we try to change the product in transfer line via
product/search

steps to reproduce the error :
1- create 2 products : Test 1 (UoM is Cm) and Test 2 (Uom is g)
2- create a delivery order and add Test 1
3- UoM error due to the UoM not being updated at the time of change

The error was happening because when updating the product directly in
the line section , the stock_move item already has a UoM and the if
statement makes it impossible to change it , so the error appears.

opw-3231298

closes odoo/odoo#117504

X-original-commit: ece3dea8c1ab43a854a57513cc317e8618010542
Signed-off-by: Adrien Widart <awt@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2023-04-05 13:57:50 +02:00