Skip to content

Commit d85de3f

Browse files
lasleySodexisTeam
authored andcommitted
[MIG] sale_automatic_workflow: Upgrade to v10
* Bump version * Change openerp references to odoo * Fix license headers * Move menu * Alphabetize imports * Remove data key from XML * Change deprecated invoice validation workflow call to replacement action method
1 parent 6caeb02 commit d85de3f

12 files changed

+205
-226
lines changed

sale_automatic_workflow/__manifest__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
{
88
'name': 'Sale Automatic Workflow',
9-
'version': '9.0.1.1.0',
9+
'version': '10.0.1.0.0',
1010
'category': 'Sales Management',
1111
'license': 'AGPL-3',
1212
'author': "Akretion,Camptocamp,Sodexis,Odoo Community Association (OCA)",
@@ -18,5 +18,5 @@
1818
'data/automatic_workflow_data.xml',
1919
'security/ir.model.access.csv',
2020
],
21-
'installable': False,
21+
'installable': True,
2222
}
Lines changed: 75 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,88 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!--
3-
sale_automatic_workflow for OpenERP
43
Copyright (C) 2011 Akretion Sébastien BEAU <[email protected]>
5-
The licence is in the file __openerp__.py
4+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
65
-->
76

8-
<odoo>
9-
<data noupdate="1">
7+
<odoo noupdate="1">
108

11-
<record id="automatic_workflow_order_filter" model="ir.filters">
12-
<field name="name">Automatic Workflow Order Filter</field>
13-
<field name="model_id">sale.order</field>
14-
<field name="domain">[('state', '=', 'draft')]</field>
15-
<field name="user_id" ref="base.user_root"/>
16-
</record>
9+
<record id="automatic_workflow_order_filter" model="ir.filters">
10+
<field name="name">Automatic Workflow Order Filter</field>
11+
<field name="model_id">sale.order</field>
12+
<field name="domain">[('state', '=', 'draft')]</field>
13+
<field name="user_id" ref="base.user_root"/>
14+
</record>
1715

18-
<record id="automatic_workflow_picking_filter" model="ir.filters">
19-
<field name="name">Automatic Workflow Picking Filter</field>
20-
<field name="model_id">stock.picking</field>
21-
<field name="domain">[('state', 'in', ['draft', 'confirmed', 'assigned'])]</field>
22-
<field name="user_id" ref="base.user_root"/>
23-
</record>
16+
<record id="automatic_workflow_picking_filter" model="ir.filters">
17+
<field name="name">Automatic Workflow Picking Filter</field>
18+
<field name="model_id">stock.picking</field>
19+
<field name="domain">[('state', 'in', ['draft', 'confirmed', 'assigned'])]</field>
20+
<field name="user_id" ref="base.user_root"/>
21+
</record>
2422

25-
<record id="automatic_workflow_create_invoice_filter" model="ir.filters">
26-
<field name="name">Automatic Workflow Create Invoice Filter</field>
27-
<field name="model_id">sale.order</field>
28-
<field name="domain">[('state','in',['sale','done']),('invoice_status','=','to invoice')]</field>
29-
<field name="user_id" ref="base.user_root"/>
30-
</record>
23+
<record id="automatic_workflow_create_invoice_filter" model="ir.filters">
24+
<field name="name">Automatic Workflow Create Invoice Filter</field>
25+
<field name="model_id">sale.order</field>
26+
<field name="domain">[('state','in',['sale','done']),('invoice_status','=','to invoice')]</field>
27+
<field name="user_id" ref="base.user_root"/>
28+
</record>
3129

32-
<record id="automatic_workflow_validate_invoice_filter" model="ir.filters">
33-
<field name="name">Automatic Workflow Validate Invoice Filter</field>
34-
<field name="model_id">account.invoice</field>
35-
<field name="domain">[('state', '=', 'draft')]</field>
36-
<field name="user_id" ref="base.user_root"/>
37-
</record>
30+
<record id="automatic_workflow_validate_invoice_filter" model="ir.filters">
31+
<field name="name">Automatic Workflow Validate Invoice Filter</field>
32+
<field name="model_id">account.invoice</field>
33+
<field name="domain">[('state', '=', 'draft')]</field>
34+
<field name="user_id" ref="base.user_root"/>
35+
</record>
3836

39-
<record id="automatic_workflow_sale_done_filter" model="ir.filters">
40-
<field name="name">Automatic Workflow Sale Done Filter</field>
41-
<field name="model_id">sale.order</field>
42-
<field name="domain">[('state', '=', 'sale'),('invoice_status','=','invoiced')]</field>
43-
<field name="user_id" ref="base.user_root"/>
44-
</record>
45-
46-
<record id="automatic_validation" model="sale.workflow.process">
47-
<field name="name">Automatic</field>
48-
<field name="picking_policy">one</field>
49-
<field name="validate_order" eval="1"/>
50-
<field name="order_filter_id" eval="automatic_workflow_order_filter"/>
51-
<field name="create_invoice" eval="1" />
52-
<field name="create_invoice_filter_id" eval="automatic_workflow_create_invoice_filter"/>
53-
<field name="validate_invoice" eval="1" />
54-
<field name="validate_invoice_filter_id" eval="automatic_workflow_validate_invoice_filter"/>
55-
<field name="invoice_date_is_order_date" eval="0" />
56-
<field name="validate_picking" eval="0" />
57-
<field name="picking_filter_id" eval="automatic_workflow_picking_filter"/>
58-
<field name="sale_done" eval="0"/>
59-
<field name="sale_done_filter_id" eval="automatic_workflow_sale_done_filter"/>
60-
<field name="warning">Be careful, if you save the order with this setting, it could be auto-confirmed, even if you are editing it.</field>
61-
</record>
37+
<record id="automatic_workflow_sale_done_filter" model="ir.filters">
38+
<field name="name">Automatic Workflow Sale Done Filter</field>
39+
<field name="model_id">sale.order</field>
40+
<field name="domain">[('state', '=', 'sale'),('invoice_status','=','invoiced')]</field>
41+
<field name="user_id" ref="base.user_root"/>
42+
</record>
6243

63-
<record id="manual_validation" model="sale.workflow.process">
64-
<field name="name">Manual</field>
65-
<field name="picking_policy">one</field>
66-
<field name="validate_order" eval="0"/>
67-
<field name="validate_invoice" eval="0" />
68-
<field name="invoice_date_is_order_date" eval="0" />
69-
<field name="validate_picking" eval="0" />
70-
<field name="order_filter_id" eval="automatic_workflow_order_filter"/>
71-
<field name="create_invoice_filter_id" eval="automatic_workflow_create_invoice_filter"/>
72-
<field name="validate_invoice_filter_id" eval="automatic_workflow_validate_invoice_filter"/>
73-
<field name="picking_filter_id" eval="automatic_workflow_picking_filter"/>
74-
<field name="sale_done_filter_id" eval="automatic_workflow_sale_done_filter"/>
75-
</record>
44+
<record id="automatic_validation" model="sale.workflow.process">
45+
<field name="name">Automatic</field>
46+
<field name="picking_policy">one</field>
47+
<field name="validate_order" eval="1"/>
48+
<field name="order_filter_id" eval="automatic_workflow_order_filter"/>
49+
<field name="create_invoice" eval="1" />
50+
<field name="create_invoice_filter_id" eval="automatic_workflow_create_invoice_filter"/>
51+
<field name="validate_invoice" eval="1" />
52+
<field name="validate_invoice_filter_id" eval="automatic_workflow_validate_invoice_filter"/>
53+
<field name="invoice_date_is_order_date" eval="0" />
54+
<field name="validate_picking" eval="0" />
55+
<field name="picking_filter_id" eval="automatic_workflow_picking_filter"/>
56+
<field name="sale_done" eval="0"/>
57+
<field name="sale_done_filter_id" eval="automatic_workflow_sale_done_filter"/>
58+
<field name="warning">Be careful, if you save the order with this setting, it could be auto-confirmed, even if you are editing it.</field>
59+
</record>
60+
61+
<record id="manual_validation" model="sale.workflow.process">
62+
<field name="name">Manual</field>
63+
<field name="picking_policy">one</field>
64+
<field name="validate_order" eval="0"/>
65+
<field name="validate_invoice" eval="0" />
66+
<field name="invoice_date_is_order_date" eval="0" />
67+
<field name="validate_picking" eval="0" />
68+
<field name="order_filter_id" eval="automatic_workflow_order_filter"/>
69+
<field name="create_invoice_filter_id" eval="automatic_workflow_create_invoice_filter"/>
70+
<field name="validate_invoice_filter_id" eval="automatic_workflow_validate_invoice_filter"/>
71+
<field name="picking_filter_id" eval="automatic_workflow_picking_filter"/>
72+
<field name="sale_done_filter_id" eval="automatic_workflow_sale_done_filter"/>
73+
</record>
74+
75+
<record forcecreate="True" id="ir_cron_automatic_workflow_job" model="ir.cron">
76+
<field name="name">Automatic Workflow Job</field>
77+
<field eval="True" name="active"/>
78+
<field name="user_id" ref="base.user_root"/>
79+
<field name="interval_number">1</field>
80+
<field name="interval_type">minutes</field>
81+
<field name="numbercall">-1</field>
82+
<field eval="False" name="doall"/>
83+
<field eval="'automatic.workflow.job'" name="model"/>
84+
<field eval="'run'" name="function"/>
85+
<field eval="'()'" name="args"/>
86+
</record>
7687

77-
<record forcecreate="True" id="ir_cron_automatic_workflow_job" model="ir.cron">
78-
<field name="name">Automatic Workflow Job</field>
79-
<field eval="True" name="active"/>
80-
<field name="user_id" ref="base.user_root"/>
81-
<field name="interval_number">1</field>
82-
<field name="interval_type">minutes</field>
83-
<field name="numbercall">-1</field>
84-
<field eval="False" name="doall"/>
85-
<field eval="'automatic.workflow.job'" name="model"/>
86-
<field eval="'run'" name="function"/>
87-
<field eval="'()'" name="args"/>
88-
</record>
89-
</data>
9088
</odoo>

sale_automatic_workflow/models/account_invoice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# © 2016 Sodexis
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
66

7-
from openerp import models, fields
7+
from odoo import models, fields
88

99

1010
class AccountInvoice(models.Model):

sale_automatic_workflow/models/automatic_workflow_job.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import logging
88
from contextlib import contextmanager
9-
from openerp import models, api
10-
from openerp.tools.safe_eval import safe_eval
9+
from odoo import api, models
10+
from odoo.tools.safe_eval import safe_eval
1111

1212
_logger = logging.getLogger(__name__)
1313

@@ -62,7 +62,7 @@ def _validate_invoices(self, validate_invoice_filter):
6262
_logger.debug('Invoices to validate: %s', invoices.ids)
6363
for invoice in invoices:
6464
with commit(self.env.cr):
65-
invoice.signal_workflow('invoice_open')
65+
invoice.action_invoice_open()
6666

6767
@api.model
6868
def _validate_pickings(self, picking_filter):

sale_automatic_workflow/models/sale.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# © 2016 Sodexis
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
66

7-
from openerp import models, fields, api, _
7+
from odoo import _, api, fields, models
88

99

1010
class SaleOrder(models.Model):
@@ -29,7 +29,7 @@ def _prepare_invoice(self):
2929
return invoice_vals
3030

3131
@api.onchange('workflow_process_id')
32-
def onchange_workflow_process_id(self):
32+
def _onchange_workflow_process_id(self):
3333
if not self.workflow_process_id:
3434
return
3535
workflow = self.workflow_process_id

sale_automatic_workflow/models/sale_workflow_process.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# © 2016 Sodexis
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
66

7-
from openerp import models, fields, api
7+
from odoo import api, fields, models
88

99

1010
class SaleWorkflowProcess(models.Model):

sale_automatic_workflow/models/stock_move.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# © 2016 Sodexis
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
66

7-
from openerp import models, api
7+
from odoo import api, models
88

99

1010
class StockMove(models.Model):

sale_automatic_workflow/models/stock_picking.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# © 2016 Sodexis
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
66

7-
from openerp import models, fields, api
7+
from odoo import api, fields, models
88

99

1010
class StockPicking(models.Model):
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
22
access_sale_workflow_process_user,sale_automatic_workflow_payment_sale_workflow_process_user,model_sale_workflow_process,base.group_user,1,0,0,0
3-
access_sale_workflow_process_manager,sale_automatic_workflow_payment_sale_workflow_process_manager,model_sale_workflow_process,base.group_sale_manager,1,1,1,1
3+
access_sale_workflow_process_manager,sale_automatic_workflow_payment_sale_workflow_process_manager,model_sale_workflow_process,sales_team.group_sale_manager,1,1,1,1
44
access_automatic_workflow_job_user,sale_automatic_workflow_payment_automatic_workflow_job_user,model_automatic_workflow_job,base.group_user,1,0,0,0
5-
access_automatic_workflow_job_manager,sale_automatic_workflow_payment_automatic_workflow_job_manager,model_automatic_workflow_job,base.group_sale_manager,1,1,1,1
5+
access_automatic_workflow_job_manager,sale_automatic_workflow_payment_automatic_workflow_job_manager,model_automatic_workflow_job,sales_team.group_sale_manager,1,1,1,1

sale_automatic_workflow/tests/test_flow.py

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,11 @@
11
# -*- coding: utf-8 -*-
2-
##############################################################################
3-
#
4-
# Author: Guewen Baconnier
5-
# Copyright 2014 Camptocamp SA
6-
#
7-
# This program is free software: you can redistribute it and/or modify
8-
# it under the terms of the GNU Affero General Public License as
9-
# published by the Free Software Foundation, either version 3 of the
10-
# License, or (at your option) any later version.
11-
#
12-
# This program is distributed in the hope that it will be useful,
13-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15-
# GNU Affero General Public License for more details.
16-
#
17-
# You should have received a copy of the GNU Affero General Public License
18-
# along with this program. If not, see <http://www.gnu.org/licenses/>.
19-
#
20-
##############################################################################
2+
# Copyright 2014 Camptocamp SA (author: Guewen Baconnier)
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
214

225
from datetime import datetime, timedelta
236

24-
from openerp import fields
25-
from openerp.tests import common
7+
from odoo import fields
8+
from odoo.tests import common
269

2710

2811
class TestAutomaticWorkflow(common.TransactionCase):
@@ -71,7 +54,7 @@ def progress(self):
7154
def test_full_automatic(self):
7255
workflow = self._create_full_automatic()
7356
sale = self._create_sale_order(workflow)
74-
sale.onchange_workflow_process_id()
57+
sale._onchange_workflow_process_id()
7558
self.assertEqual(sale.state, 'draft')
7659
self.assertEqual(sale.workflow_process_id, workflow)
7760
self.progress()
@@ -87,15 +70,15 @@ def test_full_automatic(self):
8770
def test_onchange(self):
8871
workflow = self._create_full_automatic()
8972
sale = self._create_sale_order(workflow)
90-
sale.onchange_workflow_process_id()
73+
sale._onchange_workflow_process_id()
9174
self.assertEqual(sale.picking_policy, 'one')
9275
workflow2 = self._create_full_automatic(
9376
override={
9477
'picking_policy': 'direct',
9578
}
9679
)
9780
sale.workflow_process_id = workflow2.id
98-
sale.onchange_workflow_process_id()
81+
sale._onchange_workflow_process_id()
9982
self.assertEqual(sale.picking_policy, 'direct')
10083

10184
def test_date_invoice_from_sale_order(self):
@@ -109,7 +92,7 @@ def test_date_invoice_from_sale_order(self):
10992
'date_order': last_week_time,
11093
}
11194
sale = self._create_sale_order(workflow, override=override)
112-
sale.onchange_workflow_process_id()
95+
sale._onchange_workflow_process_id()
11396
self.assertEqual(sale.date_order, last_week_time)
11497
self.progress()
11598
self.assertTrue(sale.invoice_ids)
@@ -119,7 +102,7 @@ def test_date_invoice_from_sale_order(self):
119102

120103
def test_invoice_from_picking_with_service_product(self):
121104
workflow = self._create_full_automatic()
122-
product_service = self.env.ref('product.product_product_0')
105+
product_service = self.env.ref('product.service_order_01')
123106
product_uom_hour = self.env.ref('product.product_uom_hour')
124107
override = {
125108
'order_line': [(0, 0, {
@@ -130,7 +113,7 @@ def test_invoice_from_picking_with_service_product(self):
130113
})],
131114
}
132115
sale = self._create_sale_order(workflow, override=override)
133-
sale.onchange_workflow_process_id()
116+
sale._onchange_workflow_process_id()
134117
self.progress()
135118
self.assertFalse(sale.picking_ids)
136119
self.assertTrue(sale.invoice_ids)
@@ -145,7 +128,7 @@ def test_journal_on_invoice(self):
145128
"type": "sale"})
146129
workflow = self._create_full_automatic()
147130
sale = self._create_sale_order(workflow)
148-
sale.onchange_workflow_process_id()
131+
sale._onchange_workflow_process_id()
149132
self.progress()
150133
self.assertTrue(sale.invoice_ids)
151134
invoice = sale.invoice_ids
@@ -155,7 +138,7 @@ def test_journal_on_invoice(self):
155138
override={'property_journal_id': new_sale_journal.id},
156139
)
157140
sale = self._create_sale_order(workflow)
158-
sale.onchange_workflow_process_id()
141+
sale._onchange_workflow_process_id()
159142
self.progress()
160143
self.assertTrue(sale.invoice_ids)
161144
invoice = sale.invoice_ids

sale_automatic_workflow/views/sale_view.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!--
3-
sale_automatic_workflow for Odoo
43
Copyright (C) 2011 Akretion Sébastien BEAU <[email protected]>
54
Copyright (C) 2016 Sodexis <[email protected]>
6-
The licence is in the file __openerp__.py
5+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
76
-->
87

98
<odoo>

0 commit comments

Comments
 (0)