5 <menuitem name="Events" id="event_main_menu"/>
6 <menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu" />
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">
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"/>
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">
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>
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"/>
48 <!-- Events Organisation/CONFIGURATION/EVENTS -->
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>
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>
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>
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>
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">
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"/>
102 <div class="oe_right" style="height: 200px"></div>
103 <div class="oe_title">
104 <h1><field name="name"/></h1>
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'}"/>
112 <field name="date_begin"/>
113 <field name="date_end"/>
114 <field name="register_min"/>
115 <field name="register_max"/>
121 <page string="Event Description">
122 <field name="note" colspan="4" nolabel="1"/>
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"/>
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"/>
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"/>
145 <form string="Registration">
146 <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)" />
148 <group colspan="4" col="4">
149 <field name="email"/>
150 <field name="phone"/>
152 <group colspan="4" col="4">
153 <field name="nb_register"/>
155 <group colspan="4" col="4">
157 <group col="8" colspan="4">
158 <separator string="" colspan="4"/>
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"/>
171 <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
177 <!-- Event tree view -->
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>register_current) or (register_max and register_max<register_current);grey:state=='cancel'">
185 <field name="name" string="Name"/>
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"/>
201 <!-- Event Kanban View -->
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">
209 <field name="register_max"/>
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"/>
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()"/>
227 <div class="oe_event_time"><t t-esc="record.date_begin.raw_value.toString('hh:mm tt')"/></div>
229 <div class="oe_module_desc">
230 <h4><a type="edit"><field name="name"/></a></h4>
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>
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>
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>
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>
267 <!-- Events Calendar View -->
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">
282 <!-- Event Graph view -->
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">
291 <field name="register_current" operator="+"/>
292 <field name="register_prospect" operator="+"/>
297 <!-- Event Search View -->
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"/>
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"
318 domain="[('user_id','=',uid)]"/>
319 <filter icon="terp-go-today" string="Upcoming"
321 domain="[('date_begin','>=', 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"/>
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'}"/>
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>
355 id="act_event_list_register_event"
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}"
364 id="act_register_event_partner"
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}"
372 <menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
374 <!-- EVENTS/REGISTRATIONS/EVENTS -->
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>
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>
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>
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>
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"/>
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"/>
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">
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"/>
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"/>
454 <notebook colspan="4">
455 <page string="Additional Information">
456 <group colspan="2" col="2">
457 <separator string="Contact Information" colspan="2"/>
459 <field name="email"/>
460 <field name="phone"/>
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" />
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"/>
479 <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
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"/>
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="+"/>
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">
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"/>
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'}"/>
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"/>
563 id="menu_action_registration" parent="base.menu_event_main"
564 action="action_registration" groups="event.group_event_manager,event.group_event_user"/>
567 <menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/>