Tuesday, August 25, 2026
36 changes · master
Enhancements to existing features
This update lays the groundwork for Odoo's new visual design by refreshing shared interface elements such as dashboards, navigation controls, kanban cards, activity views, avatars, and status bars. It creates a more consistent experience across Community and prepares the base for the broader Enterprise redesign, while also including a few small visual and usability fixes discovered during the work.
Original PR description
Depends on: - https://github.com/odoo/enterprise/pull/127955 --- Lay the groundwork for the new design: additional SCSS system variables, generated o-color utility classes, and a reworked control…
Depends on: - https://github.com/odoo/enterprise/pull/127955 --- Lay the groundwork for the new design: additional SCSS system variables, generated o-color utility classes, and a reworked control panel (dropdowns, pager, breadcrumbs, search panel resize handle, border-bottom default). On top of that foundation, refresh the core views themselves; kanban, list, form (statusbar), calendar, graph (toolbar rework), pivot, activity and hierarchy. Rplace the ad hoc "no content" illustrations across modules with a shared pictogram set. Most of this exists to give the Enterprise redesign (see the paired enterprise PR) a consistent base to build on, but the views listed above get the same visual refresh in Community as well. Also includes a couple of unrelated fixes surfaced along the way: nested sortable drop-zone detection near rounded row corners, and a project_todo chatter-panel alignment regression from the border-bottom default change. task-6330603 --- _Proudly designed and delivered by **odoo/rd-design**_ <img width="100" height="132" alt="happy_buddy_sm" src="https://github.com/user-attachments/assets/de71a3cd-c7f3-4142-91d9-0ee88382e226" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website administrators can now manage guidance for AI crawlers through a dedicated llms.txt file from SEO settings. The update also centralizes crawler rules to keep technical, login, account, and checkout pages out of search results while preserving visibility for public content.
Original PR description
## Improve SEO crawler guidance with llms.txt and robots.txt updates ### Overview This PR enhances website SEO and crawler management by introducing support for `llms.txt` and improving `robots.txt`…
## Improve SEO crawler guidance with llms.txt and robots.txt updates ### Overview This PR enhances website SEO and crawler management by introducing support for `llms.txt` and improving `robots.txt` handling for technical pages. ### llms.txt Support * Add a dedicated `/llms.txt` route to serve LLM guidance files. * Add an editor in Website → SEO settings to manage `llms.txt` content directly from the backend. * Display a default placeholder when no content is configured, helping users create a valid markdown document. * Include a reference to `llms.txt` in the website root HTML to improve discoverability by AI crawlers and agents. ### robots.txt Improvements * Remove page-level `noindex` meta tags from technical pages. * Manage crawler restrictions through `robots.txt` directives instead. * Add disallow rules for technical and user-specific routes: * `/web/` * `/web/login` * `/web/signup` * `/web/reset_password` * `/shop/cart` * `/shop/checkout` * `/shop/payment` * `/shop/confirmation` * `/my/` * Generate route entries only when the corresponding modules are installed. ### Benefits * Provides a standard mechanism for communicating website usage guidelines to LLMs. * Centralizes crawler management through `robots.txt`. * Prevents indexing of technical and transactional pages while keeping public content discoverable. * Improves maintainability by generating crawler rules based on installed website features. ### **Task - 6120926** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The option to quickly create KSeF certificates has been removed from the Polish EDI settings. This reduces confusion and helps users follow the intended certificate setup process more reliably.
Original PR description
The `quick create` option for KSeF certificates is confusing and unnecessarily annoying to use. Remove it. task-6299175 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Project digest tips now use clearer wording, more personalized content, and refreshed visuals to make guidance easier to understand. The To-Do app also gains new digest tips with relevant dynamic content, helping users discover useful workflows in regular updates.
Original PR description
- Improve Project digest tips with clearer wording, personalized content, and updated illustrations. Add new To-Do digest tips with dynamic content where applicable. task-5488231
The website setup assistant now identifies the selected color palette by name when giving an AI recommendation. This makes the palette choice clearer and helps users understand why the suggested colors fit their business.
Original PR description
Steps to reproduce: - Start website creation with the configurator. - Reach the color palette selection step. => The AI recommendation does not name the selected palette. Before this commit, the recommendation described suitable colors without identifying the corresponding palette. After this commit, the recommendation names the selected palette and explains why it fits the business context. task-6484260 Forward-Port-Of: odoo/odoo#283773
Odoo Enterprise receives the new Frost visual redesign across core business views, navigation, search, widgets, and dark mode. This creates a more consistent, modern interface for users across apps such as Accounting, Documents, Planning, Appointments, ESG, Knowledge, POS Appointment, and Sales Renting.
Digest tips in Helpdesk and Planning now use clearer, more user-friendly wording and local illustrations. Timesheet Grid also gains a new Timesheets Assistant tip, helping users better discover useful productivity guidance.
Original PR description
*_ = planning,timesheet_grid,project_enterprise_hr_todo - Refine the Helpdesk and Planning digest tips with clearer, more user-friendly text and local illustrations, and introduce a new Timesheets Assistant tip in Timesheet Grid. task-5488231
French certified POS receipts no longer show the old unit price for special order lines such as discounts, tips, rewards, gift cards, event tickets, and linked sales orders. This makes receipts clearer for customers and reduces confusion around adjusted or non-standard order items.
Original PR description
In this commit: =============== We have removed the old unit price for the following special order lines: - discount line - tip line - reward line - gift card or e-wallet line - event ticket line - sale order or quotation line task-6212965 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Updated descriptions for several website-related tools so the AI website builder can better find and use the right backend actions. This improves how the builder understands available website, email marketing, shop, wishlist, and e-learning capabilities without changing customer-facing features.
Original PR description
*: website_mail, website_mass_mailing, website_sale, website_slides Enterprise PR allows AI website builder to search and use backend controllers. To make it work better we improve docstrings of some useful controllers. task-6144157
Teams can now connect projects and tasks to sales order lines before the sales order is confirmed, helping firms begin long-running work earlier. Draft sales details and related timesheets remain hidden from portal users, so customers only see confirmed commercial information.
Original PR description
This commit's purpose is to allow user to link projects and tasks to sols that are still in draft. This is mainly for industries like architectural or engineering firms, where they tend to start working on long term project before the so is confirmed. However, those drafts sols should not appear for portal users. Sols and timesheets linked to draft So are hidden in all portal view. task-6276922 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
Point of Sale can now automatically create daily invoices even when a sales session remains open for multiple days. This helps businesses reconcile payments by day instead of dealing with one large combined invoice at session close.
Original PR description
Users do not necessarily close the session once a day. If a client close the session once a week, we currently have one combined payment/invoice, which is difficult for the user to then reconcile the payments. So a new option is added to automatically create an invoice every day, even if the session is still open. This will allow the user to reconcile the payments more easily. taskId: 6388266
Point of Sale order edits are now automatically recorded in the order chatter without requiring a separate configuration setting. This makes changes easier to audit and reduces setup steps for businesses using PoS, restaurant, employee, or self-order flows.
Original PR description
*: point_of_sale, pos_hr_restaurant, pos_restaurant, pos_self_order Before this commit: ----------- - Tracking edited PoS orders in the chatter required enabling a dedicated configuration option. After this commit: ----------- - Edited PoS orders are always tracked in the chatter, removing the need for any additional configuration. Related PR: - Upgrade: https://github.com/odoo/upgrade/pull/10837 Task-6400946
Greek localization now supports myDATA VAT categories 9 and 10 for Article 31 VAT rates of 3% and 4%. It also improves invoice classification validation so users only see compatible default options, reducing reporting mistakes.
Original PR description
myDATA defines categories 9 and 10 for the Article 31 VAT rates of 3% and 4%. These categories were not supported, so this commit adds full support to them. --- Filter the default classification against the current invoice type and available category and type, preventing incompatible values from appearing as disabled selections. task-[6414111](https://www.odoo.com/odoo/project/967/tasks/6414111) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The payment confirmation and order placed screens now share a unified look and feel, including consistent progress steps, card styling, and merchant branding colors. This makes the checkout journey feel smoother and more professional for customers using online POS and self-order flows.
Original PR description
*: payment, pos_self_order Before this commit, "confirming payment" and "order placed" looked like two unrelated pages — a generic spinner vs. a checkmark on a different background, no shared branding, despite being one continuous customer flow. This commit gives both screens one consistent design: a shared step-progress indicator, matching card/badge styling, and the merchant's own POS color applied consistently across both, so the payment-to-order journey now reads as a single, cohesive experience. task-6341668 requires: https://github.com/odoo/enterprise/pull/124275 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Automated messaging actions are now easier to understand and use for emails, chatter messages, notes, and SMS. This helps teams configure customer and internal communications more reliably, with clearer options and more consistent behavior.
This update improves how Odoo stores, copies, and updates translated field values across business records. It helps preserve translated content more consistently when records are edited or duplicated, reducing translation loss and manual cleanup for multilingual databases.
Original PR description
[IMP] orm: write StoredTtranslations Develoepers can directly write StoredTranslations objects to record fields. And the ORM will keep the whole entity when flushing. [IMP] orm,tools: make field.copy callable for mark_as_copy make field.copy can be callable in ORM provide a tool mark_as_copy to create a callbale for field.copy which can easily append a translated ' (copy)' to each translated value when copying. This allows developers to drop translations for model translated fields. https://github.com/odoo/enterprise/pull/125493 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
This update tidies and standardizes the General Settings screens across several Odoo apps, making labels, layout, and help links more consistent. Business users should see a clearer and more polished configuration experience for integrations such as OAuth, Google services, reCAPTCHA, Cloudflare Turnstile, Unsplash, events, mail, products, and digest emails.
Original PR description
*= auth_oauth,base_geolocalize,digest,event,google_address_autocomplete, google_recaptcha,mail,product,web_unsplash,website_cf_turnstile Clean up and standardize the General Settings: - Replace several inline tutorial links and buttons with the standard `documentation` attribute on `<setting>` tags. - Adjust alignment, label formatting, and column grid widths for various integration settings (OAuth, Google reCAPTCHA, Cloudflare Turnstile, Unsplash, Google Places). - Set consistent labeling (removing colons from field labels) for better UI integration. - Rename the digest field label from 'Digest Email' to 'Template' for clarity. task-6370222 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The messaging interface now uses standard Material Symbols instead of a custom-made icon. This makes the interface easier to maintain and keeps icons more consistent across Odoo as the shared icon library expands.
Original PR description
This commit replaces the previously custom-made icon with a Material Icon one. Due to a previously quite limited pool of icon, a custom SVG was designed to match the desired result. Now that we migrated to Material Symbols, we do have more options and more refined, we can remove the custom asset and rely on the icons library instead. task-6488490 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The activity scheduling wizard is easier to read and use, with clearer plan summary styling, improved spacing, and a more prominent meeting scheduling button. This helps users understand the next step faster and reduces friction when planning activities or calendar meetings.
Original PR description
This commit introduces several visual and usability improvements to the activity schedule wizard: - "Plan Summary" Label: Removes the default muted styling applied to readonly fields by forcing standard body text color and bold font weight, making the section header more legible. Unused `colspan` attributes outside of a `<group>` have also been cleaned up. - Kanban Spacing: Adds right padding (`pe-2`) to the deadline date in the schedule summary list for better visual breathing room and alignment. - Calendar Integration: Promotes the "Schedule" meeting action from an inline link to a primary action button in the footer. The inline area now displays a clear "Pick a date and time" instruction, making the primary action more obvious and consistent with standard flows. Task-6485315
The Sales app now shows a refreshed illustration on the Services & Material empty screen. This improves the first-use experience by making the page feel clearer and more polished when there is no content yet.
Original PR description
This PR introduces a new illustration for the Services & Material empty screen. task-6341698 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo’s batch picking capability has been moved directly into the core Inventory app instead of requiring a separate add-on. This simplifies setup and makes batch operations easier for other logistics, delivery, fleet, and localization features to use without extra bridge modules.
Original PR description
TODO task-6154300 **Enterprise PR**: odoo/odoo#124078 **Upgrade PR**: odoo/upgrade#10771
This update improves several Odoo interface icons so they are easier to understand, including quote, table, heading, date, image, and favorite indicators. It also standardizes small visual elements such as kanban state bubbles and editor controls, reducing misalignment and improving consistency across apps.
Original PR description
PR enterprise: https://github.com/odoo/enterprise/pull/128414 [FIX] website, html_editor: use filled quote icons --- __Problem__ The outlined `format_quote` icon reads as a pair of `99` digits rather…
Warehouse teams can now generate serial and lot numbers directly while using the barcode app for deliveries. This removes the need to switch to the backend system, helping deliveries move faster and reducing manual work.
Original PR description
It's not possible to automatically generate serial numbers and lot numbers through the barcode application. While this is possible in the backend. This commit adds the popup so that barcode users can accept deliveries and generate serial numbers on the fly. Task-5469775
The Sign app now presents a cleaner signing interface by moving Download into the options menu and renaming Resend to Reminder. Visual refinements to field borders and drag indicators make document preparation and signing feel more consistent and polished.
Original PR description
Before this fix: Read only field borders were thicker than other fields. The Download button was shown as a standalone button during signing. The drag helper line showed in yellow while dragging a field. The "Resend" button label was unclear in context. After this fix: Drag helper color changed to an appropriate shade and the read only field border thickness was reduced. The Download button was moved into the gear menu. The "Resend" button was renamed to "Reminder" for better clarity. Impact: Moving the Download button into the gear menu keeps the signing toolbar focused, renaming "Resend" to "Reminder" better reflects the action's intent, and aligning the drag helper color and field border thickness with the rest of the UI ensures a more polished signing experience for both senders and signers. Task ID - 6334775
Payroll journal entries now respect the anonymization setting by removing employee names when payslips are validated. This helps protect employee privacy and ensures payroll accounting records do not expose personal information when anonymization is enabled.
Original PR description
When we check the option `Anonymize journal entries` in the settings and we validate a payslip, in the journal entry of the payslip, we still see the names of the employees for which the payslips have been validated. Names should be removed to ensure anonymization. __ task-6469001
Sales commission plans now offer clearer controls, including read-only achievement settings, making them easier and safer to review. Commissions based on paid invoices now use the actual payment reconciliation date, so payouts land in the correct period and reduce manual HR adjustments.
Original PR description
task-6342052
Appointment types can now have a designated responsible user who can manage them when the original creator is unavailable. New bookings use that responsible user as the organizer, so related emails come from the right person instead of the original creator or a generic database address.
Original PR description
Appointment type allowed editors are `create_uid` and `staff_user_ids → if the create_uid leaves the company, editing options are limited. Issue 1 You have to get the sysadmin to intervene when you want to edit some things on the appointment type. Issue 2: Emails are still sent from "create_uid@dbname.odoo.com" --- In debug mode, we can now set a user to be responsible for an appointment type. The responsible user gains write/delete rights for that appointment type. If a responsible user is set, new bookings will be created with them as the organizer. Consequently, mails will be sent from them Task-6349168
Point of Sale can now automatically create invoices each day, even when a sales session remains open for several days. This makes payment reconciliation easier by avoiding one large combined invoice for an extended period.
Original PR description
Users do not necessarily close the session once a day. If a client close the session once a week, we currently have one combined payment/invoice, which is difficult for the user to then reconcile the payments. So a new option is added to automatically create an invoice every day, even if the session is still open. This will allow the user to reconcile the payments more easily. taskId: 6388266
This update refines how timesheet-related information is handled across service tasks and helpdesk tickets. It helps teams keep project, support, and billing follow-up more consistent after related community changes.
Original PR description
task-6276922
Document users can now access and manage spreadsheet templates from the configuration area, while template visibility can be limited by user groups. This helps organizations make templates available to the right people and prevents non-document users from creating templates where they should not.
Original PR description
- Add configuration access to their spreadsheet template for document user - Allow the restriction of read access to template based on groups - Hide the function to create template from spreadsheet to non-document_user Task: 6401925
The general settings pages have been aligned for a more consistent and easier-to-read experience across inter-company rules, barcode lookup, and Mapbox configuration. This improves clarity for users configuring company transactions, warehouses, receipts, API keys, and related enterprise options.
Original PR description
*= sale_purchase_stock_inter_company_rules, product_barcodelookup,account_inter_company_rules Align and standardize the general settings : - Standardize layout, labels, and spacing for Inter-Company Transactions rules (in account, sale, purchase, and stock settings). - Adjust column spacing and input placeholders (e.g., adding examples for receipts/warehouse). - Clean up Mapbox settings and barcode lookup API Key fields to use consistent branding, classes, and alignment. task-6370222
This update improves how translated text is preserved and adjusted when business records are copied. It helps keep labels and names consistent across languages, including automatically adding a translated copy marker where needed.
Original PR description
[IMP] orm: write StoredTtranslations Develoepers can directly write StoredTranslations objects to record fields. And the ORM will keep the whole entity when flushing. [IMP] orm,tools: make field.copy callable for mark_as_copy make field.copy can be callable in ORM provide a tool mark_as_copy to create a callbale for field.copy which can easily append a translated ' (copy)' to each translated value when copying. https://github.com/odoo/odoo/pull/272177
The website AI can now create richer pages by using business data and, when needed, adding interactive JavaScript. Safety checks and controls were added so generated scripts are reviewed, can be paused, and are easier to clean up before editing or saving.
This update corrects several small visual issues in Documents, Spreadsheets, Gantt views, and Studio. Users will see more appropriate icons and cleaner spacing, making navigation and actions easier to understand.
Original PR description
PR community: https://github.com/odoo/odoo/pull/283265 *: documents, spreadsheet_edition, web_gantt, web_studio __What__ - Use `view_timeline` for the gantt view, in both the view switcher and the studio view types, instead of the unrelated `clear_all` and `checklist` icons. - Add the missing `oi` classes on the list dimensions visibility icon, which was rendered without the icon font. - Space the documents list action icons with a `gap` instead of a trailing margin, so no extra space is left after the last one. task-6377407
Payroll input setup has been simplified by making salary rules the central place for defining and using payroll inputs. This reduces duplicated configuration, helps prevent mismatches, and makes payslip calculations and salary adjustments more consistent.
Original PR description
Payslip inputs used to be a system parallel to salary rules: hr.payslip.input.type records defined what could be entered on a payslip, payslip-side "payroll properties" stored the per-payslip values,…
Payslip inputs used to be a system parallel to salary rules: hr.payslip.input.type records defined what could be entered on a payslip, payslip-side "payroll properties" stored the per-payslip values, and rules read them back through dedicated helpers. The same business value was spread over three models, with duplicated codes, availability flags and defaults that easily got out of sync. hr.salary.rule becomes the single source of truth for inputs: - hr.payslip.input.type is removed. hr.payslip.input and hr.salary.attachment reference the rule directly via salary_rule_id, and an input line's code is its rule's code. - Payslip-side properties are removed. Per-payslip values live as hr.payslip.input lines; computations read them through the `inputs` localdict, keyed by rule code (same-code lines are summed). Employee-side values remain as version properties, synced into the structure definition from the rules flagged available on the employee, whatever their condition type. - Availability boils down to two flags on the rule: input_usage_employee (editable on the employee, stored on the version) and input_usage_payslip (usable as payslip input or salary adjustment). available_in_attachments, is_quantity and default_no_end_date are removed. - input_default_boolean becomes input_selected_by_default and only means: new payslips automatically get an input line for this rule, prefilled with its default value (the default is only shown when the flag is set). Boolean-typed properties are gone; version properties are plain floats. - A Salary Input rule (condition or amount based on the input) must be available on the employee or the payslip, otherwise it could never receive a value. - UI: input options move to a dedicated tab on the rule form; input lines prefill their description and value from the rule; salary adjustments only propose rules of the employee's structure type and warn when no structure of that type consumes the selected rule. Localizations are converted accordingly: self-consuming python rules are flagged input_usage_payslip, AU input types become salary rules, CH/HK/AE/TR property reads go through the inputs localdict, and RO/LT selection-based benefits become hr.version fields again since selections cannot be expressed as input lines. Note for BE: the December double-holiday regularization tests now assert a non-zero balance. The amount is injected as a real input line and actually computed, whereas the previous property-based injection was silently lost before computation.
The VoIP phone numbers list now includes a Refresh button so users can update the displayed numbers on demand. This helps teams confirm the latest phone number information without leaving the page or waiting for an automatic update.
Original PR description
Depends on: - https://github.com/odoo/odoo/pull/282516 --- Carry the redesign introduced in [community](https://github.com/odoo/odoo/pull/282516) into enterprise: restyle kanban, list, form, pivot,…
Depends on: - https://github.com/odoo/odoo/pull/282516 --- Carry the redesign introduced in [community](https://github.com/odoo/odoo/pull/282516) into enterprise: restyle kanban, list, form, pivot, gantt, grid, graph, calendar and map views, the control panel/search bar, the app switcher, and the ribbon/tags/badges widgets. <img width="1545" height="841" alt="image" src="https://github.com/user-attachments/assets/5d04fcf8-d0d8-4644-ab6f-61b1e2ab0b80" /> --- <img width="1546" height="840" alt="image" src="https://github.com/user-attachments/assets/5490fa3d-4fbd-4bc4-8d1a-e517d32a6760" /> --- <img width="1418" height="816" alt="image" src="https://github.com/user-attachments/assets/87a0f1f2-2ee4-40d3-9052-567c30345586" /> --- Update the dark-mode palette to a consistent gray scale under the new tokens, and roll out the shared pictogram set to Enterprise's empty-state views. <img width="1544" height="842" alt="image" src="https://github.com/user-attachments/assets/04959a15-6090-4e4e-9151-fb3184d7a3fc" /> <img width="1315" height="810" alt="image" src="https://github.com/user-attachments/assets/ee9ca818-236e-440d-9b82-58247303f0ba" /> Also relocates the gantt side panel's toggle into the controls bar, mirroring the same change made to community's calendar view. Carries a handful of smaller adaptations (documents, timesheet_grid, sale_renting dashboard, voip icon). [task-6330603](https://www.odoo.com/web#id=6330603&cids=1&menu_id=4720&action=333&active_id=1695&model=project.task&view_type=form) --- _Proudly designed and delivered by **odoo/rd-design**_ <img width="100" height="132" alt="happy_buddy_sm" src="https://github.com/user-attachments/assets/de71a3cd-c7f3-4142-91d9-0ee88382e226" />
PR enterprise: https://github.com/odoo/enterprise/pull/128414 [FIX] website, html_editor: use filled quote icons --- __Problem__ The outlined `format_quote` icon reads as a pair of `99` digits rather than as quotation marks, which makes every blockquote-like snippet look like it contains stray numbers. __Quick fix__ Add `oi-filled` to all `format_quote` icons in the website snippets and to the powerbox commands inserting them. Also make the powerboxW forward `iconClass` from the command definition, some command used it but it wasn't working. [IMP] *: better icon choices and alignment fixes --- *: html_builder, html_editor, iot_drivers, web, website, website_event_track __What__ - Use clearer icons now that they are available: `table` for table insertion, `format_h1`-`format_h3` in the powerbox headings, `shadow` for the image shadow, `format_image_left` for wrap text, `crop_square` for buttons, `recenter` for background position, `center_focus_weak` for "select only this block", `today` in the builder date picker, `chevron_forward` for toggle lists, `person_add` and `person_remove` for the avatars buttons, and a star instead of a bell for the event track favorite. - Fix alignments: editor switch rebuilt on relative sizes instead of hardcoded pixels, image rotator handle styled in SCSS instead of inline, and toolbar height. - Force the icon font family so a surrounding font declaration cannot break icon rendering. - Add `undo` and `redo` to RTL entries so they get flipped like the other directional icons. - Remove `chevron_left`/`chevron_right` from RTL entries because they represent absolute direction unlike `chevron_backward` and `chevron_forward`. - Remove obsolete `google-plus` custom icons from the media dialog. task-6377407 [IMP] event, project, maintenance, web: clean kanban state selection bubble --- __Problem__ Each module redefined the state bubble size and position with its own pixel and em tweaks, both in the badge and in the dropdown. The result was slightly different sizes and misalignments from one model to the other. __Quick fix__ Size the bubbles from the shared bubble variables and move the dropdown item alignment to a single rule in `view.scss`, then remove the per-module overrides. Also drop the now useless `oi-lg` classes and fix a missing `this` in the event template. task-6377407 [IMP] web: add new icons for diverse usages --- __What__ Extend the icon wishlist and regenerate the Material Symbols subset fonts with ~15 new icons: heading levels (`format_h1` to `format_h6`), `format_image_left`, `format_image_right`, `table`, `today`, `shadow`, `recenter`, `crop_landscape`, `center_focus_weak`, `rotate_right` and `view_timeline`. Also refresh the search tags of a few icons and force `close_small` as outline-only, since the generator wrongly detects a filled variant for it. task-6472088