Friday, October 6, 2023
5 changes · master
Enhancements to existing features
The mailing subscription portal has been modernized so users can more easily manage mailing list subscriptions, opt out, provide feedback, and control whether their email is blocked from future mailings. Logged-in users also get a new self-service page to manage preferences without needing a link from a specific email, improving transparency and reducing support effort.
Original PR description
PURPOSE Overall cleaning of subscription and exclusion management code from portal. This code comes mainly from v12 and can now benefit from cleaning and update. Globally improve usability and…
PURPOSE
Overall cleaning of subscription and exclusion management code from portal.
This code comes mainly from v12 and can now benefit from cleaning and update.
Globally improve usability and features given by mailing portal about exclusion
list and opt-out management.
SPECIFICATIONS
Cleanup access control (hash usage, returned / raised errors). Globally check
security and usage of controllers.
Refactor JS to be finally using frontend widgets. Split it into sub-widgets to model
main parts of the unsubscribe portal: feedback sending, email blocklist management
and opt-out from mailing lists.
Improve usability of unsubscribe portal, notably
* allow to give a feedback when unsubscribing from mailing not related to
mailing lists. It was previously limited to mailings done on mailing lists.
Now the feedback is allowed in all cases and posts it on the related
document;
* clean display of opt-in and opt-out lists;
* display all public lists, even if not already join. This allows to opt-in
to new lists, which was not possible before;
* switch on a neutral name for non public lists (as they may contain
marketing hints);
* give UI feedback to customer when using buttons: add confirmation of
block list addition / removal, of updated subscriptions, ...
* globally improve wording;
Add a generic 'my' page for mailing, allowing logged users to control their
blocklist status and mailing lists.
Improve feedback sending. Messages and notes are improved to have a
better wording and links to contextual records when possible (mailing,
mailed records, contacts, ...). Add opt out reasons when updating
subscriptions or block list status. This allows to better report on common
causes.
LINKS
Task-2669037 (Mass Mailing: Refactor js/portal for subscription)
Task-2150462 (Mass Mailing: Improve subscription management)Employees and managers can now choose a future date to see projected time off balances, including upcoming accruals, expiring days, and allocations that are not yet available. The Time Off app also received underlying cleanup to better handle leave edge cases and improve reliability.
Original PR description
This commit adds the feature to select a date in the future in order to see future allocations, would it be for accrual plans granting new allocated days, lost days due to expired allocations or allocations that are not yet available to the employee. This feature comes with a major refactoring of hr_holidays methods to handle some edge cases in the management of leaves. This commit also fixes some flake8 linting errors. task-2675380
Sales teams can now apply discounts through a dedicated wizard instead of relying on automatic behavior from the first order line. The update supports line-by-line discounts, discounts on the total order value, and fixed discount amounts, making discounting clearer and more controlled.
Original PR description
Replace the magic js logic applying the discount of the first line to all the lines by a dedicated wizard, providing three kind of discounts: * Discount on each sale order lines * Discount on the global order amount * Fixed discount amount task-3369680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Appointment scheduling now supports one-off appointment types with defined start and end times, making it easier to offer punctual booking windows such as events or resource reservations. Users also get better shared-link management, faster access to newly created appointment types, and clearer appointment lists and filters.
Original PR description
Purpose ======= Allow users to create appointment types for punctual periods. Ease the management of the apt types shareable links. Add a shortcut to open the newly created custom/anytime…
Purpose ======= Allow users to create appointment types for punctual periods. Ease the management of the apt types shareable links. Add a shortcut to open the newly created custom/anytime appointment. Make the custom appointment types available to resources. Specification ============= Add a Shared Links stat button on the appointment type form to have a better overview of the appointment type shared links and delete duplicated links if necessary. Add a "Open" button after selecting slots on the calendar to open the newly created appointment type and allow editing. Add optionals start and end datetimes on the appointment type form to limit the slot generation between 2 specified datetimes. An appointment limited between 2 datetimes is of category 'punctual'. The old 'website' category has been renamed to 'recurring' as the punctual appointment types can also be accessible from the website. Move the anytime appointment type with the recurring and the punctual ones as they are basically recurring ones but 7days/7 from 7AM to 7PM. There is also only one anytime appointment type by user so it isn't an issue to display those in the main menu. Only the custom ones remain in the 'Invitations' menu. Adding filters and group by on the appointment type search view to make things more readable. Make the custom appointment types available for resources. We should now be able to share a link to book a tennis court at a specified time slot. Task-3109254
Resolved issues and error corrections
Odoo can now initialize new databases correctly on PostgreSQL 15 and later when using the recommended limited-permission database user. This prevents setup failures caused by newer PostgreSQL permissions and keeps new deployments working without requiring administrator-level database access.
Original PR description
**Description of the issue/feature this PR addresses:** From PostgreSQL's point of view, as of version 15.0 and above the default behavior is to constrain ordinary users to user-private schemas. For…
**Description of the issue/feature this PR addresses:** From PostgreSQL's point of view, as of version 15.0 and above the default behavior is to constrain ordinary users to user-private schemas. For every user needing to create non-temporary objects, it's advised that they create a schema with the same name as that user (Recall that the default search path starts with $user, which resolves to the user name. Therefore, if each user has a separate schema, they access their own schemas by default.) This pattern is a secure schema usage pattern. See Section 5.9.6 https://www.postgresql.org/docs/current/ddl-schemas.html and https://www.postgresql.org/docs/release/15.0/ Databases migrated from previous versions of postgresql will have the default public schema writable, but new odoo instances on postgresql version 15 and above do not work. To fix this We'd create a new schema in the database that's the same name as our database user after we create our empty database **Current behavior before PR:** Initializing a new Odoo database on Postgres version 15.0 and above with a user with only the LOGIN and CREATE DATABASE roles would result in an error `permission denied for schema public` Because of this, no database tables are created on new databases using postgres V15.0 and above Desired behavior after PR is merged: Full functionality is restored by creating all tables in a schema that matches the database user --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr