When merging leads with a company set different
than the current user company,
it failed because the notification email (the message
written in the thread summarizing the merge) couldn't
read the company name (the `name_get` call on the company)
because of the multi-company record rule.
`name_get` can be safely called as `sudo`, as it does
nothing else than returning the name of the record. This is
already done for the many2one links in the web client anyway
(You can see leads from a company different than yours,
you can see the company name to which the leads belongs to,
but you can't click on the company many2one link)
opw-677986
When sending a notification email to an event attendee
for an all day event, the timezone must be ignored
as the `start` and `stop` datetime are stored as
the day date + '00:00:00'. If the timezone is applied,
for users being in a negative timezone (such as an American
timezone), the day displayed would be the day just before.
opw-677019
c8732bea1e did not take into account that
we don't have specific callbacks for weight or price type
barcodes. Those where handled by the product callback.
opw-678556
Goal: Display the timesheet icon on the app switcher even if
hr_timesheet_sheet is not installed to be able to acces the Activities
without the full timesheet integration.
Since revision 7eab8e26d3
the `_onchange_partner_id` of `account.invoice` failed
if the SUPERUSER created an invoice for another company
than his own, and if the partner had not a specific
receivable or payable account (meaning the default
accounts are used, the accounts coming from the properties
of this company without any partner specified)
because
```
prop.search([
('name', '=', 'property_account_receivable_id'),
('company_id', '=', company_id)
])`
```
can return multiple records, if several partners
have their own receivable accounts set, and,
since the above revision,
`get_by_record` specify `ensure_one`, meaning
you cannot pass multiple records to this method.
This domain was built a the time
(2009, rev. 80861660c6)
to handle the multi-company property,
which can now be handle with a simple `force_company`
passed in the context. It was not the case at the time.
This revision could be applied in former releases,
but this is not a necessity. This is a necessity
in saas-10, because of the above revision.
opw-678536
product,point_of_sale: Add a widget handle on the sequence, to be able to order the products
easily for the ecommerce for example. (Move it from the PoS module to the
product module)
When computing the real price of a product, a currency of reference is
needed, first the currency of the product's company is privileged and
if no company is set on the product then the currency of the user's company
is taken.
opw:678159
A read more was added to every node having a mail-quote tag.
However all quotes and their child nodes are tagged, leading to numerous unnecessary read more / read less.
Now, all consecutive mail-quote are joined in one 'read more/read less'.
For Manufacturing and Repairs, replace the gavel by a wrench. A gavel is a small hammer used by a judge; it is not used in manufacturing. Keep it for when we will have a Law app.
For POS, replace the briefcase by a screen:
For timesheet, replace the calendar by a clock:
For calendar, use the calendar:
For event, use a ticket, it's more generic than a martini glass:
When a user has the access rights "Configuration" or "Access Rights"
regarding the "Administration" module category, the click on the
"Settings" menu leads to an access error.
This is because the dashboard fetches data about the number of installed
modules ("installed_apps"), which requires access to "ir.module.module".
Since it is not easily possible to hide a parts of the dashboard (the
static templates do not recognize the "groups" attribute), we simply
hide the dashboard for these users.
opw-678531
Printing the product label is only available on the variants.
It should be available on the product template too as you may not work
with them.
We took the opportunity to refactor the label report too.
Quants are created, and stock moves are updated, with the purchase
value converted at current rates. However, the product average
was calculated before that value was retrieved. This ensures
the correct value is retrieved for the average cost calculation
and will match the actual quants.
Fixes#12163Closes#12164
opw-678511
Reading N property fields is as costly as reading each field separately.
Reading them one by one makes more sense performance-wise, as you will only
read the ones you need.
It is not possible to edit the start_date, end_date, start_datetime,
end_datetime and duration for a recurrent event due to the raesons
explained in https://github.com/odoo/odoo/issues/10278 or see
opw:665700
opw:677139
The get_recursive_parent function seemingly depended on the ordering of
the rule_categories recordset which happens to work fine in most cases
because all data first defines the parent before defining the children
rule categories. But if you happen to do it the other way around it
won't work and it will infinitely call itself because:
if rule_categories[0].parent_id:
rule_categories = rule_categories[0].parent_id | rule_categories
won't change the value of rule_categories[0].
opw-673222 (loosely related)
When going over the colorpicker when no bg-* class was selected yet,
the bg-undefined class was added on the snippet.
Also, when clicking on the reset button, the bg-* class was removed
but the selected button in the colorpicker was not unselected.
When creating a new stock.quant.package, the method tried to access a key
that does not exist in an intermediate dict. Indeed a new record does not
have an ID available in self.ids.