Thursday, December 28, 2023
28 changes · master
Enhancements to existing features
Indian invoicing now stores HSN compliance values on each invoice instead of only relying on product records. This makes invoice lines and related e-invoicing or e-waybill reports more accurate and easier to review for compliance.
Original PR description
Before this commit ================== HSN Codes are mapped to Product and same Carried to the various reporting level. After this commit ================= HSN Codes are stored at invoice level and displayed in invoice lines Related upgrade PR: https://github.com/odoo/upgrade/pull/5418 task- 3410236
Project updates now produce clearer reports with key details such as status, progress, milestones, profitability, and budget information in one place. The printed/PDF layout is also cleaner and easier to read, helping teams and customers follow project health without digging through side panels or chatter.
Original PR description
Purpose of this commit to improve the generic usage of project app So in this commit done the following changes: ----------------- - project.update description > milestones section: - indicate…
Purpose of this commit to improve the generic usage of project app
So in this commit done the following changes:
-----------------
- project.update description > milestones section:
- indicate "milestone name (SOL - x%) (due mm/dd/yyyy)
- project.update: add a 'project updates' report as follows:
- name of the update
- small table with the date, author, progress, status
- content of the description
- project.update description:
- add the 'profitability' table from the right side panel to the description
- add a new 'budget' section
- move the 'budget' sentance under that section
- and add the same 'budget' table as the one in the right side panel
- same visibility conditions apply
- grey every other lines of the tables to ease the reading
project: improve project update pdf report layout
--------------

task-2956738Users working with Indian invoicing now receive a warning when an invoice sequence is too long or contains unsupported special characters. This helps prevent invalid invoice numbering before documents are finalized, reducing compliance and correction issues.
Original PR description
Before this PR, users could enter more than 16 characters or any special characters for an invoice sequence. After this PR, if a user enters an invalid sequence format, they will receive a warning message. **Task**-3645816
Project updates now include budget information in their descriptions, making it easier for users to understand budget status alongside project progress. This improves visibility for teams using timesheets and budgets without requiring extra navigation.
Original PR description
Purpose of this commit to improve the generic usage of sale_timesheet_account_budget app So in this commit done the following changes: - add budget content in 'project.update' description. task-2956738
Quality Points can now only assign a Responsible person who belongs to the same company, is an internal user, and has the required Quality module access. This helps prevent incorrect assignments to people who cannot access or act on the Quality Point, improving operational accuracy and consistency across views.
Original PR description
Currently, it's possible to assign all users as Responsible to a Quality Point, even users having no access to that company, or external users. This restricts the Responsible user to be: - In the same company as the Quality Point - An internal user - At least a 'User' of the Quality module Added the widget in form view to keep it consistent with the other views.
Resolved issues and error corrections
This fixes an issue where newly added related records, such as project subtasks, could open before their inherited details were saved. Users now see complete and consistent information when clicking View across affected screens.
Original PR description
Steps: This is a generic issue occurring in different modules. Here, I mention one of the flow in the Project module. Open the Project module. Open any project. Add a subtask. Without manually saving…
Steps: This is a generic issue occurring in different modules. Here, I mention one of the flow in the Project module. Open the Project module. Open any project. Add a subtask. Without manually saving the subtask beforehand, click on 'View'. Form view of sub-task opens that doesn't have any of the fields it should inherit from its parent task. Go back to the parent task using the breadcrumbs. Click on 'View' again. Now, the sub-task has all of its fields set as it should. Issue: After clicking on 'View', the form view of the sub-task opens, but it doesn't have any of the fields it should inherit from its parent task. Cause: On clicking 'View', the switchToForm action is called, and this action doesn't save records before switching to the form view. Also, it should load that record into the Parent task after saving. In other modules, when clicking on 'View', the openRecord action is called, which is also not saving data. Fix: Records should be saved when the action is called on clicking 'View'. For the project module, when the action is called, after saving the record, it should also load records in the parent task. task-3508251
Miscellaneous changes
Steps to reproduce ==================== 1 Open the course and try to retake the quiz. 2 Traceback while submitting the quiz. Technical =========== Due to missing closing square bracket in the attribute selector of jquery. After this PR ================== There will be no traceback while submitting the quiz. Task-3633410 Forward-Port-Of: odoo/odoo#146261
Original PR description
Steps to reproduce ==================== 1 Open the course and try to retake the quiz. 2 Traceback while submitting the quiz. Technical =========== Due to missing closing square bracket in the attribute selector of jquery. After this PR ================== There will be no traceback while submitting the quiz. Task-3633410 Forward-Port-Of: odoo/odoo#146261
Steps to reproduce: ------------------------- - Install project and sale_timesheet module - Open the Project module - Go to task's timesheet notebook - Add a new line - Set empty in so_line field, raises traceback Issue: -------- - In timesheet notebook, when we set so_line as an empty .it will raises traceback. Cause: --------- - #145821 when set empty so_line field there is undefined value read. Fix: ------- - On a field change, compare the so_line field value with proper
Original PR description
Steps to reproduce: ------------------------- - Install project and sale_timesheet module - Open the Project module - Go to task's timesheet notebook - Add a new line - Set empty in so_line field, raises traceback Issue: -------- - In timesheet notebook, when we set so_line as an empty .it will raises traceback. Cause: --------- - #145821 when set empty so_line field there is undefined value read. Fix: ------- - On a field change, compare the so_line field value with proper record id check with new value. task-3642371 Forward-Port-Of: odoo/odoo#146783
This commit is fixing a last minute error in commit [1] after a push force which move its code above the existing line `vals['url'] = url`. After the code move, `vals['url']` was not the updated url value (which went through slugify and unique path functions). - Create a /test page, publish it. - Set /test as homepage url directly on the website (in the settings) - Go to that page - Open the page properties and change its URL from /test to /test_un -> The page url is /test-un but the websi
Original PR description
This commit is fixing a last minute error in commit [1] after a push force which move its code above the existing line `vals['url'] = url`. After the code move, `vals['url']` was not the updated url value (which went through slugify and unique path functions). - Create a /test page, publish it. - Set /test as homepage url directly on the website (in the settings) - Go to that page - Open the page properties and change its URL from /test to /test_un -> The page url is /test-un but the website homepage_url is still /test_un (not slugified) in the website settings [1]: https://github.com/odoo/odoo/commit/374a1b31f70a3209b1ae11db8e5886350579c7f9 Forward-Port-Of: odoo/odoo#147579
**Steps to reproduce the issue:** - Have two companies in your database. - Create a partner: - Set "receipt_reminder_email" to True for Company 1. - Set "receipt_reminder_email" to False for Company 2. - Create a Purchase Order with Company 2. **Problem:** The field "receipt_reminder_email" is a related field, so its value is False. However, if you switch the current company to "Company 1" while keeping the Purchase Order in Company 2, the "receipt_reminder_email" is updated t
Original PR description
**Steps to reproduce the issue:**
- Have two companies in your database.
- Create a partner:
- Set "receipt_reminder_email" to True for Company 1.
- Set "receipt_reminder_email" to False for Company 2.
- Create a Purchase Order with Company 2.
**Problem:**
The field "receipt_reminder_email" is a related field, so its value is False. However, if you switch the current company to "Company 1" while keeping the Purchase Order in Company 2, the "receipt_reminder_email" is updated to True.
**Solution:**
The field should be computed instead. the readonly for this field in not
neccessary anymore so the inverse is not mandoatory.
opw-3593577
Forward-Port-Of: odoo/odoo#146889
Forward-Port-Of: odoo/odoo#146657Each date in the timeline snippet was displayed with the time line going through them. The line is supposed to be cut around the date. This occurs since [1] which made it so `<span>` elements are automatically removed by the editor if they do not have any attributes. Unfortunately, this snippet relied on such a span, since [2]. This commit solves the issue by making the snippet better (and the XML structure will further be improved in the master forward-ported version). Unfortunately, this is no
Original PR description
Each date in the timeline snippet was displayed with the time line going through them. The line is supposed to be cut around the date. This occurs since [1] which made it so `<span>` elements are…
Each date in the timeline snippet was displayed with the time line going through them. The line is supposed to be cut around the date. This occurs since [1] which made it so `<span>` elements are automatically removed by the editor if they do not have any attributes. Unfortunately, this snippet relied on such a span, since [2]. This commit solves the issue by making the snippet better (and the XML structure will further be improved in the master forward-ported version). Unfortunately, this is not entirely stable, even though it leads to the exact same result provided no custom code tweaks the snippet. It will also solve existing timeline snippets in current databases. Note: [1] was obviously a mistake to merge in stable, although it might be kept seeing the delay since it was merged and nothing critical seems to have happened. [1]: https://github.com/odoo/odoo/commit/a26e27c85e6a0685b6cf4d2dbab90453899df34c [2]: https://github.com/odoo/odoo/commit/fbe38fb41dfdb76878748a1149f93700b566d228 task-3657771 Forward-Port-Of: odoo/odoo#147598
`onDuplicate` was marked as optional while it never was. If you don't specify it, the call to `this.props.onDuplicate();` will still be executed and will crash: `Uncaught Promise > this.props.onDuplicate is not a function` Randomly spotted while reviewing PR about duplicate button in list view related to opw-3640878. But it's not related to it. Forward-Port-Of: odoo/odoo#147600
Original PR description
`onDuplicate` was marked as optional while it never was. If you don't specify it, the call to `this.props.onDuplicate();` will still be executed and will crash: `Uncaught Promise > this.props.onDuplicate is not a function` Randomly spotted while reviewing PR about duplicate button in list view related to opw-3640878. But it's not related to it. Forward-Port-Of: odoo/odoo#147600
Before this commit, the helpers for the kanban view are only used in the kanban tests in web module and those helper functions are not exported and so it is impossible to use it outside that file. This commit moves the helper functions for the kanban view in a new file called "helpers.js" in the same directory containing the tests for the kanban views and export all the helper functions to be able to use it anywhere we need to use those helpers in JS tests. Forward-Port-Of: odoo/odoo#147279
Original PR description
Before this commit, the helpers for the kanban view are only used in the kanban tests in web module and those helper functions are not exported and so it is impossible to use it outside that file. This commit moves the helper functions for the kanban view in a new file called "helpers.js" in the same directory containing the tests for the kanban views and export all the helper functions to be able to use it anywhere we need to use those helpers in JS tests. Forward-Port-Of: odoo/odoo#147279
- Adds some permissions to protect sensitive pos_adyen data and methods. - Reduces the risks of abuses of the pos_adyen features. Those changes are not optimal. The whole system should be changed. - Fixes the printing of Adyen receipts data in the receipt. - Fixes an error when receiving a successful Adyen payment notification for the kiosk. - Fixes an error when Adyen returns an error for a payment for kiosk. - Fixes an error when requesting adjustment/capture to Adyen (pos_resta
Original PR description
- Adds some permissions to protect sensitive pos_adyen data and methods. - Reduces the risks of abuses of the pos_adyen features. Those changes are not optimal. The whole system should be changed. - Fixes the printing of Adyen receipts data in the receipt. - Fixes an error when receiving a successful Adyen payment notification for the kiosk. - Fixes an error when Adyen returns an error for a payment for kiosk. - Fixes an error when requesting adjustment/capture to Adyen (pos_restaurant_adyen and kiosk). - Removes unused handling of adyen_latest_diagnosis field (the field will be removed in master). task-id: 3500598 Forward-Port-Of: odoo/odoo#140327
Prior, if the time off type needed second approval, there was no activity generated for the responsible. This commit fixes that. Moreover we also organize the code by taking references out of the loop. task - 3584190 Forward-Port-Of: odoo/odoo#142327
Original PR description
Prior, if the time off type needed second approval, there was no activity generated for the responsible. This commit fixes that. Moreover we also organize the code by taking references out of the loop. task - 3584190 Forward-Port-Of: odoo/odoo#142327
Since its introduction with commit [1], the blog post teaser is not translatable as the field was not set as `translate=True` by mistake. It's not possible sadly in stable to add it since the jsonb introduction for translated fields, as `translate=True` behaves as a DB change. Without a module update, it will crash, trying to set jsonb value in a non jsonb field. A best effort is make here to add a tooltip to hint what's going when in translate mode and clicking on this field text. Note t
Original PR description
Since its introduction with commit [1], the blog post teaser is not translatable as the field was not set as `translate=True` by mistake. It's not possible sadly in stable to add it since the jsonb…
Since its introduction with commit [1], the blog post teaser is not translatable as the field was not set as `translate=True` by mistake. It's not possible sadly in stable to add it since the jsonb introduction for translated fields, as `translate=True` behaves as a DB change. Without a module update, it will crash, trying to set jsonb value in a non jsonb field. A best effort is make here to add a tooltip to hint what's going when in translate mode and clicking on this field text. Note that the field is not marked as translatable, but if people click on it, they will see the tooltip. If we face multiple needs, it might be clever to introduce a new property on field declaration allowing the mark a field as "translate forgotten" so that our builder shows this warning out of the box. [1]: https://github.com/odoo/odoo/commit/8cc850f3a54f62072d4df99de612f17494ffb123#diff-ae5c21b812e929930064fb93dc919ef1701fd63bae3d9fb306160d01be5629b3R114-R115 opw-3474638 Forward-Port-Of: odoo/odoo#147287 Forward-Port-Of: odoo/odoo#146931
[FIX] website: enable to add a description on form field Steps to reproduce: - Add a "Form" snippet on the website. - Select the first field. - Try to toggle the "description" option of the field. -> Problem: there is no description added on the field. The problems appeared since [this PR] and comes more precisely from [this commit]. The problem is that one condition required to fill the `default_description` parameter is that `field.type === "description"`. This should not be the
Original PR description
[FIX] website: enable to add a description on form field Steps to reproduce: - Add a "Form" snippet on the website. - Select the first field. - Try to toggle the "description" option of the field. ->…
[FIX] website: enable to add a description on form field Steps to reproduce: - Add a "Form" snippet on the website. - Select the first field. - Try to toggle the "description" option of the field. -> Problem: there is no description added on the field. The problems appeared since [this PR] and comes more precisely from [this commit]. The problem is that one condition required to fill the `default_description` parameter is that `field.type === "description"`. This should not be the case. Indeed, here was the flow before [this commit]; When the user toggled the description option, `toggleDescription` assigned `field.description` to `true`. The field was then rendered trough `renderField()`. During this rendering, the system called the `website.form_field_description` template through `website.form_field` independently of the field type. Because `field.description` was set to `true`, a `div` with the description "Describe your field here." was added on the rendered field. To solve the problem, the `field.type === "description"` condition has been removed as a condition to set the `default_description` parameter. Now, as it was the case before [this commit], this parameter is filled either if `field.description` is set, either if the field name is `email_cc` or `email_to`. The error probably comes from the fact that the name of the template used to render the field is `"website.form_field_" + field.type`. As the name of the template in charge of rendering the description is `website.form_field_description`, the author probably thought that this template should only be called when `field.type === "description"`. This is not the case; the template `website.form_field_description` is always called when rendering a field (independently of the field type through the template `website.form_field`) but is only relevant if `default_description` is set. Note that this fix fixes also another bug: - Add a "Form" snippet on the website. - Add a field which is of type "Cc". -> Problem: there should be a description of type "Separate email addresses with a comma." on the field. This commit also adapts the `website_form_editor_tour` tour to verify that the description option works as wanted. [this PR]: https://github.com/odoo/odoo/pull/130467 [this commit]: https://github.com/odoo/odoo/commit/363251986dcd753796b4b037a2da2e118b3e8e35 opw-3630348 opw-3604548 Forward-Port-Of: odoo/odoo#146115
Before this commit, errors were introduced when optimizing the synchronization by limiting it to the calendar's view range. For users different than the first to synchronize its calendar, when trying to create events in Odoo before or after the synchronized view range (e.g. 1 month), these events were being auto-archived in Odoo right after their creation in Outlook. This happens because the first range to be sent to Microsoft Outlook is currently defining how much time in the past and in the fu
Original PR description
Before this commit, errors were introduced when optimizing the synchronization by limiting it to the calendar's view range. For users different than the first to synchronize its calendar, when trying to create events in Odoo before or after the synchronized view range (e.g. 1 month), these events were being auto-archived in Odoo right after their creation in Outlook. This happens because the first range to be sent to Microsoft Outlook is currently defining how much time in the past and in the future the events will be synchronized. After this commit, the previous approach of defining a range of two years for the delta synchronization (events that were last updated) in the future is back temporarily, now with one year in the past. This behavior must be improved considering the calendar view range and must be flexible with the first synchronized view range. Issue from: 3525764 Forward-Port-Of: odoo/odoo#146754
This commit fixes a non-deterministic error in the bus module. Testing the bus service is difficult because it relies heavily on async code. Until now, `nextTick` was used but there is no guarantee that this is enough. This commit introduces the `waitForChannels` method that awaits the channel subscriptions to be done before resolving. fixes runbot-54467 Forward-Port-Of: odoo/odoo#147616 Forward-Port-Of: odoo/odoo#147550
Original PR description
This commit fixes a non-deterministic error in the bus module. Testing the bus service is difficult because it relies heavily on async code. Until now, `nextTick` was used but there is no guarantee that this is enough. This commit introduces the `waitForChannels` method that awaits the channel subscriptions to be done before resolving. fixes runbot-54467 Forward-Port-Of: odoo/odoo#147616 Forward-Port-Of: odoo/odoo#147550
Currently, when replenishing a product using a supplier that has a discount, the purchase order created didn't take the discount into account. It was set to zero. Fix in `purchase` module, test in `purchase_stock` module. Steps to reproduce: ------------------- * Go to ´Inventory´ > ´Products´ * Select any product * Configure the product: * - Product type: storable * - Enable ´can be purchased´ * - Under the ´Purchase´ tab, add a vendor with a discount * - Save * Select ´Replenish´
Original PR description
Currently, when replenishing a product using a supplier that has a discount, the purchase order created didn't take the discount into account. It was set to zero. Fix in `purchase` module, test in…
Currently, when replenishing a product using a supplier that has a discount, the purchase order created didn't take the discount into account. It was set to zero. Fix in `purchase` module, test in `purchase_stock` module.
Steps to reproduce:
-------------------
* Go to ´Inventory´ > ´Products´
* Select any product
* Configure the product:
* - Product type: storable
* - Enable ´can be purchased´
* - Under the ´Purchase´ tab, add a vendor with a discount
* - Save
* Select ´Replenish´
* Select the vendor previously added
* Confirm
* Check the PO created
Why the fix:
------------
After debugging, I discovered that
```python
po_line_values.append(self.env['purchase.order.line']._prepare_purchase_order_line_from_procurement(
procurement.product_id, procurement.product_qty,
procurement.product_uom, procurement.company_id,
procurement.values, po))
```
in `/home/odoo/odoo/addons/purchase_stock/models/stock_rule.py` would loose the discount value.
Discount can be found in `procurement.values.supplier.discount`.
Further investigation revealed that function `_prepare_purchase_order_line(self, product_id, product_qty, product_uom, company_id, supplier, po)` in `/home/odoo/odoo/addons/purchase/models/purchase_order_line.py` would not make use of the discount value.
In this function, we use the discount value from the seller instead of the supplier as the seller is computed in order to use the smallest discounted_price.
opw-3640396
Forward-Port-Of: odoo/odoo#147555**Steps to reproduce the bug:** Go to inventory > reporting > valuation The total value is hidden and the remaining is shown **Solution:** displaying total value as optional show and remaining_value as optional hidden opw-3644799 Forward-Port-Of: odoo/odoo#147661
Original PR description
**Steps to reproduce the bug:** Go to inventory > reporting > valuation The total value is hidden and the remaining is shown **Solution:** displaying total value as optional show and remaining_value as optional hidden opw-3644799 Forward-Port-Of: odoo/odoo#147661
Previously, when sending mails to applicants or employees, an automatic mail header would be constructed with the display name of offers, that name is useful on backend but should not be displayed to employees, from now we will display the following header : Company : Job Offer - Employee/Applicant task-3619099 Forward-Port-Of: odoo/enterprise#53433 Forward-Port-Of: odoo/enterprise#53318
Original PR description
Previously, when sending mails to applicants or employees, an automatic mail header would be constructed with the display name of offers, that name is useful on backend but should not be displayed to employees, from now we will display the following header : Company : Job Offer - Employee/Applicant task-3619099 Forward-Port-Of: odoo/enterprise#53433 Forward-Port-Of: odoo/enterprise#53318
Steps to reproduce: - Install Studio - Go to Contacts (or any other app) - Select any contact and edit the contact form with studio. - Now search or add a `boolean` field, usually a checkbox will work. - Now try to move it with drag and drop from one position in the form to any other position. The fix adds an XPath expression specifically targeting boolean fields that adds the missing attributes to the boolean fields, like `labelRef`, in order to later get the draggable attribute. o
Original PR description
Steps to reproduce: - Install Studio - Go to Contacts (or any other app) - Select any contact and edit the contact form with studio. - Now search or add a `boolean` field, usually a checkbox will work. - Now try to move it with drag and drop from one position in the form to any other position. The fix adds an XPath expression specifically targeting boolean fields that adds the missing attributes to the boolean fields, like `labelRef`, in order to later get the draggable attribute. opw-3495765 Forward-Port-Of: odoo/enterprise#53105 Forward-Port-Of: odoo/enterprise#48992
Since the refactoring of the relational model [1], group.resModel is the name of the model of the records, whereas before it was the name of the relation of the field we were grouped by (when grouped by a many2one field). Moreover, group.resId no longer exists, the id of the group is now stored in group.value, by consistency when grouped by other field types than many2one. Before this commit, a crash occurred when the user tried to delete a stage (a column) in the Helpdesk kanban view, when i
Original PR description
Since the refactoring of the relational model [1], group.resModel is the name of the model of the records, whereas before it was the name of the relation of the field we were grouped by (when grouped by a many2one field). Moreover, group.resId no longer exists, the id of the group is now stored in group.value, by consistency when grouped by other field types than many2one. Before this commit, a crash occurred when the user tried to delete a stage (a column) in the Helpdesk kanban view, when it was grouped by state_id. [1] https://github.com/odoo/odoo/pull/114024 OPW-3629005 Forward-Port-Of: odoo/enterprise#53040
Commit that introduced the issue: https://github.com/odoo/odoo/commit/14fc7f3c923847f5e052888c2cfda0bf92316972 Issue: ====== Validating required additional fields doesn't work. Steps to reproduce the issue: ============================= - Install ecommerce - Install l10n_mx_edi_website_sale - Mark the mexican company as the company for the website - make sure you are logged in as admin - Go to shop and add any item to cart and follow the steps until required addional informatio
Original PR description
Commit that introduced the issue: https://github.com/odoo/odoo/commit/14fc7f3c923847f5e052888c2cfda0bf92316972 Issue: ====== Validating required additional fields doesn't work. Steps to reproduce the…
Commit that introduced the issue: https://github.com/odoo/odoo/commit/14fc7f3c923847f5e052888c2cfda0bf92316972 Issue: ====== Validating required additional fields doesn't work. Steps to reproduce the issue: ============================= - Install ecommerce - Install l10n_mx_edi_website_sale - Mark the mexican company as the company for the website - make sure you are logged in as admin - Go to shop and add any item to cart and follow the steps until required addional informations - Clicking on next will disable the button and mark it as loading but nothing happens. Origin of the issue: ================================= - There was some fields missing to use `s_website_form` snippet since it uses action + (foce_action or model_name) to call post method on the path but we didn't provide any. Solution: ========= remove the `s_website_form` snippet from the template. opw-3635199 Forward-Port-Of: odoo/enterprise#53392 Forward-Port-Of: odoo/enterprise#53072
In `_l10n_mx_edi_cfdi_invoice_get_payments_diff()`: If the filestore is not available (e.g. during upgrades or for any other reason), `ir_attachment.raw` computation returns an empty byte string. Passing that to `lxml.etree.fromstring()`, causes `lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1`. The upgrade of serveral DBs fails because of this (tbg-978). Since in that situation it is unclear why the attachment is empty, it is best to leave the state as is and continue to the n
Original PR description
In `_l10n_mx_edi_cfdi_invoice_get_payments_diff()`: If the filestore is not available (e.g. during upgrades or for any other reason), `ir_attachment.raw` computation returns an empty byte string. Passing that to `lxml.etree.fromstring()`, causes `lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1`. The upgrade of serveral DBs fails because of this (tbg-978). Since in that situation it is unclear why the attachment is empty, it is best to leave the state as is and continue to the next payment. Forward-Port-Of: odoo/enterprise#53377 Forward-Port-Of: odoo/enterprise#53162
When the OCR isn't able to detect a value for a field, we shouldn't try to fill it in. For most fields, it wasn't much of an issue, but in the case of the currency, it was very problematic as we're using the `ilike` operator with an empty string, it matches any string ! Anytime the OCR wasn't able to detect the currency, it could set any currency in the expense. Forward-Port-Of: odoo/enterprise#53408 Forward-Port-Of: odoo/enterprise#53092
Original PR description
When the OCR isn't able to detect a value for a field, we shouldn't try to fill it in. For most fields, it wasn't much of an issue, but in the case of the currency, it was very problematic as we're using the `ilike` operator with an empty string, it matches any string ! Anytime the OCR wasn't able to detect the currency, it could set any currency in the expense. Forward-Port-Of: odoo/enterprise#53408 Forward-Port-Of: odoo/enterprise#53092
Steps to reproduce: - Make a campaign in Social Marketing - Make a post and post it - Change the name Issues: Traceback is shown and name change is not saved. Solution: Onchange creates NewId record, instead we want the original record. opw-3597653 Forward-Port-Of: odoo/enterprise#51071
Original PR description
Steps to reproduce: - Make a campaign in Social Marketing - Make a post and post it - Change the name Issues: Traceback is shown and name change is not saved. Solution: Onchange creates NewId record, instead we want the original record. opw-3597653 Forward-Port-Of: odoo/enterprise#51071