[MIG] sale_confirm_wizard from v10 to v14
This commit is contained in:
@@ -1,4 +1,2 @@
|
|||||||
# -*- coding: utf-8 -*-
|
from . import models
|
||||||
|
|
||||||
from . import sale
|
|
||||||
from . import wizard
|
from . import wizard
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
|
|||||||
1
sale_confirm_wizard/models/__init__.py
Normal file
1
sale_confirm_wizard/models/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from . import sale_order
|
||||||
@@ -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
|
||||||
2
sale_confirm_wizard/security/ir.model.access.csv
Normal file
2
sale_confirm_wizard/security/ir.model.access.csv
Normal 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,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>
|
||||||
@@ -1,3 +1 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
from . import sale_confirm
|
from . import sale_confirm
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user