Steps to reproduce:
Open a POS session and add an order with a few items on it, but
don't submit a payment for that order.
Exit, close and validate/post the POS session
Open another POS session
Current behavior:
The unpaid order vanished into Never Never Land, never to be
found again.
Expected behavior:
Either an error should be displayed when trying to close a
session with outstanding orders, or any open orders should
be automatically moved to the next open session. If I had
the choice, I would much prefer the second option, plus a
warning message when closing the session.
Closes https://github.com/odoo/odoo/issues/16151
TAK-ID: 1918354
closesodoo/odoo#33395
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Since changes made on decimal precision access rights in rev: a1eb000c93
the pos user doesn't have access anymore to decimal precision model in
read access.
So we've added the read right on this model for the pos user.
This commit introduces a small helper to return
a timedelta given a quantity and a time unit (day, hour,
month, ...)
Task-2024216
closesodoo/odoo#34576
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
In some module, we gonna need to display time part in name_get. So,
it is interesting to have a helper doing that for us. Time part label
depends on the language, format, and timezone.
This commit introduces this tool, based on `babel` lib like the
other helpers. Tests are provided.
Task-2024216
In fiscal position, fields from 'ZIP range' were not supporting the ZIP range with 'char' field and only support 'integer'. It was a problem in some countries like Canada.
task 1948120
closesodoo/odoo#31910
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Also make a base performance class for some context and users in order
to lessen a big file size.
closesodoo/odoo#34547
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Before this task, when a customer bought a course, he was directly
redirect to the checkout process.
After this task, the customer can either Add to Cart or Buy Now
(if the Buy Now option is activated)
This commit also updated the redirection regex in website_sale_product_
configurator. When a product has an optional product, you have the possibility
to add in your cart the optional product thanks to a modal. Before, the button
"Add to Cart" was only available in the shop (/shop/), but now it is also
available on a course (/slides/). So to be redirected on the cart when we
click on the button "Proceed to Checkout" for a course, we needed to apply the
redirection also for the course.
Linked to task 1974929
Related to PR #34224
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Now we can have eCommerce and eLearning without automatically willing to
sell courses. The auto_install in the manifest was also blocking the
possibility to uninstall the module. When we tried to uncheck the option for
selling course, it reinstalled it just after we had saved the change in the
settings.
Linked to task 1974929
Related to PR #34224
Before this commit when you set a partner image whose height was greater
than it's width, it used to get squeezed into a square. After this commit
we prevented partner image from being squeezed into a square.
Task ID: #1982082closesodoo/odoo#33134
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The decimal precision feature makes sense to be an ORM feature, no need to be
in a specific module.
The limitation was also that models like res.currency were not able to use a
decimal precision as this was raised at #19668
Keep a backward-compatible signature with a warning.
Task id: 48198
Closesodoo/odoo#25467
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Since previous commit moved decimal_precision module's feature into base,
use the new syntax for fields declaration
Remove the imports to the removed module
Remove the module from dependency in manifest
sed -i "s|digits=dp.get_precision('\([A-Z a-z]*\)')|digits='\1'|" **.py
sed -i "/from odoo.tools import decimal_precision as dp/d" **py
As the decimal_precision module was removed, allow code like
from odoo.addons import decimal_precision as dp
fields.Float(digits=dp.get_precision('Foo')
to keep working
Co-authored-by: Olivier Dony <odo@odoo.com>
The decimal precision feature makes sense to be an ORM feature, no need to be
in a specific module
Previous syntax was
from odoo.addons import decimal_precision as dp
fields.Float(digits=dp.get_precision('Foo'))
and now is:
fields.Float(digits='Foo')
Remove the possibility to have a callable method on the digits attribute (it
was only used for precision anyway) and directly retrieve the digits on the
decimal.precision model
Rename the method digits to get_digits to avoid confusion between the field
attribute when declaring a field and the method to retrieve the precision
Task id: 48198
The formatLang method used to accept a value that has a _field parameter
This was introduced in 2010, at 6b19c64976 and is no longer used
Removed it to make the decimal_precision migration easier
These variables aren't used in Odoo and can be easily computed
anyway.
Also deprecate the support of integer values for t-foreach, for the
same reason.
closesodoo/odoo#33981
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
For 3000 lines (3 for 1000 products):
- 35s before this commit
- 22s after this commit
Gain around 30%
closesodoo/odoo#34295
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
In a list/kanban view when applying a default_order on the view, it does not
work with favourite filter
Before this commit,
1) The default_order was not applied to the view when favourite filter is
applied
2) when default_order applied, Click on an element of the list/kanban and
then go back to the list/kanban with the breadcrumbs, default_order has been
changed.
This is because the ```_getOrderedBy ``` returns [] when favourite filter is
applied and it does not have sort value, added check if favourite has orderedBy
and has length then and only then pass orderedBy else pass undefined
After this commit,
1) default_order will be applied to the view
2) default_order will not be changed when going back through breadcrumbs
task-1922576
closesodoo/odoo#34001
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
On Inventory Adjustment lines view, when you set serial number for a
tracked product, its quantity is automatically set on 1.
Task #2025397closesodoo/odoo#34301
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
Purpose
=======
This commit adds the attempt number on the answer (= survey.user_input)
form & tree views.
The attempt number is always relative to its "pool" of attempts and
depends on the "invite_token" if specified.
ex: Attempt n° 2 / 4 (where "4" is the attempts_limit of the related survey).
closesodoo/odoo#31771
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
As the source is not displayed, it makes sense to prefill the values with the
source. Also, English translations are now created (English should not really
be different than other languages) so it is prefilled with the src value.
closesodoo/odoo#33623
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
The goal of this change is to allow the user to stay in the form view and edit
the translations in one go.
Generate also English translations to make the source=English a bit less true.
It was already the case for callable translations method
Adapt the test that was ambigious (verified no French translation was duplicated
but an English translation is created)
Purpose of this merge is to prepare upcoming SMS refactoring by
already pushing some tools, cleaning and tests in master.
Contained in this merge
* improvement of phonenumbers library tools and usage in SMS;
* addition of SMS test classes with tools and mocks;
* addition of SMS tests;
See sub commits for more details. Related to task 1922163.
closesodoo/odoo#34516
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of this commit is to improve and add tools, methods and data to test
mail and SMS features. We also add tests for current implementation of SMS
feature, allowing to better understand future changes.
[ADD] test_mail_full
* have a module depending on mail sub-applications like sms or snailmail.
Its purpose is to check that standard mail features work effectively with
all overrides and extra behaviors activated;
* add a new model specific for SMS gateway, with default recipient
computation;
* add SMS tests for SMS module adding SMS capabilities linked to mail
feature. This commit tests SMS feature before the upcoming refactoring
and improvement of SMS module in community: posting with SMS and sms
composer usage;
In test_mail
* add necessary mobile information on test partners;
* improve assertBusNotification that was not correctly asserting all items
in message of bus notifications;
In sms
* add mock for SMS sending. Purpose is to mock the connection to IAP
services by mocking the call to IAP server. It allows to perform SMS
tests without having to contact (and pay) for this service;
* allow some customization when calling the SMS gateway mock to simulate
errors and test corner cases;
Related to task 1922163
Linked to PR #34516
Purpose of this commit is to support more formatting options in phone tools,
to provide new API methods for phone numbers validatio. It also introduces
a method on sms.api to send SMS in batch. This one uses a new route given
in IAP services that send a batch of SMS instead of sending them one by one.
Concerning phone validation, tools are updated to correctly handle all
format supported by phonenumbers library. Indeed in addition to national
and international formatting phonenumbers library also supports E164
(international without spaces) and RFC3966 (beautification of phone numbers).
Let us support them and ease the use of our small tool methods in various
addons, notably sms.
Cleaning / check tools methods are added in phone validation module. Various
methods allow to sanitize phone numbers according to a context record and/or
some parameters. Those tools will be used in upcoming sms refactoring.
Another purpose of this commit is to add phone_validation in dependencies
of SMS application. Phone_validation module adds tools to parse and format
phone numbers and allow to replace the manual check done currently. Adding
it in dependencies of SMS does not change anything functionally as
* library is still optional. If phonenumbers library is not installed the
features are skipped without crashing;
* no model is modified as it introduces only tools and a mixin. Models are
updated in crm_phone_validation that updates lead and partner models;
Related to task 1922163
Linked to PR #34516
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
Co-Authored-By: Pierre Rousseau <pro@odoo.com>
Purpose is to prepare future improvements in mail and SMS module. In this
commit we apply some guidelines on XML Ids and file naming.
In mail cancel wizard code is separated from the resend one as they have
nothing in common.
More importantly ``sms.send_sms`` model is renamed to ``sms.composer`` to
avoid underscores (which is really really bad, take a look at
ir.config_parameter) and have a meaningful name.
Related to task 1922163
Linked to PR #34516
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
Co-Authored-By: Pierre Rousseau <pro@odoo.com>
Product "Update Quantity" button can open the "Change Product Quantity"
wizard if all advanced stock options (stock locations, assign owner,
tracking by SN/LN, packaging) are disabled.
Task #2006337closesodoo/odoo#33873
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
On editable list quant view, when user come from a single product (one
specific product variant, or product template with no variants), the
`product_id` field is hidden.
Task #2006337
All of those fields `__get__` and method calls have a cost, it is small but when
done for many records it adds up, so they are better not done.
When creating 1000 products without image, this compute takes:
47ms +/- 1ms before the commit
37ms +/- 1ms after the commit
That's around 20% less.
Part of task-1918881
closesodoo/odoo#34294
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
If `self` contains around 1000 records, this reduces the time of the method by
a factor of 10 when `read` is necessary, and by 200 when using the values from
`vals_list` and no additional query is needed at all.
This speeds up the creation of all models using `mail.thread`.
Part of task-1918881
closesodoo/odoo#34274
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Add comment on both methods to clarify their goal.
Remove the unnecessary check. Indeed the `product.template.attribute.value` is
not displayed during the variant set up of the product template so there is no
point to check the context for it.
Update the view to apply the context change also for the search result. Indeed
the context change on the o2m itself didn't propagate so the attribute was
displayed unnecessarily on the search result.
closesodoo/odoo#34187
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Before this commit, during a module uninstall, module data would be
unlinked in a record-by-record basis, this was done this way for two
elementary reasons:
- To guarantee an unlink order, as some module data being deleted
might only be deleted if some other module data has already been
deleted.
e.g. [a, b, c, a] -> we could batch unlink both `a` in the
list, however the second `a` could depend on the unlink
of either b or c, making the groupby erroneous.
- To create a savepoint before every module data unlink (record), so
that in case it fails, we can simply skip it and proceed with the
uninstall.
After this commit, batch unlink of module data is now possible without
losing the aforementioned key features.
- The first problem is fixed by using `itertools.groupby`, which
will group **adjacent** data of the same type and unlinks them all
in batch while guaranteeing correct unlink order.
e.g. [a, a, a, b, b, c, a, c, c, c] -> this will unlink in
batches of [a, a, a], [b, b], [c], [a], [c, c, c]
- The second problem is fixed by making a savepoint per batch, if
a single element of the batch fails and the recordset contains more
than one element, we split the recordset into two and we repeat the
unlink process recursively until we weed out the undeletable record
Real world example: l10n_mx_edi takes 20min to uninstall because it
contains a lot of master data (~55k records), with this patch the
uninstall takes a measly 20s.
It should generally reduce the uninstallation time for all modules, but
those with lots of master data will see greater benefits in terms of
time.
opw-2025895
closesodoo/odoo#34435
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Before this commit, it was impossible to know which view was the one searched
if there was COW views.
Indeed, since multiwebsite, views might get duplicated from one website to
another. Then, when searching for an ir.ui.view in a form view, every
duplicated view would be listed next to each other with the exact same name
without a way to identify which one comes from which website.
This commit will suffix the view name by its website_id if there is one.
To do so, we use the context key that has been introduced with 62d73253f3.
task-1920052
closesodoo/odoo#33307
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
File `calendar_mismatch.scss` was wrongly in a `css` folder
while it should be in a `scss` folder according to the guidelines.
And set the correct `type="text/scss"` instead of `type="text/css"`
for a .scss file.
closesodoo/odoo#34478
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Commit f17655d introduced a new file (`views/assets.xml`) in
the manifest to load a new scss file. But it also deleted from
the manifest an existing file (`views/hr_contract_templates.xml`)
without moving the content from removed file to the new file.
Hence, style defined in `calendar_mismatch.scss` was never loaded.
Purpose
=======
Since the new company switcher, it's now easier
to manage records of different companies.
Specification
=============
Add a multi company `ir.rule` for `fleet.vehicle`.
closesodoo/odoo#34426
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
If we were using Units of Measure before, the pos order line didn't show what unit we were using. Now we display the Units of Measure in the order line if the option is active.
TASK-ID: 2001995
closesodoo/odoo#33915
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
This makes the media easier to sort than manually manipulating their sequence.
task-2029597
closesodoo/odoo#34440
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>