[IMP] improve inherited crm_case_section
This commit is contained in:
parent
e1ee973594
commit
2f5250edfa
|
@ -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"
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
|
||||
<record model="ir.ui.view" id="crm_case_section_salesteams_view_kanban">
|
||||
<field name="name">crm.case.section.kanban</field>
|
||||
<field name="model">crm.case.section</field>
|
||||
<field name="model">crm.case.section.inherit</field>
|
||||
<field name="inherit_id" ref="sale_team.crm_case_section_salesteams_view_kanban"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
|
@ -91,6 +91,7 @@
|
|||
<field name="use_leads"/>
|
||||
<field name="monthly_open_leads"/>
|
||||
<field name="monthly_planned_revenue"/>
|
||||
<field name="alias_id"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='avtar']" position="after">
|
||||
<div class="oe_kanban_alias oe_center" t-if="record.use_leads.raw_value and record.alias_id.value">
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="member_ids"/>
|
||||
<field name="alias_id"/>
|
||||
<field name="note"/>
|
||||
<field name="color"/>
|
||||
<templates>
|
||||
|
@ -58,7 +57,7 @@
|
|||
</div>
|
||||
<div class="oe_kanban_content">
|
||||
<h4 class="oe_center"><field name="name"/></h4>
|
||||
<div class="oe_kanban_alias oe_center" t-if="record.alias_id.value" name="avtar">
|
||||
<div class="oe_kanban_alias oe_center" name="avtar">
|
||||
<small><span class="oe_e oe_e_alias" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
|
|
|
@ -23,7 +23,17 @@
|
|||
<field name="implied_ids" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||
<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_multi_salesteams" model="res.groups">
|
||||
<field name="name">Manage Sales Teams</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record model="res.users" id="base.user_root">
|
||||
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
|
Loading…
Reference in New Issue