Add a "sortBy" helper to core utils. This function takes an array and
an optional criterion as arguments and returns a new array sorted
according to the given criterion.
This commit improves the dialog that opens when a user clicks out
of an 'un-commited' many2one. It is no longer possible to edit
the value, and the sentence has been reworded.
closesodoo/odoo#49528
Task: 2234212
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
In 29f02a37f0 we bumped the verion of libsass that we use. One
breaking change introduced by the new version is that if a css variable
is interpolated to the empty string, it is still emited in the compiled
css [1]
This commit fixes that by explicitly omitting null values from the map
before looping over it.
[1]: https://sass-lang.com/documentation/breaking-changes/css-vars
task-2248360
closesodoo/odoo#50668
X-original-commit: 6faf327706169bbe31e188a42805085b95b78052
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Seems like randomly one request disappear. So 28 vs 29
Closes the eyes, while it is not 30 vs 29 ;)
closesodoo/odoo#50667
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
- Set the Product Price precision to 5
- Create an invoice with one line:
No taxes
Price Unit: 0.895
- Save
An error is raised because of an unbalanced journal entry.
The root cause is the `balance` which is not rounded. This is due to the
fact that the currency field (`company_currency_id`) is a related and
not set at the moment of computation. This leads to this being equal to
`0.01` instead of zero:
https://github.com/odoo/odoo/blob/ed1926cb12c830f383dbe540cb96e14d0804eb3d/addons/account/models/account_payment_term.py#L64
Note that if the line is saved with another value then the price unit
is modified, the error doesn't occur since the balance is properly
rounded.
opw-2209543
closesodoo/odoo#50655
X-original-commit: bd4bf1fe759a70d0b44606f1b2a3b27f8e71971d
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The currency of Ecuador is USD, ECS is archived.
Add states of Ecuador
Signs CLA
Modificando la moneda oficial de Ecuador de sucre a dolar.
La moneda oficial del Ecuador cambió de sucre a dolar en el año 2000.
introducing Ecuadorian states
Correcting previous commit according to mart-e especifications
State codes follow the ISO 3166-2. Each code is compound by two parts separated by a hyphen "-". First part is "EC" (The ISO ecuadorian code), and the second part is the ISO state code.
Correcting res.country.state file according to mart-e especifications
Adding the states directly in the l10n_ec file
closesodoo/odoo#50653
X-original-commit: 1a6b70c6c3d8d739173de59d61563b0a7aad01c3
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
In the search panel, if a select multi was grouped by a field that can
take the value 'false' (like a char field), that value would be confused
with the value false and the group 'false' would never be
displayed (its values would be put in the group false).
This commit avoids that situation by using JSON.stringify instead of
the implicit stringification done when using a value as an object key.
closesodoo/odoo#50647
X-original-commit: 5b19e6c13b636d108e8aa1a09f01124fdb38a577
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit, and in 13.0, you had access to gray colors in
bootstrap_overridden.scss files through the `palette-gray` function but
only if the gray was explicitely defined in the theme palette. This was
fine as only those were used at that time. Now, some themes want to use
the default BS gray values in those files to customize other variables.
The solution is to "force" all grays in the selected gray palette, using
the BS values by default.
closesodoo/odoo#50640
X-original-commit: fcb62edf3118d2d615296f293e6694b0e533bc99
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
It has been a recurrent request from customers to be able to send email
messages to email addresses containing non-ascii characters. [IDNA] is a
domain extension to allow unicode characters in domain names. [SMTPUTF8]
is a SMTP extension to allow unicode in any header.
IDNA defines the [punycode] encoding which translates unicode to an
ascii representation. This encoding MUST be used to encode domains.
SMTPUTF8 is an SMTP extension that allow utf-8 in all headers on the
envelope.
[IDNA] https://tools.ietf.org/html/rfc5890
[SMTPUTF8] https://tools.ietf.org/html/rfc6531
[punycode] https://tools.ietf.org/html/rfc3492
Task: 2116928
opw-2229906
opw-2248251
closesodoo/odoo#47709
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Use the new Many2OneAvatarUser field widget in some kanban views,
which allows to open a DM chat window with the corresponding user
by clicking on the avatar.
Part of task 2195254
This commit adapts several views to make them use newly defined
widgets, the new decoration-xxx mechanism on fields, and to adapt
them to the new design of buttons.
Part of task 2195254
This commit adds a tweaked version of the kanban_activity widget
for the list view. This widget displays the summary of the next
activity (and fallbacks on the activity type if there is no
summary). It can be set by defining widget='list_activity' on
field activity_ids.
Part of task 2195254
If set, this value will be displayed as column name in list views.
This attribute could be used in the future in form view for the
same purpose.
Part of task 2195254
This widget is an extension of Many2OneAvatar, designed for
many2one fields pointing to the 'res.users' model, or a model having
itself a many2one field pointing to 'res.partner'.
With this widget, when the avatar is clicked, we open a DM chat
window with the corresponding partner. If the user clicked on itself,
we open a blank chat window for the sake of consistency.
In kanban views, this widget only displays the avatar.
Part of task 2195254
In readonly, this widget displays the image of the related record
next to its display_name. In edit, it behaves exactly like the
regular many2one.
Part of task 2195254
This widget can be used on date and datetime fields. In readonly,
it displays the delta (in days) between the value of the field and
today. In edit, it behaves like a regular date(time) widget.
Part of task 2195254
Have a list view with "badge" field component and 'decoration-xxx'
attributes (on that field). Before this commit, it flickered when
the user refreshed the list (for instance, by clicking on the list
icon in the view switcher). The badges were displayed with a grey
background (i.e. no decoration) for a brief moment, before their
style was applied.
Their style is applied in the mounted hook, which is called by
'on_attach_callback' (legacy version of mounted). However, the list
renderer computes its column widths in 'on_attach_callback', which
produces a repaint.
This commit moves this operation to the end of on_attach_callback,
such that other processing (like applying the badges style) is done
before the repaint.
This new field component displays the field's value inside a
bootstrap pill badge. Supported field types are 'char', 'selection'
and 'many2one'. The background color of the badge can be customized
by using the decoration-xxx mechanism, e.g.
<field name="state" decoration-danger="state == 'cancel'" widget="badge"/>
Part of task 2195254
This commit refactors the way the decoration-xxx attributes are
applied to field widgets/components, in a way that it can be
overridden in a given field or component to generate the approriate
className. By default, 'decoration-x' applies className 'text-x'.
This will be necessary for the new 'FieldBadge' component, which
needs to apply 'bg-x' classNames instead of 'text-x'.
Part of task 2195254
In list views, one can specify decoration-XXX attributes on the
arch root node. Those decorations are evaluated for each record,
and the corresponding style is applied on rows for which the
condition is true.
This commit allows to specify those decoration-XXX attributes on
field nodes as well. In this case, when the condition is met by a
record, only the field on which the attribute is set will be
impacted.
Part of task 2195254
Buttons with icon and string attributes now have both their icon
and string displayed, whereas before only the icon was displayed
(the string was available as title).
We also force class btn-link to style buttons with icon, except if
another btn-xxx class is explicitely provided.
Part of task 2195254
Steps to reproduce:
- install sales, ecommerce and payment_authorize
- setup authorize.net (test mode)
- go to sales and select the quotation S00007 (demo data) or create a quotation
with multiple items that add up to a float
- select action > generate a payment link > go to the link > select pay with authorize
- you are redirected to authorize.net use 4111 1111 1111 1111 as card number and 1223
as expiration date > pay
- you are redirected to the odoo payment process page
- wait for the result
Previous behavior:
the user is returned to a 404 error page but the payment went trough
Current behavior:
access_token generation is consistent and will not fail because of
float representation
the user is returned to the "payment confirmed" page
WARNINGS:
- watching the values in vscode prevents bug reproduction
- when setting up authorize.net, do not forget to add your test url to
the account's allowed return urls
- use https for authorize.net connection
opw-2223135
closesodoo/odoo#50633
X-original-commit: 0fe7fa0f95b7393d8829ba4b216d6c41d0c0dc3d
Signed-off-by: mightyjol <jhk-odoo@users.noreply.github.com>
Step to reproduce : Import from Excel a list of Opportunities.
The problem is that in _compute_day_open, the abs of the extraction
date_open - create_date is set as the lead's day_open.
As the date_open has no milliseconds, all those records which
create date is the same second have a date_open that is before their create_date.
Fixed it by comparing the date_create and date_open without microsecond.
Task ID 2222251
closesodoo/odoo#50599
X-original-commit: f7d1277080a91903342bbb4be44ce3a6ca814a38
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Configure your POS with bank payment method only
Make a sale with rounding necessary (i.e. 1,29€)
The amount will be rounded. Go through the payment screen.
Error message will appear because no payment methods available is
capable of handling the change, but this is not necessary since we are
rounding.
Splitting the code to add a more specific condition in pos_cash_rounding
fix the issue
opw-2239946
closesodoo/odoo#50216
X-original-commit: 6131534da2d3a3bf75529b32f2061d58e925b365
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Use `warnings.warn` to log a warning entry on usage of deprecated
import hook instead of `logging.warning`. The `warnings` can be more
easily configured to show/hide class of warnings or to limit warning
emission, plus it is possible to log a single stack entry whereas
logging can just log the entire call stack.
Bring back the various openerp import hooks by reverting 9e1f13bac12
closesodoo/odoo#50604
Task: 2234749
X-original-commit: 5840202802c2ff6ca1ca8fd6f3892900481db5da
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Signed-off-by: Christophe Simonis <chs@odoo.com>
Ensure main Odoo models supports batch record creation.
* `purchase.order.line` supports multi creation in `purchase`, but not anymore when `purchase_stock` is installed.
* `sale.order.line` supports multi creation in `sale`, but not anymore when `sale_purchase` is installed.
* `crm.lead` doesn't support batch creation atm, but it doesn't cost anything to support it.
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#50468
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Create a service product [DEMO] with service tracking
'Create a task in a new project'
Create a sale order SO1 with User 1 with [DEMO] product
Create a sale order SO2 with User 2 with [DEMO] product
SO1 will create a task in a project, edit this task and
assign as parent task the one created by SO2
The action will be blocked by security rules, because user 1 cannnot
see the sale order data of user 2 but the action should be
allowed.
Fixing the error with a sudo call
opw-2243370
closesodoo/odoo#50585
X-original-commit: 8c7d0266cc6d7bd0569721e92128096e64d9c361
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In some situations it is important to protect the Odoo service from
direct access from the internet, or to protect internal network
resources from the Odoo server itself.
This is heavily dependent on deployment requirements, and for standard
installations on a public cloud system, this may not be necessary.
Yet it seems useful to mention it in the deployment recommendations,
as it may not be obvious to our users.
Our thanks to Ameya Darshan for raising this concern!
closesodoo/odoo#50422
X-original-commit: da0d9ef4a6e20df765a20a6231b2fcc535d0d863
Signed-off-by: Paul Morelle <madprog@users.noreply.github.com>
Side effect of commit 6d7bbd3074e6b3771b582bf544624cef59e1c6a3. In case we are coming from public route /shop/address,
we are in superuser mode and method _get_default_team_id can return a sales team
from another company. We should force the domain to avoid creating inconsistent records.
closesodoo/odoo#50581
X-original-commit: 0396c04ce894df80fb7714edb06e9befebdb672e
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Alex Tuyls <alt-odoo@users.noreply.github.com>
If an action has for instance twice "tree" in view_mode, you get a crash
when displaying the action.
This patch adds a python constraint on the model which will prevent such
change.
closes odoo/odoo#50189
Opw: #2241415
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>