Thursday, October 19, 2023
31 changes · master
New functionality added to Odoo
Adds a new Rooms app to help organizations manage meeting spaces, track availability, and handle bookings. Staff can configure rooms and schedules in the backend, while room-side devices can show live status and allow quick booking or meeting edits.
Original PR description
PURPOSE: -------- The purpose of this module is designed to streamline the management of meeting rooms within organizations. The significance of this module arises from the need to efficiently…
PURPOSE: -------- The purpose of this module is designed to streamline the management of meeting rooms within organizations. The significance of this module arises from the need to efficiently allocate and utilize meeting spaces, which are vital for various business activities. SPECIFICATION: -------------- ## Backend: ### Room Configuration: In the backend, the "Rooms" module offers comprehensive room management capabilities. When creating a room, room managers can input essential details such as the room name, available amenities, and associate it with a specific company and office. Each room is provided with a dedicated URL for frontend access, and room managers can customize this URL that includes a unique access code. Additionally, room images for frontend representation and the ability to set colors for the room's website are integral features. Rooms view is facilitated through both Kanban and list views, offering efficient management options. The kanban view provides quick insights into room availability, displaying whether a room is currently in use or available, along with the start time of the next meeting if available. A convenient search panel allows users to filter rooms based on company name and office name. ### Meeting Scheduling: The backend functionalities of the module extend to meeting management, ensuring seamless scheduling, updates, and removal of meetings. Various views, including Gantt view, kanban view, calendar view, and list view, are available for efficient meeting management. When scheduling meetings from the backend, users are required to provide essential information such as the meeting title, organizer's name, start time, and end time. Moreover, the module incorporates a chatter feature within the form view of meetings. This chatter function tracks critical meeting details, including the meeting's start and end times, and any changes made to the organizer's name. This feature enhances transparency and provides an audit trail for meeting- -related activities. ## Frontend: ### Current rooms status The frontend view is intended to be used on a static device (such as a tablet) next to the corresponding room. It shows the current time and the availability of the room. If the room is busy, it additionally displays the remaining time for the current meeting. it also shows all the upcoming meetings in the sidebar. ### Quick Schedule Meetings: Users can quickly schedule meetings from the frontend with minimal input. They can book the room for the next 15, 30, and 60 minutes if the room is available. ### Future Schedule: Users can also schedule meetings that will start later. The scheduling process begins by selecting the desired date for the meeting. Users can then select the start and end time slots for the meeting. ### Edit Meetings: Users have the option to reschedule or delete meetings as needed. Users can edit meetings by clicking on them in the sidebar. In that case the user can change the start and end dates as well as the name. They can also delete a meeting by clicking on the fa-close icon of the booking card in the sidebar. TECHNICAL SPECIFICATION: ---------------------------- ## Models ### room_booking model: This model is dedicated to managing bookings. It includes fields for titles, start times, end times, organizers, and potentially other relevant meeting-related information. ### room_room model: The room_room model is designed for the management of rooms. It contains fields such as name, amenities, office, room background image, and colors for the frontend view. In order for the frontend view to be updated in real time, the model sends messages through the bus service (create/delete/update bookings, update the room). ### room_office model: This model represents offices within a company. ## Access Rights Members of the "Room Manager" group possess comprehensive access rights. They are granted the ability to: create, update, and delete rooms. Internal users can create, update, and delete every booking. Public users can access the frontend view using the url of the room (that contains a unique short code). They can read, create, update and delete the bookings of a room through a controller, provided that they have the access token for the room. This access token is used when making requests from the frontend view. Task-3414166
Adds a dedicated Gantt timeline for employee attendance, making ongoing check-ins visible in real time and highlighting recent employee activity. Managers can more easily compare worked hours with expected hours and spot overtime from the attendance view.
Original PR description
In this PR we add a customized Gantt view for the attendance model - Open ended records will now be displayed, meaning if an attendance record has no check_out yet, meaning date_stop = false, then it's gantt date_stop will appear as the current time - Employees that have a check in in the past 7 days will appear in the rows - A progress mecanism to visualize overtime - A progressbar to visualize worked hours / expected worked hours see : https://github.com/odoo/odoo/pull/135439
Adds a new Frontdesk app to manage visitor check-ins, planned visits, hosts, drink requests, and station-specific welcome screens. Businesses can offer faster, more professional arrivals with real-time visitor tracking, QR code check-in, and notifications for hosts and front desk teams.
Original PR description
PURPOSE Visitor management helps an organization keep track of the people who visit their location. A visitor management system makes the check-in process painless. When guests sign in, your digital…
PURPOSE Visitor management helps an organization keep track of the people who visit their location. A visitor management system makes the check-in process painless. When guests sign in, your digital visitor log updates in real-time. Monitor it daily, or know it's there when you need it. For instance, once the visitor enters the organization, the digital check-in system boosts the visitor's confidence and well-being by providing a guide and ready directions, building on the professional first impression. SPECIFICATION Backend Station Configuration: In the backend, the "Frondesk" module offers comprehensive station management capabilities. When creating a station, administrator can input essential details such as the station name, set the responsibles for the station, and add the description to show on the frontend. Each station is provided with a dedicated URL for frontend access, including a unique secret key. Additionally, station image and the ability to set the theme for frontend representation are integral features. Also, administrator and station responsible can configure various options like: host selection - which allows the visitor to pick the host. drink options - allows the visitor to select a drink during registration. self-check-in - which shows a QR code on the screen to check in from mobile. authentify guest - request additional information upon registering. notifications - The host and station responsible will receive a notification when a visitor registers. Station view is facilitated through both Kanban and list views, offering efficient management options. The kanban view provides quick insights into displaying the number of planned visitors, visitors on site, drinks to serve, along with the time of the latest check-in visitor. Visitor: The backend functionalities of the module extend to visitor management, ensuring seamless creation, updates, and removal of visitors. Various views, including Gantt view, kanban view, calendar view, pivot view, graph view, and list view are available for efficient visitor management. Additionally, administrator and responsible of the station can create planned visitors from the backend, which helps the visitors to quick check in from the frontend. Frontend Visitor Check-In: Desk managers can efficiently check in visitors through the frontend, ensuring a seamless process. During the registration process, the frontend offers a selection of drinks for visitors to choose from, enhancing their overall experience. QR Code Check-In: Visitors can speed up the check-in process by using QR codes displayed on the Welcome Screen, significantly reducing wait times. Quick Sign-In: If a visitor has been pre-registered from the backend with a scheduled check-in time. This innovative feature ensures efficiency by presenting planned visitors approximately 45 minutes before and after their designated check-in time. Whether visitors arrive early or late, the "Quick Sign-In" panel offers a seamless check-in experience, minimizing wait times and enhancing overall visitor satisfaction. TECHNICAL SPECIFICATION Models frontdesk_frontdesk model: The model is dedicated to managing stations. It likely contains fields such as station names, station responsibles, messages to show on the frontend, options like host selection - which allows the visitor to pick the host, drink options - allows the visitor to select a drink during registration, self-check-in - which shows a QR code on the screen to check in from mobile, authentify guest - request additional information upon registering, notifications - The host and station responsible will receive a notification when a visitor registers, theme and image information for the frontdesk website. frontdesk_visitor model: The frontdesk_visitor model is designed for the management of visitors. It likely contains fields such as visitor name, phone number, email, company, check-in and check-out time, duration, station, drinks, host, message for the visitor and visitor's status. frontdesk_drink model: This model represents drinks that can be configured from the station. It contains fields like name, image, sequence, and people to notify - It will notify the people once a visitor selects a drink. Access Rights In security, we have 2 groups. Administrator Group: Members of the "Administrator" group possess comprehensive access rights. They are granted the ability to: Create, update, and delete stations, visitors as well as drinks. User Group: The "User" group, on the other hand, has more limited permissions. Members of this group are configured with the following access rights: Read and update rights for the station for which they are responsible. We are allowing user groups to create, read, and update rights for their visitors. Task-3381939 Co-authored-by: Earth Patel <eapa@odoo.com> Co-authored-by: Shaan Thakkar <thsh@odoo.com> Co-authored-by: Ipsita Borisagar <ibo@odoo.com>
Enhancements to existing features
Activity views are expanded and refined across several apps so teams can track work more clearly from one place. Documents keeps opening directly in the activity view from the systray, while Helpdesk and Quality gain more useful status and date information.
Resolved issues and error corrections
This fixes an access issue that could stop some HR users from opening employee contract forms. The salary attachment button is now only shown to users with the right payroll permission, preventing confusing errors and improving day-to-day HR workflow reliability.
Original PR description
Before this commit, the button ``action_open_salary_attachments`` on the contract form view would cause the error ``EvalError: Can not evaluate python expression: (bool(salary_attachments_count == 0))`` because the button would use the field ``salary_attachments_count`` in its invisible attribute. However, not all all users have the access rights to this field. With this commit, the button's access rights are limited to those of ``salary_attachments_count``, namely ``group_hr_payroll_user``
Code cleanup and technical improvements
This update replaces older layout alignment classes across several Odoo screens with current styling conventions. It helps keep the interface easier to maintain while preserving the same visual behavior for users.
Original PR description
The first intention of this commit was to remove ´@extend´ but it actually makes sense to remove ´.oe_left´ and ´.oe_right´ classes. Since grid we can avoid "float" elements (see .oe_subtotal_footer) and we only have to remove this class. For the other case, we have to use ´.float-start' and ´float-end´ to replace ´oe_left´ and ´oe_right´.
Miscellaneous changes
Steps: - Open field service - Create a task. - Click on the 'Worksheet' stat button. - Save the record. - Sign report. - Remove the selected project. Issue: - When the project is not selected or the project in which the timesheets are not allowed is selected, even then the customer preview stat button appears. Cause: - We have not given the necessary invisible condition to hide the stat button. Fix: - Giving necessary invisible conditions to hide the stat button. task-350825
Original PR description
Steps: - Open field service - Create a task. - Click on the 'Worksheet' stat button. - Save the record. - Sign report. - Remove the selected project. Issue: - When the project is not selected or the project in which the timesheets are not allowed is selected, even then the customer preview stat button appears. Cause: - We have not given the necessary invisible condition to hide the stat button. Fix: - Giving necessary invisible conditions to hide the stat button. task-3508259 Forward-Port-Of: odoo/enterprise#49079 Forward-Port-Of: odoo/enterprise#47450
Original PR description
[IMP] various: improve activity view The following activity view have been improved: - helpdesk.ticket: kanban_state added - quality.check: control_date added Technical note: - o_text_block added on text that can be long to limit their size on some other activity view. [IMP] various: add activity view for different model We add the activity view for: - event.event (see odoo/odoo#138135). As it is overridden in event_enterprise module, we add it here as well. - mrp.eco - quality.alert, quality.check, quality.point [IMP] crm_enterprise, documents: simplifies the systray The change is related to odoo/odoo#138135 where we simplify the systray and define the list view as the default view openned from the systray. Here we override the default for document to open the activity view instead. We also update the test as we have now only one clickable area for the activity group instead of multiple one. Task-3300854
Helpdesk website pages now use page headings more consistently, reducing the chance of confusing or duplicated main titles. Some text sizing was also standardized with reusable font size classes, helping pages stay visually consistent and easier to maintain.
Original PR description
This commit permit to reduce the risk to have a wrong h1 tag or multiple h1 tags on the same page. This commit replaces some h1 tags by a h2. In addition, this commit removed some font size written in the style attribute and replace them by a font size class. Community PR: https://github.com/odoo/odoo/pull/129791 task-1958098
Knowledge users can now place hierarchy views directly inside article content and link to them from the editor. This makes it easier to document and share structured information without leaving the article.
Original PR description
With this PR, users will be able to embed the Hierarchy view directly within the knowledge editor, directly in the body of articles, and it also allows linking the Hierarchy view. **Task**-3560622
Preparation displays now behave more predictably at the final stage, preventing orders from unexpectedly moving back when staff tap them. The update also adds a mobile-friendly menu for key actions and fixes an online payment dependency issue that could cause errors in self-order flows.
Original PR description
pos*: pos_preparation_display, pos_self_order_preparation_display, pos_online_payment_self_order_preparation_display, This PR contains multiple improvement: --- **1 pos: function using field not…
pos*: pos_preparation_display, pos_self_order_preparation_display, pos_online_payment_self_order_preparation_display, This PR contains multiple improvement: --- **1 pos: function using field not existing in this module** In the module pos_self_order_preparation_display, we use in the orders.py controller the field 'self_order_online_payment_method_id' which is not created in this module nor in any dependent module but in pos_online_payment. We thus have to move this to pos_online_payment_self_order_preparation_display to avoid traceback. --- **2 pos_preparation_display: remove click order on last stage** In this commit, we remove the stage change when clicking on an order in the last stage of a preparation display. We also remove the stage change when all orderlines of an orders are set to todo=false in the last stage. We finally put all orderlines as todo=false by default when arriving in the last stage of a preparation display. This is because the flow was a bit confusing for the user in this stage. The user was not expecting the order to come back to the first stage when clicking on it. He will now have to click on one of the two button below the order to change its state. --- **3 pos_preparation_display: add burger menu to preparation_display** In this commit, we add a burger menu in the preparation_display screen when the user is in mobile or small devices. This menu contains the filter, the recall/delete and the close buttons. https://github.com/odoo/odoo/pull/139187
Accounting users now get a dedicated view to review journal entries before starting auto-reconciliation. This makes it easier to launch reconciliation with the relevant partners and accounts already selected, improving control and efficiency in the reconciliation process.
Original PR description
Adds a dedicated view to see Journal Entries before auto-reconcile. This view allows to prefill the auto-reconcile wizard with partners and accounts of the view. It is accessible instead of previous Accounting>Auto-reconcile that is renamed Reconcile. task-id: 3549911
The shop floor experience has been improved with clearer production completion actions, better display of quality check details, and more accurate quantities for work orders. Employees also get a more useful personal work list, while navigation and several workflow bugs around backorders, work centers, and production registration have been corrected.
Original PR description
This PR adresses a collection of UX and functionality improvements for the shop floor app.
The Employees app now keeps the Contracts menu visible when the contracts module is installed, even if Payroll is not installed. This improves navigation and makes employee contract information easier to access for users who do not use the payroll app.
Original PR description
Previously, without the payroll app, the menu item for contracts in the employee app was not available. To improve accessibility and user experience, the contract menu item is now kept and visible when hr_contract module is installed. related PR on odoo: https://github.com/odoo/odoo/pull/133586 Task-3479237
Invoice emails that include timesheets now provide a direct link to the related timesheet details, making it easier for customers to review billed work. The portal timesheet view has also been clarified with improved labels and cleaner internal header and footer wording.
Original PR description
This commit improves the Portal functionality and add email template: - improve email template for invoice includes timesheet (add link in mail which redirect to timesheets linked with invoice). - improve timesheets template by renaming labels and internal header/footer. task-3251680
The Match button is now hidden when users are already viewing journal items to reconcile, where clicking it would only reapply the same filter. This reduces confusion while keeping matching details available when users open an existing matching number.
Original PR description
Problem --------- With the new Manual Reconciliation update the Match button just applies a filter. Once the filter is applied you can hit match again and it will just apply the same filter again and essentially do nothing. Seems confusing for customers. Objective --------- When you are in the context of "Journal Items to Reconcile" -> don't show "Match" in the column Matching. We need to keep the column if you go to a matching number existing. Solution --------- Create a JS function that returns true if both `partner_id` and `account_id` are used as filters at the same time. If true, the matching button is shown. task-3488287
The restaurant preparation display now includes more sample data and places some demo orders in earlier stages. This makes it easier for users to explore and demonstrate how kitchen preparation workflows behave with realistic activity.
Original PR description
The demo data linked to the preparation display (in restaurant) where a bit light. This commit add more data to the demo data and move some to previous stages so that user can play more with them. Community PR: odoo/odoo#138478
The accounting onboarding tour has been improved so users receive clearer guidance at each step. This helps new accounting users stay oriented and complete the setup experience with less confusion.
Original PR description
Description of the issue/feature this commit addresses: The current onboarding account tour is sometimes broken. The purpose of this commit is to fix it and make it run smoothly. --- Desired behavior after the commit is merged : This commit modifies the onboarding account tour to clarify the messages that are shown, add messages to certain steps and try to make it impossible for the user to be lost during its entierty. Adding this improvement, the onboarding account tour better fills its purpose. --- Community PR : https://github.com/odoo/odoo/pull/135187 task-3375344
Marketing teams can now collapse domain/filter fields in marketing automation and push notification templates. This keeps configuration screens cleaner and easier to navigate when working with complex targeting rules.
Original PR description
In this commit, we add the foldable option to domain fields in marketing apps. Task-3458063
This update makes several usability improvements to salary offer and payroll screens, especially for Belgian HR contract workflows. It helps HR teams navigate and manage salary offers more smoothly with clearer views and menu behavior.
Original PR description
task-3561708
Businesses can now choose custom email templates for appointment booking and cancellation messages, or leave them blank to skip sending those emails. This helps tailor customer communications to specific appointment types, such as restaurant reservations where standard meeting details may not fit.
Original PR description
This commit allows users to customize the mail templates sent when an attendee books or cancels a meeting through an appointment type. In addition, it also allows to NOT send one (or both) of those by leaving the associated field blank. The goal is to be able to make the template appropriate to the appointment use case, such as removing the time frame of the appointment for a restaurant booking, as you don't really want that to appear in the customer email (e.g: you only have 4 hours to eat). Task-3547269
This update changes several business apps to use Odoo's controlled randomization tool when creating sample or test data. This helps ensure generated data is repeatable, making testing and troubleshooting more reliable without affecting day-to-day users.
Original PR description
*: - appointment - knowledge - planning - sale_subscription Before this commit, the populate files for the listed modules were calling the random python library. As we don't want non-deterministic populate, this import has been changed to use the odoo Random tool which allows deterministic randomization through seeds.
Rental products added to an empty cart now use the correct rental dates before checking stock availability. This prevents customers from proceeding with unavailable rentals and disables checkout when the cart cannot be fulfilled for the selected dates.
Original PR description
Before this commit, when adding a rental storable product to an empty cart, the check of stock availability was wrong because no dates were specified. This commit makes sure the cart has dates when adding a rental product to it. The check for the rental availabilities always use the dates from the cart. Therefore, the arguments of `_is_valid_renting_dates` are removed. task-3537684 See also: https://github.com/odoo/odoo/pull/137844
Spreadsheet-related code was reorganized to make imports clearer and remove outdated testing helpers. This is an internal cleanup that should make future maintenance and testing easier without changing day-to-day spreadsheet behavior for users.
Original PR description
The first commit removes the default exports from the spreadsheet module. They don't bring anything except confusion when importing a mix of default and named exports. The second commit remove legacy test utils/JQuery. Task: [3559536](https://www.odoo.com/web#id=3559536&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
After commit 0b69bf0 the following bug appeared. Steps to reproduce: 1) activate only 'ups' shipping method 2) activate only 'cod' payment provider 3) add product of type 'product' to the cart and proceed to /shop/payment 4) observe the traceback This bug happens in website_sale_ups checkout_form.js when payment option is clicked on not yet initialized payment form widget. With the commit in community we always show payment options radio even if there is only one available, which all
Original PR description
After commit 0b69bf0 the following bug appeared. Steps to reproduce: 1) activate only 'ups' shipping method 2) activate only 'cod' payment provider 3) add product of type 'product' to the cart and proceed to /shop/payment 4) observe the traceback This bug happens in website_sale_ups checkout_form.js when payment option is clicked on not yet initialized payment form widget. With the commit in community we always show payment options radio even if there is only one available, which allows to remove the problematic code in website_sale_ups. see related PR odoo/odoo#138935 Forward-Port-Of: odoo/enterprise#49062
When enterprise is installed as a package, importing this odoo.addons.l10n_nl_reports_sbr_icp will raise an ImportError due to this wrong import. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48673
Original PR description
When enterprise is installed as a package, importing this odoo.addons.l10n_nl_reports_sbr_icp will raise an ImportError due to this wrong import. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48673
- Display account in name_get, since many account can have template with the same name - Copy a template, copy the variable: very handy to handle different template that are translation of each other - Select the right account when create a template from the smart button on account form view Forward-Port-Of: odoo/enterprise#48880 Forward-Port-Of: odoo/enterprise#48416
Original PR description
- Display account in name_get, since many account can have template with the same name - Copy a template, copy the variable: very handy to handle different template that are translation of each other - Select the right account when create a template from the smart button on account form view Forward-Port-Of: odoo/enterprise#48880 Forward-Port-Of: odoo/enterprise#48416
Forward-Port-Of: odoo/enterprise#49072 Forward-Port-Of: odoo/enterprise#49021
Original PR description
Forward-Port-Of: odoo/enterprise#49072 Forward-Port-Of: odoo/enterprise#49021
Before this commit, the 0613d22 commit makes `unit_amount` field readonly to not allow the user to edit that field when he goes to timesheets views via Helpdesk action. The problem is since saas-16.3 version, the form view used in `act_hr_timesheet_line_helpdesk` action is the same then the one used in `My Timesheets` and so the field is not only in readonly in `act_hr_timesheet_line_helpdesk` action. This commit reverts the changes made for that form view to avoid having that field in readon
Original PR description
Before this commit, the 0613d22 commit makes `unit_amount` field readonly to not allow the user to edit that field when he goes to timesheets views via Helpdesk action. The problem is since saas-16.3 version, the form view used in `act_hr_timesheet_line_helpdesk` action is the same then the one used in `My Timesheets` and so the field is not only in readonly in `act_hr_timesheet_line_helpdesk` action. This commit reverts the changes made for that form view to avoid having that field in readonly in `My Timesheets` menu. Forward-Port-Of: odoo/enterprise#49134
Small fixes spotted during refactoring in master: - fix parameters passed to `_add_annex_fields_expenditures` - add the xml encoding and version declaration back (was accidentally removed) Forward-Port-Of: odoo/enterprise#49086 Forward-Port-Of: odoo/enterprise#48989
Original PR description
Small fixes spotted during refactoring in master: - fix parameters passed to `_add_annex_fields_expenditures` - add the xml encoding and version declaration back (was accidentally removed) Forward-Port-Of: odoo/enterprise#49086 Forward-Port-Of: odoo/enterprise#48989
…n_US locale The en_US default locale in o-spreadsheet is m/d/yyyy but it's mm/dd/yyyy in odoo. Because of this mismatch, spreadsheets from the source code of odoo (dashboards, templates) will have a small warning saying the spreadsheet locale and the user locale mismatch. That's because existing spreadsheet don't have any locale and the default one is used. This commit adds the locale to all o-spreadsheet json files. Notes: - we could have completely upgrade the json file format to t
Original PR description
…n_US locale The en_US default locale in o-spreadsheet is m/d/yyyy but it's mm/dd/yyyy in odoo. Because of this mismatch, spreadsheets from the source code of odoo (dashboards, templates) will have a small warning saying the spreadsheet locale and the user locale mismatch. That's because existing spreadsheet don't have any locale and the default one is used. This commit adds the locale to all o-spreadsheet json files. Notes: - we could have completely upgrade the json file format to the latest o-spreadsheet version (version: 14), but just adding the settings is enough - I didn't added the locale to a few template files which are minified (some have tens of thousands lines. The diff isn't worth it for such a minor annoyance. Forward-Port-Of: odoo/enterprise#49045
The consolidation report actions call the same report for the consolidation periods. Since the OWL reports restore options data from the session store, the same report was displayed. To solve this, a param is added to the action to ignore the session store. OPW-3547465 Forward-Port-Of: odoo/enterprise#49071 Forward-Port-Of: odoo/enterprise#49031
Original PR description
The consolidation report actions call the same report for the consolidation periods. Since the OWL reports restore options data from the session store, the same report was displayed. To solve this, a param is added to the action to ignore the session store. OPW-3547465 Forward-Port-Of: odoo/enterprise#49071 Forward-Port-Of: odoo/enterprise#49031