summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2020-07-14 14:40:38 +0000
committerVictor Feyens <vfe@odoo.com>2020-07-23 16:38:17 +0000
commit468f86e0c1de0d58a9bb665848b14d915fa493fd (patch)
tree978dc5a1b0c5fe74263e79ffb135bf37a4e0946b
parentaddffca4235b0f751f3ad43943ca837544b307b6 (diff)
[IMP] snailmail: correct default_get behavior
1) Use a default_<fname> context key to give a default value and leave the management of the default to the orm level when possible. 2) Do not return unwanted default values in default_get override.
-rw-r--r--addons/snailmail/static/src/components/message/message_tests.js2
-rw-r--r--addons/snailmail/static/src/models/message/message.js2
-rw-r--r--addons/snailmail/wizard/snailmail_letter_missing_required_fields.py26
-rw-r--r--addons/snailmail/wizard/snailmail_letter_missing_required_fields_views.xml2
4 files changed, 17 insertions, 15 deletions
diff --git a/addons/snailmail/static/src/components/message/message_tests.js b/addons/snailmail/static/src/components/message/message_tests.js
index 01a16040e08..1071c9b24b6 100644
--- a/addons/snailmail/static/src/components/message/message_tests.js
+++ b/addons/snailmail/static/src/components/message/message_tests.js
@@ -622,7 +622,7 @@ QUnit.test('Missing Required Fields', async function (assert) {
"action should be the one for missing fields"
);
assert.strictEqual(
- payload.options.additional_context.letter_id,
+ payload.options.additional_context.default_letter_id,
22, // should be the same as the id returned by search
"action should have correct letter id"
);
diff --git a/addons/snailmail/static/src/models/message/message.js b/addons/snailmail/static/src/models/message/message.js
index 2ac25fc1ecf..f685e48ac42 100644
--- a/addons/snailmail/static/src/models/message/message.js
+++ b/addons/snailmail/static/src/models/message/message.js
@@ -48,7 +48,7 @@ registerInstancePatchModel('mail.message', 'snailmail/static/src/models/message.
action: 'snailmail.snailmail_letter_missing_required_fields_action',
options: {
additional_context: {
- letter_id: letterIds[0],
+ default_letter_id: letterIds[0],
},
},
});
diff --git a/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py b/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py
index 63326ab63c5..4216f3f82aa 100644
--- a/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py
+++ b/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py
@@ -17,19 +17,19 @@ class SnailmailLetterMissingRequiredFields(models.TransientModel):
@api.model
def default_get(self, fields):
- rec = super(SnailmailLetterMissingRequiredFields, self).default_get(fields)
- letter_id = self.env['snailmail.letter'].browse(self.env.context.get('letter_id'))
- rec.update({
- 'partner_id': letter_id.partner_id.id,
- 'letter_id': letter_id.id,
- 'street': letter_id.street,
- 'street2': letter_id.street2,
- 'zip': letter_id.zip,
- 'city': letter_id.city,
- 'state_id': letter_id.state_id.id,
- 'country_id': letter_id.country_id.id,
- })
- return rec
+ defaults = super(SnailmailLetterMissingRequiredFields, self).default_get(fields)
+ if defaults.get('letter_id'):
+ letter = self.env['snailmail.letter'].browse(defaults.get('letter_id'))
+ defaults.update({
+ 'partner_id': letter.partner_id.id,
+ 'street': letter.street,
+ 'street2': letter.street2,
+ 'zip': letter.zip,
+ 'city': letter.city,
+ 'state_id': letter.state_id.id,
+ 'country_id': letter.country_id.id,
+ })
+ return defaults
def update_address_cancel(self):
self.letter_id.cancel()
diff --git a/addons/snailmail/wizard/snailmail_letter_missing_required_fields_views.xml b/addons/snailmail/wizard/snailmail_letter_missing_required_fields_views.xml
index 19f9d549d53..dccd802e969 100644
--- a/addons/snailmail/wizard/snailmail_letter_missing_required_fields_views.xml
+++ b/addons/snailmail/wizard/snailmail_letter_missing_required_fields_views.xml
@@ -5,6 +5,8 @@
<field name="model">snailmail.letter.missing.required.fields</field>
<field name="arch" type="xml">
<form>
+ <!-- Field present for correct default_get behavior -->
+ <field name="letter_id" invisible="1"/>
<p>The customer address is not complete. Update the address here and re-send the letter.</p>
<group>
<label for="partner_id" string="Address"/>