[REM] Removed useless argument causing problem in case of buggy load_state
[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         <!-- Event Read/Unread actions -->
51         <record id="actions_server_event_event_unread" model="ir.actions.server">
52             <field name="name">Mark unread</field>
53             <field name="condition">True</field>
54             <field name="type">ir.actions.server</field>
55             <field name="model_id" ref="model_event_event"/>
56             <field name="state">code</field>
57             <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
58         </record>
59         <record id="action_event_event_unread" model="ir.values">
60             <field name="name">action_event_event_unread</field>
61             <field name="action_id" ref="actions_server_event_event_unread"/>
62             <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_event_event_unread'))" />
63             <field name="key">action</field>
64             <field name="model_id" ref="model_event_event" />
65             <field name="model">event.event</field>
66             <field name="key2">client_action_multi</field>
67         </record>
68
69         <record id="actions_server_event_event_read" model="ir.actions.server">
70             <field name="name">Mark read</field>
71             <field name="condition">True</field>
72             <field name="type">ir.actions.server</field>
73             <field name="model_id" ref="model_event_event"/>
74             <field name="state">code</field>
75             <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
76         </record>
77         <record id="action_event_event_read" model="ir.values">
78             <field name="name">action_event_event_read</field>
79             <field name="action_id" ref="actions_server_event_event_read"/>
80             <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_event_event_read'))" />
81             <field name="key">action</field>
82             <field name="model_id" ref="model_event_event" />
83             <field name="model">event.event</field>
84             <field name="key2">client_action_multi</field>
85         </record>
86
87         <record model="ir.ui.view" id="view_event_form">
88             <field name="name">Events</field>
89             <field name="model">event.event</field>
90             <field name="type">form</field>
91             <field name="arch" type="xml">
92             <form string="Events" version="7.0">
93                 <header>
94                     <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/>
95                     <button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/>
96                     <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" />
97                     <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
98                     <field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
99                 </header>
100                 <sheet>
101
102                 <div class="oe_right" style="height: 200px"></div>
103                 <div class="oe_title">
104                     <h1><field name="name"/></h1>
105                     <group>
106                         <group>
107                             <field name="type" on_change="onchange_event_type(type,context)"/>
108                             <field name="user_id"/>
109                             <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/>
110                         </group>
111                         <group>
112                             <field name="date_begin"/>
113                             <field name="date_end"/>
114                             <field name="register_min"/>
115                             <field name="register_max"/>
116                         </group>
117                     </group>
118                 </div>
119
120                 <notebook>
121                     <page string="Event Description">
122                         <field name="note" colspan="4" nolabel="1"/>
123                     </page>
124                     <page string="Internal Data">
125                          <group class="oe_group_label_border" colspan="2" col="2">
126                             <field name="register_current"/>
127                             <field name="register_prospect"/>
128                             <field name="register_attended"/>
129                          </group> 
130                          <group class="oe_group_label_border" colspan="2" col="2">
131                             <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
132                             <field name="speaker_confirmed"/>
133                         </group>
134                         <field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
135                             <tree string="Registration" editable="top">
136                                 <field name="name" />
137                                 <field name="email" />
138                                 <field name="phone"/>
139                                 <field name="nb_register" />
140                                 <field name="state"/>
141                                 <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
142                                 <button name="button_reg_close" string="Attented the Event" states="open" type="object" icon="gtk-jump-to"/>
143                                 <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
144                             </tree>
145                             <form string="Registration">
146                                 <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)" />
147                                 <field name="name"/>
148                                 <group colspan="4" col="4">
149                                 <field name="email"/>
150                                 <field name="phone"/>
151                                 </group>
152                                 <group colspan="4" col="4">
153                                     <field name="nb_register"/>
154                                 </group>
155                                 <group colspan="4" col="4">
156                                 </group>
157                                     <group col="8" colspan="4">
158                                         <separator string="" colspan="4"/>
159                                         <newline/>
160                                         <field name="state" colspan="2"/>
161                                         <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
162                                         <button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
163                                         <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
164                                     </group>
165                             </form>
166                             </field>
167                     </page>
168                     </notebook>
169                     </sheet>
170                     <footer>
171                         <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
172                     </footer>
173             </form>
174             </field>
175         </record>
176
177         <!-- Event tree view -->
178
179         <record model="ir.ui.view" id="view_event_tree">
180             <field name="name">event.event.tree</field>
181             <field name="model">event.event</field>
182             <field name="type">tree</field>
183             <field name="arch" type="xml">
184                 <tree string="Events" fonts="bold:needaction_pending==True" colors="red:(register_min and register_min&gt;register_current) or (register_max and register_max&lt;register_current);grey:state=='cancel'">
185                     <field name="name" string="Name"/>
186                     <field name="type"/>
187                     <field name="date_begin"/>
188                     <field name="date_end"/>
189                     <field name="register_current"/>
190                     <field name="register_min"/>
191                     <field name="register_max" invisible="1"/>
192                     <field name="main_speaker_id" groups="base.extended"/>
193                     <field name="user_id"/>
194                     <field name="state"/>
195                     <field name="needaction_pending" invisible="1"/>
196                 </tree>
197             </field>
198         </record>
199
200
201         <!-- Event Kanban View -->
202
203     <record model="ir.ui.view" id="view_event_kanban">
204             <field name="name">event.event.kanban</field>
205             <field name="model">event.event</field>
206             <field name="type">kanban</field>
207             <field name="arch" type="xml">
208                 <kanban>
209                     <field name="register_max"/>
210                     <field name="type"/>
211                     <field name="user_id"/>
212                     <field name="register_current"/>
213                     <field name="is_subscribed"/>
214                     <field name="country_id"/>
215                     <field name="date_begin"/>
216                     <field name="state"/>
217                     <field name="register_avail"/>
218                     <templates>
219                     <t t-name="kanban-box">
220                       <div class="oe_module_vignette">
221                         <a type="edit" class="oe_module_icon">
222                            <div class="oe_event_date "><t t-esc="record.date_begin.raw_value.getDate()"/></div>
223                            <div class="oe_event_month_year">
224                              <t t-esc="record.date_begin.raw_value.toString('MMM')"/>
225                              <t t-esc="record.date_begin.raw_value.getFullYear()"/>
226                            </div>
227                            <div class="oe_event_time"><t t-esc="record.date_begin.raw_value.toString('hh:mm tt')"/></div>
228                         </a>
229                         <div class="oe_module_desc">
230                             <h4><a type="edit"><field name="name"/></a></h4>
231                             <p>
232                               <t t-if="record.country_id.raw_value">@<field name="country_id"/><br/></t>
233                               <t t-if="record.user_id.raw_value">Organized by <field name="user_id"/><br/></t>
234                               <t t-if="record.register_avail.raw_value lte 10 and record.register_avail.raw_value gt 0"><i>Only</i></t>
235                               <t t-if="record.register_avail.raw_value == 0"><i>No ticket available.</i></t>
236                               <t t-if="record.register_avail.raw_value != 0">
237                                 <i><b><t t-if="record.register_avail.raw_value != 9999"><field name="register_avail"/></t></b></i>
238                                 <i>
239                                     <t t-if="record.register_avail.raw_value > 1">tickets </t>
240                                     <t t-if="record.register_avail.raw_value == 1 || !record.register_avail.raw_value > 1">ticket </t>
241                                     available.
242                                 </i>
243                               </t>
244                             </p>
245                             <t t-if="record.register_avail.raw_value != 0">
246                               <t t-if="!record.is_subscribed.raw_value">
247                                   <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}))"/>
248                                   <button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_mail_button_follow">
249                                   <span >Subscribe</span>
250                                   </button>
251                               </t>
252                             </t>
253                             <t t-if="record.is_subscribed.raw_value">
254                               <button type="object" name="unsubscribe_to_event" class="oe_mail_button_unfollow">
255                                 <span>Subscribed</span>
256                                 <span class="unsubscribe">Unsubscribe</span>
257                               </button>
258                             </t>
259                         </div>
260                       </div>
261                     </t>
262                     </templates>
263                 </kanban>
264             </field>
265         </record>
266
267       <!-- Events  Calendar  View -->
268
269         <record id="view_event_calendar" model="ir.ui.view">
270             <field name="name">event.event.calendar</field>
271             <field name="model">event.event</field>
272             <field name="type">calendar</field>
273             <field eval="2" name="priority"/>
274             <field name="arch" type="xml">
275                 <calendar color="type" date_start="date_begin" date_stop="date_end" string="Event Organization">
276                     <field name="name"/>
277                     <field name="type"/>
278                 </calendar>
279             </field>
280         </record>
281
282         <!-- Event Graph view -->
283
284         <record model="ir.ui.view" id="view_event_graph">
285             <field name="name">Event Graph</field>
286             <field name="model">event.event</field>
287             <field name="type">graph</field>
288             <field name="arch" type="xml">
289                 <graph string="Event by Registration" type="bar" orientation="horizontal">
290                     <field name="name"/>
291                     <field name="register_current" operator="+"/>
292                     <field name="register_prospect" operator="+"/>
293                 </graph>
294             </field>
295         </record>
296
297     <!-- Event Search View -->
298
299         <record model="ir.ui.view" id="view_event_search">
300             <field name="name">Events</field>
301             <field name="model">event.event</field>
302             <field name="type">search</field>
303             <field name="arch" type="xml">
304                 <search string="Events">
305                     <filter icon="terp-mail-message-new"
306                         string="Inbox" help="Unread messages"
307                         name="needaction_pending"
308                         domain="[('needaction_pending','=',True)]"/>
309                     <separator orientation="vertical"/>
310                     <group>
311                         <field name="name" string="Events"/>
312                         <separator orientation="vertical"/>
313                         <filter icon="terp-check" string="Unconfirmed" name="draft" domain="[('state','=','draft')]" help="Events in New state"/>
314                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/>
315                         <filter icon="terp-personal"
316                               string="My Events"
317                                 help="My Events"
318                               domain="[('user_id','=',uid)]"/>
319                         <filter icon="terp-go-today" string="Upcoming"
320                                 name="upcoming"
321                                 domain="[('date_begin','&gt;=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"
322                                 help="Upcoming events from today" />
323                         <separator orientation="vertical"/>
324                         <field name="type" widget="selection"/>
325                         <field name="user_id" widget="selection"/>
326                     </group>
327                     <newline/>
328                     <group expand="0" string="Group By...">
329                         <filter string="Responsible"  icon="terp-personal" context="{'group_by': 'user_id'}"/>
330                         <separator orientation="vertical"/>
331                         <filter string="Event Type" icon="terp-crm"  context="{'group_by':'type'}"/>
332                         <filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
333                         <separator orientation="vertical"/>
334                         <filter string="Starting Date" icon="terp-go-month"
335                             domain="[]" context="{'group_by':'date_begin'}"/>
336                     </group>
337                 </search>
338             </field>
339         </record>
340
341
342         <!-- Events Organisation/CONFIGURATION/EVENTS  -->
343        <record model="ir.actions.act_window" id="action_event_view">
344            <field name="name">Events</field>
345            <field name="type">ir.actions.act_window</field>
346            <field name="res_model">event.event</field>
347            <field name="view_type">form</field>
348            <field name="view_mode">kanban,calendar,tree,form,graph</field>
349            <field name="context">{"search_default_upcoming":1}</field>
350            <field name="search_view_id" ref="view_event_search"/>
351            <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>
352        </record>
353
354       <act_window
355             id="act_event_list_register_event"
356             name="Registration"
357             res_model="event.registration"
358             src_model="event.event"
359             view_mode="calendar,tree,form,graph"
360             context="{'search_default_event_id': [active_id], 'default_event_id': active_id}"
361             view_type="form"/>
362
363       <act_window
364             id="act_register_event_partner"
365             name="Subscribe"
366             res_model="event.registration"
367             src_model="res.partner"
368             view_mode="tree,form,calendar,graph"
369             context="{'search_default_partner_id': [active_id], 'default_partner_id': active_id}"
370             view_type="form"/>
371
372        <menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
373
374     <!-- EVENTS/REGISTRATIONS/EVENTS  -->
375
376         <!-- Registration Read/Unread actions -->
377         <record id="actions_server_event_registration_unread" model="ir.actions.server">
378             <field name="name">Mark unread</field>
379             <field name="condition">True</field>
380             <field name="type">ir.actions.server</field>
381             <field name="model_id" ref="model_event_registration"/>
382             <field name="state">code</field>
383             <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
384         </record>
385         <record id="action_event_registration_unread" model="ir.values">
386             <field name="name">action_event_registration_unread</field>
387             <field name="action_id" ref="actions_server_event_registration_unread"/>
388             <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_event_registration_unread'))" />
389             <field name="key">action</field>
390             <field name="model_id" ref="model_event_registration" />
391             <field name="model">event.registration</field>
392             <field name="key2">client_action_multi</field>
393         </record>
394
395         <record id="actions_server_event_registration_read" model="ir.actions.server">
396             <field name="name">Mark read</field>
397             <field name="condition">True</field>
398             <field name="type">ir.actions.server</field>
399             <field name="model_id" ref="model_event_registration"/>
400             <field name="state">code</field>
401             <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
402         </record>
403         <record id="action_event_registration_read" model="ir.values">
404             <field name="name">action_event_registration_read</field>
405             <field name="action_id" ref="actions_server_event_registration_read"/>
406             <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_event_registration_read'))" />
407             <field name="key">action</field>
408             <field name="model_id" ref="model_event_registration" />
409             <field name="model">event.registration</field>
410             <field name="key2">client_action_multi</field>
411         </record>
412
413         <record model="ir.ui.view" id="view_event_registration_tree">
414             <field name="name">event.registration.tree</field>
415             <field name="model">event.registration</field>
416             <field name="type">tree</field>
417             <field name="arch" type="xml">
418                 <tree string="Registration" fonts="bold:needaction_pending==True">
419                     <field name="create_date"/>
420                     <field name="partner_id"/>
421                     <field name="name"/>
422                     <field name="email"/>
423                     <field name="event_id" />
424                     <field name="nb_register"/>
425                     <field name="user_id"/>
426                     <field name="origin"/>
427                     <field name="state"/>
428                     <field name="needaction_pending" invisible="1"/>
429                 </tree>
430             </field>
431         </record>
432
433         <record model="ir.ui.view" id="view_event_registration_form">
434             <field name="name">event.registration.form</field>
435             <field name="model">event.registration</field>
436             <field name="type">form</field>
437             <field name="arch" type="xml">
438                 <form version="7.0">
439                 <header>
440                     <button name="registration_open" string="Confirm" states="draft" type="object" class="oe_highlight"/>
441                     <button name="button_reg_close" string="Attended" states="open" type="object" class="oe_highlight"/>
442                     <button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object" />
443                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/>
444                     <field name="state" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
445                 </header>
446                 <sheet string="Registration">
447                     <group col="6" colspan="4">
448                         <field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]"/>
449                         <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)"/>
450                         <field name="nb_register"/>
451                         <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
452                         <field name="origin"/>
453                     </group>
454                     <notebook colspan="4">
455                         <page string="Additional Information">
456                             <group colspan="2" col="2">
457                                 <separator string="Contact Information" colspan="2"/>
458                                 <field name="name"/>
459                                 <field name="email"/>
460                                 <field name="phone"/>
461                             </group>
462                             <group colspan="2" col="2" groups="base.group_no_one">
463                                 <separator string="Dates" colspan="2"/>
464                                 <field name="create_date"/>
465                                 <field name="date_closed"/>
466                                 <field name="event_begin_date" />
467                                 <field name="event_end_date" />
468                             </group>
469                         </page>
470                         <page string="Emails">
471                             <button string="Send New Email"
472                                 name="%(mail.action_email_compose_message_wizard)d"
473                                 icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
474                            </page>
475
476                     </notebook>
477                     </sheet>
478                     <footer>
479                         <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
480                     </footer>
481                 </form>
482             </field>
483         </record>
484
485          <!-- Calendar view of event registration -->
486         <record id="view_event_registration_calendar" model="ir.ui.view">
487             <field name="name">event.registration.calendar</field>
488             <field name="model">event.registration</field>
489             <field name="type">calendar</field>
490             <field eval="2" name="priority"/>
491             <field name="arch" type="xml">
492                 <calendar color="event_id" date_start="event_begin_date" date_stop="event_end_date" string="Event Registration">
493                     <field name="event_id"/>
494                     <field name="name"/>
495                 </calendar>
496             </field>
497         </record>
498
499         <record model="ir.ui.view" id="view_event_registration_graph">
500             <field name="name">Registration Graph</field>
501             <field name="model">event.registration</field>
502             <field name="type">graph</field>
503             <field name="arch" type="xml">
504                 <graph string="Registration" type="bar" orientation="horizontal">
505                     <field name="event_id"/>
506                     <field name= "nb_register" operator="+"/>
507                 </graph>
508             </field>
509         </record>
510
511
512         <!-- Search view of event registration -->
513         <record model="ir.ui.view" id="view_registration_search">
514             <field name="name">Registrations</field>
515             <field name="model">event.registration</field>
516             <field name="type">search</field>
517             <field name="arch" type="xml">
518                 <search string="Event Registration">
519                     <group>
520                         <filter icon="terp-mail-message-new"
521                             string="Inbox" help="Unread messages"
522                             name="needaction_pending"
523                             domain="[('needaction_pending','=',True)]"/>
524                         <separator orientation="vertical"/>
525                         <field name="name" string="Participant"
526                             filter_domain="['|','|','|',('name','ilike',self),('partner_id','ilike',self),('email','ilike',self),('origin','ilike',self)]"/>
527                         <separator orientation="vertical"/>
528                         <filter icon="terp-check" string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/>
529                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
530                         <filter icon="terp-personal"
531                               string="My Registrations"
532                                 help="My Registrations"
533                               domain="[('user_id','=',uid)]"/>
534                         <separator orientation="vertical"/>
535                         <field name="event_id" widget="selection"/>
536                         <field name="user_id"/>
537                     </group>
538                     <newline/>
539                     <group expand="0" string="Group By...">
540                         <filter string="Responsible"  icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
541                         <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
542                         <separator orientation="vertical"/>
543                         <filter string="Event" icon="terp-crm" domain="[]" context="{'group_by':'event_id'}"/>
544                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
545                    </group>
546
547                 </search>
548             </field>
549         </record>
550
551         <record model="ir.actions.act_window" id="action_registration">
552           <field name="name">Registrations</field>
553           <field name="res_model">event.registration</field>
554           <field name="view_type">form</field>
555           <field name="domain"></field>
556           <field name="view_mode">tree,form,calendar,graph</field>
557           <field name="context">{}</field>
558           <field name="search_view_id" ref="view_registration_search"/>
559         </record>view_
560
561         <menuitem
562             name="Registrations"
563             id="menu_action_registration" parent="base.menu_event_main"
564             action="action_registration" groups="event.group_event_manager,event.group_event_user"/>
565
566
567         <menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/>
568     </data>
569 </openerp>