diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py index ffc5c28753a..aba5ef7692a 100644 --- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py +++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py @@ -136,16 +136,6 @@ class l10n_be_vat_declaration(osv.osv_memory): data_of_file = """ - - %(only_vat)s - %(cmpny_name)s - %(address)s - %(post_code)s - %(city)s - %(country_code)s - %(email)s - %(phone)s - %(only_vat)s diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index ac552d1d004..01a50579dd3 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -802,6 +802,13 @@ class mail_message(osv.Model): message_id = tools.generate_tracking_message_id('private') return message_id + @api.multi + def _invalidate_documents(self): + """ Invalidate the cache of the documents followed by ``self``. """ + for record in self: + if record.res_id: + self.env[record.model].invalidate_cache(ids=[record.res_id]) + def create(self, cr, uid, values, context=None): context = dict(context or {}) default_starred = context.pop('default_starred', False) @@ -816,6 +823,7 @@ class mail_message(osv.Model): values['record_name'] = self._get_record_name(cr, uid, values, context=context) newid = super(mail_message, self).create(cr, uid, values, context) + self.browse(cr, uid, newid, context)._invalidate_documents() self._notify(cr, uid, newid, context=context, force_send=context.get('mail_notify_force_send', True), @@ -837,6 +845,14 @@ class mail_message(osv.Model): res = super(mail_message, self).read(cr, uid, ids, fields=fields, context=context, load=load) return res + @api.multi + def write(self, vals): + if 'model' in vals or 'res_id' in vals: + self._invalidate_documents() + res = super(mail_message, self).write(vals) + self._invalidate_documents() + return res + def unlink(self, cr, uid, ids, context=None): # cascade-delete attachments that are directly attached to the message (should only happen # for mail.messages that act as parent for a standalone mail.mail record). @@ -848,6 +864,7 @@ class mail_message(osv.Model): attachments_to_delete.append(attach.id) if attachments_to_delete: self.pool.get('ir.attachment').unlink(cr, uid, attachments_to_delete, context=context) + self.browse(cr, uid, ids, context)._invalidate_documents() return super(mail_message, self).unlink(cr, uid, ids, context=context) #------------------------------------------------------ diff --git a/addons/mail/tests/test_mail_message.py b/addons/mail/tests/test_mail_message.py index aceb90efa8b..5147d1e102c 100644 --- a/addons/mail/tests/test_mail_message.py +++ b/addons/mail/tests/test_mail_message.py @@ -444,3 +444,8 @@ class TestMailMessage(TestMail): {'subject': 'Subject', 'body': 'Body text'}, {'default_composition_mode': 'comment', 'default_parent_id': pigs_msg_id}) mail_compose.send_mail(cr, user_raoul_id, [compose_id]) + + def test_60_cache_invalidation(self): + msg_cnt = len(self.group_pigs.message_ids) + self.group_pigs.message_post(body='Hi!', subject='test') + self.assertEqual(len(self.group_pigs.message_ids), msg_cnt + 1)