In this commit, we remove the resume section for the attribute_selection
as it can lead to a lot of screen for the end-user (especially if the
attribute_selection is used in a combo). We add the add to cart button
instead with a quantity selector. The end resume is kept for the combo
selection.
Part-of: odoo/odoo#139187
In this commit, we change the way the order_widget acts. Now, if we are
in mobile with pay after meal, the order_widget will show 'To Order'
instead of 'To Pay' when clicking on 'Order Now' for a second time
and the order button will be disable until a new line is added. To see
what is already sent to the waiters, we can click on the 'My Order'
button in the landing page which will display the cart.
Part-of: odoo/odoo#139187
In the self, when clicking on the information tag on a product, the
product_info_popup is displayed. In this popup, the user has
the possibility to add the product to its cart. However, the
quantity is always set to 1. This commit adds a quantity selector
to the product_info_popup so that the user can choose the quantity
he wants to add to its cart. For the products that have attributes or
are combos, the quantity selector is not displayed as it will be
displayed later in the process after clicking on add to cart.
Part-of: odoo/odoo#139187
In Hungary, the tax id can be valid in different distinct ways. Either by
putting a vat number looking like 'HU12345678' (EU VAT) or '12345678-1-12'
(native format) or 8071592153 (Indiviual). To do the different check we added
regex to check if it matches one of the three ways, otherwise a validation error
will be thrown.
closesodoo/odoo#139183
Task: 3522940
X-original-commit: 0504d98165c79499ee5d6c4263a33f66d96f9489
Signed-off-by: William André (wan) <wan@odoo.com>
This commit removes the caret from the statusbar side dropdowns as it
was not intended to appear and causes the buttons to be misaligned.
closesodoo/odoo#139168
Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
*:
- hr_holidays
- resource
- website_slides
Before this commit, the populate files for the listed modules
were calling the random python library.
As we don't want non-deterministic populate, this import has
been changed to use the odoo Random tool which allows deterministic
randomization through seeds.
This commit also changes the way populate works for leaves in hr_holidays
so that they fit the current way of defining leaves.
closesodoo/odoo#139150
Related: odoo/enterprise#49162
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Steps to reproduce:
- install `hr_homeworking`
- connect as Mitchell Admin
- make a private chat with Marc Demo
- `@mention` Marc Demo
=> crash (cannot read name of undefined (reading persona))
This happens because a spread record was inserted in model,
and in this scenario the record list in data can be the exact same
as the record list used in the model. The internal code of assigning
a many list is to `clear()` and then `push()` from data, but if the
data mutates from the `clear()`, then the `push()` does nothing and
the resulting relation is emptied.
This commit fixes the issue by keeping a copy of collection before
`clear()` so that push applies on original data that is intended by
insert.
This commit also adapt code in hr to not use spread record to insert
Persona. While it works with the fix, it's simpler to just update the
appropriate field and also more efficient, because spread a record
has to process all fields as an insert, wasting CPU time.
closesodoo/odoo#139143
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Before this commit, some relational fields in records had
the command `[["ADD.noinv"]]` as value. This is a command and
it should have been feed by a model (pre)insert, but the
resulting value of the field should never be a command: it's
always a RecordList (one-size RecordList when a Record.one).
This happens because the RecordList tracks the owner, i.e. the
record that owns the RecordList value in the relation, but the
owner was not properly proxified.
Indeed, all models are wrapped in a proxy, so that they managed
delete/get/assign on relational fields. To feed command like
"ADD.noinv". the receiver MUST be the proxy in order to be feed
properly, otherwise the assignment with command sets the command
as the actual value on the field. This is precisely what happens.
This commit fixes the issue by properly passing the proxified owner
to the RecordList, so that `ADD.noinv` command works as expected.
---------------
This changes unveiled some mishandling of the inverse, notably
during deletion of the record: the deletion must not insert record
with `ADD.noinv`, otherwise the inverse record is added, and this
is prone to infinite loops. To properly managed deletion, a new
internal command `DELETE.noinv` is used to delete the record without
syncing the inverse field, again to prevent infinite loops like with
`ADD.noinv`.
Part-of: odoo/odoo#139143
In the project.task model, the method _get_all_subtasks allows to get
all the subtasks linked to a recordset (recursively). This method uses
the method _get_subtask_ids_per_task_id that retrieves all subtasks ids
for each task record in the recordset using a sql query to optimize
performances (see odoo/odoo#117624).
This commit adds an additional WHERE clause in this request to avoid
looking for subtasks in records that have no parent_id set. On top of
that, a unit test is added for both methods.
task-3504339
closesodoo/odoo#139132
X-original-commit: c2e59b337b9fd705f35473f560733c42227502cd
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
The checkout button is always active as soon as the cart is not empty.
However, there are many cases where we want to prevent the user to move
on, as the cart is not ready to go on.
This commit adds a class to the button that disables it when the method
_is_cart_ready returns False.
task-3537684
closesodoo/odoo#137844
Related: odoo/enterprise#48533
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Before this commit, the warning message on the cart could be duplicated
when editing the cart, as it was not reloaded by the js. This commit
makes sure that the warning message is re-rendered, and removed if
needed.
task-3537684
Part-of: odoo/odoo#137844
Purpose
=======
Add a scoring option displaying the correct
answers after each page when taking the survey.
Specifications
==============
When the user submits the page:
- highlight in green the correct answer(s)
- highlight in red the wrong answer(s)
When the correction is displayed, prevent
the user from changing their answers.
Handling all question types that can specify
a correct answer:
- Numerical box
- Date
- Datetime
- Simple choice
- Multiple choice
Task-3374998
closesodoo/odoo#129329
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
After commit 0b69bf02 the following bug appeared.
Steps to reproduce:
1) activate only 'on site pick' shipping method
2) activate only 'pay on site' payment provider
3) add product of type 'product' to the cart and proceed to /shop/payment
4) observe the traceback
This bug happens in website_sale_picking checkout_form.js when payment
option is clicked on not yet initialized payment form widget.
With this commit we always show payment options radio even if there is
only one available, which allows to remove the problematic code in
website_sale_picking.
opw-3475563
opw-3451097
closesodoo/odoo#139130
X-original-commit: 2b6ef409dc2187905812b1a8f6491210699ba76d
Related: odoo/enterprise#49147
Signed-off-by: Valeriya Chuprina (vchu) <vchu@odoo.com>
This commit removes the default exports from the spreadsheet module.
They don't bring anything except confusion when importing a mix of
default and named exports.
closesodoo/odoo#139071
Task: 3559536
Related: odoo/enterprise#49129
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
This commit fixes the `website_livechat_chatbot_flow_tour` that was
failing in a nondeterministc way. This is due to the tour sometimes
taking more than `60` seconds which is the default timeout for python
tours.
Most of the time is consumed waiting for the user to finish its
multiline input. This issue is solved by shortening the delay to
consider the multiline input as done: from `10`s to `500`ms.
fixes runbot-24557
closesodoo/odoo#139034
X-original-commit: 7788f2f1879dda2381a7d2e93e8a0472f4621d14
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Before this commit, if you click twice on a record in x2many, two dialogs
are opened containing the same record.
Solution:
=========
Prevent a record from being opened as long as a record in this x2many
is already open.
How to reproduce:
=================
Go to a form view with an x2many
Click on the first record in the x2many
Click a second time on the record of the x2many (before the dialog is opened)
Before this commit:
-------------------
Two dialogs are opened with the selected record
After this commit:
------------------
Only one dialog is opened with the selected record
closesodoo/odoo#138984
X-original-commit: 31a9b13
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Francois Georis (fge) <fge@odoo.com>
- Install `website_sale`
- Go to /shop
- Click on Editor and Edit a product
- Add a new ribbon/badge
- Changing text color works
- Changing background color doesnt
Because `bg-primary` has an `!important` background_color
closesodoo/odoo#138712
X-original-commit: c6f4929f65b899736c556f8f0bb7824883a6d893
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
When marking an MO as done in the shop floor, the pre_mark_done method
is used to determine if there are any issues before putting the MO in
the 5 second validation queue.
However, there were two cases that were not yet caught here:
1. Pending quality checks on a workorder
2. Duplicate serial number on the final product
This commit adresses both of these cases.
closesodoo/odoo#137535
Task: 3456827 (nr 28)
Related: odoo/enterprise#48379
Signed-off-by: Steve Van Essche <svs@odoo.com>
Small cosmetic changes to improve the UX of the new shop floor app:
- Rename of the ready MO filter as it was quite long in the shop floor
search bar;
- Add `desktop_list_view` in the context when opening a WO from the
workcenter kanban view to always open the desktop view even once
`mrp_workorder` is installed.
Task: 3456827
Part-of: odoo/odoo#137535
When changing the duration on a time-tracking entry on a workorder, set
the end time to now and calculate the start time by detracting the
duration, instead of the other way around.
Task: 3456827 (nr 35)
Part-of: odoo/odoo#137535
Before this commit, the `Sales` page is always visible in product
form view when `point_of_sale` and/or `sale` modules are installed
even if the product cannot be sold.
The reason is because the initial condition contained in
`attrs="{'invisible': ...}"` for that page has been completely removed
since the recent changes to remove `attrs` attribute and allow having
python condition inside `invisible`, `readonly` and `required` attributes
(instead of having only True or False as value for those attributes).
This commit reviews the visibility condition for that page to completely
hide that page in product module as it is currently the case but it also
adds the condition we had in attrs. That is, in product module, the
invisible attribute for that page will be equal to `1 or not sale_ok`
(and so always invisible thanks to `1 or ...`) and when `sales` or
`point_of_sale` modules will be installed then `1 or ` will be removed
to just keep `not sale_ok` inside `invisible` attribute.
task-3506730
closesodoo/odoo#135840
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Before this commit, when purchase app (or account) is installed,
the `purchase` page in product form view is always visible even
if the product displayed in the form view cannot be purchased.
The reason is when `attrs` has been removed and replaced by python
condition inside `readonly`, `required` and `invisible` attributes,
since the purchase page had `attrs="{'invisible': ...}"` and
`invisible="1"` defined in its attributes, the condition in `attrs`
has completely removed when the `attrs` has been deleted.
This commit fixes the issue by updating the initial invisible defined
in product module to have `invisible="1 or not purchase_ok"` to keep
the condition that was initially defined in `attrs`.
In purchase and account module, instead of replacing `invisible="1"`
by `invisible="0"`, we will just remove `1 or` to show the purchase
page only if `not purchase_ok` as it was the case before.
task-3506730
Part-of: odoo/odoo#135840
Before this commit, the product view is extended to change the `invisible`
attribute of page with name attribute equals to `inventory`. The problem
is in the initial form view that page has a invisible condition and
the extended view defined in `point_of_sale` module completely overrides
that condition without rewriting the initial condition.
This commit reintroduces the initial condition to also hide that page
when the product is a service type.
task-3506730
Part-of: odoo/odoo#135840
Due to the Systray item add for attendance,
an additional rpc call will be performed for employees,
meaning that different counters have to be bumped.
closesodoo/odoo#135439
Related: odoo/upgrade#5234
Related: odoo/enterprise#47384
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Previously, without the payroll app, the menu item for contracts in
the employee app was not available. To improve accessibility and
user experience, the contract menu item is now kept and visible
when hr_contract module is installed.
closesodoo/odoo#133586
Related: odoo/enterprise#46541
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
* website_slides_forum
Populate a database with different quantities of forums, posts
and comments.The number of replies per question and comments per post
(question or reply) are defined by weights.
We use SQL queries in the '_populate' method to update certain fields
automatically managed by the ORM, as well as the 'last_activity_date' of
posts (questions).
The aim is to give posts, replies and comments varied and consistent
create_dates, as well as a wide variety of authors (create_uid).
Task-3349374
Task-3463533
closesodoo/odoo#132042
Signed-off-by: Florian Charlier (flch) <flch@odoo.com>
_*= account, hr_timesheet
This commit improves the Portal functionality and add email template:
- improve email template for invoice includes timesheet (add link in mail which
redirect to timesheets linked with invoice).
- improve timesheets template by renaming labels and internal header/footer.
task-3251680
closesodoo/odoo#127224
Related: odoo/enterprise#43593
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
_*= account, hr_timesheet
This commit improves the Portal functionality and add email template:
- improve email template for invoice includes timesheet (add link in mail which
redirect to timesheets linked with invoice).
- improve timesheets template by renaming labels and internal header/footer.
task-3251680
Part-of: odoo/odoo#127224
The demo data linked to the preparation display (in restaurant)
where a bit light.
This enterprise PR adds more data to the demo data and move some
to previous stages so that user can play more with them.
In this commit we adapt the number of customer to the corresponding
orders that have more orderlines.
Enterprise PR: odoo/enterprise#48841closesodoo/odoo#138478
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
The current used version of wkhtmltopdf manages is frozen to 0.12.5
because some features used by odoo are only available in this version
using a patched qt.
Anyway, it become difficult to keep this version up to date, especially
with Ubuntu Jammy and updates of the dependencies used by wkhtmltopdf.
More than that because of qt related issues, wkhtmltopdf maintenance
will end soon.
Adding a test to check some caracteristics of pdf reports may be usefull
to check that current version is still working, and eventually to find
an alternative solution.
This test checks that pdf reports contains the expected headers and
footers elements with the correct page number (2 record of 2 pages)
This also check that the pdf is in the expected A4 format.
Future test may check other formats, margins, layout,
page size/pagebreak combination, (table of content?), ...
This test may also check performances and existing limitations.
closesodoo/odoo#136626
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Description of the issue/feature this commit addresses:
The current onboarding account tour is sometimes broken.
The purpose of this commit is to fix it and make it run smoothly.
Desired behavior after the commit is merged :
This commit modifies the onboarding account tour to clarify the messages that
are shown, add messages to certain steps and try to make it impossible
for the user to be lost during its entierty.
Adding this improvement, the onboarding account tour better fills
its purpose.
task-3375344
closesodoo/odoo#135187
Related: odoo/enterprise#47306
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
In this commit, we add the 'foldable' option to the domain widget in crm and
event_crm.
Task-3458063
closesodoo/odoo#132008
Related: odoo/enterprise#45768
Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com>
Previously, when you wanted to create a combo from a product form, a
traceback was raised because you were trying to calculate the minimum
price of non-existent combo_line_ids.
Now the code has been adjusted and there's no more trackback.
closesodoo/odoo#139148
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
In some cases, the received qty of the POL is incorrect
To reproduce the issue:
1. Create and confirm a PO
2. Receive the product
3. Return the product:
- Update quantities on SO/PO: False
4. Receive again ("return the return"):
- Update quantities on SO/PO: False
5. Open the PO
Error: The received qty of the POL is incorrect, it includes the
second receipt
The second receipt is processed as a classic receipt, so we simply
add the done qty of the SM to the received qty of the POL. We have
to improve the conditions.
OPW-3483449
closesodoo/odoo#139140
X-original-commit: 4067bd6061c1d2e2a351ac8875a038015b410ad5
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
The en_US default locale in o-spreadsheet is m/d/yyyy but it's mm/dd/yyyy in odoo.
Because of this mismatch, spreadsheets from the source code of odoo (dashboards,
templates) will have a small warning saying the spreadsheet locale and the user
locale mismatch.
That's because existing spreadsheet don't have any locale and the default one is
used.
This commit adds the locale to all o-spreadsheet json files.
Notes:
- we could have completely upgrade the json file format to the latest
o-spreadsheet version (version: 14), but just adding the settings is enough
closesodoo/odoo#139133
X-original-commit: 76f77f0bca6852846079f1fe0de6080554f96ac2
Related: odoo/enterprise#49148
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
The commit https://github.com/odoo/odoo/pull/137446/commits/a0b59559
leads to a traceback when clicking on "Download sale report" button
when closing the session.
Traceback:
```
tuple index out of range
Traceback (most recent call last):
File "/data/build/odoo/addons/web/controllers/report.py", line 113, in report_download
response = self.report_routes(reportname, docids=docids, converter=converter, context=context)
File "/data/build/odoo/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/data/build/odoo/addons/web/controllers/report.py", line 42, in report_routes
pdf = report.with_context(context)._render_qweb_pdf(reportname, docids, data=data)[0]
File "/data/build/odoo/addons/account/models/ir_actions_report.py", line 58, in _render_qweb_pdf
return super()._render_qweb_pdf(report_ref, res_ids=res_ids, data=data)
File "/data/build/odoo/odoo/addons/base/models/ir_actions_report.py", line 819, in _render_qweb_pdf
collected_streams = self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
File "/data/build/odoo/addons/account_edi_ubl_cii/models/ir_actions_report.py", line 58, in _render_qweb_pdf_prepare_streams
collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
File "/data/build/odoo/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams
collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
File "/data/build/odoo/addons/account/models/ir_actions_report.py", line 20, in _render_qweb_pdf_prepare_streams
return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
File "/data/build/odoo/odoo/addons/base/models/ir_actions_report.py", line 708, in _render_qweb_pdf_prepare_streams
html = self.with_context(**additional_context)._render_qweb_html(report_ref, res_ids_wo_stream, data=data)[0]
File "/data/build/enterprise/web_studio/models/ir_actions_report.py", line 19, in _render_qweb_html
return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
File "/data/build/odoo/odoo/addons/base/models/ir_actions_report.py", line 895, in _render_qweb_html
data = self._get_rendering_context(report, docids, data)
File "/data/build/odoo/odoo/addons/base/models/ir_actions_report.py", line 910, in _get_rendering_context
data.update(report_model._get_report_values(docids, data=data))
File "/data/build/odoo/addons/point_of_sale/models/pos_order.py", line 1538, in _get_report_values
data.update(self.get_sale_details(data['date_start'], data['date_stop'], configs.ids, data['session_ids']))
File "/data/build/odoo/addons/pos_daily_sales_reports/models/pos_daily_sales_reports.py", line 68, in get_sale_details
user_currency = config_currencies[0]
File "/data/build/odoo/odoo/models.py", line 5901, in __getitem__
return self.browse((self._ids[key],))
IndexError: tuple index out of range
```
opw-3558365
closesodoo/odoo#139128
X-original-commit: 8b19e29e8ead8229cebbb6224979264a59334209
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Signed-off-by: Ahmad Khanalizadeh (khah) <khah@odoo.com>
Steps
=====
- Install hr_timesheet
- Create a project shared (in edition) with a portal user
- Creata a task with a subtask and log timesheets for the subtask
- As a portal user open the parent task form
- Go in the timesheet tab
- Click on the button "Sub-tasks Hours/Days Spent" at the bottom of the
page
Issue
=====
An access error appears for an uom.uom record.
Cause
=====
Portal users have no access to uom.uom records. The method
_apply_timesheet_label uses this model to determine if the time spent
needs to be displayed with an 'hours' or a 'days' label. This raises a
traceback when it is called by a portal user.
Fix
===
The method _apply_timesheet_label is called as sudo, following the fix
that was already done in project sharing (see odoo/odoo#73341).
task-3527521
closesodoo/odoo#139125
X-original-commit: 01b1cf07bc1fb618d34065271cdc07fce561337f
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
In this commit we have manage sufficient space between allocated
hour and the percentage.
task-3248965
closesodoo/odoo#139113
X-original-commit: 1722359f1bedd238b162dd8f4c07d648d6d2d114
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
permissions) see Invoices & Bills at /my/account
Issue:
Internal user cannot see their Invoices & Bills at
portal without permissions in the accounting
Fix:
Verify that the read operation is allowed for the current user
closesodoo/odoo#139141
X-original-commit: 5ebab949a06ec338cc28e912317a74bbfb3fe6ac
Signed-off-by: William André (wan) <wan@odoo.com>
attribute style has two apostrophes (') at the begininng and end
this prevents the bold style from being applied
The modification was made in the tax_totals.xml file
while ensuring that it doesn't affect any other element
closesodoo/odoo#139087
X-original-commit: 7414d61e85e38c6159c53337be6c1750d3b7dfcd
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
As mentioned in https://github.com/odoo/odoo/pull/105848#discussion_r1324796532, the ``_getCurrentLocation`` method was called on every page of ecommerce, while it was doing nothing unless if we are on the payement page.
Putting the call in the ``if`` ensures that there are carriers on the page and thus calls it only when on the payment page.
closesodoo/odoo#139086
X-original-commit: 65e7535fc9392e7b9355a31fa8f7c8abc1e3518f
Signed-off-by: Martin Maes (marm) <marm@odoo.com>
When the user has contacts with different websites and tries to create an order,
a traceback will appear.
Steps to produce the error:
- Install 'website_sale' and 'contacts'
- Create 2 websites: 'Website A' and 'Website B'
- Go to Contacts > New > In Sales & Purchase, select 'Website A'
- Create another contact with 'Website B'
- Go to Website > eCommerce > Orders > New > try to enter Customer
Error: A traceback appears:
'Expected singleton: website(6, 16)'
https://github.com/odoo/odoo/blob/1cb866347eed8c43d1da225f441cc3b3ce9c5a01/addons/website/models/res_partner.py#L42
Here, instead of partner, self is used.
So when the user tries to create an order,
it will lead to above traceback.
sentry-4545021252
closesodoo/odoo#138929
X-original-commit: b053805d96c5fd8a9579e49b4f842f488c4adf60
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
Signed-off-by: Renilkumar Kajavadra (reka) <reka@odoo.com>
Before this commit, when an internal user attempted to open
profile of a user from dropdown menu of private chat window
with that user, there was crash.
Steps to reproduce:
- install `test_l10n_be_hr_payroll_account` with demo data
- connect as Laurie Poiret
- Open chat window with Marc Demo
- Click chat window header => "Open Profile"
It happens because the action to open the profile was attempting
to open "hr.employee" form, which require specific access rights
(hr manager). The current user is not necessarily an hr manager,
so the action fails.
This commit fixes the issue by opening the public form view of the
employee, which is accessible to all internal users.
opw-3555889
closesodoo/odoo#139134
X-original-commit: bdce8c72cd06cb783973beb62382bfd8a8ae249e
Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
The command palette has the priority when useAutoFocus is call.
Like that, the command palette will not lose focus when clicking
on an app on the home menu and then directly opening the command
palette before the app mounting
TASK ID: 3338117
closesodoo/odoo#139124
X-original-commit: 660d27ac38c225559ea3697a24a34ac70ede8ec1
Signed-off-by: Florent Dardenne (dafl) <dafl@odoo.com>
(Introduced in 16.3, 86c6266)
--- ISSUE
From there, partner_ids and partner_all_ids m2m fields became computed
fields in order to return only active records as we read them from
the slide.channel.partner table, not checking the active field of that
table (not supported by framework).
Ir rules of records check if current user's partner is inside partner_ids,
or partner_all_ids of a given course. (joined the course for partner_ids,
invited or joined the course for partner_all_ids)
The issue is that all ir rules searching on these fields lead to very
slow loading of slides (channel, slide, homepage) and forum pages (as
soon as we have a forum linked to a course). This comes from the fact
that in some templates, we read records and evaluate rules on the spot,
in python. (for instance tags of courses on homepage)
As some courses have tens of thousands of attendees, this evaluation is
very slow in python, and there is no quick solution at framework level.
Therefore, computing thousands of partners for each access rule linked
to a course is too slow.
--- SOLUTION
The existing fields is_member and is_member_invited are used inside ir
rules instead. _search methods are added and we check whether course
is inside courses of current user's partner ones. It improved all times
a lot, see BENCHMARK below.
Tests already exist to assert the search methods indirectly.
--- LOCAL BENCHMARK (16.3) - IntelCore i5-8265U CPU 1.60GHz - Firefox
ROUTE BEFORE (s) AFTER (s)
/slides 5 <0.15
/slides/all 7.6 <0.15
/slides/course_c 4.2 <0.2
/forum 5.5 <0.15
/forum/forum_c 6 <0.25
/forum/forum_c/post_y 4.4 <0.25
/forum/forum_c/post_y/edit_answer 2.5 + 2.5 <0.3 total
/forum/forum_c/post_y/edit 2.8 <0.2
/forum/forum_c/post_y/reply 3 (+6 post) <0.35 total
/profile/user/id 2.3 <0.4
DETAILS
- course_c: 43k attendees
- forum_c: forum of course_c
- post_y: 2-3 answers
- logged user: 'portal', with 7 courses
- deactivated GC cron as many populated invited attendees were
to be removed, and it can take a lot of time
POPULATIONS
- 20k forum.forum (avg 2 answers)
- 20k mail.message (about 2 answers per post)
- 10 forum.forum (+20 on courses)
- 20 slide.channel (half 'members' visibility)
- 300k slide.channel.partner
- 'large' for other models
--- LINKS
UPG PR: odoo/upgrade#5246
Task-3444633
closesodoo/odoo#139104
X-original-commit: 019d9d4808994cd819d13fab2d6ddfdffeb621e7
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit does some preparation work to allow the appointment type to specify
a custom mail template to send when an appointment is booked/canceled.
It simply adds a hook method to be able to customize the behavior when sending
the invitation email as well as removes some parts of the current invitation
template that will be rendered useless.
See enterprise counterpart for more details.
Task-3547269
closesodoo/odoo#138547
Related: odoo/enterprise#48874
Related: odoo/upgrade#5269
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Fixes a few issues in `jsvat`:
- Since the end of 2022, valid Belgian VAT numbers starting with `BE1`
have been attributed, the regex had to be adjusted.
- Since Brexit, Northern Ireland has to use the `XI` prefix instead of
`GB`.
- Removes the default country code logic. As Odoo is used worldwide, it
didn't make sense to use `GB` as the default country code when no
country code is mentioned.
closesodoo/odoo#139098
X-original-commit: f486a41f729ea7e934c81671972b3b1162986860
Signed-off-by: Francois Georis (fge) <fge@odoo.com>
Signed-off-by: Louis Baudoux (lba) <lba@odoo.com>