Skip to content

Commit

Permalink
[IMP] partner_industry_secondary: black, isort, prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
skeller1 authored and victor-champonnois committed Feb 6, 2023
1 parent 9349e28 commit deb4625
Show file tree
Hide file tree
Showing 10 changed files with 176 additions and 125 deletions.
7 changes: 2 additions & 5 deletions partner_industry_secondary/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,12 @@
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"installable": True,
"depends": [
"base_setup",
"contacts",
],
"depends": ["base_setup", "contacts",],
"data": [
"security/ir.model.access.csv",
"security/partner_industry_security.xml",
"views/res_partner_industry_view.xml",
"views/res_partner_view.xml",
"views/res_config_settings.xml",
]
],
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@

@openupgrade.migrate(use_env=True)
def migrate(env, version):
env['res.partner.industry']._parent_store_compute()
env["res.partner.industry"]._parent_store_compute()
12 changes: 6 additions & 6 deletions partner_industry_secondary/models/res_config_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@


class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
_inherit = "res.config.settings"

group_use_partner_industry_for_person = fields.Boolean(
'Use industry for individuals',
help="Set if you want to be able to use industries for "
"individuals also.",
implied_group='partner_industry_secondary.'
'group_use_partner_industry_for_person')
"Use industry for individuals",
help="Set if you want to be able to use industries for " "individuals also.",
implied_group="partner_industry_secondary."
"group_use_partner_industry_for_person",
)
21 changes: 13 additions & 8 deletions partner_industry_secondary/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,27 @@
# Copyright 2018 Eficent Business and IT Consulting Services, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, exceptions, fields, models, _
from odoo import _, api, exceptions, fields, models


class ResPartner(models.Model):
_inherit = 'res.partner'
_inherit = "res.partner"

industry_id = fields.Many2one(string='Main Industry')
industry_id = fields.Many2one(string="Main Industry")

secondary_industry_ids = fields.Many2many(
comodel_name='res.partner.industry', string="Secondary Industries",
domain="[('id', '!=', industry_id)]")
comodel_name="res.partner.industry",
string="Secondary Industries",
domain="[('id', '!=', industry_id)]",
)

@api.constrains('industry_id', 'secondary_industry_ids')
@api.constrains("industry_id", "secondary_industry_ids")
def _check_industries(self):
for partner in self:
if partner.industry_id in partner.secondary_industry_ids:
raise exceptions.ValidationError(
_('The main industry must be different '
'from the secondary industries.'))
_(
"The main industry must be different "
"from the secondary industries."
)
)
20 changes: 11 additions & 9 deletions partner_industry_secondary/models/res_partner_industry.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,22 @@
# Copyright 2019 Tecnativa - Cristina Martin R.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, exceptions, fields, models, _
from odoo import _, api, exceptions, fields, models


class ResPartnerIndustry(models.Model):
_inherit = 'res.partner.industry'
_inherit = "res.partner.industry"
_order = "parent_path"
_parent_order = "name"
_parent_store = True

name = fields.Char(required=True)
parent_id = fields.Many2one(comodel_name='res.partner.industry',
ondelete='restrict')
child_ids = fields.One2many(comodel_name='res.partner.industry',
inverse_name='parent_id',
string="Children")
parent_id = fields.Many2one(
comodel_name="res.partner.industry", ondelete="restrict"
)
child_ids = fields.One2many(
comodel_name="res.partner.industry", inverse_name="parent_id", string="Children"
)
parent_path = fields.Char(index=True)

@api.multi
Expand All @@ -34,8 +35,9 @@ def get_names(cat):

return [(cat.id, " / ".join(get_names(cat))) for cat in self]

@api.constrains('parent_id')
@api.constrains("parent_id")
def _check_parent_id(self):
if not self._check_recursion():
raise exceptions.ValidationError(
_('Error! You cannot create recursive industries.'))
_("Error! You cannot create recursive industries.")
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="group_use_partner_industry_for_person" model="res.groups">
<field name="name">Use industry for individuals</field>
<field name="category_id" ref="base.module_category_hidden"/>
<field name="category_id" ref="base.module_category_hidden" />
</record>
</odoo>
30 changes: 14 additions & 16 deletions partner_industry_secondary/tests/test_res_partner_industry.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,35 @@
# Copyright 2016 Tecnativa S.L. - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo.tests import common
from odoo.exceptions import ValidationError
from odoo.tests import common


class TestResPartnerIndustry(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(TestResPartnerIndustry, cls).setUpClass()
cls.industry_model = cls.env['res.partner.industry']
cls.industry_main = cls.industry_model.create({
'name': 'Test',
})
cls.industry_child = cls.industry_model.create({
'name': 'Test child',
'parent_id': cls.industry_main.id,
})
cls.industry_model = cls.env["res.partner.industry"]
cls.industry_main = cls.industry_model.create({"name": "Test",})
cls.industry_child = cls.industry_model.create(
{"name": "Test child", "parent_id": cls.industry_main.id,}
)

def test_check_industries(self):
with self.assertRaises(ValidationError):
self.env['res.partner'].create({
'name': 'Test',
'industry_id': self.industry_main.id,
'secondary_industry_ids': [(4, self.industry_main.id)],
})
self.env["res.partner"].create(
{
"name": "Test",
"industry_id": self.industry_main.id,
"secondary_industry_ids": [(4, self.industry_main.id)],
}
)

def test_check_recursion(self):
with self.assertRaises(ValidationError):
self.industry_main.parent_id = self.industry_child.id

def test_name(self):
self.assertEqual(
self.industry_child.name_get()[0][1],
"Test / Test child",
self.industry_child.name_get()[0][1], "Test / Test child",
)
60 changes: 35 additions & 25 deletions partner_industry_secondary/views/res_config_settings.xml
Original file line number Diff line number Diff line change
@@ -1,35 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2018 Eficent Business and IT Consulting Services, S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<odoo>

<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='multi_company']" position="after">
<h2>Partner Industries</h2>
<div class="row mt16 o_settings_container" name="partner_industries">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="group_use_partner_industry_for_person"/>
</div>
<div class="o_setting_right_pane">
<label string="Industry for individual" for="group_use_partner_industry_for_person"/>
<div class="text-muted">
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//div[@name='multi_company']" position="after">
<h2>Partner Industries</h2>
<div class="row mt16 o_settings_container" name="partner_industries">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="group_use_partner_industry_for_person" />
</div>
<div class="o_setting_right_pane">
<label
string="Industry for individual"
for="group_use_partner_industry_for_person"
/>
<div class="text-muted">
Enable industries for individuals
</div>
<div class="content-group">
<div class="mt16" attrs="{'invisible': [('group_use_partner_industry_for_person', '=', False)]}">
<button name="%(base.res_partner_industry_action)d" icon="fa-arrow-right" type="action" string="Industries" class="btn-link"/>
</div>
<div class="content-group">
<div
class="mt16"
attrs="{'invisible': [('group_use_partner_industry_for_person', '=', False)]}"
>
<button
name="%(base.res_partner_industry_action)d"
icon="fa-arrow-right"
type="action"
string="Industries"
class="btn-link"
/>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>

</div>
</xpath>
</field>
</record>
</odoo>
13 changes: 5 additions & 8 deletions partner_industry_secondary/views/res_partner_industry_view.xml
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2015 Antiun Ingenieria S.L. - Javier Iniesta
Copyright 2018 Eficent Business and IT Consulting Services, S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<odoo>

<record id="res_partner_industry_view_form" model="ir.ui.view">
<field name="name">Industry</field>
<field name="model">res.partner.industry</field>
<field name="inherit_id" ref="base.res_partner_industry_view_form"/>
<field name="inherit_id" ref="base.res_partner_industry_view_form" />
<field name="arch" type="xml">
<field name="full_name" position="after">
<field name="parent_id"/>
<field name="parent_id" />
</field>
</field>
</record>

<record id="res_partner_industry_view_tree" model="ir.ui.view">
<field name="name">Industry</field>
<field name="model">res.partner.industry</field>
<field name="inherit_id" ref="base.res_partner_industry_view_tree"/>
<field name="inherit_id" ref="base.res_partner_industry_view_tree" />
<field name="arch" type="xml">
<field name="name" position="after">
<field name="parent_id"/>
<field name="parent_id" />
</field>
</field>
</record>

</odoo>
Loading

0 comments on commit deb4625

Please sign in to comment.