[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:
parent
84c1940f7b
commit
d0ccd0209e
|
@ -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={}):
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
import project_close_task
|
||||
import task_delegate
|
||||
import duplicate_template_wizard
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -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:
|
Loading…
Reference in New Issue