Browse Source
[ADD] Commit of the modules used by C2C to move in our new public branch
[ADD] Commit of the modules used by C2C to move in our new public branch
(lp:c2c-addons/6.1 rev 2)pull/7/head
Joël Grand-Guillaume
13 years ago
6 changed files with 340 additions and 0 deletions
-
31base_address_category/__init__.py
-
53base_address_category/__openerp__.py
-
95base_address_category/base_address.py
-
154base_address_category/base_address_view.xml
-
3base_address_category/security/ir.model.access.csv
-
4base_address_category/security/security.xml
@ -0,0 +1,31 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Copyright (c) 2010 Camptocamp SA (http://www.camptocamp.com) |
||||
|
# All Right Reserved |
||||
|
# |
||||
|
# Author : Nicolas Bessi (Camptocamp), Joel Grand-Guillaume |
||||
|
# |
||||
|
# WARNING: This program as such is intended to be used by professional |
||||
|
# programmers who take the whole responsability of assessing all potential |
||||
|
# consequences resulting from its eventual inadequacies and bugs |
||||
|
# End users who are looking for a ready-to-use solution with commercial |
||||
|
# garantees and support are strongly adviced to contract a Free Software |
||||
|
# Service Company |
||||
|
# |
||||
|
# This program is Free Software; you can redistribute it and/or |
||||
|
# modify it under the terms of the GNU General Public License |
||||
|
# as published by the Free Software Foundation; either version 2 |
||||
|
# of the License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License |
||||
|
# along with this program; if not, write to the Free Software |
||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import base_address |
@ -0,0 +1,53 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Copyright (c) 2010 Camptocamp SA (http://www.camptocamp.com) |
||||
|
# All Right Reserved |
||||
|
# |
||||
|
# Author : Nicolas Bessi (Camptocamp), Joel Grand-Guillaume |
||||
|
# |
||||
|
# WARNING: This program as such is intended to be used by professional |
||||
|
# programmers who take the whole responsability of assessing all potential |
||||
|
# consequences resulting from its eventual inadequacies and bugs |
||||
|
# End users who are looking for a ready-to-use solution with commercial |
||||
|
# garantees and support are strongly adviced to contract a Free Software |
||||
|
# Service Company |
||||
|
# |
||||
|
# This program is Free Software; you can redistribute it and/or |
||||
|
# modify it under the terms of the GNU General Public License |
||||
|
# as published by the Free Software Foundation; either version 2 |
||||
|
# of the License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License |
||||
|
# along with this program; if not, write to the Free Software |
||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
||||
|
# |
||||
|
############################################################################## |
||||
|
|
||||
|
{ |
||||
|
"name" : "Partner Adress Category", |
||||
|
"description" : """Add categories on Address like there is on Partner. This is interesting for managing mailling list based on address |
||||
|
for example. |
||||
|
""", |
||||
|
"version" : "1.2", |
||||
|
"author" : "Camptocamp", |
||||
|
"category" : "Generic Modules/Base", |
||||
|
"website": "http://www.camptocamp.com", |
||||
|
"depends" : [ |
||||
|
"base", |
||||
|
], |
||||
|
"init_xml" : [ |
||||
|
"security/security.xml" |
||||
|
], |
||||
|
"update_xml" : [ |
||||
|
"base_address_view.xml", |
||||
|
'security/ir.model.access.csv', |
||||
|
], |
||||
|
"active": False, |
||||
|
"installable": True |
||||
|
} |
@ -0,0 +1,95 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Copyright (c) 2010 Camptocamp SA (http://www.camptocamp.com) |
||||
|
# All Right Reserved |
||||
|
# |
||||
|
# Author : Nicolas Bessi (Camptocamp), Joel Grand-Guillaume |
||||
|
# |
||||
|
# WARNING: This program as such is intended to be used by professional |
||||
|
# programmers who take the whole responsability of assessing all potential |
||||
|
# consequences resulting from its eventual inadequacies and bugs |
||||
|
# End users who are looking for a ready-to-use solution with commercial |
||||
|
# garantees and support are strongly adviced to contract a Free Software |
||||
|
# Service Company |
||||
|
# |
||||
|
# This program is Free Software; you can redistribute it and/or |
||||
|
# modify it under the terms of the GNU General Public License |
||||
|
# as published by the Free Software Foundation; either version 2 |
||||
|
# of the License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License |
||||
|
# along with this program; if not, write to the Free Software |
||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
||||
|
# |
||||
|
############################################################################## |
||||
|
|
||||
|
|
||||
|
from osv import osv, fields |
||||
|
import time |
||||
|
from mx import DateTime |
||||
|
import netsvc |
||||
|
import string |
||||
|
|
||||
|
class ResPartnerAdressCategory(osv.osv): |
||||
|
def name_get(self, cr, uid, ids, context={}): |
||||
|
if not len(ids): |
||||
|
return [] |
||||
|
reads = self.read(cr, uid, ids, ['name','parent_id'], context) |
||||
|
res = [] |
||||
|
for record in reads: |
||||
|
name = record['name'] |
||||
|
if record['parent_id']: |
||||
|
name = record['parent_id'][1]+' / '+name |
||||
|
res.append((record['id'], name)) |
||||
|
return res |
||||
|
|
||||
|
def _name_get_fnc(self, cr, uid, ids, prop, unknow_none, unknow_dict): |
||||
|
res = self.name_get(cr, uid, ids) |
||||
|
return dict(res) |
||||
|
def _check_recursion(self, cr, uid, ids): |
||||
|
level = 100 |
||||
|
while len(ids): |
||||
|
cr.execute('select distinct parent_id from res_partner_address_category\ |
||||
|
where id in ('+','.join(map(unicode,ids))+')') |
||||
|
ids = filter(None, map(lambda x:x[0], cr.fetchall())) |
||||
|
if not level: |
||||
|
return False |
||||
|
level -= 1 |
||||
|
return True |
||||
|
|
||||
|
|
||||
|
|
||||
|
_description='Partner address Categories' |
||||
|
_name = 'res.partner.address.category' |
||||
|
_columns = { |
||||
|
'name': fields.char('Category Name', required=True, size=64), |
||||
|
'parent_id': fields.many2one('res.partner.address.category', 'Parent Category', select=True), |
||||
|
'complete_name': fields.function(_name_get_fnc, method=True, type="char", string='Name'), |
||||
|
'child_ids': fields.one2many('res.partner.address.category', 'parent_id', 'Childs Category'), |
||||
|
'active' : fields.boolean('Active'), |
||||
|
} |
||||
|
_constraints = [ |
||||
|
(_check_recursion, 'Error ! You can not create recursive categories.', ['parent_id']) |
||||
|
] |
||||
|
_defaults = { |
||||
|
'active' : lambda *a: 1, |
||||
|
} |
||||
|
_order = 'parent_id,name' |
||||
|
|
||||
|
ResPartnerAdressCategory() |
||||
|
|
||||
|
|
||||
|
class ResPartnerAddress(osv.osv): |
||||
|
_inherit = "res.partner.address" |
||||
|
|
||||
|
_columns = { |
||||
|
'category_id': fields.many2many('res.partner.address.category', 'res_partner_address_category_rel', 'adress_id', 'category_id', 'Adress categories'), |
||||
|
} |
||||
|
|
||||
|
ResPartnerAddress() |
@ -0,0 +1,154 @@ |
|||||
|
<openerp> |
||||
|
<data> |
||||
|
#--------------------------------------------------------------------------------------------------------- |
||||
|
# Search Address |
||||
|
#--------------------------------------------------------------------------------------------------------- |
||||
|
<record id="view_res_partner_address_filter" model="ir.ui.view"> |
||||
|
<field name="name">res.partner.address.select</field> |
||||
|
<field name="model">res.partner.address</field> |
||||
|
<field name="inherit_id" ref="base.view_res_partner_address_filter" /> |
||||
|
<field name="type">search</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="country_id" position="after" > |
||||
|
<field name="category_id" /> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
#--------------------------------------------------------------------------------------------------------- |
||||
|
# Partner form->contact and view of address |
||||
|
#--------------------------------------------------------------------------------------------------------- |
||||
|
|
||||
|
<record model="ir.ui.view" id="view_partner_address_categ_form1_inherit"> |
||||
|
<field name="name">res.partner.address.form1.c2c_partner_adress</field> |
||||
|
<field name="model">res.partner.address</field> |
||||
|
<field name="type">form</field> |
||||
|
<field name="inherit_id" ref="base.view_partner_address_form1" /> |
||||
|
<field name="priority" eval="17" /> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="/form/group[3]" position="after"> |
||||
|
<group colspan="4"> |
||||
|
<separator string="Address Categories" colspan="4"/> |
||||
|
<field name="category_id" nolabel="1"/> |
||||
|
</group> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
<!-- |
||||
|
========================================= |
||||
|
the short form used in the partner form |
||||
|
========================================= |
||||
|
--> |
||||
|
|
||||
|
<record model="ir.ui.view" id="view_partner_address_form2_inerit_categ"> |
||||
|
<field name="name">res.partner.address.form2_c2c_partner_address</field> |
||||
|
<field name="model">res.partner.address</field> |
||||
|
<field name="type">form</field> |
||||
|
<field name="inherit_id" ref="base.view_partner_address_form2" /> |
||||
|
<field name="priority" eval="17" /> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="/form/field[@name='email']" position="after"> |
||||
|
<newline/> |
||||
|
<separator string="Address Categories" colspan="4"/> |
||||
|
<field name="category_id" nolabel="1"/> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
<!-- |
||||
|
========================================= |
||||
|
the short form used in the res_partner stdandard form |
||||
|
========================================= |
||||
|
--> |
||||
|
<record model="ir.ui.view" id="view_partner_form_inherite_categ_infos"> |
||||
|
<field name="name">res.partner.form_partner</field> |
||||
|
<field name="model">res.partner</field> |
||||
|
<field name="type">form</field> |
||||
|
<field name="inherit_id" ref="base.view_partner_form" /> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="/form/notebook/page[@string='General']/field[@name='address']/form[@string='Partner Contacts']/group[3]" position="after"> |
||||
|
<group colspan="4" > |
||||
|
<separator string="Address Categories" colspan="4"/> |
||||
|
<field name="category_id" nolabel="1"/> |
||||
|
</group> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<!-- |
||||
|
====================== |
||||
|
Adresses categories |
||||
|
====================== |
||||
|
--> |
||||
|
<record model="ir.ui.view" id="view_partner_address_category_form"> |
||||
|
<field name="name">res.partner.address.category.form</field> |
||||
|
<field name="model">res.partner.address.category</field> |
||||
|
<field name="type">form</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<form string="Partner categories"> |
||||
|
<field name="name" select="1"/> |
||||
|
<field name="active" select="1" /> |
||||
|
<field name="parent_id"/> |
||||
|
</form> |
||||
|
</field> |
||||
|
</record> |
||||
|
<record model="ir.ui.view" id="view_partner_address_category_list"> |
||||
|
<field name="name">res.partner.address.category.list</field> |
||||
|
<field name="model">res.partner.address.category</field> |
||||
|
<field name="type">tree</field> |
||||
|
<field name="priority" eval="6"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<tree string="Partner categories"> |
||||
|
<field name="complete_name"/> |
||||
|
</tree> |
||||
|
</field> |
||||
|
</record> |
||||
|
<record model="ir.ui.view" id="view_partner_address_category_tree"> |
||||
|
<field name="name">res.partner.address.category.tree</field> |
||||
|
<field name="model">res.partner.address.category</field> |
||||
|
<field name="type">tree</field> |
||||
|
<field name="field_parent">child_ids</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<tree string="Partner Categories"> |
||||
|
<field name="name"/> |
||||
|
</tree> |
||||
|
</field> |
||||
|
</record> |
||||
|
<record model="ir.actions.act_window" id="action_partner_address_category"> |
||||
|
<field name="name">Address categories</field> |
||||
|
<field name="type">ir.actions.act_window</field> |
||||
|
<field name="res_model">res.partner.address.category</field> |
||||
|
<field name="view_type">tree</field> |
||||
|
<field name="view_id" ref="view_partner_address_category_tree"/> |
||||
|
<field name="domain">[('parent_id','=',False)]</field> |
||||
|
</record> |
||||
|
<menuitem parent="base.menu_address_book" action="action_partner_address_category" id="menu_partner_address_category"/> |
||||
|
|
||||
|
<record model="ir.actions.act_window" id="action_partner_by_category"> |
||||
|
<field name="res_model">res.partner.address</field> |
||||
|
<field name="view_type">form</field> |
||||
|
<field name="view_mode">tree,form</field> |
||||
|
<field name="domain">[('category_id','child_of', [active_id])]</field> |
||||
|
</record> |
||||
|
<record model="ir.values" id="ir_action_partner_by_category"> |
||||
|
<field name="key2" eval="'tree_but_open'"/> |
||||
|
<field name="model" eval="'res.partner.address.category'"/> |
||||
|
<field name="name">Open partners</field> |
||||
|
<field name="value" eval="'ir.actions.act_window,%d'%action_partner_by_category"/> |
||||
|
<field name="object" eval="True"/> |
||||
|
</record> |
||||
|
|
||||
|
<record model="ir.actions.act_window" id="action_partner_address_category_form"> |
||||
|
<field name="name">Address categories</field> |
||||
|
<field name="type">ir.actions.act_window</field> |
||||
|
<field name="res_model">res.partner.address.category</field> |
||||
|
<field name="view_type">form</field> |
||||
|
</record> |
||||
|
<menuitem parent="base.menu_config_address_book" action="action_partner_address_category_form" id="menu_partner_address_category_form"/> |
||||
|
|
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,3 @@ |
|||||
|
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" |
||||
|
"access_res_partner_address_category_group_user","res.partner.address.category","model_res_partner_address_category",base.group_user,1,0,0,0 |
||||
|
"access_res_partner_address_category_partner_manager","res.partner.address.category","model_res_partner_address_category","base.group_partner_manager",1,1,1,1 |
@ -0,0 +1,4 @@ |
|||||
|
<openerp> |
||||
|
<data> |
||||
|
</data> |
||||
|
</openerp> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue