19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:39 +01:00
parent 5df8c07b59
commit daa394e8b0
2114 changed files with 564841 additions and 299642 deletions

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models, tools, _
from odoo import fields, models, tools, Command, _
from odoo.tools.misc import clean_context
@ -15,7 +15,7 @@ class MailingContactImport(models.TransientModel):
def action_import(self):
"""Import each lines of "contact_list" as a new contact."""
self.ensure_one()
contacts = tools.email_split_tuples(', '.join((self.contact_list or '').splitlines()))
contacts = tools.mail.email_split_tuples(', '.join((self.contact_list or '').splitlines()))
if not contacts:
return {
'type': 'ir.actions.client',
@ -63,7 +63,10 @@ class MailingContactImport(models.TransientModel):
if email not in existing_contacts:
unique_contacts[email] = {
'name': name,
'list_ids': self.mailing_list_ids.ids,
'subscription_ids': [
Command.create({'list_id': mailing_list_id.id})
for mailing_list_id in self.mailing_list_ids
],
}
if not unique_contacts:
@ -86,16 +89,20 @@ class MailingContactImport(models.TransientModel):
for email, values in unique_contacts.items()
])
ignored = len(contacts) - len(unique_contacts)
if ignored := len(contacts) - len(unique_contacts):
message = _(
"Contacts successfully imported. Number of contacts imported: %(imported_count)s. Number of duplicates ignored: %(duplicate_count)s",
imported_count=len(unique_contacts),
duplicate_count=ignored,
)
else:
message = _("Contacts successfully imported. Number of contacts imported: %(imported_count)s", imported_count=len(unique_contacts))
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'message': (
_('%i Contacts have been imported.', len(unique_contacts))
+ (_(' %i duplicates have been ignored.', ignored) if ignored else '')
),
'message': message,
'type': 'success',
'sticky': False,
'next': {
@ -120,6 +127,6 @@ class MailingContactImport(models.TransientModel):
'name': _('Import Mailing Contacts'),
'params': {
'context': self.env.context,
'model': 'mailing.contact',
'active_model': 'mailing.contact',
}
}