diff --git a/addons/crm/crm.py b/addons/crm/crm.py index f746893c2d6..ef9cb89d5c2 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -88,13 +88,9 @@ class crm_case_stage(osv.osv): } -class crm_case_section(osv.osv): - """ Model for sales teams. """ - _name = "crm.case.section" +class crm_case_section(osv.Model): _inherit = 'crm.case.section' - _description = "Sales Teams" - _alias_model_name = 'crm.lead' - + _name = 'crm.case.section' def _get_opportunities_data(self, cr, uid, ids, field_name, arg, context=None): """ Get opportunities-related data for salesteam kanban view monthly_open_leads: number of open lead during the last months @@ -118,10 +114,7 @@ class crm_case_section(osv.osv): res[id]['monthly_open_leads'] = self.__get_bar_values(cr, uid, obj, lead_domain, ['create_date'], 'create_date_count', 'create_date', context=context) res[id]['monthly_planned_revenue'] = self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'date_deadline'], 'planned_revenue', 'date_deadline', context=context) return res - def create(self, cr, uid, vals, context=None): - self._alias_model_name = 'crm.lead' - return super(crm_case_section, self).create(cr, uid, vals, context={'alias_model_name': self._alias_model_name}) - + _columns = { 'resource_calendar_id': fields.many2one('resource.calendar', "Working Time", help="Used to compute open days"), 'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'), @@ -143,7 +136,32 @@ class crm_case_section(osv.osv): 'stage_ids': _get_stage_common, 'use_leads': True, } - + +class crm_case_section_inherit(osv.Model): + """ Model for sales teams. """ + _inherit = 'crm.case.section' + _name = 'crm.case.section.inherit' + _description = "Sales Teams" + _inherits = {'mail.alias': 'alias_id'} + _columns = { + 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="restrict", required=True, help="The email address associated with this team. New emails received will automatically ""create new leads assigned to the team."), + } + def create(self, cr, uid, vals, context=None): + if context is None: + context = {} + create_context = dict(context, alias_model_name='crm.lead', alias_parent_model_name=self._name) + section_id = super(crm_case_section, self).create(cr, uid, vals, context=create_context) + section = self.browse(cr, uid, section_id, context=context) + self.pool.get('mail.alias').write(cr, uid, [section.alias_id.id], {'alias_parent_thread_id': section_id, 'alias_defaults': {'section_id': section_id, 'type': 'lead'}}, context=context) + return section_id + + def unlink(self, cr, uid, ids, context=None): + # Cascade-delete mail aliases as well, as they should not exist without the sales team. + mail_alias = self.pool.get('mail.alias') + alias_ids = [team.alias_id.id for team in self.browse(cr, uid, ids, context=context) if team.alias_id] + res = super(crm_case_section, self).unlink(cr, uid, ids, context=context) + mail_alias.unlink(cr, uid, alias_ids, context=context) + return res class crm_case_categ(osv.osv): """ Category of Case """ _name = "crm.case.categ" diff --git a/addons/crm/crm_case_section_view.xml b/addons/crm/crm_case_section_view.xml index 57f5b70bfe8..eb86842e3bd 100644 --- a/addons/crm/crm_case_section_view.xml +++ b/addons/crm/crm_case_section_view.xml @@ -83,7 +83,7 @@ crm.case.section.kanban - crm.case.section + crm.case.section.inherit @@ -91,6 +91,7 @@ +
diff --git a/addons/sale_team/sale_team.py b/addons/sale_team/sale_team.py index db0e4638048..299e6564f56 100644 --- a/addons/sale_team/sale_team.py +++ b/addons/sale_team/sale_team.py @@ -30,10 +30,8 @@ class crm_case_section(osv.osv): _name = "crm.case.section" _inherit = ['mail.thread', 'ir.needaction_mixin'] _description = "Sales Teams" - _inherits = {'mail.alias': 'alias_id'} _order = "complete_name" _period_number = 5 - _alias_model_name = 'mail.message' def get_full_name(self, cr, uid, ids, field_name, arg, context=None): return dict(self.name_get(cr, uid, ids, context=context)) @@ -69,7 +67,6 @@ class crm_case_section(osv.osv): return section_result _columns = { - 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="restrict", required=True, help="The email address associated with this team. New emails received will automatically ""create new leads assigned to the team."), 'name': fields.char('Sales Team', size=64, required=True, translate=True), 'complete_name': fields.function(get_full_name, type='char', size=256, readonly=True, store=True), 'code': fields.char('Code', size=8), @@ -114,21 +111,7 @@ class crm_case_section(osv.osv): res.append((record['id'], name)) return res - def create(self, cr, uid, vals, context=None): - if context is None: - context = {} - create_context = dict(context, alias_model_name=self._alias_model_name, alias_parent_model_name=self._name) - section_id = super(crm_case_section, self).create(cr, uid, vals, context=create_context) - section = self.browse(cr, uid, section_id, context=context) - self.pool.get('mail.alias').write(cr, uid, [section.alias_id.id], {'alias_parent_thread_id': section_id, 'alias_defaults': {'section_id': section_id, 'type': 'lead'}}, context=context) - return section_id - def unlink(self, cr, uid, ids, context=None): - # Cascade-delete mail aliases as well, as they should not exist without the sales team. - mail_alias = self.pool.get('mail.alias') - alias_ids = [team.alias_id.id for team in self.browse(cr, uid, ids, context=context) if team.alias_id] - res = super(crm_case_section, self).unlink(cr, uid, ids, context=context) - mail_alias.unlink(cr, uid, alias_ids, context=context) - return res + class res_users(osv.Model): _inherit = 'res.users' diff --git a/addons/sale_team/sale_team.xml b/addons/sale_team/sale_team.xml index b2b98be643a..a044c455b4a 100644 --- a/addons/sale_team/sale_team.xml +++ b/addons/sale_team/sale_team.xml @@ -42,7 +42,6 @@ - @@ -58,7 +57,7 @@

-
+
%%
diff --git a/addons/sale_team/security/sale_team_security.xml b/addons/sale_team/security/sale_team_security.xml index 11e4f583dda..fe999715a7a 100644 --- a/addons/sale_team/security/sale_team_security.xml +++ b/addons/sale_team/security/sale_team_security.xml @@ -23,7 +23,17 @@ - + + + Do Not Use Sales Teams + + + + + Manage Sales Teams + + +