[IMP] Project & project_gtd: Usebility changes
[odoo/odoo.git] / addons / project / project_view.xml
index ef7bb92..8505bc2 100644 (file)
@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
+    
         <menuitem
             icon="terp-project" id="base.menu_main_pm"
             name="Project" sequence="10"
-            groups="group_project_manager,group_project_user"/>
+            groups="group_project_manager,group_project_user,base.group_system"/>
 
         <menuitem id="menu_project_management" name="Project Management" parent="base.menu_main_pm" sequence="1"/>
-        <menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
+        <menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60" groups="base.group_system"/>
 
         <!-- Project -->
         <record id="edit_project" model="ir.ui.view">
@@ -19,9 +20,9 @@
                     <group colspan="6" col="6">
                         <field name="name" string="Project Name" select="1"/>
                         <field name="parent_id" string="Parent Project"/>
-                        <field name="user_id" string="Project Manager" select="1"/>
-                        <field name="date_start"/>
-                        <field name="date"/>
+                        <field name="user_id" string="Project Manager" select="1" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
+                        <field name="date_start" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
+                        <field name="date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
                         <field name="progress_rate" widget="progressbar"/>
                     </group>
                     <notebook colspan="4">
                             <group col="2" colspan="2" name="misc">
                                 <separator colspan="2" string="Miscelleanous"/>
                                 <field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
-                                <field name="project_escalation_id"/>
                                 <field name="warn_manager"/>
                             </group>
-
                             <newline/>
                             <group col="9" colspan="8">
-                                <field name="state" select="1"/>
+                                <field name="state" select="1" readonly="1"/>
                                 <button name="set_template" string="Set as Template" type="object" states="open" icon="gtk-convert"/>
-                                <button name="set_open" string="Reactivate Project" type="object" states="pending,cancelled,done" icon="gtk-ok"/>
+                                <button name="set_open" string="Reactivate Project" type="object" states="pending,cancelled,close" icon="gtk-ok"/>
                                 <button name="set_pending" string="Pending" type="object" states="open" icon="gtk-media-pause"/>
-                                <button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
                                 <button name="set_done" string="Done" type="object" states="open,pending" icon="gtk-jump-to"/>
+                                <button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
                                 <button name="reset_project" string="Reset as Project" type="object" states="template" icon="gtk-convert"/>
                                 <button
                                     string="New Project Based on Template"
@@ -63,7 +62,7 @@
                         </page>
                         <page groups="base.group_extended" string="Partner Info">
                             <field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1"/>
-                            <field domain="[('partner_id','=',partner_id)]" name="contact_id"/>
+                            <field domain="[('partner_id','=',partner_id)]" name="contact_id" string="Contact Address"/>
                             <field name="warn_customer"/>
                             <newline/>
                             <separator colspan="2" string="Mail Header"/>
             </field>
         </record>
 
-        <record id="view_project_list" model="ir.ui.view">
-            <field name="name">project.project.list</field>
-            <field name="model">project.project</field>
-            <field name="type">tree</field>
-            <field name="priority" eval="5"/>
-            <field name="arch" type="xml">
-                <tree colors="blue:state in ('pending');black:state in ('open','template','close');gray:state in ('cancelled') " string="Projects">
-                    <field name="complete_name" string="Project Name"/>
-                    <field name="user_id" string="Project Manager"/>
-                    <field name="partner_id" string="Partner"/>
-                    <field name="parent_id" invisible="1"/>
-                    <field name="effective_hours" widget="float_time"/>
-                    <field name="total_hours" widget="float_time"/>
-                    <field name="state"/>
-                </tree>
-            </field>
-        </record>
-
        <record id="view_project_project_filter" model="ir.ui.view">
             <field name="name">project.project.select</field>
             <field name="model">project.project</field>
             <field name="arch" type="xml">
                 <search string="Search Project">
                    <group col='15' colspan='4'>
-                       <filter icon="terp-document-new" string="Draft" domain="[('state', 'in',('draft',))]" help="Draft Projects" default="1"/>
                        <filter icon="terp-check" string="Current" name="Current" domain="[('state', 'in',('open','pending'))]" help="Open and Pending Projects" default="1"/>
                        <separator orientation="vertical"/>
                        <filter icon="terp-personal" string="Manager" name="Manager" domain="[('user_id', '=', uid)]" help="Projects in which I am a manager."/>
-                       <filter icon="terp-personal-" string="Member" domain="['|',('user_id', '=', uid),('members', '=', uid)]" help="Projects in which I am a member." default="1"/>
+                       <filter icon="terp-personal+" string="Member" domain="['|',('user_id', '=', uid),('members', '=', uid)]" help="Projects in which I am a member." default="1"/>
                        <separator orientation="vertical"/>
                        <field name="name" string="Project Name"/>
                        <field name="user_id" string="Project Manager" default="1"/>
                    </group>
                    <newline />
                     <group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
-                       <filter string="Parent" name="Parent"  icon="terp-personal" domain = "[]" context="{'group_by':'parent_id'}"/>
-                        <filter string="Users" name="Users"  icon="terp-personal" domain = "[]" context="{'group_by':'user_id'}"/>
+                        <filter string="User" name="Users"  icon="terp-personal" domain = "[]" context="{'group_by':'user_id'}"/>
                         <filter string="Partner" name="Partner"  icon="terp-personal" domain = "[]" context="{'group_by':'partner_id'}"/>
-                      </group>
+                         <separator orientation="vertical"/>
+                        <filter string="Parent" name="Parent"  icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
+                    </group>
                </search>
             </field>
         </record>
             <field name="type">tree</field>
             <field name="field_parent">child_ids</field>
             <field name="arch" type="xml">
-                <tree colors="red:date&lt;current_date and state in ('open');blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects">
+                <tree colors="red:date and (date&lt;current_date) and (state in ('open'));blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects">
                     <field name="sequence" invisible="1"/>
+                    <field name="date" invisible="1"/>
                     <field name="name" string="Project Name"/>
                     <field name="user_id" string="Project Manager"/>
                     <field name="partner_id" string="Partner"/>
+                    <field name="parent_id" invisible="1"/>
                     <field name="planned_hours" widget="float_time"/>
                     <field name="total_hours" widget="float_time"/>
                     <field name="effective_hours" widget="float_time"/>
             <field name="view_id" ref="view_project"/>
             <field name="search_view_id" ref="view_project_project_filter"/>
             <field name="context">{'search_default_Current':1}</field>
+            <field name="help">Consult and define your projects here. A project contains a set of related activities that will be performed by your company. Any project can be put into a hierarchy, as a child of a Parent Project. This allows you to design large project structure very useful for work organization.</field>
         </record>
         <menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_project_management" sequence="1"/>
 
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <form string="Reevaluate Hours">
-                    <separator colspan="4" string="Change Remaining Hours"/>
+                    <separator colspan="4" string="Change Remaining Time"/>
                     <newline/>
                     <field name="remaining_hours" widget="float_time"/>
                     <separator string="" colspan="4"/>
                 <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),('members','=',uid)]"/>
+                        <field name="project_id" required="1" select="1" domain="[('user_id','=',uid)]"/>
                         <field name="total_hours" widget="float_time"/>
-                        <field name="date_deadline"/>
-                        <field name="user_id" select="1"/>
+                        <field name="date_deadline" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
+                        <field name="user_id" select="1" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}"/>
                         <field name="progress" widget="progressbar"/>
                     </group>
                     <notebook colspan="4">
                         <page string="Information">
+                            <group col="2" colspan="2">
+                                <field
+                                    name="planned_hours"
+                                    widget="float_time"
+                                    attrs="{'readonly':[('state','!=','draft')]}"
+                                    on_change="onchange_planned(planned_hours, effective_hours)"/>
+                                <field name="effective_hours" widget="float_time"/>
+                            </group>
                             <group col="3" colspan="2">
-                            <field
-                                name="planned_hours"
-                                widget="float_time"
-                                attrs="{'readonly':[('state','!=','draft')]}"
-                                on_change="onchange_planned(planned_hours, effective_hours)"/>
                                 <field name="remaining_hours" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" colspan="2"/>
                                 <button name="%(action_config_compute_remaining)d" string="Reevaluate" type="action" colspan="1" target="new" states="open,pending" icon="gtk-edit"/>
-                            </group>
-                            <group col="2" colspan="2">
-                            <field name="delay_hours" widget="float_time"/>
-                            <field name="effective_hours" widget="float_time"/>
+
+                                <field name="delay_hours" widget="float_time"/>
                             </group>
 
                             <field colspan="4" name="description" nolabel="1"  attrs="{'readonly':[('state','=','done')]}" widget="text_wiki"/>
                                 <separator string="Dates" colspan="2"/>
                                 <field name="date_start"/>
                                 <field name="date_end"/>
+                                <field name="create_date"/>
                             </group>
                             <separator string="Miscelleanous" colspan="4"/>
                             <field name="partner_id"/>
                             <field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
                             <group col="4" colspan="2">
-                                <field name="type" widget="selection" />
+                                <field name="type_id" widget="selection" readonly="1"/>
                                 <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/>
                                 <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/>
                             </group>
-                            <field name="active"/>
                             <separator colspan="4" string="Notes"/>
                             <field colspan="4" name="notes" nolabel="1"/>
                         </page>
             <field eval="2" name="priority"/>
             <field name="arch" type="xml">
                 <tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0 and state in ('pending');red:bool(date_deadline) and (date_deadline&lt;current_date) and (state in ('draft','open'));black:state not in ('cancelled','done')" string="Tasks">
-                    <field name="sequence" />
+                    <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="delegated_user_id" invisible="context.get('show_delegated', True)"/>
-                    <field name="planned_hours" widget="float_time" />
-                    <field name="total_hours" widget="float_time"/>
                     <field name="remaining_hours" widget="float_time" sum="Remaining Hours" invisible="context.get('set_visible',False)"/>
                     <field name="date_deadline" invisible="context.get('set_visible',False)"/>
-                    <field name="type" groups="base.group_extended" invisible="context.get('set_visible',False)"/>
-                    <field name="date_start" invisible="1"/>
-                    <field name="date_end" invisible="1"/>
                     <button name="next_type" invisible="context.get('set_visible',False)"
                         states="draft,open,pending"
                         string="Change Stage"
                         icon="gtk-go-forward"
                         groups="base.group_extended"
                         help="Change Type"/>
+                    <field name="type_id" groups="base.group_extended" invisible="context.get('set_visible',False)"/>
+                    <field name="date_start" invisible="1"/>
+                    <field name="date_end" invisible="1"/>
                     <field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
                     <field name="state" invisible="context.get('set_visible',False)"/>
                     <button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
             <field name="arch" type="xml">
                <search string="Task Edition">
                     <group col="20" colspan="4">
-                        <filter string="Current" domain="[('state','in',('open','draft'))]" help="Draft, Open and Pending Tasks" icon="terp-check" default="1"/>
+                        <filter string="Current" domain="[('state','in',('open','draft'))]"  name="current" help="Draft, Open and Pending Tasks" icon="terp-check" default="1"/>
                         <filter string="In Progress" domain="[('state','=','open')]" help="Open 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"/>
+                        <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"/>
                         <field name="name" select="1"/>
                         <field name="project_id" select="1">
-                             <filter domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-folder-blue"/>
+                             <filter domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-personal"/>
                         </field>
                         <field name="user_id" select="1">
-                            <filter domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="gtk-execute" separator="1"/>
+                            <filter domain="[('user_id','=',False)]"  help="Unassigned Tasks" icon="terp-personal" separator="1"/>
                         </field>
                     </group>
                     <newline/>
                     <group expand="0" string="Group By..." colspan="4" col="20">
                         <filter string="Users" name="group_user_id" icon="terp-personal" domain="[]"  context="{'group_by':'user_id'}"/>
-                        <filter string="Project" name="group_project_id" icon="terp-folder-blue" domain="[]" context="{'group_by':'project_id'}" default = "1"/>
-                        <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'type'}"/>
+                        <separator orientation="vertical"/>
+                        <filter string="Project" name="group_project_id" icon="terp-folder-blue" domain="[]" context="{'group_by':'project_id'}"/>
+                        <separator orientation="vertical"/>
+                        <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'type_id'}"/>
                         <filter string="State" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                         <separator orientation="vertical"/>
+                        <filter string="Start Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}"/>
+                        <filter string="End Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_end'}"/>
                         <filter string="Deadline" icon="terp-gnome-cpu-frequency-applet+" domain="[]" context="{'group_by':'date_deadline'}"/>
-                        <filter string="Start Date" icon="terp-gtk-jump-to-ltr" domain="[]" context="{'group_by':'date_start'}"/>
-                        <filter string="End Date" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'date_end'}"/>
                     </group>
                 </search>
             </field>
             <field name="view_mode">tree,form,calendar,gantt,graph</field>
             <field eval="False" name="filter"/>
             <field name="view_id" ref="view_task_tree2"/>
-            <field name="context">{"search_default_project_id":project_id,'search_default_user_id':uid, 'search_default_current': 1}</field>
+            <field name="context">{"search_default_project_id":project_id, "search_default_user_id":uid, "search_default_current": 1}</field>
             <field name="search_view_id" ref="view_task_search_form"/>
+            <field name="help">In OpenERP, a project is made of a set of activities (or tasks) for completion.A list view allows the manager to quickly check for task status and make it evolve, delegate task, etc. A search tool allows a multi-criteria sort of activities.
 
+Issues like bugs in a system, client complain, materials breakdown are collected here.A list view allows the manager to quickly check for them, assign them, make their status evolved.
+</field>
         </record>
         <menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_project_management" sequence="2"/>
 
                 <form string="Task Stage">
                     <field name="name" select="1"/>
                     <field name="sequence"/>
-                    <field colspan="4" name="description"/>
+                    <separator string="Description" colspan="4"/>
+                    <field colspan="4" name="description" nolabel="1"/>
                 </form>
             </field>
         </record>
         </record>
 
         <record id="open_task_type_form" model="ir.actions.act_window">
-            <field name="name">Types</field>
+            <field name="name">Task Stages</field>
             <field name="res_model">project.task.type</field>
             <field name="view_type">form</field>
             <field name="view_id" ref="task_type_tree"/>
         </record>
-        <menuitem id="menu_tasks_config" name="Tasks" parent="project.menu_definitions" sequence="1"/>
+
+        <menuitem id="menu_tasks_config" name="Tasks" parent="project.menu_definitions" sequence="1" groups="base.group_system"/>
         <menuitem action="open_task_type_form" id="menu_task_types_view" parent="menu_tasks_config" sequence="1"/>
 
         <act_window domain="[('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"/>
             </field>
         </record>
 
-
       <!--     User Form-->
       <record id="view_project_users_form_simple" model="ir.ui.view">
           <field name="name">res.users.project.form1</field>
          <field eval="18" name="priority"/>
          <field name="arch" type="xml">
             <page string="Current Activity" position="inside">
-                <field name="context_project_id" completion="1" context="{'user_prefence':True}" widget="selection"/>
+                <field name="context_project_id" completion="1" context="{'user_prefence':True}" widget="selection" readonly="0"/>
             </page>
        </field>
     </record>
         </record>
 
         <record id="action_view_project_messages_tree" model="ir.actions.act_window">
-            <field name="name">Messages</field>
+            <field name="name">Project Messages</field>
             <field name="res_model">project.message</field>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
             <field name="view_id" ref="view_project_message_tree"/>
             <field name="context">{"search_default_project_id":project_id, "search_default_user_id":uid}</field>
             <field name="search_view_id" ref="view_project_message_search"/>
+            <field name="help">An in-project messagery system permits an efficient and trackable communication between project members. The messages are kept in the system and can then be used for post-analysis.</field>
        </record>
 
         <menuitem action="action_view_project_messages_tree" id="menu_message_tree" parent="menu_project_management" sequence="11"/>
         <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"/>
 
         <act_window domain="[('project_id', '=', active_id)]" id="act_project_messages" name="Messages" res_model="project.message" src_model="project.project"/>
+        
     </data>
 </openerp>