[IMP]: crm: Task id -591 - filter automatically on the meetings/phone calls that relates to this opportunity

bzr revid: ksa@tinyerp.co.in-20100423085119-iuwqdo2fizm4dw7k
This commit is contained in:
ksa (Open ERP) 2010-04-23 14:21:19 +05:30
parent 12706188be
commit db9f301129
4 changed files with 48 additions and 48 deletions

View File

@ -65,7 +65,7 @@ class crm_meeting(osv.osv):
_defaults = { _defaults = {
'state': lambda *a: 'draft', 'state': lambda *a: 'draft',
} }
def open_meeting(self, cr, uid, ids, context=None): def open_meeting(self, cr, uid, ids, context=None):
""" """
Open Crm Meeting Form for Crm Meeting. Open Crm Meeting Form for Crm Meeting.
@ -75,13 +75,14 @@ class crm_meeting(osv.osv):
@param context: A standard dictionary for contextual values @param context: A standard dictionary for contextual values
@return: Dictionary value which open Crm Meeting form. @return: Dictionary value which open Crm Meeting form.
""" """
if not context: if not context:
context = {} context = {}
data_obj = self.pool.get('ir.model.data') data_obj = self.pool.get('ir.model.data')
value = {} value = {}
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet') id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet')
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet') id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet')
id4 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet') id4 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet')
@ -93,17 +94,17 @@ class crm_meeting(osv.osv):
id4 = data_obj.browse(cr, uid, id4, context=context).res_id id4 = data_obj.browse(cr, uid, id4, context=context).res_id
for id in ids: for id in ids:
value = { value = {
'name': _('Meeting'), 'name': _('Meeting'),
'view_type': 'form', 'view_type': 'form',
'view_mode': 'form,tree', 'view_mode': 'form,tree',
'res_model': 'crm.meeting', 'res_model': 'crm.meeting',
'view_id': False, 'view_id': False,
'views': [(id2, 'form'), (id3, 'tree'), (id4, 'calendar')], 'views': [(id2, 'form'), (id3, 'tree'), (id4, 'calendar')],
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'res_id': base_calendar.base_calendar_id2real_id(id), 'res_id': base_calendar.base_calendar_id2real_id(id),
'nodestroy': True 'nodestroy': True
} }
return value return value
crm_meeting() crm_meeting()

View File

@ -62,9 +62,9 @@ class crm_opportunity(osv.osv):
@param ids: List of Opendays IDs @param ids: List of Opendays IDs
@return: difference between current date and log date @return: difference between current date and log date
@param context: A standard dictionary for contextual values @param context: A standard dictionary for contextual values
""" """
cal_obj = self.pool.get('resource.calendar') cal_obj = self.pool.get('resource.calendar')
res_obj = self.pool.get('resource.resource') res_obj = self.pool.get('resource.resource')
res = {} res = {}
for opportunity in self.browse(cr, uid, ids , context): for opportunity in self.browse(cr, uid, ids , context):
@ -93,7 +93,7 @@ class crm_opportunity(osv.osv):
duration = float(ans.days) duration = float(ans.days)
if opportunity.section_id.resource_calendar_id: if opportunity.section_id.resource_calendar_id:
duration = float(ans.days) * 24 duration = float(ans.days) * 24
new_dates = cal_obj.interval_get(cr, new_dates = cal_obj.interval_get(cr,
uid, uid,
opportunity.section_id.resource_calendar_id and opportunity.section_id.resource_calendar_id.id or False, opportunity.section_id.resource_calendar_id and opportunity.section_id.resource_calendar_id.id or False,
@ -105,9 +105,9 @@ class crm_opportunity(osv.osv):
date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S') date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
for in_time, out_time in new_dates: for in_time, out_time in new_dates:
if in_time.date not in no_days: if in_time.date not in no_days:
no_days.append(in_time.date) no_days.append(in_time.date)
if out_time > date_until: if out_time > date_until:
break break
duration = len(no_days) duration = len(no_days)
res[opportunity.id][field] = abs(int(duration)) res[opportunity.id][field] = abs(int(duration))
return res return res
@ -230,7 +230,7 @@ class crm_opportunity(osv.osv):
} }
value = { value = {
'name': _('Meetings'), 'name': _('Meetings'),
'domain': "[('user_id','=',%s)]" % (uid), 'domain': "[('user_id','=',%s),('opportunity_id','=',%s)]" % (uid,opp.id),
'context': context, 'context': context,
'view_type': 'form', 'view_type': 'form',
'view_mode': 'calendar,form,tree', 'view_mode': 'calendar,form,tree',
@ -241,7 +241,6 @@ class crm_opportunity(osv.osv):
'search_view_id': res['res_id'], 'search_view_id': res['res_id'],
'nodestroy': True 'nodestroy': True
} }
return value return value
crm_opportunity() crm_opportunity()

View File

@ -18,8 +18,8 @@
res_model="crm.phonecall" res_model="crm.phonecall"
src_model="crm.opportunity" src_model="crm.opportunity"
view_mode="calendar,tree,form" view_mode="calendar,tree,form"
context="{'default_duration': 1.0}" context="{'default_duration': 1.0 ,'default_opportunity_id': active_id}"
domain="[('user_id','=',uid)]" domain="[('user_id','=',uid),('opportunity_id', '=', active_id)]"
view_type="form"/> view_type="form"/>
<record model="ir.actions.act_window" id="crm_case_category_act_oppor11"> <record model="ir.actions.act_window" id="crm_case_category_act_oppor11">
@ -27,7 +27,7 @@
<field name="res_model">crm.opportunity</field> <field name="res_model">crm.opportunity</field>
<field name="view_mode">tree,form,graph</field> <field name="view_mode">tree,form,graph</field>
<field name="view_id" ref="crm_case_tree_view_oppor"/> <field name="view_id" ref="crm_case_tree_view_oppor"/>
<field name="context">{"search_default_my_oprtnit":1,"search_default_new_oprtnit":1,"search_default_section_id":section_id}</field> <field name="context">{"search_default_my_oprtnit":1,"search_default_new_oprtnit":1,"search_default_section_id":section_id}</field>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/> <field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
</record> </record>
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11"> <record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11">

View File

@ -29,10 +29,10 @@ class crm_opportunity2phonecall(osv.osv_memory):
_description = 'Opportunity to Phonecall' _description = 'Opportunity to Phonecall'
_columns = { _columns = {
'name' : fields.char('Call summary', size=64, required=True, select=1), 'name' : fields.char('Call summary', size=64, required=True, select=1),
'user_id' : fields.many2one('res.users', "Assign To"), 'user_id' : fields.many2one('res.users', "Assign To"),
'date': fields.datetime('Date' , required=True), 'date': fields.datetime('Date' , required=True),
'section_id': fields.many2one('crm.case.section', 'Sales Team'), 'section_id': fields.many2one('crm.case.section', 'Sales Team'),
} }
def default_get(self, cr, uid, fields, context=None): def default_get(self, cr, uid, fields, context=None):
@ -46,7 +46,6 @@ class crm_opportunity2phonecall(osv.osv_memory):
@return : default values of fields. @return : default values of fields.
""" """
opp_obj = self.pool.get('crm.opportunity') opp_obj = self.pool.get('crm.opportunity')
record_ids = context and context.get('active_ids', []) or [] record_ids = context and context.get('active_ids', []) or []
res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context) res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context)
@ -93,7 +92,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
data_obj = self.pool.get('ir.model.data') data_obj = self.pool.get('ir.model.data')
categ_id = mod_obj._get_id(cr, uid, 'crm', 'categ_phone1') categ_id = mod_obj._get_id(cr, uid, 'crm', 'categ_phone1')
categ_id = data_obj.browse(cr, uid, categ_id, context=context).res_id categ_id = data_obj.browse(cr, uid, categ_id, context=context).res_id
# Select the view # Select the view
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view') id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view')
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view') id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view')
@ -105,31 +104,32 @@ class crm_opportunity2phonecall(osv.osv_memory):
for this in self.browse(cr, uid, ids, context=context): for this in self.browse(cr, uid, ids, context=context):
for opp in opp_obj.browse(cr, uid, record_ids, context=context): for opp in opp_obj.browse(cr, uid, record_ids, context=context):
new_case = phonecall_obj.create(cr, uid, { new_case = phonecall_obj.create(cr, uid, {
'name' : opp.name, 'name' : opp.name,
'case_id' : opp.id , 'case_id' : opp.id ,
'user_id' : this.user_id and this.user_id.id or False, 'user_id' : this.user_id and this.user_id.id or False,
'categ_id' : categ_id, 'categ_id' : categ_id,
'description' : opp.description or False, 'description' : opp.description or False,
'date' : this.date, 'date' : this.date,
'section_id' : opp.section_id and opp.section_id.id or False, 'section_id' : opp.section_id and opp.section_id.id or False,
'partner_id': opp.partner_id and opp.partner_id.id or False, 'partner_id': opp.partner_id and opp.partner_id.id or False,
'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False, 'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False,
'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False), 'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False),
'partner_mobile' : opp.partner_address_id and opp.partner_address_id.mobile or False, 'partner_mobile' : opp.partner_address_id and opp.partner_address_id.mobile or False,
'priority': opp.priority, 'priority': opp.priority,
'opp_id': opp.id 'opp_id': opp.id
}, context=context) }, context=context)
phonecall_obj.case_open(cr, uid, [new_case]) phonecall_obj.case_open(cr, uid, [new_case])
value = { value = {
'name': _('Phone Call'), 'name': _('Phone Call'),
'view_type': 'form', 'domain': "[('user_id','=',%s),('opportunity_id','=',%s)]" % (uid,opp.id),
'view_mode': 'tree,form', 'view_type': 'form',
'res_model': 'crm.phonecall', 'view_mode': 'tree,form',
'res_id' : new_case, 'res_model': 'crm.phonecall',
'views': [(id3, 'form'), (id2, 'tree'), (False, 'calendar'), (False, 'graph')], 'res_id' : new_case,
'type': 'ir.actions.act_window', 'views': [(id3, 'form'), (id2, 'tree'), (False, 'calendar'), (False, 'graph')],
'type': 'ir.actions.act_window',
'search_view_id': res['res_id'] 'search_view_id': res['res_id']
} }
return value return value