diff --git a/addons/project/project.py b/addons/project/project.py
index 278646e097a..e34474233bb 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -190,10 +190,11 @@ class project(osv.osv):
def duplicate_template(self, cr, uid, ids, context={}):
project_obj = self.pool.get('project.project')
+ data_obj = self.pool.get('ir.model.data')
task_obj = self.pool.get('project.task')
result = []
for proj in self.browse(cr, uid, ids, context=context):
- parent_id = context.get('parent_id',False)
+ parent_id = context.get('parent_id',False) # check me where to pass context for parent id ??
new_id = project_obj.copy(cr, uid, proj.id, default = {
'name': proj.name +_(' (copy)'),
'state':'open',
@@ -208,7 +209,28 @@ class project(osv.osv):
child_ids = self.search(cr, uid, [('parent_id','=', proj.id)], context=context)
if child_ids:
self.duplicate_template(cr, uid, child_ids, context={'parent_id': new_id})
- return result
+
+ if result and len(result):
+ res_id = result[0]
+ form_view_id = data_obj._get_id(cr, uid, 'project', 'edit_project')
+ form_view = data_obj.read(cr, uid, form_view_id, ['res_id'])
+ tree_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_list')
+ tree_view = data_obj.read(cr, uid, tree_view_id, ['res_id'])
+ search_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_project_filter')
+ search_view = data_obj.read(cr, uid, search_view_id, ['res_id'])
+ return {
+ 'name': _('Projects'),
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'project.project',
+ 'view_id': False,
+ 'res_id' : res_id,
+ 'views': [(form_view['res_id'],'form'),(tree_view['res_id'],'tree')],
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': search_view['res_id'],
+ 'nodestroy': True
+ }
+# return result
# set active value for a project, its sub projects and its tasks
def setActive(self, cr, uid, ids, value=True, context={}):
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 47cdefe3cee..91568f953ab 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -49,9 +49,13 @@
- -->
+
diff --git a/addons/project/project_wizard.xml b/addons/project/project_wizard.xml
index 0e9a5c8b3c1..934fa57ee9c 100644
--- a/addons/project/project_wizard.xml
+++ b/addons/project/project_wizard.xml
@@ -3,11 +3,11 @@
-
-
+-->
diff --git a/addons/project/wizard/__init__.py b/addons/project/wizard/__init__.py
index 5fd475d781d..6d48d9d45dd 100644
--- a/addons/project/wizard/__init__.py
+++ b/addons/project/wizard/__init__.py
@@ -21,7 +21,6 @@
import project_close_task
import task_delegate
-import duplicate_template_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/wizard/duplicate_template_wizard.py b/addons/project/wizard/duplicate_template_wizard.py
deleted file mode 100644
index 27a4ec4bd7d..00000000000
--- a/addons/project/wizard/duplicate_template_wizard.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from mx.DateTime import now
-
-import wizard
-import netsvc
-import ir
-import pooler
-import time
-
-from tools.translate import _
-
-class project_duplicate_template(wizard.interface):
-
- def duplicate_template(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- project_obj = pool.get('project.project')
- res = project_obj.duplicate_template(cr, uid, data['ids'])
- if res and len(res):
- res_id = res[0]
- data_obj = pool.get('ir.model.data')
- form_view_id = data_obj._get_id(cr, uid, 'project', 'edit_project')
- form_view = data_obj.read(cr, uid, form_view_id, ['res_id'])
- tree_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_list')
- tree_view = data_obj.read(cr, uid, tree_view_id, ['res_id'])
- search_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_project_filter')
- search_view = data_obj.read(cr, uid, search_view_id, ['res_id'])
- return {
- 'name': _('Projects'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'project.project',
- 'view_id': False,
- 'res_id' : res_id,
- 'views': [(form_view['res_id'],'form'),(tree_view['res_id'],'tree')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': search_view['res_id']
- }
- return {}
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'action', 'action': duplicate_template, 'state': 'order'}
- },
- 'order': {
- 'actions': [],
- 'result': {'type': 'state', 'state': 'end'}
- }
- }
-project_duplicate_template('project.duplicate.template')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: