diff options
| author | Fabien Pinckaers <fp@tinyerp.com> | 2010-10-04 20:47:57 +0200 |
|---|---|---|
| committer | Fabien Pinckaers <fp@tinyerp.com> | 2010-10-04 20:47:57 +0200 |
| commit | 3fe4d84627ff12758dfbb7ea1c10fe71f1cd1041 (patch) | |
| tree | 3cb243e2c0eb4a283695e1b01b0a8927d3c65e8b | |
| parent | 2ab8afb1258b20efab9d413f766ef7fe402abe60 (diff) | |
[IMP] project and gtd
bzr revid: fp@tinyerp.com-20101004184757-bb33et0o5cav8fuk
| -rw-r--r-- | addons/project/project.py | 5 | ||||
| -rw-r--r-- | addons/project/project_view.xml | 21 | ||||
| -rw-r--r-- | addons/project_gtd/project_gtd.py | 10 | ||||
| -rw-r--r-- | addons/project_gtd/project_gtd_view.xml | 3 |
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<0 and state in ('pending');red:date_deadline and (date_deadline>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','<>',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> |
