Commit Graph
151327 Commits
Author SHA1 Message Date
aliya 9d2875492b [FIX] account: fix payment widget (exchange difference)
Task 2843455

When an exchange difference is linked to a payment, not an invoice,
it is not displayed in the payment widget even though an exchange
difference move is created and matched with the invoice.
Exchange difference should be displayed when it's linked to the payment as well.

closes odoo/odoo#92069

Signed-off-by: Laurent Smet <las@odoo.com>
2022-06-15 11:09:49 +02:00
Laurent Desausoi (lade) 4272374505 [FIX] mail: properly place dropdowns in Kanban Activity views
For the kanban_activity view (e.g.: in the CRM module), when we have enough
entries to require the scrolling, dropdowns are not displayed at the correct
location.
Furthermore, in kanban views, when dropdowns are opening on the edge of the
parent element (e.g.: in Documents), the dropdowns are partially hidden and not
accessible by the client.

Step to reproduce the issue:
1) Install CRM and Documents module
2) Go to CRM and create multiple leads with at least one activity
3) Go to the Activity view and scroll down and click on an item. The dropdown
is not placed at the correct location -> BUG 1
4) Go to the Documents modules and check the activity (the small clock icon)
of a Document on the right most column. The dropdown is hidden by the
description of the file.

Solution: Firstly, the parent container of the Kanban Activity view did not had
the `overflow: auto` property activated. Consequently, while the children were
somehow taking all the spaces of the screen, Popper (the third party that
handles the dynamic positioning of the dropdowns) was wrongly computing the
positionning.
Secondly, dynamically creating the dropdown via Javascript (through the
JQueryInterface of the Dropdown class in Bootstrap) somehow allows to fix the
issue in Documents. Consequently, it is important to keep them into the
Javascript and not move the arguments into the XML.

opw-2827873

closes odoo/odoo#93661

X-original-commit: 38fa6a70b70dac0d511be7952c496a5178f9c40e
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
Signed-off-by: Desausoi Laurent (lade) <lade@odoo.com>
2022-06-15 10:00:25 +02:00
Martin Trigaux ad5e6f1111 [FIX] mail: send emails only once for each batch
If a list of emails is bigger than 500, the email was sent several
time to some people.
The mail_values content was not reset between each batch, so if 1200
emails are sent, 3 mail.mail records were created for the emails in
the first group.

closes odoo/odoo#93658

X-original-commit: f838a0cc36e51e0f47daeec6522df8e9832aad2c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-15 10:00:20 +02:00
pedrambiria d3f3f44f7a [FIX] microsoft_calendar: fix the DateTime range
Before this commit, the DateTime range for getting events was six years,
while the Microsoft range limit is five years.

opw-2819858

closes odoo/odoo#93657

X-original-commit: 56f9b7646269d953c3068a12f20436d3afc970b1
Signed-off-by: Arnaud Joset <arj@odoo.com>
Signed-off-by: Pedram Bi Ria (pebr) <pebr@odoo.com>
2022-06-15 10:00:16 +02:00
Pierre Masereel 0c555b6b5a [FIX] point_of_sale: stop creating double picking on pos order refund
When you are in anglo saxon accounting with posting stock changes at the
end of the session, we get an issue by using the refund feature in
backend.

If you have an order invoiced, and want to refund it, it'll create the
picking of the order immediately, which is not normal as it should only
be done when there is an invoice.

The problem is that the value of the field 'to_invoice' from the
original order is copied to the refund, and so act as the invoice is
made for the return.

To avoid this behavior, we are avoiding to copy it.

OPW-2848356

closes odoo/odoo#93645

X-original-commit: e8ef74397c0b02d051823142c3457413aabfeb21
Signed-off-by: Masereel Pierre <pim@odoo.com>
2022-06-15 10:00:12 +02:00
Florian Vranckx aedf8be34d [FIX] purchase: fix bank info on vendor bill based on po
Steps to reproduce:

        - Install puchases, accounting, contact
        - Create a new company with a bank account
        - Create a new person contact linked to the previous company
        - Make a purchase order from that person
        - Make a vendor bill using the auto-complete as the previous PO

Issue:

        The bank account field is not filled

Cause:

        The _prepare_invoice function tries to grab the bank information
        from the contact on the PO. But in the case of a person of a company,
        this information is stored in the parent company. Resulting in an empty
        value

Solution:

        Use the field "comercial_partner_id" to get the bank id. As this field
	will use the parent company if the current partner is a person.

opw-2849706

closes odoo/odoo#93487

X-original-commit: c5f94e84dd5d6ec108484425d348053961bd13ff
Signed-off-by: Grazioso Andrea (agr) <agr@odoo.com>
Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
2022-06-15 10:00:08 +02:00
Julien Van Roy 72c4972efd [ADD] {account_edi_ubl_cii,l10n_account_edi_ubl_cii_tests}: support common UBL and CII edi formats
This commit aims at unifying the UBL formats for invoices and credit notes.

Starting from the work of LAS, the module account_edi_ubl_cii contains the templates for UBL and CII,
and provides inheritance for UBL: UBL 2.0 < UBL 2.1 < UBL Bis 3.
It contains also the formats E-FFF, EHF3 (fully covered by Bis 3), NLCIUS, XRechnung (in UBL), Factur-x (the only one in CII).
All these formats are also improved to pass the ecosio validator and/or the country specific validator
(for Factur-x: the validator from the FNFE, and Chorus Pro).

Note that the xml files generated contain the pdf of the invoice/credit note encoded in base64.
An xml file alone imported in Odoo will thus automatically retrieve the pdf.

Before generating the xml files, we now also check a series of known constraints and possibly display
a warning on top of the move view if some are not enforced (the xml file is generated anyway but it might not be valid).

Tests were required: a new module was needed with dependency to the tested l10n: l10n_account_edi_ubl_cii_tests.
The prefix "l10n_" prevents runbot from launching the tests everytime.

The following modules are removed:
* account_edi_facturx
* account_edi_ubl
* account_edi_ubl_bis3
* l10n_no_edi
* l10n_nl_edi
* l10n_be_edi

Task: 2628093
See also: odoo/upgrade#3581

closes odoo/odoo#93135

Signed-off-by: Laurent Smet <las@odoo.com>
2022-06-15 10:00:03 +02:00
Umesh Gupta 273a0b4a7a [IMP] crm: display correct team count while creating a stage
Currently, when creating a new stage, even if there are sales team(s)
available, the `team_count` always displays zero, because it is a
computed field but is not dependent on any other field.

This commit improves the behavior by small hack, which makes the
compute method dependent on `team_id` field so that it can be
triggered while creating a record.

taskID-2819559

closes odoo/odoo#88738

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-15 09:59:57 +02:00
D J 010ae983ea [IMP] base: allow company selection while creating a user
Currently, when creating a new user, even if there are multiple
companies to select from, the  "Multi Companies" related fields are
not visible in the form view. However once the record is saved, they
simply appear. This happens because the `companies_count` field based
on which the visibility changes, is a computed one but is not dependent
on any other field, and so while creating a new record, the value is
always zero for our compute field.

This commit improves the behavior by making the compute method
dependent on `company_id` field so that it can be triggered while
creating the record (thanks to default value being set for this field),
and thus shows / hides the company related fields properly.

taskID-2819559

Part-of: odoo/odoo#88738
2022-06-15 09:59:56 +02:00
Thibault Francois 13eab9aa84 [FIX] sale_crm: fix default value for team_id
When create a sale order from a opportunity the default value
for the team_id was wrong and thus the team_id was not properly set

Solution
--------
Return the id of the team not a tuple that contains the id of the team

closes odoo/odoo#93631

X-original-commit: 9c172745dcb9aa755079e2b63a7e9e69442b867f
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-15 08:21:45 +02:00
John Laterre (jol) dbc9836dff [REV] l10n_nl: set 'Cost of Revenue' in allowed account types for Vendor Bills journal created for a l10n_nl chart of account
This reverts commit f4235243700d4a52117ca6750c44afb10142bf42.

This commit introduced an unwanted effect, by using the
`type_control_ids` to allow an account type on a journal.

But it was intended as a constraint, to limit the account types
allowed on the journal and exclude all the others.

In this case, by allowing the type of the account
`data_account_type_direct_costs`, it also excluded all other
account types on the Vendor Bill journal.

closes odoo/odoo#93668

X-original-commit: 60aa39ab988434a80993e503e28a5f4f9a49f815
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: John Laterre (jol) <jol@odoo.com>
2022-06-15 06:10:33 +02:00
Aaron Bohy a715e63b88 [IMP] mail,web: tests: crash if triggerEvent called on invisible el
Before this commit, the test utils that trigger an event (e.g.
click) didn't check whether the target of the event was visible.
As a consequence, when writing a test, one might trigger an event
on an invisible and undesirable target, and don't understand why
it doesn't work due to the absence of feedback. This commit
improves that situation by throwing an error in those sitations.

Obviously, some tests relying on the former behavior needed to
be slightly adapted.

closes odoo/odoo#93549

Related: odoo/enterprise#28360
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-06-14 22:07:08 +02:00
pasa-odoo 94f6ad26f1 [FIX] sale_loyalty: replace the deleted mail template from default_get
The provided default `mail.template` does not exist anymore, which was leading
to an empty message.

This commit, sets the right `mail.template`.

task-2858277

closes odoo/odoo#93622

X-original-commit: b4cb62fdd9eb692c4000011e3bdbee39788c54d0
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-06-14 21:10:06 +02:00
Thanh Dodeur b7b4697a85 [FIX] mail: properly display the call systray menu
Before this commit, since the removal of the modelManager from the
scope of some components, the call systray menu would never show up
as messaging was never defined.

closes odoo/odoo#93616

X-original-commit: ab13e5a8649d82c985163cd82f0c43e4975afca7
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-06-14 18:26:39 +02:00
qsm-odoo 6a7064ed0b [FIX] website: allow height control over inline embed code snippets
The embed code snippet (introduced at [1]) comes with a default
"half-screen" min-height. Since [2] (patched with [3]), the min-height
option is not shown anymore for snippets which are dropped in other
snippets ("inline" snippets)... and [4] actually made the embed code
snippet an "inline" one later on. The problem is that once dropped as
an "inline" one, the embed code snippet had thus a "half-screen"
min-height which was impossible to remove.

This commit patches the snippet so that it does not use a default
"half-screen" min-height but default paddings which work both as
"main" and "inline" snippets. The user can still use the min-height
option by himself if he wants to.

[1]: https://github.com/odoo/odoo/commit/2cc481d1a62202ade4c1ca8f846c962f9f2cc34d
[2]: https://github.com/odoo/odoo/commit/58503a248e7ab6b66d61d00869cdae6719e5a068
[3]: https://github.com/odoo/odoo/commit/bebb45e6d5e8224f2d534d5644b9af45fea903b1
[4]: https://github.com/odoo/odoo/commit/6336d1ba35f36733958cab48c1d90b6e3c0505d2

opw-2870772

closes odoo/odoo#93515

X-original-commit: 16da89de212cf82b465658afb05739d59a08d364
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-06-14 18:26:35 +02:00
Alexandre Kühn d4bd8e7cc6 [FIX] mail: guard MessageSeenIndicatorView/messageSeenIndicator
Follow-up of https://github.com/odoo/odoo/pull/88950

Commit above introduced `MessageSeenIndicatorView`.

Conceptually, `MessageSeenIndicatorView/messageSeenIndicator`
is required. However, the current implementation make it
possible to have a view without the related pure logic record.

This commit simply guards the template to take this implementation
detail into account, as to not make it crash.

Note that future changes in modelling will enforce
`MessageSeenIndicatorView/messageSeenIndicator` being required, so
that we won't need to guard it in template. But this is a fix in
stable version, so it's safer to keep minimal code changes.

closes odoo/odoo#93599

X-original-commit: 495379b20c077ab27b91850673222893e0d14a8e
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-06-14 17:14:05 +02:00
Zelong Lin fac8cb5486 [FIX] discuss: issue with click on im_status
task-2882007

closes odoo/odoo#93588

X-original-commit: 8161d2588b091fb45f8d7af450bb6a0b1b2d4bfb
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-06-14 16:00:02 +02:00
roen-odoo 74e65dc0bd [FIX] account,sale: show sales from archived partner
Current behavior:
If you made a sales with a partner wich is part of a company.
And then archive that partner and click on the sales smart button
from the company the sales from that partner wouldn't appear in
the list. The problem is the same for the invoices

Steps to reproduce:
- Install sales and contacts
- Create a sale for a partner (e.g. Edwin Hansen from Gemini)
- Archive that partner
- Go in the company view, click on sales button
- The sale from the archived partner do not appear in the
  company sales list

opw-2850115

closes odoo/odoo#93587

X-original-commit: 8e46a00356a85b42078637d97ec6d0ef204f370a
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Engels Robin (roen) <roen@odoo.com>
2022-06-14 15:59:58 +02:00
Pierre Masereel 2719014fb4 [FIX] point_of_sale: unlink move lines before creating custom ones
As we are trying to create custom move lines before unlinking the
reserved ones, we can be unable to reserve the lot we need if already in
another move line.

closes odoo/odoo#93508

X-original-commit: 64cc7ef34341043cf3a9a87e0a073cd9587696b5
Signed-off-by: Masereel Pierre <pim@odoo.com>
2022-06-14 15:59:54 +02:00
hiroh-odoo 9d353ac4f6 [FIX] sale_timesheet: fix the computation of allocated_hours on project
Before this commit:
- When project is created from SO, the quantity of SOL is set in allocated hours.
  Then, when navigating to the 'invoicing' tab and adding an employee mapping,
  the `allocated hours` is reset to 0.
- When manually removing the SOL of a project, the allocated_hours is reset to 0.

After this commit, the above issues have been fixed.

task-2788878

closes odoo/odoo#93580

X-original-commit: dbcdefc20c676248438643a97fa62ca7fd197671
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
Signed-off-by: Mahendrasinh Barad (mba) <mba@odoo.com>
2022-06-14 14:53:52 +02:00
Julien Castiaux 092074cb1a [FIX] core: use newer registry after signaling
Create an empty database and start 2 http workers, go on the web app
menu and install website (don't install website via -i). Once website is
installed, you are redirected on `/website/configurator` but the route
does not exist and it fails with a 500 internal server error.

The problem is due to an invalid registry manipulation introduced in the
saas-15.3's httpocalypse. When new modules are installed the registry
must be reloaded in all workers. The function that determine if the
registry must be reloaded and reloads it is `check_signaling`.

When the current registry is up-to-date, it is returned as-is by
`check_signaling`. When it is outdated, `check_signaling` creates and
returns a new fresh registry; it does not nor discard nor change
in-place the previous (outdated) registry, it is up to the callee to
discard the previous registry itself.

closes odoo/odoo#93579

X-original-commit: 23bdcc3fd31e6908ee6737cb74787aefa5d057a5
Signed-off-by: Raphael Collet <rco@odoo.com>
Signed-off-by: Julien Castiaux <juc@odoo.com>
2022-06-14 14:53:48 +02:00
Martin Trigaux 515b178535 [I18N] *: cleanup deleted modules
Remove leftover translations from some modules that no longer exists.

closes odoo/odoo#93572

X-original-commit: d16d24a360ffe1a703e012746fb95efbe16536ad
Related: odoo/enterprise#28352
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2022-06-14 14:53:38 +02:00
Aaron Bohy e2b7e7d6f5 [FIX] web: adapt Set Defaults dialog w.r.t. owl 2
This dialog hadn't been correctly adapted since the move to owl2.
As a consequence, it couldn't even open itself.

closes odoo/odoo#93571

X-original-commit: 71a0142940d46c2e954310477d6b4d7e7d14c587
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-06-14 13:45:59 +02:00
MAHAMADASIF ANSARI cc062596f4 [IMP] crm: improve helper string
This commit improves the helper string for 'My Pipleline' a bit in case
the logged in user has not joined any sales team yet. Also, if user is
having enough rights to access 'Configuration >Sales Team' menu, the
helper string will now contain a link to this menu as well.

task-2846401

closes odoo/odoo#91304

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-14 13:45:56 +02:00
Kartik Chavda 12bc2abd43 [IMP] sale_timesheet: add demo data in timesheet
This commit added timesheet demo data based on 'milestones' and 'manual'
invoicing policy.

task-2816490

closes odoo/odoo#88852

Related: odoo/enterprise#26259
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-06-14 13:45:46 +02:00
Kartik Chavda f664a0e44e [IMP] sale_timesheet: add filters in timesheet
In this commit, following filters are added:
    -'billed on milestones'
    -'billed manually'

task-2816490

Part-of: odoo/odoo#88852
2022-06-14 13:45:46 +02:00
Thanh Dodeur 430d66b94e [REF] mail: change field names to fit conventions
`callViewOfMainCard` -> `callViewAsMainCard`
`callViewOfTile` -> `callViewAsTile`

part of task-2692836

closes odoo/odoo#93550

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-06-14 12:47:37 +02:00
Thanh Dodeur b3c3a8123d [REF] mail: cleanup layout files
part of task-2692836

Part-of: odoo/odoo#93550
2022-06-14 12:47:37 +02:00
Victor Feyens 47757124d7 [REM] sale: unused menu
As it has no action and no children, this menu is an old ghost,
taking place in the code & database(s) for nothing.

closes odoo/odoo#93481

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-06-14 12:47:30 +02:00
Louis Wicket (wil) 0afb923e8e [FIX] mail: remove obsolete and invalid use of state
Change forgotten references to `state` to references to the record.

Fix crash introduced in https://github.com/odoo/odoo/pull/93330/

closes odoo/odoo#93556

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-06-14 11:41:34 +02:00
Adrien Widart f308906b68 [FIX] stock: display graph on forecasted report
In some cases, an unexpected line "Undefined" is displayed on the graph
of the Forecasted Report

To reproduce the issue:
1. Create a storable product P
2. Process a receipt R01 with 1 x P
3. Process a delivery D01 with 1 x P
4. Create and confirm a planned receipt R02:
    - Scheduled date: In 7 days
    - Operations: 1 x P
5. On the form of P, open the On Hand page
6. Back to the form of P, open Forecasted page

Error: An unexpected line "Undefined" is displayed on the graph and is
always equal to zero

Suppose the user does the same as above without the step 5: there won't
be any unexpected line on the graph. Here are the explanations: after
step 3, a quant for P exists and its quantity is zero. So, suppose the
user doesn't open the "On Hand page" and directly opens the Forecasted
Report. Considering its definition:
https://github.com/odoo/odoo/blob/a9dc406b52a3702f6901f686503e8d841f81724e/addons/stock/report/report_stock_quantity.py#L41
Four things happen (we only consider the state `forecast`):
- The SM of R01 is propagated from `today minus 3 months` to `yesterday`
- Same for SM of D01
- The quant is propagated from `today minus 3 months` to `today plus 3
months`
- The SM of R02 is propagated from `in 7 days` to `today plus 3 months`

-> Thanks to the quant, there are some data between `yesterday` and `in
7 days`

Let's now consider the step 5. Opening the page leads to:
https://github.com/odoo/odoo/blob/b22a23435a0cc42b7084ded21dbd4ef3a4a2113e/addons/stock/models/stock_quant.py#L621-L630
where, in `_quant_tasks`, we unlink the zero quants:
https://github.com/odoo/odoo/blob/b22a23435a0cc42b7084ded21dbd4ef3a4a2113e/addons/stock/models/stock_quant.py#L562-L565
Therefore, in the `report.stock.quantity`, we are creating a hole
between `yesterday` and `in 7 days`. When performing the RPC
`read_group` to get the graph data, a key-context is defined
(`fill_temporal`). Thanks to this, the hole is filled by the server but
the generated data do not mean anything:
https://github.com/odoo/odoo/blob/80ec56bd246869567c3bbc746be1ebce52970a63/odoo/models.py#L2005-L2007
i.e., the value of `empty_item` is:
```py
{'id': False, 'date_count': 0, 'product_qty': False, 'product_id':
False}
```
Later on, on JS-side, when processing the `read_group` result:
https://github.com/odoo/odoo/blob/ee84815f2b57ed7ba096d3390aa8c6509e3f7845/addons/web/static/src/js/views/graph/graph_model.js#L235-L241
We are grouping by date and by product. As explained above, some data
have an undefined `product_id` so, in such case, `labels` will contain a
date and an `undefined` value. This explains why we have two lines on
the graph:
- one for the product P
- one for the data generated by the server to fill the hole in the dates
range

OPW-2800818

closes odoo/odoo#93248

X-original-commit: 0530fffe2343463500273b9b03470847276e64bc
Signed-off-by: Steve Van Essche <svs@odoo.com>
Signed-off-by: Adrien Widart <awt@odoo.com>
2022-06-14 11:41:26 +02:00
Gorash 8ee0659eeb [FIX] qweb: reset the attributes dictionary
The methods to generate the attributes are called all the time in order
to reset the attribute dictionary. The profiler is modified so as not to
display directives in the log that do not exist on the tag.

Issue: attributes could be generated by directives and not be used (for
example on <t>). These attributes could end up unwittingly on the next
node.

closes odoo/odoo#93216

Issue: opw-2859447
X-original-commit: 38724f106c0747aef475991c894e9ee93c1db967
Signed-off-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Signed-off-by: Christophe Matthieu (chm) <chm@odoo.com>
2022-06-14 11:41:22 +02:00
Patrick Hoste bf992f24b2 [IMP] various: improves usage of partners
SPECIFICATION

Various change for the partner view:
- Moved the activity widget to the bottom right of the kanban
- Moved the informations badge to the bottom right next to the
  activity widget and made them clickable
- Change the address options order and add a small help below
- Change the 'Remove' button function from delete to remove from
  the company and add a delete button to the right end.
- Correct some typo
- Add an 'Archived' ribbon to the kanban card
- Change various small things

LINKS

Task-2821356

closes odoo/odoo#89249

Related: odoo/enterprise#26442
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-14 11:41:15 +02:00
Laurent Smet 070d7e5e91 [FIX] base: Fix PDF generation with not exactly one html doc per record
When the html is grouping some records together, there is no exactly one document per record.
In that case, the wkhtmltopdf outlines must not be checked.

closes odoo/odoo#93516

X-original-commit: c1faefce79bae6ff6014e7af7f675e98f5091a07
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Laurent Smet <las@odoo.com>
2022-06-14 10:36:08 +02:00
Laurent Smet bf6d58f165 [FIX] base: Fix pdf generation with 'attachment_use'
When generating a PDF report with an action having 'attachment_use' set and when the pdf of at least one record has been already generated but not all, an error is raised for no reason.

X-original-commit: 7ad19283ea5c89a6629c8433b468d1dac3fdad4d
Part-of: odoo/odoo#93516
2022-06-14 10:36:07 +02:00
Pierre Rousseau f7a42ecb5a [IMP] web: make dialog service available
The goal of this commit is to make dialog service accessible in legacy env.

Task-id 2856740

closes odoo/odoo#92636

Related: odoo/enterprise#27915
Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-06-14 10:35:58 +02:00
Rémy Baranx (bar) ed02c32853 [FIX] google_calendar: allow user to reset his own tokens only
Each user should be able to reset his own google calendar token.
An admin user (from `base.group_system`) should be able to reset any tokens.

Task-2673934

closes odoo/odoo#83397

Signed-off-by: Arnaud Joset <arj@odoo.com>
2022-06-14 10:35:54 +02:00
Aurélien Warnon ee6d0d8c83 [IMP] mail: cleanup '_htmlEscape' usage
We instead use the standard owl.utils.escape.
This allows having less custom implementations of escaping and rely on existing
tools.

Task-2622893

closes odoo/odoo#81293

Related: odoo/enterprise#22850
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-14 10:35:45 +02:00
MerlinGuillaume 29e14fa24c [FIX] account: fix accounting dashboard bar graphs
The Customer Invoices and Vendor Bills bar graphs in the accounting
dashboard skip empty weeks so the following weeks will be displayed
sooner

Steps to reproduce:
1. Install Accounting
2. Go to the accounting dashboard
3. The bar graph of Customer Invoices is not correct: it ends with empty
weeks but they should be in between the data

Solution:
Choose where each query result should be by using the aggr_date to find
in which week the data is included

Problem:
The SQL query didn't return any date for empty weeks so sorting the
result by date would leave some weeks out of the bar graph

opw-2844159

closes odoo/odoo#93544

X-original-commit: 2743d8f350209942f7dc3431109d22646ce1a251
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
2022-06-14 09:36:13 +02:00
Laurent Smet 5f39499892 [FIX] base_vat: Fix vat number starting with 'EU' for not-EU companies
Foreign companies that trade with non-enterprises in the EU may have a VATIN starting with "EU" instead of a country code.

Currently, the user is facing a traceback in this situation since stdnum doesn't have any format method for vat number starting with 'EU'.

closes odoo/odoo#93536

Ticket: 2877716
X-original-commit: 0f9f8409b379e3a0af28cecd3ed26829b9b26032
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Laurent Smet <las@odoo.com>
2022-06-14 09:36:09 +02:00
Ivan Yelizariev 8b7a705861 [FIX] purchase_stock: keep qty on return
When purchase is returned, the product may move to internal location first. If
option `Update quantities on SO/PO` is active, it does decrease the qty.
However, when the option is disabled, it increase the qty instead of doing
nothing.

Fix it by making a proper if-else block structure

STEPS:

- Create a PO, confirm it and receive the product
- On the transfer, make a return to a location that is not a child of your warehouse (PhysicalLocations/W/...), for instance, choose the location Physical Locations/Subcontracting Location
- Untick the "Update quantities on SO/PO" (visible in debug), and validate the return transfer
- Check your initial PO

BEFORE: the received quantities have been updated, even if we asked not to do it
AFTER: the received quantities is not changed

opw-2858390

closes odoo/odoo#93471

X-original-commit: eb16b4ece9766d4fea85d88ad72e25e8ada209ac
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: Ivan Elizaryev (iel) <iel@odoo.com>
2022-06-14 09:36:05 +02:00
Odoo's Mergebot be246d3df6 [MERGE][IMP] auth_signup,portal,web: welcome external users w/o portal
When portal is not installed and `auth_signup.invitation_scope` is "b2c",
visitors can create an account, leading to a blank page. Still, accounts can be
required for several use cases in apps that do not require portal (such as
survey).

We here add a landing page for users that created an account but have no
requested redirections and cannot be redirected to a customer portal either.

Tests are added to check this behavior.

auth_signup_uninvited is also updated in model to be consistent with config
data.

The PR also adds a `_is_internal` method for `res.users` and updates the
codebase to use it.

Task-2762102
See odoo/enterprise#27603

closes odoo/odoo#85703

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-06-14 09:35:58 +02:00
Florian Charlier dae28c4b46 [IMP] base: add _is_internal method to res.users
No method was readily available to know if a user is `internal` (has
group `base.group_user`), which was inconsistent with other base groups.

_is_internal is now used in the codebase where it is clear that
`.has_group('base.group_user')` is called on a single record.

Part-of: odoo/odoo#85703
2022-06-14 09:35:57 +02:00
Florian Charlier b5f3433adc [IMP] auth_signup,portal,web: welcome external users w/o portal
When portal is not installed and `auth_signup.invitation_scope` is "b2c",
visitors can create an account, leading to a blank page. Still, accounts can be
required for several use cases in apps that do not require portal (such as
survey).

We here add a landing page for users that created an account but have no
requested redirections and cannot be redirected to a customer portal either.

auth_signup_uninvited is also updated in model to be consistent with config
data.

Tests are added to check this behavior.

Task-2762102

Part-of: odoo/odoo#85703
2022-06-14 09:35:57 +02:00
Mathieu Duckerts-Antoine a44b3f8fb3 [FIX] web: left/rigth navigation in search bar
Before this commit, if there were several facets in the search bar, it
was not possible to navigate correctly between them.

closes odoo/odoo#93547

X-original-commit: d2b6aab509717866ab42a9750adbb884ccec18a4
Signed-off-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-06-14 08:37:38 +02:00
Abdelouahab (abla) 767bec9ef6 [FIX] sale: fix downpayment percentage computation (tax included)
Create a standard tax that is included in the product price.
Add that tax to a product and the down payment product.
Create a sales order (i.e. 1 line, 115$ total, 15% tax incl).
Create a percentage down payment invoice, i.e. 50%.

The downpayment amount will be 50% of the untaxed amount,
i.e. 100$ @ 50% = 50$ with tax already included, so actually
lower than 50%

Forward-Port-Of: https://github.com/odoo/odoo/pull/65275

opw-2858506

closes odoo/odoo#93531

X-original-commit: 9f9c73b33924b6093e550be63786640d8bbb9e79
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
2022-06-13 22:52:02 +02:00
Luis González ac8f6ad9d1 [FIX] mail: missing ARIA attributes after OWL
After the refactor performed on 3fea5b213 to start using OWL, a lot of
aria attributes were lost.

ARIA attributes are required to ensure good compatibility with asistive
technologies and keyboard users.

This commit reintroduces such attributes, which include:
- `aria-label`: used for elements with title but no text
- `role`: mainly used for elements that behaves as buttons or links
- `aria-expanded`: used on buttons that toggle menus or content, e.g.
  button to open attachments or followers
- And another ones like `aria-pressed`, `tabindex`, etc

closes odoo/odoo#93506

X-original-commit: 35442d9b4102b56421417fc03a686ff916e87bb1
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-06-13 22:51:55 +02:00
Sébastien Theys 0b78c1d5c1 [FIX] mail: properly await createThreadViewComponent
Inner `afterNextRender` could potentially resolve/reject after the test has
already ended due to missing await (arrow function with bracket is sync).

This will prevent tests from overlapping each other.

closes odoo/odoo#93505

X-original-commit: c5d0cc3f37693346fce5e72b618d5e3454d118c4
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-06-13 22:51:52 +02:00
Victor Feyens f68eec10b0 [IMP] sale: code incorrectly ordered
Sale code was recently refactored and reordered according to guidelines
but one recent task introduced new field & method in wrong places.

This commit moves it to the correct place.

closes odoo/odoo#93503

X-original-commit: 5d01a41524a7fe2803b5e016be0e098e8a4e486d
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-06-13 22:51:48 +02:00
Victor Feyens a500be0dbf [FIX] sale: provide a way to recompute line taxes
Since #79093, the onchange updating taxes according to fpos was replaced by
a compute, but the dependency on the order fpos was not kept to avoid
full recomputation of taxes (& potentially other things) when SO fields
are modified.

Nevertheless, it makes sense in some flows to update the fpos after creation
of SOlines, and to want the taxes to be updated accordingly.

To provide this ability, a new button is added, following the existing logic
to update the prices & discounts when the pricelist is changed.

Task - 2865882

X-original-commit: 23ac2e09e19d3ee48018b2940e67048208b65caf
Part-of: odoo/odoo#93503
2022-06-13 22:51:48 +02:00