Before this commit odoobot was appearing twice in mention
suggestions when talking to odoobot.
The initial need to be able to ping odoobot from everywhere led to the
override of channel_fetch_listeners. This is not usefull anymore.
This fix simply removes this override to avoid this problem since we
don't have a real use case where we need to ping odoobot in another
channel.
Task 1907142
closesodoo/odoo#28791
Fix translation placeholders in invite wizard, to make them easier to
understand for translators. Also rework the message generation code
to ensure proper XML structure.
That div has been given an absolute position, which does not work inside another
div on the dashboard.
If there are other dashboard elements below, there are unusable since they are
covered by the no_content_create div.
Moreover, there is no create button on the dashboard, so we shouldn't even see
it.
It also spares us from seeing that hideous clippy-inspired smiling paper sheet.
opw 1907650
closesodoo/odoo#29076
Commit 7077f18e3 tried to fix the website event menu issue.
But the fix was wrong and fixed only the event having a website_id set.
After the 7077f18e3 fix, event with a website_id set are working as expected
but the ones without a website_id are not working.
Indeed, it will create a website.menu without a website_id which will result in
the menu being duplicated for each website (multi-website rule).
The required on website_id when activating website menu on event was trying to
hide that new issue but it was problematic since:
1. We were removing a feature for no reason as it would not be possible anymore
to create a generic event (no website) with website menu activated.
2. The required would only work in form view, demo data or custo data loaded
through xml without a website_id but having website menu activated would
still bug and would not have a menu. Worst, the menu would be duplicated for
every website and added to the website navbar.
Now, regardless of the event having a website_id set or not, activating or
deactivating event menu will work.
closesodoo/odoo#29036
Before this commit, the total amount of unread messages of a
channel was considered in the computation of the messaging
menu counter.
As a result, if the channel contains 100 unread messages,
the messaging menu was displaying a counter of more than 100.
The intended behaviour is to increment the messaging menu
counter once per unread channel, thus the example above should
incremented the counter only once. The channel preview itself
should still display that there are 100 unread messages.
Task-ID 1913080
closesodoo/odoo#29080
Fine tuning of 00bf6709a8.
Let's consider two variants V1 and V2
The function check_cycle was too restrictive, it didn't allow
to create a BOM for V1 with a dependence to V2.
But a common use case could be for example:
A black T-shirt made from a white T-shirt and black color.
opw:1911622
closesodoo/odoo#29075
Before:
Suppose 'invoices 2018/0002 and 2018/0003' that becomes '2018000220180003' after
REGEXP_REPLACE(st_line.name, '[^0-9]', '', 'g').
'2018000220180003' ~ '20180002' match: OK
'2018000220180003' ~ '2018' match: NOT OK
'2018000220180003' ~ '' match: NOT OK
After this commit:
move.name/move.ref giving an empty string are filtered out.
'invoices 2018/0002 and 2018/0003'
becomes ' 20180002 20180003' after REGEXP_REPLACE(st_line.name, '[^(0-9|\s)]', '', 'g')
and becomes {"",2018001,2018002} after the regexp_split_to_array.
Then, the matching is now done by a comparison instead of a pattern matching between the move
and this array of potential candidates.
'20180002' = ANY({"",2018001,2018002}) match: OK
'2018' = ANY({"",2018001,2018002}) not match: OK
'' is filtered out: OK
closesodoo/odoo#28962
every request on the IAP-service server sends a batch of 25 views to
process. Each of them takes around 1.5 second to be processed, thus a
full batch will exceed the default timeout of 15 seconds.
In addition, we removed the config parameter that allowed to choose the
batch size as an high value could provoke another timeout error that
would evade the user's attention.
closesodoo/odoo#28967
Being in debug mode is necessary to become superuser (whether on the
login page or within the client), however because the becoming
endpoint would straight redirect to the _login_redirect result the
debug mode would be lost, which is commonly inconvenient.
Replace the redirect_with_hash call by local_redirect, which goes
through great pains to conserve the ?debug by default.
Task 1908202
closesodoo/odoo#29058
This tour was broken since the following refactoring:
https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c
With this commit, mail_tour should work correctly, and
is automatically run on runbot.
Note that the tour is automatically run in the module `test_mail`,
so that the tips are not displayed by installing Discuss.
Task-ID 1912730
closesodoo/odoo#29040
Let's consider two variants V1 and V2
The function check_cycle was too restrictive, it didn't allow
to create a BOM for V1 with a dependence to V2.
But a common use case could be for example:
A black T-shirt made from a white T-shirt and black color.
opw:1911622
closesodoo/odoo#29038
Have a many2one, click on search more
Open the filter menu of the search view
Add custom filter
Click to select a field
Before this commit, the whole dropdown closed
After this commit, it doesn't
OPW 1911337
closesodoo/odoo#28969
Revision on https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c
Before the commit above, it was possible to reply to a message
from Inbox. Those messages were linked to a document, and replying
to any of them put a response in the related document.
This feature has been broken since the commit above: the reply
icon was only shown on messages linked to a channel, instead of
message linked to a document. Also, it was erroneously prompting
that the message was sent to the channel, even though it was not
the case.
This commit fixes the issue by toggling the visibility of the
reply icon, so that it is shown only for messages that come from
a document. Also, since posting a message requires a thread, this
commit added the possibility to post a message from a mailbox,
which instead posts the message to the related document thread.
Task-ID 1912647
closesodoo/odoo#29028
Before this commit, when focusing on a date[time] field, the value was not selected
In v11.0, it was
This is due mostly because of the migration to BootStrap 4
After this commit, the value inside the input is selected
OPW 1911333
closesodoo/odoo#28989
Steps to reproduce the bug:
- Go to Contact app
- click on Configuration > Bank accounts
- Create a new one
Bug:
It was impossible because the field partner_id was hidden.
The form view view_company_partner_bank_form was displayed instead
of view_partner_bank_form.
opw:1908114
closesodoo/odoo#28916
When only installing in a new instance the app maintenance,
the admin was not in the group 'group_equipment_manager'.
So when going to Maintenance > Equipment, the button create
was not available
opw:1912453
closesodoo/odoo#29026
There was an issue in translation that broke the mail template "Sales
Order: Send by email" in german. This prevented to do a wired sale on
the ecommerce in german.
This has been fixed in https://transifex.com/odoo/ but is done in this
PR to fix it more speedily than next week.
opw-1911419
opw-1911696
closes#29033
When determining the last order for a given user, public users from
other websites need to be properly ignored. The previous behavior was
broken by 9d72263717
Before this commit, chat windows could not be sync'ed
between browser tabs for about 10 to 20 seconds.
This issue is caused by the implementation of the
crosstab longpolling, which uses a master-slave
architecture with a single tab being the master tab.
The master tab is responsible for performing the
longpolling RPC, so that it keeps a single HTTP request
for all Odoo tabs. Other tabs are synchronized through
the local storage.
When the master tab was closed, a new master tab election
must occur. However, this process was taking up to 20 seconds,
due to the tab waiting for their next tick on the local
storage to initiate a new election. The tick for a slave
tab is 10 seconds, and it may jumps a tick in case the master
tab is closed exactly before the tick, hence extending the
duration to 20 seconds.
This commit fixes the problem by ensuring that the tab
election for the longpolling is done right after the master
tab is closed. As a result, a new master tab should follow
right away.
Steps to reproduce:
1. open two tabs.
2. open a chat window in one tab: it opens in both tabs.
3. fold/unfold chat window in one tab: both tab should sync.
4. refresh both tabs.
5. fold/unfold chat window in one tab: both tab should not sync.
6. after 10 or 20 seconds, both tabs should again sync.
Task-ID 1911437
closesodoo/odoo#28925
- When fetching messages (e.g. opening discuss), we do not check if the
model associated to a message is accessible for the current user.
This could result to access rights error messages when trying to read the
main attachment of the associated record.
To avoid to triggers this errors, we first check if the current user
has read access to the specific model, if so we try to read the
record's main attachment.
closesodoo/odoo#29025
The example given when creating an account only applies to United
States. It is then confusing to users in other countries.
opw-1908241
closesodoo/odoo#29019
This commit fixes two related issues:
1. Previews without any message should not be dated.
Before this commit, when a channel or dm preview had no date,
it was displaying the current date. This commit fixes the issue
by not showing the date for those previews.
2. Dates previews should appear before undated previews.
Before this commit, undated previews were considered similarly
as dated previews in the ordering of previews in the messaging
menu. Since DMs are shown before Channels, any pinned DM without
any message were displayed on top of messages with some message.
This commit fixes the issue by putting undated previews after
dated ones. This rule is applied before considering type of the
thread (i.e. DMs before channels).
Task-ID 1912001
Before this commit, DMs had the prefix '#' in their
displayed name (e.g. '#Demo User').
This commit fixes the issue by putting this prefix
only on non-chat DMs. In particular, mailboxes, DMs
and Livechats no longer show this prefix. This change
is also visible in the breadcrumb of the discuss app.
Task-ID 1911738
This was possible do to it on opportunities, but not on leads (other
search view).
This is needed to allow effective search from activity dropdown.
closesodoo/odoo#29003
This rev. is a complement to the partial backport 49e78f46 of
abf32b8. In addition to the helpers, we also backport the asserts
(like isVisible, containsOnce...).
closesodoo/odoo#28994
Unsplash CEO asked us to stop exposing our key client side (even if it was
only in the browser network and previously allowed by their API team leader).
Also, all our Odoo instances (on premise or not) should share the same
production key, which is not possible in our case obviously.
After multiple exchange, it has been negociated that:
1. Our non saas user won't be able to apply for a production key and should
prefix they Unsplash application name by 'Odoo:'. Their key will remain in
test mode.
Indeed, Unsplash won't be able to review every Odoo application and ensure
it respects the API terms and it is a real application.
2. Our saas user will query Unsplash server side so the key remain hidden.
3. The documentation should explain it all
task-1911345
closesodoo/odoo#28804
Avoid invalidating ormcache when possible.
There are currently too many invalidations, which makes the ormcache less effective in practice.
closesodoo/odoo#28993
Before this commit:
An unsplash image would be saved as an attachement with:
- A name like 'x54ze78z.JPEG'
- An url like '/unsplash/x54ze78z.JPEG'
- A filename like 'x54ze78z.JPGED'
We would not store the searched terms in the name/url.
Then, we would not be able to search on local attachement in the media dialog
to retrieve the images based on what we searched.
Now:
We store the searched terms in the name/url so it can be used later in the
media dialog search:
- Name like 'big_lion.jpg' (duplicates may be possible)
- Url like '/unsplash/x54ze78z/big_lion.jpg'
- Filename like 'unsplash_x54ze78z_big_lion.jpg'
Task-1911345
Unsplash CEO asked us to stop exposing our key client side (even if it was
only in the browser network and previously allowed by their API team leader).
After multiple exchange, it has been negociated that:
1. Our non saas user won't be able to apply for a production key and should
prefix they Unsplash application name by 'Odoo:'. Their key will remain in
test mode.
Indeed, Unsplash won't be able to review every Odoo application and ensure
it respects the API terms and it is a real application.
2. Our saas user will query Unsplash with a dedicated enterprise key
3. The documentation should explain it all
Task-1911345
Writing on a parameter invalidates the ormcache and propagates the invalidation
to other workers. Setting a parameter to its current value should not trigger
ormcache invalidations.
Completes https://github.com/odoo/odoo/pull/27981
- Correct `col-*-offset-*` support.
- Compatibility for BS3-deprecated `visible-*` classes (only not taking
care of table/table-row/table-cell cases as difficult with sass and
those classes were already BS3 deprecated anyway).
- Correct order for BS3 `visible-*-*` and `hidden-*` classes (otherwise
their combination are not correctly working). Also, the 'inline'
version was forgotten by previous PR.
- Compatibility for BS3 `btn-xs` class.
closesodoo/odoo#28842
In order to see the remaining days in the tree view we need to use
display_name instead of name, as display name will use the name_get
which is overriden to add this information.
closesodoo/odoo#28981
Do not propagate cache invalidations to other workers when changes must be
discarded, because of an import error or a dry run, which are both handled as
successful transactions.
Add a search containing a domain to dashboard. Remove that domain.
Do a new search with a different domain.
Add that search to dashboard;
the domain sent would be the concatenation of the two domains.
We make it so that only the last domain is sent, with a test.
opw 1907650
closesodoo/odoo#28843