[IMP] project_issue, project, event, hr_holidays: added Inbox filter.
[odoo/odoo.git] / addons / event / event_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5         <menuitem  name="Events" id="event_main_menu"/>
6         <menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu" />
7
8     <!-- EVENTS  -->
9
10     <!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
11         <record model="ir.ui.view" id="view_event_type_form">
12             <field name="name">Event type</field>
13             <field name="model">event.type</field>
14             <field name="type">form</field>
15             <field name="arch" type="xml">
16                 <form string="Event Type">
17                     <group col="4">
18                         <field name="name"/>
19                         <field name="default_reply_to"/>
20                         <field name="default_email_event" domain="[('model_id.model','=','event.registration')]"/>
21                         <field name="default_email_registration" domain="[('model_id.model','=','event.registration')]"/>
22                         <field name="default_registration_min"/>
23                         <field name="default_registration_max"/>
24                     </group>
25                 </form>
26             </field>
27         </record>
28
29         <record model="ir.ui.view" id="view_event_type_tree">
30             <field name="name">Event type</field>
31             <field name="model">event.type</field>
32             <field name="type">tree</field>
33             <field name="arch" type="xml">
34                 <tree string="Event Type">
35                     <field name="name"/>
36                 </tree>
37             </field>
38         </record>
39
40         <record model="ir.actions.act_window" id="action_event_type">
41             <field name="name">Types of Events</field>
42             <field name="res_model">event.type</field>
43             <field name="view_type">form</field>
44         </record>
45         <menuitem name="Configuration" id="base.menu_marketing_config_root" parent="event_main_menu" sequence="30"/>
46         <menuitem name="Types of Events" id="menu_event_type" action="action_event_type" parent="base.menu_marketing_config_root" groups="base.group_no_one"/>
47
48     <!-- Events Organisation/CONFIGURATION/EVENTS -->
49
50         <record model="ir.ui.view" id="view_event_form">
51             <field name="name">Events</field>
52             <field name="model">event.event</field>
53             <field name="type">form</field>
54             <field name="arch" type="xml">
55             <form string="Events" version="7.0">
56                 <header>
57                     <button string="Confirm Event" name="button_confirm" states="draft" type="object"/>
58                     <button string="Event Ended" name="button_done" states="confirm" type="object"/>
59                     <button string="Set To Draft" name="button_draft" states="cancel,done" type="object"/>
60                     <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
61                     <field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
62                 </header>
63                 <sheet>
64
65                 <div class="oe_right" style="height: 200px"></div>
66                 <div class="oe_title">
67                     <h1><field name="name"/></h1>
68                     <group>
69                         <group>
70                             <field name="type" on_change="onchange_event_type(type,context)"/>
71                             <field name="user_id"/>
72                             <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/>
73                         </group>
74                         <group>
75                             <field name="date_begin"/>
76                             <field name="date_end"/>
77                             <field name="register_min"/>
78                             <field name="register_max"/>
79                         </group>
80                     </group>
81                 </div>
82
83                 <notebook>
84                     <page string="Event Description">
85                         <field name="note" colspan="4" nolabel="1"/>
86                     </page>
87                     <page string="Internal Data">
88                          <group class="oe_group_label_border" colspan="2" col="2">
89                             <field name="register_current"/>
90                             <field name="register_prospect"/>
91                             <field name="register_attended"/>
92                          </group> 
93                          <group class="oe_group_label_border" colspan="2" col="2">
94                             <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
95                             <field name="speaker_confirmed"/>
96                         </group>
97                         <field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
98                             <tree string="Registration" editable="top">
99                                 <field name="name" />
100                                 <field name="email" />
101                                 <field name="phone"/>
102                                 <field name="nb_register" />
103                                 <field name="state"/>
104                                 <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
105                                 <button name="button_reg_close" string="Attented the Event" states="open" type="object" icon="gtk-jump-to"/>
106                                 <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
107                             </tree>
108                             <form string="Registration">
109                                 <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)" />
110                                 <field name="name"/>
111                                 <group colspan="4" col="4">
112                                 <field name="email"/>
113                                 <field name="phone"/>
114                                 </group>
115                                 <group colspan="4" col="4">
116                                     <field name="nb_register"/>
117                                 </group>
118                                 <group colspan="4" col="4">
119                                 </group>
120                                     <group col="8" colspan="4">
121                                         <separator string="" colspan="4"/>
122                                         <newline/>
123                                         <field name="state" select="1" colspan="2"/>
124                                         <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
125                                         <button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
126                                         <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
127                                     </group>
128                             </form>
129                             </field>
130                     </page>
131                     </notebook>
132                     </sheet>
133                     <div class="oe_sheet_width">
134                         <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
135                     </div>
136             </form>
137             </field>
138         </record>
139
140         <!-- Event tree view -->
141
142         <record model="ir.ui.view" id="view_event_tree">
143             <field name="name">event.event.tree</field>
144             <field name="model">event.event</field>
145             <field name="type">tree</field>
146             <field name="arch" type="xml">
147                 <tree string="Events" colors="red:(register_min and register_min&gt;register_current) or (register_max and register_max&lt;register_current);grey:state=='cancel'">
148                     <field name="name" string="Name"/>
149                     <field name="type"/>
150                     <field name="date_begin"/>
151                     <field name="date_end"/>
152                     <field name="register_current"/>
153                     <field name="register_min"/>
154                     <field name="register_max" invisible="1"/>
155                     <field name="main_speaker_id" groups="base.extended"/>
156                     <field name="user_id"/>
157                     <field name="state"/>
158                 </tree>
159             </field>
160         </record>
161
162
163         <!-- Event Kanban View -->
164
165     <record model="ir.ui.view" id="view_event_kanban">
166             <field name="name">event.event.kanban</field>
167             <field name="model">event.event</field>
168             <field name="type">kanban</field>
169             <field name="arch" type="xml">
170                 <kanban>
171                     <field name="register_max"/>
172                     <field name="type"/>
173                     <field name="user_id"/>
174                     <field name="register_current"/>
175                     <field name="is_subscribed"/>
176                     <field name="country_id"/>
177                     <field name="date_begin"/>
178                     <field name="state"/>
179                     <field name="register_avail"/>
180                     <templates>
181                     <t t-name="kanban-box">
182                       <div class="oe_module_vignette">
183                         <a type="edit" class="oe_module_icon">
184                            <div class="oe_event_date "><t t-esc="record.date_begin.raw_value.getDate()"/></div>
185                            <div class="oe_event_month_year">
186                              <t t-esc="record.date_begin.raw_value.toString('MMM')"/>
187                              <t t-esc="record.date_begin.raw_value.getFullYear()"/>
188                            </div>
189                            <div class="oe_event_time"><t t-esc="record.date_begin.raw_value.toString('hh:mm tt')"/></div>
190                         </a>
191                         <div class="oe_module_desc">
192                             <h4><a type="edit"><field name="name"/></a></h4>
193                             <p>
194                               <t t-if="record.country_id.raw_value">@<field name="country_id"/><br/></t>
195                               <t t-if="record.user_id.raw_value">Organized by <field name="user_id"/><br/></t>
196                               <t t-if="record.register_avail.raw_value lte 10 and record.register_avail.raw_value gt 0"><i>Only</i></t>
197                               <t t-if="record.register_avail.raw_value == 0"><i>No ticket available.</i></t>
198                               <t t-if="record.register_avail.raw_value != 0">
199                                 <i><b><t t-if="record.register_avail.raw_value != 9999"><field name="register_avail"/></t></b></i>
200                                 <i>
201                                     <t t-if="record.register_avail.raw_value > 1">tickets </t>
202                                     <t t-if="record.register_avail.raw_value == 1 || !record.register_avail.raw_value > 1">ticket </t>
203                                     available.
204                                 </i>
205                               </t>
206                             </p>
207                             <t t-if="record.register_avail.raw_value != 0">
208                               <t t-if="!record.is_subscribed.raw_value">
209                                   <input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/>
210                                   <button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_mail_button_follow">
211                                   <span >Subscribe</span>
212                                   </button>
213                               </t>
214                             </t>
215                             <t t-if="record.is_subscribed.raw_value">
216                               <button type="object" name="unsubscribe_to_event" class="oe_mail_button_unfollow">
217                                 <span>Subscribed</span>
218                                 <span class="unsubscribe">Unsubscribe</span>
219                               </button>
220                             </t>
221                         </div>
222                       </div>
223                     </t>
224                     </templates>
225                 </kanban>
226             </field>
227         </record>
228
229       <!-- Events  Calendar  View -->
230
231         <record id="view_event_calendar" model="ir.ui.view">
232             <field name="name">event.event.calendar</field>
233             <field name="model">event.event</field>
234             <field name="type">calendar</field>
235             <field eval="2" name="priority"/>
236             <field name="arch" type="xml">
237                 <calendar color="type" date_start="date_begin" date_stop="date_end" string="Event Organization">
238                     <field name="name"/>
239                     <field name="type"/>
240                 </calendar>
241             </field>
242         </record>
243
244         <!-- Event Graph view -->
245
246         <record model="ir.ui.view" id="view_event_graph">
247             <field name="name">Event Graph</field>
248             <field name="model">event.event</field>
249             <field name="type">graph</field>
250             <field name="arch" type="xml">
251                 <graph string="Event by Registration" type="bar" orientation="horizontal">
252                     <field name="name"/>
253                     <field name="register_current" operator="+"/>
254                     <field name="register_prospect" operator="+"/>
255                 </graph>
256             </field>
257         </record>
258
259     <!-- Event Search View -->
260
261         <record model="ir.ui.view" id="view_event_search">
262             <field name="name">Events</field>
263             <field name="model">event.event</field>
264             <field name="type">search</field>
265             <field name="arch" type="xml">
266                 <search string="Events">
267                     <filter icon="terp-mail-message-new"
268                         string="Inbox" help="Unread messages"
269                         name="needaction_pending"
270                         domain="[('needaction_pending','=',True)]"/>
271                     <separator orientation="vertical"/>
272                     <group>
273                         <filter icon="terp-check" string="Unconfirmed" name="draft" domain="[('state','=','draft')]" help="Events in New state"/>
274                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/>
275                         <separator orientation="vertical"/>
276                         <filter icon="terp-go-today" string="Upcoming"
277                                 name="upcoming"
278                                 domain="[('date_begin','&gt;=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"
279                                 help="Upcoming events from today" />
280                         <field name="name"/>
281                         <field name="type" widget="selection"/>
282                         <field name="user_id" widget="selection">
283                         <filter icon="terp-personal"
284                               string="My Events"
285                                 help="My Events"
286                               domain="[('user_id','=',uid)]"/>
287                         </field>
288                     </group>
289                     <newline/>
290                     <group expand="0" string="Group By...">
291                         <filter string="Responsible"  icon="terp-personal" context="{'group_by': 'user_id'}"/>
292                         <separator orientation="vertical"/>
293                         <filter string="Event Type" icon="terp-crm"  context="{'group_by':'type'}"/>
294                         <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
295                         <separator orientation="vertical"/>
296                         <filter string="Starting Date" icon="terp-go-month"
297                             domain="[]" context="{'group_by':'date_begin'}"/>
298                     </group>
299                 </search>
300             </field>
301         </record>
302
303
304         <!-- Events Organisation/CONFIGURATION/EVENTS  -->
305        <record model="ir.actions.act_window" id="action_event_view">
306            <field name="name">Events</field>
307            <field name="type">ir.actions.act_window</field>
308            <field name="res_model">event.event</field>
309            <field name="view_type">form</field>
310            <field name="view_mode">kanban,calendar,tree,form,graph</field>
311            <field name="context">{"search_default_upcoming":1}</field>
312            <field name="search_view_id" ref="view_event_search"/>
313            <field name="help">Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events.</field>
314        </record>
315
316       <act_window
317             id="act_event_list_register_event"
318             name="Registration"
319             res_model="event.registration"
320             src_model="event.event"
321             view_mode="calendar,tree,form,graph"
322             context="{'search_default_event_id': [active_id], 'default_event_id': active_id}"
323             view_type="form"/>
324
325       <act_window
326             id="act_register_event_partner"
327             name="Subscribe"
328             res_model="event.registration"
329             src_model="res.partner"
330             view_mode="tree,form,calendar,graph"
331             context="{'search_default_partner_id': [active_id], 'default_partner_id': active_id}"
332             view_type="form"/>
333
334        <menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
335
336     <!-- EVENTS/REGISTRATIONS/EVENTS  -->
337
338         <record model="ir.ui.view" id="view_event_registration_tree">
339             <field name="name">event.registration.tree</field>
340             <field name="model">event.registration</field>
341             <field name="type">tree</field>
342             <field name="arch" type="xml">
343                 <tree string="Registration" >
344                     <field name="create_date"/>
345                     <field name="name"/>
346                     <field name="email"/>
347                     <field name="event_id" />
348                     <field name="nb_register"/>
349                     <field name="user_id"/>
350                     <field name="origin"/>
351                     <field name="state"/>
352                 </tree>
353             </field>
354         </record>
355
356         <record model="ir.ui.view" id="view_event_registration_form">
357             <field name="name">event.registration.form</field>
358             <field name="model">event.registration</field>
359             <field name="type">form</field>
360             <field name="arch" type="xml">
361                 <form version="7.0">
362                 <header>
363                     <button name="registration_open" string="Confirm" states="draft" type="object"/>
364                     <button name="button_reg_close" string="Attended" states="open" type="object"/>
365                     <button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object"/>
366                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/>
367                     <field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
368                 </header>
369                 <sheet string="Registration" layout="auto">
370                     <group col="6" colspan="4">
371                         <field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]"/>
372                         <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)"/>
373                         <field name="nb_register"/>
374                         <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
375                         <field name="origin"/>
376                     </group>
377                     <notebook colspan="4">
378                         <page string="Additional Information">
379                             <group colspan="2" col="2">
380                                 <separator string="Contact Information" colspan="2"/>
381                                 <field name="name"/>
382                                 <field name="email"/>
383                                 <field name="phone"/>
384                             </group>
385                             <group colspan="2" col="2" groups="base.group_no_one">
386                                 <separator string="Dates" colspan="2"/>
387                                 <field name="create_date"/>
388                                 <field name="date_closed"/>
389                                 <field name="event_begin_date" />
390                                 <field name="event_end_date" />
391                             </group>
392                         </page>
393                         <page string="Emails">
394 <!--
395                             <field name="message_ids" colspan="4" nolabel="1" mode="tree">
396                                 <tree string="History">
397                                     <field name="display_text" string="History Information"/>
398                                     <field name="reply_to" invisible="1"/>
399                                     <button
400                                         string="Reply" attrs="{'invisible': [('reply_to', '=', False)]}"
401                                         name="%(mail.action_email_compose_message_wizard)d"
402                                         context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
403                                         icon="terp-mail-replied" type="action" />
404                                 </tree>
405                             </field>
406 -->
407                             <button string="Send New Email"
408                                 name="%(mail.action_email_compose_message_wizard)d"
409                                 icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
410                            </page>
411
412                     </notebook>
413                     </sheet>
414                     <div class="oe_sheet_width">
415                         <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
416                     </div>
417                 </form>
418             </field>
419         </record>
420
421          <!-- Calendar view of event registration -->
422         <record id="view_event_registration_calendar" model="ir.ui.view">
423             <field name="name">event.registration.calendar</field>
424             <field name="model">event.registration</field>
425             <field name="type">calendar</field>
426             <field eval="2" name="priority"/>
427             <field name="arch" type="xml">
428                 <calendar color="event_id" date_start="event_begin_date" date_stop="event_end_date" string="Event Registration">
429                     <field name="event_id"/>
430                     <field name="name"/>
431                 </calendar>
432             </field>
433         </record>
434
435         <record model="ir.ui.view" id="view_event_registration_graph">
436             <field name="name">Registration Graph</field>
437             <field name="model">event.registration</field>
438             <field name="type">graph</field>
439             <field name="arch" type="xml">
440                 <graph string="Registration" type="bar" orientation="horizontal">
441                     <field name="event_id"/>
442                     <field name= "nb_register" operator="+"/>
443                 </graph>
444             </field>
445         </record>
446
447
448         <!-- Search view of event registration -->
449         <record model="ir.ui.view" id="view_registration_search">
450             <field name="name">Registrations</field>
451             <field name="model">event.registration</field>
452             <field name="type">search</field>
453             <field name="arch" type="xml">
454                 <search string="Event Registration">
455                     <group>
456                         <filter icon="terp-mail-message-new"
457                             string="Inbox" help="Unread messages"
458                             name="needaction_pending"
459                             domain="[('needaction_pending','=',True)]"/>
460                         <separator orientation="vertical"/>
461                         <filter icon="terp-check" string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/>
462                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
463                         <separator orientation="vertical"/>
464                         <field name="event_id" widget="selection"/>
465                         <field name="name" string="Participant"
466                             filter_domain="['|','|', ('name','ilike',self), ('partner_id','ilike',self), ('email','ilike',self)]"/>
467                         <field name="user_id">
468                         <filter icon="terp-personal"
469                               string="My Registrations"
470                                 help="My Registrations"
471                               domain="[('user_id','=',uid)]"/>
472                         </field>
473                         <field name="origin"/>
474                     </group>
475                     <newline/>
476                     <group expand="0" string="Group By...">
477                         <filter string="Responsible"  icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
478                         <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
479                         <separator orientation="vertical"/>
480                         <filter string="Event" icon="terp-crm" domain="[]" context="{'group_by':'event_id'}"/>
481                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
482                    </group>
483
484                 </search>
485             </field>
486         </record>
487
488         <record model="ir.actions.act_window" id="action_registration">
489           <field name="name">Registrations</field>
490           <field name="res_model">event.registration</field>
491           <field name="view_type">form</field>
492           <field name="domain"></field>
493           <field name="view_mode">tree,form,calendar,graph</field>
494           <field name="context">{}</field>
495           <field name="search_view_id" ref="view_registration_search"/>
496         </record>view_
497
498         <menuitem
499             name="Registrations"
500             id="menu_action_registration" parent="base.menu_event_main"
501             action="action_registration" groups="event.group_event_manager,event.group_event_user"/>
502
503
504         <menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/>
505     </data>
506 </openerp>