Current behaviour:
When having the `external_layout_bold` as Document layout,
when printing timesheets, the date column takes too much width
of the table.
Expected behaviour:
Have the columns be proportional, similar to the
`external_layout_standard` layout.
Steps to reproduce:
- Install Timesheet
- Activate Dev Mode
- Change the Document layout to `external_layout_bold`
- Timesheets > List View > Select an item > Print
- Observe that the first columns (with Date) is taking 1/2 of the width
Reason for the problem:
I presume some leftover legacy styling with a `width:48%` for the
first column of a bold_layout table.
Fix:
Remove that legacy styling.
Affected versions:
- 15.0
- saas-15.2
- saas-15.3
- 16.0
- master
opw-3114053
closesodoo/odoo#110723
X-original-commit: 01c0eb16b5c3d418e5a494a825cc60f76a743377
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This constraint was already implicit (the reports failed to open when this was not respected, and the view ensured it wasn't possible not to respect it). We just enforce it more.
closesodoo/odoo#110718
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Issues:
1) When the inventory valuation is Manual the stock accounts field of the
product category should be empty and they should be set when the
inventory valuation is Automated.
2) For the moment at installation all the categories have the Manual default
value and the comapy account default values for the stock accounts (not
respecting condition 1)
Solutions:
For issue 1 we add checks on the write and create functions of the product
category model so that after creation/modification the instance respect the
condition
For issue 2 we add at the end of the post_hook script some code to set an
empty stock account property for every product category.
opw-2746384
closesodoo/odoo#110715
X-original-commit: aa744f1172012d3d74c12bb73e06265d6e64c6e1
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
before this commit, the email field is not required in the model level as well as in the view level, and this is the only normal(other than compute) field in the model. as it is not required now, user can create as many record without inputing any values.
Settings -> Technical -> Emails -> Mail Gateway Allowed
after this commit, the email field will be required and record can be created only by adding the email.
closesodoo/odoo#110026
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
- Display 'project title' label and add placeholder on the quickcreate
in project.project kanban view
- Project.task calendar view popover : The literal value of the status
is replaced by a colored dot representing it.
- project.task portal form view : The SOL field is displayed in the list
of timesheets entries if some of those entries have a different SOL as
the one set for the task. The SOL name is made clickable and redirect
to the sale order portal view if the user has access to it.
closesodoo/odoo#103434
Task: 3024151
Related: odoo/enterprise#32860
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Before this commit: if more than one cash payment methods exist, it
would add all of them by default when you create a point of sale.
This commit prevents adding more than one cash payment method:
https://github.com/odoo/odoo/commit/f9da3590261b304f9c12f01f5800cec50faebc1a
So it's impossible to create a new point of sale when there are more than
one cash payment methods.
The solution is to limit the default cash payment methods to one.
opw-3134418
closesodoo/odoo#110717
X-original-commit: 5c839e684261e60328c7e06ae09685734507bf4f
Signed-off-by: Trinh Jacky (trj) <trj@odoo.com>
- Description: before this fix, some tips of the project tour poped up
in other apps when the tour was not finished. With this fix, those
particular tips are only displayed in the project app.
- Implementation: Some triggers used in the project tour are generic
class that are also used in other modules (in this case, classes
related to the chatter). When leaving the tour at those steps, the
tip in question will pops up every time this class appears in other
apps (i.e. often for classes related to the chatter). To fix this, the
parameter extra-trigger is used for tour steps related to a generic
class.
closesodoo/odoo#110716
Task: 3024151
X-original-commit: c8f86844a427e0f9665b6f9c5e9e182795fb809e
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
*: l10n_co_pos, l10n_fr_pos_cert, l10n_gcc_pos, l10n_in_pos,
l10n_sa_pos, pos_adyen, pos_discount, pos_epson_printer,
pos_epson_printer_restaurant, pos_hr, pos_hr_restaurant, pos_loyalty,
pos_mercury, pos_restaurant, pos_sale, pos_sale, pos_sale, pos_sale,
pos_sale, pos_sale, pos_sale_loyalty, pos_sale_product_configurator,
pos_six, pos_six, pos_six, pos_six, pos_stripe, pos_stripe
Previously, the point of sale module used a custom inheritance system
for models and components. This system being non-standard, it makes it
hard for newcomers to understand how to use it or for people with
experience in the pos code base to understand how things are done
elsewhere. This commit removes the "registries" system from the pos
modules and adapts existing code to use standard inheritance mechanisms,
ie extending classes directly, and using patch to modify behaviour in
place.
task-3119628
closesodoo/odoo#109928
Related: odoo/enterprise#35795
Signed-off-by: Samuel Degueldre <sad@odoo.com>
Co-authored-by: Samuel Degueldre <sad@odoo.com>
This version of jQuery fixes a number of bugs in jQuery compared to
3.3.1
Some legacy list tests related to the handle widget have been skipped,
we consider this acceptable because:
- there are no remaining uses of the handle widget in a legacy list view
in the code base. The only remaining usage of the legacy list view is in
the SelectCreateDialog legacy, which is only used in our code base by
the very few legacy client actions that will be converted before v17
- the tests are only broken in enterprise, and the widget appears to
work fine in practice, suggesting a problem with the way tests drag and
drop rather than an actual problem with the code
- spending time to debug tests that will be obsolete within the next few
months and also appear to not correlate to an actual breakage of the
functionality is not worth it.
task-2291793
closesodoo/odoo#106960
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Purpose of this commit to improve generic usage of project app.
So in this commit done the following changes:
- Project tags should be vertically centered
- Rename share readonly for project.project form view
- add demo data while add tasks in a folded stage to the sub-tasks and blocked
by notebooks
- add demo data for archived tasks to the archived project
- change the name of the 'rating page done' webpage to 'Thanks for your Feedback'
- use the avatar widget for the employee
task-2976074
closesodoo/odoo#105904
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
It is currently not possible to write the barcode of an archived
product template. The inverse method does not consider case where
the variant of the template is archived
OPW-3109967
closesodoo/odoo#110697
X-original-commit: 968d0dff823f8e5d0871feaf8b09233fbb91b4de
Signed-off-by: Adrien Widart <awt@odoo.com>
The `ormcache` decorator fails to create the key method
(`determine_key`) when the method signature contains any annotation.
Fix it by removing annotation of the signature.
closesodoo/odoo#109777
Signed-off-by: Raphael Collet <rco@odoo.com>
The percentage used for A/B test was applied even when
A/B testing was disabled. As that value is 10% by default
the 'total' was innacurate by 90% for most mailings.
task - 3008627
closesodoo/odoo#110677
X-original-commit: eb2271330e7759400dad155b72208cf7677e175e
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Small copy/paste error during odoo/odoo#95332 made it so
`line.picking_id.location_id` was used when assigning `location_dest_id`
of a directly created `move.line` in a picking. Usually this would not
be noticeable due to `default_location_dest_id` in the views ensuring
the correct value, but move lines created directly will be incorrect.
In addition to adding this case to existing test, the test has also been
updated to use non-default locations to ensure no other default values
are causing the result to be correct when it may not be under other
circumstances.
Issue noticed during master refactoring to remove location_id /
location_dest_id fields from views when multi-location is not active.
closesodoo/odoo#110672
X-original-commit: 74bfa154dde72ce792428521aea128408965dcc1
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Tiffany Chang <tic@odoo.com>
before this commit, to update the string for departure_date field the entire field has been replaced
after this commit, using attribute selector(string) updated the string for this field
closesodoo/odoo#110649
Signed-off-by: Kevin Baptiste <kba@odoo.com>
Before this commit, when scrolling down in chatter and then
toggling on the attachment box, it opened the attachment box
outside of visible part of scroll view.
This commit fixes the issue by automatically scroll to
attachment box when opening it.
Task-2817838
closesodoo/odoo#110640
X-original-commit: 2d835da6b734f0d9fef05c191e93757d2d2f3b1a
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
When starting a trial instance, skipping the configurator and picking a
theme, it can happen that some lazy loaded `web_editor` CSS is not ready
yet - which causes a traceback popup to be displayed.
Note that this problem could not be reproduced.
This commit introduces a retry mechanism when a CSS cannot be loaded in
order to try to preserve the trial's "wow" effect.
For readability, the link is now added after defining the Promise that
registers the event handlers.
The test is adapted in order to make the retry mechanism retry faster.
task-2972330
closesodoo/odoo#110590
X-original-commit: 6a9212d52114ccda827ad2784d0369ffd9d6526e
Signed-off-by: Arthur Detroux (ard) <ard@odoo.com>
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
This commit fixes the traceback when the user push the start button
in the Work Order list View of a work order without a date_planned_start.
To recreate the traceback, the order must be based on a manufacturing order
with multiple work orders, with at least one with a scheduled start date and
one without a scheduled start date.
When creating the manufacturing order, it is important to make sure that
only the confirm button is pressed.
closesodoo/odoo#110587
X-original-commit: c4d16a57e03d2a9183b232344579978b839a9fb9
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Since the conversion of the list view to owl, the relative field size
has not been reimplemented. We have decided not to support it anymore.
So we will remove all its uses.
The relative width consists in adding a width attribute with a
value. This value corresponds to the weight of the field, the higher
it is, the more space the field will take. This size is only used when
the list is empty.
Example of this:
<tree>
<field ... width="2">
<field ... width="1">
</tree>
The first field will take 2x more space than the first one when the list
is empty.
closesodoo/odoo#110382
Related: odoo/documentation#3375
Related: odoo/enterprise#36020
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Purpose
=======
On our saas, when users configure a mail server, they can't use anymore
the "odoo.com" configuration (which is stored in the odoo-bin argument).
To allow them to continue using the SMTP CLI configuration, we add a
new "smtp_authentication". When this authentication method is chosen,
all the "connection" fields of the mail server are ignored, and the
connection information are taken from the odoo-bin arguments. So they
can choose the from filter of this SMTP configuration, the priority...
Task-3061882
closesodoo/odoo#106297
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Since the conversion of the form view to owl, the statusbar field
in mobile wasn't displayed as before: it used to be a btn-primary
button (dropdown), and it wasn't anymore. This commit re-introduces
the previous design. Moreover, we adapt the style of the statusbar
button (on the left) to make it more consistent with the field on
the right (no padding + caret as it is a dropdown).
closesodoo/odoo#110629
X-original-commit: 1ba4bc2d001667fc6c2e7f7a1482b5c79bb4c3a5
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit, the error service crashed when it had to handle
a rejected promise error with a reason that was a truthy value but
not an error.
This happens for instance in the wysiwyg editor which may reject
promises with `Request took too long (more than 10 seconds).` as
reason. We sometimes get this error on odoo.com after migrating
to 16.0, typically on a tab running in the background.
closesodoo/odoo#110613
X-original-commit: 3021f7e64382e648d15671a2a1d16847b3d72cb0
Signed-off-by: Géry Debongnie <ged@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit, there was a flicker when clicking inside a
translatable field in an editable list view: the font-size was
reduced to 12px. This rule looks unnecessary, we thus remove it.
Bug reported after the migration of odoo.com to 16.0.
closesodoo/odoo#110612
X-original-commit: ab76b1e93513bf06b78ca97b8fdce491f498726c
Signed-off-by: Géry Debongnie <ged@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
tax_id on sale.order.line is a many2many field.
Using ".id" means you cannot import sales orders/quotations because
it raises an expected singleton error.
However, the initial bug fixed by 54c828b does not exist anymore on
13.0. So it has been decided to remove this code instead.
opw-3091663
closesodoo/odoo#110639
X-original-commit: 58deebcfdf797f7dd3ab767e7c7db68b4c00b0f9
Signed-off-by: William André (wan) <wan@odoo.com>
Some formulas in the LU tax report are incorrect. This commit fixes them according to the official rules.
task-3142146
closesodoo/odoo#110630
X-original-commit: d3315570db2ca929d7fc31832a53e22799c1bed2
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
The aim of this commit is to get rid of a traceback preventing the user
to switch tabs in Invoice and Bill
Context:
AccountMoveFormCompiler is a hack that allows to save the record
automatically when the user switch between tabs.
With commit 264f313012aa99449d1576ae1110252c13755142 the way to call the
compiler changed a bit but the hack wasn't.
Before the commit:
The `this` was leading nowhere in the compiler frame leading to a
traceback in OWL.
After the commit:
`this` is defined and the traceback is gone
closesodoo/odoo#110635
Community-pr: https://github.com/odoo/odoo/pull/110506
Task-id: no task
X-original-commit: a926071fc6944d5cd720a8849b2f31a5dd8ff4dc
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
Steps to reproduce:
- Setup product (
cost 10$
Storeable Product
Standard Price Accounting
automated valuation
add account for price difference
)
- Purchase product in foreign currency (set a different price)
- Receive the product
- Create and validate Bill
Bug:
The reception JE is for the cost amount set on the product ($10)
debit and credit value are correct but the amount in currency
is wrong (purchase cost)
After creating the bill the Journal items are not correctly matched
since reconciliation is done on currency amount in the case fo foreign
currency transaction
Fix:
Set the correct amount (cost configured on product page)
in currency amount if costing method is standard
opw-2822366
closesodoo/odoo#110628
X-original-commit: 9f5025d99ec490eb2a45b9dbf1a8a43e8fc3162b
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
To reproduce the issue:
1. Ensure you have an orderpoint in automatic that will be processed by the scheduler
2. Allow a worker to run the scheduler with use_new_cursor=True
3. After orderpoints are searched in procurement.group._run_scheduler_tasks
and before the orderpoint is processed in stock.warehouse.orderpoint._procure_orderpoint_confirm,
delete the orderpoint through another worker
Error: A CacheMiss error will be raised due to the access to orderpoint.qty_to_order
in _procure_orderpoint_confirm, what will leave open the transaction from the new cursor
declared in the same function.
After a while HTTP workers will become unavailable as their own transactions will wait for the lock
of the open transaction to be lifted, what won't happen before said transaction is closed.
OPW-3121598
closesodoo/odoo#110627
X-original-commit: 38eade327b9f381d9abebd61d563a1caf634576d
Signed-off-by: Christophe Simonis <chs@odoo.com>
Bootstrap forces some input types ("tel", "url", "email", "number") to
be LTR even if in an RTL languages, before the last update of bootstrap
this was done in [1] and [2].
The issue of forcing some input types to LTR, is that the alignment was
wrong. Now, the for the same types when using an RTL language we force
the align to the end.
[1] : 90ab752c5f
[2] : 0d650c3b19c847181fa50c88eb945792528f01cc
closesodoo/odoo#110610
X-original-commit: 05b48129999978fbe8092e6007999aeae60a3699
Signed-off-by: Bruno Boi (boi) <boi@odoo.com>
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Before this commit, when using a rtl language, the position of the
popper elements using the 'usePosition' hook weren't inverted.
This issue was found, for instance, on autocomplete dropdowns. The
dropdown component inverted the position if it was a rtl language, this
behaviour was moved to the `usePosition` hook.
X-original-commit: a357009cbc6aacd3f1c87f3c6e632e83c235295d
Part-of: odoo/odoo#110610
In the current state of the code, pricelist are always recalculated according to the partner id of the user. In the case of a custom pricelist applying to anyone with a code, Odoo will bring back the default pricelist, forcing us to retype the code once or twice during the checkout process.
opw-3101158
closesodoo/odoo#110569
X-original-commit: 39797d3fe27b9f0545c34a538454d5f3ad5209d0
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
To Reproduce
============
on POS go to customer, on the customers list we only display a short address.
which gives bad experience to the user.
Solution
========
The address information displayed was reduced in early 15 because it was often
too long and caused rendering issues, on both desktop and mobile.
On 16 we have more space, so we bring back the full address.
opw-3123832
closesodoo/odoo#110549
X-original-commit: 1d546031ac74241eb9d7eb090a5291aa70371d3f
Signed-off-by: Trinh Jacky (trj) <trj@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
Before this commit:
Text style and text size drop-up were not fully visible due to overflow.
After this commit:
Added a scroll property to give accessibility to the items.
Task- 3100123
closesodoo/odoo#110547
X-original-commit: dbe410fdc93b1eb89d70c9b2a51e81b0075147d4
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Here is a way to reproduce the problematic situation: with CRM
installed, go to Contacts, open one, clicks on its Opportunities
stat button, open one in form view, click on the "Customer" field
internal link to open again the contact in form view, delete the
record, and finally click on the first occurence of the contact
in the breadcrumbs.
Before this commit, it crashed because we ended up in an error
handler (formSaveErrorHandler) that doesn't deal with the fact
that originalError could be falsy. This is handled by the
legacyRejectPromiseHandler, but due to the low sequence of the
faulty handler, this one was executed after.
Same error would occur if you tried to open an url of a record
that doesn't exist.
This commit fixes the error handler sequences s.t. the crash no
longer occurs.
Issue reported in the feedback pad after migrating odoo.com to 16.0.
closesodoo/odoo#110545
X-original-commit: 8e78efa3dda2484b34422a66d3963c7b20915036
Signed-off-by: Samuel Degueldre <sad@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit add the missing `o_action_delegate_scroll` on the activity
view controller on small screen device to scroll the activity view
content only instead of the whole controller (i.e. control panel
included).
Steps to reproduce:
1. Open Project on small screen device like a smartphone
2. Open a Project like 'Office Design'
3. Switch to the Activity view and try to scroll horizontally
=> The whole activity controller currently scroll => bug
closesodoo/odoo#110531
X-original-commit: e4d6a8ad14abee72d61fd01d8b601acc6bfa2c49
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Signed-off-by: Romain Estievenart (res) <res@odoo.com>
This commit is a follow-up of odoo/odoo@bb819f6a5c.
Even if the fix above worked around having the settinggs header's
content out of screen on smaller screen, the solution was ugly and was
meant to be improved later on.
This commit reworks the HeaderSetting's template and simplifies it to
properly fix this issue.
closesodoo/odoo#110530
X-original-commit: 0ab079664e380e5e77440e290ec604e3830108bb
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Have a char field with trim option set to True (this is the
default). Open a form view where the value of this field has
leading or trailing spaces. Press F5 (or close the tab/browser).
Before this commit, a write was done before leaving, with the
trimmed value of the char field.
This isn't the expected behavior: as the field hasn't been manually
edited, we don't want to write on it.
This could be reproduced on project.task form views, on tasks with
a name with leading/trailing spaces (e.g. tasks created by mails
sent to feedback@odoo.com).
The issue occurred when we saved a record "urgently" (before unload)
because we parsed the value of each input field, and we sent it if
it was different from the initial (or last set) value. In our case,
parsing the value trimmed it, and it was thus different from the
initial value.
Bug reported after the migration of odoo.com to 16.0.
closesodoo/odoo#110528
X-original-commit: 43b7ae39e633ced6008b067bb4e63ed9be7eda01
Signed-off-by: Michaël Mattiello <mcm@odoo.com>
Before this commit, clicking on a SendSMSButton in a FormViewDialog could
change the record of the main form view.
Problem:
When closing the dialog opened by the SendSMSButton, the model is reloaded
with the record id associated with the button. This has the effect of
replacing the root with this record. This will replace the record used
in the main form view by the one in the FormViewDialog.
How to reproduce:
- Go to a form view with an x2m field that has the same model as the form view
- Add a record in the x2m in order to open a FormViewDialog with at
least one field using the "phone" widget
- Complete the field with the "phone" widget
- Click on the "SMS" button
- Click on "Discard" button
Before this commit:
The dialog opened by SendSMSButton is closed and the main form view
record is replaced by the FormViewDialog record.
After this commit:
The dialog opened by SendSMSButton is closed and the record of the
main form view has not changed.
closesodoo/odoo#110527
Taskid: 3107429
X-original-commit: 9ceba129223a6368c720596ea17a3f7268487649
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Georis François (fge) <fge@odoo.com>
Steps:
- Install project app.
- Active Sub-tasks feature in config settings
- Create task with parent task
- Green the kanban state
- Modify the parent task
Issue:
The kanban state changes when we change the parent task in the task.
Fix:
We avoid the recomputing kanban state.
Why issue occurred:
When we change the parent task _compute_project_id is called and sets the project.
the _compute_kanban_state method depends on the project. So reset the kanban state.
task-3141855
closesodoo/odoo#110492
X-original-commit: 0393cffa71821ba32af8e9ba54225275647c4e70
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Before this commit, this flow was broken:
- Install website
- Create a new website of your own (not using the one created
automatically from XML data)
- Choose another color palette for that website
- Uninstall the website app
- Reinstall the website app
- Try to choose another color palette for any website
=> It does not work
Indeed, after the uninstallation, the DB is left in an invalid state:
the SCSS customizations attachments of the website that was created by
the user are not removed, they just have their website_id field emptied.
Some code made at [1] was already there to remove those attachments. The
problem is that it only worked for websites which were created by XML
data (at website installation), not by the user. Indeed, the `unlink`
method is not called during uninstallation to remove records that were
created by the user, thus the `unlink` override was not called either.
See [2] for some details.
This fixes the issues by moving this attachment cleaning code in a
dedicated method, called in `unlink` but also in the `uninstall_hook` of
the website app.
This also takes the opportunity to refactor the code involved, in
particular to not even consider customized attachments which do not have
a website_id.
[1]: https://github.com/odoo/odoo/commit/2f361bec36dff09181b96d140d62c477cdf013a1
[2]: https://github.com/odoo/odoo/pull/97852#pullrequestreview-1067851656
opw-3127531
closesodoo/odoo#110338
X-original-commit: 988eafa03b57be3b3a7f110650c61ce8fda88e31
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
The `forecast_filter` facet (aka Upcoming Closings) would have been combined
with other filters from the same group with a logical 'AND' while displaying an
'OR' combination. Fortunately it is currently the only item of its group so it
does not cause a problem.
This commit fix the inconsistency so that `forecast_filter` using the
forecast_search_model won't have this issue in the future.
Task-2657578
closesodoo/odoo#109996
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Replace moment calls by their equivalent with the luxon library in CRM, and make
use of date utils from the l10n module.
Task-3056665
closesodoo/odoo#109882
Related: odoo/enterprise#35777
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Applies minor fixups to improve owl usage in CRM, following the JS team advice:
https://github.com/odoo/odoo/pull/104975
* remove unused export
* use orm service from model
* remove redundancy for component call
Task-3056665
Part-of: odoo/odoo#109882