Skip to content

Commit e6d3f35

Browse files
committed
🚑 sync: fix reference fields
It turned out that selection models for the reference fields cannot be dynamic. Also, delete deprecated field in sync.order because it didn't work anyway.
1 parent 395a780 commit e6d3f35

File tree

3 files changed

+12
-20
lines changed

3 files changed

+12
-20
lines changed

sync/models/sync_order.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ class SyncOrder(models.Model):
1818
)
1919
sync_job_id = fields.Many2one("sync.job")
2020
description = fields.Html(related="sync_task_id.sync_order_description")
21-
# DEPRECATED. Use line_ids.record_id instead
22-
record_id = fields.Reference(
23-
string="Blackjack",
24-
selection="_selection_record_id",
25-
help="Optional extra information to perform this task",
26-
)
2721
line_ids = fields.One2many(
2822
"sync.order.line", "sync_order_id", string="Linked Records"
2923
)
@@ -39,12 +33,6 @@ class SyncOrder(models.Model):
3933
default="draft",
4034
)
4135

42-
def _selection_record_id(self):
43-
mm = self.sync_task_id.sync_order_model_id
44-
if not mm:
45-
return []
46-
return [(mm.model, mm.name)]
47-
4836
def action_done(self):
4937
self.write({"state": "done"})
5038

@@ -66,7 +54,8 @@ class SyncOrderLine(models.Model):
6654
sync_order_id = fields.Many2one("sync.order")
6755
record_id = fields.Reference(
6856
string="Linked Record",
69-
selection="_selection_record_id",
57+
selection=lambda self: self.selection_record_ref(),
58+
required=True,
7059
help="Optional extra information to perform this task",
7160
)
7261
state = fields.Selection(
@@ -82,11 +71,8 @@ class SyncOrderLine(models.Model):
8271
value = fields.Char("Extra Input")
8372
result = fields.Char("Result")
8473

85-
def _selection_record_id(self):
86-
mm = self.sync_order_id.sync_task_id.sync_order_model_id
87-
if not mm:
88-
return []
89-
return [(mm.model, mm.name)]
74+
def selection_record_ref(self):
75+
return []
9076

9177
def action_done(self, msg=None):
9278
self.write({"state": "done"})

sync/models/sync_project.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,9 +708,15 @@ def create_trigger(model, data):
708708
"{TASK_ID}", str(task.id)
709709
)
710710

711-
create_trigger(
711+
automation = create_trigger(
712712
"sync.trigger.automation", dict(data, model_id=model.id, model=None)
713713
)
714+
# fix recomputation
715+
if data.get("trigger_field_ids"):
716+
automation.trigger_field_ids = data.get("trigger_field_ids")
717+
for field_name in ("filter_pre_domain", "filter_domain"):
718+
if data.get(field_name):
719+
automation[field_name] = data.get(field_name)
714720

715721
self.update(vals)
716722

sync/views/sync_order_views.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@
6868
<tree editable="bottom">
6969
<field name="record_id" />
7070
<field name="value" />
71-
<field name="state" readonly="1" />
7271
<field name="result" readonly="1" />
72+
<field name="state" readonly="1" />
7373
</tree>
7474
</field>
7575
</page>

0 commit comments

Comments
 (0)