3dde4743cde1474185d03d80ad3e3692cc0855a2
[odoo/odoo.git] / addons / calendar / calendar_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5
6     <!-- Calendar Events Types Form View -->
7
8     <record id="view_calendar_event_type_tree" model="ir.ui.view">
9         <field name="name">Meeting Types Tree</field>
10         <field name="model">calendar.event.type</field>
11         <field name="arch" type="xml">
12             <tree string="Meeting Types" editable="bottom">
13                 <field name="name"/>
14             </tree>
15         </field>
16     </record>    
17
18     <record id="action_calendar_event_type" model="ir.actions.act_window">
19         <field name="name">Meeting Types</field>
20         <field name="res_model">calendar.event.type</field>
21         <field name="view_type">form</field>
22         <field name="view_id" ref="view_calendar_event_type_tree"/>
23     </record>
24     
25     <!-- Calendar Events Form View -->
26
27     <record model="ir.ui.view" id="view_calendar_event_form">
28         <field name="name">Calendar - Event Form</field>
29         <field name="model">calendar.event</field>
30         <field name="priority" eval="1"/>
31         <field name="arch" type="xml">
32             <form string="Meetings">
33                 <sheet>
34                     <field name="state" invisible="1"/>
35                     <field name="is_attendee" invisible="1"/>
36                     <field name="attendee_status" invisible="1"/>
37                     <div class="oe_title">
38                         <div class="oe_edit_only">
39                             <label for="name"/>
40                         </div>
41                         <h1>
42                             <field name="name"/>
43                         </h1>
44                         <label for="partner_ids" string="Attendees" class="oe_edit_only"/>
45                         <h2>
46                             <field name="partner_ids" widget="many2manyattendee"
47                                 context="{'force_email':True}"
48                                 on_change="onchange_partner_ids(partner_ids)"
49                                 class="oe_inline"/>
50                         </h2>
51                     </div>
52                     <notebook>
53                         <page string="Meeting Details">
54                             <group attrs="{'invisible': [('recurrency','==',False)]}" class="oe_edit_only ">
55                                 <p class='alert alert-warning'> This event is linked to a recurrence...<br/>
56                                     <button type="object" name="open_after_detach_event"  string="Update only this instance"  help="Click here to update only this instance and not all recurrences. " class="oe_link"/>
57                                 </p>
58                             </group>
59                             <group>
60                                 <group>
61                                     <field name="start" attrs="{'invisible': True}"/>
62                                     <field name="stop" attrs="{'invisible': True}"/>
63
64                                     <field name="start_date" string="Starting at" on_change="onchange_dates('start', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
65                                     <field name="stop_date" string="Ending at" on_change="onchange_dates('stop', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
66
67                                     <field name="start_datetime" string="Starting at" on_change="onchange_dates('start', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
68                                     <field name="stop_datetime" string="Ending at" on_change="onchange_dates('stop', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
69                                     <label for="allday"/>
70                                     <div>
71                                         <field name="allday"  class="oe_inline" on_change="onchange_allday(start, stop, start_date, stop_date, start_datetime, stop_datetime, allday)"/>
72                                     </div>
73                                     <field name="duration" widget="float_time" class="oe_inline" attrs="{ 'invisible': True }"/>
74                                 </group>
75                                 <group>
76                                     <field name="categ_ids" widget="many2many_tags" />
77                                     <field name="alarm_ids" widget="many2many_tags" />
78                                     <field name="location" />
79                                 </group>
80
81                             </group>
82                             <label for="description"/>
83                             <field name="description"/>
84                         </page>
85                         <page string="Options">
86                             <group>
87                                 <group col="1">
88                                     <group>
89                                         <field name="recurrency"/>
90                                     </group>
91                                     <group attrs="{'invisible': [('recurrency','=',False)]}">
92                                         <label for="interval"/>
93                                         <div>
94                                             <field name="interval" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
95                                             <field name="rrule_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
96                                         </div>
97                                         <label string="Until" for="end_type"/>
98                                         <div>
99                                             <field name="end_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
100                                             <field name="count" attrs="{'invisible': [('end_type', '!=', 'count')], 'required': [('recurrency','==',True)]}" class="oe_inline"/>
101                                             <field name="final_date" attrs="{'invisible': [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}" class="oe_inline"/>
102                                         </div>
103                                         <label string="Select Weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"/>
104                                         <group col="2" colspan="1" name="weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}" >
105                                             <field name="mo" />
106                                             <field name="tu" />
107                                             <field name="we" />
108                                             <field name="th" />
109                                             <field name="fr" />
110                                             <field name="sa" />
111                                             <field name="su" />
112                                         </group>
113     
114                                         <label string="Day of Month"
115                                             attrs="{'invisible': [('rrule_type','!=','monthly')]}"/>
116     
117                                         <div attrs="{'invisible': [('rrule_type','!=','monthly')]}">
118                                             <field name="month_by"/>
119                                             <field name="day"
120                                                 attrs="{'required': [('month_by','=','date'), ('rrule_type','=','monthly')],
121                                                     'invisible': [('month_by','=','day')]}"/>
122                                             <field name="byday" string="The"
123                                                 attrs="{'required': [('month_by','=','day'), ('rrule_type','=','monthly')], 'invisible': [('month_by','=','date')]}"/>
124                                             <field name="week_list" nolabel="1"
125                                                 attrs="{'required': [('month_by','=','day'), ('rrule_type','=','monthly')], 'invisible': [('month_by','=','date')]}"/>
126                                         </div>
127                                     </group>
128                                 </group>
129                                 <group>
130                                     <field name="class"/>
131                                     <field name="show_as"/>
132                                     <field name="rrule" invisible="1" readonly="0" />                                    
133                                     <field name="recurrent_id" invisible="1" />
134                                 </group>
135                             </group>
136                         </page>
137                         
138                         <page string="Invitations" groups="base.group_no_one">
139                             <button name="do_sendmail" type="object" string="Send mail" icon="terp-mail-message-new" class="oe_link"/>
140                             <field name="attendee_ids" widget="one2many" >
141                                 <tree string="Invitation details" editable="top" create="false" delete="false">
142                                     <field name="partner_id" />
143                                     <field name="state" />
144                                     <field name="email" widget="email"/>
145                                      
146                                     <button name="do_tentative" states="needsAction,declined,accepted" string="Uncertain" type="object" icon="terp-crm" />
147                                     <button name="do_accept" string="Accept" states="needsAction,tentative,declined" type="object" icon="gtk-apply"/>
148                                     <button name="do_decline" string="Decline" states="needsAction,tentative,accepted" type="object" icon="gtk-cancel"/>
149                                 </tree>
150                             </field>
151                         </page>
152                         <page string="Misc" groups="base.group_no_one">
153                             <label string="Owner"/>
154                             <field name="user_id" />
155                             
156                         </page>
157
158                     </notebook>
159                 </sheet>
160                 <div class="oe_chatter">
161                     <field name="message_follower_ids" widget="mail_followers"/>
162                     <field name="message_ids" widget="mail_thread" />
163                 </div>
164             </form>
165         </field>
166     </record>
167     
168     <record model="ir.ui.view" id="view_calendar_event_form_popup">
169         <field name="name">Meetings Popup</field>
170         <field name="model">calendar.event</field>
171         <field name="priority" eval="2"/>
172         <field name="arch" type="xml">
173             <form string="Meetings">
174                 <field name="state" invisible="1"/>
175                 <field name="is_attendee" invisible="1"/>
176                 <field name="attendee_status" invisible="1"/>
177                 <label for="name"/>
178                 <field name="name"/>
179                 <group>
180                     <group>
181                         <field name="start_date" string="Starting at" attrs="{'invisible': [('allday','=',False)]}"/>
182                         <field name="start_datetime" string="Starting at" attrs="{'invisible': [('allday','=',True)]}"/>
183         
184                         <field name="duration" string="Duration" widget="float_time" attrs="{'invisible': [('allday','=',True)]}"/>
185                         <field name="allday" class="oe_inline" attrs="{'invisible': [('allday','=',False)]}"/>
186                         <field name="partner_ids" widget="many2manyattendee" string="Attendees"/>
187                     </group>
188                     <group>
189                         <field name="categ_ids" widget="many2many_tags"/>
190                         <field name="alarm_ids" widget="many2many_tags" />
191                         <field name="location"/>
192                     </group>
193                 </group>       
194             </form>
195         </field>
196     </record>
197
198     <!-- CRM Meeting Tree View  -->
199
200     <record model="ir.ui.view" id="view_calendar_event_tree">
201         <field name="name">CRM - Meetings Tree</field>
202         <field name="model">calendar.event</field>
203         <field name="arch" type="xml">
204             <tree string="Meetings" fonts="bold:message_unread==True">
205                 <field name="name" string="Subject"/>
206                 <field name="allday" invisible="True"/>
207                 <field name="display_start" string="Date" />
208                 <field name="user_id"/>
209                 <field name="location"/>
210                 <field name="show_as"/>
211                 <field name="class" string="Privacy"/>
212                 <field name="state" invisible="True"/>
213                 <field name="duration"/>
214                 <field name="message_unread" invisible="1"/>
215             </tree>
216         </field>
217     </record>
218
219     <!-- CRM Meeting Calendar -->
220     <record model="ir.ui.view" id="view_calendar_event_calendar">
221         <field name="name">Meetings Calendar</field>
222         <field name="model">calendar.event</field>
223         <field name="priority" eval="2"/>
224         <field name="arch" type="xml">
225             <calendar string="Meetings" date_start="start" date_stop="stop" date_delay="duration" all_day="allday" 
226                          display="[name]" color="color_partner_id" attendee="partner_ids" avatar_model="res.partner"
227                          use_contacts="True" event_open_popup="%(calendar.view_calendar_event_form_popup)s">
228             
229                 <field name="name"/>
230                 <field name="user_id"/>
231                 <field name="color_partner_id"/>
232                 <field name="partner_ids"/>
233             </calendar>
234         </field>
235     </record>
236
237     <!-- CRM Meeting Gantt  -->
238
239     <record id="view_calendar_event_gantt" model="ir.ui.view">
240         <field name="name">CRM - Meetings Gantt</field>
241         <field name="model">calendar.event</field>
242         <field name="arch" type="xml">
243             <gantt date_delay="duration" date_start="start" string="Meetings"/>
244         </field>
245     </record>
246
247     <!-- CRM Meeting Search View  -->
248     <record id="view_calendar_event_search" model="ir.ui.view">
249         <field name="name">CRM - Meetings Search</field>
250         <field name="model">calendar.event</field>
251         <field name="arch" type="xml">
252             <search string="Search Meetings">
253                 <field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
254                 <field name="partner_ids"/>
255                 <field name="categ_ids"/>
256                 <field name="user_id"/>
257                 <field name="show_as"/>
258                 <field name="class" string="Privacy"/>
259                 <filter icon="terp-go-today" string="My Events" domain="[('user_id','=',uid)]" help="My Events"/>
260                 <filter string="My Meetings" help="My Meetings" name="mymeetings" context='{"mymeetings": 1}'/>
261                 <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
262                 <separator/>
263                 <group expand="0" string="Group By">
264                     <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
265                     <filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'show_as'}"/>
266                     <filter string="Privacy" icon="terp-locked" domain="[]" context="{'group_by':'class'}"/>                    
267                 </group>
268             </search>
269         </field>
270     </record>
271
272     <record id="action_calendar_event" model="ir.actions.act_window">
273         <field name="name">Meetings</field>
274         <field name="res_model">calendar.event</field>
275         <field name="view_mode">calendar,tree,form,gantt</field>
276         <field name="view_id" ref="view_calendar_event_calendar"/>
277         <field name="search_view_id" ref="view_calendar_event_search"/>
278         <field name="help" type="html">
279           <p class="oe_view_nocontent_create">
280             Click to schedule a new meeting.
281           </p><p>
282             The calendar is shared between employees and fully integrated with
283             other applications such as the employee holidays or the business
284             opportunities.
285           </p>
286         </field>
287     </record>
288     <record model="ir.actions.act_window.view" id="action_view_calendar_event_calendar">
289         <field name="act_window_id" ref="action_calendar_event"/>
290         <field name="sequence" eval="1"/>
291         <field name="view_mode">calendar</field>
292         <field name="view_id" ref="view_calendar_event_calendar"/>
293     </record>
294     <record model="ir.actions.act_window.view" id="action_view_calendar_event_tree">
295         <field name="act_window_id" ref="action_calendar_event"/>
296         <field name="sequence" eval="2"/>
297         <field name="view_mode">tree</field>
298         <field name="view_id" ref="view_calendar_event_tree"/>
299     </record>
300     <record model="ir.actions.act_window.view" id="action_view_calendar_event_form">
301         <field name="act_window_id" ref="action_calendar_event"/>
302         <field name="sequence" eval="3"/>
303         <field name="view_mode">form</field>
304         <field name="view_id" ref="view_calendar_event_form"/>
305     </record>
306     <record model="ir.actions.act_window.view" id="action_view_calendar_event_gantt">
307         <field name="act_window_id" ref="action_calendar_event"/>
308         <field name="sequence" eval="4"/>
309         <field name="view_mode">gantt</field>
310         <field name="view_id" ref="view_calendar_event_gantt"/>
311     </record>
312
313     <menuitem name="Calendar" id="mail_menu_calendar" parent="mail.mail_my_stuff" sequence="10" action="action_calendar_event"/>
314     <menuitem id="menu_calendar_configuration" name="Calendar" parent="base.menu_custom" groups="base.group_no_one"/>
315     <menuitem id="menu_calendar_event_type" parent="menu_calendar_configuration" action="action_calendar_event_type" groups="base.group_no_one"/>
316         
317     <!-- called in js from '/js/base_calendar.js' -->
318     <record id="action_calendar_event_notify" model="ir.actions.act_window">
319         <field name="name">Meetings</field>
320         <field name="res_model">calendar.event</field>
321         <field name="view_mode">form,calendar,tree,gantt</field>
322         <field name="view_id" ref="view_calendar_event_form"/>
323     </record>
324        
325     
326     </data>
327 </openerp>