From 2be4475cbae79cb8d8cdcf7bf32761a4e372710c Mon Sep 17 00:00:00 2001 From: "mra (Open ERP)" Date: Wed, 7 Apr 2010 11:54:16 +0530 Subject: [PATCH] [ADD] project_gtd: Project timebox empty wizard => osv memory bzr revid: mra@tinyerp.com-20100407062416-zjbwr9zme1zxroqs --- addons/project_gtd/__terp__.py | 5 +- addons/project_gtd/project_gtd_wizard.xml | 6 +- .../project_gtd/wizard/project_gtd_empty.py | 66 ++++++++++--------- .../wizard/project_gtd_empty_view.xml | 42 ++++++++++++ 4 files changed, 84 insertions(+), 35 deletions(-) create mode 100644 addons/project_gtd/wizard/project_gtd_empty_view.xml diff --git a/addons/project_gtd/__terp__.py b/addons/project_gtd/__terp__.py index 47531886575..a8ecff2fa52 100644 --- a/addons/project_gtd/__terp__.py +++ b/addons/project_gtd/__terp__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (). # @@ -15,7 +15,7 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# along with this program. If not, see . # ############################################################################## @@ -45,6 +45,7 @@ performing those tasks. 'project_gtd_view.xml', 'project_gtd_wizard.xml', 'security/ir.model.access.csv', + 'wizard/project_gtd_empty_view.xml' ], 'demo_xml': ['project_gtd_demo.xml'], 'installable': True, diff --git a/addons/project_gtd/project_gtd_wizard.xml b/addons/project_gtd/project_gtd_wizard.xml index f6b9f7597be..9f5e202b0f3 100644 --- a/addons/project_gtd/project_gtd_wizard.xml +++ b/addons/project_gtd/project_gtd_wizard.xml @@ -10,18 +10,18 @@ - + - - +--> diff --git a/addons/project_gtd/wizard/project_gtd_empty.py b/addons/project_gtd/wizard/project_gtd_empty.py index a2ebe2e8dba..4eb4de12c12 100644 --- a/addons/project_gtd/wizard/project_gtd_empty.py +++ b/addons/project_gtd/wizard/project_gtd_empty.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (). # @@ -15,46 +15,52 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# along with this program. If not, see . # ############################################################################## - - -import wizard -import netsvc -import time -import pooler -from osv import osv +from osv import osv, fields from tools.translate import _ -class wiz_timebox_empty(wizard.interface): - def _empty(self, cr, uid, data, context): - pool = pooler.get_pool(cr.dbname) - ids = pool.get('project.gtd.timebox').search(cr, uid, []) - if not len(ids): - raise wizard.except_wizard(_('Error !'), _('No timebox child of this one !')) - tids = pool.get('project.task').search(cr, uid, [('timebox_id','=',data['id'])]) +class project_timebox_empty(osv.osv_memory): + + _name = 'project.timebox.empty' + _description = 'Project Timebox Empty' + _columns = { + 'name': fields.char('Name', size=32) + } + + def view_init(self, cr , uid , fields_list, context=None): + if context is None: + context = {} + self._empty(cr, uid, context=context) + pass + + def _empty(self, cr, uid, context=None): close = [] up = [] - for task in pool.get('project.task').browse(cr, uid, tids, context): - if (task.state in ('cancel','done')) or (task.user_id.id<>uid): + obj_tb = self.pool.get('project.gtd.timebox') + obj_task = self.pool.get('project.task') + + if context is None: + context = {} + if not 'active_id' in context: + return {} + + ids = obj_tb.search(cr, uid, [], context=context) + if not len(ids): + raise osv.except_osv(_('Error !'), _('No timebox child of this one !')) + tids = obj_task.search(cr, uid, [('timebox_id', '=', context['active_id'])]) + for task in obj_task.browse(cr, uid, tids, context): + if (task.state in ('cancel','done')) or (task.user_id.id <> uid): close.append(task.id) else: up.append(task.id) if up: - pool.get('project.task').write(cr, uid, up, {'timebox_id':ids[0]}) + obj_task.write(cr, uid, up, {'timebox_id':ids[0]}) if close: - pool.get('project.task').write(cr, uid, close, {'timebox_id':False}) + obj_task.write(cr, uid, close, {'timebox_id':False}) return {} - states = { - 'init' : { - 'actions' : [_empty], - 'result' : {'type':'state', 'state':'end'} - } - } -wiz_timebox_empty('project.gtd.timebox.empty') - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +project_timebox_empty() +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/project_gtd/wizard/project_gtd_empty_view.xml b/addons/project_gtd/wizard/project_gtd_empty_view.xml new file mode 100644 index 00000000000..ef71ae72978 --- /dev/null +++ b/addons/project_gtd/wizard/project_gtd_empty_view.xml @@ -0,0 +1,42 @@ + + + + + + Empty Timebox + project.timebox.empty + form + +
+