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
closesodoo/odoo#93580
X-original-commit: dbcdefc20c676248438643a97fa62ca7fd197671
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
Signed-off-by: Mahendrasinh Barad (mba) <mba@odoo.com>
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.
closesodoo/odoo#93579
X-original-commit: 23bdcc3fd31e6908ee6737cb74787aefa5d057a5
Signed-off-by: Raphael Collet <rco@odoo.com>
Signed-off-by: Julien Castiaux <juc@odoo.com>
Remove leftover translations from some modules that no longer exists.
closesodoo/odoo#93572
X-original-commit: d16d24a360ffe1a703e012746fb95efbe16536ad
Related: odoo/enterprise#28352
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This dialog hadn't been correctly adapted since the move to owl2.
As a consequence, it couldn't even open itself.
closesodoo/odoo#93571
X-original-commit: 71a0142940d46c2e954310477d6b4d7e7d14c587
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
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
closesodoo/odoo#91304
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit added timesheet demo data based on 'milestones' and 'manual'
invoicing policy.
task-2816490
closesodoo/odoo#88852
Related: odoo/enterprise#26259
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
As it has no action and no children, this menu is an old ghost,
taking place in the code & database(s) for nothing.
closesodoo/odoo#93481
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
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
closesodoo/odoo#93248
X-original-commit: 0530fffe2343463500273b9b03470847276e64bc
Signed-off-by: Steve Van Essche <svs@odoo.com>
Signed-off-by: Adrien Widart <awt@odoo.com>
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.
closesodoo/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>
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
closesodoo/odoo#89249
Related: odoo/enterprise#26442
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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.
closesodoo/odoo#93516
X-original-commit: c1faefce79bae6ff6014e7af7f675e98f5091a07
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Laurent Smet <las@odoo.com>
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
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
closesodoo/odoo#83397
Signed-off-by: Arnaud Joset <arj@odoo.com>
We instead use the standard owl.utils.escape.
This allows having less custom implementations of escaping and rely on existing
tools.
Task-2622893
closesodoo/odoo#81293
Related: odoo/enterprise#22850
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
closesodoo/odoo#93544
X-original-commit: 2743d8f350209942f7dc3431109d22646ce1a251
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
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'.
closesodoo/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>
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
closesodoo/odoo#93471
X-original-commit: eb16b4ece9766d4fea85d88ad72e25e8ada209ac
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: Ivan Elizaryev (iel) <iel@odoo.com>
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#27603closesodoo/odoo#85703
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
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
Before this commit, if there were several facets in the search bar, it
was not possible to navigate correctly between them.
closesodoo/odoo#93547
X-original-commit: d2b6aab509717866ab42a9750adbb884ccec18a4
Signed-off-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
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
closesodoo/odoo#93531
X-original-commit: 9f9c73b33924b6093e550be63786640d8bbb9e79
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
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
closesodoo/odoo#93506
X-original-commit: 35442d9b4102b56421417fc03a686ff916e87bb1
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
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.
closesodoo/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>
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.
closesodoo/odoo#93503
X-original-commit: 5d01a41524a7fe2803b5e016be0e098e8a4e486d
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
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
Before this commit the feature to auto-reload on attachment changed only worked
through composer or attachment box, now also works with "upload file" activity.
closesodoo/odoo#93486
X-original-commit: 4ab3cb40b09f2c7278bea3bf1136b9ebf6dadc0e
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Since #75862, the group "Upsell & Cross Sell" was shown in the "Sales"
tab of the product views, even if empty (its content is only defined in modules
sale_product_configurator & website_sale).
This commit makes sure that the group is invisible while it has no content.
closesodoo/odoo#93504
X-original-commit: 4f6c15f07141da80525e0c361a6fa19374ef4c2c
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Update to latest runbot state, at least for tests known to be
deterministic.
Notably mail tests are lower than before, probably due to odoo/odoo#73271closesodoo/odoo#93470
X-original-commit: 6118ecba8d807ac5ebc69ae4877e1f202b0daeb1
Related: odoo/enterprise#28308
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
STEPS:
* switch to serbian language
* start chat with a user who is out of office
* refresh page
BEFORE: Incorrect locale information provided
AFTER: no errors
Similar change for web module in v15: https://github.com/odoo/odoo/commit/1bb9cb89c8b5b5c55299afd3c53df14c3aea5ee7
opw-2859402
closesodoo/odoo#93479
X-original-commit: 3102b5e9cecbc973d5f774051d556d9387a8ee38
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently, when we click on week_days checkbox the
'next occurrences' dates are not updated due to fieldDependencies
fields are loaded by js and due to that on_change on fields is not
calculated.
so in this commit, add those fieldDependencies field in xml view so
that dependent field(recurrence_message) will be computed properly
with the help of on_change.
task-2823432
closesodoo/odoo#93450
X-original-commit: f223aefebeec0fc0fcc0d68e3d982a4ab1294d71
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
no need to make rounding during computing qty_available
STEPS (see the test):
- create product with uom dozens
- create product with uom units
- create bom kit to convert one to another
- set qty on hand to 1 for product dozens
- check qty for product units
opw-2849397
closesodoo/odoo#93035
X-original-commit: 83afc17890b9a7b41e21aa5db738b04a13680cd4
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
This commit make messaging service available in the frontend and in
the livechat external lib bundle.
This is preparation to refactoring JS livechat to use models and OWL.
*: bus, mail, survey, web, website_livechat
Task-2870899
closesodoo/odoo#92786
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Before this commit, it was possible to deploy services more
than once. This happened in case the root widget was about to
deploy and start the services, and more than one service was
registering itself during a next tick.
Services must be deployed and started only once. This commit
ensures that if many services are added in this scenario, the
services are deployed and started only once.
Part-of: odoo/odoo#92786
This happens when some assets are missing in portal
and dev tools are open. `odoo.debug` is undefined, so
`odoo.debug.includes` crashes, but this LOC is in handler
of a crash, therefore infinite loop.
Part-of: odoo/odoo#92786
With this improvement,
* in the Project Updates kanban/tree side pannel :
> Hours are displayed 'HH:mm Hours'
* in the Project Updates form description :
> idem
> Sales Order Items with the same products also display their
price to differentiate them.
task-2841685
closesodoo/odoo#90624
Related: odoo/enterprise#27753
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
The purpose of this commit, is to make improvements in Project.
In this commit, following changes are made:
-rename 'Duration' to Hours/Days Spent
-rename hours/days to Hours/Days Spent
-add links to Sales Order, Quotation, Ticket and Invoices linked
the task in left panel
-indicate email of the assignee
-indicate email of the partner
-indicate 'Draft Invoice' instead of '/' for invoices
-display 'remaning hours on SO' value in red if value is less
than 0
task-2743512
closesodoo/odoo#86422
Related: odoo/enterprise#25280
Related: odoo/upgrade#3406
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
Fine tuning of da8def8e41closesodoo/odoo#93407
X-original-commit: 7efa8743b1bbe9efc4b81a10331f096e8de1e52d
Signed-off-by: Julien Castiaux <juc@odoo.com>
Patching the window object is not robust and can lead to errors.
In order to make patchUiSize more robust, patching of window have
been replaced by a patch of the uiService.
closesodoo/odoo#93355
X-original-commit: 46be08a551ead8d2e0304a753af3d3b13744e6ed
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Since: a0092d0011
Users can see attendees' selected answers in the registrations list view using
an optional field ("registration_answer_ids").
However, searching on this field is currently not correctly supported as the
"event.registration.answer" model does not implement it (no "_rec_name" and no
"_rec_names_search").
This commit adds a "_rec_names_search" attribute to allow users to search on
both "value_answer_id" and "value_text_box" fields.
This makes it easy to search for all attendees that have filled in a specific
answer, allowing a better organization of the event based on question results.
Task-2868203
closesodoo/odoo#92486
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
There was an issue when canceling the move of an article from one section to
another: a previous move which was not canceled could be undone when it should
not have been.
Impacted versions:
* 15.4+
Steps to reproduce:
1. Have one article (A) in the "workspace" section and one article (B) in the
"private" section
2. move (A) into "private", validate the move in the dialog
3. move (B) into "workspace", discard the move in the dialog
Current behavior:
* (A) is displayed as if it is currently in "workspace" but it is in fact
still in "private"
Expected behavior:
* (A) and (B) should be displayed in the "private" section
This commit fixes the problem by manually replacing the article whose move was
discarded (B) at its previous position while triggering a "change" event instead
of a "cancel" event.
The bug is caused by an incorrect implementation of the "cancel" handler in
`jquery.mjs.nestedSortable` library. Since this library uses jQuery and it is
discontinued, we should consider to reimplement the feature internally in the
future.
This commit also synchronizes data-attr attributes (parent-id and section) with
the hidden value data('attr') from jQuery for consistency.
Task-2877766
closesodoo/odoo#93244
X-original-commit: 98aaeb32e04f99c06c75166593e3b89c4aa087df
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The template of the standard emoji picker has recently been updated. This
commit will update the emoji picker of Knowledge to make the custom
component compatible with the new standard templates.
Related: https://github.com/odoo/odoo/commit/9830406020ef1c3b0c57045a6e285a31ebf81143
task-2871883
closesodoo/odoo#93243
X-original-commit: 7f35a0bf19bfe02200244847b09ae43f4bc02494
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>