Tuesday, January 3, 2023
23 changes · master
New functionality added to Odoo
Grid-based screens, including timesheets, can now display sample data when there is no real data available. This helps users understand how the view works and makes empty screens more useful during setup or evaluation.
Original PR description
[IMP] {web, timesheet}_grid: add sample data mode
This commit introduces the sample data feature for the Grid View.
Although this isn't a good practice to duplicate logic in the code,
there was unfortunately no other choice at the time being. The only
solution being to rewrite the Gird View in order to bring more
presentation logic at the client side, which is not a possibility
at this time.
task-2702636
see also:
- https://github.com/odoo/documentation/pull/1789Enhancements to existing features
The Knowledge and Gantt apps now use the label "New" instead of "Create" for starting a new item. This makes the action clearer for users by indicating they will open a blank page or record to fill in, reducing confusion across apps.
Original PR description
This commit tries to unify the name of the create buttons in different apps. "New" is used over "Create" to avoid confusion regarding its effect. "Create" could be interpreted as we want the current record to create a new one. But "New" implies that the user will land on an empty page that can be filled. community part: https://github.com/odoo/odoo/pull/108439 task id: 3074472
Resolved issues and error corrections
Corrected a display issue in the map settings by updating an outdated alignment label to match the current interface framework. This helps keep the settings page visually consistent and prevents minor layout inconsistencies.
Original PR description
fix typo in text-right class and replaced by text-end in bootstrap 5
Features or functions removed from Odoo
An old Documents app form view that has not been used since version 13.0 was removed. This cleanup reduces unused configuration and helps keep the Documents module easier to maintain without affecting normal users.
Original PR description
The form view(document_view_form) of an documents app in not used after v13.0 So, removed it. task-2899649
Miscellaneous changes
This fix is needed because behavior was changed in v15 so that pickings auto-assign when they are confirmed by default. (i.e. setting added to operation type for reservation method) Forward-Port-Of: odoo/enterprise#35375
Original PR description
This fix is needed because behavior was changed in v15 so that pickings auto-assign when they are confirmed by default. (i.e. setting added to operation type for reservation method) Forward-Port-Of: odoo/enterprise#35375
Grid view editing now supports familiar keyboard actions: Enter saves the edited cell and moves focus downward, while Escape cancels the change and exits editing. This makes data entry faster and more consistent with editable list views.
Original PR description
PURPOSE
In an editable listview, the user can save his changes by hitting 'Enter' while in a record being edited.
The purpose of this task is to implement the same behaviour in the grid view.
allow the user to save the cell update with 'Enter',
and to discard the cell update with 'Escape'
SPECIFICATION
When editing a gridview cell:
hitting 'Enter' should validate the cell update and move the focus to the cell below
NB: the behaviour is similar to hitting 'Tab', with the only difference that the focus should move to the cell below
hitting 'Escape' should discard the cell update and remove the focus from the gridview
NB: the gridview switches to readonly
TASK 2618994Gantt views can now group records by fields that allow multiple selections, such as tasks with several collaborators. This makes planning and workload views more flexible, and Studio now lets users add these fields to search/grouping options.
Original PR description
PURPOSE Allow to group records by many2many fields. Use case: turn the user_id m2o field on project.task into a user_ids m2m field in order to assign multiple collaborators on a task SPEC Add many2many fields to the 'list of groupable fields'. in gantt view. TASK 2508608
The Gantt view now extends the hover highlight from a total row up to the related date, making it easier to see which date the total belongs to. This improves readability and reduces ambiguity when reviewing schedule totals.
Original PR description
Purpose: When hovering on the total_row, the purple highlight should go all the way up to the date SPECIFICATIONS: Include the date when hovering on a total_row. LINKS: Task- 2579233
Studio was updated to stay compatible with a related change in how list footers display tooltips. This helps ensure tooltip behavior continues to work correctly for users editing list views in Studio.
Original PR description
This commit is the counter part of odoo/odoo#108894 which moves the tooltip from the footer cell to a span inside the cell, in lists.
The pull request updates how Odoo modules read visitor location information, aligning them with a newer, more reliable geolocation system. This helps appointment and signing features continue using location details correctly while reducing the risk of errors when location data is unavailable.
Original PR description
request.geoip is no more a dictionnary cached in the session. It is now a full blown object with lazy and smart geolocalisation capabilities. Among other things, the previous dictionnary API is now deprecated. The changes are: * `request.geoip['country_name']` -> `request.geoip.country_name` * `request.geoip['country_code']` -> `request.geoip.country_code` * `request.geoip['city']` -> `request.geoip.city.name` * `request.geoip['latitude']` -> `request.geoip.location.latitude` * `request.geoip['longitude']` -> `request.geoip.location.longitude` * `request.geoip['region']` -> `(request.geoip.subdivisions[0].iso_code if request.geoip.subdivisions else None)` * `request.geoip['time_zone']` -> `request.geoip.location.time_zone` It is safe to access all the attributes. Doing `request.geoip.city.name` when the geolocalization failed (missing db, invalid address, ...) evaluates to None. It does not raise an AttributeError. Task: 2848206 Related to odoo/odoo#91337
Mobile users can now scroll long calendar event popovers instead of having scrolling blocked. This makes it easier to view full event details on smaller screens without getting stuck or missing information.
Original PR description
In https://github.com/odoo/odoo/pull/80511 a rework was done for calendar popover allowing long events to be scrolled. However the mobile calendar renderer had some code blocking scrolls. This PR removes this code in order to allow the scroll. task-2685440
The SYSCOHADA localization reports were corrected so the balance sheet and profit and loss report labels use English as the base language. French translations were added separately, making reports clearer for multilingual deployments and easier to maintain.
Original PR description
All the localization of syscohada was written in French instead of English. To correct this, this PR modifies the balance sheet and profit and loss reports and adds a French PO file to have all the translations in the language used in these countries.
The payroll dashboard tests were split into clearer scenarios with fixed dates, so results no longer depend on the day the tests are run. This makes internal quality checks more reliable and easier to maintain, reducing the risk of false test failures.
Original PR description
The test_dashboard_stats in hr_payroll had many conditional asserts as the expected values were dependent on the current day. To simplify the test cases it was decided to split one test into multiple tests testing each possible assertion using freezetime. task-3116501
Fixed an issue in the Timesheets grid where updated totals could briefly appear and then revert after selecting a cell. This ensures users working in days see the correct total immediately and consistently while entering timesheets.
Original PR description
Steps to reproduce: go to timesheets > settings > change the encoding unit to 'days' go to the 'all timesheets' menu and encode a few timesheets Observed behavior: when clicking on a cell, the new total is quickly displayed and then is reset to the previous value clicking on another cell makes the new total appear again Expected behavior: the new total should remain displayed after clicking on a cell task-2522612
This fixes a visual issue in Gantt views where holiday rows could show an unwanted blank line when no item was scheduled. Row titles and calendar cells now align correctly, making schedules easier to read.
Original PR description
The color of the cell is gray on holidays.
Problem:
When there is no pill in the row, .o_gantt_row_title and
.o_gantt_cell height are different so white space add line bottom.
Solution:
.o_gantt_row_title and .o_gantt_cell height should be the same.
issue come in this commit-https://github.com/odoo/enterprise/commit/086e6c6cb547d7b6d327c45a41b7ae76a0780afc
Task-2638995Records without an assigned color now appear consistently across Gantt and calendar views, reducing visual confusion for users. The shared color palette was standardized so the same categories use the same colors in both scheduling views.
Original PR description
Community: odoo/odoo#108597 ## Task specs In the gantt view, a record with no color is displayed in green, whereas in the calendar view, it is displayed in gray. This is not consistant and might…
Community: odoo/odoo#108597 ## Task specs In the gantt view, a record with no color is displayed in green, whereas in the calendar view, it is displayed in gray. This is not consistant and might confuse the user. Task id: 2518854 ### Calendar - Before  ### Calendar - After (no changes)  ### Gantt - Before   ### Gantt - After (look at gray color in open shifts row)  
Steps: Create 80+ projects and a timesheet for each one. Go to timesheets > all timesheets. Group by project. Issue: Some groups appear with no timesheet. Cause: The result is limited to 80 groups. Then `_group_expand_project_ids` is called. It adds the rest of it as empty groups to the result. This method was used in timesheet reporting. As only pivot and graph views are left in this action, it won't be called anymore. So, on one hand, it is not used anymore for its original
Original PR description
Steps: Create 80+ projects and a timesheet for each one. Go to timesheets > all timesheets. Group by project. Issue: Some groups appear with no timesheet. Cause: The result is limited to 80 groups. Then `_group_expand_project_ids` is called. It adds the rest of it as empty groups to the result. This method was used in timesheet reporting. As only pivot and graph views are left in this action, it won't be called anymore. So, on one hand, it is not used anymore for its original purpose. And on the other hand, it causes some issue for basic functionnalities. Fix: Deprecate it and return an empty set. task-3084945 Forward-Port-Of: odoo/enterprise#35381
`l10n_be_us_consolidation_demo` module overrides default receivable and payable accounts for `partner_demo_company_be` and `base.main_partner` on the `base.main_company`. If one tries to create an account.move with `base.main_company`, where the customer is `partner_demo_company_be`, and the journal items are created with the liaison account that belongs to `demo_company_be`. As the `main_company` has no access to the `be_specific_receivable_account` liaison account, the account.move cannot be s
Original PR description
`l10n_be_us_consolidation_demo` module overrides default receivable and payable accounts for `partner_demo_company_be` and `base.main_partner` on the `base.main_company`. If one tries to create an account.move with `base.main_company`, where the customer is `partner_demo_company_be`, and the journal items are created with the liaison account that belongs to `demo_company_be`. As the `main_company` has no access to the `be_specific_receivable_account` liaison account, the account.move cannot be saved. Liaison accounts should be set on a partner for the correct company. task-2870857 Forward-Port-Of: odoo/enterprise#33610
in documents_spreadsheet_crm module, a directory with name l18n get added( instead of i18n). removing wrong directory get added from: https://github.com/odoo/enterprise/commit/da5b16979de226db6ba3de94dd55799d60a29710  i18n folder existing: https://github.com/odoo/enterprise/tree/16.0/documents_spreadsheet_crm/i18n Forward-Port-Of: odoo/enterprise#
Original PR description
in documents_spreadsheet_crm module, a directory with name l18n get added( instead of i18n). removing wrong directory get added from: https://github.com/odoo/enterprise/commit/da5b16979de226db6ba3de94dd55799d60a29710  i18n folder existing: https://github.com/odoo/enterprise/tree/16.0/documents_spreadsheet_crm/i18n Forward-Port-Of: odoo/enterprise#35203
In Odoo, it is currently required for every customer/vendor to have a mobile or phone number in order to export the SAF-T report. However, in reality (documentation), this field is only required for the header company, and optional for customers/vendors. The SAF-T report needs contacts information. Currently, every type of partner is picked for contacts, while it would make more sense to only pick the 'contact' type. This would also solve an issue with partners' name being empty (which can be
Original PR description
In Odoo, it is currently required for every customer/vendor to have a mobile or phone number in order to export the SAF-T report. However, in reality (documentation), this field is only required for the header company, and optional for customers/vendors. The SAF-T report needs contacts information. Currently, every type of partner is picked for contacts, while it would make more sense to only pick the 'contact' type. This would also solve an issue with partners' name being empty (which can be the case for partners with a type different from 'contact', like Invoice or Delivery addresses). This commit makes the Telephone field optional, and modifies the error raised to only check for the phone of the company. It also filters contacts on the 'contact' type to avoid errors for empty contact names. task id=3099751 Forward-Port-Of: odoo/enterprise#35338 Forward-Port-Of: odoo/enterprise#35024
## Steps to reproduce * Open any view that has a Notebook * Open Studio and add a new page to the notebook * Remove everything inside that page * Select another page, and come back to the page you created You should be met with a traceback opw-3046063 Co-authored-by: kebeclibre <lpe@odoo.com> Forward-Port-Of: odoo/enterprise#34851
Original PR description
## Steps to reproduce * Open any view that has a Notebook * Open Studio and add a new page to the notebook * Remove everything inside that page * Select another page, and come back to the page you created You should be met with a traceback opw-3046063 Co-authored-by: kebeclibre <lpe@odoo.com> Forward-Port-Of: odoo/enterprise#34851
Issue introduced with 3d6dbf04f52551a1bf7324d82b482ea88f5b3a7b. As "id" is a concat of 3 id, it can get bigger than the 4 bytes limit for INTEGER columns. In those case, an error is raised when the user tries to open the reporting view: psycopg2.errors.NumericValueOutOfRange: value "61326216613" is out of range for type integer opw-3107034 Forward-Port-Of: odoo/enterprise#35350
Original PR description
Issue introduced with 3d6dbf04f52551a1bf7324d82b482ea88f5b3a7b. As "id" is a concat of 3 id, it can get bigger than the 4 bytes limit for INTEGER columns. In those case, an error is raised when the user tries to open the reporting view: psycopg2.errors.NumericValueOutOfRange: value "61326216613" is out of range for type integer opw-3107034 Forward-Port-Of: odoo/enterprise#35350
remove non existing dashboard view type from dashboard json files. Forward-Port-Of: odoo/enterprise#35227
Original PR description
remove non existing dashboard view type from dashboard json files. Forward-Port-Of: odoo/enterprise#35227