summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2010-10-04 20:47:57 +0200
committerFabien Pinckaers <fp@tinyerp.com>2010-10-04 20:47:57 +0200
commit3fe4d84627ff12758dfbb7ea1c10fe71f1cd1041 (patch)
tree3cb243e2c0eb4a283695e1b01b0a8927d3c65e8b
parent2ab8afb1258b20efab9d413f766ef7fe402abe60 (diff)
[IMP] project and gtd
bzr revid: fp@tinyerp.com-20101004184757-bb33et0o5cav8fuk
-rw-r--r--addons/project/project.py5
-rw-r--r--addons/project/project_view.xml21
-rw-r--r--addons/project_gtd/project_gtd.py10
-rw-r--r--addons/project_gtd/project_gtd_view.xml3
4 files changed, 22 insertions, 17 deletions
diff --git a/addons/project/project.py b/addons/project/project.py
index 996e79a1f8b..94828395cbf 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -373,6 +373,11 @@ class task(osv.osv):
return res
+ def onchange_remaining(self, cr, uid, ids, remaining=0.0, planned = 0.0):
+ if remaining and not planned:
+ return {'value':{'planned_hours': remaining}}
+ return {}
+
def onchange_planned(self, cr, uid, ids, planned = 0.0, effective = 0.0):
return {'value':{'remaining_hours': planned - effective}}
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 69833383efe..b0332a7ca27 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -207,7 +207,7 @@
<form string="Task edition">
<group colspan="6" col="6">
<field name="name" select="1"/>
- <field name="project_id" required="1" select="1" domain="[('user_id','=',uid)]"/>
+ <field name="project_id" select="1" domain="[('user_id','=',uid)]"/>
<field name="total_hours" widget="float_time"/>
<field name="date_deadline" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
<field name="user_id" select="1" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
@@ -305,12 +305,11 @@
<tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0 and state in ('pending');red:date_deadline and (date_deadline&gt;current_date) and (state in ('draft','open'));black:state not in ('cancelled','done')" string="Tasks">
<field name="sequence" invisible="not context.get('seq_visible', False)"/>
<field name="name"/>
- <field name="project_id" icon="gtk-indent" domain="['|',('user_id','=',uid),('members','=',uid)]"/>
- <field name="user_id"/>
+ <field name="project_id" icon="gtk-indent" domain="['|',('user_id','=',uid),('members','=',uid)]" invisible="context.get('user_invisible', False)"/>
+ <field name="user_id" invisible="context.get('user_invisible', False)"/>
<field name="delegated_user_id" invisible="context.get('show_delegated', True)"/>
- <field name="planned_hours"/>
- <field name="remaining_hours" widget="float_time" sum="Remaining Hours" invisible="context.get('set_visible',False)"/>
- <field name="delay_hours"/>
+ <field name="remaining_hours" widget="float_time" sum="Remaining Hours" on_change="onchange_remaining(remaining_hours,planned_hours)"/>
+ <field name="planned_hours" widget="float_time" invisible="1"/>
<field name="date_deadline" invisible="context.get('set_visible',False)"/>
<field name="type_id" groups="base.group_extended" invisible="context.get('set_visible',False)"/>
<button name="next_type" invisible="context.get('set_visible',False)"
@@ -383,10 +382,10 @@
<filter string="In Progress" domain="[('state','=','open')]" help="In Progress Tasks" icon="terp-camera_test"/>
<filter string="Pending" domain="[('state','=','pending')]" context="{'show_delegated':False}" help="Pending Tasks" icon="terp-gtk-media-pause"/>
<separator orientation="vertical"/>
- <filter name="edit"
- string="Edit" context="{'set_editable':True,'seq_visible': True}"
- icon="gtk-execute"
- groups="base.group_extended"/>
+ <filter name="edit"
+ string="Edit" context="{'set_editable':True,'seq_visible': True}"
+ icon="gtk-execute"
+ groups="base.group_extended"/>
<separator orientation="vertical"/>
<filter string="Deadlines" domain="[('date_deadline','&lt;&gt;',False)]" help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/>
<separator orientation="vertical"/>
@@ -497,7 +496,7 @@
<act_window context="{'search_default_user_id': [active_id]}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
<act_window
- context="{'search_default_project_id': [active_id]}"
+ context="{'search_default_project_id': [active_id]}"
id="act_project_project_2_project_task_all"
name="Tasks"
res_model="project.task"
diff --git a/addons/project_gtd/project_gtd.py b/addons/project_gtd/project_gtd.py
index 47c7c02cba8..e8008b65357 100644
--- a/addons/project_gtd/project_gtd.py
+++ b/addons/project_gtd/project_gtd.py
@@ -106,19 +106,19 @@ class project_task(osv.osv):
timebox_obj = self.pool.get('project.gtd.timebox')
if res['type'] == 'search':
tt = timebox_obj.browse(cr, uid, timebox_obj.search(cr,uid,[]))
- search_extended ='''<newline/><group col="%d" expand="0" string="%s" groups="project_gtd.group_project_getting">''' % (len(tt)+7,_('Getting Things Done'))
- search_extended += '''<filter domain="[('timebox_id','=', False)]" context="{'set_editable':True,'set_visible':True,'gtd_visible':True}" icon="gtk-new" help="Undefined Timebox" string="%s"/>''' % (_('Inbox'),)
+ search_extended ='''<newline/><group col="%d" expand="1" string="%s" groups="project_gtd.group_project_getting">''' % (len(tt)+7,_('Getting Things Done'))
+ search_extended += '''<filter domain="[('timebox_id','=', False)]" context="{'set_editable':True,'set_visible':True,'gtd_visible':True,'user_invisible':True}" icon="gtk-new" help="Undefined Timebox" string="%s"/>''' % (_('Inbox'),)
+ search_extended += '''<filter context="{'set_editable':True,'set_visible':True,'gtd_visible':True,'user_invisible':True}" icon="gtk-new" help="Undefined Timebox" string="%s"/>''' % (_('GTD'),)
search_extended += '''<separator orientation="vertical"/>'''
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="{'gtd_visible':True}"/>'''
+ search_extended += '''<filter domain="[('timebox_id','=', ''' + str(time.id) + ''')]" icon="''' + icon + '''" string="''' + time.name + '''" context="{'gtd_visible':True, 'user_invisible': True}"/>'''
search_extended += '''
<separator orientation="vertical"/>
- <field name="context_id" select="1" widget="selection" />
- <field name="priority" select="1" />
+ <field name="context_id" select="1" widget="selection"/>
</group>
</search> '''
if search_extended:
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index 99e87fcb325..fc05ee00e61 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -77,9 +77,10 @@
<field name="inherit_id" ref="project.view_task_tree2" />
<field name="arch" type="xml">
<field name="remaining_hours" position="after">
- <button name="prev_timebox" type="object" icon="gtk-go-back" string="Previous" states="draft,pending,open" groups="project_gtd.group_project_getting" invisible=" not context.get('gtd_visible',False)"/>
<field string="Timebox" name="timebox_id" groups="project_gtd.group_project_getting" invisible=" not context.get('gtd_visible', False)"/>
+ <button name="prev_timebox" type="object" icon="gtk-go-back" string="Previous" states="draft,pending,open" groups="project_gtd.group_project_getting" invisible=" not context.get('gtd_visible',False)"/>
<button name="next_timebox" type="object" icon="gtk-go-forward" string="Next" states="draft,pending,open" groups="project_gtd.group_project_getting" invisible=" not context.get('gtd_visible',False)"/>
+ <field name="context_id" groups="project_gtd.group_project_getting" invisible="not context.get('gtd_visible', False)" widget="selection"/>
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks" invisible="not context.get('set_visible',False)"/>
</field>
</field>