Skip to content

Commit c410a00

Browse files
committed
[FIX] mass_mailing_partner: control readonly field
1 parent b0b951b commit c410a00

File tree

6 files changed

+36
-12
lines changed

6 files changed

+36
-12
lines changed

mass_mailing_partner/README.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ Contributors
102102

103103
* Jairo Llopis
104104

105+
* `Kencove <https://kencove.com>`_:
106+
107+
* Mohamed Alkobrosli
108+
105109
Other credits
106110
~~~~~~~~~~~~~
107111

mass_mailing_partner/models/mailing_contact.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,19 @@ def _check_partner_id_list_ids(self):
4242
+ ": %s" % contact.partner_id.display_name
4343
)
4444

45+
def update_fields_based_on_partner(self):
46+
for rec in self.filtered("partner_id"):
47+
rec.name = rec.partner_id.name
48+
rec.email = rec.partner_id.email
49+
rec.title_id = rec.partner_id.title
50+
rec.company_name = (
51+
rec.partner_id.company_id.name or rec.partner_id.company_name
52+
)
53+
rec.country_id = rec.partner_id.country_id
54+
4555
@api.onchange("partner_id")
4656
def _onchange_partner_mass_mailing_partner(self):
47-
if self.partner_id:
48-
self.name = self.partner_id.name
49-
self.email = self.partner_id.email
50-
self.title_id = self.partner_id.title
51-
self.company_name = (
52-
self.partner_id.company_id.name or self.partner_id.company_name
53-
)
54-
self.country_id = self.partner_id.country_id
57+
self.update_fields_based_on_partner()
5558

5659
def _overwrite_partner(self, vals, creating=False):
5760
"""Overwrite partner and update contact data if needed."""
@@ -63,7 +66,7 @@ def _overwrite_partner(self, vals, creating=False):
6366
if "partner_id" not in vals:
6467
_self._set_partner()
6568
if creating or prev_partner != _self.partner_id:
66-
_self._onchange_partner_mass_mailing_partner()
69+
_self.update_fields_based_on_partner()
6770

6871
@api.model_create_multi
6972
def create(self, vals_list):
@@ -75,7 +78,7 @@ def create(self, vals_list):
7578
def write(self, vals):
7679
result = super().write(vals)
7780
for contact in self:
78-
contact._overwrite_partner(vals)
81+
contact._overwrite_partner(vals, False)
7982
return result
8083

8184
def _get_categories(self):

mass_mailing_partner/readme/CONTRIBUTORS.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@
2020
* `Moduon <https://www.moduon.team>`_:
2121

2222
* Jairo Llopis
23+
24+
* `Kencove <https://kencove.com>`_:
25+
26+
* Mohamed Alkobrosli

mass_mailing_partner/static/description/index.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,13 @@ <h1>Contributors</h1>
454454
</ul>
455455
</blockquote>
456456
</li>
457+
<li><p class="first"><a class="reference external" href="https://kencove.com">Kencove</a>:</p>
458+
<blockquote>
459+
<ul class="simple">
460+
<li>Mohamed Alkobrosli</li>
461+
</ul>
462+
</blockquote>
463+
</li>
457464
</ul>
458465
</div>
459466
<div class="section" id="other-credits">

mass_mailing_partner/tests/test_mail_mass_mailing_contact.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def test_onchange_partner(self):
106106
}
107107
partner = self.create_partner(partner_vals)
108108
contact.partner_id = partner
109-
contact._onchange_partner_mass_mailing_partner()
109+
contact.update_fields_based_on_partner()
110110
self.check_mailing_contact_partner(contact)
111111

112112
def test_partners_merge(self):

mass_mailing_partner/views/mailing_contact_view.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,37 @@
3030
<attribute
3131
name="attrs"
3232
>{'readonly': [('partner_id', '!=', False)]}</attribute>
33+
<attribute name="force_save">1</attribute>
3334
</field>
3435
<field name="email" position="attributes">
3536
<attribute
3637
name="attrs"
37-
>{'readonly': [('partner_id', '!=', False)]}</attribute>
38+
>{'readonly': [('partner_id', '!=', False), ('email', '!=', False)]}</attribute>
39+
<attribute name="force_save">1</attribute>
3840
</field>
3941
<field name="name" position="attributes">
4042
<attribute
4143
name="attrs"
4244
>{'readonly': [('partner_id', '!=', False)]}</attribute>
45+
<attribute name="force_save">1</attribute>
4346
</field>
4447
<field name="company_name" position="attributes">
4548
<attribute
4649
name="attrs"
4750
>{'readonly': [('partner_id', '!=', False)]}</attribute>
51+
<attribute name="force_save">1</attribute>
4852
</field>
4953
<field name="country_id" position="attributes">
5054
<attribute
5155
name="attrs"
5256
>{'readonly': [('partner_id', '!=', False)]}</attribute>
57+
<attribute name="force_save">1</attribute>
5358
</field>
5459
<field name="tag_ids" position="attributes">
5560
<attribute
5661
name="attrs"
5762
>{'readonly': [('partner_id', '!=', False)]}</attribute>
63+
<attribute name="force_save">1</attribute>
5864
</field>
5965
</field>
6066
</record>

0 commit comments

Comments
 (0)