Regression introduced in aae980b458
When attempting to use the context,
always check that it is set first.
It was no longer possible to reset a password from the login form
opw-659017
The QWeb image widget allows passing either
max_width, max_height or both, but the
controller required both.
We'll consider a 0px dimension request as
meaning: "appropriate value according to ratio".
some incoming mail containing class like "fa-spin" or "modal in" have an unwanted behavior in Odoo, incoming mail should not have
special classes, so we remove all the class that are not in the whitelist.
- display full content of messages in Discuss
- no content helpers in inbox and starred improved
- mark as read tooltip instead of mark ad done
- decrease font size in chat windows
- increase chat windows dimensions
- display avatars in chat windows
- chat window background is now white
- notes are displayed with a darker background
Clicking on this icon redirects to the client action (for now at least). By
quickly clicking several times on it, we try to restore the scroll position of
a channel that not yet exists. This rev. prevents from getting a traceback in
that case.
4b003afd0a made it so that the constructor
of an orderline calls set_quantity(). The issue is that this function
first asserts that the order is editable. pos_restaurant uses the
clone() of orderline when splitting an order, and this method did not
set order, leading to an error.
This fixes the issue by temporarily cloning the order reference, and
then setting it back to null. It's not the cleanest fix, but seeing as
how the clone() method is only used in one place this will have to do
for now.
Do not restrict followers-based alias to members of non public channels.
Otherwise you may have issues defining a public mailing list with a
subscription step. People still wouldn't be able to post on a public
channel using a restricted alias.
When using a template adding the signature, do not re-add it when posting
the message on a document. For example the Sale Order - Send by Email
templates generated two signature in the email.
This issue has been introduced when migrating mail to the new API.
When the delimiter '@' is used in the composer, a regular expression is
built in order to suggest followers. However, if this regular expression
is incorrect, it causes a crash since RegExp will throw a syntax error.
Since a new regular expression is built for each new character the user
types, this situation can occur very easily. For example, typing '@('
will cause a crash.
This fix replaces characters which may easily lead to a syntax error by
a space.
Test that when an included tax is mapped by a fiscal position, the
included tax must be subtracted to the price of the product.
Inspired from 503820acb6
When no update has been done on website, we don't have this default-lang
data/attribute. So we use an hack to find the default lang which one is
the shortest because no lang is present in the url.
Most occurences of the fullscreen feature have
been removed in the below revision:
eebdbb677fdee1163c16ec2bb967f37e1e4b69e
Only the field has been left.
This isn't allowed to go fullscreen
without a direct user click
by most browsers, for security
purposes.
opw-658838
message_get_email_values is declared as receiving cr, uid, id. However this method
is an override of a multi method. A decorator has been added to tell that id is
actually a list of ids and avoid list encapsulation issues with the result. This
way the method parameters are not changed.
[CLEAN] mail: removed some unused imports, by the way
This computed field allows to know whether the current user is a channel
member or not. This is necessary to fix the join / leave action button
on channels. It was still based on the followers and has not been updated
with the new v9 model of channel members.
Now that channels can follow documents, restricted aliases are a bit too
restricted. We consider that followers-based aliases accept emails from
the direct followers (message_partner_ids) or member of non public
channels (message_channel_ids, filetered public field). This way we avoid
having public channels added by mistake, leading to information leak.
Not being able to add / remove members of a channel through its form view is
quite limitating.
Also added the followers widget in the channel form view in technical mode.
Indeed it is sometimes necessary to be able to check a channel followers.
When making several expenses for the same analytic account,
it can be possible that these expenses have the same product but different
price unit(e.g.:this is the case for plane ticket with a vairiable price
according to the time). Then the function "_get_sale_order_line" must check
for all the existing confirmed SO lines if there is one which matches with
the analytic account, the product and the price before creating a new SO line.
opw:658383
The "Quotation" bar in the sales team
dashboard excluded sent quotation,
it only included draft quotation.
A `sale.order` in the state `sent` must
be considered as a quotation, the only
different is that it has been sent by
mail to the customer, that's all.
opw-658861
Before this revision, the `char_domain` re-rendered its display
only when its domain value was changed.
It must re-render as well when the model on which this domain
is applied is changed, as the number of records can
obviously be different.
e.g., in mass-mailing, when changing the recipients type
from partners to leads, the domain doesn't change, it
stays `['opt_out', '=', False]`, but the model on which
this domain is applied does change, as well as the number
of selected records.
opw-658391
By default, when changing the recipients type of a
mass-mailing to partners or leads,
the selected records included the opt-out records.
To be consistent, as:
- `opt-out` records are excluded by default for mass mailing contacts
- the filter excluding the opt-out records
`Available for mass-mailing` is loaded by default
when changing the selection in the selection list dialog
The domain for partners and leads should exclude
opt-out records by default.
opw-658391
The LDAP method filter_format(filter_template,assertion_values) requires
that the length of assertion_values matches the count of %s in
filter_template. If not, a TypeError exception is thrown.
This fix catches the exception and displays an understandable error
message instead.
opw-608126
opw-657370
In a multi-currency environment, the difference amount computed will be
affected by the exchange rate change. In other words, if the exchange
rate changes between the invoice date and the payment date, this
difference will be reflected in the difference amount. For example:
- Company currency is USD, invoice currency is EUR
- At invoice date, 1 USD = 1 EUR
- At payment date, 1 USD = 0.9 EUR
- An invoice of 1000 EUR is created
- A payment of 1000 EUR is done
Without this fix, a payment difference of -100 EUR is shown. The reason
is that at invoice date, we expect a payment corresponding to 1000 USD,
which is equal to 900 EUR at payment date.
This fix doesn't do any currency conversion if the payment currency is
the same than the invoice currency, to prevent any exchange rate
difference shown. Indeed, if an invoice is 1000 EUR, a user expects that
a payment of 1000 EUR will not show any payment difference.
Note that this doesn't fix the payment difference amount when an invoice
in a given currency is paid in another currency.
opw-658177
On a payment form, the company currency is obtained from the journal.
This means that as long as no journal has been selected, no company
currency is defined and the payment difference is wrongly calculated.
This fix uses as company currency the currency of the user's company if
no journal is chosen, which should be a safe choice and lead to a
correct calculation of the payment difference.
opw-658177