5 <!-- Read/Unread actions -->
7 <record id="actions_server_crm_meeting_read" model="ir.actions.server">
8 <field name="name">Mark read</field>
9 <field name="condition">True</field>
10 <field name="type">ir.actions.server</field>
11 <field name="model_id" ref="model_crm_meeting"/>
12 <field name="state">code</field>
13 <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
15 <record id="action_crm_meeting_read" model="ir.values">
16 <field name="name">action_crm_meeting_read</field>
17 <field name="action_id" ref="actions_server_crm_meeting_read"/>
18 <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_read'))" />
19 <field name="key">action</field>
20 <field name="model_id" ref="model_crm_meeting" />
21 <field name="model">crm.meeting</field>
22 <field name="key2">client_action_multi</field>
25 <record id="actions_server_crm_meeting_unread" model="ir.actions.server">
26 <field name="name">Mark unread</field>
27 <field name="condition">True</field>
28 <field name="type">ir.actions.server</field>
29 <field name="model_id" ref="model_crm_meeting"/>
30 <field name="state">code</field>
31 <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
33 <record id="action_crm_meeting_unread" model="ir.values">
34 <field name="name">action_crm_meeting_unread</field>
35 <field name="action_id" ref="actions_server_crm_meeting_unread"/>
36 <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_unread'))" />
37 <field name="key">action</field>
38 <field name="model_id" ref="model_crm_meeting" />
39 <field name="model">crm.meeting</field>
40 <field name="key2">client_action_multi</field>
43 <!-- CRM Meetings Types Form View -->
45 <record id="view_crm_meeting_type_tree" model="ir.ui.view">
46 <field name="name">Meeting Types Tree</field>
47 <field name="model">crm.meeting.type</field>
48 <field name="type">tree</field>
49 <field name="arch" type="xml">
50 <tree string="Meeting Types" editable="bottom">
56 <record id="action_crm_meeting_type" model="ir.actions.act_window">
57 <field name="name">Meeting Types</field>
58 <field name="res_model">crm.meeting.type</field>
59 <field name="view_type">form</field>
60 <field name="view_id" ref="view_crm_meeting_type_tree"/>
61 <field name="help">Create different meeting categories to better organize and classify your meetings.</field>
64 <menuitem id="menu_crm_meeting_type" parent="base.menu_calendar_configuration" sequence="1"
65 action="action_crm_meeting_type" groups="base.group_no_one"/>
67 <!-- CRM Meetings Form View -->
69 <record model="ir.ui.view" id="view_crm_meeting_form">
70 <field name="name">CRM - Meetings Form</field>
71 <field name="model">crm.meeting</field>
72 <field name="type">form</field>
73 <field name="arch" type="xml">
74 <form string="Meetings" version="7.0">
76 <button name="case_open" string="Confirm" type="object" class="oe_highlight"
78 <button name="case_close" string="Done" type="object"
80 <button name="case_reset" string="Reset to Unconfirmed" type="object"
81 states="cancel,done"/>
82 <button name="case_cancel" string="Cancel" type="object"
84 <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/>
87 <div class="oe_title">
88 <div class="oe_edit_only">
94 <label for="partner_ids" class="oe_edit_only"/>
96 <field name="partner_ids" widget="many2many_tags"/>
100 <page string="Meeting Detail">
103 <field name="user_id" />
104 <field name="categ_ids" widget="many2many_tags"/>
105 <field name="location"/>
106 <field name="organizer" groups="base.group_no_one"/>
109 <label for="date" string="Starting at"/>
112 <span attrs="{'invisible': [('allday','=',True)]}">
113 (<field name="duration" widget="float_time"
114 on_change="onchange_dates(date,duration,False,allday)"
115 class="oe_inline"/> hours)
120 <label for="date_deadline" />
122 <field name="date_deadline"
123 string="End Date" attrs="{'invisible': [('allday','=',True)]}"
124 on_change="onchange_dates(date,False,date_deadline)"/>
125 (<field name="allday" on_change="onchange_dates(date,False,False,allday)" class="oe_inline"/>
126 <label for="allday" string="All Day?"/>)
128 <field name="recurrency"
129 attrs="{'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}"/>
132 <field name="alarm_id" widget="selection" />
133 <field name="class"/>
134 <field name="show_as"/>
135 <field name="rrule" invisible="1" readonly="1"/>
136 <field name="recurrent_id" invisible="1"/>
137 <field name="recurrent_uid" invisible="1"/>
139 <group attrs="{'invisible': [('recurrency','=',False)]}">
140 <label for="interval"/>
142 <field name="interval" class="oe_inline"/>
143 <field name="rrule_type" class="oe_inline"/>
145 <label string="Until" for="end_type"/>
147 <field name="end_type" class="oe_inline"/>
148 <field name="count" attrs="{'invisible' : [('end_type', '!=', 'count')] }" class="oe_inline"/>
149 <field name="end_date" attrs="{'invisible' : [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}" class="oe_inline"/>
151 <label string="Select Weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"/>
152 <group col="4" colspan="1" name="weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}">
162 <label string="Day of Month"
163 attrs="{'invisible' : [('rrule_type','!=','monthly')]}"/>
165 <div attrs="{'invisible' : [('rrule_type','!=','monthly')]}">
166 <field name="select1" />
168 attrs="{'required' : [('select1','=','date'), ('rrule_type','=','monthly')],
169 'invisible' : [('select1','=','day')]}" />
170 <field name="byday" string="The"
171 attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" />
172 <field name="week_list" nolabel="1"
173 attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" />
178 <label for="description"/>
179 <field name="description"/>
181 <page string="Invitation Detail">
182 <button string="Invite People"
183 name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
184 icon="terp-partner" type="action"
185 attrs="{'readonly': [('state', '=', 'done')]}"
186 context="{'model' : 'crm.meeting', 'attendee_field':'attendee_ids'}" colspan="2"/>
187 <field name="attendee_ids" widget="one2many" mode="tree">
188 <tree string="Invitation details" editable="top">
189 <field name="sent_by_uid" string="From"/>
190 <field name="user_id" string="To"/>
191 <field name="email" string="Mail To"/>
192 <field name="role" />
193 <field name="state" />
194 <button name="do_tentative"
195 states="needs-action,declined,accepted"
196 string="Uncertain" type="object"
198 <button name="do_accept" string="Accept"
199 states="needs-action,tentative,declined"
200 type="object" icon="gtk-apply" />
201 <button name="do_decline" string="Decline"
202 states="needs-action,tentative,accepted"
203 type="object" icon="gtk-cancel" />
205 name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
206 string="Delegate" type="action"
207 icon="gtk-sort-descending"
208 states="needs-action,tentative,declined,accepted"
209 context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
211 <form string="Invitation details" version="7.0">
213 <button name="do_tentative" type="object"
214 states="needs-action,declined,accepted"
215 string="Uncertain" icon="terp-crm" />
216 <button name="do_accept" type="object"
217 states="needs-action,tentative,declined"
218 string="Accept" icon="gtk-apply" />
219 <button name="do_decline" type="object"
220 states="needs-action,tentative,accepted"
221 string="Decline" icon="gtk-cancel" />
222 <button name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" type="action"
223 states="needs-action,tentative,declined,accepted"
224 string="Delegate" icon="gtk-sort-descending"
225 context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
226 <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/>
230 <field name="email" />
231 <field name="rsvp" />
232 <field name="cutype" />
233 <field name="role" />
236 <field name="user_id"/>
245 <div class="oe_chatter">
246 <field name="message_ids" widget="mail_thread"/>
252 <!-- CRM Meeting Tree View -->
254 <record model="ir.ui.view" id="view_crm_meeting_tree">
255 <field name="name">CRM - Meetings Tree</field>
256 <field name="model">crm.meeting</field>
257 <field name="type">tree</field>
258 <field name="arch" type="xml">
259 <tree string="Meetings" fonts="bold:needaction_pending==True"
260 colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
261 <field name="name" string="Subject" />
262 <field name="user_id"/>
264 <field name="state"/>
265 <field name="duration" />
266 <field name="needaction_pending" invisible="1"/>
271 <!-- CRM Meeting Calendar -->
273 <record model="ir.ui.view" id="view_crm_meeting_calendar">
274 <field name="name">CRM - Meetings Calendar</field>
275 <field name="model">crm.meeting</field>
276 <field name="type">calendar</field>
277 <field name="priority" eval="2"/>
278 <field name="arch" type="xml">
279 <calendar string="Meetings" date_start="date" color="user_id" date_stop="date_deadline" date_delay="duration">
281 <field name="user_id"/>
286 <!-- CRM Meeting Gantt -->
288 <record id="view_crm_meeting_gantt" model="ir.ui.view">
289 <field name="name">CRM - Meetings Gantt</field>
290 <field name="model">crm.meeting</field>
291 <field name="type">gantt</field>
292 <field name="arch" type="xml">
293 <gantt date_delay="duration" date_start="date" string="Meetings"/>
297 <!-- CRM Meeting Search View -->
299 <record id="view_crm_meeting_search" model="ir.ui.view">
300 <field name="name">CRM - Meetings Search</field>
301 <field name="model">crm.meeting</field>
302 <field name="type">search</field>
303 <field name="arch" type="xml">
304 <search string="Search Meetings">
306 <field name="name" string="Meeting"
307 filter_domain="[('name','ilike',self)]"/>
308 <filter string="Inbox" help="Unread messages" icon="terp-mail-message-new"
309 name="needaction_pending" domain="[('needaction_pending','=',True)]"/>
310 <separator orientation="vertical"/>
311 <filter string="My Meetings" help="My Meetings" icon="terp-personal"
312 domain="[('user_id','=',uid)]"/>
313 <separator orientation="vertical"/>
314 <field name="user_id"/>
315 <field name="partner_ids"/>
321 <!-- CRM Meetings action and menu -->
323 <record id="action_crm_meeting" model="ir.actions.act_window">
324 <field name="name">Meetings</field>
325 <field name="res_model">crm.meeting</field>
326 <field name="view_mode">calendar,tree,form,gantt</field>
327 <field name="view_id" ref="view_crm_meeting_calendar"/>
328 <field name="search_view_id" ref="view_crm_meeting_search"/>
329 <field name="context">{"calendar_default_user_id": uid}</field>
331 The meeting calendar is shared between the sales teams and fully integrated with other applications
332 such as the employee holidays or the business opportunities.
333 You can also synchronize meetings with your mobile phone using the caldav interface.
336 <record model="ir.actions.act_window.view" id="action_view_crm_meeting_calendar">
337 <field name="act_window_id" ref="action_crm_meeting"/>
338 <field name="sequence" eval="1"/>
339 <field name="view_mode">calendar</field>
340 <field name="view_id" ref="view_crm_meeting_calendar"/>
342 <record model="ir.actions.act_window.view" id="action_view_crm_meeting_tree">
343 <field name="act_window_id" ref="action_crm_meeting"/>
344 <field name="sequence" eval="2"/>
345 <field name="view_mode">tree</field>
346 <field name="view_id" ref="view_crm_meeting_tree"/>
348 <record model="ir.actions.act_window.view" id="action_view_crm_meeting_form">
349 <field name="act_window_id" ref="action_crm_meeting"/>
350 <field name="sequence" eval="3"/>
351 <field name="view_mode">form</field>
352 <field name="view_id" ref="view_crm_meeting_form"/>
354 <record model="ir.actions.act_window.view" id="action_view_crm_meeting_gantt">
355 <field name="act_window_id" ref="action_crm_meeting"/>
356 <field name="sequence" eval="4"/>
357 <field name="view_mode">gantt</field>
358 <field name="view_id" ref="view_crm_meeting_gantt"/>
361 <menuitem id="menu_crm_meeting" parent="base.menu_sales" sequence="8"
362 name="Meetings" action="action_crm_meeting"/>