mixin method should not return in the middle of the loop
Use the value updated on the record instead
super() is called with self at every iteration
which is not very efficient and can be wrong
Solution call super for each specific record
and only when needed
write is not a good practice in compute method
X-original-commit: 7e19ed98d18305370b5c14edd3d310cfea5df714
The nocontent helper now shows a more descriptive image and a link to
the mobile application.
closesodoo/odoo#52972
Taskid: 2277641
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
communication_flag in the SELECT is used to determine candidates for automatic reconciliation.
Extracting this part allows to customize the behaviour implied by the use of match_total_amount and specifically the warning "This parameter will be bypassed in case of a statement line communication matching exactly existing entries" to avoid an automatic reconciliation when the amount doesn't match.
closesodoo/odoo#52731
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Purpose
=======
Rename "Follow-up" tab into "Extra Information" in the lead form view
Remove the create option on the language field in the lead form view.
Align vertically the expected revenue with the PLS in the lead form view.
Add the "Planned revenue" label in the quick create form.
Improve the pipeline activities default filter.
Improve the sale team form view.
Task-2277242
closesodoo/odoo#52965
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
PURPOSE
Avoid flickering and incorrect display of warning box in SMS when updating
the number to contact.
SPECIFICATIONS
Currently when an user uses composer to send an SMS, number is validated
at onchange. It leads to two issues
* jump of content as a warning box appears;
* visual warning displayed after user may have clicked on "Send"
button, leading to warning not being useful;
We choose to validate number in real time in order to give directly
a feedback to the user. It also lessens flickering on composer screen.
This is done by allowing to trigger the 'change' event on key down. This
requires a specific onchange_on_keydown option to be used on char field.
LINKS
Task ID 2229050
PR #51159closesodoo/odoo#52962
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commits refactors the code of the reconciliation, in order to facilitate the process of complex use cases, namely multi-currencies or cash-basis-taxes related (see details below). It also prepares the code for a second refactoring where we will save on each journal items the amount_currency and currency_id field (even in case of operation made in company currency), also in the sake of simplification.
1) Multi-currencies:
- the account.partial.reconcile model now will have dedicated columns to specify the amount of the partial reconciliation in the debit_line_id currency and the credit_line_id currency. That comes in handy when dealing with journal items having different secondary currencies, but also allows some simplification.
- residual_amount_currency computation changed accordingly
- moved models account.full.reconcile and account.partial.reconcile in their dedicated .py file
2) Cash basis taxes
- cash basis entries now handle correctly rounding errors to make sure the exact amount of gets reported when the reconciliation becomes full.
- the account for the base amount of cash basis entries has to be set, now, on the company instead of on each cash basis tax.
- that new 'property' field can be set at the CoA installation via the field property_cash_basis_base_account_id of account.chart.template, or going through the accounting settings.
Was task task: 2243420
Was PR #50308
Related: odoo/upgrade#1121
Related: odoo/enterprise#10252
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
This commit adds noLeadingZeroHour option to formatFloatTime.
The noLeadingZeroHour option can be used to format the value
like 1:30 instead of 01:30
This format behaviour is wanted for fields in web_grid module.
Task 2261853
closesodoo/odoo#52217
Related: odoo/enterprise#10870
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Hardik Prajapati <hap@odoo.com>
Co-authored-by: Mohammed Shekha <msh@openerp.com>
Upgrade the TIM JavaScript SDK to the latest version (4.6.0).
The version Six gave us initially (3.8.1) didn't return any error
message. We now have some (ugly) error messages that could at least
help the cashier understand where the problem comes from (e.g.
"timCommunicationFailure", "cardholderStop", etc.).
closesodoo/odoo#52181
Taskid: 2267818
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
When user is in an operation. For example, a delivery, when user opens studio
and click on the move line, click on edit and close studio. The result is that
user can't create record anymore.
By this commit, this issue has been fixed.
task - 2170090
closesodoo/odoo#52101
X-original-commit: cc10d8bccada44041f62243ab4785a422f354aaa
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
mixin method should not return in the middle of the loop
Use the value updated on the record instead
super() is called with self at every iteration
which is not very efficient and can be wrong
Solution call super for each specific record
and only when needed
write is not a good practice in compute method
closesodoo/odoo#52858
X-original-commit: 7e19ed98d18305370b5c14edd3d310cfea5df714
Related: odoo/enterprise#11100
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Since recent commit[1], from the report 'purchase.report' inherited in
purchase_stock, `effective_date` field is moved out from the query and
is placed inside the domain. However, `effective_date` field is not
available in 'purchase.report' and is part of the 'purchase.order'
and so moving it inside the domain results into a traceback.
This commit fixes the issue by adding this field from purchase.order to
purchase.report so domain works as expcted.
commit[1] - https://github.com/odoo/odoo/pull/49999/commits/b7115cc006fb15c935ceef41e8372b1d3ceb1462#diff-34545aa3f96ecc997188c974620118ee
closes odoo/odoo#52103
Taskid: 2263566
Closes: #52103
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
The IoT Box detects printers automatically under certain conditions.
And so there are printers that are not detected by the box
and cannot be used in Odoo.
With this commit we give the possibility to add printers manually
with Cups and to be able to use them in Odoo.
closesodoo/odoo#52154
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Create a contact:
- Company
- Country: Ukranian
- VAT: UA1234567890
Error will raise because the VAT is detected as invalid. This occur
because vatnumber package for Ukranian VAT check the length to be 8
while according to various sources [1][2] the number is
- 12 for companies
- 9 or 10 for individuals
[1] https://vat.international/ukraine/
[2] https://interbuh.com.ua/ru/documents/oneanalytics/123926
opw-2266940
closesodoo/odoo#52956
X-original-commit: 0f4c3b6a9930614397c61cef8b138985f2e2b708
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Have a Storable Product configured to 'Show inventory below a threshold
and prevent sales if not enough stock' (availability settings). Have a
quantity available of such product, i.e 100
From the shop create 2 sessions with 2 different users A and B.
With both follow the steps in parallel:
- put 100 of product in cart
- go to checkout up to payment screen
Press 'Pay Now' with A (and confirm the order in backend if auto
confirm is not enabled so available quantity is updated)
Press 'Pay Now' with B
200 of product are requested because all cart checks for availability
are done before payment but not on the final step.
Adding a final step of check for availability
opw-2261598
closesodoo/odoo#52954
X-original-commit: 4d3f2fbdcda68d4f0e0bb3bb34d51e71d963621b
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
If no product is loaded when opening the PoS, show a popup asking if
the user wants to load demo data.
closesodoo/odoo#52919
Taskid: 2276054
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Purpose of the task is to improve on accounting listviews.
So in this commit, following list view are improved
- view_move_tree
- view_invoice_tree
Improved decoration and apply the new badge widget.
closes odoo/odoo#52358
Taskid: 2267578
Closes: #52358
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Fixes same issue as b836e00d70 but for `<div/>` tag.
When we translate html content, all text and (currently) this subset of
inline tags are allowed inside translations: 'abbr', 'b', 'bdi', 'bdo',
'br', 'cite', 'code', 'data', 'del', 'dfn', 'em', 'font', 'i', 'ins',
'kbd', 'keygen', 'mark', 'math', 'meter', 'output', 'progress', 'q',
'ruby', 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time',
'u', 'var', 'wbr', 'text'.
In b836e00d70 an issue was fixed that `<p/>` would possibly get inside
translation when copy-pasting, testing some scenario in current chromium
browser (83.0) it seems the pasted content contains `<div/>` tags.
opw-2259367
opw-2260711
closes#52592closesodoo/odoo#52932
X-original-commit: eed9fb771521143c0b514d96b5efdcb9715051f0
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
A sales order on the website will have as salesperson:
- the contact salesperson, and if not set
But if it's not a new address, the "Online orders" > "Salesperson" is
not used.
With this changeset, the "Online orders" > "Salesperson" is used by
default if there is no salesperson on the partner as was the intention.
opw-2274665
closes#52933closesodoo/odoo#52939
X-original-commit: 957361a5c44b3797318657ce2486a3eff2a3f651
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Invoice matching rules now also match account.move.lines based on their partner's name : if the statement line's payment reference contains the first name and last name of its patner (in any order, at any position), we match the move line.
closesodoo/odoo#50083
Related: odoo/enterprise#10166
Related: odoo/upgrade#1317
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Partner mapping is a new field defined on invoice matching reconciliation models. It allows defining a mapping between partners and regular expressions. When ran, on a statement line without any partner set, those rules use this mapping to assign a partner to statement lines without any one set, using the regular expressions to match the payment reference of the statement line.
It is important to note that the mapped partner will only be set to the statement line when the reconciliation is actually performed (so, when clicking the validate button, if the matching rule is not auto_reconcile = True), just like with the partner_map.
This limit is set by the past_months_limit field of reconciliation models. When set, it specifies the number of months in the past to search for matches when using this model. Older move lines will be ignored.
The point of this feature is to exclude too old stuff that we know we won't reconcile (because of import, old misconfiguration, former misuse of some features, ...). It also allows reducing the number of move lines taken into consideration, and solving perfomance issues functionnally by isolating the move lines into smaller periods to reconcile them separately.
When opening the reconciliation widget and calling the matching rules, instead of calling all the rules in a single huge SQL query and then iterating on all the statement lines to match them with the results, we now first group the lines per applicable model and each time call a distinct (but way smaller) query for each group, stopping trying other rules for a statement line when one returns candidates. More queries are performed, but they are way more simple.
Before this commit, hovering options of a parent snippet displayed two
overlays: it's confusing.
After this commit, when hovering a parent property, only the parent
overlay is displayed, with the same style.
task-2182911
closesodoo/odoo#51476
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: qsm-odoo <qsm@odoo.com>
Review the layout to always use standard bootstrap classes so that
future task targeting modal can target s_popup snippets the same way
(for example: our task allowing to open a popup on click on a button).
This also allows to simplify the css and simplify the options. A new
option also now allows to have a backdrop, or not, so that user clicks
are blocked while the popup is opened, or not.
+ Adapt cookie bar accordingly.
Part of https://github.com/odoo/odoo/pull/52698
task-2210730
Co-authored-by: qsm-odoo <qsm@odoo.com>
The counters for categories were not updated when filter values were
selected. This commit fixes that situation.
This might impact the global performances of the search panel but
there is still room for improvement. Actually, it could be
possible to reload categories and filters less often by carefully
track the internal changes and the categories/filters attributes
(enable counters, expand,...).
closesodoo/odoo#49307
Related: odoo/enterprise#9795
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
In the search panel, the domain used to compute the field image values
(when the attribute expand is false) was the same as the domain used
to compute counters (if enabled). The idea was that a value bringing an
empty domain is totally useless and should not displayed.
That being true, it turns out that if one does not allow them and
several fields are used, selecting a value in the search panel will very
often totally transform the search panel. From a UI perspective,
this turns out to be bad: the search panel 'moves'.
Let us give an example:
Let us start from a search panel that looks like to:
first_field
A 1
B 3
second_field
C 1
D 2 <--- mouse above D
E 1
with first_field and second_field both with expand="0" and
enable_counters="1". Let us also assume that no record in the global
domain has both first_field=A and second_field=D.
Click on D would make the search panel look like to something like
first_field
B 1
second_field
C 1
D 2
E 1 <--- mouse here
(the selection of D does not impact the values for the second_field but
does for the other first_field values).
This has led us to use basically only the domain comming from
outside of the search panel to compute field image values.
This means that we might now have value with zero count even if expand
is false. In the above situation, a click on D would give us
first_field
A
B 1
second_field
C 1
D 2 <--- mouse still above D
E 1
Task ID: 2154749
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
This commit introduces a new attribute 'limit' for search panel fields
that allows to avoid performance issues. That integer attribute (with
default 200) allows to fix a maximal number of values to display for the
fields. When the number of field values to display reaches the limit,
no values will be displayed. Instead, a warning message will be shown
in the corresponding search panel section.
Note it is possible to have no limit using limit="0" on a field.
This commit reintroduces in a better way the principle brought by the
fix 8d57153b34c04952a85f6642951cb2697016da84.
Task ID: 2154749
The commit introduces two new attributes for search panel fields:
- hierarchize: boolean attribute (default True) available for
many2one fields with select="one". It allows to choose whether
to hierarchize the field values using the _parent_name (if set)
on the field comodel.
Note that a sanitization of the parent hierarchy takes place.
Basically, it ensures that parent chains are
completely in the domain (on comodel) accessible by the user.
See _search_panel_sanitized_parent_hierarchy documentation for
more information.
- expand: boolean attribute (default False) available for many2one
and many2many fields. If set to true, all field values are fetched
and displayed in the search panel. If set to false, only the
values that have at least one corresponding value in the field
model (and in some domain) are fetched.
An exception in the case of an hierarchized field
(hierarchize=True and _parent_name set): more/less values can be
displayed in order to have a good representation of the parent
hierarchy. That means we complete and sanitize the set of initial
field image values.
Note that the fix 8d57153b34c04952a85f6642951cb2697016da84 bringing the
notion of limit in search panel has been reverted in the present commit.
An upcomming commit will reintroduce the limit principle in a better way.
Task ID: 2154749
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>