diff options
| author | Victor Feyens <vfe@odoo.com> | 2020-07-14 14:40:38 +0000 |
|---|---|---|
| committer | Victor Feyens <vfe@odoo.com> | 2020-07-23 16:38:17 +0000 |
| commit | 468f86e0c1de0d58a9bb665848b14d915fa493fd (patch) | |
| tree | 978dc5a1b0c5fe74263e79ffb135bf37a4e0946b | |
| parent | addffca4235b0f751f3ad43943ca837544b307b6 (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.
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"/> |
