Purpose of this commit is to improve performance of post and notify through
various code improvements.
Containing
* making of _notify_customize_recipients a mail.thread method;
* _message_auto_subscribe_followers optimized;
* renaming and optimisation of _notify_partners;
* message_post_attachements optization;
* remove unused mail_post_autofollow_partner_ids context key;
* minimize message create queries;
* only check record related access right for thread messages not in pending
moderation;
* get attachements from values instead of db;
* storing lang in ctx from the beginning;
* don't track on write on attachments;
Related to task 1943901
Linked to PR #32404
Purpose is to make field use more obvious by correctly stating in the
name it should contain an xml id to a qweb layout used for email
notifications. This renaming is propagated through various calls and
addons.
Related to task 1943901
Linked to PR #32404
Purpose of this commit is to clean notification process: calls, methods
API, method name, variable propagation.
Contains notably
* simplify API of methods used to group recipients when sending notification
emails;
* improve and rename methods used in email notification process;
* move some methods on model itself as non mail thread records could be
mass-mailed and _notify_email_headers could be called on other records;
Related to task 1943901
Linked to PR #32404
If no email layout is found when trying to render the layout around the
message content, just send body in notification emails instead of
crashing. See notably 89051058f4 .
Related to task 1943901
Linked to PR #32404
Purpose of this commit is to move notification methods to mail.thread. Indeed
currently they are split among several models: thread, message, partner.
It makes code difficult to understand. Base record has to be propagated in
order to run methods on it. It is therefore simpler to make those methods
on mail.thread and correctly have model methods.
All notification methods are moved into a single section in the mail.thread
file. This implies some more code move inside mail.thread but allow to have
methods classified by their purpose.
Related to task 1943901
Linked to PR #32404
Message post should always be called on a record (ensure_one). That way we
ensure posting a message is always done in a record's context with right
values computed (reply_to, followers, ...)
Message_notify can be called on record or on mail_thread and must have
partner_ids. It is based on the recently modified user_notification mechanism
and allow to notify a partner on a record or just to push him a message
(aka, not linked to a record).
Small performance improvement
* browse recipients instead of search in _notify_email_recipients;
* todo in future optimizations: mayybe be improve by searching on ids
and is_blacklist immediately;
Related to task 1943901
Linked to PR #32404
Purpose of this commit is to clean some bits of code, notably calls to
message_post/log as well as notification methods. It will ease performance
improvement work.
Small optimization: account: read content after extension check
Parameter cleaning
* use message log with kwargs instead of args;
* remove message post after hook useless parameters;
* remove _notify_email_recipients useless message parameter;
* remove message_notify useless send_after_commit parameters;
* remove message post params matching default values;
Other improvements
* remove message_post commands support for partners and channels;
* only calls message_post with ids list for channels and partners. We
don't support mix of ids and command anymore to simplify code;
* remove support of private discussion in mail.thread adding partners
as recipients, as there is no use anymore;
Related to task 1943901
Linked to PR #32404
It includes notification on inbox / email as well as attachments management.
This latter one adds quite a lot of queries and is not currently tested
for performances. Future commits will improve those counters.
Related to task 1943901
Linked to PR #32404
Currently if a message has a res_id and a res_model it appears in the
matching record's chatter. Its access rights are computed based on this
record. This is the standard behavior of mail.message model.
User notifications are currently built on messages not having model and
res_id in order to avoid appearing on chatter. This has several drawbacks
notably access rights, redirection to the record, systray, finding back
records, ...
This commit solves those issues by adding new message_type 'user_notification'
that should be as a classic mail.message with model and res_id but without
the whole notification mechanism and without being displayed in the chatter.
An user notification is now a classic message pushed to a given partner only
and not displayed in the chatter.
Related to task 1943901
Linked to PR #32404
Since ORM changes, the ids a many2many are new (virtual) ones in a
onchange, so we have to point to origin which are the real records to
check that the many2one is in as it has a real id.
closesodoo/odoo#33763
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Currently the fact that the changes in the expected dates are propagated
or not is based on :
- the value of the field propagate on the stock.rule
- the general inventory setting setting use_propagation_minimum_delta
That's not easy to understand for users and difficult to configure.
The purpose of this task is to clarify this configuration (everything is configured
at the same place + but we keep the flexibility by setting this config on the stock.rule)
task-1913401
closesodoo/odoo#33719
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
We use a new method to connect the box to a device in the network.
We use the socket to listen a specific port in the box to connect device through the TCP/IP
Task: 1891152
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#33398
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
This commit improve the display of payments lines and give
a name to last notebook group in /addons/point_of_sale/views/account_statement_view.xml
to be able to override it in enterprise
With this commit it is now possible for the IoT Box
to listen on a specific port of the box to interact
with a device via TCP / IP.
We use the library 'socket' to listen on port 9000
and if a request comes on this port we create an IoT Device
Implement the propagation minimum delta per rule in purchase_stock. Override
properly the write to handle both RFQ and PO. Take care of not merging po lines
where the expecte date should be different
Add propre test cases.
task-1913401
This commit moves the "propagation minimum delta" from a company setting to a
per-rule setting.
We implement this idea in the stock module and take this opportunity to clean
up the override of stock move's write.
We add a few basics tests.
task-1913401
This commit relax, by one second, two datetimes comparison regarding
workorder planning to avoid any false positives
closesodoo/odoo#33740
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
The goal is to be coherent with the user property.
Actually, company_id and company_ids on the environment are no fields.
Calling env.company_id returns a browse record, not an id.
The purpose of this commit is to allow to define lead generations rules based on the website visited.
Task-ID: 1964025
closesodoo/odoo#33391
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
In order to make the overview more understandable, we provide some modifications:
- remove some value when they are zero ("No task found", ...)
- the whole middle column (percentages) is merged inside the hours one
- provide some tooltips
- renaming titles
- ...
To do so and to avoid leaving empty lines or doing complicated template branching, the
above table is split in two different tables, so that we can remove lines independently.
We also added a new category in the overview, concerning timesheets that are related to a cancelled so. This meant tweaking the project_overview plan_prepare_value method, in order to have the new numbers calculated and keep the others consitent.
Task-1968121
closesodoo/odoo#33015
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
If the user tries to save the recurrent event with 0 as the number of
repitations or interval there will be a traceback so instead of traceback
display the warning so user will not be able to save that event.
Task-1930809
closesodoo/odoo#31388
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
when moving from company A to company B, company A should not be 'uncheck' (it should stay in the set of visible companies)
use case: https://drive.google.com/file/d/1o9lN_8jHSxDOkeqTpo7F_NgmvO4NwF2l/view
I start in A with only A visible
I check B to make both A and B visible
I move to B and A is not visible anymore
when moving to a company that is not checked, it should be checked, but the reverse is not true (moving out of a company should not uncheck it)
fp request
* website, website_sale_comparison, website_sale_coupon,
website_sale_delivery, website_sale_wishlist
- Use cards to match event and forum recent design refactoring
- Make the shop use responsive and perfect-squared product grid items
- Make the shop product list view option a CSS-only option, which
visitors can toggle to/out
- Use better XML and JS for existing options and add new options
- Allow to set ppg/ppr
- Better mobile responsiveness
- Make more robust xpath
- ...
Note: the design will be reviewed in an upcoming task, this ensures
more robust XML to work on and new options to start with.
See sub-commits for details.
task-1925327
closesodoo/odoo#31147
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
- Allow to switch from grid to list view in edition
- Do not show grid options when in list view
Part of https://github.com/odoo/odoo/pull/31147
task-1925327
- On mobile, both list view and grid view are the same, the toggle
button is thus hidden to simplify the UI
- Review table alignements and button behaviors on mobile
- ...
Part of https://github.com/odoo/odoo/pull/31147
task-1925327
* website_sale_comparison, website_sale_wishlist
- Use cards to match event and forum recent design refactoring
- Make the shop use responsive and perfect-squared product grid items
- Make the shop product list view option a CSS-only option, which
visitors can toggle to/out.
- Use better XML and JS for existing options.
- Better mobile responsiveness
Part of https://github.com/odoo/odoo/pull/31147
task-1925327
- 'border_primary' -> BS4 equivalent: 'border border-primary'
- 'noborder' -> BS4 equivalent: 'border-0'
- 'font-weight-normal' -> BS4 has the same class for the same behavior
- 'break-word' -> Unused, and probably a bad idea to use anyway
Part of https://github.com/odoo/odoo/pull/31147
task-1925327