The field help on an ir.actions.act_window is a translatable html field.
When a value is set, it is processed by the `html_sanitize` method to make sure
only valid HTML content is present in the database.
In sanitization, xml line break tag `<br/>` is converted into html tag `<br>`.
Before revision 6c8e53a0, `xml_translate` method was using XML parser for html
fields. Line break was then exported as `<br/>`.
Since this revision, it is using a proper html parser and line break is exported
the same way as it is stored in the database, with a `<br>`.
When translating html value, the content is split per meaningful block and
recomposed based on the msgsrc value. Due to the change of parser, translations
exported before 6c8e53a0 contains `<br/>` tag inside the msgstr and could not
match any block in splitted content (which contains `<br>`).
Correct the .pot with valid tag.
Do not change the xml content of help message as it should still be XML inside
the data files.
opw 671477
Before 3959afc the `node` tested would be the selection containing node,
but since then it may have been a `<br/>` which has some damaging
effects: now entering double enter at the end of a list, quote or code
block doesn't end this block.
Testing the use case corrected by 3959afc, the said change seems to have
no effect so this commit reverts it.
opw-667618
Since 27a7cab52b, it may happen that the
stock.history view contains duplicated id (mutliple quants with
different lots for a single move).
Regroup serial numbers in order to keep a unique id per row.
opw-669349
Specifying the partner_id in the search does not give the same
result as the portal_sale module, which actually lists all the
SOs/Quotes/Invoices where you or anyone from your company is the
partner_id. To make the backend and frontend listings consistent,
let the ACL and ir_rules do their job (these are defined in the
portal_sale module).
`account.move.line.company_id` is a related
to `account_id.company_id`
`account.bank.statement.company_id` is a related
to `journal_id.company_id`
Any attempt to set the `company_id` value
when creating or writing records for these models
will result to the update of the value in
the related record (the update of `company_id` in the
`account.account and the `account.journal`), which
will result in the update of the `company_id` value in all
records in which this related record is used
(in all `account.move.line` where this `account_id` is used,
in all `account.bank.statement` where this `journal_id` is used).
In other words, the more a database had `account.move.line`
or `account.bank.statement` records, the more
it took time for the pos sessions to be closed.
To force a company for an `account.move.line`
(`account.bank.statement`), you must just
set the correct `account_id`(`journal_id`)
in the first place.
For instance, for the `account_id`, passing
`force_company` in the context ensure to choose
the `account.account` from the right company
property.
See
`local_context = dict(context or {}, force_company=company_id)`
which is set in `_confirm_orders` just before calling
`_create_account_move_line` which retrieve
the account from the
`property_account_receivable_id` property.
opw-671362
For a message to be considered as a private message,
the message must have:
- `no_auto_thread` set to `False`
in other words, it must not be attached to a thread
- no `model` or `res_id` must be set on the message
meaning the message is not attached to a specific
record thread.
See `_get_message_id` in `mail/models/mail_message.py`.
Before this revision, the mails sent from
`Discuss` > `Send mail` were not regarded
as private messages,
but as a kind of mass mailing messages,
with a `reply-to` wrongly set.
Any attempt to reply to these mails
failed with a delivery failure notification.
This was because the `message-id` of these messages
contained `reply-to`, and such message-ids are
treated as a special case in the messages routing
(basically, the match on the mail references is disabled
for these messages containing `reply-to` in
their message-id).
opw-669241
Commit bfa68b433 adds the field `date_planned_end` in the Gantt view.
However, the Gant view will perform search on this field, which is an
issue since it is a computed field without any `fct_search` defined.
opw-669042
The access/follow/actions buttons on the notification email template
are sent only to employee. For this particular business model when
want all the users to receive them, as the portal users.
This override was always sending the document to all the recipients.
If the user is only a follower, he sees the button but cannot access
to My Account as he's not a user.
Some computed fields have been added in v9 and are calling the method
_compute_day. This method accesses the project related to the issue
So a user portal is able to see his own issue, but cannot open the
form view as the prefetching is loading the fields. Hiding them in
the group base.group_user doesn't have any effect as the compute method
is called on the read. These information may have their importance to
the customer too.
We decided to compute these fields on superuser access rights.
Also the field project_id is displayed on the project_issue form view.
As this information is internal, we're hiding this also under the employee
group.
The access/follow/actions buttons on the notification email template
are sent only to employee. For this particular business model when
want all the users to receive them, as the portal users.
The access/follow/actions buttons on the notification email template
are sent only to employee. For this particular business model when
want all the users to receive them, as the portal users.
When the stock.picking record is linked to some pack.operation records,
the move line state displayed has to be the move line with the same product as
the one in the pack operation record.
opw:671192
As it's done few lines below,
in `set_message_done`.
The user could have a notication associated
to a message he has not, or no longer, the
write access, but he should still be able
to mark it as read.
opw-671188
Adding an attribute with only one value does not recreate the product,
but write this attribute on every product instead. However, the current
filter is not correct: it checks if the given attribute value is not
already in the list of attribute values of the product.
The appropriate check is to verify that the attribute itself is not
already in the list of attributes of the product. Indeed, there is a
constraint to prevent the same attribute to have two different values on
the same product.
BTW, it's a new api function (`mapped`) inside an old api module. Not
the cleanest way to do it, but simpler to write.
opw-671114
Adaptations following rev. 1684ae4:
The website pricelist is now dynamic, according
to the pricelist chosen by the customer on the website.
It's no longer a static pricelist, it's no longer
the public user pricelist.
Therefore, when computing the variants prices,
the prices should no longer be converted
from the public user pricelist to the current (context)
pricelist, but from the product currency to the
current pricelist chosen by the customer on the website
In addition, when getting the unit price,
`/shop/get_unit_price`,
the website current pricelist should always be used,
it should never fall back on the partner pricelist,
as, it's the user who choose his pricelist from the website
now (if he has specific set on his partner
form, it's that one which is loaded by default, and which
is returned by the website.pricelist_id)
In addition, the displayed currency on the ecommerce
must always be the current website pricelist currency
Adaptations following rev. 3622c0d:
A product can have no company set (not required).
Therefore, when attempting to set the `from_currency`
to the product company currency, this could return
`None`, if no company was set on the product.
`product.currency_id` ensures to always return a currency
for the product. It's the company currency
if the product has a company set, otherwise it take it from
the main company (`base.main_company`).
In addition, when editing the product price from the website,
the price must be displayed within the product currency,
as, if changed by the user, it changes the product sales
price directly on the product form, without any currency
conversion applied or whatever.
opw-670898
opw-671100
When installing or upgrating a module via the apps managing view, the
module updates are applied in a new cursor. So when getting the action
to do after updating the module, we need to have a transaction current
with commited transaction.
closes#11216
opw-660269