Thursday, April 18, 2024
9 changes
8 changes
Enhancements to existing features
This update makes field service easier to plan and manage with clearer labels, better scheduling defaults, and more reliable timer behavior. It also lets helpdesk teams turn support tickets into field service tasks, improving follow-up when customer issues require on-site work.
Original PR description
Provides several improvements to the fsm applications such as - renaming - makig some project fields required - altering demo data - technical improvements - wizards to link material to tasks and projects
This update makes payment workflows easier to start and understand from accounting screens, including batch payments, SEPA transfers, and SEPA direct debits. It also adds clearer guidance and configuration options so users can avoid errors and complete common payment tasks with fewer steps.
This update makes Field Service easier to set up and use by improving onboarding, planning access, permissions, and sales order creation from tasks. It also adds task worksheets/reports that can be printed or emailed to customers, helping teams document completed work more clearly.
Original PR description
https://www.odoo.com/web?debug#id=1943792&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720
Closed payslips can no longer be moved back to draft, helping preserve payroll history. Users can now create a linked correction payslip instead, while new checks prevent duplicate payslips for the same contract and period unless they are corrections.
Original PR description
Once a payslip is closed, we shouldn't be able to reset it to draft. Add a button: Payslip Correction -> this will create a new payslip in draft with a specific status or flag to say it is a correction and link between both payslips. Add unique constraint to payslip to avoid to have multiple payslips for the same contract during the same period (except if is a correction). id=1985537
Subscription products now use subscription variants to manage templates, pricing, and related details in one place. Sales teams can set subscription templates at order or line level, with optional restrictions to keep recurring product choices consistent and prices accurate.
Original PR description
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now,…
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now, products and subscription_template are both linked to a subscription_variant that simulate a many2many relation in a table with additional fields. - Price and other information are available in thhis subscription_variant table. They are visible on either the product, tab 'sales' or under the Subscription Variants menu in Subscription module. - Subscription_template can be set on sale_order as well as on sale_order_line. - Restrictions exist so that it is possible to set a subscription_template on a sale_order_line only if the product is a recurring product. Same for a sale_order. [IMP] sale_subscription : modify demo datas and adapt tests -------------------------------------------------------------------------------- - Adapt demo datas - Adapt test datas after changes done to model sale_order_line [IMP] sale_subscription : add sub_temp restriction setting ---------------------------------------------------------------------------- - Add a setting 'Restrict Subscription Template' - This setting locks the subscription_template on sale_order_line. Once the user choose a recurring product in a sale_order_line, its subscription template is fixed and he has to set it at the sale_order level. If he changes the subscription template on the sale_order, it is adapted on every sale_order_line containing a recurring product. [IMP] sale_subscription : price selection for subscription product ------------------------------------------------------------------------------------- - It is now possible to apply a pricelist_item on a particular subscription_template. - Overriding methods to do so. - Price for a recurring product in a sale_order_line is now depending on subscription_template that is chosen for that product in that sale_order_line. (remember, link is done in subscription_variant) - lst_price is hidden from product_template/product_product form, tree and kanban views since it isn't relevant to show it anymore. Indeed, the real prices for recurring product are set in corresponding subscription_variant for those products. [IMP] sale_subscription : prevent adding rec product on confirm SO ----------------------------------------------------------------------------------------- - Users are now unable to create a new Sale Order Line with a recurring product if the Sale Order is confirmed. - They are also unable to change the product of an existing Sale Order Line if the Sale Order is confirmed. [IMP] sale_subscription : add partner phone number --------------------------------------------------------------------- * Customer phone number is now available from Subscriptions : - in form view - in kanban view * It is either partner_id phone, mobile, or related company phone, mobile or nothing. In that order.
Knowledge articles now have a more polished cover picker that lets users reuse existing covers, upload new images, or choose images from Unsplash. Adding a cover can automatically suggest a relevant Unsplash image based on the article title, while privacy rules ensure users only see covers from articles they can access.
Original PR description
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier,…
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier, allows to reuse covers, and allows to select images from unsplash. 2. When the user clicks on "add cover" in knowledge, picks a random image from unsplash using the name of the article as search query. If unsplash credentials are not set or if service is down, falls back to the "change cover" behaviour, showing the CoverSelector allowing the user to pick an existing cover, to upload a new one, or to enter its unsplash credentials. Specs: ====== Create the components "CoverDialog" and "CoverSelector", based on "MediaDialog" and "ImageSelector" but adapted for knowledge's use-cases. The coverSelector only shows covers used in articles the user can access, so that covers of private articles remain private. Covers are saved in "ir.attachment" with "res_model=knowledge.article", allowing to not show covers in the ImageSelector in other apps, preventing users of other apps from deleting covers. They are also saved with "res_id = 0", which allows to not link covers with a precise article, preventing covers to be deleted if the associated article is deleted. When a new cover is uploaded, an url with an access token is generated and saved. This url is used to display the covers so that they can be shown in portal view, and so that users can see every cover (because attachments with res_id=0 and linked to a model are only accessible by the user that created the attachment) The binary field "cover" is replaced by a many2one field "cover_image_id" referencing the created attachment. This allows to reuse covers without needing to duplicate the attachment. Also added a field "cover_image_url" referencing the url of the attachment, which is used to display the cover. When a cover is removed from an article and is not used in any other article anymore, the associated attachment is deleted. Same if an article is unlinked and its cover is not used anymore. Extend "web_unsplash" controller and add a route that fetches a random image from unsplash using a query word, then uses "web_unsplash"'s route to save the image in ir_attachments. Add a method calling this route using the article name as query when clicking on the "Add cover" button. During the request, the button is hidden so that one can not click multiple times on it and send several rpc's. If the request returns an error (unsplash credentials not set, service unavailable, ...), opens the CoverSelectorDialog instead. Task-2852916
Users can now keep uploaded or created documents private instead of automatically sharing them with everyone who can access the workspace. This gives businesses more control over sensitive files, while also removing the older document locking feature and making workspace assignment optional.
Original PR description
PURPOSE : Allow users to restrict access to their Documents. Currently, as a document has to be in a workspace, it is available to the workspace's groups. We want to provide the user with a way to 'opt-out' of sharing uploaded/created documents. Folder_id not required anymore, addition of access field and deletion of locking feature Task=2257514
Helpdesk tickets can now track several service level agreements at the same time, so teams get a clearer view of all commitments tied to a customer issue. SLA status is updated immediately when tickets are created or key details change, helping teams see missed or met deadlines without waiting for a scheduled background process.
Original PR description
task link - https://www.odoo.com/web#id=37561&action=327&model=project.task&view_type=form&menu_id=
1 change
Enhancements to existing features
This update significantly speeds up the appointment booking system, particularly when managing multiple resources and capacity changes. The system now processes slot availability checks 5-7 times faster, reducing wait times from several seconds to under a second when updating booking capacities. This improvement enhances the user experience when managing complex appointment scenarios with many linked resources.
Original PR description
- Compute the best resources for a slot only for distinct capacity info and improve performance when updating table booking from 1 to 12 capacities with appointment type with a lot of linked…
- Compute the best resources for a slot only for distinct capacity info and
improve performance when updating table booking from 1 to 12 capacities
with appointment type with a lot of linked resources (tested on Table Booking
without any event booked):
Before: ~105s (local time)
After: ~15s (local time)
This also allows the first slot computation to be a little faster (4s => 3s)
- Don't use intervals_overlap in _slot_availability_is_resource_available:
~15s => ~4s (local time)
It was called a lot because of the default resource calendar and the work intervals
computed from it.
- Single filtered on booking lines for _get_resources_remaining_capacity
Queries count (from profiler - local):
/appointment/4 : ~1500 => ~830
/appointment/4/update_available_slots (capacity -> 12) : ~7700 => ~455
/appointment/4/update_available_slots (capacity 12 -> 1) : ~1130 => ~430
/appointment/4/update_available_slots (capacity 1 -> 12) : ~7700 => ~455
Queries count (profiler - runbot):
/appointment/4/update_available_slots (capacity -> 12) : ~1190 => ~130
task-3640599