[IMP] mail : Improved the Search View.
[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                     <group>
30                         <group>
31                             <field name="subject"/>
32                             <field name="date"/>
33                             <field name="type"/>
34                             <field name="body_text"/>
35                         </group>
36                         <group>
37                             <field name="user_id" string="User"/>
38                             <field name="model"/>
39                             <field name="res_id"/>
40                             <field name="parent_id"/>
41                         </group>
42                     </group>
43                 </form>
44             </field>
45         </record>
46
47         <!-- mail.message search: short view !-->
48         <record model="ir.ui.view" id="view_message_search_short">
49             <field name="name">mail.message.search.short</field>
50             <field name="model">mail.message</field>
51             <field name="type">search</field>
52             <field name="priority">20</field>
53             <field name="arch" type="xml">
54                 <search string="Messages Search">
55                     <field name="model" filter_domain="[('model','ilike',self)]" string="Message"/>
56                     <field name="date"/>
57                     <field name="user_id"/>
58                 </search>
59             </field>
60         </record>
61
62         <!-- mail.message search: wall view !-->
63         <record model="ir.ui.view" id="view_message_search_wall">
64             <field name="name">mail.message.search.wall</field>
65             <field name="model">mail.message</field>
66             <field name="type">search</field>
67             <field name="priority">25</field>
68             <field name="arch" type="xml">
69                 <search string="Messages Search">
70                     <field name="user_id"/>
71                     <field name="body"/>
72                 </search>
73             </field>
74         </record>
75
76         <record model="ir.ui.view" id="view_email_message_form">
77             <field name="name">mail.message.form</field>
78             <field name="model">mail.message</field>
79             <field name="type">form</field>
80             <field name="arch" type="xml">
81                 <form string="Email message" version="7.0">
82                     <label for="subject" class="oe_form_readonly_hidden"/>
83                     <h1><field name="subject"/></h1>
84                     <label for="user_id"/>
85                     <h2><field name="user_id" class="oe_form_inline" string="User"/> on <field name="date" class="oe_form_inline"/></h2>
86                     <group col="4">
87                         <field name="partner_id" readonly="1" attrs="{'invisible':[('partner_id', '=', False)]}"/>
88                         <field name="type"/>
89                     </group>
90                     <notebook colspan="4">
91                         <page string="Details">
92                             <group string="Recipients">
93                                 <field name="email_from"/>
94                                 <field name="email_to"/>
95                                 <field name="email_cc" attrs="{'invisible':[('email_cc', '=', False)]}"/>
96                                 <field name="email_bcc" attrs="{'invisible':[('email_bcc', '=', False)]}"/>
97                                 <field name="reply_to" attrs="{'invisible':[('reply_to', '=', False)]}"/>
98                             </group>
99                             <group col="4" string="Message Details">
100                                 <field name="model"/>
101                                 <button name="open_document" string="Open" type="object" icon="gtk-jump-to" colspan="2"/>
102                                 <field name="res_id"/>
103                                 <field name="message_id" colspan="4" attrs="{'invisible':[('message_id', '=', False)]}"/>
104                                 <field name="references" colspan="4" widget="char" size="512" attrs="{'invisible':[('references', '=', False)]}"/>
105                             </group>
106                             <notebook>
107                                 <page string="Body (Rich)" attrs="{'invisible':[('subtype','=','plain')]}">
108                                     <field name="body_html" widget="text_html"/>
109                                 </page>
110                                 <page string="Body (Plain)">
111                                     <field name="body_text" widget="text"/>
112                                 </page>
113                             </notebook>
114                             <group col="5">
115                                 <field name="state" colspan="2"/>
116                                 <field name="subtype" attrs="{'invisible':[('subtype', '=', False)]}"/>
117                                 <button name="%(action_email_compose_message_wizard)d" string="Reply" type="action" icon="terp-mail-replied"
118                                     context="{'mail.compose.message.mode':'reply', 'message_id':active_id}" states='received,sent,exception,cancel'/>
119                             </group>
120                         </page>
121                         <page string="Attachments">
122                             <field name="attachment_ids"/>
123                         </page>
124                         <page string="Advanced" groups="base.group_no_one">
125                             <group col="2" colspan="4">
126                                 <field name="mail_server_id" attrs="{'invisible':[('mail_server_id', '=', False)]}"/>
127                                 <field name="auto_delete"/>
128                                 <field name="headers" colspan="4" attrs="{'invisible':[('headers', '=', False)]}"/>
129                                 <field name="original" colspan="4" attrs="{'invisible':[('original', '=', False)]}"/>
130                             </group>
131                         </page>
132                     </notebook>
133                 </form>
134             </field>
135         </record>
136
137         <record model="ir.ui.view" id="view_email_message_tree">
138             <field name="name">mail.message.tree</field>
139             <field name="model">mail.message</field>
140             <field name="type">tree</field>
141             <field name="arch" type="xml">
142                 <tree string="Emails" colors="grey:state in ('sent', 'cancel');blue:state=='outgoing';red:state=='exception';black:state=='received'">
143                     <field name="date"/>
144                     <field name="subject"/>
145                     <field name="email_from"/>
146                     <field name="user_id" string="User"/>
147                     <field name="message_id" invisible="1"/>
148                     <field name="partner_id" invisible="1"/>
149                     <field name="model" invisible="1"/>
150                     <field name="res_id" invisible="1"/>
151                     <field name="state"/>
152                     <button name="send" string="Send Now" type="object" icon="gtk-media-play" states='outgoing'/>
153                     <button name="mark_outgoing" string="Retry" type="object" icon="gtk-redo" states='exception,cancel'/>
154                     <button name="cancel" string="Cancel" type="object" icon="terp-gtk-stop" states='outgoing'/>
155                     <button name="open_document" string="Open Related Document" type="object" icon="gtk-jump-to"/>
156                     <button name="open_attachment" string="Open Attachments" type="object" icon="gtk-jump-to"/>
157                 </tree>
158             </field>
159         </record>
160
161         <record model="ir.ui.view" id="view_email_message_search">
162             <field name="name">mail.message.search</field>
163             <field name="model">mail.message</field>
164             <field name="type">search</field>
165             <field name="arch" type="xml">
166                 <search string="Email Search">
167                     <field name="email_from" filter_domain="['|', '|' '|' ('email_from','ilike',self), ('email_to','ilike',self), ('subject','ilike',self), ('model','ilike',self)]" string="Email"/>
168                     <field name="date"/>
169                     <separator orientation="vertical"/>
170                     <filter icon="terp-camera_test" name="received" string="Received" domain="[('state','=','received')]"/>
171                     <filter icon="terp-call-start" name="outgoing" string="Outgoing" domain="[('state','=','outgoing')]"/>
172                     <filter icon="terp-check" name="sent" string="Sent" domain="[('state','=','sent')]"/>
173                     <separator orientation="vertical"/>
174                     <filter icon="terp-gtk-stop" name="exception" string="Failed" domain="[('state','=','exception')]"/>
175                     <separator orientation="vertical"/>
176                     <filter icon="terp-camera_test" name="type_email" string="Email" domain="[('type','=','email')]"/>
177                     <filter icon="terp-camera_test" name="type_comment" string="Comment" domain="[('type','=','comment')]"/>
178                     <filter icon="terp-camera_test" name="type_notification" string="Notification" domain="[('type','=','notification')]"/>
179                     <newline/>
180                     <group expand="0" string="Extended Filters...">
181                         <field name="user_id" string="User"/>
182                         <field name="partner_id" string="Partner Name"/>
183                         <field name="res_id"/>
184                     </group>
185                     <newline/>
186                     <group expand="0" string="Group By...">
187                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
188                         <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
189                         <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
190                         <separator orientation="vertical"/>
191                         <filter string="Thread" icon="terp-mail-" domain="[]" context="{'group_by':'message_id'}"/>
192                         <separator orientation="vertical"/>
193                         <filter string="Month" help="Creation Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
194                     </group>
195                 </search>
196             </field>
197         </record>
198
199         <record id="action_view_all_messages_short" model="ir.actions.act_window">
200             <field name="name">Messages</field>
201             <field name="res_model">mail.message</field>
202             <field name="view_type">form</field>
203             <field name="view_mode">tree,form</field>
204             <field name="context">{'tree_view_ref': 'mail.view_message_tree_short', 'form_view_ref': 'mail.view_message_form_short'}</field>
205             <field name="search_view_id" ref="view_message_search_short"/>
206         </record>
207
208         <record id="action_view_mail_message" model="ir.actions.act_window">
209             <field name="name">Messages</field>
210             <field name="res_model">mail.message</field>
211             <field name="view_type">form</field>
212             <field name="view_mode">tree,form</field>
213             <field name="context">{'search_default_received': 1, 'search_default_type_email': 1}</field>
214             <field name="search_view_id" ref="view_email_message_search"/>
215         </record>
216
217         <act_window domain="[('partner_id', '=', active_id), ('email_from', '!=', False)]"
218             context="{'default_partner_id': active_id}"
219             id="act_res_partner_emails" name="Emails"
220             res_model="mail.message"
221             src_model="res.partner"
222             view_id="view_email_message_tree"/>
223
224         <!-- Add menu entry in Settings/Email -->
225         <menuitem name="Messages" id="menu_email_message" parent="base.menu_email" action="action_view_mail_message" />
226         
227         <!-- Add menu entry in Settings/Email -->
228         <menuitem name="Feeds" id="menu_email_message_all" parent="base.menu_email" action="action_view_all_messages_short" groups="base.group_no_one"/>
229
230         <record id="action_mail_all_feeds" model="ir.actions.client">
231             <field name="name">News Feed</field>
232             <field name="tag">mail.all_feeds</field>
233             <field name="params" eval="{'search_view_id': ref('view_message_search_wall')}"/>
234         </record>
235
236         <record id="action_mail_my_feeds" model="ir.actions.client">
237             <field name="name">My Feeds</field>
238             <field name="tag">mail.all_feeds</field>
239             <field name="params" eval="{'search_view_id': ref('view_message_search_wall'), 'my_feeds': True}"/>
240         </record>
241     </data>
242 </openerp>