diff options
| author | Yannick Tivisse <yti@odoo.com> | 2017-05-19 10:54:10 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2017-05-22 11:30:11 +0200 |
| commit | 9a572f8eec67e78d76798c43b014f21e8a9dfdef (patch) | |
| tree | 71f1df4cabd2f6eff9db4e993319d1bc85aa08c8 | |
| parent | ed603399f9e03c98c488d53ff2ea50399e651aa2 (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.xml | 2 | ||||
| -rw-r--r-- | odoo/addons/base/res/res_partner.py | 11 | ||||
| -rw-r--r-- | odoo/addons/base/res/res_partner_data.xml | 106 | ||||
| -rw-r--r-- | odoo/addons/base/res/res_partner_view.xml | 43 | ||||
| -rw-r--r-- | odoo/addons/base/security/ir.model.access.csv | 2 |
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 |
