Skip to content

Commit 62cfba1

Browse files
committed
Merge PR #212 into 16.0
Signed-off-by sebastienbeau
2 parents 9d7ac88 + 09f4875 commit 62cfba1

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

connector_search_engine/models/se_indexable_record.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ def _remove_from_index(self, indexes: SeIndex) -> None:
172172
def _se_mark_to_update(self, indexes: SeIndex | None = None) -> None:
173173
"""Mark the record to be updated in the index."""
174174
bindings = self._get_bindings(indexes)
175-
bindings.write({"state": "to_recompute"})
175+
bindings.filtered(lambda s: s.state != "to_delete").write(
176+
{"state": "to_recompute"}
177+
)
176178

177179
def unlink(self):
178180
bindings = self.sudo()._get_bindings()

connector_search_engine/tests/test_all.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,22 @@ def test_resynchronize_all_bindings(self):
370370
self.assertEqual(len(calls), 2)
371371
self.assertEqual(calls[1]["method"], "delete")
372372
self.assertEqual(calls[1]["args"], [none_existing_partner_id, "wtf"])
373+
374+
def test_se_mark_to_update(self):
375+
self.partners = self.env["res.partner"].create(
376+
[
377+
{"name": "Foo"},
378+
{"name": "Bar"},
379+
]
380+
)
381+
self.partners._add_to_index(self.se_index)
382+
383+
# Now for some reason the first partner is removed from the index
384+
self.partners[0]._remove_from_index(self.se_index)
385+
386+
# And something (like a write) trigger an "_se_mark_to_update"
387+
self.partners._se_mark_to_update()
388+
389+
# We ensure that the binding is still in "to_delete"
390+
self.assertEqual(self.partners[0].se_binding_ids.state, "to_delete")
391+
self.assertEqual(self.partners[1].se_binding_ids.state, "to_recompute")

0 commit comments

Comments
 (0)