[IMP] Improved views for project and project_gtd

bzr revid: fp@tinyerp.com-20091119001815-n9joopr89gruf4sl
This commit is contained in:
Fabien Pinckaers 2009-11-19 01:18:15 +01:00
parent 13b40cc1e2
commit 0a819df594
5 changed files with 83 additions and 95 deletions

View File

@ -16,7 +16,7 @@
<field name="name" select="1"/>
<field name="parent_id"/>
<field name="manager" select="1"/>
<field name="date_start"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="progress_rate" widget="progressbar"/>
</group>
@ -67,7 +67,7 @@
</page>
<page string="Tasks">
<field name="tasks" nolabel="1" attrs="{'readonly':[('state','in',['cancelled','done'])]}">
<tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence"/>
<field name="name"/>
<field name="user_id"/>
@ -80,7 +80,7 @@
<field name="remaining_hours" invisible="1"/>
</tree>
</field>
</page>
</page>
<page string="Notes">
<field colspan="4" name="notes" nolabel="1"/>
</page>
@ -113,17 +113,17 @@
<field name="arch" type="xml">
<search string="Search Project">
<group col='8' colspan='4'>
<filter icon="terp-project" string="My Projects" domain="[('manager', '=', uid)]" help="My Projects"/>
<filter icon="terp-project" string="Templates" domain="[('state','=','template')]" help="Template Projects"/>
<separator orientation="vertical"/>
<field name="name" select='1'/>
<field name="partner_id" select='1'/>
<field name="state" select="1"/>
<filter icon="terp-project" string="My Projects" domain="[('manager', '=', uid)]" help="My Projects"/>
<filter icon="terp-project" string="Templates" domain="[('state','=','template')]" help="Template Projects"/>
<separator orientation="vertical"/>
<field name="name" select='1'/>
<field name="partner_id" select='1'/>
<field name="state" select="1"/>
</group>
</search>
</field>
</record>
<record id="view_project" model="ir.ui.view">
<field name="name">project.project.tree</field>
<field name="model">project.project</field>
@ -150,7 +150,7 @@
<field name="view_type">form</field>
<field name="domain">[]</field>
<field name="view_id" ref="view_project"/>
<field name="search_view_id" ref="view_project_project_filter"/>
<field name="search_view_id" ref="view_project_project_filter"/>
</record>
<menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_all_project"/>
@ -161,7 +161,7 @@
<field name="domain">[('state','=','open')]</field>
<field name="view_id" ref="view_project"/>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_project_project_filter"/>
<field name="search_view_id" ref="view_project_project_filter"/>
</record>
<menuitem action="open_view_project_open" id="menu_open_view_project_open" groups="base.group_extended_menu" parent="menu_open_view_project_all"/>
@ -234,7 +234,7 @@
<field name="domain">[('manager', '=', uid)]</field>
<field name="view_id" ref="view_my_project"/>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_project_project_filter"/>
<field name="search_view_id" ref="view_project_project_filter"/>
</record>
<menuitem action="open_view_my_project" id="menu_open_view_my_project" parent="menu_all_project" groups="base.group_extended_menu"
sequence="1"/>
@ -246,7 +246,7 @@
<field name="domain">[('manager', '=', uid),('state','=','open')]</field>
<field name="view_id" ref="view_my_project"/>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_project_project_filter"/>
<field name="search_view_id" ref="view_project_project_filter"/>
</record>
<menuitem
action="open_view_my_project_my_run"
@ -266,7 +266,7 @@
id="menu_open_view_my_project_open"
parent="project.menu_all_project"/>
<!-- Wizard for compute remaining hours -->
<!-- Wizard for compute remaining hours -->
<record id="view_config_compute_remaining" model="ir.ui.view">
<field name="name">Compute Remaining Hours </field>
@ -285,7 +285,7 @@
</field>
</record>
<record id="action_config_compute_remaining" model="ir.actions.act_window">
<record id="action_config_compute_remaining" model="ir.actions.act_window">
<field name="name">Compute Remaining Hours</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">config.compute.remaining</field>
@ -305,7 +305,7 @@
<group colspan="6" col="6">
<field name="name" select="1"/>
<field name="project_id" required="1" select="1"/>
<field name="total_hours" widget="float_time"/>
<field name="total_hours" widget="float_time"/>
<field name="date_deadline" select="2"/>
<field name="user_id" select="1"/>
<field name="progress" widget="progressbar"/>
@ -314,9 +314,9 @@
<page string="Information">
<group col="3" colspan="2">
<field
name="planned_hours"
name="planned_hours"
widget="float_time"
attrs="{'readonly':[('state','!=','draft')]}"
attrs="{'readonly':[('state','!=','draft')]}"
on_change="onchange_planned(planned_hours,effective_hours)"/>
<field name="remaining_hours" select="2" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" colspan="2"/>
<button name="%(action_config_compute_remaining)d" string="Review" type="action" colspan="1" target="new" states="open,pending" icon="gtk-edit"/>
@ -348,8 +348,8 @@
</group>
</page>
<page groups="base.group_extended" string="Delegations">
<field name="parent_id"/>
<page groups="base.group_extended" string="Delegations">
<field name="parent_id"/>
<newline/>
<field colspan="4" height="150" name="child_ids" nolabel="1" attrs="{'readonly':[('state','!=','draft')]}">
<tree string="Delegated tasks">
@ -361,7 +361,7 @@
<field name="remaining_hours" widget="float_time"/>
<field name="date_deadline"/>
</tree>
</field>
</field>
<field colspan="4" name="history" nolabel="1"/>
</page>
<page groups="base.group_extended" string="Extra Info" attrs="{'readonly':[('state','=','done')]}">
@ -392,7 +392,7 @@
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence" string="Seq."/>
<field name="name"/>
<field name="project_id" icon="gtk-indent"/>
@ -408,14 +408,14 @@
</tree>
</field>
</record>
<record id="view_task_tree3" model="ir.ui.view">
<field name="name">project.task.tree</field>
<field name="model">project.task</field>
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree editable="top" colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<tree editable="top" colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence" string="Seq."/>
<field name="name"/>
<field name="project_id" icon="gtk-indent"/>
@ -438,7 +438,7 @@
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence" string="Seq."/>
<field name="name"/>
<field name="project_id"/>
@ -499,26 +499,26 @@
<field name="arch" type="xml">
<search string="Task Edition">
<group col="8" colspan="4">
<filter string="Draft" domain="[('state','=','draft')]" help="Draft Tasks" icon="terp-project"/>
<filter string="Draft" domain="[('state','=','draft')]" help="Draft Tasks" icon="terp-project"/>
<filter string="Open" domain="[('state','=','open')]" help="Open Tasks" icon="terp-project"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Tasks" icon="terp-project"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="project_id" select="1" widget="selection">
<filter domain="[('manager_id','=',False)]" help="Unassigned Project" icon="terp-project"/>
<filter domain="[('manager_id','=',False)]" help="Unassigned Project" icon="terp-project"/>
</field>
</group>
<group col="4" colspan="1">
<field name="user_id" select="1" widget="selection">
<filter domain="[('user_id','=',uid)]" help="My Tasks" icon="gtk-execute"/>
<filter domain="[('user_id', 'child_of', [uid])]" help="My Department tasks" icon="gtk-execute" separator="1"/>
<filter domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="gtk-execute" separator="1"/>
</field>
<field name="user_id" select="1" widget="selection">
<filter domain="[('user_id','=',uid)]" help="My Tasks" icon="gtk-execute"/>
<filter domain="[('user_id', 'child_of', [uid])]" help="My Department tasks" icon="gtk-execute" separator="1"/>
<filter domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="gtk-execute" separator="1"/>
</field>
</group>
</search>
</field>
</record>
<record id="action_view_task" model="ir.actions.act_window">
<field name="name">All Tasks</field>
<field name="res_model">project.task</field>
@ -526,7 +526,7 @@
<field name="view_mode">tree,form,calendar,gantt,graph</field>
<field eval="False" name="view_id"/>
<field eval="True" name="filter"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_tasks"/>
@ -560,9 +560,9 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('user_id', '=', uid),('state','=','pending')]</field>
<field eval="True" name="filter"/>
<field eval="True" name="filter"/>
<field name="view_id" ref="my_pending_task"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task5_pending" id="menu_tasks_yours_pending" groups="base.group_extended_menu" parent="menu_action_view_task4"/>
@ -575,7 +575,7 @@
<field eval="True" name="filter"/>
<field name="view_id" ref="view_task_tree3"/>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task5_prog" id="menu_tasks_yours_prog" parent="menu_action_view_task4" sequence="1"/>
@ -587,7 +587,7 @@
<field name="domain">[('user_id', '=', uid),('state','=','open')]</field>
<field name="view_id" ref="view_task_tree3"/>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task5_prog_prog" id="menu_tasks_yours_prog_prog" groups="base.group_extended_menu" parent="menu_tasks_yours_prog"/>
@ -648,8 +648,8 @@
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task5_departments_prog_draft" id="menu_tasks_yours_departments_prog_draft" groups="base.group_extended_menu" parent="menu_tasks_yours_departments_prog"/>
<record id="action_view_task_overpassed_draft" model="ir.actions.act_window">
<record id="action_view_task_overpassed_draft" model="ir.actions.act_window">
<field name="name">Overpassed Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
@ -658,7 +658,6 @@
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<record id="action_view_task_new" model="ir.actions.act_window">
<field name="name">New Task</field>
<field name="res_model">project.task</field>
@ -673,7 +672,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph,gantt</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="domain">[('state','=','open')]</field>
</record>
<menuitem action="action_view_task6_prog" id="menu_action_view_task6_prog" parent="project.menu_action_view_task" groups="base.group_extended_menu"/>
@ -685,7 +684,7 @@
<field name="view_mode">tree,form,calendar,graph,gantt</field>
<field name="domain">[('user_id', '=', False)]</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="search_view_id" ref="view_task_search_form"/>
</record>
<menuitem action="action_view_task7" id="menu_action_view_task7" parent="project.menu_action_view_task" groups="base.group_extended_menu"/>
@ -782,6 +781,6 @@
<act_window domain="[('user_id', '=', active_id),('state', '&lt;&gt;', 'cancelled'),('state', '&lt;&gt;', 'done')]" id="act_res_users_2_project_task_opened" name="Assigned tasks" res_model="project.task" src_model="res.users" view_mode="tree,form,gantt,calendar,graph" view_type="form"/>
<act_window domain="[('user_id', '=', active_id),('date', '&gt;=', time.strftime('%Y-%m-01'))]" id="act_res_users_2_project_task_work_month" name="Month works" res_model="project.task.work" src_model="res.users" view_mode="tree,form" view_type="form"/>
</data>
</openerp>

View File

@ -158,17 +158,20 @@ class project_task(osv.osv):
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
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':
search_extended ='''<newline/> <group colspan="2">'''
timebox_obj = self.pool.get('project.gtd.timebox')
for time in timebox_obj.browse(cr, uid, timebox_obj.search(cr,uid,[])):
tt = timebox_obj.browse(cr, uid, timebox_obj.search(cr,uid,[]))
search_extended ='''<newline/><group col="%d">''' % (len(tt)+6,)
search_extended += '''<filter domain="[('timebox_id','=', 0)]" icon="gtk-new" string="Inbox"/>'''
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) + ''')]" help = "Task Related to ''' + time.name + ''' Timeboxs" icon="''' + icon + '''" string="''' + time.name + '''"/>'''
search_extended += '''</group>
<group colspan="2">
search_extended += ''' <filter domain="[('timebox_id','=', ''' + str(time.id) + ''')]" icon="''' + icon + '''" string="''' + time.name + '''"/>'''
search_extended += '''
<separator orientation="vertical"/>
<field name="context_id" select="1" widget="selection"/>
<field name="priority" select="1"/>
</group>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record model="res.groups" id="group_project_getting">
<field name="name">Project / Getting</field>
</record>
</data>
<data>
<record model="res.groups" id="group_project_getting">
<field name="name">Project / Methodology / Getting Things Done</field>
</record>
</data>
</openerp>

View File

@ -4,7 +4,7 @@
<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="type">tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Context">
<field name="name"/>
@ -30,7 +30,7 @@
</record>
<menuitem name="Time Management" id="menu_open_gtd_time" parent="project.menu_definitions" groups="group_project_getting"/>
<menuitem name="Contexts" id="menu_open_gtd_time_contexts" groups="group_project_getting" parent="menu_open_gtd_time" action="open_gtd_context_tree"/>
<menuitem name="Contexts" id="menu_open_gtd_time_contexts" groups="group_project_getting" parent="menu_open_gtd_time" action="open_gtd_context_tree"/>
<record model="ir.ui.view" id="view_gtd_timebox_tree">
<field name="name">project.gtd.timebox.tree</field>
@ -39,7 +39,7 @@
<field name="arch" type="xml">
<tree string="Timebox">
<field name="sequence"/>
<field name="name"/>
<field name="name"/>
<field name="icon"/>
</tree>
</field>
@ -65,21 +65,20 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_gtd_timebox_tree"/>
</record>
</record>
<menuitem name="Timeboxes" id="menu_open_gtd_time_timeboxes" parent="menu_open_gtd_time" action="open_gtd_timebox_tree"/>
<record model="ir.ui.view" id="project_task_tree">
<menuitem name="Timeboxes" id="menu_open_gtd_time_timeboxes" parent="menu_open_gtd_time" action="open_gtd_timebox_tree"/>
<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="type">tree</field>
<field name="inherit_id" ref="project.view_task_tree2" />
<field name="arch" type="xml">
<field name="project_id" position="after">
<field name="timebox_id"/>
<button name="next_timebox" string="Next Timebox" type="object" icon="gtk-indent" attrs="{'invisible':[('timebox_id.type','=','other')]}"/>
<field name="project_id" position="after">
<field name="timebox_id"/>
<button name="next_timebox" string="Next Timebox" type="object" icon="gtk-indent" attrs="{'invisible':[('timebox_id.type','=','other')]}"/>
<button name="prev_timebox" string="Previous Timebox" type="object" icon="gtk-indent" attrs="{'invisible':[('timebox_id.type','=','daily')]}"/>
</field>
</field>
</field>
</record>
@ -90,8 +89,6 @@
<field name="inherit_id" ref="project.view_task_form2" />
<field name="arch" type="xml">
<field name="progress" position="after">
<newline/>
<separator string="Getting Things Done" colspan="6"/>
<newline/>
<field name="context_id" select="2" widget="selection"/>
<field name="timebox_id" select="1"/>
@ -99,49 +96,38 @@
</field>
</field>
</record>
<record id="view_project_task_tree2" model="ir.ui.view">
<field name="name">project.task.tree</field>
<field name="name">Tasks</field>
<field name="model">project.task</field>
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree editable="top" colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence" string="Seq."/>
<tree editable="top" colors="grey:state in ('done',);red:state=='cancelled'" string="Tasks">
<field name="name"/>
<field name="project_id" icon="gtk-indent"/>
<field name="user_id"/>
<field name="date_deadline"/>
<field name="remaining_hours" widget="float_time"/>
<field name="progress" widget="progressbar"/>
<field name="context_id" select="2" />
<field name="timebox_id" select="1"/>
<button name="next_timebox" string="Next Timebox" type="object" icon="gtk-print" />
<button name="prev_timebox" string="Previous Timebox" type="object" icon="gtk-indent"/>
<field name="priority"/>
<field name="state"/>
<button name="do_draft" states="open" string="Draft" type="object" icon="gtk-indent" help="For changing to draft state"/>
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state"/>
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks"/>
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause" help="For changing to pending state"/>
<button groups="base.group_extended" name="%(project.wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state"/>
<button name="%(project.wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
<field name="timebox_id" widget="selection"/>
<field name="planned_hours" widget="float_time"/>
<field name="state" invisible="1"/>
<button name="%(project.wizard_close_task)d" states="draft,pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_prject_task_tree">
<field name="name">project.task</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="view_id" ref="view_project_task_tree2"/>
<field name="search_view_id" ref="project.view_task_search_form"/>
<field name="search_view_id" ref="project.view_task_search_form"/>
</record>
<menuitem name="Tasks Inbox" groups="group_project_getting" id="menu_task_inbox" parent="project.menu_main" action="action_prject_task_tree"/>
<menuitem name="Todo List"
groups="group_project_getting"
id="menu_task_inbox"
parent="project.menu_main"
action="action_prject_task_tree"/>
<act_window name="My Inbox"
domain="[('user_id', '=', uid),('state','in',('draft','open'))]"

View File

@ -226,7 +226,7 @@
<field name="arch" type="xml">
<search string="Search Sales Order">
<group col='8' colspan='4'>
<filter icon="terp-sale" string="Quatation" domain="[('state','=','draft')]"/>
<filter icon="terp-sale" string="Quotation" domain="[('state','=','draft')]"/>
<filter icon="terp-sale" string="Running" domain="[('state','in',('manual','progress'))]"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>