[FIX] remove result if there is not
[odoo/odoo.git] / addons / base_calendar / base_calendar_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4         <!-- Attendee form view-->
5
6         <record id="base_calendar_attendee_form_view" model="ir.ui.view">
7             <field name="name">calendar.attendee.form</field>
8             <field name="model">calendar.attendee</field>
9             <field name="type">form</field>
10             <field name="arch" type="xml">
11                 <form string="Invitation details">
12                     <group col="6" colspan="4">
13                         <field name="email" string="Invitation To"/>
14                         <field name="cutype" string="Invitation type" />
15                         <field name="rsvp" />
16                         <field name="role" string="Role" />
17                         <field name="sent_by_uid" string="Invitation From" />
18                     </group>
19                     <notebook colspan="4">
20                         <page string="Invitation">
21                             <separator string="Invitation Detail" colspan="4" />
22                             <group colspan="4" col="4">
23                                 <field name="user_id" string="Invited User"/>
24                                 <newline/>
25                                 <field name="partner_address_id"
26                                     string="Contact" />
27                                 <field name="partner_id"
28                                     string="Partner" readonly="1" />
29                             </group>
30                             <separator string="Event Detail" colspan="4" />
31                             <group colspan="4" col="4">
32                                 <field name="event_date" />
33                                 <field name="event_end_date" />
34                                 <field name="language"/>
35                                 <field name="ref" colspan="4" readonly="1"/>
36                             </group>
37                         </page>
38                         <page string="Delegation Info">
39                             <separator string="Delegated From" colspan="4" />
40                             <field name="parent_ids" nolabel="1"
41                                 colspan="4" readonly="1" />
42                             <separator string="Delegated To" colspan="4" />
43                             <field name="child_ids" nolabel="1"
44                                 colspan="4" readonly="1" />
45                         </page>
46                     </notebook>
47                     <group col="6" colspan="4">
48                             <field name="state" />
49                             <button name="do_tentative"
50                                 states="needs-action,declined,accepted"
51                                 string="Uncertain" type="object"
52                                 icon="terp-crm" />
53                             <button name="do_accept" string="Accept"
54                                 states="needs-action,tentative,declined"
55                                 type="object" icon="gtk-apply" />
56                             <button name="do_decline" string="Decline"
57                                 states="needs-action,tentative,accepted"
58                                 type="object" icon="gtk-cancel" />
59                             <button
60                                 name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
61                                 string="Delegate" type="action"
62                                 icon="gtk-sort-descending"
63                                 states="needs-action,tentative,declined,accepted"
64                                 context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
65                     </group>
66                 </form>
67             </field>
68         </record>
69
70         <!--        Attendee tree view-->
71
72         <record id="base_calendar_attendee_tree_view" model="ir.ui.view">
73             <field name="name">calendar.attendee.tree</field>
74             <field name="model">calendar.attendee</field>
75             <field name="type">tree</field>
76             <field name="arch" type="xml">
77                 <tree string="Invitation details">
78                     <field name="sent_by_uid" string="Invitation From" />
79                     <field name="role" string="My Role"/>
80                     <field name="user_id" invisible="1"/>
81                     <field name="cutype" string="Invitation type"/>
82                     <field name="state" />
83                     <field name="rsvp" string="Required to Join"/>
84                     <button name="do_tentative" states="needs-action,declined,accepted"
85                                 string="Uncertain" type="object"
86                                 icon="terp-crm" />
87                     <button name="do_accept" string="Accept"
88                         states="needs-action,tentative,declined"
89                         type="object" icon="gtk-apply" />
90                     <button name="do_decline" string="Decline"
91                         states="needs-action,tentative,accepted"
92                         type="object" icon="gtk-cancel" />
93                     <button
94                         name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
95                         string="Delegate" type="action"
96                         icon="gtk-sort-descending"
97                         states="needs-action,tentative,declined,accepted"
98                         context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
99                 </tree>
100             </field>
101         </record>
102
103         <!--        Attendee search view-->
104
105         <record id="base_calendar_attendee_search_view" model="ir.ui.view">
106             <field name="name">calendar.attendee.search</field>
107             <field name="model">calendar.attendee</field>
108             <field name="type">search</field>
109             <field name="arch" type="xml">
110                 <search string="Search Invitations">
111                    <filter icon="terp-gtk-jump-to-ltr" name="toreview" string="To Review"
112                        domain="[('state','=', 'needs-action')]"
113                        separator="1" help="Invitations To Review" />
114                    <filter icon="terp-check" string="Accepted"
115                        domain="[('state','=', 'accepted')]"
116                        separator="1" help="Accepted Invitations" />
117                    <filter icon="terp-dialog-close" string="Declined"
118                        domain="[('state','=', 'declined')]"
119                        separator="1" help="Declined Invitations" />
120                    <filter icon="gtk-sort-descending" string="Delegated"
121                        domain="[('state','=', 'delegated')]"
122                        separator="1" help="Delegated Invitations" />
123                    <separator orientation="vertical"/>
124                    <field name="email" select='1'/>
125                    <field name="user_id" select="1" string="Responsible"/>
126                    <separator orientation="vertical"/>
127                    <field name="cutype" string="Invitation type" select="1"/>
128                    <field name="event_date" select="1"/>
129                    <newline/>
130                     <group expand="0" string="Group By...">
131                         <filter string="Responsible" icon="terp-personal" domain="[]"
132                             context="{'group_by':'user_id'}" />
133                         <filter string="Contact" icon="terp-personal" domain="[]"
134                             context="{'group_by':'partner_address_id'}" />
135                         <separator orientation="vertical" />
136                         <filter string="Type" icon="terp-stock_symbol-selection" help="Invitation Type"
137                             domain="[]" context="{'group_by':'cutype'}" />
138                         <filter string="Role" icon="terp-gtk-select-all"
139                             domain="[]" context="{'group_by':'role'}" />
140                         <filter string="Required Reply" icon="terp-mail-replied"
141                             domain="[]" context="{'group_by':'rsvp'}" />
142                         <separator orientation="vertical" />
143                         <filter string="State" icon="terp-stock_effects-object-colorize" help="Invitation Type"
144                             domain="[]" context="{'group_by':'state'}" />
145                     </group>
146                </search>
147             </field>
148         </record>
149         <record id="action_view_attendee_form" model="ir.actions.act_window">
150              <field name="name">Event Invitations</field>
151              <field name="type">ir.actions.act_window</field>
152              <field name="res_model">calendar.attendee</field>
153              <field name="view_type">form</field>
154              <field name="view_mode">tree,form</field>
155              <field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
156              <field name="context">{'default_sent_by_uid': uid}</field>
157          </record>
158
159         <!-- Calenadar's menu -->
160         <menuitem id="base.menu_calendar_configuration" name="Calendar"
161             parent="base.menu_base_config" sequence="6" groups="base.group_sale_manager" />
162
163         <!-- Invitation menu -->
164
165          <menuitem id="menu_attendee_invitations"
166             parent="base.menu_calendar_configuration"
167             groups="base.group_extended"
168             sequence="10" action="action_view_attendee_form" />
169
170         <!--        ALARM FORM VIEW-->
171
172         <record id="res_alarm_form_view" model="ir.ui.view">
173             <field name="name">res.alarm.form</field>
174             <field name="model">res.alarm</field>
175             <field name="type">form</field>
176             <field name="arch" type="xml">
177                 <form string="Reminder details">
178                     <field name="name" />
179                     <field name="active" />
180                     <separator string="Reminder Details" colspan="4" />
181                     <field name="trigger_duration" select="1" />
182                     <field name="trigger_interval" select="1" />
183                     <field name="trigger_occurs" select="1" />
184                     <field name="trigger_related" select="1" />
185                 </form>
186             </field>
187         </record>
188
189         <!--        ALARM TREE VIEW-->
190
191         <record id="res_alarm_tree_view" model="ir.ui.view">
192             <field name="name">res.alarm.tree</field>
193             <field name="model">res.alarm</field>
194             <field name="type">tree</field>
195             <field name="arch" type="xml">
196                 <tree string="Reminder details">
197                 <field name="name" select="1"/>
198                 <field name="trigger_interval" select="1"/>
199                 <field name="trigger_duration" select="1"/>
200                 <field name="trigger_occurs" select="1"/>
201                 <field name="trigger_related" select="1"/>
202                 </tree>
203             </field>
204         </record>
205         <record id="action_res_alarm_view" model="ir.actions.act_window">
206             <field name="name">Alarms</field>
207             <field name="type">ir.actions.act_window</field>
208             <field name="res_model">res.alarm</field>
209             <field name="view_type">form</field>
210             <field name="view_mode">tree,form</field>
211             <field name="help">Create specific calendar alarms that may be assigned to calendar events or meetings.</field>
212         </record>
213
214         <!--        Menu for Alarms-->
215
216          <menuitem id="menu_crm_meeting_avail_alarm"
217             groups="base.group_extended"
218             action="base_calendar.action_res_alarm_view"
219             parent="base.menu_calendar_configuration" />
220
221         <!-- Event Form View-->
222
223         <record model="ir.ui.view" id="event_form_view">
224             <field name="name">Event Form</field>
225             <field name="model">calendar.event</field>
226             <field name="type">form</field>
227             <field name="arch" type="xml">
228                 <form string="Events">
229                     <group col="6" colspan="4">
230                         <field name="name" select="1" string="Summary"
231                             colspan="4" required="1" />
232                         <field name="allday" colspan="2" on_change="onchange_dates(date,False,False,allday)" />
233                         <newline/>
234                         <field name="date" string="Start Date" required="1" select="1"
235                             on_change="onchange_dates(date,duration,False,allday)" />
236                         <field name="duration" widget="float_time"
237                             on_change="onchange_dates(date,duration,False,allday)" attrs="{'invisible': [('allday', '=', True)]}"/>
238                         <field name="date_deadline" string="End Date" required="1"
239                             on_change="onchange_dates(date,False,date_deadline)" />
240                         <field name="location" />
241                         <field name="alarm_id" string="Reminder"
242                             widget="selection" />
243                         <group colspan="2" col="4" attrs="{'readonly': [('state','=','done')]}">
244                            <field name="recurrency"/>      
245                            <field name="edit_all" attrs="{'invisible':[('recurrency','=', False)]}"
246                                 on_change="onchange_edit_all(rrule_type,edit_all)"/>                                    
247                         </group>
248                     </group>
249                     <notebook colspan="4">
250                     <page string="Event">
251                         <group col="6" colspan="4">
252                              <separator colspan="6" string="Visibility"/>
253                              <field name="user_id" string="Responsible User" />
254                              <field name="show_as" string="Show time as"/>
255                              <field name="class" string="Privacy"/>
256                              <field name="recurrent_id" invisible="1" />
257                              <field name="recurrent_uid" invisible="1" />
258                         </group>
259                         <separator string="Description" colspan="4" />
260                         <field name="description" nolabel="1" colspan="4" />
261                         <separator colspan="4" string="" />
262                            <group col="5" colspan="4">
263                                <field name="state" select="2" />
264                                <button name="do_cancel"
265                                    string="Cancel"
266                                    states="tentative,confirmed"
267                                    type="object"
268                                    icon="gtk-cancel" />
269                                <button name="do_tentative"
270                                    states="confirmed,cancelled"
271                                    string="Uncertain"
272                                    type="object"
273                                    icon="terp-crm" />
274                                <button name="do_confirm"
275                                    string="Confirm"
276                                    states="tentative,cancelled"
277                                    type="object"
278                                    icon="gtk-apply" />
279                            </group>
280                         </page>
281                         <page string="Invitation Detail">
282                             <button string="Invite People"
283                                 name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
284                                 icon="terp-partner" type="action"
285                                 context="{'model' : 'calendar.event', 'attendee_field':'attendee_ids'}" colspan="2"/>
286                             <field name="attendee_ids" colspan="4"
287                                 nolabel="1" widget="one2many" mode="tree,form">
288                                 <tree string="Invitation details" editable="top">
289                                     <field name="email" />
290                                     <field name="role" width="200" select="1" />
291                                     <field name="state" />
292                                     <button name="do_tentative"
293                                         states="needs-action,declined,accepted"
294                                         string="Uncertain" type="object"
295                                         icon="terp-crm" />
296                                     <button name="do_accept" string="Accept"
297                                         states="needs-action,tentative,declined"
298                                         type="object" icon="gtk-apply" />
299                                     <button name="do_decline" string="Decline"
300                                         states="needs-action,tentative,accepted"
301                                         type="object" icon="gtk-cancel" />
302                                     <button
303                                         name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
304                                         string="Delegate" type="action"
305                                         icon="gtk-sort-descending"
306                                         states="needs-action,tentative,declined,accepted"
307                                         context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
308                                 </tree>
309                                 <form string="Invitation details">
310                                     <notebook colspan="4">
311                                         <page string="Details">
312                                             <field name="email" />
313                                             <field name="rsvp" select="1" />
314                                             <field name="cutype" select="1" />
315                                             <field name="role" select="1" />
316                                             <separator colspan="4" string="" />
317                                             <group col="6" colspan="4">
318                                                 <field name="state" select="2" />
319                                                 <button name="do_tentative"
320                                                     states="needs-action,declined,accepted"
321                                                     string="Uncertain"
322                                                     type="object"
323                                                     icon="terp-crm" />
324                                                 <button name="do_accept"
325                                                     string="Accept"
326                                                     states="needs-action,tentative,declined"
327                                                     type="object"
328                                                     icon="gtk-apply" />
329                                                 <button name="do_decline"
330                                                     string="Decline"
331                                                     states="needs-action,tentative,accepted"
332                                                     type="object"
333                                                     icon="gtk-cancel" />
334                                                 <button
335                                                     name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
336                                                     string="Delegate"
337                                                     type="action"
338                                                     icon="gtk-sort-descending"
339                                                     states="needs-action,tentative,declined,accepted"
340                                                     context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
341                                             </group>
342                                         </page>
343                                     </notebook>
344                                 </form>
345                             </field>
346                         </page>
347                     <page string="Recurrency Option" attrs="{'invisible': [('recurrency','=',False)]}">
348                         <group col="4" colspan="4" name="rrule">
349                             <group col="4" colspan="4">
350                                 <field name="rrule_type" string="Recurrency period"
351                                    attrs="{'readonly':[('recurrent_uid','!=',False)]}" />
352                                 <field name="interval" />                               
353                                                        
354                                 
355                                 <separator string="End of recurrency" colspan="4"/>
356                                 <field name="end_type" />
357                                 <label string=" " colspan="2" />
358                                 <newline />
359                                 <field name="count" attrs="{'invisible' : [('end_type', '!=', 'count')] }"/>
360                                 <label string=" " colspan="2" />
361                                 <newline />
362                                 <field name="end_date" attrs="{'invisible' : [('end_type', '!=', 'end_date')] }"/>
363                                 <newline />
364                            
365                       
366                             </group>
367                             <group col="8" colspan="4" name="Select weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}">
368                                 <separator string="Choose day where repeat the meeting" colspan="8"/>
369                                 <field name="mo" colspan="1" />
370                                 <field name="tu" colspan="1" />
371                                 <field name="we" colspan="1" />
372                                 <field name="th" colspan="1" />
373                                 <newline/>
374                                 <field name="fr" colspan="1" />
375                                 <field name="sa" colspan="1"  />
376                                 <field name="su" colspan="1"  />
377                                 <newline />
378                             </group>
379                             <group col="10" colspan="4"
380                                 attrs="{'invisible' : [('rrule_type','!=','monthly')]}">
381                                 <separator string="Choose day in the month where repeat the meeting" colspan="12"/>
382                                 <group col="2" colspan="1">
383                                     <field name="select1" />
384                                 </group>
385                                 <group col="2" colspan="1">
386                                     <field name="day"
387                                         attrs="{'required' : [('select1','=','date'), ('rrule_type','=','monthly')],
388                                             'invisible' : ['|', ('select1','=','day'), ('rrule_type','!=','monthly')]}" />
389                                 </group>
390                                 <group col="3" colspan="1"
391                                     attrs="{'invisible' : ['|', ('select1','=','date'), ('rrule_type','!=','monthly')]}">
392                                     <field name="byday" string="The"
393                                         attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')]}" />
394                                     <field name="week_list" nolabel="1"
395                                         attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')]}" />
396                                 </group>
397                             </group>
398                         </group>
399
400                     </page>
401                     </notebook>
402                 </form>
403             </field>
404         </record>
405
406         <!-- Event Tree View  -->
407
408         <record model="ir.ui.view" id="event_tree_view">
409             <field name="name">Event Tree</field>
410             <field name="model">calendar.event</field>
411             <field name="type">tree</field>
412             <field name="arch" type="xml">
413                 <tree string="Events">
414                     <field name="name" string="Subject" />
415                     <field name="date" string="Event Date" />
416                     <field name="location" />
417                     <field name="show_as" />
418                     <field name="class" string="Privacy" />
419                     <field name="user_id" invisible="1"/>
420                     <field name="state" invisible="1"/>
421                 </tree>
422             </field>
423         </record>
424
425         <!-- Event Calendar View  -->
426
427         <record model="ir.ui.view" id="event_calendar_view">
428             <field name="name">Events Calendar</field>
429             <field name="model">calendar.event</field>
430             <field name="type">calendar</field>
431             <field name="priority" eval="2"/>
432             <field name="arch" type="xml">
433                 <calendar string="Events" date_start="date" color="show_as" date_delay="duration">
434                     <field name="name"/>
435                     <field name="class"/>
436                     <field name="show_as"/>
437                 </calendar>
438             </field>
439         </record>
440
441         <!--     Event Search View-->
442
443         <record id="view_calendar_event_filter" model="ir.ui.view">
444             <field name="name">Calendar Events Search</field>
445             <field name="model">calendar.event</field>
446             <field name="type">search</field>
447             <field name="arch" type="xml">
448                 <search string="Search Events">
449                        <group col="12" colspan="4">
450                            <filter icon="terp-go-today" string="My Events"
451                                domain="[('user_id','=',uid)]"
452                                help="My Events" />
453                            <separator orientation="vertical"/>
454                            <filter icon="terp-check" string="Confirmed"
455                                domain="[('state','=','confirmed')]"
456                                help="Confirmed Events" />
457                            <separator orientation="vertical"/>
458                            <field name="name" select="1" string="Summary"/>
459                            <field name="location" select="1" string="Location"/>
460                            <separator orientation="vertical"/>
461                            <field name="user_id" select="1"/>
462                            <separator orientation="vertical"/>
463                            <field name="show_as" select="1"/>
464                            <field name="class" select="1" string="Privacy"/>
465                        </group>
466                        <newline/>
467                         <group expand="0" string="Group By...">
468                             <filter string="Responsible" icon="terp-personal" domain="[]"
469                                 context="{'group_by':'user_id'}" />
470                             <separator orientation="vertical" />
471                             <filter string="Availability" icon="terp-camera_test"
472                                 domain="[]" context="{'group_by':'show_as'}" />
473                             <filter string="Privacy" icon="terp-locked"
474                                 domain="[]" context="{'group_by':'class'}" />
475                             <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]"
476                                 context="{'group_by':'state'}" />
477                             <separator orientation="vertical" />
478                             <filter string="Date" icon="terp-go-month"
479                                 domain="[]" context="{'group_by':'date'}" />
480
481                         </group>
482                 </search>
483             </field>
484         </record>
485
486
487         <!-- Event action  -->
488
489         <record id="action_view_event" model="ir.actions.act_window">
490                 <field name="name">Events</field>
491                 <field name="type">ir.actions.act_window</field>
492                 <field name="res_model">calendar.event</field>
493                 <field name="view_type">form</field>
494                 <field name="view_mode">tree,form,calendar</field>
495                 <field name="search_view_id" ref="view_calendar_event_filter"/>
496             </record>
497
498         <!-- Event menu  -->
499
500         <menuitem id="menu_events"
501                 name="Events" parent="base.menu_calendar_configuration"
502                 groups="base.group_extended"
503                 sequence="5" action="action_view_event" />
504
505      </data>
506  </openerp>