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