[IMP] event: usabilty improvements
[odoo/odoo.git] / addons / event / event_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4         <menuitem name="Marketing" icon="terp-crm" id="base.marketing_menu" sequence="17"/>
5         <menuitem name="Events Organisation" id="base.menu_event_main" parent="base.marketing_menu" />
6
7     <!-- EVENTS  -->
8
9     <!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
10         <record model="ir.ui.view" id="view_event_type_form">
11             <field name="name">Event type</field>
12             <field name="model">event.type</field>
13             <field name="type">form</field>
14             <field name="arch" type="xml">
15                 <form string="Event Type">
16                     <field name="name" select="1"/>
17                 </form>
18             </field>
19         </record>
20
21         <record model="ir.ui.view" id="view_event_type_tree">
22             <field name="name">Event type</field>
23             <field name="model">event.type</field>
24             <field name="type">tree</field>
25             <field name="arch" type="xml">
26                 <tree string="Event Type">
27                     <field name="name"/>
28                 </tree>
29             </field>
30         </record>
31
32         <record model="ir.actions.act_window" id="action_event_type">
33             <field name="res_model">event.type</field>
34             <field name="view_type">form</field>
35         </record>
36         <menuitem name="Configuration" id="base.menu_marketing_config_root" parent="base.marketing_menu" sequence="30" groups="base.group_extended"/>
37         <menuitem name="Types of Events" id="menu_event_type" action="action_event_type" parent="base.menu_marketing_config_root" groups="base.group_extended"/>
38
39     <!-- Events Organisation/CONFIGURATION/EVENTS -->
40
41         <record model="ir.ui.view" id="view_event_form">
42             <field name="name">Events</field>
43             <field name="model">event.event</field>
44             <field name="type">form</field>
45             <field name="arch" type="xml">
46                 <form string="Events">
47                     <group col="6" colspan="4">
48                         <field name="name"/>
49                         <field name="date_begin"/>
50                         <field name="date_end"/>
51                         <field name="type" widget="selection"/>
52                         <field name="language"/>
53                         <field name="parent_id"/>
54                     </group>
55                     <notebook colspan="4">
56                     <page string="Event">
57                         <group colspan="4" col="4">
58                             <separator string="Invoice Information" colspan="4"/>
59                             <field name="product_id" on_change="onchange_product(product_id)" colspan="4"/>
60                             <field name="unit_price"/>
61                             <field name="pricelist_id" widget="selection" domain="[('type','=','sale')]" groups="base.group_extended"/>
62                         </group>
63                         <group colspan="2" col="2">
64                             <separator string="Contact" colspan="4"/>
65                             <field name="user_id"/>
66                             <field name="section_id" widget="selection" on_change="do_team_change(section_id)"/>
67                             <field name="company_id" groups="base.group_multi_company" widget="selection"/>
68                         </group>
69                         <group colspan="2" col="2">
70                             <separator string="Location" colspan="4"/>
71                             <field name="country_id" />
72                             <field name="address_id" domain="[('country_id','=',country_id)]"/>
73
74                         </group>
75                         <separator string="Description" colspan="4"/>
76                         <field name="note" colspan="4" nolabel="1"/>
77                         <field name="state" select="1"/>
78                         <group col="4" colspan="2">
79                            <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
80                            <button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
81                            <button string="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
82                            <button string="Set To Draft" name="button_draft" states="cancel" type="object" icon="gtk-convert"/>
83                         </group>
84                     </page>
85                     <page string="Speakers">
86                         <field name="main_speaker_id" domain="[('speaker','=',True)]"/>
87                         <field name="speaker_confirmed"/>
88                         <separator string="Other Speakers" colspan="4"/>
89                         <field name="speaker_ids" domain="[('speaker','=',True)]" colspan="4" nolabel="1"/>
90                     </page>
91                     <page string="Registrations">
92                         <field name="register_min"/>
93                         <field name="register_max"/>
94                         <field name="register_current"/>
95                         <field name="register_prospect"/>
96                         <field name="registration_ids" colspan="4" nolabel="1" readonly="1">
97                             <form string="Registration">
98                                 <field name="name"/>
99                                 <field name="date" string="Date"/>
100                                 <field name="partner_id" required="1" on_change="onchange_partner_id(partner_id,event_id)"/>
101                                 <field name="partner_invoice_id" on_change="onchange_partner_invoice_id(event_id, partner_invoice_id)"/>
102                                 <group colspan="4" col="4">
103                                     <field name="event_product"/>
104                                     <field name="nb_register"/>
105                                     <field name="unit_price"/>
106                                     <field name="price_subtotal"/>
107                                 </group>
108                                 <group col="8" colspan="4">
109                                     <separator string="" colspan="4"/>
110                                     <newline/>
111                                     <field name="state" select="1" colspan="2"/>
112                                     <button name="button_reg_close" string="Close Registration" states="open" type="object" icon="gtk-close"/>
113                                     <button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
114                                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
115                                 </group>
116                             </form>
117                             <tree string="Registration">
118                                     <field name="create_date" string="Registration Date"/>
119                                     <field name="partner_id" required="1" string="Partner" on_change="onchange_partner_id(partner_id,event_id)"/>
120                                     <field name="event_product"/>
121                                     <field name="nb_register"/>
122                                     <field name="unit_price"/>
123                                     <field name="price_subtotal"/>
124                                     <field name="state"/>
125                                     <button name="button_reg_close" string="Close Registration" states="open" type="object" icon="gtk-close"/>
126                                     <button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
127                                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
128                             </tree>
129                         </field>
130                     </page>
131                     <page string="Mailing">
132                         <field name="reply_to" />
133                         <newline/>
134                         <group col="4" colspan="4">
135                             <group col="2" colspan="2">
136                                 <separator string="Auto Registration Email" colspan="4"/>
137                                 <field name="mail_auto_registr" colspan="4"/>
138                                 <group colspan="4" attrs="{'readonly':[('mail_auto_registr','=',False)]}">
139                                     <separator string="Registration Email Body" colspan="4"/>
140                                     <field name="mail_registr" colspan="4" nolabel="1" />
141                                 </group>
142                             </group>
143                             <group col="2" colspan="2">
144                                 <separator string="Auto Confirmation Email" colspan="4"/>
145                                 <field name="mail_auto_confirm" colspan="4"/>
146                                 <group colspan="4" attrs="{'readonly':[('mail_auto_confirm','=',False)]}">
147                                     <separator string="Confirmation Email Body" colspan="4"/>
148                                     <field name="mail_confirm" nolabel="1" colspan="4"/>
149                                 </group>
150                             </group>
151                         </group>
152                     </page>
153                     </notebook>
154             </form>
155             </field>
156         </record>
157
158         <!-- Event tree view -->
159
160         <record model="ir.ui.view" id="view_event_tree">
161             <field name="name">event.event.tree</field>
162             <field name="model">event.event</field>
163             <field name="type">tree</field>
164             <field name="arch" type="xml">
165                 <tree string="Events" colors="red:register_min>register_current;black:register_min&lt;=register_current">
166                     <field name="name" string="Name"/>
167                     <field name="user_id"/>
168                     <field name="main_speaker_id"/>
169                     <field name="language"/>
170                     <field name="type"/>
171                     <field name="date_begin"/>
172                     <field name="date_end"/>
173                     <field name="register_min"/>
174                     <field name="register_current"/>
175                     <field name="section_id" invisible="context.get('invisible_section', True)"/>
176                     <field name="state"/>
177                     <button string="Confirm Event" help="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
178                     <button string="Cancel Event" help="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
179                     <button string="Event Done" help="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
180                     <button string="Set To Draft" help="Set To Draft" name="button_draft" states="confirm,cancel,done" type="object" icon="gtk-convert"/>
181                 </tree>
182             </field>
183         </record>
184
185       <!-- Events  Calendar  View -->
186
187         <record id="view_event_calendar" model="ir.ui.view">
188             <field name="name">event.event.calendar</field>
189             <field name="model">event.event</field>
190             <field name="type">calendar</field>
191             <field eval="2" name="priority"/>
192             <field name="arch" type="xml">
193                 <calendar color="user_id" date_start="date_begin" string="Event Organization">
194                     <field name="name"/>
195                     <field name="type" widget="selection"/>
196                 </calendar>
197             </field>
198         </record>
199
200         <!-- Event Graph view -->
201
202         <record model="ir.ui.view" id="view_event_graph">
203             <field name="name">Event Graph</field>
204             <field name="model">event.event</field>
205             <field name="type">graph</field>
206             <field name="arch" type="xml">
207                 <graph string="Event by Registration" type="bar" orientation="horizontal">
208                     <field name="name"/>
209                     <field name="register_current" operator="+"/>
210                     <field name="register_prospect" operator="+"/>
211                 </graph>
212             </field>
213         </record>
214
215     <!-- Event Search View -->
216
217         <record model="ir.ui.view" id="view_event_search">
218             <field name="name">Events</field>
219             <field name="model">event.event</field>
220             <field name="type">search</field>
221             <field name="arch" type="xml">
222                 <search string="Events">
223                     <group col="10" colspan="4">
224                         <filter icon="terp-check" string="Current" name="draft" domain="[('state','in',('draft', 'confirm'))]" help="Events in draft or confirmed state"/>
225                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed events"/>
226                         <separator orientation="vertical"/>
227                         <field name="name" select="1"/>
228                         <field name="user_id" widget="selection">
229                         <filter icon="terp-personal"
230                               string="My Events"
231                                 help="My Events"
232                               domain="[('user_id','=',uid)]"/>
233                         </field>
234                         <field name="date_begin" select="1"/>
235                         <field name="section_id" default="context.get('section_id', False)" widget="selection" groups="base.group_extended">
236                           <filter icon="terp-personal+"
237                                   context="{'invisible_section': False}"
238                                   domain="[('section_id.user_id','=',uid)]"
239                                   groups="base.group_extended"
240                                   help="My Sales Team(s)"/>
241                         </field>
242                     </group>
243                     <newline/>
244                     <group expand="0" string="Group By..." colspan="4" col="12">
245                         <filter string="Responsible"  icon="terp-personal" context="{'group_by': 'user_id'}"/>
246                         <separator orientation="vertical"/>
247                         <filter string="Event Type" icon="terp-crm"  context="{'group_by':'type'}"/>
248                         <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
249                         <separator orientation="vertical"/>
250                         <filter string="Beginning Date" icon="terp-go-month"
251                             domain="[]" context="{'group_by':'date_begin'}"/>
252                     </group>
253                 </search>
254             </field>
255         </record>
256
257     <!-- Events Organisation/CONFIGURATION/EVENTS  -->
258
259        <record model="ir.actions.act_window" id="action_event_view">
260            <field name="name">Events</field>
261            <field name="type">ir.actions.act_window</field>
262            <field name="res_model">event.event</field>
263            <field name="view_type">form</field>
264            <field name="view_mode">tree,form,calendar,graph</field>
265            <field name="context">{"search_default_draft": "1", "search_default_section_id": section_id}</field>
266            <field name="search_view_id" ref="view_event_search"/>
267        </record>
268
269       <act_window
270             id="act_event_list_register_event"
271             name="Registration"
272             res_model="event.registration"
273             src_model="event.event"
274             view_mode="tree,form,calendar,graph"
275             context="{'search_default_event_id': active_id}"
276             view_type="form"/>
277
278       <act_window
279             id="act_register_event_partner"
280             name="Subscribe"
281             res_model="event.registration"
282             src_model="res.partner"
283             view_mode="tree,form,calendar,graph"
284             context="{'search_default_partner_id': [active_id]}"
285             view_type="form"/>
286
287        <menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
288
289     <!-- EVENTS/REGISTRATIONS/EVENTS  -->
290
291
292         <record model="ir.ui.view" id="view_event_registration_tree">
293             <field name="name">event.registration.tree</field>
294             <field name="model">event.registration</field>
295             <field name="type">tree</field>
296             <field name="arch" type="xml">
297                 <tree string="Registration">
298                     <field name="partner_id"/>
299                     <field name="event_id"/>
300                     <field name="nb_register"/>
301                     <field name="price_subtotal" sum="Total"/>
302                     <field name="user_id"/>
303                     <field name="state"/>
304                     <button name="button_reg_close" string="Close Registration" states="open" type="object" icon="gtk-close"/>
305                     <button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
306                     <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
307                 </tree>
308             </field>
309         </record>
310
311         <record model="ir.ui.view" id="view_event_registration_form">
312             <field name="name">event.registration.form</field>
313             <field name="model">event.registration</field>
314             <field name="type">form</field>
315             <field name="arch" type="xml">
316                 <form string="Registration">
317                     <group col="6" colspan="4">
318                         <field name="event_id" on_change="onchange_event(event_id, partner_invoice_id)" domain="[('state','in',('draft','confirm'))]"/>
319                         <field name="create_date" string="Registration Date"/>
320                         <field name="name"/>
321                         <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" required="1" on_change="onchange_partner_id(partner_id,event_id)" />
322                         <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}" />
323                         <field name="tobe_invoiced"/>
324                     </group>
325                     <notebook colspan="4">
326                         <page string="Registration">
327                             <field name="date" />
328                             <field name="date_deadline" />
329                             <group colspan="2" col="2">
330                                 <separator string="Registration Cost" colspan="4"/>
331                                 <field name="nb_register"/>
332                                 <field name="unit_price"/>
333                                 <field name="price_subtotal"/>
334                             </group>
335                             <group colspan="2" col="2" attrs="{'invisible':[('tobe_invoiced','=',False)]}">
336                                 <separator string="Invoice" colspan="4"/>
337                                 <field name="event_product" attrs="{'required':[('tobe_invoiced','=',True)]}"/>
338                                 <field name="partner_invoice_id" attrs="{'required':[('tobe_invoiced','=',True)]}" on_change="onchange_partner_invoice_id(event_id, partner_invoice_id)"/>
339                                 <field name="invoice_id"/>
340                            </group>
341                             <separator string="Description" colspan="4"/>
342                             <field name="description" colspan="4" nolabel="1"/>
343                             <separator string="" colspan="4"/>
344                             <group col="8" colspan="4">
345                                 <field name="state" select="1" colspan="2"/>
346                                 <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
347                                 <button name="button_reg_close" string="Close Registration" states="open" type="object" icon="gtk-close"/>
348                                 <button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
349                             </group>
350                         </page>
351                         <page string="Extra Info">
352                             <separator string="Contact" colspan="4"/>
353                             <field name="contact_id" on_change="onchange_contact_id(contact_id, partner_id)" />
354                             <field name="email_from"/>
355                             <field name="badge_ids" colspan="4" nolabel="1">
356                                 <tree string="Badges" editable="bottom">
357                                     <field name="name"/>
358                                     <field name="title"/>
359                                     <field name="address_id"/>
360                                 </tree>
361                                 <form string="Badges">
362                                     <field name="name"/>
363                                     <field name="title"/>
364                                     <field name="address_id"/>
365                                 </form>
366                             </field>
367                             <group col="2" colspan="2" groups="base.group_extended">
368                                <separator string="Dates" colspan="2"/>
369                                <field name="date_closed"/>
370                             </group>
371                             <group col="2" colspan="2" groups="base.group_extended">
372                                <separator string="Misc" colspan="2"/>
373                                <field name="id"/>
374                                <field name="active"/>
375                             </group>
376                         </page>
377                         <page string="Emails" groups="base.group_extended">
378                             <group colspan="4">
379                                  <field colspan="4" name="email_cc" string="CC" widget="char" size="512"/>
380                             </group>
381                             <field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
382                                 <tree string="History">
383                                     <field name="display_text" string="History Information"/>
384                                     <field name="history" invisible="1"/>
385                                     <button
386                                         string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
387                                         name="%(crm.action_crm_send_mail)d"
388                                         context="{'mail':'reply', 'model': 'event.registration', 'include_original' : True}"
389                                         icon="terp-mail-replied" type="action" />
390                                 </tree>
391                                 <form string="History">
392                                     <group col="4" colspan="4">
393                                         <field name="email_from"/>
394                                         <field name="date"/>
395                                         <field name="email_to" widget="char" size="512"/>
396                                         <field name="email_cc" widget="char" size="512"/>
397                                         <field name="name" colspan="4" widget="char" size="512"/>
398                                         <field name="history" invisible="1"/>
399                                     </group>
400                                     <notebook colspan="4">
401                                         <page string="Details">
402                                             <group attrs="{'invisible': [('history', '!=', True)]}">
403                                                 <field name="description" colspan="4" nolabel="1" height="250"/>
404                                                 <button colspan="4"
405                                                     string="Reply"
406                                                     name="%(crm.action_crm_send_mail)d"
407                                                     context="{'mail':'reply', 'model': 'event.registration', 'include_original' : True}"
408                                                     icon="terp-mail-replied" type="action" />
409                                             </group>
410                                             <group attrs="{'invisible': [('history', '=', True)]}">
411                                                 <field name="display_text" colspan="4" nolabel="1"  height="250"/>
412                                             </group>
413                                         </page>
414                                         <page string="Attachments">
415                                             <field name="attachment_ids" colspan="4" readonly="1" nolabel="1"/>
416                                         </page>
417                                     </notebook>
418                                 </form>
419                             </field>
420                              <button string="Add Internal Note"
421                                 name="%(crm.action_crm_add_note)d"
422                                 context="{'model': 'crm.lead' }"
423                                 icon="terp-document-new" type="action" />
424                               <button string="Send New Email"
425                                 name="%(crm.action_crm_send_mail)d"
426                                 context="{'mail':'new', 'model': 'event.registration'}"
427                                 icon="terp-mail-message-new" type="action" />
428                            </page>
429                     </notebook>
430                 </form>
431             </field>
432         </record>
433
434  <!-- Calendar view of event registration -->
435
436         <record id="view_event_registration_calendar" model="ir.ui.view">
437             <field name="name">event.registration.calendar</field>
438             <field name="model">event.registration</field>
439             <field name="type">calendar</field>
440             <field eval="2" name="priority"/>
441             <field name="arch" type="xml">
442                 <calendar color="event_id" date_start="date" date_delay="date_closed" string="Event Registration">
443                     <field name="event_id"/>
444                     <field name="partner_invoice_id"/>
445                 </calendar>
446             </field>
447         </record>
448
449         <record model="ir.ui.view" id="view_event_registration_graph">
450             <field name="name">Registration Graph</field>
451             <field name="model">event.registration</field>
452             <field name="type">graph</field>
453             <field name="arch" type="xml">
454                 <graph string="Registration" type="bar" orientation="horizontal">
455                     <field name="event_id"/>
456                     <field name = "nb_register" operator="+"/>
457                 </graph>
458             </field>
459         </record>
460
461
462 <!-- Search view of event registration form-->
463
464         <record model="ir.ui.view" id="view_registration_search">
465             <field name="name">Registrations</field>
466             <field name="model">event.registration</field>
467             <field name="type">search</field>
468             <field name="arch" type="xml">
469                 <search string="Event Registration">
470                     <group col="12" colspan="4">
471                         <filter icon="terp-check" string="Current" name="draft" domain="[('state','in',('draft', 'open'))]" help="Registrations in unconfirmed or confirmed state"/>
472                         <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
473                         <separator orientation="vertical"/>
474                         <field name="partner_id" />
475                         <field name="event_id" widget="selection"/>
476                         <field name="user_id" widget="selection">
477                         <filter icon="terp-personal"
478                               string="My Registrations"
479                                 help="My Registrations"
480                               domain="[('user_id','=',uid)]"/>
481                         </field>
482                         <field name="state" select="1"/>
483                     </group>
484                     <newline/>
485                     <group expand="0" string="Group By...">
486                         <filter string="Responsible"  icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
487                         <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
488                         <separator orientation="vertical"/>
489                         <filter string="Event" icon="terp-crm" domain="[]" context="{'group_by':'event_id'}"/>
490                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
491                    </group>
492                 </search>
493             </field>
494         </record>
495
496         <record model="ir.actions.act_window" id="action_registration">
497           <field name="name">Registrations</field>
498           <field name="res_model">event.registration</field>
499           <field name="view_type">form</field>
500           <field name="domain"></field>
501           <field name="view_mode">tree,form,calendar,graph</field>
502           <field name="context">{"search_default_draft": "1"}</field>
503           <field name="search_view_id" ref="view_registration_search"/>
504         </record>
505
506         <menuitem
507             name="Registrations"
508             id="menu_action_registration" parent="base.menu_event_main"
509             action="action_registration"/>
510         <menuitem name="Reporting" id="base.menu_report_association" parent="base.marketing_menu" sequence="20"/>
511     </data>
512 </openerp>