class crm_case_section(osv.osv):
""" Model for sales teams. """
+ _name = "crm.case.section"
+ _inherits = {'mail.alias': 'alias_id'}
_inherit = 'crm.case.section'
_description = "Sales Teams"
return res
_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."),
'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'),
'use_leads': fields.boolean('Leads',
help="The first contact you get with a potential customer is a lead you qualify before converting it into a real business opportunity. Check this box to manage leads in this sales team."),
'stage_ids': _get_stage_common,
'use_leads': True,
}
-
+
+ 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 """
access_crm_segmentation_line,crm.segmentation.line,model_crm_segmentation_line,base.group_sale_manager,1,1,1,1\r
access_crm_case_channel_user,crm.case.channel user,model_crm_case_channel,base.group_sale_salesman,1,0,0,0\r
access_crm_case_channel_manager,crm.case.channel manager,model_crm_case_channel,base.group_sale_manager,1,1,1,1\r
-access_crm_case_section,crm.case.section,model_crm_case_section,base.group_user,1,0,0,0\r
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_sale_salesman,1,1,1,0\r
access_crm_lead_manager,crm.lead.manager,model_crm_lead,base.group_sale_manager,1,1,1,1\r
access_crm_phonecall_manager,crm.phonecall.manager,model_crm_phonecall,base.group_sale_manager,1,1,1,1\r
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0\r
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0\r
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0\r
-access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0\r
-access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1\r
access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0\r
access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1\r
access_crm_case_resource_type_user,crm_case_resource_type user,model_crm_case_resource_type,base.group_sale_salesman,1,1,1,0\r
_inherit = ['mail.thread', 'ir.needaction_mixin']
_description = "Sales Teams"
_order = "complete_name"
- # number of periods for lead/opportunities/... tracking in salesteam kanban dashboard/kanban view
_period_number = 5
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
'resource_calendar_id': fields.many2one('resource.calendar', "Working Time", help="Used to compute open days"),
'note': fields.text('Description'),
'working_hours': fields.float('Working Hours', digits=(16, 2)),
- '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."),
'color': fields.integer('Color Index'),
}
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._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'
_columns = {