Add module partner_market

This commit is contained in:
Alexis de Lattre
2016-10-18 00:06:28 +02:00
parent b861521571
commit c2f4e2066a
5 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import partner

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Partner Market',
'version': '0.1',
'category': 'Partner',
'license': 'AGPL-3',
'summary': 'Adds market field on customers',
'description': """
Partner Market
==============
This module adds a many2one field *Market* on customers, so be able to have sale/invoicing stats per markets.
We cannot use *Tags* to categorize customers per market because this field is a many2many field, so we cannot make statistics on it.
This module has been written by Alexis de Lattre <alexis.delattre@akretion.com> from Akretion.
""",
'author': 'Akretion',
'website': 'http://www.akretion.com',
'depends': ['base'],
'data': [
'partner_view.xml',
'security/ir.model.access.csv',
],
'installable': True,
}

33
partner_market/partner.py Normal file
View File

@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields, api
class ResPartnerMarket(models.Model):
_name = 'res.partner.market'
_description = 'Market'
name = fields.Char(string='Name', required=True)
_sql_constraints = [(
'name_uniq',
'unique(name)',
'This market already exists!'
)]
class ResPartner(models.Model):
_inherit = 'res.partner'
market_id = fields.Many2one(
'res.partner.market', string='Market', ondelete='restrict', copy=False)
# Field only displayed on customers with parent_id = False
@api.model
def _commercial_fields(self):
res = super(ResPartner, self)._commercial_fields()
res.append('market_id')
return res

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
© 2016 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_partner_form" model="ir.ui.view">
<field name="name">partner_market.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="lang" position="after">
<field name="market_id" widget="selection"
attrs="{'invisible': ['|', ('customer', '=', False), ('parent_id', '!=', False)]}"/>
</field>
</field>
</record>
<record id="view_res_partner_filter" model="ir.ui.view">
<field name="name">partner_market.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<group name="group_by" position="inside">
<filter string="Market" name="market_groupby"
context="{'group_by': 'market_id'}"/>
</group>
</field>
</record>
<record id="res_partner_market_tree" model="ir.ui.view">
<field name="name">res.partner.market.tree</field>
<field name="model">res.partner.market</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
<record id="res_partner_market_action" model="ir.actions.act_window">
<field name="name">Market</field>
<field name="res_model">res.partner.market</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="res_partner_market_root" name="Market"
parent="base.menu_custom" sequence="100"/>
<menuitem id="res_partner_market_menu" action="res_partner_market_action"
parent="res_partner_market_root"/>
</odoo>

View File

@@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_res_partner_access_read,Read access on res.partner.market,model_res_partner_market,base.group_user,1,0,0,0
access_res_partner_access_full,Full access on res.partner.market,model_res_partner_market,base.group_partner_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_res_partner_access_read Read access on res.partner.market model_res_partner_market base.group_user 1 0 0 0
3 access_res_partner_access_full Full access on res.partner.market model_res_partner_market base.group_partner_manager 1 1 1 1