Prior this commit, the `ChatWindowHiddenMenu` had a fixed width and the
`windowCounter` was truncated when the number was higher than 9.
Also, when the `unreadCounter` was displayed, it was partially hidden by
the chat windows.
After this commit, this element uses a fluid width and is in front of
the chat windows to correctly display the `unreadCounter` badge.
task-2781992
closesodoo/odoo#86244
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
PURPOSE
Cleanup and improve test coverage in test_mail(_full), notably about composer,
message_post API (and its sub-methods) and attachments management.
SPECIFICATIONS
Improve tooling of mail tests. Use SMTP mockup class available in base tests
in mail tests to have a better and simplified mock tool when dealing with
mail tests. Remove old fashioned code.
Add tests related to mail failure management and its effect on mail.mail
and related mail.notification records.
Cleanup and improve composer-related tests. As composer will soon be improved
better ensure we don't break flows.
Cleanup and improve post-related tests. As composer and posting methods will
soon be improved better ensure we don't break flows.
Add some first tests about rating and rating mixin:
* rating preparation: token, information from the record to rate;
* rating apply: posting message, author;
See sub commits for more details.
LINKS
Task-2673913 (TestMail: Cleanup and improve test coverage)
Task-2704390 (TestMailFull: add first rating tests)
Prepares Task-2088884 (Mail: Composer Onchange to Editable Computed Stored)
Prepares Task-2710804 (Mail: Clean MailThread API)
Prepares Task-2684479 (Mail: Better send errors management)
Prepares Task-36879 (Mail: Support MultiCompany Aliases)
closesodoo/odoo#86393
Related: odoo/enterprise#25267
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of this commit is to add some first tests about rating and rating
mixin. Indeed those are not really tested by standard python unit tests.
In this commit we add tests about
* rating preparation: token, information from the record to rate;
* rating apply: posting message, author;
Task-2673913 (TestMail: Cleanup and improve test coverage)
Task-2704390 (TestMailFull: add first rating tests)
Part-of: odoo/odoo#86393
Purpose is to add some query counters tests in test_mail_full that allows to
test more complete flows. Soon portal and rating will be added as dependencies
to see their potential impact. This also serves as a basis for adding new
tests with all sub mail modules in a near future.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
PURPOSE
Cleanup and improve post-related tests. As composer and posting methods will
soon be improved better ensure we don't break flows.
SPECIFICATIONS
Cleanup tests added for message_post and the related API (notify, log, with
view or template, ...) as well as sub-methods (notify, recipients computation
and classification, ...).
Use existing tools, reorder and add some details check on content. Add some
tests with attachments, notably with main_attachment management.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
PURPOSE
Cleanup and improve composer-related tests. As composer will soon be improved
better ensure we don't break flows.
SPECIFCIATIONS
Cleanup existing tests: rename, make it use tools, reoder them.
Add some tests about composer in order to better spot changes and differences
as well as to help debugging mail composer code update. Notably add tests
with Form tool, add tests for reply-to computation, auto-delete, mail server.
Performance tests about composer are added, notably using the Form tool. This
helps determining differences between creating / manipulating a composer in
code and in UI. Indeed notably onchange and some side effects may lead to
different query counters, which is the case as highlighted here. Tests
involving attachments are also added to see their impact on posting process.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
PURPOSE
Purpose of this commit is to add a company field on test mail models used to
replicate ticket / project behavior (``mail.test.ticket`` and ``mail.test.
container``).
SPECIFICATIONS
To avoid messing with existing tests and ease comparison through all Odoo
versions (notably performance) this is done by adding new models inheriting
from current mail models. A company_id field is added as well as MC rules.
Those models will be used to add tests for mail thread behavior in a multi
company environment (aliases management, performance, emails and notification
layouts, ...).
In this commit we also update ACLs for ticket-like models to add rules for
portal users, based on followers. This mimics classic rules from Odoo used
notably in a light project-like environment. This allows to test a bit more
in details recipients, access tokens, links in emails, ...
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
PURPOSE
Add tests related to mail failure management and its effect on mail.mail
and related mail.notification records.
SPECIFICATIONS
Test wrong configurations when sending emails (email_from, email_to) and/or
use mocks to enable sending issues (SMTP issues, Memory errors, assertion
errors, ...) that may happen when sending emails.
Add unit tests for as much use cases as possible to assert current behavior
even if some tests show that it is not always accurate. Notably
* invalid / missing email failure types that are not correctly distinguished
even if it should;
* email_from invalid value goes a bit incognito;
* sometimes mail is marked as sent even if it was not sent;
Future commits will (probably) fix or improve behavior while impacting as
less as possible the global behavior of the outgoing gateway that is quite
tricky to modify.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
PURPOSE
Improve tooling of mail tests. Lessen custom code, try to use same tools
in all tests.
SPECIFICATIONS
Use MailCommon as a base class for performance test. It now uses the same
boilerplate as other tests, leading to easier to reproduce and understand
testing setup.
This notably now adds outgoing mail servers which means adding one query
to some tests involving emails.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
mail_* = mail, test_mail, test_mail_full, test_mass_mailing
PURPOSE
Improve tooling of mail tests. Use SMTP mockup class available in base tests
in mail tests to have a better and simplified mock tool when dealing with
mail tests. Remove old fashioned code.
SPECIFICATIONS
Include ``MockSmtplibCase`` directly into ``MockEmail`` so that we re-use
existing components for mocking outgoing emails. Also make parameters for
gateway coherent between those two classes (use same test values).
Remove 'sim_error' weird parameter of Mail ``mock_mail_gateway`` and use
standard mock 'side_effect' instead in some specific tests, notably on
SMTP.connect() mock.
Add some assert / tools method and improve existing tools, used for creating
or improving test data. This will be used in future commits when adding new
tests.
Add outgoing mail servers data in mail tests, allowing to make tests closer
to real life use cases.
Remove unnecessary calls to ``_init_mail_gateway`` as it is automatically
done in ``MailCommon.setUpClass()``.
Try to consolidate starting test data, notably with countries, phone numbers
or email in mind to be sure test mail are deterministic.
Task-2673913 (TestMail: Cleanup and improve test coverage)
Part-of: odoo/odoo#86393
Activity-level feedback method accepts attachment_ids but not its mixin-level
counterpart. This commit fixes that by adding the parameter. The activity-level
action_feedback_schedule_next method now also accepts attachments in addition
to the feedback, making the API coherent through all entry points.
At activity level ``action_done`` now goes through ``action_feedback``. This
means it now has two main methods
* ``action_feedback``;
* ``action_feedback_schedule_next``;
All methods finally end up calling ``_action_done`` and correctly propagate
feedback and attachments. We have a bit less entry points with possible API
changes.
Test mail models are updated to be able to use this small addition.
Task-2710804 (Mail: Clean MailThread API)
Part-of: odoo/odoo#86393
This fixes the how general discounts and product discounts are represented in the Italian EDI.
Previously, discounts were erroneously calculated and represented on several invoice lines not linked to the product.
Now, cascading discounts are summaries as 1 percentage discount for products and 1 amount for the general discount.
closesodoo/odoo#85863
Task: 2764978
X-original-commit: 5769f13e48c5b68bf19fc82377b9ea716ea4a85e
Signed-off-by: Josse Colpaert <jco@odoo.com>
The contact widget supports displaying VAT but it was added manually in the reports after contact. This commit fixes this behavior and results in fewer code and an easier way for the l10n modules which may modify VAT display.
closesodoo/odoo#83733
Related: odoo/enterprise#25195
Signed-off-by: Laurent Smet <las@odoo.com>
Have a CL company setup
Issue an invoice
Then generate the credit note via 'Add Credit Note' wizard
Add a reason (credit method is locked to 'partial refund') and confirm
Error will raise “You can not use a invoice document type with a refund
invoice”
This occur after
https://github.com/odoo/enterprise/commit/9e049b833b23809e4287ef61ddf7482413debefd
We now fall back to the logic of l10n_latam_invoice_document
which, in turns, fall back to the l10n_cl, ignoring the 'credit_note'
case.
opw-2794515
closesodoo/odoo#87116
X-original-commit: c9ff9d28ab75c02093ca54d9fbd1d2e203c5ee2e
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Grazioso Andrea (agr) <agr@odoo.com>
Now that message list view exists, it should be used whenever possible, in
preparation of future commits.
Part of task-2801089
closesodoo/odoo#87113
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
From the last refactoring #78857 it was no longer possible to run the odoo server on an iot
With this commit we change the override of the db_list function
And and reload the driver controllers
closesodoo/odoo#86665
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Before this commit, if the user has read only access to a record:
- User could see 'Add Followers' button, which raised AccessError
- User could see edit and remove icons but performing these actions
for followers other than one related to logged in user, it also
raised AccessError.
With this commit, we are restricting it based on the user rights, if
the user has read only access to a record:
- 'Add Followers', subtype edition(pencil icon) and follwer removal
buttons will be visible only for the follower related to logged in
user, not for others. This way we can avoid the unexpected
AccessErrors.
Note that if user is having write access for the record, nothing
changes.
task-id-2447776
closesodoo/odoo#70575
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The test `test_assign_count` may fail randomly leading to the error:
```
self.assertEqual(self.sales_team_1_m3.lead_month_count, 14)
AssertionError: 12 != 14
```
Since BUNDLE_HOURS_DELAY is 0 (during tests), the domain becomes
`[('create_date', '<', fields.Datetime.now()]`
Depending of the time when the transaction starts, and the tests is
executed, the domain could match more or less records when executed one
second earlier or later. This is especially True for single module build
where there is less logic and the execution is faster. The domain may be
tested earlier and match less records.
This error can be reproduced deterministically by setting
`BUNDLE_HOURS_DELAY = 1/3600`
A fix could be to ignore ignore the create_date domain if the
BUNDLE_HOURS_DELAY is 0, we want to match all records in theory
(except if some of them are created in the future...)
The chosen solution is to use cr.now and use a <= instead.
Some assertions where also added to the test in order to identify why
the count was different and give a more precise message when it fails.
```
AssertionError: Lists differ: [] != ['TestLeadInitial_0000', 'TestLeadInitial_[97 chars]006']
Second list contains 6 additional elements.
First extra element 0:
'TestLeadInitial_0000'
- []
+ ['TestLeadInitial_0000',
+ 'TestLeadInitial_0001',
+ 'TestLeadInitial_0002',
+ 'TestLeadInitial_0004',
+ 'TestLeadInitial_0005',
+ 'TestLeadInitial_0006']
```
task-2796579
closesodoo/odoo#87107
X-original-commit: 4a5b68f05c57ba36560d43733dfd04b67c3297a8
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Currently, a cron is called once a day (by default)
to merge duplicated quants. Moreover, each
time the customer loads the Inventory Report,
the duplicated quants are also merged.
This is a bit overkill as duplicated quants
due to concurrent updates are quite rare. Also,
merging quants can be quite slow when the stock.quant
table is big (>1M).
This commit adds an ir.config_parameter to turn
off the merging of quants when accessing the
Inventory Report. It can be switched back on
for a specific DB if duplicated quants happen
more frequently.
opw-2574152
closesodoo/odoo#87119
X-original-commit: bb2cb76a724c1bc12aa7e515b1376b88ffd97b3d
Signed-off-by: Arnold Moyaux <arm@odoo.com>
Before this commit:
Attachment viewer download and print buttons not working for guests.
After this commit:
Attachment viewer download and print buttons will work for guests.
Task-2664842
closesodoo/odoo#87025
X-original-commit: 191a4b21a446d17a5090481b16f3de56a57f611e
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Thread/hasComposerThreadTyping is always set to boolean, so never `undefined`.
Task-2793280
closesodoo/odoo#86965
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
PURPOSE
Cleanup all the places where an hour or a datetime is been used to
display with the date the corresponding timezone.
SPECIFICATIONS
Display the timezone of the event next to each datetime. For the event
main page and the track/agenda pages, we display the timezone next to
each date unless the timezone of the visitor is the same as the event.
We also introduce a new "time" qweb field converter. It is used to display
a float value into a real "time" (not duration).
Task-2458013
closesodoo/odoo#78049
Related: odoo/enterprise#21543
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Cleanup all the places where an hour or a datetime is been used
to display with the date the corresponding timezone.
The goal is to know the timezone used where a datetime is displayed
on the event pages.
task-2458013
COM PR: odoo#78049
Part-of: odoo/odoo#78049
Purpose
=======
Avoid showing the "Correct Answer" field if the survey is not scored
(for question type numerical, date or datetime). Since it is the only
field on this page, hide the page completely.
Task-2795296
closesodoo/odoo#87074
X-original-commit: 71af5dfc69dfb22b3700986c16fa116447d06796
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The total ordered quantities on a delivery slip with order lines of the
same product was wrong + this PR
https://github.com/odoo/odoo/pull/83591 was incorrect, the undelivered
products should be displayed once
Steps to reproduce:
1. Install the Sales and Inventory app
2. Create and confirm a sale order with two order lines, both with the
same product
3. Go to the delivery and confirm it with all demands met
4. Print the delivery slip
5. The ordered quantity of the product is wrong, it should be equal to
the delivered quantity
Solution:
Use all empty moves in package-less products
`qty_ordered` = `qty_done` when in a package (the potential remaining
quantities will be displayed in the package-less products or in the
backorder section) or when there is no backorder (as the undelivered
products will either be added to the package-less products section or
the ordered quantity will be incremented later)
If we are not in a package and there is a backorder, adapt the ordered
quantity to remove the quantity of the packages considered before
Convert `qty_done` to the UoM of the stock move
opw-2722203
opw-2758840
opw-2782572
closesodoo/odoo#87072
X-original-commit: 332ec796ac77c8383a04a924508013c735f67d1e
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
Since #73341 copy_data is filtered to avoid leaking information to portal user.
Partically, it makes custom field not copiable.
Fix it by disabling the filter for internal users. This may lead to a problem
with hacky field `personal_stage_type_ids`. To avoid extra complexity in the
code, just mark it as `copy=False`. The latter change is kind of an improvement
from functional point of view, since using default personal stage seems to be a
better idea rather than copying the stage.
---
opw-2746922
closesodoo/odoo#87064
X-original-commit: 9947e82c5c25cde030aca43f7eb6fe1293300329
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
Before this commit, the view service kept the same cache information
even thought favorite filters would be created or deleted. This caused
inconsistencies when the interface tried to reload views that would
access the cache and display outdated information.
Now the related views cache keys are invalidated when favorite filters
are created or deleted.
closesodoo/odoo#76507closesodoo/odoo#87031
X-original-commit: 84e260e4ecad5116def4d9dcdd0b35d7e87fa45d
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Reproduction:
1. Change Document layout style to "Boxed"
2. Creating a PO with long descriptions for each product, make sure the
report is at least 2 pages
3. Send By Email (use default RFQ template)
4. In chatter, open the RFQ pdf file-> go to second page -> the
descriptions overlap the header
Reason: like a fix from previous bug in sale order report, the header is
removed in subsequent pages to avoid overlapping
Fix: set the header to row group, keep the new change in master too
opw-2779427
closesodoo/odoo#87026
X-original-commit: dece57d1c8e7d0a86c58802459434c02d53ecb58
Signed-off-by: Arnold Moyaux <arm@odoo.com>
Signed-off-by: Liu Jinjiu (jili) <jili@odoo.com>
The purpose of this commit is to allow the removal of the search value
without removing the namespace.
Use case before this commit:
1. I perform a search in the homeMenu;
2. The command palette opens with "/" + my search;
3. I realise that my search is wrong and I would like to delete its
contents;
4. I press control+a to select the content of my search;
5. I press the backspace key;
6. The "/" and my search is deleted;
7. I perform a new search;
8. I realize that I forgot to add "/" at the beginning.
This commit will remove the namespace from the input which will allow
the user to delete the search without adding the namespace.
If the user wants to remove the namespace, they will have to press the
backspace key with an empty input.
If the user wishes to change the namespace, they will have to start
their search with that namespace. This will be removed from the input
and replace the old namespace.
closesodoo/odoo#86926
Task-id: 2768527
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>