The control panel test helpers related to the "time range" menu have
been removed and a new helper for the "comparison" menu has been added.
Task ID: 2245719
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
The "board" module has been adapted accordingly to the recently
introduced comparison menu.
Task ID: 2245719
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
This commit replaces the "time range menu" in the control panel by a new
component: the "comparison menu".
Its purpose is roughly the same: compare a period of data in a reporting
view with the previous period or the previous year.
Its implementation is a bit simpler: it will only appear if at least one
date filter is selected in the search view, and will suggest to compare
each selected date option with the previous period or the previous year.
Task ID: 2245719
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Before this ref, the dropdown menu got his icon directly from his props.
This means that any inheriting class had either to define its icon with
the 'default_props' key or to have its parent giving it in the props.
Now, the icon is retrieved from the props via a getter (same as title
and items) and can be overridden to force a fixed icon on the class.
Issue
- Go to unsubsribe sms page where the 'sms_code' is the same
in multiple traces
- Fill the correct phone number (same one of any traces)
- Click on 'Unsubscribe me'
Traceback is raised.
Also, if empty phone number, still have successfull message.
Cause
Multiple traces with same "sms_code" but different "sms_number".
The current behavior does not handle multiple traces.
Solution
- Filter and retrieve the trace with the correct "sms_number".
- Add 'required' attribute on phone number input.
opw-2264200
closesodoo/odoo#52452
X-original-commit: 34a8f63332e8269c2dbf5fa2b3ca16913798532c
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
- Create a lead and set a language
- Convert to opportunity and choose 'Create a new customer'
The new customer created doesn't have the language of the lead set.
This is more logical to set the same language to the new customer.
opw-2270321
closesodoo/odoo#52376
X-original-commit: 1999c68ff4eb382019c92064d9285411314a39be
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The event registration form is made up of a public widget that
instantiates an internal normal widget. All public widget are
automatically destroyed when entering in edit mode as well as the widget
it created. Therefore, it's main element is removed from the DOM when
the widget is destroyed. Here, we're detaching the main element from the
internal widget before the widget is destroyed so that we avoid to
destroy his main element from the DOM when entering in edit mode.
task-2210733
closesodoo/odoo#52426
X-original-commit: d515e4233a009250f41e8a1c1b02235685a69532
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The /shop/cart/update was accepting both GET and POST request. Therefore,
we couldn't have csrf on the route meaning any website could change your
cart if the route was known.
task-2263776
closesodoo/odoo#51486
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
It was deleted in 11.0 as it was not used anymore. Now, it is
reintroduce as it is a nice utility function for some external app or
fixes. Here, it is use so that /website/add and /website/add/<path> work
as a controller POST with a CSRF token.
task-2241766
https://github.com/odoo/enterprise/commit/7d17dad678361f161c259eddd45d9b5186941bd0 fixed the sign used for cash basis entries in the tax report, but this change had to be reflected on the tax_audit computed on cash basis entries as well.
Before that, cash basis entries never were made on sales journals, and their move lines never had a refund-typed invoice_id. So it means those factors, when present on the original invoice, never influenced the audit string computed for cash basis entries. This was obviously wrong.
closesodoo/odoo#52381
X-original-commit: 1157b3073f409c9fbdffe8f3b3322331f470de02
Related: odoo/enterprise#10927
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
This commit adds the support of nolabel attribute on fields
in list view. This attribute can be used to empty the column header.
Example of use:
<record id="module_example_tree_view" model="ir.ui.view">
<field name="name">module.example.tree.opportunity</field>
<field name="model">module.example</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="tag_ids" widget="many2many_tags" nolabel="1"/>
</tree>
</field>
</record>
Result:
This will create a tree view with 2 columns.
The second column will have an empty header and won't be sortable.
Name |
--------+--------------
Record1 | [tag1]
Record2 | [tag1][tag2]
Record3 | [tag2]
closesodoo/odoo#52302
Task: 2269315
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Save in l10n_ar_vat field the cleaun up CUIT number (without spacings,
dashes and points.
This way we can use it so sent it properly as a number to AFIP.
closesodoo/odoo#52380
X-original-commit: d02141511c6e86c2e6acac6ed8ed44b0c874f63e
Related: odoo/enterprise#10925
Signed-off-by: Josse Colpaert <jco@openerp.com>
The `get_string` method from the `pyusb` package has changed its
signature after version 1.0.0b1 so we used to force the IoT Box to use
this version to avoid an error. The problem is that version 1.0.0b1
has dependencies that raise DeprecationWarings in Raspbian Buster.
We then want to update the version of pyusb that is installed on the
IoT Box in 14.0.
As the Driver might be loaded to old versions of the IoT Box as well
as new ones, we need to check what version of the package is present
on the IoT Box before calling `get_string`.
This check will be removed in 14.0, as people will have to use the
latest version of the IoT Box.
closesodoo/odoo#52374
X-original-commit: e5475ae8ceca2121d15985ac7446f90dbd59b485
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Signed-off-by: Antoine Prieëls <aprieels@users.noreply.github.com>
Remove borders/background-color in columns of the features snippet in
job description.
closesodoo/odoo#51823
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Cause
When kit BOM line quantity is equal to zero in a sale order, it raise error
because trying to divide bom_line_data['qty'] / bom_line_data['original_qty']
when computing kit quantities.
Solution
As BoMs allow components with 0 qty, a.k.a. optionnal components,
we simply skip those to avoid a division by zero.
Cherry-pick of #38890
opw-2262540
closesodoo/odoo#52362
X-original-commit: ab780a9d65e43f58a5745a5b92a25fb234827eb7
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
Consider a context-dependent field, and successively access it on a
recordset with different contexts. On the first context, the field is
correctly computed in batch. After that, the field is always computed
one by one.
The bug is in the method that determines which records in a given set
have no value in cache. On the first context, the cache is empty for
the field, so all records are returned. After that, the method
considers that all records have a value in cache: they do, but for
another context key! Simply using the context key when looking up the
cache fixes the issue.
closesodoo/odoo#52360
X-original-commit: 35d69589d9b43afe6c6fc9779458323f7180153e
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Co-authored-by: Xavier-Do <xdo@odoo.com>
Steps to reproduce the bug:
- Let's consider a customer company partner P
- Let's consider, P1, a child partner of P
- Create a SO for P1
- Archive P1
Bug:
The SO count in the smart button Sales of P was 0 instead of 1
opw:2267828
closesodoo/odoo#52340
X-original-commit: 31ded31dab5c389e6cb1b85f65e780a1e5ab5b28
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Before this commit, a user with attendance administrator rights can see
the attendances of all users of all companies and not only the companies
he is allowed.
Now, the administrator will only see the attendances of the users of the
companies he is allowed.
opw-2263577
closesodoo/odoo#52355
X-original-commit: 0e8f86795db74fe21daa8776243415291371fdf6
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Note : Manual forward port recovering from commit ae1e70eba10112170283cfc17fa95d94dd948d2b
Purpose
=======
Let's say that the field 'foo' is tracked and defined with a res.group.
When the field is modified, a mail.tracking.value is generated, but the
reference to the field name is a char field.
When displaying the mail.tracking.values on the chatter, a check is done
according to the field group to decide whether we should display it or not
to the user. See: c7aa8c5#diff-ad8b6db158187579d2208f233d993c3cR43
So if I rename the field, and if the mail.tracking.value is not modified,
the mail.tracking.value magically appears to the users who shouldn't
access it before.
Note: If the migration is correctly handled, this shouldn't be the case.
But manual manipulations on the database could lead to this issue.
Specification
=============
If the field referenced by the mail_tracking_value doesn't seem to exist,
then display its value to system users only, by security.
closes#39016closesodoo/odoo#52348
Taskid: 2088634
X-original-commit: 19bc081e4a71042c3f009e4af641da18fc16bdfe
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
When installing sale_margin, the computed fields will be computed on existing
sale.order and sale.order.line in database. On huge databases, the computation
may take a lot of time, depending on the configuration (multi-company, multi-currency, ...)
The current commit improves the computation of the purchase_price
(recently changed to a computed field), by avoiding unnecessary currency
conversions when possible (one less query to get the conversion rates).
In a multi-currency database where the products have no cost defined
(standard_price field), the sale_margin installation takes up to 50% less time.
closesodoo/odoo#52338
X-original-commit: 3c9841d1aa4fc5b10012c8239a31d6e7f8676fc0
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Installing sale_margin module on a db with a lot of sale.order was impossible.
This commit significantly improves performances.
Went from many hours (forecasted) to 15 minutes on a db with 300k orders
For sale.order:
- Duplicating logic between edit mode and non edit mode
- Edit mode logic stays the same as before
- Non edit mode uses read_group to speed up the computation
X-original-commit: 9f1ea7427cdb6984f175f5111e4c9a4c5f013af2
Before this commit, `self.env.user.company_id.id` may represents different company from the current company based on context.
In this commit, we use correct company based on contextual company.
Follow up on b39173a8ffclosesodoo/odoo#52328
X-original-commit: 2314ce8b3de80ff6c4c9dec35ea6a201f885ba16
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
Close can now be requested by children (slot content) with the event
`o-popover-close`. This feature is necessary if we want a "close" button inside
the popover itself, which is the case for mail.activity "Mark Done".
Clicking on the popover target now acts as a toggle, which is also a feature
that was expected from the previous popover implementation.
Add a specific class (`o_is_open`) when the popover is displayed to be able to
style its target depending on whether it is displayed or not.
Ensure computed position is whole number of pixels to prevent flicker issue on
Firefox.
Remove forced width to let the component grow with its content.
Add appropriate z-index to prevent overlap issue with the rest of our interface.
closesodoo/odoo#50850
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit, the Start now button uses the first slide (a content
slide or a category slide). If the first slide was a category slide then
an error was raised.
Now, only content slides are used to start the survey.
opw-2265250
closesodoo/odoo#52309
X-original-commit: bbc84c5d03eae51b6edfe270da51087970db2227
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
This commit attempts to fix the emoji widget position issue (only in enterprise versions) on mobile screen.
The emoji dropdown overflow & emojis font display issues (on mobile screen) are also fixed in this commit.
The following changes have been made :
1- Add css media-breakpoint to override widget position in small breakpoint and narrower.
2- Add position-relative + bottom css on widgets to avoid negative margins.
3- Set a max-width for the dropdown on mobile screen.
4- Add width/height on emoji icons to solve emojis position issue for some fonts (on different OSes > browsers).
This fix was made with the 'smallest possible changes' taking in consideration effects on :
- "text_emojis" widgets, since they use same class : "o_mail_emojis_dropdown".
- Emoji widget position in community (This fix won't break widget position in community version).
Task ID 2224393
closesodoo/odoo#52182
X-original-commit: 405e113e897b914eed41b34a66b5a7f740dcd336
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Steps to reproduce:
- Create a bank journal, with "post at" = "Bank reconciliation"
- Create a new expense paid by "Company"
- Create a report and confirm
Current behavior:
- the bank move is posted
Expected behavior:
- the bank move is not posted (and i will posted during the bank reconciliation"
closesodoo/odoo#52260
X-original-commit: 0b45a8317f1e4538ad93aa169b8be08f5403340a
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
The *Reload File* import functionality stands on an undefined behavior
or the HTML File API. The API is not clear about what should done in
case the underlying file change on the filesystem after it has been
imported in the browser.
It turns out the actual behavior vary among browsers and even among
OSes. The *Reload File* button only works as intended when importing
files via Chrome on Linux.
In other cases, the browser may refuse to send the file or may send it
in a corrupted HTTP request. Such malformed request is rejected in the
best cases by the backend web application but there is chance it hangs.
Security-wise, this problem is not much likely to happen as it requires
an authenticated user with importation privileges to perform the
operation. When it comes to the severity, it is possible to exhaust the
available workers by forcing every one of them to hang.
As there is a security impact, we decided to disable the *Reload File*
functionality.
Steps to reproduce
------------------
1) Import a CSV or XLSX document in any model.
2) Wait for the data visualization to come back to the browser.
3) Change the file on disk to
a) remove a few lines
b) add a few more lines.
4) Click the Reload button.
Wrong `size` attribute on Firefox.
----------------------------------
Impact: Firefox
The advertised `Content-Length` HTTP header in the POST request is
a) *greater* than the actual body length. The backend web application
hangs on a `socket.recv` like function waiting for those missing
bytes.
b) *smaller* than the actual body length. The request is truncated
and futher processing is impossible.
The malformed request should have been detected and reported by the http
web application as requested by the HTTP/1.1 spec [1]:
> When a Content-Length is given in a message where a message-body is
allowed, its field value MUST exactly match the number of OCTETs in
the message-body. HTTP/1.1 user agents MUST notify the user when an
invalid length is received and detected.
Mitigating the issue is possible using nginx as reverse-proxy. The
connection is closed after one minute if data are missing.
Invalid `ERR_UPLOAD_FILE_CHANGED`
---------------------------------
Impact: Chrome on Windows
Chrome prevent sending the XHR due to a `ERR_UPLOAD_FILE_CHANGED` error,
this error should only happens when the underlying file content have
been changed the second before the request. On Windows, the error
is triggered as soon as the file have been changed, not considering the
modification time.
[1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html Section 4.4
opw-2252440
closesodoo/odoo#52276
X-original-commit: 30be09cdb7d5b80fb1e0221f58024586bd72ac61
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
Similarly to server actions, searching and viewing the model on which a
scheduled action is defined is useful for administrators.
closesodoo/odoo#52239
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
Issue
Step done with "CRM" since main kanban view can be
grouped by 'res.partner' model:
- Install "CRM" app
- Go to crm and group by "Customer".
- Add a Column.
Traceback is raised.
Cause
Wrong "default_type" in context ('opportunity' in this case)
when creating new kanban stage and grouped by "Customer".
Solution
On "default_get" for "res.partner", if "default_type" is in
context and not in 'type' selection choices field; then
remove it from context.
Cherry-pick of #47723 in 12.0
opw-2256905
closesodoo/odoo#52282
X-original-commit: e5796429c8adcbb929cb032cdfd2cbaba835b086
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
*: web_editor
Note: on color palette change, all the colors of the user are reset and
he is warned about it.
Part of https://github.com/odoo/odoo/pull/52224
task-2197038
*: web_editor, web
Also now allows to control the copyright section color.
This commit also allows to use color name alias when the user choose
one of the 5 main colors or a gray color for one component (e.g. if the
user picks 'o-color-1' as the color for its text in preset 4, then it
will no longer be linked to the current css color of 'o-color-1' but to
'o-color-1' directly; meaning that if that color changes in the future,
so will the text of preset 4).
Part of https://github.com/odoo/odoo/pull/52223
task-2197038
Before this commit, the company address was aligned to the left in a column.
closesodoo/odoo#51626
Taskid: 2198488
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>