Skip to content

Commit 56f5a6c

Browse files
committed
[14.0][MIG] sale_automatic_workflow_job: Migration to 14.0
1 parent f98daca commit 56f5a6c

File tree

4 files changed

+85
-25
lines changed

4 files changed

+85
-25
lines changed

sale_automatic_workflow_job/__manifest__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
{
55
"name": "Sale Automatic Workflow Job",
66
"summary": "Execute sale automatic workflows in queue jobs",
7-
"version": "13.0.1.0.0",
7+
"version": "14.0.1.0.0",
88
"category": "Sales Management",
99
"license": "AGPL-3",
1010
"author": "Camptocamp, " "Odoo Community Association (OCA)",
1111
"website": "https://github.com/OCA/sale-workflow",
1212
"depends": ["sale_automatic_workflow", "queue_job"],
13+
"data": [
14+
"data/queue_job_data.xml",
15+
],
1316
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo>
3+
<data>
4+
<!-- Queue Job Channel -->
5+
<record id="channel_sale_automatic_workflow" model="queue.job.channel">
6+
<field name="name">channel.sale.automatic.workflow</field>
7+
<field name="parent_id" ref="queue_job.channel_root" />
8+
</record>
9+
10+
<!-- Queue Job Function -->
11+
<record id="job_function_do_validate_sale_order" model="queue.job.function">
12+
<field name="model_id" ref="sale_automatic_workflow_job.model_automatic_workflow_job" />
13+
<field name="method">_do_validate_sale_order</field>
14+
<field name="channel_id" ref="channel_sale_automatic_workflow" />
15+
<field
16+
name="related_action"
17+
eval='{"func_name": "_related_action_sale_automatic_workflow"}'
18+
/>
19+
</record>
20+
21+
<record id="job_function_do_create_invoice" model="queue.job.function">
22+
<field name="model_id" ref="sale_automatic_workflow_job.model_automatic_workflow_job" />
23+
<field name="method">_do_create_invoice</field>
24+
<field name="channel_id" ref="channel_sale_automatic_workflow" />
25+
<field
26+
name="related_action"
27+
eval='{"func_name": "_related_action_sale_automatic_workflow"}'
28+
/>
29+
</record>
30+
31+
<record id="job_function_do_validate_invoice" model="queue.job.function">
32+
<field name="model_id" ref="sale_automatic_workflow_job.model_automatic_workflow_job" />
33+
<field name="method">_do_validate_invoice</field>
34+
<field name="channel_id" ref="channel_sale_automatic_workflow" />
35+
<field
36+
name="related_action"
37+
eval='{"func_name": "_related_action_sale_automatic_workflow"}'
38+
/>
39+
</record>
40+
41+
<record id="job_function_do_validate_picking" model="queue.job.function">
42+
<field name="model_id" ref="sale_automatic_workflow_job.model_automatic_workflow_job" />
43+
<field name="method">_do_validate_picking</field>
44+
<field name="channel_id" ref="channel_sale_automatic_workflow" />
45+
<field
46+
name="related_action"
47+
eval='{"func_name": "_related_action_sale_automatic_workflow"}'
48+
/>
49+
</record>
50+
51+
<record id="job_function_do_sale_done" model="queue.job.function">
52+
<field name="model_id" ref="sale_automatic_workflow_job.model_automatic_workflow_job" />
53+
<field name="method">_do_sale_done</field>
54+
<field name="channel_id" ref="channel_sale_automatic_workflow" />
55+
<field
56+
name="related_action"
57+
eval='{"func_name": "_related_action_sale_automatic_workflow"}'
58+
/>
59+
</record>
60+
</data>
61+
</odoo>

sale_automatic_workflow_job/models/automatic_workflow_job.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33
from odoo import _, models
44

5-
from odoo.addons.queue_job.job import identity_exact, job_auto_delay, related_action
5+
from odoo.addons.queue_job.job import identity_exact
66

77

88
class AutomaticWorkflowJob(models.Model):
@@ -15,8 +15,6 @@ def _do_validate_sale_order_job_options(self, sale, domain_filter):
1515
"identity_key": identity_exact,
1616
}
1717

18-
@job_auto_delay(default_channel="root.auto_workflow")
19-
@related_action("_related_action_sale_automatic_workflow")
2018
def _do_validate_sale_order(self, sale, domain_filter):
2119
return super()._do_validate_sale_order(sale, domain_filter)
2220

@@ -27,8 +25,6 @@ def _do_create_invoice_job_options(self, sale, domain_filter):
2725
"identity_key": identity_exact,
2826
}
2927

30-
@job_auto_delay(default_channel="root.auto_workflow")
31-
@related_action("_related_action_sale_automatic_workflow")
3228
def _do_create_invoice(self, sale, domain_filter):
3329
return super()._do_create_invoice(sale, domain_filter)
3430

@@ -39,8 +35,6 @@ def _do_validate_invoice_job_options(self, invoice, domain_filter):
3935
"identity_key": identity_exact,
4036
}
4137

42-
@job_auto_delay(default_channel="root.auto_workflow")
43-
@related_action("_related_action_sale_automatic_workflow")
4438
def _do_validate_invoice(self, invoice, domain_filter):
4539
return super()._do_validate_invoice(invoice, domain_filter)
4640

@@ -51,8 +45,6 @@ def _do_validate_picking_job_options(self, picking, domain_filter):
5145
"identity_key": identity_exact,
5246
}
5347

54-
@job_auto_delay(default_channel="root.auto_workflow")
55-
@related_action("_related_action_sale_automatic_workflow")
5648
def _do_validate_picking(self, picking, domain_filter):
5749
return super()._do_validate_picking(picking, domain_filter)
5850

@@ -63,7 +55,5 @@ def _do_sale_done_job_options(self, sale, domain_filter):
6355
"identity_key": identity_exact,
6456
}
6557

66-
@job_auto_delay(default_channel="root.auto_workflow")
67-
@related_action("_related_action_sale_automatic_workflow")
6858
def _do_sale_done(self, sale, domain_filter):
6959
return super()._do_sale_done(sale, domain_filter)

sale_automatic_workflow_job/tests/test_auto_workflow_job.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,14 @@
55

66
from odoo.addons.queue_job.job import identity_exact
77
from odoo.addons.queue_job.tests.common import mock_with_delay
8-
from odoo.addons.sale_automatic_workflow.tests.test_automatic_workflow_base import ( # noqa
9-
TestAutomaticWorkflowBase,
8+
from odoo.addons.sale_automatic_workflow.tests.common import (
9+
TestAutomaticWorkflowMixin,
10+
TestCommon,
1011
)
1112

1213

1314
@tagged("post_install", "-at_install")
14-
class TestAutoWorkflowJob(TestAutomaticWorkflowBase):
15-
def setUp(self):
16-
super().setUp()
17-
workflow = self.create_full_automatic()
18-
self.sale = self.create_sale_order(workflow)
19-
15+
class TestAutoWorkflowJob(TestCommon, TestAutomaticWorkflowMixin):
2016
def assert_job_delayed(self, delayable_cls, delayable, method_name, args):
2117
# .with_delay() has been called once
2218
self.assertEqual(delayable_cls.call_count, 1)
@@ -33,46 +29,56 @@ def assert_job_delayed(self, delayable_cls, delayable, method_name, args):
3329
self.assertDictEqual(delay_kwargs, {})
3430

3531
def test_validate_sale_order(self):
32+
workflow = self.create_full_automatic()
33+
self.sale = self.create_sale_order(workflow)
3634
with mock_with_delay() as (delayable_cls, delayable):
37-
self.progress() # run automatic workflow cron
35+
self.run_job() # run automatic workflow cron
3836
self.assert_job_delayed(
3937
delayable_cls, delayable, "_do_validate_sale_order", (self.sale,)
4038
)
4139

4240
def test_create_invoice(self):
41+
workflow = self.create_full_automatic()
42+
self.sale = self.create_sale_order(workflow)
4343
self.sale.action_confirm()
4444
# don't care about transfers in this test
4545
self.sale.picking_ids.state = "done"
4646
with mock_with_delay() as (delayable_cls, delayable):
47-
self.progress() # run automatic workflow cron
47+
self.run_job() # run automatic workflow cron
4848
self.assert_job_delayed(
4949
delayable_cls, delayable, "_do_create_invoice", (self.sale,)
5050
)
5151

5252
def test_validate_invoice(self):
53+
workflow = self.create_full_automatic()
54+
self.sale = self.create_sale_order(workflow)
5355
self.sale.action_confirm()
5456
# don't care about transfers in this test
5557
self.sale.picking_ids.state = "done"
5658
self.sale.action_invoice_create()
5759
invoice = self.sale.invoice_ids
5860
with mock_with_delay() as (delayable_cls, delayable):
59-
self.progress() # run automatic workflow cron
61+
self.run_job() # run automatic workflow cron
6062
self.assert_job_delayed(
6163
delayable_cls, delayable, "_do_validate_invoice", (invoice,)
6264
)
6365

6466
def test_validate_picking(self):
67+
workflow = self.create_full_automatic()
68+
self.sale = self.create_sale_order(workflow)
6569
self.sale.action_confirm()
6670
picking = self.sale.picking_ids
6771
# disable invoice creation in this test
6872
self.sale.workflow_process_id.create_invoice = False
6973
with mock_with_delay() as (delayable_cls, delayable):
70-
self.progress() # run automatic workflow cron
74+
self.run_job() # run automatic workflow cron
7175
self.assert_job_delayed(
7276
delayable_cls, delayable, "_do_validate_picking", (picking,)
7377
)
7478

7579
def test_sale_done(self):
80+
workflow = self.create_full_automatic()
81+
self.sale = self.create_sale_order(workflow)
7682
self.sale.action_confirm()
7783
# don't care about transfers in this test
7884
self.sale.picking_ids.state = "done"
@@ -85,7 +91,7 @@ def test_sale_done(self):
8591
self.sale.workflow_process_id.sale_done = True
8692

8793
with mock_with_delay() as (delayable_cls, delayable):
88-
self.progress() # run automatic workflow cron
94+
self.run_job() # run automatic workflow cron
8995
self.assert_job_delayed(
9096
delayable_cls, delayable, "_do_sale_done", (self.sale,)
9197
)

0 commit comments

Comments
 (0)