[REM] project_gtd deprecated by notes

bzr revid: al@openerp.com-20140424230801-zmzp2byyk41e7uxf
This commit is contained in:
Antony Lesuisse 2014-04-25 01:08:01 +02:00
parent 9cb2b91783
commit fb4507386d
14 changed files with 0 additions and 694 deletions

View File

@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
import project_gtd
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,56 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Todo Lists',
'version': '1.0',
'category': 'Project Management',
'sequence': 100,
'summary': 'Personal Tasks, Contexts, Timeboxes',
'description': """
Implement concepts of the "Getting Things Done" methodology
===========================================================
This module implements a simple personal to-do list based on tasks. It adds an editable list of tasks simplified to the minimum required fields in the project application.
The to-do list is based on the GTD methodology. This world-wide used methodology is used for personal time management improvement.
Getting Things Done (commonly abbreviated as GTD) is an action management method created by David Allen, and described in a book of the same name.
GTD rests on the principle that a person needs to move tasks out of the mind by recording them externally. That way, the mind is freed from the job of remembering everything that needs to be done, and can concentrate on actually performing those tasks.
""",
'author': 'OpenERP SA',
'images': ['images/project_gtd.jpeg'],
'depends': ['project'],
'data': [
'project_gtd_data.xml',
'project_gtd_view.xml',
'security/ir.model.access.csv',
'wizard/project_gtd_empty_view.xml',
'wizard/project_gtd_fill_view.xml',
],
'demo': ['project_gtd_demo.xml'],
'test':['test/task_timebox.yml'],
'installable': True,
'auto_install': False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,122 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
import sys
from openerp.osv import fields, osv
from openerp import tools
from openerp.tools.translate import _
class project_gtd_context(osv.osv):
_name = "project.gtd.context"
_description = "Context"
_columns = {
'name': fields.char('Context', size=64, required=True, select=1, translate=1),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of contexts."),
}
_defaults = {
'sequence': 1
}
_order = "sequence, name"
class project_gtd_timebox(osv.osv):
_name = "project.gtd.timebox"
_order = "sequence"
_columns = {
'name': fields.char('Timebox', size=64, required=True, select=1, translate=1),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of timebox."),
'icon': fields.selection(tools.icons, 'Icon', size=64),
}
class project_task(osv.osv):
_inherit = "project.task"
_columns = {
'timebox_id': fields.many2one('project.gtd.timebox', "Timebox",help="Time-laps during which task has to be treated"),
'context_id': fields.many2one('project.gtd.context', "Context",help="The context place where user has to treat task"),
}
def copy_data(self, cr, uid, id, default=None, context=None):
if context is None:
context = {}
if not default:
default = {}
default['timebox_id'] = False
default['context_id'] = False
return super(project_task,self).copy_data(cr, uid, id, default, context)
def _get_context(self, cr, uid, context=None):
ids = self.pool.get('project.gtd.context').search(cr, uid, [], context=context)
return ids and ids[0] or False
_defaults = {
'context_id': _get_context
}
def next_timebox(self, cr, uid, ids, *args):
timebox_obj = self.pool.get('project.gtd.timebox')
timebox_ids = timebox_obj.search(cr,uid,[])
if not timebox_ids: return True
for task in self.browse(cr,uid,ids):
timebox = task.timebox_id.id
if not timebox:
self.write(cr, uid, task.id, {'timebox_id': timebox_ids[0]})
elif timebox_ids.index(timebox) != len(timebox_ids)-1:
index = timebox_ids.index(timebox)
self.write(cr, uid, task.id, {'timebox_id': timebox_ids[index+1]})
return True
def prev_timebox(self, cr, uid, ids, *args):
timebox_obj = self.pool.get('project.gtd.timebox')
timebox_ids = timebox_obj.search(cr,uid,[])
for task in self.browse(cr,uid,ids):
timebox = task.timebox_id.id
if timebox:
if timebox_ids.index(timebox):
index = timebox_ids.index(timebox)
self.write(cr, uid, task.id, {'timebox_id': timebox_ids[index - 1]})
else:
self.write(cr, uid, task.id, {'timebox_id': False})
return True
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if not context: context = {}
res = super(project_task,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
search_extended = False
timebox_obj = self.pool.get('project.gtd.timebox')
if (res['type'] == 'search') and context.get('gtd', False):
tt = timebox_obj.browse(cr, uid, timebox_obj.search(cr,uid,[]), context=context)
search_extended =''
for time in tt:
if time.icon:
icon = time.icon
else :
icon=""
search_extended += '''<filter domain="[('timebox_id','=', ''' + str(time.id) + ''')]" icon="''' + icon + '''" string="''' + time.name + '''" context="{'user_invisible': True}"/>\n'''
search_extended +='''<separator orientation="vertical"/>'''
res['arch'] = tools.ustr(res['arch']).replace('<separator name="gtdsep"/>', search_extended)
return res
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,40 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record model="project.gtd.context" id="context_office">
<field name="name">Office</field>
<field name="sequence">0</field>
</record>
<record model="project.gtd.context" id="context_travel">
<field name="name">Travel</field>
<field name="sequence">2</field>
</record>
<record model="project.gtd.timebox" id="timebox_daily">
<field name="name">Today</field>
<field name="icon">terp-go-today</field>
</record>
<record model="project.gtd.timebox" id="timebox_weekly">
<field name="name">This Week</field>
<field name="icon">terp-go-week</field>
</record>
<record model="project.gtd.timebox" id="timebox_lt">
<field name="name">Long Term</field>
<field name="icon">terp-project</field>
</record>
</data>
<data noupdate="1">
<!-- notify all employees of module installation -->
<record model="mail.message" id="module_install_notification">
<field name="model">mail.group</field>
<field name="res_id" ref="mail.group_all_employees"/>
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Todo Lists application installed!</field>
<field name="body"><![CDATA[<p>Add todo items on project tasks, to help you organize your work.</p><p>
This application supports the Getting Things Done (GTD) methodology, based on David Allen's book.</p>]]></field>
</record>
</data>
</openerp>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record model="project.gtd.context" id="context_home">
<field name="name">Home</field>
<field name="sequence">3</field>
</record>
<record model="project.gtd.context" id="context_car">
<field name="name">Car</field>
<field name="sequence">1</field>
</record>
<record id="project.project_task_10" model="project.task">
<field name="timebox_id" ref="timebox_daily"/>
<field name="context_id" ref="context_office"/>
</record>
<record id="project.project_task_11" model="project.task">
<field name="timebox_id" ref="timebox_daily"/>
<field name="context_id" ref="context_office"/>
</record>
<record id="project.project_task_12" model="project.task">
<field name="timebox_id" ref="timebox_daily"/>
<field name="context_id" ref="context_car"/>
</record>
<record id="project.project_task_13" model="project.task">
<field name="timebox_id" ref="timebox_daily"/>
<field name="context_id" ref="context_car"/>
</record>
</data>
</openerp>

View File

@ -1,132 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record model="ir.ui.view" id="view_gtd_context_tree">
<field name="name">project.gtd.context.tree</field>
<field name="model">project.gtd.context</field>
<field name="arch" type="xml">
<tree string="Context">
<field name="sequence" invisible="1"/>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_gtd_context_form">
<field name="name">project.gtd.context.form</field>
<field name="model">project.gtd.context</field>
<field name="arch" type="xml">
<form string="Context" version="7.0">
<group col="4">
<field name="name"/>
<field name="sequence"/>
</group>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="open_gtd_context_tree">
<field name="name">Contexts</field>
<field name="res_model">project.gtd.context</field>
<field name="help">Contexts are defined in the "Getting Things Done" methodology. It allows you to categorize your tasks according to the context in which they have to be done: at the office, at home, when I take my car, etc.</field>
</record>
<menuitem name="Contexts" id="menu_open_gtd_time_contexts"
parent="project.menu_tasks_config" action="open_gtd_context_tree" groups="base.group_no_one"/>
<record model="ir.ui.view" id="view_gtd_timebox_tree">
<field name="name">project.gtd.timebox.tree</field>
<field name="model">project.gtd.timebox</field>
<field name="arch" type="xml">
<tree string="Timebox">
<field name="sequence" invisible="1"/>
<field name="name"/>
<field name="icon"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_gtd_timebox_form">
<field name="name">project.gtd.timebox.form</field>
<field name="model">project.gtd.timebox</field>
<field name="arch" type="xml">
<form string="Timeboxes" version="7.0">
<group col="4" string="Timebox Definition">
<field name="name"/>
<field name="sequence"/>
<field name="icon"/>
</group>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="open_gtd_timebox_tree">
<field name="name">Timeboxes</field>
<field name="res_model">project.gtd.timebox</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_gtd_timebox_tree"/>
<field name="help">Timeboxes are defined in the "Getting Things Done" methodology. A timebox defines a period of time in order to categorize your tasks: today, this week, this month, long term.</field>
</record>
<menuitem name="Timeboxes" id="menu_open_gtd_time_timeboxes" parent="project.menu_tasks_config" action="open_gtd_timebox_tree" groups="base.group_no_one"/>
<record model="ir.ui.view" id="project_task_tree">
<field name="name">project.task.tree.timebox</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_tree2" />
<field name="arch" type="xml">
<field name="remaining_hours" position="after">
<field string="Timeframe" name="timebox_id" invisible=" not context.get('gtd', False)"/>
<field name="context_id" invisible="not context.get('context_show', False)" widget="selection"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="project_task">
<field name="name">project.task.form.timebox</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_form2" />
<field name="arch" type="xml">
<field name="progress" position="after">
<field name="context_id" widget="selection" options='{"no_open": True}'/>
<field name="timebox_id" widget="selection" options='{"no_open": True}' string="Timeframe"/>
</field>
</field>
</record>
<record id="view_task_gtd_search" model="ir.ui.view">
<field name="name">project.task.gtd.search</field>
<field name="model">project.task</field>
<field name="priority">50</field>
<field name="arch" type="xml">
<search string="My Tasks">
<field name="name" string="My Tasks"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/>
<filter string="No Timebox" domain="[('timebox_id', '=', False)]" help="Tasks having no timebox assigned yet"/>
<group expand="0" string="Display">
<filter string="Context" name="context_show" context="{'context_show': True}" domain="[]" icon="terp-camera_test" help="Show the context field"/>
<filter string="Deadlines" context="{'deadline_visible': False}" domain="[]" help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/>
</group>
<group expand="0" string="Group By...">
<filter string="Stage" name="group_stage_id" context="{'group_by':'stage_id'}"/>
<filter string="Timebox" name="group_timebox_id" context="{'group_by':'timebox_id'}"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="open_gtd_task">
<field name="name">My Tasks</field>
<field name="res_model">project.task</field>
<field name="search_view_id" ref="view_task_gtd_search"/>
<field name="context">{'set_editable':True,'set_visible':True,'gtd':True,'user_invisible':True, "search_default_open": 1}</field>
<field name="domain">[('user_id','=',uid)]</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
</record>
<menuitem action="open_gtd_task" id="menu_open_gtd_timebox_tree" parent="project.menu_project_management" sequence="10"/>
</data>
</openerp>

View File

@ -1,5 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_project_gtd_context_user,project.gtd.context project user,model_project_gtd_context,project.group_project_user,1,0,0,0
access_project_gtd_timebox_user,project.gtd.timebox project user,model_project_gtd_timebox,project.group_project_user,1,0,0,0
access_project_gtd_context_manager,project.gtd.context project manager,model_project_gtd_context,project.group_project_manager,1,1,1,1
access_project_gtd_timebox_manager,project.gtd.timebox project manager,model_project_gtd_timebox,project.group_project_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_project_gtd_context_user project.gtd.context project user model_project_gtd_context project.group_project_user 1 0 0 0
3 access_project_gtd_timebox_user project.gtd.timebox project user model_project_gtd_timebox project.group_project_user 1 0 0 0
4 access_project_gtd_context_manager project.gtd.context project manager model_project_gtd_context project.group_project_manager 1 1 1 1
5 access_project_gtd_timebox_manager project.gtd.timebox project manager model_project_gtd_timebox project.group_project_manager 1 1 1 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -1,45 +0,0 @@
-
In order to test the process of Timebox in Project Management module,
I set my task from Daily to Weekly Timebox through Plannify Timebox
-
!record {model: project.timebox.fill.plan, id: plan_id}:
task_ids: [project.project_task_10]
timebox_id: timebox_daily
timebox_to_id: timebox_weekly
-
I set the task from Daily Timebox to Weekly Timebox
-
!python {model: project.timebox.fill.plan}: |
self.process(cr, uid, [ref("plan_id")])
-
I check task is set to Weekly Timebox
-
!assert {model: project.task, id: project.project_task_10, string: Task should be set to weekly timebox}:
- timebox_id.id == ref("timebox_weekly")
-
I Empty the Weekly Timebox
-
!python {model: project.timebox.empty}: |
self._empty(cr, uid, {"active_model": "project.gtd.timebox",
"active_ids":[ref("timebox_weekly")],
"active_id": ref("timebox_weekly"),
})
-
I check task 'Develop Module in Sale Management' is no more in Weekly Timebox
-
!assert {model: project.task, id: project.project_task_10 , string: Task is not in Weekly Timebox }:
- timebox_id.id != ref("timebox_weekly")
-
I set Previous Timebox on task
-
!python {model: project.task}: |
previous_timebox = self.prev_timebox(cr, uid, [ref("project.project_task_10")],
{'active_ids': [ref("project_gtd.menu_open_gtd_timebox_tree")],})
assert previous_timebox == True, "I set Previous Timebox on task"
-
I set Next Timebox on task
-
!python {model: project.task}: |
next_timebox = self.next_timebox(cr, uid, [ref("project.project_task_10")],
{'active_ids': [ref("project_gtd.menu_open_gtd_timebox_tree")],})
assert next_timebox == True, "I set Next Timebox on task"

View File

@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
import project_gtd_empty
import project_gtd_fill
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,66 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import fields, osv
from openerp.tools.translate import _
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 = []
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.stage_id and task.stage_id.fold) or (task.user_id.id <> uid):
close.append(task.id)
else:
up.append(task.id)
if up:
obj_task.write(cr, uid, up, {'timebox_id':ids[0]})
if close:
obj_task.write(cr, uid, close, {'timebox_id':False})
return {}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_project_gtd_empty" model="ir.ui.view">
<field name="name">Empty Timebox</field>
<field name="model">project.timebox.empty</field>
<field name="arch" type="xml">
<form string="Empty Timebox" version="7.0">
<label string="Timebox Empty Process Completed Successfully." />
</form>
</field>
</record>
<record id="action_project_gtd_empty" model="ir.actions.act_window">
<field name="name">Empty Timebox</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">project.timebox.empty</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_project_gtd_empty"/>
<field name="context">{'record_id' : active_id}</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="project_gtd_empty_values">
<field name="model_id" ref="model_project_gtd_timebox" />
<field name="name">Empty Timebox</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_project_gtd_empty'))" />
<field name="key">action</field>
<field name="model">project.gtd.timebox</field>
</record>
</data>
</openerp>

View File

@ -1,60 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero 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 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import fields, osv
class project_timebox_fill(osv.osv_memory):
_name = 'project.timebox.fill.plan'
_description = 'Project Timebox Fill'
_columns = {
'timebox_id': fields.many2one('project.gtd.timebox', 'Get from Timebox', required=True),
'timebox_to_id': fields.many2one('project.gtd.timebox', 'Set to Timebox', required=True),
'task_ids': fields.many2many('project.task', 'project_task_rel', 'task_id', 'fill_id', 'Tasks selection')
}
def _get_from_tb(self, cr, uid, context=None):
ids = self.pool.get('project.gtd.timebox').search(cr, uid, [], context=context)
return ids and ids[0] or False
def _get_to_tb(self, cr, uid, context=None):
if context is None:
context = {}
if 'active_id' in context:
return context['active_id']
return False
_defaults = {
'timebox_id': _get_from_tb,
'timebox_to_id': _get_to_tb,
}
def process(self, cr, uid, ids, context=None):
if not ids:
return {}
data = self.read(cr, uid, ids, [], context=context)
if not data[0]['task_ids']:
return {}
self.pool.get('project.task').write(cr, uid, data[0]['task_ids'], {'timebox_id':data[0]['timebox_to_id'][0]})
return {'type': 'ir.actions.act_window_close'}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_project_gtd_fill" model="ir.ui.view">
<field name="name">Plannify Timebox</field>
<field name="model">project.timebox.fill.plan</field>
<field name="arch" type="xml">
<form string="Plannify Timebox" version="7.0">
<group col="4">
<field name="timebox_id" widget="selection" options='{"no_open": True}'/>
<field name="timebox_to_id" widget="selection"/>
</group>
<field name="task_ids" domain="[('timebox_id','=',timebox_id),('state','=','open')]" />
<footer>
<button name="process" string="Add to Timebox" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="action_project_gtd_fill" model="ir.actions.act_window">
<field name="name">Plannify Timebox</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">project.timebox.fill.plan</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_project_gtd_fill"/>
<field name="context">{'record_id' : active_id}</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="project_gtd_fill_values">
<field name="model_id" ref="model_project_gtd_timebox" />
<field name="name">Plannify Timebox</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_project_gtd_fill'))" />
<field name="key">action</field>
<field name="model">project.gtd.timebox</field>
</record>
</data>
</openerp>