[IMP] base_global_discount: black, isort, prettier

This commit is contained in:
Ernesto Tejeda
2020-11-03 11:05:41 -05:00
committed by Kiril Vangelovski
parent b089bc0fc1
commit 8b8f45e496
7 changed files with 94 additions and 109 deletions

View File

@@ -2,22 +2,19 @@
# Copyright 2020 Xtendoo - Manuel Calero # Copyright 2020 Xtendoo - Manuel Calero
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{ {
'name': 'Base Global Discount', "name": "Base Global Discount",
'version': '12.0.1.0.0', "version": "12.0.1.0.0",
'category': 'Base', "category": "Base",
'author': 'Tecnativa,' "author": "Tecnativa," "Odoo Community Association (OCA)",
'Odoo Community Association (OCA)', "website": "https://github.com/OCA/server-backend",
'website': 'https://github.com/OCA/server-backend', "license": "AGPL-3",
'license': 'AGPL-3', "depends": ["product",],
'depends': [ "data": [
'product', "security/ir.model.access.csv",
"security/security.xml",
"views/global_discount_views.xml",
"views/res_partner_views.xml",
], ],
'data': [ "application": False,
'security/ir.model.access.csv', "installable": True,
'security/security.xml',
'views/global_discount_views.xml',
'views/res_partner_views.xml',
],
'application': False,
'installable': True,
} }

View File

@@ -1,46 +1,36 @@
# Copyright 2019 Tecnativa - David Vidal # Copyright 2019 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models from odoo import fields, models
from odoo.addons import decimal_precision as dp from odoo.addons import decimal_precision as dp
class GlobalDiscount(models.Model): class GlobalDiscount(models.Model):
_name = 'global.discount' _name = "global.discount"
_description = 'Global Discount' _description = "Global Discount"
_order = "sequence, id desc" _order = "sequence, id desc"
sequence = fields.Integer( sequence = fields.Integer(help="Gives the order to apply discounts",)
help='Gives the order to apply discounts', name = fields.Char(string="Discount Name", required=True,)
)
name = fields.Char(
string='Discount Name',
required=True,
)
discount = fields.Float( discount = fields.Float(
digits=dp.get_precision('Discount'), digits=dp.get_precision("Discount"), required=True, default=0.0,
required=True,
default=0.0,
) )
discount_scope = fields.Selection( discount_scope = fields.Selection(
selection=[ selection=[("sale", "Sales"), ("purchase", "Purchases"),],
('sale', 'Sales'), default="sale",
('purchase', 'Purchases'), required="True",
], string="Discount Scope",
default='sale',
required='True',
string='Discount Scope',
) )
company_id = fields.Many2one( company_id = fields.Many2one(
comodel_name='res.company', comodel_name="res.company",
string='Company', string="Company",
default=lambda self: self.env.user.company_id, default=lambda self: self.env.user.company_id,
) )
def name_get(self): def name_get(self):
result = [] result = []
for one in self: for one in self:
result.append( result.append((one.id, "{} ({:.2f}%)".format(one.name, one.discount)))
(one.id, '{} ({:.2f}%)'.format(one.name, one.discount)))
return result return result
def _get_global_discount_vals(self, base, **kwargs): def _get_global_discount_vals(self, base, **kwargs):
@@ -52,7 +42,7 @@ class GlobalDiscount(models.Model):
""" """
self.ensure_one() self.ensure_one()
return { return {
'global_discount': self, "global_discount": self,
'base': base, "base": base,
'base_discounted': base * (1 - (self.discount / 100)), "base_discounted": base * (1 - (self.discount / 100)),
} }

View File

@@ -4,19 +4,19 @@ from odoo import fields, models
class ResPartner(models.Model): class ResPartner(models.Model):
_inherit = 'res.partner' _inherit = "res.partner"
customer_global_discount_ids = fields.Many2many( customer_global_discount_ids = fields.Many2many(
comodel_name='global.discount', comodel_name="global.discount",
column1='partner_id', column1="partner_id",
column2='global_discount_id', column2="global_discount_id",
string='Sale Global Discounts', string="Sale Global Discounts",
domain=[('discount_scope', '=', 'sale')], domain=[("discount_scope", "=", "sale")],
) )
supplier_global_discount_ids = fields.Many2many( supplier_global_discount_ids = fields.Many2many(
comodel_name='global.discount', comodel_name="global.discount",
column1='partner_id', column1="partner_id",
column2='global_discount_id', column2="global_discount_id",
string='Purchase Global Discounts', string="Purchase Global Discounts",
domain=[('discount_scope', '=', 'purchase')], domain=[("discount_scope", "=", "purchase")],
) )

View File

@@ -2,15 +2,15 @@
<!-- Copyright 2019 Tecnativa - David Vidal <!-- Copyright 2019 Tecnativa - David Vidal
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record model="ir.rule" id="global_discount_comp_rule"> <record model="ir.rule" id="global_discount_comp_rule">
<field name="name">Global Discount multi-company</field> <field name="name">Global Discount multi-company</field>
<field name="model_id" ref="base_global_discount.model_global_discount" /> <field name="model_id" ref="base_global_discount.model_global_discount" />
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="perm_read" eval="1" /> <field name="perm_read" eval="1" />
<field name="perm_create" eval="1" /> <field name="perm_create" eval="1" />
<field name="perm_write" eval="1" /> <field name="perm_write" eval="1" />
<field name="perm_unlink" eval="1" /> <field name="perm_unlink" eval="1" />
</record> </record>
</odoo> </odoo>

View File

@@ -4,30 +4,26 @@ from odoo.tests import common
class TestGlobalDiscount(common.SavepointCase): class TestGlobalDiscount(common.SavepointCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
super().setUpClass() super().setUpClass()
cls.global_discount_obj = cls.env['global.discount'] cls.global_discount_obj = cls.env["global.discount"]
cls.global_discount_1 = cls.global_discount_obj.create({ cls.global_discount_1 = cls.global_discount_obj.create(
'name': 'Test Discount 1', {"name": "Test Discount 1", "discount_scope": "sale", "discount": 20,}
'discount_scope': 'sale', )
'discount': 20, cls.global_discount_2 = cls.global_discount_obj.create(
}) {"name": "Test Discount 2", "discount_scope": "sale", "discount": 30,}
cls.global_discount_2 = cls.global_discount_obj.create({ )
'name': 'Test Discount 2',
'discount_scope': 'sale',
'discount': 30,
})
def test_01_global_discounts(self): def test_01_global_discounts(self):
"""Chain two discounts of different types""" """Chain two discounts of different types"""
discount_vals = self.global_discount_1._get_global_discount_vals(100.0) discount_vals = self.global_discount_1._get_global_discount_vals(100.0)
self.assertAlmostEqual(discount_vals['base_discounted'], 80.0) self.assertAlmostEqual(discount_vals["base_discounted"], 80.0)
discount_vals = self.global_discount_2._get_global_discount_vals( discount_vals = self.global_discount_2._get_global_discount_vals(
discount_vals['base_discounted']) discount_vals["base_discounted"]
self.assertAlmostEqual(discount_vals['base_discounted'], 56.0) )
self.assertAlmostEqual(discount_vals["base_discounted"], 56.0)
def test_02_display_name(self): def test_02_display_name(self):
"""Test that the name is computed fine""" """Test that the name is computed fine"""
self.assertTrue('%)' in self.global_discount_1.display_name) self.assertTrue("%)" in self.global_discount_1.display_name)

View File

@@ -2,7 +2,6 @@
<!-- Copyright 2019 Tecnativa - David Vidal <!-- Copyright 2019 Tecnativa - David Vidal
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record id="global_discount_view_tree" model="ir.ui.view"> <record id="global_discount_view_tree" model="ir.ui.view">
<field name="model">global.discount</field> <field name="model">global.discount</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
@@ -15,7 +14,6 @@
</tree> </tree>
</field> </field>
</record> </record>
<record id="global_discount_view_form" model="ir.ui.view"> <record id="global_discount_view_form" model="ir.ui.view">
<field name="model">global.discount</field> <field name="model">global.discount</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
@@ -32,7 +30,6 @@
</form> </form>
</field> </field>
</record> </record>
<record id="action_global_discount_tree" model="ir.actions.act_window"> <record id="action_global_discount_tree" model="ir.actions.act_window">
<field name="name">Global Discounts</field> <field name="name">Global Discounts</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
@@ -40,10 +37,11 @@
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
</record> </record>
<menuitem
<menuitem id="menu_global_discount" id="menu_global_discount"
action="action_global_discount_tree" action="action_global_discount_tree"
name="Global Discounts" name="Global Discounts"
sequence="1" parent="base.menu_ir_property"/> sequence="1"
parent="base.menu_ir_property"
/>
</odoo> </odoo>

View File

@@ -2,20 +2,24 @@
<!-- Copyright 2019 Tecnativa - David Vidal <!-- Copyright 2019 Tecnativa - David Vidal
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record model="ir.ui.view" id="res_partner_form_view"> <record model="ir.ui.view" id="res_partner_form_view">
<field name="model">res.partner</field> <field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" /> <field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<group name="sale" position="inside"> <group name="sale" position="inside">
<field name="customer_global_discount_ids" widget="many2many_tags" <field
attrs="{'invisible': [('customer', '=', False), ('is_company', '=', False), ('parent_id', '!=', False)]}"/> name="customer_global_discount_ids"
widget="many2many_tags"
attrs="{'invisible': [('customer', '=', False), ('is_company', '=', False), ('parent_id', '!=', False)]}"
/>
</group> </group>
<group name="purchase" position="inside"> <group name="purchase" position="inside">
<field name="supplier_global_discount_ids" widget="many2many_tags" <field
attrs="{'invisible': [('supplier', '=', False), ('is_company', '=', False), ('parent_id', '!=', False)]}"/> name="supplier_global_discount_ids"
widget="many2many_tags"
attrs="{'invisible': [('supplier', '=', False), ('is_company', '=', False), ('parent_id', '!=', False)]}"
/>
</group> </group>
</field> </field>
</record> </record>
</odoo> </odoo>