diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 3bbf1acf372..0776699b247 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -60,9 +60,10 @@
-
-
-
+
+
+
+
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index cbd76c29a02..c6ed8b56f3e 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -55,7 +55,7 @@
+ name="%(wizard_crm_opportunity_meeting_set)d" icon="gtk-redo" type="action" />
diff --git a/addons/crm/crm_opportunity_wizard.xml b/addons/crm/crm_opportunity_wizard.xml
index d8b880e798d..5ba7ed0601f 100644
--- a/addons/crm/crm_opportunity_wizard.xml
+++ b/addons/crm/crm_opportunity_wizard.xml
@@ -16,9 +16,15 @@
name="crm.case.opportunity.partner_opportunity"
menu="False"
string="Create Opportunity"/>
-
-
-
+
+
+
+ """
+
+ case_fields = {
+ 'date': {'string': 'Meeting date', 'type': 'datetime', 'required': 1},
+ 'duration': {'string': 'Duration (Hours)', 'type': 'float', 'required': 1}
+ }
+
+ def _selectPartner(self, cr, uid, data, context):
+ case_obj = pooler.get_pool(cr.dbname).get('crm.opportunity')
+ case = case_obj.browse(cr, uid, data['id'])
+ return {'date': case.date, 'duration': 2.0}
+
+ def _makeMeeting(self, cr, uid, data, context):
+ pool = pooler.get_pool(cr.dbname)
+ opportunity_case_obj = pool.get('crm.opportunity')
+ meeting_case_obj = pool.get('crm.meeting')
+ for opportunity in opportunity_case_obj.browse(cr, uid, data['ids']):
+ new_meeting_id = meeting_case_obj.create(cr, uid, {
+ 'name': opportunity.name,
+ 'date': data['form']['date'],
+ 'duration': data['form']['duration'],
+ })
+ new_meeting = meeting_case_obj.browse(cr, uid, new_meeting_id)
+ vals = {}
+ opportunity_case_obj.write(cr, uid, [opportunity.id], vals)
+ opportunity_case_obj.case_cancel(cr, uid, [opportunity.id])
+ meeting_case_obj.case_open(cr, uid, [new_meeting_id])
+
+ data_obj = pool.get('ir.model.data')
+ result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter')
+ id = data_obj.read(cr, uid, result, ['res_id'])
+ id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_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')
+ if id1:
+ id1 = data_obj.browse(cr, uid, id1, context=context).res_id
+ if id2:
+ id2 = data_obj.browse(cr, uid, id2, context=context).res_id
+ if id3:
+ id3 = data_obj.browse(cr, uid, id3, context=context).res_id
+ return {
+ 'name': _('Meetings'),
+ 'view_type': 'form',
+ 'view_mode': 'calendar,form,tree',
+ 'res_model': 'crm.meeting',
+ 'view_id': False,
+ 'views': [(id1,'calendar'),(id2,'form'),(id3,'tree'),(False,'graph')],
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
+ }
+
+ states = {
+ 'init': {
+ 'actions': [_selectPartner],
+ 'result': {'type': 'form', 'arch': case_form, 'fields': case_fields,
+ 'state' : [('end', 'Cancel','gtk-cancel'),('order', 'Set Meeting','gtk-go-forward')]}
+ },
+ 'order': {
+ 'actions': [],
+ 'result': {'type': 'action', 'action': _makeMeeting, 'state': 'end'}
+ }
+ }
+opportunity2meeting('crm.opportunity.meeting_set')
class partner_opportunity(wizard.interface):
diff --git a/addons/crm/wizard/crm_phonecall_wizard.py b/addons/crm/wizard/crm_phonecall_wizard.py
index 7efbaa5d91d..227b874fb58 100644
--- a/addons/crm/wizard/crm_phonecall_wizard.py
+++ b/addons/crm/wizard/crm_phonecall_wizard.py
@@ -113,7 +113,7 @@ class phonecall2opportunity(wizard.interface):
vals.update({'opportunity_id' : new_opportunity.id})
phonecall_case_obj.write(cr, uid, [phonecall.id], vals)
phonecall_case_obj.case_cancel(cr, uid, [phonecall.id])
- # opportunity_case_obj.case_open(cr, uid, [new_opportunity_id])
+ opportunity_case_obj.case_open(cr, uid, [new_opportunity_id])
value = {
'name': _('Opportunity'),
'view_type': 'form',