1. `searchPartnerSuggestions` uses`authorizedGroupFullName` to see
if the channel is public or not
2. `filteredThreads` and `getThreads` uses `hasSelfAsMember`
and `is_pinned` along with the channel type
3. search should use `displayName` otherwise the search on group
with default empty name will fail
4. fix tests.
closesodoo/odoo#140495
X-original-commit: b358c410988686610638e7ffbee1fbbbeff5f0ba
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Problem
---------
When creating and editing a bank account, a creation model pops-up to
edit the bank account information. The previously entered bank account
must be entered again which isn't user-friendly.
Objective
---------
The data entered on the bank account bank account should pre-fill
acc_number on partner bank pop-up.
Solution
---------
When create & edit, `name` could be used to pass (in the context) the
value input by the user. However, we want to set the default value of
`acc_number` variable instead. By overriding the default_get method,
we can get modify the context to do just that.
task-3557753
closesodoo/odoo#140725
X-original-commit: aa28b0fbba97b1528ad6a6ad27813c44125e8d48
Signed-off-by: Wala Gauthier (gawa) <gawa@odoo.com>
Signed-off-by: Antoine Boonen (aboo) <aboo@odoo.com>
This commit sets `s_text_cover` default color preset to `o_cc4` to make
it look more like the header of "Anelusia theme" that was the initial
reference for the design of this snippet.
It also fixes a typo in `o_ccx` class introduced in commit [1] at the
same time actually.
[1]: https://github.com/odoo/odoo/commit/5ac340b1b27c9527463e2eed65fe2e7768b36702
task-3568868
closesodoo/odoo#140721
X-original-commit: 66f63ab23159fae86ba81369287e1cf8aac66d87
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This commit fixes the issues related to the category selector. The issues are
very obvious when switching browser (e.g. Firefox or Safari). The width of the
container containing the category image thinks that its width should be the
original width of the contained image. This is a quick fix which sets a
max-width of 100px on the container (which is approximately 75% of the image
width matching the 75% height set on the image).
Additionally, we hide the image when the category panel becomes to thin.
Check the PR for screenshots of before and after the fix.
Original PR: https://github.com/odoo/odoo/pull/140720closesodoo/odoo#140720
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Since #104741, `Field.states` is no longer supported, remove the
documentation associated. We cannot remove the attribute
from Field because it is used in the migration script.
closesodoo/odoo#140694
Signed-off-by: Raphael Collet <rco@odoo.com>
Before this commit, the install prompt was half shifted out of screen.
After this commit, the install prompt is not shifted anymore.
closesodoo/odoo#140659
Signed-off-by: Luca Vitali (luvi) <luvi@odoo.com>
In this commit, we solve the issue that the tracking_number was not
showed on the ticket_screen when the order was in an other state than
paid. This is solved by computing the tracking number in the frontend
as we have all the informations needed for that.
closesodoo/odoo#140650
Related: odoo/enterprise#49997
Signed-off-by: Robin Heinz (rhe) <rhe@odoo.com>
pos*: point_of_sale, pos_discount, pos_restaurant, pos_sale
In this commit, we add the special product list to pos_config. This
is done so that we can see if the db has any product other than the
special ones to display the message to the user to create product or
not in the PoS.
Part-of: odoo/odoo#140650
When validating a draft transfer. Currently it says that we don't
have quantity. So when validating a draft, set the quantity to
initial demand and validate
Also, if a move is created through RPC with a quantity, auto-confirm the
move, regardless of its initial demand.
closesodoo/odoo#140578
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
We now have the possbility to publish modules that only contains XML on
apps.odoo.com and we want to display in the apps of the database to ease
the installation.
TASK-3186716
closesodoo/odoo#140245
Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
This rearranges the non-floating toolbar buttons so that the AI, animate
and highlight buttons are grouped together at the bottom and take up the
full width of the toolbar, and so that the options appear below them.
task-3572337
closesodoo/odoo#139857
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
When selecting an alternative in the AI Copywriter dialog, what we store
in the state is the index of the message. But that targets a different
message every time we add each new message at the start of the list.
This pushes new messages at the end of the list and only displays them
in reverse order, but also adds an ID to each message so they can be
targeted more robustly.
Part-of: odoo/odoo#139857
When inserting generated content in the editor, a frame is added around
the content to highlight it for a moment. This frame was not properly
positioned in the website builder. This also restyles it to match the
style of the "DRAG BUILDING BLOCKS HERE" frame.
task-3572397
Part-of: odoo/odoo#139857
With this commit, opening the ChatGPT alternatives dialog still
generates three alternatives, but whenever the user clicks on one of the
buttons:
1. one new version is generated (rather than three)
2. this new version is added at the top of the list (rather than
replacing everything)
3. older versions are showed in grey so as to differenciate them from
the new one
4. a badge next to each version shows which instruction was used to
generate it (shorten, lengthen, etc.)
Since we add new versions from bottom to top, the spinner is now shown
above the existing versions.
Since a badge is added, it's not necessary to keep the last used button
green anymore so once the AI is done generating the new version, the
button returns to its blue state.
task-3572397
Part-of: odoo/odoo#139857
This implements a way to abort the generation of a batch of alternatives
by the AI Copywriter. This is needed because if a batch was being
generated when the user clicked one of the buttons to select a mode, it
continued to be generated and to update the state while the new batch
was in the making, resulting in a potential total of more alternatives
than requested.
task-3572397
Part-of: odoo/odoo#139857
Sometimes, ChatGPT includes a little intro text (eg, "Sure, here are
some alternatives:") to its answer. This avoids this as much as possible
by improving the system prompt and asking to wrap the answer in tags
that we then remove.
task-3572397
Part-of: odoo/odoo#139857
Scenario:
- go to a model in technical
- create a new field and set "Related Field" to id
=> error "Unknown field name 'id' in related field 'id'" because we
get the field in self.model which is not present in the form view.
Fix:
Fallback to self.model_id.model as was the case before 16.0 commit:
76f699ca0b
Note: without the change, the added tests fails with:
Warning Unknown field name 'id' in related field 'id'
AssertionError: False != 'integer
opw-3138440
closes#112495closesodoo/odoo#140583
X-original-commit: aa406352541abd8bbf188da84fc4e370029ffc12
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
To reproduce
========
- having eCommerce installed
- let's take a product with price 1 000$
- for simplicity let's say 1$ = 0.5€
- make two orders for the product in € and $
- first order will be 1 000$
- second one will be 500€
- send the digest email
- the email shows total eCom sales = 1 500$
Problem
=======
- the total amount is a sum between $ and € which gives a wrong value
Solution
========
use `price_subtotal` from `sale.report` that has the convertead value instead
opw-3518064
closesodoo/odoo#140549
X-original-commit: d3b4203287f0fafd359913dedfaf130190751b92
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Abdelouahab Laaroussi (abla) <abla@odoo.com>
We need to filter out records without `request_date_from` and
`request_date_to` to avoid the error:
```
File "/tmp/tmpiaelju95/odoo/17.0/addons/hr_work_entry_holidays/models/hr_leave.py", line 180, in write
stop = datetime.combine(max(stop_dates) + relativedelta(days=1), time.max)
TypeError: '>' not supported between instances of 'datetime.date' and 'bool'
```
Issue observed in test upgrades of `l10n_hk_hr_payroll`
closesodoo/odoo#140286
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
This commit fixes an accessibility issue about a link which does not
provide any visual feedback to the user who would hover it.
Prior to this commit, this link did not provide any visual feedback,
due to the lack of `cursor-pointer` BS class or `btn-link` styling.
The easiest way to fix this is to add a `cursor-pointer` class to the
link. We could have turned the link into a button with `btn btn-link`
classes but this would requires more layout and design adjustments.
task-3573737
closesodoo/odoo#140148
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
This commit reduces the size of the icons used for the employee presence
status.
Prior to this commit, these icons were using a rule to define if they
should be diplayed in large or not, by checking the html tag of the
element they are in.
These icons were also styled with custom CSS to adjust their size, while
classes like `fa-lg` could eventually provide a workaround.
This approach was causing issues especially in kanban cards, were these
icons would appear massive and cause visual cluttering.
To improve the render of these inside cards, we simply remove the
custom styling applied to these icons.
task-3573702
closesodoo/odoo#140139
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
When decreasing the qty of a subcontracted POL, it can create an
unexpected receipt
To reproduce the issue:
1. Create a BoM for a subcontracted product P
2. Create and confirm a PO with 5 x P
3. Process the receipt
4. Return one
5. Update the POL qty to 4
Error: a new receipt is created for 3 x P. When updating the POL,
nothing should happen with the receipts
Updating the POL qty leads to the create/update of the related picking:
https://github.com/odoo/odoo/blob/1495b54aa452498c79f4178c2e38426b1b423e66/addons/purchase_stock/models/purchase.py#L426
And this will lead to `_prepare_stock_moves`:
https://github.com/odoo/odoo/blob/1495b54aa452498c79f4178c2e38426b1b423e66/addons/purchase_stock/models/purchase.py#L447-L450
Where we will define the values of the new SM (for the new qty).
However, there are two similar issues: to get the current qty, we
sum the quantities of the incoming/outgoing stock moves. But, the
condition is incorrect and we therefore consider the subcontracting
return as an incoming qty. So, this current qty is incorrect. Then,
we get the dest moves to compute some quantities to push/attach.
Here is the second issue, the filter condition to exclude the return
SM is incorrect: again, we don't exclude the subcontracting return
OPW-3515275
closesodoo/odoo#139957
X-original-commit: 7767c9e14230902826da3f17c94797b9698e11fa
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
This commit resolves the issue that arises when a widget contains a
reload attribute but lacks a no-preview attribute. That config leads to
an "Uncaught Promise" error. With this update, when a reload attribute
is detected, the no-preview attribute is now automatically added,
preventing the error from occurring. The problem occurs since [1].
Steps to reproduce:
- Go to website
- Edit
- Click on the header
- In the navbar options, change the Mobile Alignment option.
=> Works but traceback anyway.
[1]: https://github.com/odoo/odoo/commit/fcb16a3b1bd373726ffb54f0fbe41fb6d1784769
task-3572334
closesodoo/odoo#139909
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Purpose
=======
This task answers two use cases making text filters more useful and easier to
use:
Always using the same few values
--------------------------------
The text filter allows to type any arbitrary text. However, some users will
always use the same few values. They will always again and again type the
same values, every time they want to set or change the filter value. That's
cumbersome. There's also a risk of making a typo while typing.
Parametric dashboards
---------------------
Some dashboards are built to be parametric (our business analysts do that a
lot). e.g. They put the measure field in a cell, then reference that cell in
PIVOT functions. If you want to have the same dashboard, but with another
measure: just update the cell with the new measure and that's it.
In read-only mode however, you can't update that cell :(
But you can mimic a variable parameter with a text filter. Create the text
filter, then get the filter value in a cell with the function
=ODOO.FILTER.VALUE("..."). Now you can update the cell value by setting
different values in the filter input.
However, you need to know exactly what value would be correct/valid for the
parameter. Typing any arbitrary text would lead to errors or unexpected
results. Business analysts can know that kind of technical stuff, but
lambda users don't. The solution is currently to duplicate the dashboard and
change the cell value with the exact parameter value you want.
Specification
=============
In the filter config side panel, allow the user to restrict the set of
possible values to values in a range of cells in the spreadsheet. Let's say
A1, A2, A3 contains Paris, Brussels, Berlin. If the user chooses A1:A3 in the
side panel, the text filter input is no longer a free text input, but becomes
a select with the 3 cities.
If a value from the range is selected, then the cell with this value is
changed to another value: keep the previous selected value selected.
display the values with their cell format but use their raw format for the
logic behind it (using the value as a cell value from ODOO.FILTER.VALUE)
closesodoo/odoo#139191
Task: 3554062
Related: odoo/enterprise#49204
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
[IMP] mail: add/modify activity client tests
We add a test that checks the rendering of the activity view and the activity
popover with activities done.
We also add a test that marks as done an activity and verify that the activity
view is updated accordingly.
And we do a correction in the test "activity menu widget: activity menu with 2
models" (assert.ok(selectContaining... was always true as an array is always
returned and [] is true in javascript).
[FIX] mail: fix invalid date done in the activity list popover
Date done field was in camel case instead of snake case leading to undefined
value and "Invalid date" in the interface.
Task-3558929
closesodoo/odoo#139373
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
We add a test that checks the rendering of the activity view and the activity
popover with activities done.
We also add a test that marks as done an activity and verify that the activity
view is updated accordingly.
And we do a correction in the test "activity menu widget: activity menu with 2
models" (assert.ok(selectContaining... was always true as an array is always
returned and [] is true in javascript).
Task-3558929
Part-of: odoo/odoo#139373
Date done field was in camel case instead of snake case leading to undefined
value and "Invalid date" in the interface.
Task-3558929
Part-of: odoo/odoo#139373
Since 40f0482b680a7872d338fa8fd10eec4663637b46, pricelist is no longer required.
Because of that, pos no longer needs to implicitly load a default pricelist when
"Flexible Pricelists" (use_pricelist) flag is active. Therefore, when
deactivating the option, we clear the value of pos.config.pricelist_id.
We also make sure that during loading of data when opening a session,
default_pricelist is not set if use_pricelist is false.
Also note that we are not clearing available_pricelist_ids because of some
limitation in the synchronization between res.config.settings and pos.config. It
should okay to keep the links because they won't be loaded when use_pricelist is
false. Also, it's nice to see the field filled when reactivating the flag.
closesodoo/odoo#140599
X-original-commit: 54a6f1688fb8d15b662848b03cecbe8236292d07
Signed-off-by: Robin Heinz (rhe) <rhe@odoo.com>
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Steps:
- Open Project
- Create New Project
- Select the blank new project and click on see examples below the stage.
- This also appears in the existing project where you want to add more stages.
- A Kanban Examples popup view will open.
Issue:
- A scrollbar appears on the bottom left due to the long name of the example.
Cause:
- Due to the overflow property, when the name is long, it will automatically
create a scrollbar, making it look weird.
Fix:
- Add overflow-x visible in notebook It will counterbalance the overflow-x: auto;
rule used in the general (aka. horizontal) use case, and force the overflowing
element to take the space it needs, adjusting the headers column's width accordingly.
closesodoo/odoo#140590
Task: 3422009
X-original-commit: 4fff4fbb308bf411603cfc239e9f651598d0de78
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
When we add a smart button on a contact tag related to contacts, the
button adds a default search filter that hides the related records
Steps to reproduce:
1. Install Contacts and Studio
2. Go to Contacts > Configuration > Contact Tags
3. Open tag "Vendor / Desk Manufacturers"
4. Toggle Studio
5. Add a button (at the top right of the form) related to field "Tags
(Contact)"
6. Close Studio
7. Click on the button
8. A list view of the related contacts opens but there is a filter that
hides the records
Solution:
Remove the `filter_domain` attribute on the field category_id and
replace it by the `operator` attribute in order to use the raw value in
the domain
Problem:
In `_getFieldDomain`, we replace the `self` in the domain by the
stringified id which essentially checks for a category that has a name
containing the id
opw-3471959
closesodoo/odoo#140564
X-original-commit: 18640a2ddddcf2ef90948295a41b0d7d30ec09e3
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
Steps to reproduce:
1- Install Sales and Events modules
2- Create a new Event and event registeration
3- Create a sale order for this event
4- Check the sales smart button in the event's form
5- Cancel the sale order and check the smart button
Current behavior before PR:
When you create a sale order for an event and then cancel it the value of this sale order will not be deducted from the sum of the sale values at the sale smart button in the event form.
Desired behavior after PR is merged:
When you cancel a sale order related to an event the sale smart button value will be updated
opw-3543943
closesodoo/odoo#140547
X-original-commit: b5554f6f7597b44adfa318655bab1eab19158303
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Youssef Bashandy (yoba) <yoba@odoo.com>
Main changes :
Force context values to avoid traceback in
action_generate_lot_line_vals
Before :
When calling action_generate_lot_line_vals from a repair order,
a traceback occurs due to the missing 'default_location_dest_id'
in the context.
After :
We enforce 'default_location_dest_id' in the repair order form
to ensure it is available when we call action_generate_lot_line_vals
closesodoo/odoo#140500
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Incoming picking should almost never be in a waiting ('confirmed') state. So we check if the location bypasses reservation and that no move is in MTO.
Changing the main_flow_tour because removing the "Waiting" status from incoming picking forms makes it unable to find "Ready" in Mobile UI.
closesodoo/odoo#140180
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
In order to improve the user Experience and not uselessly
block access to the document, we prevent collaboration error
to open the traceback dialog.
task-3568680
closesodoo/odoo#139964
X-original-commit: df39cbc4dbc1922e91c53278db7fdcb12f01306e
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
In some cases the changes done in the editor were lost when using other element of the the UI.
For example : changing the tab containing the editor component to another one.
To avoid loosing the changes made by the user in those cases, we force an urgent commit change
in the `onWillUnmount` hook.
task-3530998
closesodoo/odoo#137716closesodoo/odoo#139959
X-original-commit: b2c3775ea01bfdb8e0dd40b3b8e57534c1785116
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
*: account, hr_recruitment, project, lunch, mrp
By removing the absolute positioning on ".o_favorite" inside kanban
views, we allow it to align naturally with the rest of the elements,
thus removing the custom code that was needed for padding.
By doing so however the icon - which is now only visible on hovering the
card in the Project's kanban view - should remain visible at all times.
The behaviour would be the same as in other kanban views: an outlined
star when not active and a full yellow star when it is.
The margin on the kanban heading in the Manufacturing orders has been
removed to realign the top elements.
task-3462098
closesodoo/odoo#131559
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
The clickbot test fails after October because of a hard coded month. It
needs to be refactored but let's skip it in emergency.
closesodoo/odoo#140641
X-original-commit: f9ec63dc3d865a24ec7da3f9389ce6b46fb66a83
Related: odoo/enterprise#49990
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Steps to reproduce:
- Configure a payment provider (e.g. Stripe)
- Go to the portal account of an user (e.g. Marc Demo)
- Click on "Manage payment methods"
- Save a payment method to create a payment token
- /!\ Go back to payment provider configuration and make a typo in the credentials
(This will be needed later to trigger a payment transaction error)
- Go to Accounting and create an invoice for Marc Demo
- Confirm the invoice
- Register payment:
* Payment Method: Stripe
* Saved payment token: [payment token of Marc Demo]
- Create payment
[1st issue]
The payment transaction fails (as the credentials are incorrect),
but no information about it appears on the invoice.
[2nd issue]
It is not possible to register another payment (with the payment provider) because
there is an unique constraint on the reference field of "payment.transaction" model
and each attempt of registering a payment uses the same reference.
Solution:
[1st issue]
Link invoice to payment transaction.
Messages related to payment transaction will be logged on the invoice automatically.
[2nd issue]
Generate reference with "_compute_reference" method instead of always using the same one.
opw-3499200
closesodoo/odoo#140533
X-original-commit: 8c98efe036972c43a95c28509e91c356ddc84084
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
It adds advanced data on the picking view.
It's not needed by default so we hide it
closesodoo/odoo#140577
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
A traceback is generated if config currencies are none. This is because we are trying to access the 0 index which does not exist in a None object.
Steps to reproduce:
1. Go to studio.
2. Click on reports.
3. Search for sale details.
4. Click on sale details report.
Current Behavior:
As we click on the sales details report, a traceback pops up.
Expected Behavior:
There should be no traceback and the report editor should open smoothly if nothing wrong.
Note:
We also remove Timezone information from the start_date to match the
format of the date when it's provided by the user.
e.g. : "23/05/2024 08:25:34" instead of "23/05/2024 08:25:34 TZInfo"
OPW-3501650
closesodoo/odoo#140575
X-original-commit: c816f47eaabcb2aedce91887287f34ac8f16320a
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
`''.join` would strip the `Markup` out, so the markup would appear
literally in the result instead of being interpreted as HTML.
Also switch to using dict-style formatting, it's a touch clearer (and
shorter) for this case, since `e` is already a dict (hopefully).
closesodoo/odoo#140496
X-original-commit: 4d88e1df4deb5f1aab23ca117f6b6261babec3f7
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Currently, although the journals are filtered to only show purchase journals,
there is no constraint preventing users creating a new journal of any
other type. This commit adds a constraint.
closesodoo/odoo#140458
X-original-commit: 014435f09cabbf0b21f3f9809eb1e0f13d35661a
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>