Skip to content

[20.0][MIG] mail_recipient_tracking_mass_mailing: Migration to 20.0 - #1

Open
weinni2000 wants to merge 1 commit into
20.0-mig-mail_tracking_mass_mailing-basefrom
20.0-mig-mail_tracking_mass_mailing
Open

weinni2000 wants to merge 1 commit into
20.0-mig-mail_tracking_mass_mailing-basefrom
20.0-mig-mail_tracking_mass_mailing

Conversation

@weinni2000

@weinni2000 weinni2000 commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner
  • Rename to mail_recipient_tracking_mass_mailing (whole history): Odoo 20 ships a core mail_tracking_mass_mailing module, and the mail_tracking dependency is renamed to mail_recipient_tracking in [20.0][MIG] mail_tracking: Migration to 20.0 and rename to mail_recipient_tracking OCA/mail#310 (pulled in through test-requirements.txt).
  • Tests: DISABLED_MAIL_CONTEXT is gone in Odoo 20; use DISABLED_MAIL_CREATE_CONTEXT plus tracking_disable/mail_notrack.
  • mailing.trace.write(): don't reassign self (ruff PLW0642).

Migrated with odev.

Assisted-by: Claude Code (claude-opus-5-5)

Summary by Sourcery

Migrate mass-mailing recipient tracking support to Odoo 20 and align its dependencies, documentation, tests, and code with the new platform APIs.

Enhancements:

  • Migrate the mass-mailing tracking addon to Odoo 20 under the mail_recipient_tracking_mass_mailing name and update its dependency and view integrations.
  • Update mass-mailing tracking behavior and tests for Odoo 20 compatibility, including compliant trace writes and current mail-disable contexts.

Documentation:

  • Update addon installation and generated documentation for the Odoo 20 module name, dependency, and project links.

Tests:

  • Adapt mass-mailing tests to Odoo 20 mail creation and tracking context behavior.

Chores:

  • Add the test requirements configuration needed for the migrated addon.

Assisted-by: Claude Code (claude-opus-5-5)
@sourcery-ai

sourcery-ai Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Migrates the mass-mailing tracking addon to Odoo 20 by renaming it for compatibility with core tracking functionality, switching to mail_recipient_tracking, adapting tests and lint-sensitive code, and preserving the existing selective trace-write behavior.

File-Level Changes

Change Details Files
Renamed and retargeted the addon for Odoo 20 and the replacement recipient-tracking dependency.
  • Renamed the module and updated its version, dependency, documentation, generated description links, and view inheritance reference.
  • Added the migration test dependency requirements.
mail_recipient_tracking_mass_mailing/README.rst
mail_recipient_tracking_mass_mailing/__manifest__.py
mail_recipient_tracking_mass_mailing/readme/INSTALL.md
mail_recipient_tracking_mass_mailing/static/description/index.html
mail_recipient_tracking_mass_mailing/views/mail_tracking_email_view.xml
test-requirements.txt
Updated mail tracking integration and test setup for Odoo 20 APIs and conventions.
  • Updated tracking-related documentation references in mail postprocessing.
  • Replaced the removed disabled-mail context with the Odoo 20 create-only context and explicit tracking suppression flags.
  • Adjusted the inherited model declaration to satisfy the new linting rule.
mail_recipient_tracking_mass_mailing/models/mail_mail.py
mail_recipient_tracking_mass_mailing/models/mailing_contact.py
mail_recipient_tracking_mass_mailing/tests/test_mass_mailing.py
Preserved selective mailing-trace writes without reassigning the recordset.
  • Introduced a separate filtered recordset and invoked the parent implementation on it, avoiding self reassignment while excluding ignored trace IDs.
mail_recipient_tracking_mass_mailing/models/mailing_trace.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant