Wednesday, September 16, 2026
35 changes · master
Enhancements to existing features
Spanish electronic invoicing now recognizes additional identity document types such as passports, residence certificates, and other official documents. This helps businesses report customer identities more accurately across Spanish EDI systems, with automatic selection of the most reliable available ID type.
Original PR description
Following the task that introduced configurable ID types, this commit adds the missing document types required for Spain: - 03 PASAPORTE - 04 DOCUMENTO OFICIAL DE IDENTIFICACIÓN EXPEDIDO POR EL PAIS O TERRITORIO DE RESIDENCIA - 05 CERTIFICADO DE RESIDENCIA - 06 OTRO DOCUMENTO PROBATORIO Validators are intentionally omitted for now. Documentation and a warning text tooltip have been prepared to guide users. For Spanish EDI systems the 'IDType' field will now compute based on a priority hierarchy. When multiple document types are available, the system will fallback and choose the most reliable option closest to zero (higher up in the priority mapping table). task-6171794 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
Website editors can now open a preview dialog that shows how selected theme colors affect common page elements. This makes it easier to judge visual impact while editing and reduces guesswork when adjusting a site's branding.
Original PR description
Steps to reproduce: - Open the website builder. - Go to Theme > Colors. - Change theme colors. - Try to evaluate the impact on UI elements. Before this commit, it was hard to understand how theme colors affected typical components while editing. After this commit, users can open a dedicated colors preview dialog (see image), and theme CSS updates are reloaded in both the page iframe and the preview iframe. task-5960098 <img width="1550" height="925" alt="image" src="https://github.com/user-attachments/assets/f80dca4f-5223-4f9f-acaf-cb9e03541cae" />
Field service shift updates now use clearer notification categories for assignments, reassignment, unassignment, rescheduling, and status changes. This helps employees receive notifications only when they are relevant to the shift status and company settings, reducing unnecessary alerts.
Original PR description
Improve shift notification tracking by using dedicated subtypes for status changes, assignment, re-assignment, unassignment, and rescheduling. Ensure notifications are only sent when relevant based on the shift state and company configuration. task-6377602
Turkish localization now lets users apply VAT withholding more easily by choosing a fiscal position for the relevant withholding ratio. This reduces manual tax changes on invoices and supports accurate withholding calculations for related e-invoicing flows.
Original PR description
Turkish VAT withholding (tevkifat) is applied at seven ratios, from 2/10 to 10/10. Before, the seven withholding taxes were not linked to the normal 20% VAT, so there was no simple way to switch an invoice to withholding. After, seven fiscal positions are added, one per ratio, plus a Domestic one. Each links the 20% VAT to its withholding group, so choosing a position and running "Update Taxes and Accounts" swaps the tax on the invoice lines. `account.tax` also gains a helper that returns the fraction a tax withholds (9/10 gives 0.9), used by the Nilvera modules. task-6368193 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Project billing reports now use clearer, more specific categories for revenue and costs. This helps project managers distinguish services, subscriptions, materials, expenses, and purchase-order-related vendor bills more accurately when reviewing profitability.
Original PR description
The billing types of an analytic line name every revenue stream in the plural, although revenue is uncountable in English, and they lump together flows a project manager reads separately: expenses only ever appear as a cost, goods and subscriptions are both reported as "Other Revenues", and a vendor bill is reported the same way whether or not it comes from a purchase order. With this PR, the revenue types are renamed to the singular and the service ones are grouped under "Service Revenue (...)", expenses are split into a cost and a revenue type, "Other Revenues" is split into "Subscriptions", "Materials" and "Other Revenue", and vendor bills billed from a purchase order get a "Purchase Orders" type. The keys are renumbered so that grouping by billing type still lists the revenue types before the cost ones, the "Other" ones last. Task-6545004
Partner ledger reports now store opening balances at accounting lock dates instead of recalculating all historical entries each time. This should make partner ledger and related customer follow-up reports faster while still reflecting later reconciliation corrections accurately.
Original PR description
Snapshot the partner ledger's initial balance at lock dates to avoid recomputing historical move lines on every report rendering. The balance is split into an init_balance and a period_balance aggregated with a groupby, the summable part of the init_balance goes through a snapshotable subengine Reconciling a partner-less line with a line having a partner moves the amount onto it, even in a locked period, so that correction stays out of the snapshots and is recomputed live on top of them. task-6235268
Turkish e-invoices now select one withholding reason at invoice level instead of requiring many tax-specific choices on each line. This reduces long tax dropdowns, prevents invalid mixed withholding ratios from being sent, and exports the reason in the correct Nilvera category.
Original PR description
A Turkish withholding invoice must carry a GİB reason code (601-627) that says why the tax is withheld. Before, this code was stored on the tax itself. The module therefore shipped one tax for every…
A Turkish withholding invoice must carry a GİB reason code (601-627) that says why the tax is withheld. Before, this code was stored on the tax itself. The module therefore shipped one tax for every (ratio, reason) pair: 138 withholding taxes in each line's dropdown. The code was also asked per line and read from the fiscal position, which only reaches the lines after "Update Taxes and Accounts", so the form asked for a reason before the matching tax was on the invoice. After, the invoice type and the list of reasons are taken from the taxes on the lines. The reason is a single field on the invoice, limited to the codes for the ratio the lines withhold, kept while it fits and cleared when the ratio changes. A missing code can be created from the field, and an invoice mixing ratios cannot be sent. On export the reason is written under the 9015 withholding category, not the 0015 exemption one. `l10n_tr_nilvera_edispatch` changes only because its tests reuse the invoice fixture from `l10n_tr_nilvera_einvoice`, which built a wrong tax; the two reference files are regenerated. task-6368193
Users can now download a version of an in-progress signing request that includes signatures and entered information already completed by other signers. The original document remains available, while the signing page continues to show only the original, making it easier to track progress without disrupting the signing flow.
Original PR description
Downloading from a sign request in progress always returned the original template document, even when some signers had already signed it. The request now serves its working copies, which already carry the values of the completed signers as incremental updates, under a "Partially signed" section of the download menu. The original documents stay available next to it, and the signing view still offers the original only. task-6469337
Changing a worksheet on a field service shift now automatically saves the shift first. This prevents users from entering information into outdated worksheet fields and helps avoid accidental overwrites or incorrect configurations.
Original PR description
Previously, when we changed the worksheet, the worksheet fields were not being changed because it required a save to update. So there were times when a user entered some data, and it updated the previous one and completely ruined their configuration. Now, when the user changes the worksheet field, the shift is automatically saved, so the user will always get only the updated fields. Task-6559528
Planning now better supports cases where an employee asks to be replaced by allowing the replacement flow to switch to that user. Button text, confirmation messages, access rules, reporting, and tests were updated to make shift switching clearer and more reliable for staff and managers.
Original PR description
Allow the adapter to switch to the user who only wants to be replaced. Change the button wording and popups of the switching scenarios --- task-5979777
Project managers can now see revenue from subscription orders under a dedicated "Subscriptions" billing type instead of mixed into "Other Revenues". This makes recurring revenue clearer in project analytic lines and improves reporting visibility.
Original PR description
Revenue invoiced on a subscription is reported as "Other Revenues", together with every other revenue that has no type of its own, so a project manager cannot tell recurring revenue apart in the analytic lines of a project. With this PR, an analytic line invoiced on a subscription order gets its own "Subscriptions" billing type. Task-6545004
The Point of Sale snooze choices now use larger rectangular buttons instead of small radio buttons. This makes the options faster to scan and easier to tap or click, improving the day-to-day user experience for staff.
Original PR description
Replacing standard radio buttons with rectangular buttons. This makes the options quicker to scan and easier to click, enhancing the overall user experience. task-6564075
Companies can now view and manage grouped tax identifier information directly on the company record, reducing the need to track many separate fields. The setup flow is also improved for country-specific identifiers, with related localization screens updated to match the new layout.
Original PR description
*:fr,ar,au,br,ca,cl,es_edi_verifactu,in,nz,ph,sa_edi,tr_nilvera_einvoice
[IMP] account,base,l10n_fr: add the identifier list on the company
A new feature to group all TIN identifiers was added on the partner, to
avoid having a huge load of fields that are hard to track.
We now display it also on the company. This PR also adds the possibility
to force the display of some additional identifiers, for an easier setup
process. (Used here to display specific French identifiers for French
companies).
[IMP] l10n_{*}: update views after base template update
*ar,au,br,ca,cl,es_edi_verifactu,in,nz,ph,sa_edi,tr_nilvera_einvoice
The vat field in the base template has changed a bit for a
new feature, this updates the view that were xpathing to it.
task-6285604Invoice emails now include the relevant timesheet report by default while avoiding unnecessary or empty timesheet PDFs. This gives customers clearer supporting details for service invoices and prevents irrelevant attachments on invoices without timesheet-based work.
Original PR description
Before this PR --- - Invoice email templates did not attach the Timesheets report by default. - The invoice email templates contained a hardcoded portal link to view timesheets. - The Timesheets report was generated from the Send & Print wizard even for invoices without timesheet-based service lines. - The Timesheets print action generated an empty PDF when no timesheet entries were available. After this PR --- - The Timesheets report is attached by default to the standard and self-billing invoice email templates. - The hardcoded portal link is removed from the invoice email templates. - The Timesheets report is generated from the Send & Print wizard only when the invoice contains timesheet-based service lines. - The Timesheets print action displays a notification instead of generating an empty PDF when there are no timesheet entries. task - 5361456
The RPC key generation dialog is clearer and now shows a ready-to-use Python example, making it easier for users to connect external tools correctly. Users can also copy the generated key more conveniently, while the clipboard button component gains more flexible icon support across the interface.
Original PR description
This commit improves the RPC key generation dialog by refining the form layout and displaying a ready-to-use Python code snippet. The key can also be copied directly using the provided copy button. Additionally, it modifies the CopyClipboardButton widget to support custom button icons while keeping `fa-clipboard` as the default. task-6375961
Dropdown menus across several Odoo areas have been standardized and visually refined to better match the new Frost design. This gives users a more consistent and polished experience when navigating options in web, email, project, and website tools.
Original PR description
*: html_builder, mail, project, website This commit standardizes dropdowns into a consistent layout and fine-tunes them to better align with the new Frost design. task-6542810 Requires: - https://github.com/odoo/enterprise/pull/130999 | Community | Enterprise | |--------|--------| | <img width="230" height="285" alt="Screenshot 2026-09-15 at 10 56 08" src="https://github.com/user-attachments/assets/b0aa7b5f-4706-4ee9-898d-0a6fc8c70dae" /> | <img width="231" height="271" alt="Screenshot 2026-09-15 at 10 54 05" src="https://github.com/user-attachments/assets/e86deed6-1552-4b19-9531-b8684d3a9b4c" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update brings the embedded spreadsheet tool up to its latest version, improving dashboards, chart behavior, pivot table accuracy, and data analysis suggestions. Business users should see more reliable spreadsheet reporting and a more consistent dashboard appearance.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/4784627a29 [REL] 19.5.0-alpha.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/4784627a29 [REL] 19.5.0-alpha.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/e7d6e6e095 [IMP] spreadsheet: Allow integrator to set the spreadsheet dashboard [Task: 6542221](https://www.odoo.com/odoo/2328/tasks/6542221) https://github.com/odoo/o-spreadsheet/commit/14f6529b65 [IMP] colors: update dark background color [](https://www.odoo.com/odoo/2328/tasks/) https://github.com/odoo/o-spreadsheet/commit/c0f451af1e [IMP] demo: debounce xml template build [Task: 6574005](https://www.odoo.com/odoo/2328/tasks/6574005) https://github.com/odoo/o-spreadsheet/commit/aa96e07891 [FIX] demo: fix scorecard demo definition [Task: 6573109](https://www.odoo.com/odoo/2328/tasks/6573109) https://github.com/odoo/o-spreadsheet/commit/11eac2b445 [FIX] model: evaluation plugin dispatch should trigger update [Task: 6574488](https://www.odoo.com/odoo/2328/tasks/6574488) https://github.com/odoo/o-spreadsheet/commit/dc06c6a41f [FIX] chart annotation: text input style [Task: 6533642](https://www.odoo.com/odoo/2328/tasks/6533642) https://github.com/odoo/o-spreadsheet/commit/f8d1faf29b [FIX] Charts: Bubble chart background depends on color scheme [Task: 6448882](https://www.odoo.com/odoo/2328/tasks/6448882) https://github.com/odoo/o-spreadsheet/commit/8f8951738b [FIX] Charts: fix rounded borders in full-screen [Task: 6569794](https://www.odoo.com/odoo/2328/tasks/6569794) https://github.com/odoo/o-spreadsheet/commit/1efdd6cc50 [FIX] pivot: wrong running total with collapsed/hidden dimensions [Task: 6569607](https://www.odoo.com/odoo/2328/tasks/6569607) https://github.com/odoo/o-spreadsheet/commit/a709278102 [IMP] data_analysis: detection of headers [Task: 6516198](https://www.odoo.com/odoo/2328/tasks/6516198) https://github.com/odoo/o-spreadsheet/commit/736ce42775 [FIX] gaugeCharts: fix GaugeChartBuilder typing [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/845acc4dd7 [REF] chart_suggestion_engine_test : small rewrite [Task: 6537589](https://www.odoo.com/odoo/2328/tasks/6537589) https://github.com/odoo/o-spreadsheet/commit/5d7b912754 [IMP] chart_suggestion_engine: date column [Task: 6537589](https://www.odoo.com/odoo/2328/tasks/6537589) https://github.com/odoo/o-spreadsheet/commit/84cfa4ba58 [IMP] chart_suggestion_engine: boolean column [Task: 6537589](https://www.odoo.com/odoo/2328/tasks/6537589) https://github.com/odoo/o-spreadsheet/commit/5b7222b702 [FIX] pivot: fix scope of `pivot_html_renderer` css [Task: 6523521](https://www.odoo.com/odoo/2328/tasks/6523521) https://github.com/odoo/o-spreadsheet/commit/c411984235 [FIX] standalone viewport: use correct devicePixelRatio [Task: 6445656](https://www.odoo.com/odoo/2328/tasks/6445656) https://github.com/odoo/o-spreadsheet/commit/487d50683b [IMP] model: remove notifyUser from the model [Task: 6517821](https://www.odoo.com/odoo/2328/tasks/6517821) https://github.com/odoo/o-spreadsheet/commit/681c280799 [IMP] model: remove raiseBlockingErrorUI from model [Task: 6517821](https://www.odoo.com/odoo/2328/tasks/6517821) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
Stock screens now use clearer wording and visually de-emphasize empty values, making key information easier to scan. Manufacturing bill of materials printouts are cleaner, with unnecessary items removed and breadcrumbs fully shown for better context when printing.
Original PR description
stock ----- The name of the `Detailed Stock`-menu needed to change and the null fields were too prominent in the line so they are now muted for clarity. mrp --- The default browser print button option showed some unnecessary objects. These have been removed to improve clarity. Also the breadcrumb is now fully expanded when using the browser print option. Task-id: 6201687
Payroll line updates are now grouped together instead of handled one by one, reducing processing overhead during large payroll runs. This can make payroll generation noticeably faster, with the reported benchmark improving a 300-payslip Belgian run from about 12 seconds to about 7 seconds.
Original PR description
This commit batches the assignment in `hr.payslip.line. _inverse_name` to reduce the frequency to `write` on the field and it's calling `modified`, which is quite expensive to call. On a Belgian CP200 payrun with 300 payslips and 199 salary rules, which generates roughly 12k `hr.payslip.line`, it shaves off 4.75s of the whole creation process (from ~12s -> ~7s). Before: <img width="1917" height="296" alt="image" src="https://github.com/user-attachments/assets/45640465-09ee-43c2-861d-bf01eac35505" /> After: <img width="1917" height="346" alt="image" src="https://github.com/user-attachments/assets/30412ed4-ca68-4214-9e37-7ddeaf62427a" />
The appointment module interface has been updated to better align with the newer Frost design style. This should make scheduling pages feel more polished and consistent, improving the experience for users booking or managing appointments.
Original PR description
This PR adds some improvements to the appointment module UI Task-6533622
VoIP users can now access the queues menu while they are already on a call. This lets them join or leave call queues before their current call ends, helping control whether they receive another queued call immediately afterward.
Original PR description
Follow-up of [1], we now show the queues menu while in a call (softphone top-left dropdown menu). This allows to join/leave a queue during a call allowing/preventing a queue call to be made as soon as you hang up your current call. In any case, while in a call, you are marked as being busy from the queue point of view of course. [1]: https://github.com/odoo/enterprise/commit/7250e8dda350019f739b91fa6cc7533395ec45da task-6575682
Users can now archive, unarchive, or delete AI agents directly from agent menus. When an agent is deleted, empty chats are removed while chats with prior messages remain available as read-only history, preserving important context without allowing unavailable agent actions.
Original PR description
Adds 'Archive', 'Unarchive', and 'Delete' actions to the AI agent kanban card menu and panel menu. On agent deletion, its empty chats are deleted. Chats with existing messages are kept but become read-only where the composer and any agent-dependent actions are hidden. task-id-6570223
Belgian payroll tax reports now use configurable mappings instead of fixed salary rule codes, making it easier to adapt report boxes without developer changes. The update also separates sickness and work accident replacement revenue reporting and corrects withholding tax calculation for hourly-paid employees.
Original PR description
The reports listed salary rule codes in the code, so no rule could be added to a box without a developer. - each box now has its own category - the reports add up the payslip lines of the rules in those categories - reported amounts unchanged Task 6413398
Peppol-related errors are now shown as separate, easier-to-read items with plain-language explanations where possible. This helps users understand what went wrong with electronic invoicing and what action may be needed, instead of seeing one long technical message.
Original PR description
Before this commit, Peppol error messages (e.g. Schematron errors) were logged in the chatter as a single unformatted line and without any humanization. The errors were too technical and the user could not easily know what action to take. This PR splits the raw error payload into individual entries, maps known error codes to human-readable explanations, and renders them as an HTML list in the chatter. task-6144909 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#283311 Forward-Port-Of: odoo/odoo#265253
The point of sale now remembers whether the cashier last used a percentage or fixed global discount and uses that choice as the default on the next order. This reduces repeated setup for businesses that commonly use fixed discounts, and the related label is clearer by referring to a discount value instead of only a percentage.
Original PR description
The default global discount type was always `percent`, ignoring the type the cashier last picked. Some clients prefer `fixed` and had to reselect it on every order. Save the last global discount type used in local storage and use it as the default type for the next global discount. Since the discount value is no longer necessarily a percentage, rename the "Discount Percentage" field and its label to "Discount Value". --- Task: https://www.odoo.com/odoo/project/1737/tasks/6507075 Forward-Port-Of: odoo/odoo#285353
ESG metric and action lists now open records more clearly, reducing accidental inline edits and making navigation easier. The metric form and ESG report templates were reorganized so users can find assessment details, company information, and action summaries more quickly.
Original PR description
Lists now only let you edit a record's fields once it's selected, otherwise clicking opens the form view directly. Reorganized the metric form (moved tags, grouped type/status under a new "Impact, Risk, Opportunity Assessment" section, moved company under a new "Other Info" tab). Moved the Actions appendix article to the top of the CSRD report and added a short note about what it shows, plus a few wording tweaks in the VSME report template. no-task
The Knowledge app interface has been refreshed to align with Odoo's new Frost design language. This improves visual consistency across comments, side panels, navigation, permissions, and article views, giving users a more modern and coherent experience.
Original PR description
This commit adapts Knowledge to match the new Frost design. task-6512406
AI-powered searches now return references to files instead of loading every file's content automatically. This keeps the AI context focused and allows file contents to be read only when needed, improving efficiency for searches involving attachments or binary fields.
Original PR description
Searching records sent the content of every binary field returned, filling the context with files rarely needed. The search tool now returns a reference for each of them, and a new tool reads the content of an attachment or a binary field for the records that need it. task-id-6562658
Accounting dashboards can now fully hide KPI indicators using a central system setting, extending the existing option to disable dashboard graphs per journal. For very large databases, this setting will be enabled by default to help reduce dashboard load and improve usability.
Original PR description
Currently, we give the option to disable dashboard graphs per journal via `disable_dashboard_graph`. This commit enhances this even more by adding a system parameter to hide the KPIs completely. An upgrade script will set it to True by default for any DB with over a 100k `account.move` records. task-6518856
Spreadsheet dashboards now use a background color aligned with the surrounding action view, creating a more consistent visual experience. The update also brings spreadsheet component refreshes and several quality fixes that improve printing, charts, exports, and interface behavior.
Original PR description
Task-6542221 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Self-order and kiosk orders now show a clearer reference using the customer or partner name together with the selected preset name. Each self-order configuration also gets its own unique tracking number, making it easier for staff and customers to identify and follow the right order.
Original PR description
After this commit: = - The floating order name for Self Order/Kiosk will be formatted as: `partner_name - preset_name` - Each self-order config have a unique tracking number. task-5470833 related pr: https://github.com/odoo/enterprise/pull/104163
The order status display now shows the floating order name instead of the tracking number when that name is available. Long order names are shortened on screen, making orders easier for customers and staff to recognize without disrupting the display layout.
Original PR description
After this commit: == - Floating order name will be displayed on the order status display instead of order tracking number if available - If floating order name is longer it will be truncated. task-5470833 related pr: https://github.com/odoo/odoo/pull/250288
The mail system now skips empty alias names when checking email routing. This avoids unnecessarily loading very large numbers of unnamed aliases, improving performance and reducing load for large databases.
Original PR description
`email_localparts_tocheck` might contains the empty string. It can end up fetching tons of aliases without name (2M+ in odooo.com) task-6570805 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#288230
Manufacturing and barcode users now have clearer label printing choices for product and lot/serial number labels. The update adds more label formats and keeps printing available from Shop Floor and Barcode workflows, making label handling more flexible and easier to understand.
Original PR description
Split label printing into explicit product and lot/SN quality-check types. Reuse the shared Community label wizards and reports while preserving Shop Floor and Barcode application printing. This commit's changes: - Add separate Print Product Label and Print Lot/SN Label check types. - Expose the manufacturing product-label formats on quality points. - Add 4x12 and ZPL lot/SN formats with per-lot and per-unit quantities. - Route quality-check printing through the product and lot label wizards. - Adapt Shop Floor buttons and commands to the new MRP label actions. - Render location and operation-type sheets through the shared PDF report while preserving server-side PDF merging. - Update quality domains, views, tests, and client behavior for both check types. - Rename the Barcode application action from Print Barcodes to Print Labels. task-6127471
This update aligns HR, payroll, planning, appointments, attendance, leave, and timesheet features with the new rule that every employee version must have a working schedule. It also changes how flexible employees are identified, using a flexible schedule type rather than the absence of a schedule, which improves consistency in payroll and workforce planning.
Original PR description
adapting after making hr.version.resource_calendar_id required and redefining a "flexible" employee as one assigned a flexible-type calendar instead of having no calendar at all. l10n_be_hr_payroll: move l10n_be_part_time_status from the employee/contract to the Working Schedule (resource.calendar), as part-time status is now a property of the schedule. Related: https://github.com/odoo/odoo/pull/275244 Task-6296065