summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYannick Tivisse <yti@odoo.com>2017-05-19 10:54:10 +0200
committerYannick Tivisse <yti@odoo.com>2017-05-22 11:30:11 +0200
commit9a572f8eec67e78d76798c43b014f21e8a9dfdef (patch)
tree71f1df4cabd2f6eff9db4e993319d1bc85aa08c8
parented603399f9e03c98c488d53ff2ea50399e651aa2 (diff)
[IMP] base: Add a new model 'Sector of Activity' used on partners
purpose ======= We need to store and produce reports about customer activity sectors to improve references mechanism. Specification ============= - add a new model res.partner.industry "Sector of Activity" - fields: - name (translatable) - full_name (translatable) - active - add minimalist form and list views (à la Contact Tags) - menu: Sales/Settings/Contacts/Contact Industries (Technical Settings only) - ACL: R for group_user, CRUD for group_system - add a default XML data file to preload res.partner.industry with the ISIC 2008 aka NACE rev.2 level 1: https://docs.google.com/a/odoo.com/spreadsheets/d/1IrGbHIaaDDkBAS2uGABeNRPndtYbyVBVoYYpQNXnhnY/edit?usp=sharing - Note: we leave it as an option for end-users to import their own industries, because there are many competing standards: ISIC, NACE, NAICS, OKVED, etc. - Each standard also has different hierarchical levels, and we only use the top level one by default. - add a m2o industry_id ("Sector of Activity") on res.partner towards res.partner.industry - add industry_id in partner form view, in Sales & Purchase > Misc, only visible when contact type is Company - No quick create for this field
-rw-r--r--addons/sales_team/views/crm_team_views.xml2
-rw-r--r--odoo/addons/base/res/res_partner.py11
-rw-r--r--odoo/addons/base/res/res_partner_data.xml106
-rw-r--r--odoo/addons/base/res/res_partner_view.xml43
-rw-r--r--odoo/addons/base/security/ir.model.access.csv2
5 files changed, 163 insertions, 1 deletions
diff --git a/addons/sales_team/views/crm_team_views.xml b/addons/sales_team/views/crm_team_views.xml
index a2d25ca0c38..b4ad3372495 100644
--- a/addons/sales_team/views/crm_team_views.xml
+++ b/addons/sales_team/views/crm_team_views.xml
@@ -17,7 +17,9 @@
<menuitem id="menu_config_address_book" parent="menu_sale_config" name="Contacts" sequence="4" groups="base.group_system"/>
<menuitem action="base.action_partner_category_form" id="menu_partner_category_form" name="Contact Tags" sequence="1" parent="menu_config_address_book" groups="base.group_no_one"/>
<menuitem action="base.action_partner_title_contact" id="menu_partner_title_contact" name="Contact Titles" parent="menu_config_address_book" sequence="3" groups="base.group_no_one"/>
+ <menuitem id="res_partner_industry_menu" name="Sectors of Activity" action="base.res_partner_industry_action" parent="sales_team.menu_config_address_book" sequence="4" groups="base.group_no_one"/>
<menuitem id="menu_localisation" name="Localization" parent="menu_config_address_book" sequence="5" groups="base.group_no_one"/>
+
<menuitem action="base.action_country" id="menu_country_partner" parent="menu_localisation" sequence="1" groups="base.group_no_one"/>
<menuitem action="base.action_country_group" id="menu_country_group" name="Country Group" parent="menu_localisation" sequence="3" groups="base.group_no_one"/>
<menuitem action="base.action_country_state" id="menu_country_state_partner" parent="menu_localisation" sequence="2" groups="base.group_no_one"/>
diff --git a/odoo/addons/base/res/res_partner.py b/odoo/addons/base/res/res_partner.py
index fe758d36de1..3dddba41161 100644
--- a/odoo/addons/base/res/res_partner.py
+++ b/odoo/addons/base/res/res_partner.py
@@ -203,6 +203,7 @@ class Partner(models.Model):
mobile = fields.Char()
is_company = fields.Boolean(string='Is a Company', default=False,
help="Check if the contact is a company, otherwise it is a person")
+ industry_id = fields.Many2one('res.partner.industry', 'Sector of Activity')
# company_type is only an interface field, do not use it in business logic
company_type = fields.Selection(string='Company Type',
selection=[('person', 'Individual'), ('company', 'Company')],
@@ -809,3 +810,13 @@ class Partner(models.Model):
'country_id.address_format', 'country_id.code', 'country_id.name',
'company_name', 'state_id.code', 'state_id.name',
]
+
+
+class ResPartnerIndustry(models.Model):
+ _description = 'Sector of Activity'
+ _name = "res.partner.industry"
+ _order = "name"
+
+ name = fields.Char('Name', translate=True)
+ full_name = fields.Char('Full Name', translate=True)
+ active = fields.Boolean('Active', default=True)
diff --git a/odoo/addons/base/res/res_partner_data.xml b/odoo/addons/base/res/res_partner_data.xml
index 2d2872230b9..6d8e832924d 100644
--- a/odoo/addons/base/res/res_partner_data.xml
+++ b/odoo/addons/base/res/res_partner_data.xml
@@ -34,5 +34,111 @@
<field name="name">Partner</field>
<field name="object">res.partner</field>
</record>
+
+ <record id="res_partner_industry_A" model="res.partner.industry">
+ <field name="name">Agriculture</field>
+ <field name="full_name">A AGRICULTURE, FORESTRY AND FISHING</field>
+ </record>
+
+ <record id="res_partner_industry_B" model="res.partner.industry">
+ <field name="name">Mining</field>
+ <field name="full_name">B MINING AND QUARRYING</field>
+ </record>
+
+ <record id="res_partner_industry_C" model="res.partner.industry">
+ <field name="name">Manufacturing</field>
+ <field name="full_name">C MANUFACTURING</field>
+ </record>
+
+ <record id="res_partner_industry_D" model="res.partner.industry">
+ <field name="name">Energy supply</field>
+ <field name="full_name">D ELECTRICITY,GAS,STEAM AND AIR CONDITIONING SUPPLY</field>
+ </record>
+
+ <record id="res_partner_industry_E" model="res.partner.industry">
+ <field name="name">Water supply</field>
+ <field name="full_name">E WATER SUPPLY;SEWERAGE,WASTE MANAGEMENT AND REMEDIATION ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_F" model="res.partner.industry">
+ <field name="name">Construction</field>
+ <field name="full_name">F CONSTRUCTION</field>
+ </record>
+
+ <record id="res_partner_industry_G" model="res.partner.industry">
+ <field name="name">Wholesale/Retail</field>
+ <field name="full_name">G WHOLESALE AND RETAIL TRADE;REPAIR OF MOTOR VEHICLES AND MOTORCYCLES</field>
+ </record>
+
+ <record id="res_partner_industry_H" model="res.partner.industry">
+ <field name="name">Transportation</field>
+ <field name="full_name">H TRANSPORTATION AND STORAGE</field>
+ </record>
+
+ <record id="res_partner_industry_I" model="res.partner.industry">
+ <field name="name">Food</field>
+ <field name="full_name">I ACCOMMODATION AND FOOD SERVICE ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_J" model="res.partner.industry">
+ <field name="name">IT/Communication</field>
+ <field name="full_name">J INFORMATION AND COMMUNICATION</field>
+ </record>
+
+ <record id="res_partner_industry_K" model="res.partner.industry">
+ <field name="name">Finance/Insurance</field>
+ <field name="full_name">K FINANCIAL AND INSURANCE ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_L" model="res.partner.industry">
+ <field name="name">Real Estrate</field>
+ <field name="full_name">L REAL ESTATE ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_M" model="res.partner.industry">
+ <field name="name">Scientific</field>
+ <field name="full_name">M PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_N" model="res.partner.industry">
+ <field name="name">Administrative</field>
+ <field name="full_name">N ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_O" model="res.partner.industry">
+ <field name="name">Public Administration</field>
+ <field name="full_name">O PUBLIC ADMINISTRATION AND DEFENCE;COMPULSORY SOCIAL SECURITY</field>
+ </record>
+
+ <record id="res_partner_industry_P" model="res.partner.industry">
+ <field name="name">Education</field>
+ <field name="full_name">P EDUCATION</field>
+ </record>
+
+ <record id="res_partner_industry_Q" model="res.partner.industry">
+ <field name="name">Health/Social</field>
+ <field name="full_name">Q HUMAN HEALTH AND SOCIAL WORK ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_R" model="res.partner.industry">
+ <field name="name">Entertainment</field>
+ <field name="full_name">R ARTS, ENTERTAINMENT AND RECREATION</field>
+ </record>
+
+ <record id="res_partner_industry_S" model="res.partner.industry">
+ <field name="name">Other Services</field>
+ <field name="full_name">S OTHER SERVICE ACTIVITIES</field>
+ </record>
+
+ <record id="res_partner_industry_T" model="res.partner.industry">
+ <field name="name">Households</field>
+ <field name="full_name">T ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS;UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE</field>
+ </record>
+
+ <record id="res_partner_industry_U" model="res.partner.industry">
+ <field name="name">Extraterritorial</field>
+ <field name="full_name">U ACTIVITIES OF EXTRA TERRITORIAL ORGANISATIONS AND BODIES</field>
+ </record>
+
</data>
</odoo>
diff --git a/odoo/addons/base/res/res_partner_view.xml b/odoo/addons/base/res/res_partner_view.xml
index 8102f1c55ea..5aaac327003 100644
--- a/odoo/addons/base/res/res_partner_view.xml
+++ b/odoo/addons/base/res/res_partner_view.xml
@@ -313,6 +313,7 @@
<group string="Misc">
<field name="ref"/>
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
+ <field name="industry_id" attrs="{'invisible': [('is_company', '=', False)]}" options="{'no_create': True}"/>
</group>
</group>
</page>
@@ -557,6 +558,46 @@
</field>
</record>
-
+ <!-- Sector of Activity -->
+ <record id="res_partner_industry_view_form" model="ir.ui.view">
+ <field name="name">Sector of Activity</field>
+ <field name="model">res.partner.industry</field>
+ <field name="arch" type="xml">
+ <form string="Sector of Activity">
+ <group col="4">
+ <field name="name"/>
+ <field name="full_name"/>
+ <field name="active"/>
+ </group>
+ </form>
+ </field>
+ </record>
+ <record id="res_partner_industry_view_tree" model="ir.ui.view">
+ <field name="name">Sector of Activity</field>
+ <field name="model">res.partner.industry</field>
+ <field eval="6" name="priority"/>
+ <field name="arch" type="xml">
+ <tree string="Sector of Activity">
+ <field name="name"/>
+ <field name="full_name"/>
+ <field name="active"/>
+ </tree>
+ </field>
+ </record>
+ <record id="res_partner_industry_action" model="ir.actions.act_window">
+ <field name="name">Sector of Activity</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">res.partner.industry</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to create a new sector of activity.
+ </p>
+ <p>
+ Manage sectors of activity to better classify partners for tracking and analysis purposes.
+ </p>
+ </field>
+ </record>
</data>
</odoo>
diff --git a/odoo/addons/base/security/ir.model.access.csv b/odoo/addons/base/security/ir.model.access.csv
index 284fc1549dd..173a91e393b 100644
--- a/odoo/addons/base/security/ir.model.access.csv
+++ b/odoo/addons/base/security/ir.model.access.csv
@@ -57,6 +57,8 @@
"access_res_partner_bank_group_partner_manager","res_partner_bank group_partner_manager","model_res_partner_bank","group_partner_manager",1,1,1,1
"access_res_partner_category_group_user","res_partner_category group_user","model_res_partner_category","group_user",1,0,0,0
"access_res_partner_category_group_partner_manager","res_partner_category group_partner_manager","model_res_partner_category","group_partner_manager",1,1,1,1
+"access_res_partner_industry_group_user","res_partner_industry group_user","model_res_partner_industry","group_user",1,0,0,0
+"access_res_partner_industry_group_system","res_partner_industry group_system","model_res_partner_industry","group_system",1,1,1,1
"access_res_partner_title_group_user","res_partner_title group_user","model_res_partner_title","group_partner_manager",1,1,1,1
"access_res_partner_title_group_partner_manager","res_partner_title group_partner_manager","model_res_partner_title",,1,0,0,0
"access_res_request_link_group_system","res_request_link group_system","model_res_request_link","group_system",1,1,1,1