a2d6d4bc3b4f68c4c96c2a9bf7e72e49d1ae867a
[odoo/odoo.git] / addons / event / event_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5         <record id="act_event_list_register_event" model="ir.actions.act_window">
6             <field name="res_model">event.registration</field>
7             <field name="view_type">form</field>
8             <field name="name">Registrations</field>
9             <field name="view_mode">tree,form,calendar,graph</field>
10             <field name="context">{'search_default_event_id': active_id, 'default_event_id': active_id}</field>
11         </record>
12         <menuitem name="Events" parent="base.marketing_menu" id="event_main_menu" sequence="2"/>
13
14         <!-- EVENTS  -->
15
16         <!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
17         <record model="ir.ui.view" id="view_event_type_form">
18             <field name="name">Event type</field>
19             <field name="model">event.type</field>
20             <field name="arch" type="xml">
21                 <form string="Event Type">
22                     <group col="4">
23                         <field name="name"/>
24                         <field name="default_reply_to"/>
25                         <field name="default_registration_min"/>
26                         <field name="default_email_event" domain="[('model_id.model','=','event.registration')]"/>
27                         <field name="default_registration_max"/>
28                         <field name="default_email_registration" domain="[('model_id.model','=','event.registration')]"/>
29                     </group>
30                 </form>
31             </field>
32         </record>
33
34         <record model="ir.ui.view" id="view_event_type_tree">
35             <field name="name">Event type</field>
36             <field name="model">event.type</field>
37             <field name="arch" type="xml">
38                 <tree string="Event Type">
39                     <field name="name"/>
40                 </tree>
41             </field>
42         </record>
43
44         <record model="ir.actions.act_window" id="action_event_type">
45             <field name="name">Events Types</field>
46             <field name="res_model">event.type</field>
47             <field name="view_type">form</field>
48         </record>
49         <menuitem name="Events" id="event_configuration" parent="base.menu_marketing_config_root" sequence="1"/>
50         <menuitem name="Events Types" id="menu_event_type" action="action_event_type" parent="event.event_configuration" groups="base.group_no_one"/>
51
52         <!-- Events Organisation/CONFIGURATION/EVENTS -->
53         <record model="ir.ui.view" id="view_event_form">
54             <field name="name">Events</field>
55             <field name="model">event.event</field>
56             <field name="arch" type="xml">
57                 <form string="Events">
58                     <header>
59                         <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight" groups="base.group_user"/>
60                         <button string="Finish Event" name="button_done" states="confirm" type="object" class="oe_highlight" groups="base.group_user"/>
61                         <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" groups="base.group_user"/>
62                         <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" groups="base.group_user"/>
63                         <field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
64                     </header>
65                     <sheet>
66                         <div class="oe_title">
67                             <label for="name" class="oe_edit_only"/>
68                             <h1><field name="name"/></h1>
69                         </div>
70                         <div class="oe_right oe_button_box" groups="base.group_user">
71                             <button name="%(event.act_event_list_register_event)d" 
72                                 type="action" 
73                                 class="oe_stat_button oe_inline" 
74                                 icon="fa-github" 
75                                 help="Register with this event">
76                                 <field name="count_registrations" widget="statinfo" string="Registrations"/>
77                             </button>
78                         </div>
79                         <group name="main_field_group">
80                             <group>
81                                 <field name="address_id" context="{'show_address': 1}" options='{"always_reload": True}'/>
82                                 <field name="organizer_id"/>
83                                 <field name="company_id" groups="base.group_multi_company"/>
84                             </group>
85                             <group>
86                                 <field name="user_id"/>
87                                 <field name="type"/>
88                                 <field name="date_begin"/>
89                                 <field name="date_end"/>
90                                 <field name="date_tz" />
91                             </group>
92                         </group>
93                         <notebook>
94                             <page string="Registrations">
95                                 <group>
96                                     <group>
97                                         <field name="auto_confirm" invisible="1"/>
98                                         <field name="seats_min" attrs="{'invisible':[('auto_confirm','=', True)]}"/>
99                                         <field name="seats_max"/>
100                                         <label for="seats_reserved" string="Current Registrations" groups="base.group_user"/>
101                                         <div groups="base.group_user">
102                                              <field name="seats_unconfirmed" class="oe_inline"/> (confirmed: <field name="seats_reserved" class="oe_inline"/>)
103                                         </div>
104                                         <field name="seats_used"/>
105                                     </group>
106                                 </group>
107                                 <field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user" context="{'event_id': active_id}">
108                                     <tree string="Registration" editable="top">
109                                         <field name="name" />
110                                         <field name="email" />
111                                         <field name="phone"/>
112                                         <field name="nb_register" />
113                                         <field name="state"/>
114                                         <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
115                                         <button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
116                                         <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
117                                     </tree>
118                                     <form string="Registration">
119                                         <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
120                                         <field name="name"/>
121                                         <group colspan="4" col="4">
122                                         <field name="email"/>
123                                         <field name="phone"/>
124                                         </group>
125                                         <group colspan="4" col="4">
126                                             <field name="nb_register"/>
127                                         </group>
128                                         <group colspan="4" col="4">
129                                         </group>
130                                             <group col="8" colspan="4">
131                                                 <separator string="" colspan="4"/>
132                                                 <newline/>
133                                                 <field name="state" colspan="2"/>
134                                                 <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
135                                                 <button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
136                                                 <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
137                                             </group>
138                                     </form>
139                                 </field>
140                             </page>
141                             <page string="Description">
142                                 <field name="description" nolabel="1" placeholder="Event Description..."/>
143                             </page>
144                             <page string='Event Details' groups="base.group_no_one">
145                                 <group colspan="4">
146                                     <field name="reply_to"/>
147                                     <field name="email_registration_id"/>
148                                     <field name="email_confirmation_id"/>
149                                 </group>
150                             </page>
151                         </notebook>
152                     </sheet>
153                     <div class="oe_chatter">
154                         <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
155                         <field name="message_ids" widget="mail_thread"/>
156                     </div>
157                 </form>
158             </field>
159         </record>
160
161         <!-- Event tree view -->
162         <record model="ir.ui.view" id="view_event_tree">
163             <field name="name">event.event.tree</field>
164             <field name="model">event.event</field>
165             <field name="arch" type="xml">
166                 <tree string="Events" fonts="bold:message_unread==True" colors="red:(seats_min and seats_min&gt;seats_reserved) or (seats_max and seats_max&lt;seats_reserved);grey:state=='cancel'">
167                     <field name="name" string="Name"/>
168                     <field name="type" string="Event Category"/>
169                     <field name="date_begin"/>
170                     <field name="date_end"/>
171                     <field name="seats_reserved"/>
172                     <field name="seats_min"/>
173                     <field name="seats_max" invisible="1"/>
174                     <field name="user_id"/>
175                     <field name="state"/>
176                     <field name="message_unread" invisible="1"/>
177                 </tree>
178             </field>
179         </record>
180
181         <!-- Event Kanban View -->
182         <record model="ir.ui.view" id="view_event_kanban">
183             <field name="name">event.event.kanban</field>
184             <field name="model">event.event</field>
185             <field name="arch" type="xml">
186                 <kanban>
187                     <field name="user_id"/>
188                     <field name="country_id"/>
189                     <field name="date_begin"/>
190                     <field name="date_end"/>
191                     <field name="seats_unconfirmed"/>
192                     <field name="seats_reserved"/>
193                     <field name="color"/>
194                     <templates>
195                         <t t-name="kanban-box">
196                             <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_event_kanban_view" >
197                                 <div class="oe_dropdown_toggle oe_dropdown_kanban">
198                                     <span class="oe_e">í</span>
199                                     <ul class="oe_dropdown_menu">
200                                         <t t-if="widget.view.is_action_enabled('edit')">
201                                             <li><a type="edit">Event Settings</a></li>
202                                         </t>
203                                         <t t-if="widget.view.is_action_enabled('delete')">
204                                             <li><a type="delete">Delete</a></li>
205                                         </t>
206                                         <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
207                                     </ul>
208                                 </div>
209                                 <div class="oe_module_vignette row">
210                                     <div class="col-md-3">
211                                         <div class="oe_module_icon">
212                                             <div class="oe_event_date_thumb oe_event_date"><t t-esc="record.date_begin.raw_value.getDate()"/></div>
213                                             <div class="oe_event_date_thumb oe_event_month_year">
214                                                 <t t-esc="record.date_begin.raw_value.toString('MMM')"/>
215                                                 <t t-esc="record.date_begin.raw_value.getFullYear()"/>
216                                             </div>
217                                             <div class="oe_event_date_thumb oe_event_time"><t t-esc="record.date_begin.raw_value.toString('hh:mm tt')"/></div>
218                                         </div>
219                                     </div>
220                                     <div class="col-md-8">
221                                         <h4><field name="name"/></h4>
222                                         <div>
223                                             <small>
224                                                 <t t-if="record.country_id.raw_value"> <b> <field name="country_id"/> </b> <br/> </t>
225                                                 <i class="fa fa-clock-o" t-att-title="record.date_begin.raw_value.toString('hh:mm tt')"/>
226                                                 <b>From</b> <t t-esc="record.date_begin.raw_value.toString('MM/dd/yyyy')"/>
227                                                 <b>To</b> <t t-esc="record.date_end.raw_value.toString('MM/dd/yyyy')"/>
228                                             </small>
229                                         </div>
230                                         <h4>
231                                             <a name="%(act_event_list_register_event)d" type="action">
232                                                 <t t-esc="record.seats_reserved.raw_value" > Attendees</t>
233                                                 <t t-if="(record.seats_reserved.raw_value + record.seats_unconfirmed.raw_value) > 0 ">&#47;
234                                                     <t t-esc="record.seats_reserved.raw_value + record.seats_unconfirmed.raw_value"/> Expected
235                                                 </t>
236                                             </a>
237                                             <t t-if="record.seats_reserved.raw_value > 0">
238                                                 <a name="action_event_registration_report" type="object" >&#40;Report&#41;</a>
239                                             </t>
240                                         </h4>
241                                     </div>
242                                 </div>
243                             </div>
244                         </t>
245                     </templates>
246                 </kanban>
247             </field>
248         </record>
249
250         <!-- Events  Calendar  View -->
251         <record id="view_event_calendar" model="ir.ui.view">
252             <field name="name">event.event.calendar</field>
253             <field name="model">event.event</field>
254             <field eval="2" name="priority"/>
255             <field name="arch" type="xml">
256                 <calendar color="type" date_start="date_begin" date_stop="date_end" string="Event Organization">
257                     <field name="name"/>
258                     <field name="type"/>
259                 </calendar>
260             </field>
261         </record>
262
263         <!-- Event Search View -->
264         <record model="ir.ui.view" id="view_event_search">
265             <field name="name">Events</field>
266             <field name="model">event.event</field>
267             <field name="arch" type="xml">
268                 <search string="Events">
269                     <field name="name" string="Events"/>
270                     <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
271                     <separator/>
272                     <filter string="Unconfirmed" name="draft" domain="[('state','=','draft')]" help="Events in New state"/>
273                     <filter string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/>
274                     <separator/>
275                     <filter string="My Events" help="My Events" domain="[('user_id','=',uid)]"/>
276                     <separator/>
277                     <filter string="Upcoming" name="upcoming" domain="[('date_begin','&gt;=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Upcoming events from today" />
278                     <field name="type"/>
279                     <field name="user_id"/>
280                     <group expand="0" string="Group By">
281                         <filter string="Responsible" context="{'group_by': 'user_id'}"/>
282                         <filter string="Event Type" context="{'group_by':'type'}"/>
283                         <filter string="Status" context="{'group_by':'state'}"/>
284                         <filter string="Start Month" domain="[]" context="{'group_by':'date_begin'}"/>
285                     </group>
286                 </search>
287             </field>
288         </record>
289
290
291         <!-- Events Organisation/CONFIGURATION/EVENTS  -->
292         <record model="ir.actions.act_window" id="action_event_view">
293            <field name="name">Events</field>
294            <field name="type">ir.actions.act_window</field>
295            <field name="res_model">event.event</field>
296            <field name="view_type">form</field>
297            <field name="view_mode">kanban,calendar,tree,form</field>
298            <field name="context">{"search_default_upcoming":1}</field>
299            <field name="search_view_id" ref="view_event_search"/>
300            <field name="help" type="html">
301              <p class="oe_view_nocontent_create">
302                Click to add a new event.
303              </p><p>
304                Odoo helps you schedule and efficiently organize your events:
305                track subscriptions and participations, automate the confirmation emails,
306                sell tickets, etc.
307              </p>
308            </field>
309         </record>
310
311         <act_window
312             id="act_register_event_partner"
313             name="Subscribe"
314             res_model="event.registration"
315             src_model="res.partner"
316             view_mode="tree,form,calendar,graph"
317             context="{'search_default_partner_id': [active_id], 'default_partner_id': active_id}"
318             view_type="form"/>
319
320         <menuitem name="Events" id="menu_event_event" action="action_event_view" parent="event.event_main_menu" />
321
322         <!-- EVENTS/REGISTRATIONS/EVENTS  -->
323
324
325         <record model="ir.ui.view" id="view_event_registration_tree">
326             <field name="name">event.registration.tree</field>
327             <field name="model">event.registration</field>
328             <field name="arch" type="xml">
329                 <tree string="Registration" fonts="bold:message_unread==True">
330                     <field name="create_date"/>
331                     <field name="partner_id"/>
332                     <field name="name"/>
333                     <field name="email"/>
334                     <field name="event_id" />
335                     <field name="nb_register"/>
336                     <field name="user_id" invisible="1"/>
337                     <field name="origin"/>
338                     <field name="state"/>
339                     <field name="message_unread" invisible="1"/>
340                     <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
341                     <button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
342                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
343                 </tree>
344             </field>
345         </record>
346
347         <record model="ir.ui.view" id="view_event_registration_form">
348             <field name="name">event.registration.form</field>
349             <field name="model">event.registration</field>
350             <field name="arch" type="xml">
351                 <form string="Event Registration">
352                     <header>
353                         <button name="registration_open" string="Confirm" states="draft" type="object" class="oe_highlight"/>
354                         <button name="button_reg_close" string="Attended" states="open" type="object" class="oe_highlight"/>
355                         <button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object" />
356                         <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/>
357                         <field name="state" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
358                     </header>
359                     <sheet string="Registration">
360                         <label for="event_id" class="oe_edit_only"/>
361                         <h1>
362                             <field name="event_id" domain="[('state','in',('draft','confirm'))]"/>
363                         </h1>
364                         <group>
365                             <group>
366                                 <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
367                                 <field name="name"/>
368                                 <field name="phone"/>
369                                 <label for="email"/>
370                                 <div>
371                                     <field name="email" class="oe_inline"/>
372                                     <button class="oe_inline oe_right" string="Send Email"
373                                         name="%(mail.action_email_compose_message_wizard)d"
374                                         icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
375                                 </div>
376                             </group>
377                             <group>
378                                 <field name="nb_register"/>
379                                 <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'event.group_event_user']}"/>
380                             </group>
381                             <group groups="base.group_no_one">
382                                 <field name="create_date"/>
383                                 <field name="date_closed"/>
384                             </group>
385                         </group>
386                     </sheet>
387                     <div class="oe_chatter">
388                         <field name="message_follower_ids" widget="mail_followers"/>
389                         <field name="message_ids" widget="mail_thread"/>
390                     </div>
391                 </form>
392             </field>
393         </record>
394
395          <!-- Calendar view of event registration -->
396         <record id="view_event_registration_calendar" model="ir.ui.view">
397             <field name="name">event.registration.calendar</field>
398             <field name="model">event.registration</field>
399             <field eval="2" name="priority"/>
400             <field name="arch" type="xml">
401                 <calendar color="event_id" date_start="event_begin_date" date_stop="event_end_date" string="Event Registration">
402                     <field name="event_id"/>
403                     <field name="name"/>
404                 </calendar>
405             </field>
406         </record>
407
408         <record model="ir.ui.view" id="view_event_registration_graph">
409             <field name="name">Registration Graph</field>
410             <field name="model">event.registration</field>
411             <field name="arch" type="xml">
412                 <graph string="Registration" type="bar">
413                     <field name="event_id" type="row"/>
414                     <field name= "nb_register" type="measure"/>
415                 </graph>
416             </field>
417         </record>
418
419
420         <!-- Search view of event registration -->
421         <record model="ir.ui.view" id="view_registration_search">
422             <field name="name">Registrations</field>
423             <field name="model">event.registration</field>
424             <field name="arch" type="xml">
425                 <search string="Event Registration">
426                     <field name="name" string="Participant" filter_domain="['|','|',('name','ilike',self),('email','ilike',self),('origin','ilike',self)]"/>
427                     <filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
428                     <separator/>
429                     <filter string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/>
430                     <filter string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
431                     <separator/>
432                     <filter string="My Registrations" help="My Registrations" domain="[('user_id','=',uid)]"/>
433                     <field name="event_id"/>
434                     <field name="user_id"/>
435                     <field name="partner_id"/>
436                     <group expand="0" string="Group By">
437                         <filter string="Responsible"  domain="[]" context="{'group_by':'user_id'}"/>
438                         <filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
439                         <filter string="Event" name="group_event" domain="[]" context="{'group_by':'event_id'}"/>
440                         <filter string="Status" domain="[]" context="{'group_by':'state'}"/>
441                         <filter string="Registration Day" domain="[]" context="{'group_by': 'create_date:day'}"/>
442                         <filter string="Registration Month" domain="[]" context="{'group_by': 'create_date:month'}"/>
443                    </group>
444                 </search>
445             </field>
446         </record>
447
448         <record model="ir.actions.act_window" id="action_registration">
449           <field name="name">Registrations</field>
450           <field name="res_model">event.registration</field>
451           <field name="view_type">form</field>
452           <field name="domain"></field>
453           <field name="view_mode">tree,form,calendar,graph</field>
454           <field name="context">{}</field>
455           <field name="search_view_id" ref="view_registration_search"/>
456         </record>
457
458         <menuitem name="Registrations"
459             id="menu_action_registration" parent="event.event_main_menu"
460             action="action_registration" groups="event.group_event_manager,event.group_event_user"/>
461
462         <menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/>
463
464     </data>
465 </openerp>