Wednesday, November 6, 2019
14 changes · master
Enhancements to existing features
Sales teams can now edit the phone number on a CRM lead even when a customer is linked. This avoids unintentionally changing the customer's main phone number while still allowing lead-specific contact details to be updated.
Original PR description
Before this commit, the user could not edit the lead phone field when a customer was assigned. The phone field was related to the phone of that customer. Now, the field related to the phone of the customer is removed. We can edit the phone field of the lead without modifying the customer one. task-2083470 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users who gain enough karma after completing a course quiz now see a clearer level-up animation and updated progress information. The change also corrects course completion display on user profiles and makes rank handling more consistent, improving reliability around gamification rewards.
Original PR description
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
Recruiters can now record a reason when refusing an applicant through a dedicated wizard. This improves recruitment reporting and helps teams track why candidates are declined, supporting better hiring insights and dashboard metrics.
Original PR description
Description of the issue/feature this PR addresses: When we refuse an applicant, open a wizard to add a refuse reason. id=2003841 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The leave calendar now visually highlights unusual working days, making schedule exceptions easier to spot when planning time off. This helps employees and managers better understand calendar context before approving or requesting leave.
Original PR description
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
The test suite was updated so it can run reliably without relying on preloaded demo data. This improves confidence in future changes, makes testing faster, and also includes fixes so internal users can access their own invoices and sales orders.
Original PR description
Purpose ======= This is the first huge step to improve the test suite in several ways: - Make them demo data independent, allowing to modify the demo data without having to adapt the tests depending on it. It also allows to have a beautiful + convenient demo dataset to make a demonstration, and to configure complex data in the tests to manage the corner cases. - Improve the test performances by converting them into SavepointCase. Each test will be rollbacked to it's initial state, after the setUpClass call. That way the different data are not re-created at each test for nothing. - Introduce several test classes in base/tests/common.py to launch a TransactionCase, HttpCase or SavepointCase test with an available demo user, portal user or a large set of partners. - This is the first step to tend to a rolling release process, allowing to execute the tests (or a subset of the tests) on a migrated base, for example. TaskID: 2075739
Learners now see a more obvious celebration when passing a quiz moves them to a new level. The quiz success window animates the progress bar, updates the level message, and refreshes motivational text so the achievement feels clearer and more rewarding.
Original PR description
PURPOSE If a user levels up after passing a quiz, we want to clearly show him in the success modal that he actually passed a level instead of just showing his new rank and xp gauge. This commit introduces an animation with the progress bar when the user is levelling up. After reaching the upper bound of the next level: - The progress bar goes back to 0 ; - The lower/upper bounds change to reflect the new reached level bounds ; - The message "Amazing!" becomes "Level Up!" ; - The motivational phrase changes with a fade out/fade in animation. LINKS PR : #39421 Task ID : 2032649
Timesheet-related records are now created in batches instead of one at a time. This improves performance when creating many timesheet entries, especially in workflows involving projects, holidays, sales timesheets, or accounting links.
Original PR description
**Creation of records will be done in batches.** - Used model_create_multi - Reworked on related functions(for eg: _timesheet_postprocess) so as to make it work in batches. This optimization is done in order to speed up the creation. Task Link- https://www.odoo.com/web?debug#id=1971460&action=327&model=project.task&view_type=form&menu_id=4720 Pad Link- https://pad.odoo.com/p/r.3817b8906a9ee8d5ebbf45b55b89a845 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Planning calendar now shows days when employees are unavailable in the My Planning view. This helps users understand availability at a glance and plan work more accurately without switching contexts.
Original PR description
id=2088873
Timesheet grid entries are now created in batches instead of one by one. This should make creating multiple timesheet records faster and improve responsiveness for users working with larger timesheet updates.
Original PR description
**Creation of records will be done in batches.** - Used model_create_multi and changed the code accordingly for creation in batches This optimization is done in order to speed up the creation. Task Link- https://www.odoo.com/web?debug#id=1971460&action=327&model=project.task&view_type=form&menu_id=4720 Pad Link- https://pad.odoo.com/p/r.3817b8906a9ee8d5ebbf45b55b89a845
Helpdesk SLA policies can now include a deadline for assigning tickets within a specific timeframe. This helps teams monitor how quickly new tickets are picked up, improving accountability and response management.
Original PR description
SLA Policies: get tickets assigned id=1974097
Resolved issues and error corrections
Fixes an intermittent issue where changing the date of a bank statement could leave neighboring statements linked to the wrong previous statement. This improves reliability of bank statement records and reduces sporadic errors when statements are reordered.
Original PR description
…tement Let's assume the following order of bank statement: 1 - 2 - 3 - 4 and now we change the date of statement 2 to be at the end 1 - 3 - 4 - 2 Changing the date triggers the recompute on record…
…tement Let's assume the following order of bank statement: 1 - 2 - 3 - 4 and now we change the date of statement 2 to be at the end 1 - 3 - 4 - 2 Changing the date triggers the recompute on record 2, that will correctly change it's previous_statement_id to 4, however we also have to change to value of record 3 so that it points towards record 1. This was previously done inside the recompute function by use of a simple search and an assignation on record 3. However this caused some random issues as if we try to access the record 3 value just after having change record 2 value, the ORM might not have yet call the method to recompute record 2 (this is called when we try to access record 2 value but we didn't do it in this case). Therefore the value in record 3 might not have changed yet. Hence the error spotted. The reason why this error only happen some of the time is probably due to some method inside the ORM where we read the value on record and those value are in a set meaning that it is not ordered and sometimes when we were lucky the recompute happened before we tried to read the value of the other record. The solution to this problem is to move the logic of other statements to recompute (in the example record 3) inside the create/write method. And instead of assigning the value directly only mark those record as needing to be recompute. That way whenever we try to access the value of such record (record 3 in this case), if it was not yet recomputed, it will be done at that time
Code cleanup and technical improvements
Website carousel and quote carousel blocks were reorganized to behave more consistently in the page editor. This reduces editing glitches, allows separate backgrounds for carousels and slides, and improves duplicated carousel handling.
Original PR description
Previously, the carousel and quotes carousel snippets were the only ones that were not enclosed in section blocks. This had a number of undesirable side effects, such as editing the anchor on the…
Receipt validation no longer crashes when a tracked product uses expiration dates but has no default expiration period set. This helps warehouse teams process incoming goods with manually entered expiration dates reliably.
Original PR description
How to reproduce: - Create a tracked product using expiration dates and don't set the `expiration_time` field; - Create a receipt for this product (using "Create New Lots/Serial Numbers") and confirm it; - Create a move line for this product and define an expiration date; - Valid the picking -> Traceback. The issue was as `expiration_time` isn't set on product, the production lot created on the receipt's validation don't have an `expiration_date`. So, if the `expiration_date` is set on the receipt move line, the production lot will try to get a time delta with its unset `expiration_date`, causing the traceback. task-2119330
Previously, the carousel and quotes carousel snippets were the only ones that were not enclosed in section blocks. This had a number of undesirable side effects, such as editing the anchor on the carousel breaking the carousel functionality, and the inability to separately choose a background for the carousel itself and individual slides. I also used this opportunity to move controls relative to the entire carousel onto the carousel itself rather than the individual slides. The sizing_y (vertical padding) will however keep targeting individual slides, as the carousel uses the height of its tallest slide, and also because padding on the carousel will not get covered by slide backgrounds and saty blank, which is unwanted. Lastly, most of the snippet options for the carousel were rewritten, as they were quite broken. There was some compatibility code for saas-3 left, some useless events were bound to the controls, even though they were already handled through event-delegation at the document level. Finally, most of the edition features were broken on duplicated carousels since the onClone method wasn't reassigning most of the things it needed to. task-2090180
This change simplifies how Odoo checks access to file attachments. It removes an overly broad employee-user requirement and leaves access decisions to the specific screens or features that use each attachment, reducing unnecessary access issues.
Original PR description
Since the commit 62c9dedafda0cbdc618641eaa80c49535ab0b5f6, the attachment required always a employee user access. Simplify corner case of attachment access check definition. It is the role of controller/model using attachment to give the rigth access for attachements. TASK_ID: 2004031 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