[REM] Project: New Project Based on Template removed (Merge with osv object no need to wizard file)

[IMP] Project: modify duplicate template method on project to return new created project form (Removed old wizard)

bzr revid: mra@tinyerp.com-20100405101704-npqhhsl4x6q15rvb
This commit is contained in:
mra (Open ERP) 2010-04-05 15:47:04 +05:30
parent 84c1940f7b
commit d0ccd0209e
5 changed files with 31 additions and 77 deletions

View File

@ -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={}):

View File

@ -49,9 +49,13 @@
<button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
<button name="set_done" string="Done" type="object" states="open,pending" icon="gtk-jump-to"/>
<button name="reset_project" string="Reset as Project" type="object" states="template" icon="gtk-convert"/>
<button
<!--<button
string="New Project Based on Template"
name="%(wizard_duplicate_template)d" type="action"
states="template" icon="gtk-new"/>-->
<button
string="New Project Based on Template"
name="duplicate_template" type="object"
states="template" icon="gtk-new"/>
</group>
</page>

View File

@ -3,11 +3,11 @@
<data>
<!--<wizard id="wizard_close_task" menu="False" model="project.task" name="project.task.close" string="Close Task"/>-->
<wizard id="wizard_delegate_task" menu="False" model="project.task" name="project.task.delegate" string="Delegate Task"/>
<wizard
<!--<wizard
id="wizard_duplicate_template"
menu="False"
model="project.project"
name="project.duplicate.template" string="Duplicate Template"/>
-->
</data>
</openerp>

View File

@ -21,7 +21,6 @@
import project_close_task
import task_delegate
import duplicate_template_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,71 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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: