[MIG] sale_confirm_wizard from v10 to v14

This commit is contained in:
Alexis de Lattre
2021-10-01 21:10:54 +02:00
parent 74ff1b5cb5
commit b2eda2a23b
9 changed files with 23 additions and 24 deletions

View File

@@ -1,4 +1,2 @@
# -*- coding: utf-8 -*- from . import models
from . import sale
from . import wizard from . import wizard

View File

@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # Copyright 2017-2021 Akretion France (http://www.akretion.com/)
# © 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) # @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {
'name': 'Sale Confirm Wizard', 'name': 'Sale Confirm Wizard',
'version': '10.0.1.0.0', 'version': '14.0.1.0.0',
'category': 'Sales', 'category': 'Sales',
'license': 'AGPL-3', 'license': 'AGPL-3',
'summary': 'Open a wizard when you confirm a sale order to update important info', 'summary': 'Open a wizard when you confirm a sale order to update important info',
@@ -31,7 +31,8 @@ This module has been written by Alexis de Lattre from Akretion
'depends': ['sale'], 'depends': ['sale'],
'data': [ 'data': [
'wizard/sale_confirm_view.xml', 'wizard/sale_confirm_view.xml',
'sale_view.xml', 'views/sale_order.xml',
'security/ir.model.access.csv',
], ],
'installable': True, 'installable': True,
} }

View File

@@ -0,0 +1 @@
from . import sale_order

View File

@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*- # Copyright 2020-2021 Akretion France (http://www.akretion.com/)
# Copyright 2020 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com> # @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
@@ -13,6 +12,6 @@ class SaleOrder(models.Model):
"""This method is designed to be inherited. """This method is designed to be inherited.
For example, inherit it if you don't want to start the wizard in For example, inherit it if you don't want to start the wizard in
some scenarios""" some scenarios"""
action = self.env.ref( action = self.sudo().env.ref(
'sale_confirm_wizard.sale_confirm_action').read()[0] 'sale_confirm_wizard.sale_confirm_action').read()[0]
return action return action

View File

@@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sale_confirm_wizard,Full access on sale.confirm wizard,model_sale_confirm,sales_team.group_sale_salesman,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sale_confirm_wizard Full access on sale.confirm wizard model_sale_confirm sales_team.group_sale_salesman 1 1 1 1

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
© 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) Copyright 2017-2021 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
@@ -11,10 +12,10 @@
<field name="model">sale.order</field> <field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/> <field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<button name="action_confirm" type="object" states="draft" position="attributes"> <button id="action_confirm" position="attributes">
<attribute name="name">sale_confirm_wizard_button</attribute> <attribute name="name">sale_confirm_wizard_button</attribute>
</button> </button>
<button name="action_confirm" type="object" states="sent" position="attributes"> <button name="action_confirm" attrs="{'invisible': [('state', 'not in', ['draft'])]}" position="attributes">
<attribute name="name">sale_confirm_wizard_button</attribute> <attribute name="name">sale_confirm_wizard_button</attribute>
</button> </button>
</field> </field>

View File

@@ -1,3 +1 @@
# -*- coding: utf-8 -*-
from . import sale_confirm from . import sale_confirm

View File

@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # Copyright 2017-2021 Akretion France (http://www.akretion.com/)
# © 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) # @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields, api, _ from odoo import models, fields, api, _
from odoo.exceptions import UserError from odoo.exceptions import UserError
from odoo.addons.base.res.res_partner import WARNING_MESSAGE from odoo.addons.base.models.res_partner import WARNING_MESSAGE
class SaleConfirm(models.TransientModel): class SaleConfirm(models.TransientModel):
@@ -19,12 +19,12 @@ class SaleConfirm(models.TransientModel):
partner_invoice_id = fields.Many2one( partner_invoice_id = fields.Many2one(
'res.partner', 'Invoice Address', required=True) 'res.partner', 'Invoice Address', required=True)
show_partner_invoice_id = fields.Many2one( show_partner_invoice_id = fields.Many2one(
related='partner_invoice_id', readonly=True, related='partner_invoice_id',
string='Detailed Invoice Address') string='Detailed Invoice Address')
partner_shipping_id = fields.Many2one( partner_shipping_id = fields.Many2one(
'res.partner', 'Delivery Address', required=True) 'res.partner', 'Delivery Address', required=True)
show_partner_shipping_id = fields.Many2one( show_partner_shipping_id = fields.Many2one(
related='partner_shipping_id', readonly=True, related='partner_shipping_id',
string='Detailed Delivery Address') string='Detailed Delivery Address')
sale_warn = fields.Selection( sale_warn = fields.Selection(
WARNING_MESSAGE, 'Sale Warning Type', readonly=True) WARNING_MESSAGE, 'Sale Warning Type', readonly=True)
@@ -46,7 +46,7 @@ class SaleConfirm(models.TransientModel):
@api.model @api.model
def default_get(self, fields): def default_get(self, fields):
res = super(SaleConfirm, self).default_get(fields) res = super().default_get(fields)
assert self._context.get('active_model') == 'sale.order',\ assert self._context.get('active_model') == 'sale.order',\
'active_model should be sale.order' 'active_model should be sale.order'
order = self.env['sale.order'].browse(self._context.get('active_id')) order = self.env['sale.order'].browse(self._context.get('active_id'))
@@ -54,7 +54,6 @@ class SaleConfirm(models.TransientModel):
res.update(default) res.update(default)
return res return res
@api.multi
def _prepare_update_so(self): def _prepare_update_so(self):
self.ensure_one() self.ensure_one()
return { return {
@@ -64,7 +63,6 @@ class SaleConfirm(models.TransientModel):
'partner_shipping_id': self.partner_shipping_id.id, 'partner_shipping_id': self.partner_shipping_id.id,
} }
@api.multi
def confirm(self): def confirm(self):
self.ensure_one() self.ensure_one()
partner = self.sale_id.partner_id.commercial_partner_id partner = self.sale_id.partner_id.commercial_partner_id

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
© 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) Copyright 2017-2021 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->