Have an IT company configured
Activate Dropship
Create a Product P with dropship enabled and vendor configured
Create a quotation to an IT customer, add P to a line, confirm.
Purchase will be created automatically, confirm it.
Go to dropship picking, confirm, print
The DDT report does not show up correctly:
- Warehouse address is the company address
- Customer address is the vendor address
opw-3128812
X-original-commit: b8fe190bdfbe9901426344acf26e18c0ca52794c
Part-of: odoo/odoo#122328
The buttons for the QR Code Menu setting are quite unappealing. This PR changes their style.
Closes 3338270
closesodoo/odoo#122301
Signed-off-by: Monnom David (moda) <moda@odoo.com>
The analytic_distribution component used an extension of the AutoComplete component for 2 reasons.
1. to get access to the focus event
2. to stop propogation of the autocomplete input click (which prevented the analytic popup from functioning well)
The need for the focus event was removed, and it doesn't make sense to maintain an extension to simply stop event propogation. For this reason, the extension was removed, and the `.stop` is added directly to the AutoComplete
Part of task-3180055
closesodoo/odoo#122424
X-original-commit: ebee32b8aa994bfd3fd375f6deb10676356a5d4a
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Ayob Habib (ayh) <ayh@odoo.com>
Allow users to find analytic accounts in the analytic widget if there are more than 7 results for their search criteria, by providing a Search More option.
Additional Enhancements include:
- remove the 'Add a Line' button. replace with an empty tag (no analytic account, remainder of distribution)
- remove the custom AutoComplete. this was used to set the active group on autoComplete focus, and to prevent propogation of click events.
- no longer keep track of the active group (editing plan). Instead pass the group (plan id) to the relevant functions.
- rename variables, for example request > searchTerm
- keep the header of the popup in place (no scroll when there are many tags)
- test the widget in list view (with the search more feature)
- add a new analytic account list view, as users should not multi-edit in the search more dialog
Current behavior before PR:
Users were forced to type the entire analytic account name if they had many analytic accounts with similar names.
forward port of 36391b9aea82091bf7b689658e07149860b01a61
Desired behavior after PR is merged:
A "Search More" option is added to the Autocomplete options when there are more than 6 analytic accounts found. The Search More option provides a SelectCreate Dialog where users are able to find the required analytic account easily. Users are able to select multiple accounts by checking the items in the list.
Task-3180055
Forward port of bef8e00d78f439936534cef8b2fd8313f03f3b1c
X-original-commit: 9f12669bcc1f23198d12a97b31feb6cb82894e11
Part-of: odoo/odoo#122424
Steps to reproduce :
- Create a product with a default `kg` uom
- Create a MO to produce 100 `g` of this product
- Open the MO Overview
- The first line indicates we try to produce 0.1 `g`.
For a `mrp.production`, `product_qty` is the quantity using the record's
linked uom, while `product_uom_qty` is the quantity using the product's
default uom.
closesodoo/odoo#122417
X-original-commit: 825d69636453d45f689983d1948850f35a696534
Signed-off-by: Tiffany Chang <tic@odoo.com>
Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
The selection function get_selection_class for the field classname has
obviously been thought to be overridable by subclasses in order to add
new selection classes if need be.
However, before this commit the method was passed directly to the
Selection constructor, which used the callable object directly. If it
was overridden by a subclass, the Selection object would still use the
same non-overridden callable instance.
With this commit, we give the name of the method instead of the
callable, which makes that the method is resolved after all overrides,
and therefore the resulting selection will be the overridden one.
closesodoo/odoo#122416
X-original-commit: 91bea59678c92dbb06151dbf757398f588aeefdb
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Paul Morelle (pmo) <pmo@odoo.com>
If applied, this commit will solve the min-max issues for efaktur.
- invalid literal for int() with base 10: when we enter all characters
string in the min or max it will raise an error like this.
- Error is also raised when the min or max is blank and try to save the
record.
So, I have update the value as 0 if the min value or max value not
generated.
see - https://tinyurl.com/2lx9j2kr
Sentry - 3936020226
closesodoo/odoo#122340
X-original-commit: 78ecfd66f1d6e043cefa4f88faa49505e4418f06
Signed-off-by: William André (wan) <wan@odoo.com>
Steps to reproduce:
- Install `Events` module
- Create a new event and set it to `Autoconfirmation`
- Create a new attendee and confirm it
Issue:
Mail that confirm registration is not sent to attendee.
Cause:
When computing the `schedule_date`, it take the value of the
`registration_id.create_date` WITH the microseconds.
When creating a new attendee, at some point we run the mail schdelure
that compare if the `schedule_date <= now`.
`schedule_date` and `now` have same value except for the microseconds
(set on `schedule_date` but not on `now`).
Therefore `schedule_date > now` and the mail is not sent.
Solution:
Remove microseconds from the schedule_date.
opw-3079389
closesodoo/odoo#122188
X-original-commit: f2adca45dcec5a11daa92d07bae00615210ea0de
Signed-off-by: Nasreddin Boulif (bon) <bon@odoo.com>
AttributeError: "res.partner" object has no attribute '_run_vat_test' log error
is generated, and nothing is imported when users upload invoice file that have a
VAT field. This is because the "_run_vat_test" attribute is defined in the
"base_vat" module and is not installed due to countries not having VAT.
This commit add the 'base_vat' in depends to prevent above error.
sentry-4074943505
closesodoo/odoo#121747
Signed-off-by: William André (wan) <wan@odoo.com>
If applied, this commit will solve the issue of missing product issue while
installing the following modules: loyalty_delivery, pos_loyalty, sale_loyalty,
website_sale_loyalty
Steps to produce:
- Install loyalty module.
- Go to 'Products' or 'Product Variants'.
- Delete the product 'Gift Card'.
- Now install the 'sale_loyalty' module.
This commit will raise an userError while deleting the loyalty products.
sentry - 4112536971
closesodoo/odoo#121484
X-original-commit: 3488d292b514bbf4190f19bd8271b3e68b3eb055
Signed-off-by: Parth Solanki (paso) <paso@odoo.com>
With this commit:
========================
- Added a new field `forecasted_qty` in replenishment to display the
forecasted qty based on a selected warehouse in the wizard
- Changed the `route_ids`(m2m) field to `route_id`(m2o) so that
we can apply a specific route for the
replenishment instead of the product's default routes
- Reduced the width of all the fields
- Remove the time from the scheduled date and make the unit field not editable.
- Can see vendor information with info icon field when buy is selected
- Hide the Dropship route from the Route
TaskId : 2579425
closesodoo/odoo#96948
Related: odoo/upgrade#3796
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Steps to reproduce:
1. Create a bill from document,
2. Fill in PO in auto complete, confirm, check the bills list.
3. The source document is not populated in the list.
What is the current behavior that you observe?
The source document is in the log, but does not show up in the dashboard.
What would be your expected behavior in this case?
The PO should show up in the source document in the list
OPW-3284992
closesodoo/odoo#122280
X-original-commit: e3289decaf95034f0ebba307350d3913a604eb8d
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
This commit resolves 2 bugs.
The first one is that, in a PoS without pos_restaurant installed,
if we delete the last order of the list, we get a traceback.
This is resolved by adding an empty order if there is no order left
in the order list.
task-id: task-id: 3291831
The second bug is that, with pos_restaurant installed,
when going to a retail PoS, if we createan order with some products,
then create a new order from the TicketScreen, add some products,
go the the TicketScreen and delete the current order
and then click back, we have in the ProductScreen the order
that is supposed to be deleted.
This order doesn't show up in the ticket screen anymore.
This comes from the fact that the _selectNextOrder function is
not correctly implemented, leading to the next order not being
chosen because we do not have a table (we are in classic PoS).
This fix resolves this problem by changing the _selectNextOrder
function and the newly added addOrderIfEmpty function in models.js.
closesodoo/odoo#122269
Task-id: 3291821
X-original-commit: cd956daf21695bef4753301fe29a6ece1e97d32a
Signed-off-by: Monnom David (moda) <moda@odoo.com>
Signed-off-by: Guilliams Adrien (adgu) <adgu@odoo.com>
Since [1], the notifications of type `simple_notification` are
handled by a service in the bus module.
Before [2] those notifications were handled by the messaging handler
which was only loaded in the backend.
This commit restores the previous behavior as the simple notification
service starts the bus service which result in the websocket worker being
loaded why it should be done lazily (i.e. only when the livechat is used).
[1]: https://github.com/odoo/odoo/pull/119243
[2]: https://github.com/odoo/odoo/pull/110188closesodoo/odoo#122266
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
In Send and Print wizard (`account_move_send`):
1. Choose a company, eligible for ubl
2. Create two invoices for different partners: one that can receive ubl and one that cannot
3. Select both invoices in the list view and try to send them
A traceback occurs because one of the partners has `ubl_cii_format` and the other one doesn't. So we try to get `code_to_label[False]` and it breaks.
The ubl xml file will be generated only for the valid invoice anyway, so this fix should not cause any side effects.
closesodoo/odoo#122253
X-original-commit: 67ffc0f7762f685ad68d9c873800140918b38ca1
Signed-off-by: Laurent Smet <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
Markup usage has been enforced in the mail module since [1].
Since the `chatbot_restart` method doesn't make use of it,
the content is escaped and the whole html structure is
printed to the DOM.
This PR fixes this issue.
[1] https://github.com/odoo/odoo/pull/111850closesodoo/odoo#122251
X-original-commit: 4909bdfbb0354310f3e6d21e1ecc7177b74b34bc
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Use case: Create an import file for a picking with stock.move.line
directly in it and add some reserved quantity on the stock.move.line.
The import of stock.move.line is not possible directly via a
stock.move.line menu but it still possible on a picking or
mrp.production import. However the create does not expect that and never
reserve the quants. So it result with quant <-> sml inconcistencies in
the data and the error can not reserve more than you have in stock.
opw-3277938
closesodoo/odoo#122156
X-original-commit: 3e78316a51f2cb8d347af1b87abcdcb775107115
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
To reproduce
============
create many Expenses records, go to expenses in List View
scrolling not working
Problem
=======
some style classes are not applied on the correct element, which leads to this behavior
Solution
========
apply the classes on the correct element
opw-3300041
closesodoo/odoo#122133
X-original-commit: b7bc19e30afaf1e6374620b7a3bfbdf26c63e765
Signed-off-by: Laurent Smet <las@odoo.com>
The HeaderButton component is used once and is mostly presentational,
this commit inlines it into the navbar.
closesodoo/odoo#122035
Related: odoo/enterprise#41336
Signed-off-by: Monnom David (moda) <moda@odoo.com>
pos*: point_of_sale, pos_hr, pos_restaurant, pos_sale
This component is purely presentational and contains no code, it's also
only used once (it was actually used a second time in pos_hr only
because the way the xpath was written would replace the existing
instance with a new one with an added t-if, we can just use an attribute
xpath instead).
Existing xpaths have been adapted such that the burger menu's dropdown
structure is better semantically (an unordered list containing list
items, instead of containing list elements inside of random divs)
Part-of: odoo/odoo#122035
The IndependentToOrderScreen base class is used when a main screen
should not be stored on the order (so that it can be restored when the
order is selected again). Its implementation is simply a class with a
static flag, and a super simple close method which just calls the
equivalent method on the pos store. It has been removed and the classes
extending it have been adapted.
Part-of: odoo/odoo#122035
It's a very short component with no oevrrides that contains almost no
logic and whose template is ~10 lines of code. It has been inlined into
the ProductScreen.
Part-of: odoo/odoo#122035
Previously, the pos used singletons of reactive object to create shared
state between components that could be imported. This is an ugly
solution and this kind of "module level" object is difficult to patch or
mock during tests. It's also a non-standard way to manage shared state.
This commit simply adds this piece of shared state to the pos store,
which is meant to hold the shared state of the pos.
Part-of: odoo/odoo#122035
The mobile order management screen has never worked. A previous commit
partially fixed it and caused it to now be rendered, but it's always
rendered in a way that makes it no different from the desktop order
management screen. The code has been dead for so long that allowing the
code to go through the dead path crashes and after fixing the crashes
the layout is broken. As such, this commit removes it entirely, and if
the flow needs improvement on mobile it will be done as part of a
separate task instead.
Part-of: odoo/odoo#122035
It's only used twice, in a single component, and it's used to do
different things, one of which is just handled by formatCurrency
already. It's been inlined to the only other use site.
Part-of: odoo/odoo#122035
to return the response with correct status code as json-rpc returned status code 200 even if there was an error
task-2835711
closesodoo/odoo#117940
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Turn the call to filtered after the search on purchase.order.line
into a call to _search. This allows to remove filtered by adding
an additional leaf in the search domain.
Add read calls to fetch fields from db and store them in cache
on recordset batches.
Example speedup: partner with 136555 POL 6.33s -> 3.42s
opw-3277299
closesodoo/odoo#122218
X-original-commit: b3e81b092864c71a9d5d097fbfa965319acf4fba
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Van Delft Aurélien (avd) <avd@odoo.com>
The value of custom ptavs is store on the sale order line.
Currently, they are ordered by ptav id but they are ordered by the ptav
sequence everywhere in Odoo.
Now, on the sale order line, custom ptav are ordered by ptav sequence.
opw-3234669
closesodoo/odoo#122206
X-original-commit: fa25206634e11ce1fd9030508772a1802ef86fa2
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Valentin Chevalier <vcr@odoo.com>
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
closesodoo/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>
Before this PR:
The only way to neutralize the database is running cli command neutralize
After this PR:
There is a new checkbox "neutralize database" in Duplicate database and Restore database dialog that neutralize the database after duplication/restore.
I also moved the neutralization code to the external module so it can be called also outside the cli .
closesodoo/odoo#122185
X-original-commit: 616740e9d09b3d0376be43ed1489e390f6f5823e
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
Create an invoice
Send & Print
Go to Journal items
Select created invoice line
Issue: No preview is shown
This occurs because the attachment was created with res_field
'invoice_pdf_report_file'
When we search without res_field the method _search of
ir.attachment will add ('res_field', '=', False) to the domain
So we don't find the generated report
opw-3301344
opw-3271602
closesodoo/odoo#122183
X-original-commit: 4a88945fb125716f4362252795e969f36b48391d
Signed-off-by: Laurent Smet <las@odoo.com>
Signed-off-by: Grazioso Andrea (agr) <agr@odoo.com>
Steps to reproduce:
- Go to a website page > Add a 'Form' block > Set an input "Placeholder"
value.
- Go to the page (in 'edit_translations' mode) > The translation of the
input "Placeholder" attribute doesn't mark the input as translated and
even after saving the translation, the input is still marked as
"to_translate".
The goal of this commit is to fix this issue by extending the same
behaviour on the translated `<select/>` options (using `.oe_translated`
class) and setting the right translation state on the input from the
linked attribute translation `<span/>`.
task-3323245
closesodoo/odoo#122011
X-original-commit: 946de52ea80e0cf5f1284cea2134c22ffda3aa5f
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
Signed-off-by: Outagant Mehdi (mou) <mou@odoo.com>
Impacted versions:
- saas-16.3
Changes:
This commit improve below features:
- Add additional data field into qr code vals
- Override the additional data field in l10n_hk to support the new field
- Update l10n_hk unit tests
- Change FPS Identifier label
closesodoo/odoo#122224
X-original-commit: 27b729709e78855721111f6f8b34cd0532147ec8
Signed-off-by: Nicolas Viseur (vin) <vin@odoo.com>
Signed-off-by: Tommy Ng (tong) <tong@odoo.com>
Current behaviour:
The unit test doesn't run.
Expected behaviour:
The unit test should run.
Explanation:
File name is not prefix with test so the file doesn't run.
X-original-commit: daaec6d52a58994ada7eb11faab903cd447ef9bd
Part-of: odoo/odoo#122224
Before this patch the naive dsn parser `_dsn_to_dict` would choke
on `application_name` containing spaces or the equal sign.
closesodoo/odoo#122212
X-original-commit: 3573fe0726f8dde1c5714b7d501f6c43d97ce731
Signed-off-by: Fabien Meghazi (fme) <fme@odoo.com>
In Knowledge, the scrollParent for the `Y` axis of an embedded ungrouped Kanban
view is the article body, which contains the draggable `container` (which is
itself contained in the scrollParent for the `X` axis).
This commit introduce 2 fixes related to the `draggable_hook_builder`:
- In `draggable_hook_builder`, `updateRects` was modifying values of the
`containerRect` from values of the `scrollParent`. Then, the `containerRect`
was used in `handleEdgeScrolling` to compute a scroll value to apply on the
`scrollParent`, and when updating the dragged element position, to compute the
boundaries for the dragged element. This commit stores values for
`scrollParent` in `scrollParentRect` alongside the modified `containerRect`.
`scrollParentRect` will be used to compute the scroll value based only on the
dimensions of the scrollParent, and the modified `containerRect` will be used
to compute the boundaries.
- The `scrollParent` in the `X` axis can be different from the `scrollParent` in
the `Y` axis. This commit stores both of them individually so that one is not
neglected when higher in the DOM than the other.
Task-3291771
closesodoo/odoo#122211
X-original-commit: 1f784652f9431c8716329f284133df215656c4b9
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Abeloos Damien (abd) <abd@odoo.com>
To reproduce the issue:
(Need `stock_barcode` and a real barcode scanner)
1. Create two products P01 and P02, each one with a barcode
2. Barcode > Operations > Receipts, Create
3. Scan P01
4. Scan P02
5. Click on the `+1` button on the line of P01
6. Scan P02
Error: Both lines are incremented. Scanning P01 should not impact the
quantity of P01
Because of step 5, the focus is still on that button when scanning
again P02 (step 6). Moreover, the scanner ends the barcode transmission
of P02 with an `enter` -> it will generate an event on the `+1` button,
which explains why the quantity of P01 is also incremented.
OPW-3232437
closesodoo/odoo#122200
X-original-commit: a5f566b57ace1d82e77f56f4c059eb595350e1cf
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
Before this commit, trying to access "My Time Off" was
not possible if connected on a company while some leaves
were created from another company.
This commit restricts that view to the leave created from
the companies the user is logged into.
closesodoo/odoo#122186
X-original-commit: c0039aa40a1274110906e45ba07a318fc6218267
Signed-off-by: Gvaladze Sopiko (sgv) <sgv@odoo.com>
Current behaviour:
If we add a blockquote in the `website_description` of a product on
the e-shop, we cannot checkout the product. Silent HTTP 400 error
code, due to an exception raised by
https://github.com/odoo/odoo/blob/bf772181933ce5334da35c8368455963b2478399/odoo/fields.py#L1987-L1993
Expected behaviour:
You should be able to checkout products even if they have blockquote
in their `website_description`.
Steps to reproduce:
- Install eCommerce, sale_quotation_builder (issue is present only
after installing sale_quotation_builder)
- On a product, with the website editor, add a `blockquote` to the
description of the product > Save
- In a private browser window, as public user, visit the product on
the e-shop and try to checkout with it.
- Observe there is no visible error, and we do not proceed in the
checkout process.
Reason for the problem:
The exception mentioned above is triggered when there is a
difference between the html content that is saved in the DB and after
sanitization, meaning that someone with escalated privilege saved
the HTML content by overriding the sanitization with
`sanitize_overridable`. In our use case the only diff is the
presence of the attribute `data-o-mail-quote-node` which is removed
after the sanitization.
Fix:
This issue can be resolved two ways:
1) Adding `data-o-mail-quote-node` to the list of save attributes,
meaning it will not be removed during the sanitization process.
Since this is an attribute that we add on `<blockquote>` nodes,
it can be considered safe, just like `data-o-mail-quote`.
2) Remove the attribute sanitization of the `website_description`,
just like it is done in the website_sale module.
Since the `website_description` and `quotation_description` are both
computed from one-another, they should have the same sanitization
level.
I am implementing both solutions, 1) because adding the attribute to
the safe list seems safe in general, and may prevent future
issues of this sort. 2) because it is the root cause of the issue,
since the bug is present only after installation of the
`sale_quotation_builder` module.
Affected versions:
- 16.0
- saas-16.1
- saas-16.2
- master
opw-3297237
closesodoo/odoo#122154
X-original-commit: 23022144cb1a338db05870b28f17360b92c46a9c
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Signed-off-by: Piryns Victor (pivi) <pivi@odoo.com>
before this commit, reference field is not added
in the search view of the stock valuation, which
contains the information like picking name, and
users need to use custom filters to filter
using this field.
after this commit, the reference field will be
added to the search view, and end users can
easily search using this field without using
custom filters.
closesodoo/odoo#121472
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Steps to reproduce:
- Open Odoo on small screen
- Go to "Project" app
- Select project > Traceback
The Kanban progress bar's refactoring [1] didn't completely took into
account the fact that, on smaller screen, the "folded" columns aren't
actually folded (like on dekstop-like screen sizes) but instead their
records aren't loaded by default. As a result, in one case the progress
bar is shown (small screen) and in the other hidden.
As the progressbar's information is memoized in `getGroupInfo`, this
getter should have been called wherever those information are read.
This commit fixes the issue by properly calling the `getGroupInfo`
getter instead of using the "private" `_groupsInfo` object (which may
not yet have been populated, due to the memoization).
task-3336233
[1] https://github.com/odoo/odoo/commit/58ca40b03215ef4c6c575267494dc8bccc30a033closesodoo/odoo#122214
X-original-commit: c2efa7f059c92298ae5fb22b83e812453e2eb8ea
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
If the button box exists but contains nothing (or nothing visible), it
will be displayed as the string 'null' in the control panel
This commit changes this behaviour to show nothing and remove the
culprit view (an invisible button should simply not be there)
X-original-commit: 0089b302bf30efb324c80f74f058d6d64f686e4c
Part-of: odoo/odoo#122111