In the frontend only plaintext is saved without any javascript fiddling
so in the controller it should be adapted to be saved.
With this change, the behavior is more similar to backend chatter which
sends html (processed by javascript) to the server.
opw-1817918
closes#23706
- The payment template is overwriting the return url which caused it to be never valid.
This is mainly used by payment that uses 3D Secure.
If the return_url doesn't exists, then the customer is redirect to '/' which is not what we want.
If the payment doesn't use 3D Secure, then the controllers that handle it may (and it is always the case) redirect the url to a hardcoded url inside it.
Revision on https://github.com/odoo/odoo/commit/a87d761fdbf345ada5dc93e0a686b08a0f5a0417
There was an issue with the nocontent helper of im_livechat channels where two paragraphs
were shown instead of a single one.
This was due to a typo where the paragraph was decorated with another paragraph tag.
The commit above tried to fix the issue by not decorating the static help with a paragraph,
since it already contains a paragraph. However, the fix introduced some dead code, so that
this overridden method has no purpose (it simply calls `super`).
This commit removes the overridden method, which preserves the current and correct behaviour.
IT was not possible to differenciate between variants as using the
product.template name in the message.
Same for the location were it was using the last level name (e.g. 'Shelve 42')
instead of the full path
Closes#20174
Along with new tests, 2 things have been changed:
1) amount_currency field is not written anymore when matching an amount paid in company currency against some invoice(s) in secondary currency (see changes in test_reconciliation.py)
This was previously made to help computing the exchange rate difference entry, but we now instead completelly rely on the amount_currency field set on the partial reconciliation. Besides being wrong from a purely functional pont of view (we never received money in secondary currency so why should the ORM act as if it was the case), it was the root cause of the problem related test_partial_reconcile_currencies_02, in test_reconciliation.py.
2) when registering a payment directly from an invoice, containing both an exchange difference and a write-off to force the full reconciliation, we now correctly create the accounting entries.
A weird behavior spotted in #21888 was introduced by 2093546, to deal with impossibility to full reconcile an invoice due to rounding errors. Fortunately, this use case (test_payment_and_writeoff_in_other_currency_3, in test_payment.py) can now be solved in the right way thanks to changes introduced in the previous point.
On mobile, kanban view always have its custom "menu" bar to cycle
between grouping if the kanban view is grouped.
But if the kanban view did not have the class `o_kanban_small_column`
the mobile CSS on record was not applied:
- all columns were always displayed one over the other
- switching tab did not hides other columns and show current one
- the style was the same than desktop (but on mobile and with column
after first "to be loaded)
opw-1827142
closes#23691
Github will automatically close the report is you use the format
Closes #number
No need to a leading #
cf https://help.github.com/articles/closing-issues-using-keywords/
Add the meaning of [I18N] tag
This commit is an example of a violation of the "one commit, one fix" principle
Example failing before this commit:
- amount = 11.01
- decimal = 11.01 % 1 = 0.009999999999999787
- 0.009999999999999787 < 0.01
Use correct float_is_zero method to test if there is decimal or not
Closes#18306
Do not rename a translatable record in demo data.
Renaming a translatable record will breaks translations.
I am aware this renaming was done for demo purposes but it is not a good enough
reason to force people in another language (e.g. Chinese) to have the main
pricelist to be named 'USD'.
Exporting the translations only when the product module is installed is not an
option as many product descriptions are added in website_sale
(website_description field) and would then be missing from the translated
content.
It is the same problems as renaming menu based on module installation, it
will not work for non-English speakers.
Will also avoid manual corrections of pot file such as in #23686
- Set the demo user to have access to all quotations
- Connect as demo, create a quote and send the message
- In the message try to upload an image
An access error is raised, although the user can write on the record.
This is because the `res_id` received is a `string`, not an `int`.
Therefore, the access check fails.
Introduced with 6494f51171
opw-1824673
As explained in #17386, _auto=False on a model is used for report where the
table is explicitely created in init method.
To create a model without any table, AbstractModel should be used.
Closes#19448
At stock installation, the warehouse0 has the name of the first company found
(order "sequence, name"), while the comapny_id field is
`_company_default_get('stock.inventory')` (the company of the user installing
the stock module).
In a multi-company environment, it is possible than both results are different
and having name = 'Company A' and company_id = 'Company B'.
Use the name of the default company as default value for the field name.
Note that 'stock.inventory' is not needed in _company_default_get call but
kept to match the default of company_id (in case of override).
Using a default on the field will impact all the future records but should,
hopefully, not be problematic as it is a valid default value.
Closes#19563
There was no Quality check entry for backorders
when the user did a partial shipment.
We move the logic of the backorder creation to the _create_backorder function.
This function was defined but not called anymore due to a refactoring.
We clean some of its unnecessary overrides which were not used anymore.
opw-1816845
Currently crm and project parse incoming email body following an old
syntax to find some "set field - value" lines in the email content. It is
used to update the record linked to the discussion directly from the email.
However this feature is undocumented and not really supported anymore.
Moreover we don't think being able to update records from emails is a
reliable way of working. Moreover those update is limited to
* revenue and probably for leads; this should totally be managed from
the pipeline view by lead / opportunity responsible;
* priority update coming from a "priority" entry in the incoming email;
this code seems strange as priority is probably not standard in email
headers;
* planned hours for project; this should be managed by project user
and managers through dedicated views in Odoo;
Let us remove that old feature and let people use desktop or mobile
interface to update their records.
The delivery slip is a document targeted to the customer, it is
important that the quantities displayed there reflects what's actually
been delivered.
As for some reason the delivery slip tries do display some stuff on a
not yet done picking and as the ordered_qty field on the move line do
not reflect the ordered quantity but instead the first quantity reserved
on it, we apply the following changes to make the report consistent.
- In all cases, only display the quantity done.
- Get rid of the ordered / delivered quantities. If the move wasn't
processed fully and a backorder will follow, a message is shown at
the end of the picking.
There's an ongoing task to fix this report in a better way on master.
opw-1808126
Display the reserved quantity of the move line. Before this patch, it
was only displayed if the product was tracked by lot or serial number.
Not showing it make the only visible quantity on the report the initial
demand of the move, leading users to think the move is fully available.
opw-1808126
Before this commit, many2many email tags showed the recipient's name
and email address. Most of the time, the text was cut off in order to
fit in the maximum length of a many2many tag, so the email address was
usually not visible.
With this commit, many2many email tags now show only the recipient's
name. The recipient's email address is displayed when hovering on the
tag.
Task-ID 36677
In case of changing the quantity on hand of two variants of the same product,
the two inventory adjustment created will have the same name (the name of the
product.template).
Show the name of variant instead.
Closes#23696
Following odoo/odoo@87c09b8 if a chart of account template with falsy
complete_set_tax is installed, the default sale and purchase taxes are
not set.
This made a enterprise step fail in test_main_flow, so this commit set
the tax on product inside the test explicitely.
The event was lost during new view refactoring at e3d1abc75f
The "show more" button at the bottom of a too long employee list was not binded
to an event.
After this commit, clicking the button leads to the subordinates list.
CLA signature for agente2012
Closes#23665
This rev. strengthens the handling of concurrent actions of type
'ir.actions.act_window' in the ActionManager. In particular, the
two following cases are now handled:
- execute an action A, its 'load_views' RPC takes a while, during
that time, execute an action B: A can be dropped, meaning that
it doesn't need to fetch its data, and thus it should not be
appended to the DOM (nor appear in the breadcrumbs) ;
- execute an action A, its 'read' or 'search_read' RPC takes a
while, during that time, execute an action B: A can be dropped
and should not be appended to the DOM (nor appear in the
breadcrumbs).
This was already the intended behavior, but in Python a return inside
of a try...finally does not behave this way. From the Python
documentation [1]:
When a return, break or continue statement is executed in the try
suite of a try...finally statement, the finally clause is also
executed ‘on the way out.’
This can cause issues because some payment acquirers will return an
error when refunding a pending transaction. This puts the transaction
in the 'error' state which means it won't be refunded anymore.
Additionally, putting s2s_do_transaction in a try...except like this
hides any traceback that occurs which makes troubleshooting harder.
[1] https://docs.python.org/3/reference/compound_stmts.html#finally
When making a registration for event tickets from a SO, by clicking on apply
from registration.editor.form view, duplicated event registrations
were created(in function action_make_registration) because the registration_id
was not sent to the server.
opw:1824952
Depending on CSS surrounding the editor, the fullscreen component could
fail to set the editor fullscreen.
eg. if the editor is in a modal in a modal (ie. when editing a mail
template when adding an activity and creating a marketing automation
campaign) the fullscreen function would set it to 184px height away 30px
to the screen top.
With this change, `transform` css property is unset on parent elements
of the editor, this was causing the absolute editor to have an offset
parent that was not the body tag.
opw-1824605
closes#23682
especially to alter the behavior of a standard function to make it
behave like a function that is already available (defined in our
extension of jQuery).
especially to alter the behavior of a standard function to make it
behave like a function that is already available (defined in our
extension of jQuery).
The pricelist `list0` is name 'Public Pricelist' and is already present in the
product.pot file.
USD is the renamed name after installing website_sale
Closes#23686
Have a model with a m2m (field A)
this m2m has also a m2m (and displayed as m2m tags in the view) (field AA)
Have a domain on field A, to trigger the search view selection
Click on add an item
Select everything in the modal, making sure that there is more than 40 records
Click on Select
Before this commit:
There was a traceback indicating the local data did not contain records >= 40
This was because the internal data repository was constrained by a limit
After this commit:
We adapt the limit of the local data repository and there is not traceback
OPW 1823400
This commit https://github.com/odoo/odoo/commit/965f49201812cc3cca319a3b5b93331272dd2288 removed empty meta-description and meta-keywords from
the DOM for SEO audit reasons (these tags when empty are considered as
duplicates at a SEO point of view).
By doing so it prevent the 'Optimize SEO' to work correctly since it can't
retrieve the DOM elements that are used to store the user modifications until
he saves.
Now, even when these meta-tags are empty, we display them to people having the
rights to 'Optimize SEO'.
This closes#23659