From 08b75b7bcb4506342ef3e9525dc4d3e68abfb410 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 9 Aug 2017 16:34:44 +0200 Subject: [PATCH] [FIX] pad: do not crash during record creation Backport of 0de067cae919937cfc5fa4cd3161d58f48d472b5 (and 9b8bc5e5a11d625a72043e2b076d99be3c24d2c4) Rev. c5bd50927441ba98ae99d56ff765111cf4f6d2f3 attempted to improve the pad sync mechanism when merging records (tasks), but failed to consider the case where the pad_url field is not set yet. This happens at create(), due to the chicken-and-egg problem with the pad URL depending on the record ID, and therefore set *after* creation. Ignoring the sync when the URL is not yet set should be enough, as the URL generation method also takes care of that first sync. --- addons/pad/models/pad.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pad/models/pad.py b/addons/pad/models/pad.py index eb6267ee389..65a8bf5bc5f 100644 --- a/addons/pad/models/pad.py +++ b/addons/pad/models/pad.py @@ -117,7 +117,7 @@ class PadCommon(models.AbstractModel): def _set_pad_value(self, vals): # Update the pad if the `pad_content_field` is modified for k, field in self._fields.iteritems(): - if hasattr(field, 'pad_content_field') and vals.get(field.pad_content_field): + if hasattr(field, 'pad_content_field') and vals.get(field.pad_content_field) and self[k]: company = self.env.user.sudo().company_id myPad = EtherpadLiteClient(company.pad_key, company.pad_server + '/api') path = self[k].split('/p/')[1]