Before:
The method _get_mark called Model.exists() just after calling
Model.browse
This process makes 2 calls to database to do almost the same thing
Now:
Removed the method _get_mark and directly call Model.browse
FP feedback
Task 2066646
This commit improves a bit the existing backend views of the elearning
app (notably propagating content and course labeling instead of slide and
channel) and adds a pivot view for model slide.slide.
FP feedback
Task 2066646
This patch avoids to create new browse records for nothing,
(as creating new browse (__new__) is costly),
and to avoid to loop multiple times on the records
(with multiple different filtered, etc.)
This brings performance gain to __set__,
which is used when setting the value of a compute field
e.g. This improves the performances of
`env['product.product'].search_read([])`
closesodoo/odoo#36006
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Instead of using a filtered with `cache.get`,
use a dedicated method in the Cache class to get
the records having a different value in cache then asked.
This is mainly to avoid the creation of intermediate
`browse` of 1 record, when doing `for rec in self`
in `filtered`.
Creating browses is costly, and avoiding it leads
to performance gains.
The dedicated method `get_records_different_from`
loops on the record ids, instead of on browse records
These variable are not supposed to change within a same
environment.
The lazy property will compute these variables only
once, then store the result,
while the property were computing these variables
each time they were called.
e.g. for a 1000 iteration loop,
with `env.company`,
the company was computed 1000 times.
With a lazy property, the company will be computed one time only.
In DisplayDriver, we setup a loop to refresh the display every minute
if the url shown is not the customer display. If the customer display
was used, the loop didn't wait a minute and looped indefinitely,
without sleeping. This slowed down the whole box and explains why
receipts took a long time to print with older versions of Odoo and why
the framerate of the curomer display was so low.
closesodoo/odoo#36670
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Before this commit if the name of a company retrieved from lead generation is empty, there was a traceback.
Part of Task-ID: 2069155
closesodoo/odoo#36663
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
Before this commit, every time the user tried to save a rule the system displayed a message to inform that GeoIP is missing, even if GeoIP is installed.
Part of Task-ID: 2069155
Previously if you are wired connected we don't scan wifi network.
Now we scan the wifi network and add possibiliyt to select a network and use them.
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#36634
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
To add or modify printer the /root_bypass_ramdisks/etc/cups/ need be writeable.
And /root_bypass_ramdisks/etc/cups/ = /etc/cups/
But when we make 'sudo mount -o remount,ro /' we put the /etc/cups/ and so
/root_bypass_ramdisks/etc/cups/ folder on read-only.
After all 'read-only' command we make another command to put cups folder writeable
In this commit, the error message has been changed
because on clicking sms button it shows field value inserted
for Work Mobile. Hence word phone was changed to mobile.
task:2065143
closesodoo/odoo#36398
Signed-off-by: Romain Libert (rli) <rli@odoo.com>
The default image for the lunch product should be the one from the
category (added an image on the categories).
In case there is no image either on the product either on the category,
in the kanban view there should be a specific image (fork and knife
image)
Added some data in order to always have something displayed in the
kanban view
Fixed the layout of the dashboard
Bug fix, in `_check_wallet` there was a flush missing
Bug fix, `product_id` should be a many2one, not an integer field and the
orm should be used in order to avoid problems when favoriting products
This is a back2basics task
Task 2048246
closesodoo/odoo#35632
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Fix o_text_overflow class (in contact for example).
Add class o_text_overflow in hr_employee view to avoid email to
be too long.
closesodoo/odoo#36626
Signed-off-by: Romain Libert (rli) <rli@odoo.com>
This commit implements the correct behavior of clicking
the label of boolean field - should toggle the checkbox
and not display list of product.
closesodoo/odoo#36256
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Purpose
========
In expense, we now allow any simple employee (no sales access rights) to
select sales order. Technically, the name_search is done in sudo mode,
to allow simply fetching the name_get of record.
The problem is that the m2o field widget displays the "search more"
option and click on that will open a modal executing a "search_read"
which is causing access error as the user doesn't have read access on
SO.
As we want to restrict the visible information from the SO(only name_get)
to all user, we can't hack the search_read too.
Specification
=============
To prevent user frustration, we need to remove the "search more" option.
Thus, make a private function which one have 'search more..' option
related stuff and create a new widget for sale_expense, override that
function which one is returing values as it is without any modification.
task-2057714
closesodoo/odoo#36152
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
Before this commit, int was compared to a string when trying to retrieves company data in the payload.
Part of 2069155
closesodoo/odoo#36601
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
* website_forum, website_profile
- Share some code between website_forum and website_profile by exposing
a function in web_editor to instantiate a wysiwyg instance on a
textarea
- Use no-lazy loaded JS to add a visual loading effect while the
wysiwyg is not yet available.
This is made in preparation of task-2024197
(see https://github.com/odoo/odoo/pull/35749)
Thanks to @stefanorigano
closesodoo/odoo#36581
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Since ee5e972, "Achive" and "Unarchive" actions are
automatically displayed in the actions dropdown
if the record has an `active` field.
The "Archive" action is shown if `active=True`, and
"Unarchive" otherwise.
However, if the record has the `active` field but
it's not in the view, the form controller think
`active=False` because `undefined` is falsy.
Therefore, the "Unarchive" action is always shown.
If `active` is not in the view, neither "Archive" nor
"Unarchive" should be shown.
closesodoo/odoo#36551
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Only one employee per company and per user is allowed.
Based on the company the user is logged in, "My profile"
should redirect to the employee profile of the current
company.
If the user has no employee in the current company,
"My Profile" redirects to the simple "Preferences" screen.
Currently, it always redirects to the employee in the user's
main company (`user.company_id`)
This issue is a consequence of a5b6f31 which uses the context
to know the current company instead of `user.company_id`.
Specification
=============
Un-store the employee_id field on the res.users model.
To achieve this, we need to implement a _search method for this field.
That way, each time we try to access to the employee_id value, the
returned employee depends on the context.
It's currently not possible to delete an employee who has leaves
=> traceback.
The employee_id field is set to NULL in the leave table which
breaks the `type_value` constraint (same for allocation).
It should not be allowed to delete an employee with leaves:
for legal puposes in some countries, a record of employee
leaves must be kept.
Instead of deleting the employee, it should be archived.
Commit 4d64e553b8 introduced an 'mt-3' in the address layout of the
external background layout to fix a problem related to the display of
phone numbers.
That fix introduced an error with the pingen external post service. It
requires the area where the destination address is printed to be blank,
due to the mt-3, the background image was visible instead of that blank
area.
As removing solely the mt-3 doesn't break the first problem and solve
the second, it is safe to remove it.
Before this commit, no message was logged to help finding out why the
test was failing.
The `requests.raise_for_status` method raises an error on both 400 and
500 status code. We don't want the test to break in case pingen screw
up their side so 500 errors are just logged. 400 errors still raise an
exception.
closesodoo/odoo#36504
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Consider a model M that defines `display_name` as a computed stored
field, then an extension of M that introduces a mixin model A before
that definition in the MRO of M's class. The model A is expected to
have an automatic, non stored field `display_name`, while M must have
its non-automatic, stored field `display_name`.
closesodoo/odoo#36427
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#36386
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
* website_form
Now, the snippets options are still displayed in the left panel but all
the parent options are also shown (and do not require to toggle them
anymore). On hovering them, the overlay style is turned in preview mode
(even for the sticky one) allowing to see which part of the DOM the
option is editing.
Part of https://github.com/odoo/odoo/pull/36515
The anchor option was available on column so that you can target a
column which wraps on a new line in mobile... but we decided to remove
the feature as it complexify the UI.
Also fix a small bug: it was not possible to hit "save" when not
changing the anchor name of an element (an error message was displayed
to say it is already used in the page... while it is in fact used by
itself).
Part of https://github.com/odoo/odoo/pull/36515
When hovering a set of options we display a purple dashed overlay, the
problem is that it was not visible over purple-like colors. Now it is
an alternance of purple and white.
Part of https://github.com/odoo/odoo/pull/36515
* web_editor
When starting a drag and drop in the editor, a series of dropzones
appear to indicate to the user where he can drop the block being
dragged. In the website editor, when an editable structure is empty,
it is filled with a message to indicate we can drag and drop something
in there. The problem was that this message and the design that comes
with it disappeared when starting a drag and drop as it was replaced by
the editor dropzones. Now, the 2 are combined: when a dropzone appears
in an empty editable structure, the message and its design are kept and
just changes color and animation to match the one of an editor dropzone.
Part of https://github.com/odoo/odoo/pull/36515
task-2057320
When selecting an Epson ePOS printer, the POS tried to print of a
printer connected to an IoT Box.
This happened because the override of create_printer was executed
before its declaration in pos_restaurant.
The layout of the printed tickets was wrong when using an RTL language.
We fix this and use an older version of html2canvas because the new one
introduced layout issues.
The "Reprint receipt" button was not showing if an ePOS printer was
selected.
When the pos_reprint module was installed, the "Reprint Receipt" button
was always present, even if the checkbox in pos_config was unchecked.