if not stage_id:
return {'value':{}}
stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context)
+ if stage.state == "draft":
+ return {'value':{'probability': 0.0}}
+ if stage.state == "open":
+ cases = self.browse(cr, uid, ids, context=context)
+ data = {'active': True}
+ for case in cases:
+ if case.stage_id and case.stage_id.state == 'draft':
+ data['date_open'] = fields.datetime.now()
+ if not case.user_id:
+ data['user_id'] = uid
+ return {'value':data}
if not stage.on_change:
return {'value':{}}
- return {'value':{'probability': stage.probability}}
+ else:
+ return {'value':{'probability': stage.probability}}
def _check(self, cr, uid, ids=False, context=None):
""" Override of the base.stage method.
}
def action_makeMeeting(self, cr, uid, ids, context=None):
+ """ This opens Meeting's calendar view to schedule meeting on current Opportunity
+ @return : Dictionary value for created Meeting view
"""
- This opens Meeting's calendar view to schedule meeting on current Opportunity
- @return : Dictionary value for created Meeting view
- """
- if context is None:
- context = {}
- value = {}
- data_obj = self.pool.get('ir.model.data')
- for opp in self.browse(cr, uid, ids, context=context):
- # Get meeting views
- tree_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_tree_view_meet')
- form_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_form_view_meet')
- calander_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_calendar_view_meet')
- search_view = data_obj.get_object_reference(cr, uid, 'crm', 'view_crm_case_meetings_filter')
- context.update({
- 'default_opportunity_id': opp.id,
- 'default_partner_id': opp.partner_id and opp.partner_id.id or False,
- 'default_user_id': uid,
- 'default_section_id': opp.section_id and opp.section_id.id or False,
- 'default_email_from': opp.email_from,
- 'default_state': 'open',
- 'default_name': opp.name
- })
- value = {
- 'name': _('Meetings'),
- 'context': context,
- 'view_type': 'form',
- 'view_mode': 'calendar,form,tree',
- 'res_model': 'crm.meeting',
- 'view_id': False,
- 'views': [(calander_view and calander_view[1] or False, 'calendar'), (form_view and form_view[1] or False, 'form'), (tree_view and tree_view[1] or False, 'tree')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': search_view and search_view[1] or False,
- 'nodestroy': True
- }
- return value
-
+ opportunity = self.browse(cr, uid, ids[0], context)
+ res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context)
+ res['context'] = {
+ 'default_opportunity_id': opportunity.id,
+ 'default_partner_id': opportunity.partner_id and opportunity.partner_id.id or False,
+ 'default_user_id': uid,
+ 'default_section_id': opportunity.section_id and opportunity.section_id.id or False,
+ 'default_email_from': opportunity.email_from,
+ 'default_state': 'open',
+ 'default_name': opportunity.name,
+ }
+ return res
def unlink(self, cr, uid, ids, context=None):
for lead in self.browse(cr, uid, ids, context):