diff --git a/addons/project_caldav/project_caldav.py b/addons/project_caldav/project_caldav.py
index fb2d62a9684..40cf9a89ff2 100644
--- a/addons/project_caldav/project_caldav.py
+++ b/addons/project_caldav/project_caldav.py
@@ -22,7 +22,8 @@
from osv import fields, osv
from caldav import calendar
from datetime import datetime
-
+from tools.translate import _
+from base_calendar import base_calendar
from project.project import task as base_project_task
class project_task(osv.osv):
@@ -45,6 +46,50 @@ class project_task(osv.osv):
'state': 'draft',
}
+
+ def open_task(self, cr, uid, ids, context=None):
+ """
+ Open Task Form for Project Task.
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of project task’s IDs
+ @param context: A standard dictionary for contextual values
+ @return: Dictionary value which open Project Task form.
+ """
+
+ if not context:
+ context = {}
+
+ data_obj = self.pool.get('ir.model.data')
+
+ value = {}
+
+ task_form_ids = data_obj._get_id(cr, uid, 'project', 'view_task_form2')
+ task_tree_ids = data_obj._get_id(cr, uid, 'project', 'view_task_tree2')
+ task_calendar_ids = data_obj._get_id(cr, uid, 'project', 'view_task_calendar')
+
+ if task_form_ids:
+ task_form_id = data_obj.browse(cr, uid, task_form_ids, context=context).res_id
+ if task_tree_ids:
+ task_tree_id = data_obj.browse(cr, uid, task_tree_ids, context=context).res_id
+ if task_calendar_ids:
+ task_calendar_id = data_obj.browse(cr, uid, task_calendar_ids, context=context).res_id
+ for id in ids:
+ value = {
+ 'name': _('Tasks'),
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'project.task',
+ 'view_id': False,
+ 'views': [(task_form_id, 'form'), (task_tree_id, 'tree'), (task_calendar_id, 'calendar')],
+ 'type': 'ir.actions.act_window',
+ 'res_id': base_calendar.base_calendar_id2real_id(id),
+ 'nodestroy': True
+ }
+
+ return value
+
+
def import_cal(self, cr, uid, data, data_id=None, context=None):
todo_obj = self.pool.get('basic.calendar.todo')
vals = todo_obj.import_cal(cr, uid, data, context=context)
diff --git a/addons/project_caldav/project_caldav_view.xml b/addons/project_caldav/project_caldav_view.xml
index 259d336c398..56b3172cc06 100644
--- a/addons/project_caldav/project_caldav_view.xml
+++ b/addons/project_caldav/project_caldav_view.xml
@@ -70,7 +70,7 @@