[MERGE] trunk-usability rco
[odoo/odoo.git] / addons / project / report / project_report_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <menuitem id="base.menu_project_report" name="Reporting"
6             groups="project.group_project_manager"
7             parent="base.menu_main_pm" sequence="50"/>
8
9         <record id="view_task_project_user_tree" model="ir.ui.view">
10             <field name="name">report.project.task.user.tree</field>
11             <field name="model">report.project.task.user</field>
12             <field name="type">tree</field>
13             <field name="arch" type="xml">
14                 <tree string="Tasks Analysis">
15                     <field name="name" invisible="1"/>
16                     <field name="project_id" invisible="1"/>
17                     <field name="user_id" invisible="1"/>
18                     <field name="date_deadline" invisible="1"/>
19                     <field name="state" invisible="1"/>
20                     <field name="date_start" invisible="1"/>
21                     <field name="date_end" invisible="1"/>
22                     <field name="company_id" invisible="1" groups="base.group_multi_company"/>
23                     <field name="partner_id" invisible="1"/>
24                     <field name="type_id" invisible="1"/>
25                     <field name="day" invisible="1"/>
26                     <field name="month" invisible="1"/>
27                     <field name="year" invisible="1"/>
28                     <field name="nbr" sum='# of tasks'/>
29                     <field name="no_of_days" sum="# of Days"/>
30                     <field name="total_hours" sum='Total Hours'/>
31                     <field name="hours_planned" sum='Planned Hours'/>
32                     <field name="remaining_hours" sum='Remaining Hours'/>
33                     <field name="hours_effective" sum='Effective Hours'/>
34                     <field name="hours_delay" sum='Avg. Plan.-Eff.'/>
35                     <field name="opening_days" sum='Days to Open'/>
36                     <field name="closing_days" sum='Days to Close'/>
37                     <field name="delay_endings_days" sum='OverPass delay'/>
38                     <field name="progress" sum='Progress' widget='progressbar'/>
39                 </tree>
40             </field>
41         </record>
42
43         <record id="view_task_project_user_graph" model="ir.ui.view">
44             <field name="name">report.project.task.user.graph</field>
45             <field name="model">report.project.task.user</field>
46             <field name="type">graph</field>
47             <field name="arch" type="xml">
48                 <graph string="Tasks Analysis" type="bar">
49                      <field name="name"/>
50                      <field name="state" group="True"/>
51                      <field name="no_of_days" operator="+"/>
52                  </graph>
53              </field>
54         </record>
55
56         <record id="view_task_project_user_search" model="ir.ui.view">
57             <field name="name">report.project.task.user.search</field>
58             <field name="model">report.project.task.user</field>
59             <field name="type">search</field>
60             <field name="arch" type="xml">
61                 <search string="Tasks Analysis">
62                     <group colspan="10" col="12">
63                         <filter icon="terp-go-year" string="  Year  "
64                                 domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')),('date_start','&gt;=',time.strftime('%%Y-01-01'))]"
65                                 help="Current Year"/>
66                         <filter icon="terp-go-month" string="   Month   "
67                                 name="month"
68                                 domain="[('date_start','&lt;=',(datetime.date.today()+relativedelta(day=31)).strftime('%%Y-%%m-%%d')),('date_start','&gt;=',(datetime.date.today()-relativedelta(day=1)).strftime('%%Y-%%m-%%d'))]"
69                                 help="Current Month"/>
70                         <filter icon="terp-go-week"
71                                 string="    Month-1    "
72                                 separator="1"
73                                 domain="[('date_start','&lt;=', (datetime.date.today() - relativedelta(day=31, months=1)).strftime('%%Y-%%m-%%d')),('date_start','&gt;=',(datetime.date.today() - relativedelta(day=1,months=1)).strftime('%%Y-%%m-%%d'))]"
74                                 help="Previous Month"/>
75                         <separator orientation="vertical"/>
76                         <filter string="Draft"
77                                 icon="terp-document-new"
78                                 domain="[('state','=','draft')]"
79                                 help = "Draft tasks"/>
80                         <filter string="Current"
81                                 icon="terp-check"
82                                 domain="[('state', '=' ,'open')]"
83                                 help = "In progress tasks"/>
84                            <filter string="Pending"
85                                    icon="terp-gtk-media-pause"
86                                    domain="[('state','=','pending')]"
87                                    help = "Pending tasks"/>
88                           <filter string="Done"
89                                 icon="terp-dialog-close"
90                                 name="done"
91                                 domain="[('state','=','done')]"/>
92                        <separator orientation="vertical"/>
93                         <field name="project_id">
94                             <filter icon="terp-folder-violet"
95                                     string="My Projects"
96                                     help="My Projects" domain="[('project_id.user_id','=',uid)]"/>
97                           </field>
98
99                           <field name="user_id" widget="selection">
100                             <filter icon="terp-personal"
101                                     string="My Task"
102                                     help = "My tasks"
103                                     domain="[('user_id','=',uid)]" />
104                             <filter icon="terp-personal-"
105                                     string="Non Assigned Tasks to users"
106                                     help="Non Assigned Tasks to users"
107                                     domain="[('user_id','=',False)]"/>
108                           </field>
109                       <field name="partner_id" />
110                     </group>
111                     <newline/>
112                     <group expand="0" string="Extended Filters..." colspan="10" col="12" groups="base.group_extended">
113                         <field name="priority"/>
114                         <field name="type_id" widget="selection"/>
115                         <separator orientation="vertical"/>
116                         <field name="company_id" groups="base.group_multi_company" widget="selection"/>
117                         <newline/>
118                         <field name="date_start"/>
119                         <field name="date_end"/>
120                         <field name="date_deadline"/>
121                         <separator orientation="vertical"/>
122
123                     </group>
124                     <newline/>
125                     <group expand="1" string="Group By..." colspan="10" col="12">
126                         <filter string="Project" name="project" icon="terp-folder-violet" context="{'group_by':'project_id'}"/>
127                         <filter string="Task" icon="terp-stock_align_left_24" context="{'group_by':'name'}" />
128                         <separator orientation="vertical"/>
129                         <filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
130                         <filter string="Assigned to" name="User" icon="terp-personal" context="{'group_by':'user_id'}" />
131                         <separator orientation="vertical"/>
132                         <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
133                         <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}"  groups="base.group_multi_company"/>
134                         <filter string="Stage" icon="terp-stage" context="{'group_by':'type_id'}" />
135                         <separator orientation="vertical"/>
136                         <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Creation Date"/>
137                         <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Creation Date"/>
138                         <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Creation Date"/>
139                     </group>
140                 </search>
141             </field>
142         </record>
143
144        <record id="action_project_task_user_tree" model="ir.actions.act_window">
145             <field name="name">Tasks Analysis</field>
146             <field name="res_model">report.project.task.user</field>
147             <field name="view_type">form</field>
148             <field name="view_mode">tree,graph</field>
149             <field name="search_view_id" ref="view_task_project_user_search"/>
150             <field name="context">{'search_default_month':1,'search_default_project':1,'group_by_no_leaf':1,'group_by':[]}</field>
151             <field name="help">This report allows you to analyse the performance of your projects and users. You can analyse the quantities of tasks, the hours spent compared to the planned hours, the average number of days to open or close a task, etc.</field>
152         </record>
153
154         <menuitem action="action_project_task_user_tree" id="menu_project_task_user_tree" parent="base.menu_project_report"/>
155
156    <!-- Views and action for project dashboard -->
157    <record id="view_project_vs_remaining_hours_tree" model="ir.ui.view">
158         <field name="name">project.vs.remaining.hour.tree</field>
159         <field name="model">project.vs.hours</field>
160         <field name="type">tree</field>
161         <field name="arch" type="xml">
162             <tree string="Remaining Hours Per Project" colors="pink:state=='draft';blue:state=='pending';black:state=='open';red:state=='cancelled';grey:state=='close';yellow:state=='template'">
163                 <field name="project"/>
164                 <field name="remaining_hours"/>
165                 <field name="state"/>
166             </tree>
167         </field>
168     </record>
169
170     <record id="view_project_vs_remaining_hours_graph" model="ir.ui.view">
171          <field name="name">project.vs.remaining.hour.graph</field>
172          <field name="model">project.vs.hours</field>
173          <field name="type">graph</field>
174          <field name="arch" type="xml">
175              <graph string="Project vs remaining hours" type="bar">
176                  <field name="project"/>
177                  <field name="state" group="True"/>
178                  <field name="remaining_hours" operator="+"/>
179              </graph>
180          </field>
181     </record>
182
183     <record id="action_project_vs_remaining_hours_graph" model="ir.actions.act_window">
184         <field name="name">Remaining Hours Per Project</field>
185         <field name="res_model">project.vs.hours</field>
186         <field name="view_type">form</field>
187         <field name="view_mode">graph,tree</field>
188         <field name="domain">[('uid','=',uid),('state','=','open')]</field>
189         <field name="view_id" ref="view_project_vs_remaining_hours_graph"/>
190     </record>
191
192     <record id="open_view_project_vs_remaining_hours_tree" model="ir.actions.act_window.view">
193             <field eval="2" name="sequence"/>
194             <field name="view_mode">tree</field>
195             <field name="view_id" ref="view_project_vs_remaining_hours_tree"/>
196
197             <field name="act_window_id" ref="action_project_vs_remaining_hours_graph"/>
198    </record>
199    <record id="open_view_project_vs_remaining_hours_graph" model="ir.actions.act_window.view">
200             <field eval="1" name="sequence"/>
201             <field name="view_mode">graph</field>
202             <field name="view_id" ref="view_project_vs_remaining_hours_graph"/>
203             <field name="act_window_id" ref="action_project_vs_remaining_hours_graph"/>
204    </record>
205     <!-- Views and action for project issue dashboard -->
206     <record id="view_task_by_days_tree" model="ir.ui.view">
207         <field name="name">task.by.days.tree</field>
208         <field name="model">task.by.days</field>
209         <field name="type">tree</field>
210         <field name="arch" type="xml">
211             <tree string="Task By Days" >
212                 <field name="day"/>
213                 <field name="total_task"/>
214                 <field name="state"/>
215             </tree>
216         </field>
217     </record>
218
219     <record id="view_task_by_days_graph" model="ir.ui.view">
220          <field name="name">task.by.days.graph</field>
221          <field name="model">task.by.days</field>
222          <field name="type">graph</field>
223          <field name="arch" type="xml">
224              <graph string="Task By Days" type="bar">
225                  <field name="day"/>
226                  <field name="state" group="True"/>
227                  <field name="project_id" group="True"/>
228                  <field name="total_task" operator="+"/>
229              </graph>
230          </field>
231     </record>
232
233     <record id="action_task_by_days_graph" model="ir.actions.act_window">
234         <field name="name">Task By Days</field>
235         <field name="res_model">task.by.days</field>
236         <field name="view_type">form</field>
237         <field name="view_mode">graph,tree</field>
238         <field name="domain">[('day','&lt;=',time.strftime('%Y-%m-%d')),('day','&gt;=', time.strftime('%Y-%m-%d', time.localtime(time.time()-(15*24*3600))))]</field>
239         <field name="view_id" ref="view_task_by_days_graph"/>
240     </record>
241
242     <!-- Views and action for project  dashboard -->
243    <record id="view_project_vs_planned_total_hours_tree" model="ir.ui.view">
244         <field name="name">project.vs.planned.total.hour.tree</field>
245         <field name="model">project.vs.hours</field>
246         <field name="type">tree</field>
247         <field name="arch" type="xml">
248             <tree string="Project vs Planned and Total Hours" colors="pink:state=='draft';blue:state=='pending';black:state=='open';red:state=='cancelled';grey:state=='close';yellow:state=='template'">
249                 <field name="project"/>
250                 <field name="planned_hours"/>
251                 <field name="total_hours"/>
252             </tree>
253         </field>
254     </record>
255
256     <record id="view_project_vs_planned_total_hours_graph" model="ir.ui.view">
257          <field name="name">project.vs.planned.total.hour.graph</field>
258          <field name="model">project.vs.hours</field>
259          <field name="type">graph</field>
260          <field name="arch" type="xml">
261              <graph string="Project vs Planned and Total Hours" type="bar">
262                  <field name="project"/>
263                  <field name="planned_hours" operator="+"/>
264                  <field name="total_hours" operator="+"/>
265              </graph>
266          </field>
267     </record>
268
269     <record id="action_project_vs_planned_total_hours_graph" model="ir.actions.act_window">
270
271         <field name="name">Projects: Planned Vs Total hours</field>
272         <field name="res_model">project.vs.hours</field>
273         <field name="view_type">form</field>
274         <field name="view_mode">graph,tree</field>
275         <field name="context">{}</field>
276         <field name="domain">[('uid','=',uid),('state','=','open')]</field>
277         <field name="view_id" ref="view_project_vs_planned_total_hours_graph"/>
278     </record>
279
280     <record id="open_view_project_vs_planned_total_hours_tree" model="ir.actions.act_window.view">
281             <field eval="2" name="sequence"/>
282             <field name="view_mode">tree</field>
283             <field name="view_id" ref="view_project_vs_planned_total_hours_tree"/>
284             <field name="act_window_id" ref="action_project_vs_planned_total_hours_graph"/>
285     </record>
286     <record id="open_view_project_vs_planned_total_hours_graph" model="ir.actions.act_window.view">
287             <field eval="1" name="sequence"/>
288             <field name="view_mode">graph</field>
289             <field name="view_id" ref="view_project_vs_planned_total_hours_graph"/>
290             <field name="act_window_id" ref="action_project_vs_planned_total_hours_graph"/>
291     </record>
292     </data>
293 </openerp>