[REF] crm: res_config refactored: located in crm/res_config, viewx in res_config_view, using a set_ method to manage two groups.
bzr revid: tde@openerp.com-20130328160704-ktp7btaswjiyyc6s
This commit is contained in:
@@ -26,6 +26,33 @@ class crm_configuration(osv.TransientModel):
|
||||
_name = 'sale.config.settings'
|
||||
_inherit = ['sale.config.settings', 'fetchmail.config.settings']
|
||||
|
||||
def set_group_multi_salesteams(self, cr, uid, ids, context=None):
|
||||
""" This method is automatically called by res_config as it begins
|
||||
with set. It is used to implement the 'one group or another'
|
||||
behavior. We have to perform some group manipulation by hand
|
||||
because in res_config.execute(), set_* methods are called
|
||||
after group_*; therefore writing on an hidden res_config file
|
||||
could not work.
|
||||
If group_multi_salesteams is checked: remove group_mono_salesteams
|
||||
from group_user, remove the users. Otherwise, just ass
|
||||
group_mono_salesteams in group_user.
|
||||
The inverse logic about group_multi_salesteams is managed by the
|
||||
normal behavior of 'group_multi_salesteams' field.
|
||||
"""
|
||||
def ref(xml_id):
|
||||
mod, xml = xml_id.split('.', 1)
|
||||
return self.pool['ir.model.data'].get_object(cr, uid, mod, xml, context)
|
||||
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
config_group = ref('base.group_mono_salesteams')
|
||||
base_group = ref('base.group_user')
|
||||
if obj.group_multi_salesteams:
|
||||
base_group.write({'implied_ids': [(3, config_group.id)]})
|
||||
config_group.write({'users': [(3, u.id) for u in base_group.users]})
|
||||
else:
|
||||
base_group.write({'implied_ids': [(4, config_group.id)]})
|
||||
return True
|
||||
|
||||
_columns = {
|
||||
'group_fund_raising': fields.boolean("Manage Fund Raising",
|
||||
implied_group='crm.group_fund_raising',
|
||||
@@ -34,10 +61,11 @@ class crm_configuration(osv.TransientModel):
|
||||
help="""Allows you to track your customers/suppliers claims and grievances.
|
||||
This installs the module crm_claim."""),
|
||||
'module_crm_helpdesk': fields.boolean("Manage Helpdesk and Support",
|
||||
help="""Allows you to communicate with Customer, process Customer query, and provide better help and support. This installs the module crm_helpdesk."""),
|
||||
'group_multi_salesteams': fields.boolean("Manage Sales Teams",
|
||||
help="""Allows you to communicate with Customer, process Customer query, and provide better help and support. This installs the module crm_helpdesk."""),
|
||||
'group_multi_salesteams': fields.boolean("Use Sales Teams",
|
||||
implied_group='base.group_multi_salesteams',
|
||||
help="""Allows you to use Sales Teams to manage your leads and opportunities."""),
|
||||
}
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<separator string="Sales Teams Configuration"/>
|
||||
<group>
|
||||
<label for="id" string="Use Sales Teams"/>
|
||||
<div>
|
||||
<field name="group_multi_salesteams" class="oe_inline"/>
|
||||
<label for="group_multi_salesteams"/>
|
||||
</div>
|
||||
</group>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -23,6 +23,14 @@
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.group_mono_salesteams" model="res.groups">
|
||||
<field name="name">Do Not Use Sales Teams</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
<record id="base.group_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_mono_salesteams'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.group_multi_salesteams" model="res.groups">
|
||||
<field name="name">Manage Sales Teams</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
|
||||
Reference in New Issue
Block a user