[REF] Thread widget: small refactoring: all widgets now use a mixin class that offers...
[odoo/odoo.git] / addons / mail / mail_message_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4         <!-- mail.message tree: short view !-->
5         <record model="ir.ui.view" id="view_message_tree_short">
6             <field name="name">mail.message.tree.short</field>
7             <field name="model">mail.message</field>
8             <field name="type">tree</field>
9             <field name="priority">20</field>
10             <field name="arch" type="xml">
11                 <tree string="Messages">
12                     <field name="date"/>
13                     <field name="subject"/>
14                     <field name="user_id"/>
15                     <field name="model"/>
16                     <field name="res_id"/>
17                 </tree>
18             </field>
19         </record>
20
21         <!-- mail.message form: short view !-->
22         <record model="ir.ui.view" id="view_message_form_short">
23             <field name="name">mail.message.form.short</field>
24             <field name="model">mail.message</field>
25             <field name="type">form</field>
26             <field name="priority">20</field>
27             <field name="arch" type="xml">
28                 <form string="Message" version="7.0">
29                     <sheet>
30                         <group>
31                             <group>
32                                 <field name="subject"/>
33                                 <field name="user_id"/>
34                                 <field name="date"/>
35                                 <field name="type"/>
36                                 <field name="content_subtype"/>
37                                 <field name="destination_partner_ids" widget="many2many_tags" readonly="1"/>
38                             </group>
39                             <group>
40                                 <field name="model"/>
41                                 <field name="res_id"/>
42                                 <field name="parent_id"/>
43                                 <field name="body_text"/>
44                                 <field name="body_html"/>
45                             </group>
46                         </group>
47                     </sheet>
48                 </form>
49             </field>
50         </record>
51
52         <!-- mail.message search: short view !-->
53         <record model="ir.ui.view" id="view_message_search_short">
54             <field name="name">mail.message.search.short</field>
55             <field name="model">mail.message</field>
56             <field name="type">search</field>
57             <field name="priority">20</field>
58             <field name="arch" type="xml">
59                 <search string="Messages Search">
60                     <field name="user_id"/>
61                     <field name="model"/>
62                     <field name="date"/>
63                 </search>
64             </field>
65         </record>
66
67         <!-- mail.message search: wall view !-->
68         <record model="ir.ui.view" id="view_message_search_wall">
69             <field name="name">mail.message.search.wall</field>
70             <field name="model">mail.message</field>
71             <field name="type">search</field>
72             <field name="priority">25</field>
73             <field name="arch" type="xml">
74                 <search string="Messages Search">
75                     <field name="user_id"/>
76                     <field name="body"/>
77                     <field name="type"/>
78                     <filter icon="terp-personal+" string="My Feeds"
79                             name="my_feeds" help="My Feeds"
80                             domain="[('user_id','=',uid)]"/>
81                     <filter icon="terp-personal+" string="Comments"
82                             name="comments" help="Comments"
83                             domain="[('type', '=', 'comment')]"/>
84                     <filter icon="terp-personal+" string="Notifications"
85                             name="notifications" help="Notifications"
86                             domain="[('type', '=', 'notification')]"/>
87                     <filter icon="terp-personal+" string="Emails"
88                             name="emails" help="Emails"
89                             domain="[('type', '=', 'email')]"/>
90                     <filter icon="terp-go-today" string="Today"
91                             name="today" help="Today"
92                             domain="[   ('date', '&lt;=', datetime.date.today().strftime('%%Y-%%m-%%d 23:59:59')),
93                                         ('date', '&gt;=', datetime.date.today().strftime('%%Y-%%m-%%d 00:00:00'))
94                                     ]"/>
95                     <filter icon="terp-go-week" string="This week"
96                             name="7_days" help="This week"
97                             domain="[   ('date', '&lt;=', datetime.date.today().strftime('%%Y-%%m-%%d 23:59:59')),
98                                         ('date', '&gt;=', (datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d 00:00:00'))
99                                     ]"/>
100                 </search>
101             </field>
102         </record>
103
104         <record model="ir.ui.view" id="view_email_message_form">
105             <field name="name">mail.message.form</field>
106             <field name="model">mail.message</field>
107             <field name="type">form</field>
108             <field name="arch" type="xml">
109                 <form string="Email message" version="7.0">
110                     <sheet>
111                         <label for="subject" class="oe_form_readonly_hidden"/>
112                         <h1><field name="subject"/></h1>
113                         <label for="user_id" class="oe_form_readonly_hidden"/>
114                         <h2><field name="user_id" class="oe_form_inline" string="User"/> on <field name="date" class="oe_form_inline"/></h2>
115                         <button name="%(action_email_compose_message_wizard)d" string="Reply" type="action" icon="terp-mail-replied"
116                                 context="{'mail.compose.message.mode':'reply', 'message_id':active_id}" states='received,sent,exception,cancel'/>
117                         <notebook colspan="4">
118                             <page string="Message Details">
119                                 <group string="Recipients">
120                                     <field name="email_from"/>
121                                     <field name="email_to"/>
122                                     <field name="email_cc" attrs="{'invisible':[('email_cc', '=', False)]}"/>
123                                     <field name="email_bcc" attrs="{'invisible':[('email_bcc', '=', False)]}"/>
124                                     <field name="reply_to" attrs="{'invisible':[('reply_to', '=', False)]}"/>
125                                 </group>
126                                 <group string="Partner information">
127                                     <field name="partner_id" readonly="1" attrs="{'invisible':[('partner_id', '=', False)]}"/>
128                                     <field name="destination_partner_ids" readonly="1" WIDGET="many2many_tags"/>
129                                 </group>
130                                 <notebook>
131                                     <page string="Body (Rich)">
132                                         <field name="body_html" widget="text_html"/>
133                                     </page>
134                                     <page string="Body (Plain)">
135                                         <field name="body_text" widget="text"/>
136                                     </page>
137                                 </notebook>
138                             </page>
139                             <page string="Attachments">
140                                 <field name="attachment_ids"/>
141                             </page>
142                             <page string="Advanced" groups="base.group_no_one">
143                                 <group>
144                                     <group string="Type details">
145                                         <field name="auto_delete"/>
146                                         <field name="type"/>
147                                         <field name="content_subtype"/>
148                                         <field name="state" colspan="2"/>
149                                         <field name="mail_server_id" attrs="{'invisible':[('mail_server_id', '=', False)]}"/>
150                                         <field name="original" attrs="{'invisible':[('original', '=', False)]}"/>
151                                     </group>
152                                     <group string="Headers">
153                                         <field name="message_id"/>
154 <!--
155                                         <field name="message_id" colspan="4" attrs="{'invisible':[('message_id', '=', False)]}"/>
156 -->
157                                         <field name="references"/>
158 <!--
159                                         <field name="references" colspan="4" widget="char" size="512" attrs="{'invisible':[('references', '=', False)]}"/>
160 -->
161                                         <field name="headers" attrs="{'invisible':[('headers', '=', False)]}"/>
162                                     </group>
163                                 </group>
164                                 <group string="Message Details">
165                                     <field name="model"/>
166                                     <button name="open_document" string="Open" type="object" icon="gtk-jump-to" colspan="2"
167                                             attrs="{'invisible':['|', ('model', '=', ''), ('res_id', '=', False)]}"/>
168                                     <field name="res_id"/>
169                                 </group>
170                             </page>
171                         </notebook>
172                     </sheet>
173                 </form>
174             </field>
175         </record>
176
177         <record model="ir.ui.view" id="view_email_message_tree">
178             <field name="name">mail.message.tree</field>
179             <field name="model">mail.message</field>
180             <field name="type">tree</field>
181             <field name="arch" type="xml">
182                 <tree string="Emails" colors="grey:state in ('sent', 'cancel');blue:state=='outgoing';red:state=='exception';black:state=='received'">
183                     <field name="date"/>
184                     <field name="subject"/>
185                     <field name="email_from"/>
186                     <field name="user_id" string="User"/>
187                     <field name="message_id" invisible="1"/>
188                     <field name="partner_id" invisible="1"/>
189                     <field name="model" invisible="1"/>
190                     <field name="res_id" invisible="1"/>
191                     <field name="state"/>
192                     <button name="send" string="Send Now" type="object" icon="gtk-media-play" states='outgoing'/>
193                     <button name="mark_outgoing" string="Retry" type="object" icon="gtk-redo" states='exception,cancel'/>
194                     <button name="cancel" string="Cancel" type="object" icon="terp-gtk-stop" states='outgoing'/>
195                     <button name="open_document" string="Open Related Document" type="object" icon="gtk-jump-to"/>
196                     <button name="open_attachment" string="Open Attachments" type="object" icon="gtk-jump-to"/>
197                 </tree>
198             </field>
199         </record>
200
201         <record model="ir.ui.view" id="view_email_message_search">
202             <field name="name">mail.message.search</field>
203             <field name="model">mail.message</field>
204             <field name="type">search</field>
205             <field name="arch" type="xml">
206                 <search string="Email Search">
207                     <filter icon="terp-camera_test" name="received" string="Received" domain="[('state','=','received')]"/>
208                     <filter icon="terp-call-start" name="outgoing" string="Outgoing" domain="[('state','=','outgoing')]"/>
209                     <filter icon="terp-check" name="sent" string="Sent" domain="[('state','=','sent')]"/>
210                     <separator orientation="vertical"/>
211                     <filter icon="terp-gtk-stop" name="exception" string="Failed" domain="[('state','=','exception')]"/>
212                     <separator orientation="vertical"/>
213                     <filter icon="terp-camera_test" name="type_email" string="Email" domain="[('type','=','email')]"/>
214                     <filter icon="terp-camera_test" name="type_comment" string="Comment" domain="[('type','=','comment')]"/>
215                     <filter icon="terp-camera_test" name="type_notification" string="Notification" domain="[('type','=','notification')]"/>
216                     <separator orientation="vertical"/>
217                     <field name="email_from"/>
218                     <field name="email_to"/>
219                     <field name="subject"/>
220                     <field name="date"/>
221                     <newline/>
222                     <group expand="0" string="Extended Filters...">
223                         <field name="user_id" string="User"/>
224                         <field name="partner_id" string="Partner Name"/>
225                         <field name="model"/>
226                         <field name="res_id"/>
227                     </group>
228                     <newline/>
229                     <group expand="0" string="Group By...">
230                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
231                         <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
232                         <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
233                         <separator orientation="vertical"/>
234                         <filter string="Thread" icon="terp-mail-" domain="[]" context="{'group_by':'message_id'}"/>
235                         <separator orientation="vertical"/>
236                         <filter string="Month" help="Creation Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
237                     </group>
238                 </search>
239             </field>
240         </record>
241
242         <record id="action_view_all_messages_short" model="ir.actions.act_window">
243             <field name="name">Messages</field>
244             <field name="res_model">mail.message</field>
245             <field name="view_type">form</field>
246             <field name="view_mode">tree,form</field>
247             <field name="context">{'tree_view_ref': 'mail.view_message_tree_short', 'form_view_ref': 'mail.view_message_form_short'}</field>
248             <field name="search_view_id" ref="view_message_search_short"/>
249         </record>
250
251         <record id="action_view_mail_message" model="ir.actions.act_window">
252             <field name="name">Messages</field>
253             <field name="res_model">mail.message</field>
254             <field name="view_type">form</field>
255             <field name="view_mode">tree,form</field>
256             <field name="context">{'search_default_received': 1, 'search_default_type_email': 1}</field>
257             <field name="search_view_id" ref="view_email_message_search"/>
258         </record>
259
260         <act_window domain="[('partner_id', '=', active_id), ('email_from', '!=', False)]"
261             context="{'default_partner_id': active_id}"
262             id="act_res_partner_emails" name="Emails"
263             res_model="mail.message"
264             src_model="res.partner"
265             view_id="view_email_message_tree"/>
266
267         <!-- Add menu entry in Settings/Email -->
268         <menuitem name="Messages" id="menu_email_message" parent="base.menu_email" action="action_view_mail_message" />
269         
270         <!-- Add menu entry in Settings/Email -->
271         <menuitem name="Feeds" id="menu_email_message_all" parent="base.menu_email" action="action_view_all_messages_short" groups="base.group_no_one"/>
272
273         <record id="action_mail_all_feeds" model="ir.actions.client">
274             <field name="name">News Feed</field>
275             <field name="tag">mail.all_feeds</field>
276             <field name="params" eval="{'search_view_id': ref('view_message_search_wall')}"/>
277         </record>
278
279         <record id="action_mail_my_feeds" model="ir.actions.client">
280             <field name="name">My Feeds</field>
281             <field name="tag">mail.all_feeds</field>
282             <field name="params" eval="{'search_view_id': ref('view_message_search_wall'), 'my_feeds': True}"/>
283         </record>
284     </data>
285 </openerp>