[IMP] Custom filters: make options 'share' and 'default' exclusive
[odoo/odoo.git] / addons / web / static / src / xml / base.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vim:fdl=1:
3 -->
4 <templates id="template" xml:space="preserve">
5 <t t-name="EmptyComponent">
6     <div></div>
7 </t>
8 <t t-name="Loading">
9     <div class="oe_loading">
10         Loading...
11     </div>
12 </t>
13 <t t-name="Notification">
14     <div class="oe_notification" t-translation="off">
15         <div id="oe_notification_default">
16             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
17             <h1>#{title}</h1>
18             <p>#{text}</p>
19         </div>
20         <div id="oe_notification_alert" class="ui-state-error">
21             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
22             <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert"></span>
23             <h1>#{title}</h1>
24             <p>#{text}</p>
25         </div>
26     </div>
27 </t>
28 <t t-name="Tipsy.alert">
29     <a class="oe_tooltip_close oe_e">[</a>
30     <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert ui-state-error"></span>
31     <div class="oe_tooltip_message">
32         <t t-esc="message"/>
33     </div>
34 </t>
35
36 <t t-name="CrashManager.warning">
37     <table cellspacing="0" cellpadding="0" border="0" class="oe_dialog_warning">
38     <tr>
39         <td class="oe_dialog_icon"><img t-att-src='_s + "/web/static/src/img/warning.png"'/></td>
40         <td>
41             <p>
42                 <t t-js="d">
43                     var message = d.message ? d.message : d.error.data.fault_code;
44                     d.html_error = context.engine.tools.html_escape(message)
45                         .replace(/\n/g, '<br/>');
46                 </t>
47                 <t t-raw="html_error"/>
48             </p>
49         </td>
50     </tr>
51     </table>
52 </t>
53 <t t-name="CrashManager.error">
54     <div class="oe_error_detail">
55         <pre><t t-esc="error.message"/></pre>
56         <hr/>
57         <pre><t t-esc="error.data.debug"/></pre>
58     </div>
59 </t>
60
61 <t t-name="Login">
62     <div class="oe_login">
63         <div class="oe_login_bottom"> </div>
64         <div class="oe_login_error_message"/>
65         <div class="oe_login_pane">
66             <div class="oe_login_logo"><img src='/web/static/src/img/logo2.png'/></div>
67             <form action="" method="post">
68                 <div class="oe_login_dbpane" >
69                     Database:
70                     <input name="db" t-att-value="widget.selected_db || ''"/>
71                 </div>
72                 <ul>
73                     <li>Username</li>
74                     <li><input name="login" type="text" t-att-value="widget.selected_login || ''" autofocus="autofocus"/></li>
75                     <li>Password</li>
76                     <li><input name="password" type="password" t-att-value="widget.selected_password || ''"/></li>
77                     <li><button name="submit">Log in</button></li>
78                 </ul>
79             </form>
80             <div class="oe_login_footer">
81                 <a href="#" class="oe_login_manage_db">Manage Databases</a> |
82                 <a href="http://www.openerp.com" target="_blank">Powered by <span>OpenERP</span></a>
83             </div>
84         </div>
85     </div>
86 </t>
87 <t t-name="Login.dblist">
88     <select name="db">
89         <t t-foreach="db_list" t-as="db">
90             <t t-if="selected_db === db">
91                 <option t-att-value="db" selected="true">
92                     <t t-esc="db"/></option>
93             </t>
94             <t t-if="selected_db !== db">
95                 <option t-att-value="db"><t t-esc="db"/></option>
96             </t>
97         </t>
98     </select>
99 </t>
100
101 <t t-name="DatabaseManager">
102     <div class="oe_view_manager_view_form">
103         <div class="oe_form">
104             <form id="db_create" name="create_db_form" style="display: block;">
105                 <div class="oe_view_manager oe_view_manager_current">
106                     <div class="oe_view_manager_header" style="padding: 8px;">
107                         <div class="oe_header_row">
108                             <h2 class="oe_view_title">
109                                 <span class="oe_view_title_text oe_breadcrumb_title">Create Database</span>
110                             </h2>
111                             <button type="submit" class="oe_button oe_highlight db_create">Create</button>
112                         </div>
113                     </div>
114                 </div>
115                 <table align="center" class="db_option_table">
116                     <tr>
117                         <td><label for="super_admin_pwd">Master password:</label></td>
118                         <td><input type="password" name="super_admin_pwd" class="required" value="admin" /></td>
119                     </tr>
120                     <tr>
121                         <td><label for="db_name">New database name:</label></td>
122                         <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
123                     </tr>
124                     <tr>
125                         <td><label for="demo_data">Load Demonstration data:</label></td>
126                         <td class="oe_form_group_cell">
127                             <span class="oe_form_field oe_form_field_boolean">
128                                 <input type="checkbox" name="demo_data" />
129                             </span>
130                         </td>
131                     </tr>
132                     <tr>
133                         <td><label for="db_lang">Default language:</label></td>
134                         <td class="oe_form_field oe_form_field_selection ">
135                             <select name="db_lang" t-if="widget.lang_list">
136                                 <t t-foreach="widget.lang_list" t-as="lang">
137                                     <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined">
138                                         <t t-esc="lang[1]" />
139                                     </option>
140                                 </t>
141                             </select>
142                         </td>
143                     </tr>
144                     <tr>
145                         <td><label for="create_admin_pwd">Admin password:</label></td>
146                         <td><input type="password" name="create_admin_pwd" class="required" /></td>
147                     </tr>
148                     <tr>
149                         <td><label for="create_confirm_pwd">Confirm password:</label></td>
150                         <td><input type="password" name="create_confirm_pwd" class="required" equalTo="input[name=create_admin_pwd]"/></td>
151                     </tr>
152                 </table>
153             </form>
154             <form id="db_duplicate" name="duplicate_db_form" style="display: none;">
155                 <div class="oe_view_manager oe_view_manager_current">
156                     <div class="oe_view_manager_header" style="padding: 8px;">
157                         <div class="oe_header_row">
158                             <h2 class="oe_view_title">
159                                 <span class="oe_view_title_text oe_breadcrumb_title">Duplicate Database</span>
160                             </h2>
161                             <button type="submit" class="oe_button oe_highlight db_duplicate">Duplicate</button>
162                         </div>
163                     </div>
164                 </div>
165                 <table align="center" class="db_option_table">
166                     <tr>
167                         <td><label for="super_admin_pwd">Master password:</label></td>
168                         <td><input type="password" name="super_admin_pwd" class="required" value="admin" /></td>
169                     </tr>
170                     <tr>
171                         <td><label for="db_original_name">Original database name:</label></td>
172                         <td><input type="text" name="db_original_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
173                     </tr>
174                     <tr>
175                         <td><label for="db_name">New database name:</label></td>
176                         <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" /></td>
177                     </tr>
178                 </table>
179             </form>
180             <form id="db_drop" name="drop_db_form" style="display: none; ">
181                 <div class="oe_view_manager oe_view_manager_current">
182                     <div class="oe_view_manager_header" style="padding: 8px;">
183                         <div class="oe_header_row">
184                             <h2 class="oe_view_title">
185                                 <span class="oe_view_title_text oe_breadcrumb_title">Drop Database</span>
186                             </h2>
187                             <button type="submit" class="oe_button oe_highlight db_drop">Drop</button>
188                         </div>
189                     </div>
190                 </div>
191                 <table align="center" class="db_option_table">
192                     <tr>
193                         <td><label for="drop_db">Database:</label></td>
194                         <td class="oe_form_field oe_form_field_selection">
195                             <select t-if="widget.db_list" name="drop_db" autofocus="autofocus">
196                                 <t t-foreach="widget.db_list" t-as="db">
197                                     <option t-att-value="db">
198                                         <t t-esc="db" />
199                                     </option>
200                                 </t>
201                             </select>
202                             <input t-if="!widget.db_list" name="drop_db" class="required" type="text" autofocus="autofocus"/>
203                         </td>
204                     </tr>
205                     <tr>
206                         <td><label for="drop_password">Master Password:</label></td>
207                         <td><input type="password" name="drop_pwd" class="required" /></td>
208                     </tr>
209                 </table>
210             </form>
211             <form id="db_backup" name="backup_db_form" target="backup-target" action="/web/database/backup" style="display: none;">
212                 <div class="oe_view_manager oe_view_manager_current">
213                     <div class="oe_view_manager_header" style="padding: 8px;">
214                         <div class="oe_header_row">
215                             <h2 class="oe_view_title">
216                                 <span class="oe_view_title_text oe_breadcrumb_title">Backup Database</span>
217                             </h2>
218                             <button type="submit" class="oe_button oe_highlight db_backup">Backup</button>
219                         </div>
220                     </div>
221                 </div>
222                 <input type="hidden" name="token" />
223                 <table align="center" class="db_option_table">
224                     <tr>
225                         <td><label for="backup_db">Database:</label></td>
226                         <td class="oe_form_field oe_form_field_selection ">
227                             <select t-if="widget.db_list" name="backup_db" autofocus="autofocus">
228                                 <t t-foreach="widget.db_list" t-as="db">
229                                     <option t-att-value="db">
230                                         <t t-esc="db" />
231                                     </option>
232                                 </t>
233                             </select>
234                             <input t-if="!widget.db_list" name="backup_db" class="required" type="text" autofocus="autofocus"/>
235                         </td>
236                     </tr>
237                     <tr>
238                         <td><label for="backup_pwd">Master Password:</label></td>
239                         <td><input type="password" name="backup_pwd" class="required" /></td>
240                     </tr>
241                 </table>
242             </form>
243             <form id="db_restore" name="restore_db_form" style="display: none; ">
244                 <div class="oe_view_manager oe_view_manager_current">
245                     <div class="oe_view_manager_header" style="padding: 8px;">
246                         <div class="oe_header_row">
247                             <h2 class="oe_view_title">
248                                 <span class="oe_view_title_text oe_breadcrumb_title">Restore Database</span>
249                             </h2>
250                             <button type="submit" class="oe_button oe_highlight db_restore">Restore</button>
251                         </div>
252                     </div>
253                 </div>
254                 <table align="center" class="db_option_table">
255                     <tr>
256                         <td><label for="restore_db">File:</label></td>
257                         <td><input type="file" name="db_file" class="required" autofocus="autofocus"/></td>
258                     </tr>
259                     <tr>
260                         <td><label for="restore_pwd">Master Password:</label></td>
261                         <td><input type="password" name="restore_pwd" class="required"/></td>
262                     </tr>
263                     <tr>
264                         <td><label for="new_db">New database name:</label></td>
265                         <td><input type="text" name="new_db" class="required"/></td>
266                     </tr>
267                 </table>
268             </form>
269             <form id="db_change_password" name="change_pwd_form" style="display: none;">
270                 <div class="oe_view_manager oe_view_manager_current">
271                     <div class="oe_view_manager_header" style="padding: 8px;">
272                         <div class="oe_header_row">
273                             <h2 class="oe_view_title">
274                                 <span class="oe_view_title_text oe_breadcrumb_title">Change Master Password</span>
275                             </h2>
276                             <button type="submit" class="oe_button oe_highlight db-change-password">Change Password</button>
277                         </div>
278                     </div>
279                 </div>
280                 <table align="center" class="db_option_table">
281                     <tr>
282                         <td><label for="old_pwd">Master password:</label></td>
283                         <td><input type="password" name="old_pwd" class="required" minlength="1" autofocus="autofocus"/></td>
284                     </tr>
285                     <tr>
286                         <td><label for="new_pwd">New master password:</label></td>
287                         <td><input type="password" name="new_pwd" class="required" minlength="1"/></td>
288                     </tr>
289                     <tr>
290                         <td><label for="confirm_pwd">Confirm new master password:</label></td>
291                         <td><input type="password" name="confirm_pwd" class="required" equalTo="input[name=new_pwd]" minlength="1"/> </td>
292                     </tr>
293                 </table>
294             </form>
295         </div>
296     </div>
297 </t>
298 <t t-name="DatabaseManager.user_menu">
299     <span class="oe_right">
300          <a id="back-to-login" href="#"><span class="oe_topbar_item oe_topbar_name">Back to Login</span></a>
301     </span>
302 </t>
303 <t t-name="DatabaseManager.menu">
304     <div class="oe_secondary_menu_section">Database Management</div>
305     <ul class="oe_secondary_submenu">
306         <li><a href="#db_create">Create</a></li>
307         <li><a href="#db_duplicate">Duplicate</a></li>
308         <li><a href="#db_drop">Drop</a></li>
309         <li><a href="#db_backup">Backup</a></li>
310         <li><a href="#db_restore">Restore</a></li>
311         <li><a href="#db_change_password">Password</a></li>
312     </ul>
313 </t>
314
315 <t t-name="ChangePassword">
316     <form name="change_password_form" method="POST">
317       <div class="oe_form">
318         <table align="center">
319             <tr>
320                 <td class="oe_form_group_cell oe_form_group_cell_label"><label for="old_pwd" class="oe_form_label">Old Password:</label></td>
321                 <td class="oe_form_group_cell"><input type="password" name="old_pwd"
322                            minlength="1" autofocus="autofocus"/></td>
323             </tr>
324             <tr>
325             <td class="oe_form_group_cell oe_form_group_cell_label"><label for="new_password" class="oe_form_label">New Password:</label></td>
326             <td class="oe_form_group_cell"><input type="password" name="new_password"
327                        minlength="1"/></td>
328             </tr>
329             <tr>
330                 <td class="oe_form_group_cell oe_form_group_cell_label"><label for="confirm_pwd" class="oe_form_label">Confirm New Password:</label></td>
331                 <td class="oe_form_group_cell"><input type="password" name="confirm_pwd"
332                              minlength="1"/></td>
333             </tr>
334             <tr>
335                 <td colspan="2" align="right">
336                     <button class='oe_button oe_form_button'>Change Password</button>
337                     <span class="oe_fade oe_form_button"> or </span>
338                     <button type="button" class="oe_button oe_form_button_cancel oe_form_button oe_link" href="javascript:void(0)"><span>Cancel</span></button>
339                 </td>
340             </tr>
341         </table>
342       </div>
343     </form>
344 </t>
345
346 <t t-name="Menu">
347     <ul class="oe_menu" t-if="widget.data">
348         <li t-foreach="widget.data.data.children" t-as="menu">
349             <t t-call="Menu.link"/>
350         </li>
351         <li class="oe_menu_more_container" style="display: none;">
352             <span class="oe_topbar_item oe_menu_more_link oe_dropdown_toggle oe_dropdown_arrow">
353                 More
354                 <ul class="oe_menu_more oe_dropdown_menu"/>
355             </span>
356         </li>
357     </ul>
358 </t>
359 <t t-name="Menu.secondary">
360     <div t-foreach="widget.data.data.children" t-as="menu" style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu.id">
361         <t t-foreach="menu.children" t-as="menu">
362             <div class="oe_secondary_menu_section">
363                 <t t-esc="menu.name"/>
364                 <!--
365                     Shall the section be still clickable ?
366                     <t t-call="Menu.link"/>
367                 -->
368             </div>
369             <t t-call="Menu.secondary.submenu"/>
370         </t>
371     </div>
372 </t>
373 <t t-name="Menu.secondary.submenu">
374     <ul t-if="menu.children.length" class="oe_secondary_submenu">
375         <li t-foreach="menu.children" t-as="menu">
376             <t t-call="Menu.link"/>
377             <!--<span class="oe_menu_label">8</span>-->
378             <t t-call="Menu.secondary.submenu"/>
379         </li>
380     </ul>
381 </t>
382 <t t-name="Menu.link">
383     <a t-attf-href="#menu_id=#{menu.id}&amp;action=#{menu.action ? menu.action.split(',')[1] : ''}"
384         t-att-class="menu.children.length ? 'oe_menu_toggler' : 'oe_menu_leaf'"
385         t-att-data-menu="menu.id"
386         t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''"
387         t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''">
388         <span class="oe_menu_text">
389             <t t-esc="menu.name"/>
390         </span>
391     </a>
392 </t>
393
394 <t t-name="Menu.needaction_counter">
395     <div class="oe_tag oe_tag_dark oe_menu_counter">
396         <t t-if="widget.needaction_counter &gt; 99"> 99+ </t>
397         <t t-if="widget.needaction_counter &lt;= 99"> <t t-esc="widget.needaction_counter"/> </t>
398     </div>
399 </t>
400
401 <t t-name="UserMenu">
402     <span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow">
403         <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>
404         <span class="oe_topbar_name"/>
405         <ul class="oe_dropdown_menu">
406             <li><a href="#" data-menu="settings">Preferences</a></li>
407             <li><a href="#" data-menu="about">About OpenERP</a></li>
408             <li><a href="#" data-menu="help">Help</a></li>
409             <li><a href="#" data-menu="logout">Log out</a></li>
410         </ul>
411     </span>
412 </t>
413 <t t-name="UserMenu.about">
414
415     <div class="oe_about">
416       <a class="oe_activate_debug_mode oe_right" href="?debug" style="background-color: white; padding:2px 6px; border-radius: 10px;">Activate the developer mode</a>
417       <img class="oe_logo" src="/web/static/src/img/logo2.png"/>
418       <h3>Version <t t-esc="version_info.server_version"/></h3>
419
420       <div class="oe_bottom">
421         <p>Copyright Â© 2004-TODAY OpenERP SA. All Rights Reserved.<br />
422             OpenERP is a trademark of the <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP SA Company</a>.</p>
423         <p>Licenced under the terms of <a target="_blank" href="http://www.gnu.org/licenses/agpl.html" style="text-decoration: underline;">GNU Affero General Public License</a></p>
424         <p>For more information visit <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP.com</a></p>
425       </div>
426     </div>
427
428 </t>
429
430 <t t-name="WebClient">
431     <div class="openerp openerp_webclient_container">
432     <table class="oe_webclient">
433         <tr>
434             <td colspan="2" class="oe_topbar">
435                 <div class="oe_menu_placeholder"/>
436                 <div class="oe_user_menu_placeholder"/>
437                 <div class="oe_systray"/>
438             </td>
439         </tr>
440         <tr>
441             <td class="oe_leftbar" valign="top">
442                 <t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/>
443                 <a class="oe_logo" t-attf-href="/?ts=#{Date.now()}#{debug}">
444                     <span class="oe_logo_edit">Edit Company data</span>
445                     <img t-att-src='widget.session.url("/web/binary/company_logo")'/>
446                 </a>
447                 <div class="oe_secondary_menus_container"/>
448                 <div class="oe_footer">
449                     Powered by <a href="http://www.openerp.com" target="_blank"><span>OpenERP</span></a>
450                 </div>
451             </td>
452             <td class="oe_application">
453             </td>
454         </tr>
455     </table>
456     </div>
457 </t>
458 <t t-name="WebClient.timezone_notification">
459     <div class="oe_webclient_timezone_notification">
460         <p>Your user's preference timezone does not match your browser timezone:</p>
461
462         <dl>
463             <dt>User's timezone</dt>
464             <dd><t t-esc="user_timezone"/> (<t t-esc="user_offset"/>)</dd>
465             <dt>Browser's timezone</dt>
466             <dd><t t-esc="browser_offset"/></dd>
467         </dl>
468
469         <p><a href="#">Click here to change your user's timezone.</a></p>
470     </div>
471 </t>
472 <t t-name="WebClient.timezone_systray">
473     <div class="oe_topbar_item oe_timezone_systray" title="Timezone mismatch">
474         <span class="ui-icon ui-state-error ui-icon-alert"/>
475     </div>
476 </t>
477
478 <t t-name="EmbedClient">
479     <div class="openerp">
480         <div class="oe_application"></div>
481     </div>
482 </t>
483
484 <t t-name="ViewManager">
485     <div class="oe_view_manager">
486         <table class="oe_view_manager_header">
487             <col width="20%"/>
488             <col width="35%"/>
489             <col width="15%"/>
490             <col width="30%"/>
491             <tr class="oe_header_row oe_header_row_top">
492                 <td colspan="2">
493                         <h2 class="oe_view_title" t-if="widget.flags.display_title !== false">
494                             <span class="oe_view_title_text oe_breadcrumb_title"/>
495                         </h2>
496                 </td>
497                 <td colspan="2">
498                         <div class="oe_view_manager_view_search" t-opentag="true"/>
499                 </td>
500             </tr>
501             <tr class="oe_header_row">
502                 <td>
503                         <div class="oe_view_manager_buttons"/>
504                 </td>
505                 <td colspan="2">
506                         <div class="oe_view_manager_sidebar"/>
507                 </td>
508                 <td>
509                     <ul class="oe_view_manager_switch oe_button_group oe_right">
510                         <t t-if="widget.views_src.length > 1" t-foreach="widget.views_src" t-as="view">
511                           <li class="oe_e">
512                             <a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type"
513                                t-att-title="view.button_label"/>
514                           </li>
515                         </t>
516                     </ul>
517                     <div class="oe_view_manager_pager oe_right"/>
518                 </td>
519             </tr>
520         </table>
521
522         <div class="oe_view_manager_body">
523             <t t-foreach="widget.views_src" t-as="view">
524                 <div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
525             </t>
526         </div>
527     </div>
528 </t>
529
530 <t t-name="ViewManagerAction" t-extend="ViewManager">
531     <t t-jquery="h2.oe_view_title" t-operation="before">
532         <select t-if="widget.session.debug" class="oe_debug_view"/>
533     </t>
534 </t>
535 <t t-name="ViewManagerDebug">
536     <option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>
537     <t t-if="view_manager.active_view === 'form'">
538         <option value="perm_read">View Log (perm_read)</option>
539         <option value="toggle_layout_outline">Toggle Form Layout Outline</option>
540         <option value="set_defaults">Set Defaults</option>
541     </t>
542     <option value="tests">JS Tests</option>
543     <option value="fields">View Fields</option>
544     <option value="fvg">Fields View Get</option>
545     <option value="manage_filters">Manage Filters</option>
546     <t t-if="view_manager.session.uid === 1">
547         <option value="translate">Technical translation</option>
548         <option value="manage_views">Manage Views</option>
549         <option value="edit" data-model="ir.ui.view" t-att-data-id="view.fields_view.view_id">Edit <t t-esc="_.str.capitalize(view.fields_view.type)"/>View</option>
550         <option t-if="view_manager.searchview" value="edit" data-model="ir.ui.view" t-att-data-id="view_manager.searchview.view_id">Edit SearchView</option>
551         <option t-if="view_manager.action" value="edit" t-att-data-model="view_manager.action.type" t-att-data-id="view_manager.action.id">Edit Action</option>
552         <option value="edit_workflow">Edit Workflow</option>
553         <option value="print_workflow">Print Workflow</option>
554     </t>
555 </t>
556 <t t-name="ViewManagerDebugViewLog">
557     <div class="oe_debug_view_log">
558         <label>ID:</label>
559         <span><t t-esc="perm.id"/></span>
560
561         <label>XML ID:</label>
562         <span><t t-esc="perm.xmlid"/></span>
563
564         <label>Creation User:</label>
565         <span><t t-esc="format(perm.create_uid, { 'type' : 'many2one' }, '/')"/></span>
566
567         <label>Creation Date:</label>
568         <span><t t-esc="format(perm.create_date, { 'type' : 'datetime' }, '/')"/></span>
569
570         <label>Latest Modification by:</label>
571         <span><t t-esc="format(perm.write_uid, { 'type' : 'many2one' }, '/')"/></span>
572
573         <label>Latest Modification Date:</label>
574         <span><t t-esc="format(perm.write_date, { 'type' : 'datetime' }, '/')"/></span>
575     </div>
576 </t>
577 <t t-name="ViewPager">
578     <div class="oe_pager_value">
579         <t t-raw="__content__"/>
580     </div>
581     <ul class="oe_pager_group">
582         <!--
583         <button class="oe_button oe_button_pager" type="button" data-pager-action="first">
584             <img t-att-src='_s + "/web/static/src/img/pager_first.png"'/>
585         </button>
586         -->
587         <li>
588             <a class="oe_i" type="button" data-pager-action="previous">(</a>
589         </li>
590         <li>
591             <a class="oe_i" type="button" data-pager-action="next">)</a>
592         </li>
593         <!--
594         <button class="oe_button oe_button_pager" type="button" data-pager-action="last">
595             <img t-att-src='_s + "/web/static/src/img/pager_last.png"'/>
596         </button>
597         -->
598     </ul>
599 </t>
600
601 <t t-name="Sidebar">
602     <div class="oe_sidebar">
603         <t t-foreach="widget.sections" t-as="section">
604             <div class="oe_form_dropdown_section">
605                 <button class="oe_dropdown_toggle oe_dropdown_arrow">
606                     <t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/>
607                     <t t-esc="section.label"/>
608                 </button>
609                 <ul class="oe_dropdown_menu">
610                     <li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname">
611                         <t t-if="section.name == 'files'">
612                             <t t-set="item.title">
613                                 <b>Attachment : </b><br/>
614                                 <t t-raw="item.name"/>
615                             </t>
616                             <t t-if="item.create_uid and item.create_uid[0]" t-set="item.title">
617                                 <t t-raw="item.title"/><br/>
618                                 <b>Created by : </b><br/>
619                                 <t t-raw="item.create_uid[1] + ' ' + item.create_date"/>
620                             </t>
621                             <t t-if="item.create_uid and item.write_uid and item.create_uid[0] != item.write_uid[0]" t-set="item.title">
622                                 <t t-raw="item.title"/><br/>
623                                 <b>Modified by : </b><br/>
624                                 <t t-raw="item.write_uid[1] + ' ' + item.write_date"/>
625                             </t>
626                         </t>
627                         <a class="oe_sidebar_action_a" t-att-title="item.title or ''" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank">
628                             <t t-raw="item.label"/>
629                         </a>
630                          <a t-if="section.name == 'files' and !item.callback" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a>
631                     </li>
632                     <li t-if="section.name == 'files'" class="oe_sidebar_add_attachment">
633                         <t t-call="HiddenInputFile">
634                             <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
635                             <t t-set="fileupload_action">/web/binary/upload_attachment</t>
636                             <input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/>
637                             <input type="hidden" name="id" t-att-value="widget.model_id"/>
638                             <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
639                             <span>Add...</span>
640                         </t>
641                     </li>
642                 </ul>
643             </div>
644         </t>
645     </div>
646 </t>
647
648 <t t-name="TreeView">
649     <select t-if="toolbar" style="width: 30%">
650     </select>
651     <table class="oe_tree_table oe-treeview-table">
652         <thead>
653             <tr>
654                 <th t-foreach="fields_view" t-as="field"
655                     t-if="!field.attrs.modifiers.tree_invisible"
656                     class="treeview-header">
657                     <t t-esc="field_value.attrs.string || fields[field.attrs.name].string" />
658                 </th>
659             </tr>
660         </thead>
661         <tbody>
662         </tbody>
663     </table>
664 </t>
665 <tr t-name="TreeView.rows"
666         t-foreach="records" t-as="record"
667         t-att-id="'treerow_' + record.id"
668         t-att-data-id="record.id" t-att-data-level="level + 1">
669     <t t-set="children" t-value="record[children_field]"/>
670     <t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
671     <t t-set="rank" t-value="'oe-treeview-first'"/>
672     <t t-set="style" t-value="'background-position: ' + 19*(level) + 'px; padding-left: ' + (4 + 19*(level)) + 'px;'"/>
673
674     <td t-foreach="fields_view" t-as="field"
675         t-if="!field.attrs.modifiers.tree_invisible"
676         t-att-data-id="record.id"
677         t-att-style="color_for(record) + style "
678         t-attf-class="#{class} #{rank} #{(fields[field.attrs.name].type === 'float') or (fields[field.attrs.name].type === 'integer') ? 'oe_number' : ''}">
679
680         <span t-if="!field.attrs.modifiers.invisible" >
681             <t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
682         </span>
683
684         <t t-set="class" t-value="'treeview-td'"/>
685         <t t-set="rank" t-value="''"/>
686         <t t-set="style" t-value="''"/>
687     </td>
688 </tr>
689
690 <table t-name="ListView" class="oe_list_content">
691     <t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0)"/>
692     <thead>
693         <tr t-if="(!!options.action_buttons and !options.$buttons) or (!!options.pager and !options.$pager)">
694             <th t-att-colspan="columns_count">
695                 <div class="oe_list_buttons"/>
696                 <div class="oe_list_sidebar"/>
697                 <div class="oe_list_pager"/>
698             </th>
699         </tr>
700         <tr t-if="options.header" class="oe_list_header_columns">
701             <t t-foreach="columns" t-as="column">
702                 <th t-if="column.meta">
703                     <t t-esc="column.string"/>
704                 </th>
705             </t>
706             <th t-if="options.selectable" width="1"  >
707                 <input type="checkbox" class="oe_list_record_selector"/>
708             </th>
709             <t t-foreach="columns" t-as="column">
710                 <th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
711                     t-attf-class="oe_list_header_#{column.widget or column.type} #{((options.sortable and column.tag !== 'button') ? 'oe_sortable' : null)}"><div>
712                     <t t-if="column.tag !== 'button'"><t t-esc="column.string"/></t>
713                 </div></th>
714             </t>
715             <th t-if="options.deletable" class="oe_list_record_delete" width="13px"/>
716         </tr>
717     </thead>
718     <tfoot>
719         <tr>
720             <td t-if="options.selectable"/>
721             <td t-foreach="aggregate_columns" t-as="column" class="oe_list_footer oe_number"
722                 t-att-data-field="column.id" t-att-title="column.label">
723             </td>
724             <td t-if="options.deletable"/>
725         </tr>
726     </tfoot>
727 </table>
728 <t t-name="ListView.buttons">
729     <div class="oe_list_buttons">
730     <t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable and widget.is_action_enabled('create')">
731         <button type="button" class="oe_button oe_list_add oe_highlight">
732             <t t-esc="widget.options.addable"/>
733         </button>
734     </t>
735     </div>
736 </t>
737 <t t-name="ListView.pager">
738     <div class="oe_list_pager" t-att-colspan="widget.columns_count">
739         <t t-if="!widget.no_leaf and widget.options.pager !== false" t-call="ViewPager">
740             <span class="oe_list_pager_state">
741             </span>
742         </t>
743     </div>
744 </t>
745 <t t-name="ListView.rows" t-foreach="records.length" t-as="index">
746     <t t-call="ListView.row">
747         <t t-set="record" t-value="records.at(index)"/>
748     </t>
749 </t>
750 <tr t-name="ListView.row"
751         t-att-data-id="record.get('id')"
752         t-att-style="view.style_for(record)">
753     <t t-set="asData" t-value="record.toForm().data"/>
754     <t t-foreach="columns" t-as="column">
755         <td t-if="column.meta"> </td>
756     </t>
757     <th t-if="options.selectable" class="oe_list_record_selector" width="1">
758         <t t-set="checked" t-value="options.select_view_id == record.get('id') ? 'checked' : null"/>
759         <input t-if="options.radio" type="radio" name="radiogroup" t-att-checked="checked"/>
760         <input t-if="!options.radio" type="checkbox" name="radiogroup" t-att-checked="checked"/>
761     </th>
762     <t t-foreach="columns" t-as="column">
763         <t t-set="number" t-value="column.type === 'integer' or column.type == 'float'"/>
764         <t t-set="modifiers" t-value="column.modifiers_for(asData)"/>
765         <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
766             t-attf-class="oe_list_field_cell oe_list_field_#{column.widget or column.type} #{number ? 'oe_number' : ''} #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''} #{modifiers.required ? 'oe_required' : ''}"
767             t-att-data-field="column.id"
768             ><t t-raw="render_cell(record, column)"/></td>
769     </t>
770     <td t-if="options.deletable" class='oe_list_record_delete' width="13px">
771         <button type="button" name="delete" class="oe_i">d</button>
772     </td>
773 </tr>
774 <t t-extend="ListView.buttons">
775     <t t-jquery="button.oe_list_add" t-operation="after">
776         <button class="oe_button oe_list_save oe_highlight"
777                 type="button">Save</button>
778         <span class="oe_alternative">
779             <span class="oe_fade">or</span>
780             <a href="#" class="oe_bold oe_list_discard">Discard</a>
781         </span>
782     </t>
783 </t>
784 <button t-name="ListView.row.button" type="button"
785         t-att-title="widget.string" t-att-disabled="disabled || undefined"
786         t-att-class="disabled ? 'oe_list_button_disabled' : undefined"
787     ><img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png"
788          t-att-alt="widget.string"/></button>
789 <t t-extend="ListView.row">
790     <!-- adds back padding to row being rendered after edition, if necessary
791          (if not deletable add back padding), otherwise the row being added is
792          missing columns
793      -->
794     <t t-jquery="&gt; :last" t-operation="after">
795         <td t-if="edited and !options.deletable" class="oe-listview-padding"/>
796     </t>
797 </t>
798
799 <t t-name="FormView">
800     <div class="oe_formview">
801         <div class="oe_form_buttons"/>
802         <div class="oe_form_sidebar"/>
803         <div class="oe_form_pager"/>
804         <div class="oe_form_container"/>
805     </div>
806 </t>
807 <div t-name="FormView.buttons" class="oe_form_buttons">
808     <t t-if="widget.options.action_buttons !== false">
809         <span class="oe_form_buttons_view">
810             <!-- required for the bounce effect on button -->
811             <div t-if="widget.is_action_enabled('edit')" style="display: inline-block;">
812                 <button type="button" class="oe_button oe_form_button_edit" accesskey="E">Edit</button>
813             </div>
814             <button t-if="widget.is_action_enabled('create')"
815                 type="button" class="oe_button oe_form_button_create" accesskey="C">Create</button>
816         </span>
817         <span class="oe_form_buttons_edit">
818             <button type="button" class="oe_button oe_form_button_save oe_highlight" accesskey="S">Save</button>
819             <span class="oe_fade">or</span>
820             <a href="#" class="oe_bold oe_form_button_cancel" accesskey="D">Discard</a>
821         </span>
822     </t>
823 </div>
824 <t t-name="FormView.pager">
825     <div class="oe_form_pager">
826         <t t-if="widget.options.pager !== false" t-call="ViewPager">
827             <span class="oe_form_pager_state"></span>
828         </t>
829     </div>
830 </t>
831 <form t-name="FormView.set_default">
832     <t t-set="args" t-value="widget.dialog_options.args"/>
833     <table style="width: 100%">
834         <tr>
835             <td>
836                 <label for="formview_default_fields"
837                        class="oe_label oe_align_right">
838                     Default:
839                 </label>
840             </td>
841             <td class="oe_form_required">
842                 <select id="formview_default_fields">
843                     <option value=""/>
844                     <option t-foreach="args.fields" t-as="field"
845                             t-att-value="field.name">
846                         <t t-esc="field.string"/> = <t t-esc="field.displayed"/>
847                     </option>
848                 </select>
849             </td>
850         </tr>
851         <tr t-if="args.conditions.length">
852             <td>
853                 <label for="formview_default_conditions"
854                        class="oe_label oe_align_right">
855                     Condition:
856                 </label>
857             </td>
858             <td>
859                 <select id="formview_default_conditions">
860                     <option value=""/>
861                     <option t-foreach="args.conditions" t-as="cond"
862                             t-att-value="cond.name + '=' + cond.value">
863                         <t t-esc="cond.string"/>=<t t-esc="cond.displayed"/>
864                     </option>
865                 </select>
866             </td>
867         </tr>
868         <tr>
869             <td colspan="2">
870                 <input type="radio" id="formview_default_self"
871                        value="self" name="scope" checked="checked"/>
872                 <label for="formview_default_self" class="oe_label"
873                        style="display: inline;">
874                     Only you
875                 </label>
876                 <br/>
877                 <input type="radio" id="formview_default_all"
878                        value="all" name="scope"/>
879                 <label for="formview_default_all" class="oe_label"
880                        style="display: inline;">
881                     All users
882                 </label>
883             </td>
884         </tr>
885     </table>
886 </form>
887
888 <t t-name="FormRenderingForm">
889     <div t-attf-class="#{classnames}">
890     </div>
891 </t>
892 <t t-name="FormRenderingSheet">
893     <div class="oe_form_sheetbg">
894         <div t-attf-class="oe_form_sheet oe_form_sheet_width #{classnames}">
895         </div>
896     </div>
897 </t>
898 <t t-name="FormRenderingGroup">
899     <t t-if="string" t-call="FormRenderingSeparator"/>
900     <table border="0" cellpadding="0" cellspacing="0" t-attf-class="oe_form_group #{classnames}"/>
901 </t>
902 <t t-name="FormRenderingNotebook">
903     <div class="oe_clear">
904         <ul t-attf-class="oe_notebook #{classnames}">
905             <li t-foreach="pages" t-as="page" t-att-modifiers="page.modifiers">
906                 <a t-attf-href="##{page.id}" t-att-accesskey="page.accesskey">
907                     <t t-esc="page.string"/>
908                 </a>
909             </li>
910         </ul>
911     </div>
912 </t>
913 <t t-name="FormRenderingNotebookPage">
914     <div t-attf-class="oe_notebook_page #{classnames}" t-att-id="id">
915     </div>
916 </t>
917 <t t-name="FormRenderingSeparator">
918     <div t-attf-class="oe_horizontal_separator oe_clear #{classnames}">
919         <t t-esc="string"/>
920     </div>
921 </t>
922 <t t-name="FormRenderingLabel">
923     <label  t-att-for="_for"
924             t-att-title="help"
925             t-attf-class="#{classnames} oe_form_label#{help ? '_help' : ''} oe_align_#{align}">
926         <t t-esc="string"/>
927     </label>
928 </t>
929
930 <t t-name="Widget">
931     Unhandled widget
932     <t t-js="dict">console.warn('Unhandled widget', dict.widget);</t>
933 </t>
934 <t t-name="WidgetLabel.tooltip">
935     <div class="oe_tooltip_string" t-if="widget.string">
936         <t t-esc="widget.node.attrs.string"/> <t t-if="debug and widget.nolabel">(nolabel)</t>
937     </div>
938     <p t-if="widget.node.attrs.help or (widget.field and widget.field.help)" class="oe_tooltip_help"><t t-esc="widget.node.attrs.help || widget.field.help"/></p>
939     <ul t-if="debug" class="oe_tooltip_technical">
940         <li data-item="field" t-if="widget.name">
941             <span class="oe_tooltip_technical_title">Field:</span>
942             <t t-esc="widget.name"/>
943         </li>
944         <li data-item="object" t-if="widget.view and widget.view.fields_view">
945             <span class="oe_tooltip_technical_title">Object:</span>
946             <t t-esc="widget.view.fields_view.model"/>
947         </li>
948         <li data-item="type" t-if="widget.field">
949             <span class="oe_tooltip_technical_title">Type:</span>
950             <t t-esc="widget.field.type"/>
951         </li>
952         <li t-if="widget.node.attrs.widget" data-item="widget">
953             <span class="oe_tooltip_technical_title">Widget:</span>
954             <t t-esc="widget.node.attrs.widget"/>
955         </li>
956         <li t-if="widget.node.attrs.size || (widget.field and widget.field.size)" data-item="size">
957             <span class="oe_tooltip_technical_title">Size:</span>
958             <t t-esc="widget.node.attrs.size || widget.field.size"/>
959         </li>
960         <li t-if="widget.node.attrs.context" data-item="context">
961             <span class="oe_tooltip_technical_title">Context:</span>
962             <t t-esc="widget.node.attrs.context"/>
963         </li>
964         <li t-if="widget.node.attrs.domain" data-item="domain">
965             <span class="oe_tooltip_technical_title">Domain:</span>
966             <t t-esc="widget.node.attrs.domain"/>
967         </li>
968         <li t-if="widget.node.attrs.modifiers and widget.node.attrs.modifiers != '{}'" data-item="modifiers">
969             <span class="oe_tooltip_technical_title">Modifiers:</span>
970             <t t-esc="widget.node.attrs.modifiers"/>
971         </li>
972         <li t-if="widget.field and widget.field.change_default" data-item="change_default">
973             <span class="oe_tooltip_technical_title">Change default:</span>
974             Yes
975         </li>
976         <li t-if="widget.node.attrs.on_change" data-item="on_change">
977             <span class="oe_tooltip_technical_title">On change:</span>
978             <t t-esc="widget.node.attrs.on_change"/>
979         </li>
980         <li t-if="widget.field and widget.field.relation" data-item="relation">
981             <span class="oe_tooltip_technical_title">Relation:</span>
982             <t t-esc="widget.field.relation"/>
983         </li>
984         <li t-if="widget.field and widget.field.selection" data-item="selection">
985             <span class="oe_tooltip_technical_title">Selection:</span>
986             <ul>
987                 <li t-foreach="widget.field.selection" t-as="option">
988                     [<t t-esc="option[0]"/>]
989                     <t t-if="option[1]"> - </t>
990                     <t t-esc="option[1]"/>
991                 </li>
992             </ul>
993         </li>
994     </ul>
995 </t>
996 <t t-name="FieldChar">
997     <span t-att-class="'oe_form_field '+widget.widget_class" t-att-style="widget.node.attrs.style">
998         <t t-if="!widget.get('effective_readonly')">
999             <input t-att-type="widget.password ? 'password' : 'text'"
1000                 t-att-id="widget.id_for_label"
1001                 t-att-tabindex="widget.node.attrs.tabindex"
1002                 t-att-autofocus="widget.node.attrs.autofocus"
1003                 t-att-placeholder="widget.node.attrs.placeholder"
1004                 t-att-maxlength="widget.field.size"
1005             /><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
1006         </t>
1007         <t t-if="widget.get('effective_readonly')">
1008             <span class="oe_form_char_content"></span>
1009         </t>
1010     </span>
1011 </t>
1012 <t t-name="FieldEmail">
1013     <span class="oe_form_field oe_form_field_email" t-att-style="widget.node.attrs.style">
1014         <a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri" target="_blank"/>
1015         <t t-if="!widget.get('effective_readonly')">
1016             <div>
1017                 <input type="text"
1018                     t-att-id="widget.id_for_label"
1019                     t-att-tabindex="widget.node.attrs.tabindex"
1020                     t-att-autofocus="widget.node.attrs.autofocus"
1021                     t-att-placeholder="widget.node.attrs.placeholder"
1022                 t-att-maxlength="widget.field.size"
1023                 />
1024             </div>
1025         </t>
1026     </span>
1027 </t>
1028 <t t-name="FieldUrl" t-extend="FieldEmail">
1029     <t t-jquery="span:first">
1030         this.removeClass('oe_form_field_email').addClass('oe_form_field_url');
1031     </t>
1032 </t>
1033 <t t-name="FieldText">
1034     <div class="oe_form_field oe_form_field_text" t-att-style="widget.node.attrs.style">
1035         <textarea rows="6"
1036             t-att-name="widget.name"
1037             class="field_text"
1038             t-att-tabindex="widget.node.attrs.tabindex"
1039             t-att-autofocus="widget.node.attrs.autofocus"
1040             t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
1041             t-att-maxlength="widget.field.size"
1042         ></textarea><img class="oe_field_translate oe_input_icon"
1043                         t-if="widget.field.translate and !widget.get('effective_readonly')"
1044                         t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"
1045         />
1046     </div>
1047 </t>
1048 <t t-name="FieldTextHtml">
1049     <div t-att-class="'oe_form_field oe_form_field_html' + (widget.get('effective_readonly') ? ' oe_form_embedded_html' : '')"
1050             t-att-style="widget.node.attrs.style">
1051         <t t-if="! widget.get('effective_readonly')">
1052             <textarea/>
1053         </t>
1054     </div>
1055 </t>
1056 <t t-name="web.datepicker">
1057     <span>
1058         <t t-set="placeholder" t-value="widget.getParent().node and widget.getParent().node.attrs.placeholder"/>
1059         <input type="text" class="oe_datepicker_container" disabled="disabled" style="display: none;"/>
1060         <input type="text"
1061             t-att-name="widget.name"
1062             t-att-placeholder="placeholder"
1063             class="oe_datepicker_master"
1064         /><img class="oe_input_icon oe_datepicker_trigger" t-att-src='_s + "/web/static/src/img/ui/field_calendar.png"'
1065              title="Select date" width="16" height="16" border="0"/>
1066     </span>
1067 </t>
1068 <t t-name="FieldDate">
1069     <span class="oe_form_field oe_datepicker_root oe_form_field_date" t-att-style="widget.node.attrs.style"/>
1070 </t>
1071 <t t-name="FieldDatetime">
1072     <span class="oe_form_field oe_datepicker_root oe_form_field_datetime" t-att-style="widget.node.attrs.style"/>
1073 </t>
1074 <t t-name="FieldSelection">
1075     <span class="oe_form_field oe_form_field_selection" t-att-style="widget.node.attrs.style">
1076         <select t-if="!widget.get('effective_readonly')"
1077             t-att-name="widget.name"
1078             t-att-tabindex="widget.node.attrs.tabindex"
1079             t-att-autofocus="widget.node.attrs.autofocus"
1080             t-att-id="widget.id_for_label">
1081                 <t t-foreach="widget.values" t-as="option">
1082                     <option>
1083                         <t t-esc="widget.node.attrs.placeholder" t-if="option[0] === false and widget.node.attrs.placeholder"/>
1084                         <t t-esc="option[1]" t-if="option[0] !== false"/>
1085                     </option>
1086                 </t>
1087         </select>
1088     </span>
1089 </t>
1090 <t t-name="FieldMany2One">
1091     <span class="oe_form_field oe_form_field_many2one oe_form_field_with_button" t-att-style="widget.node.attrs.style">
1092         <t t-if="widget.get('effective_readonly')">
1093             <a t-if="! widget.options.no_open" href="#" class="oe_form_uri"/>
1094             <span t-if="widget.options.no_open" href="#" class="oe_form_uri"/>
1095             <span class="oe_form_m2o_follow"/>
1096         </t>
1097         <t t-if="!widget.get('effective_readonly')">
1098             <a t-if="! widget.options.no_open" href="#" tabindex="-1"
1099                 class="oe_m2o_cm_button oe_e">/</a>
1100             <div>
1101                 <input type="text"
1102                     t-att-id="widget.id_for_label"
1103                     t-att-tabindex="widget.node.attrs.tabindex"
1104                     t-att-autofocus="widget.node.attrs.autofocus"
1105                     t-att-placeholder="widget.node.attrs.placeholder"
1106                 />
1107                 <span class="oe_m2o_drop_down_button">
1108                     <img t-att-src='_s + "/web/static/src/img/down-arrow.png"'/>
1109                 </span>
1110             </div>
1111         </t>
1112     </span>
1113 </t>
1114 <t t-name="Many2OneButton">
1115     <span class="oe_form_field">
1116     </span>
1117 </t>
1118 <t t-name="Many2OneButton.cell"
1119     ><img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png" t-att-alt="widget.string" width="16" height="16"/>
1120 </t>
1121 <t t-name="FieldMany2ManyTags">
1122     <div class="oe_form_field oe_tags" t-att-style="widget.node.attrs.style">
1123         <t t-if="! widget.get('effective_readonly')">
1124             <textarea rows="1" style="width: 100%"
1125                 t-att-placeholder="widget.node.attrs.placeholder"></textarea>
1126         </t>
1127     </div>
1128 </t>
1129 <t t-name="FieldMany2ManyTag">
1130     <t t-set="i" t-value="0"/>
1131     <t t-foreach="elements" t-as="el">
1132         <span class="oe_tag" t-att-data-index="i">
1133             <t t-esc="el[1]"/>
1134         </span>
1135         <t t-set="i" t-value="i + 1"/>
1136     </t>
1137 </t>
1138 <t t-name="FieldReference">
1139     <table class="oe_form_field oe_form_field_reference" border="0" cellpadding="0" cellspacing="0" t-att-style="widget.node.attrs.style">
1140     <tr>
1141         <td t-attf-class="oe_form_frame_cell oe_form_selection">
1142             <span t-attf-class="oe_form_view_reference_selection"/>
1143         </td>
1144         <td t-attf-class="oe_form_frame_cell oe_form_many2one" nowrap="true">
1145             <span t-attf-class="oe_form_view_reference_m2o"/>
1146         </td>
1147     </tr>
1148     </table>
1149 </t>
1150 <t t-name="FieldBoolean">
1151     <span class="oe_form_field oe_form_field_boolean" t-att-style="widget.node.attrs.style">
1152         <input type="checkbox"
1153             t-att-id="widget.id_for_label"
1154             t-att-name="widget.name"
1155             t-att-tabindex="widget.node.attrs.tabindex"
1156             t-att-autofocus="widget.node.attrs.autofocus"
1157             class="field_boolean"/>
1158     </span>
1159 </t>
1160 <t t-name="FieldProgressBar">
1161     <span class="oe_form_field oe_form_field_progressbar" t-att-style="widget.node.attrs.style">
1162         <span></span>
1163     </span>
1164 </t>
1165 <t t-name="FieldStatus">
1166     <ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_status_clickable' : 'oe_form_status')" t-att-style="widget.node.attrs.style"/>
1167 </t>
1168 <t t-name="FieldStatus.content">
1169     <t t-foreach="widget.selection" t-as="i">
1170         <li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
1171             <span class="label"><t t-esc="i[1]"/></span>
1172             <!-- are you mit ? -->
1173             <span class="arrow"><span></span></span>
1174         </li>
1175     </t>
1176 </t>
1177 <t t-name="FieldBinaryImage">
1178     <span class="oe_form_field oe_form_field_image" t-att-style="widget.node.attrs.style">
1179         <div class="oe_form_field_image_controls oe_edit_only">
1180             <t t-call="HiddenInputFile">
1181                 <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1182                 Edit 
1183             </t>
1184             <div class="oe_form_binary_progress" style="display: none">
1185                 <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
1186                 <b>Uploading ...</b>
1187             </div>
1188         </div>
1189     </span>
1190 </t>
1191 <t t-name="FieldBinaryImage-img">
1192     <img t-att-src='url'
1193         t-att-border="widget.readonly ? 0 : 1"
1194         t-att-name="widget.name"
1195         t-att-width="widget.node.attrs.img_width || widget.node.attrs.width"
1196         t-att-height="widget.node.attrs.img_height || widget.node.attrs.height"
1197     />
1198 </t>
1199 <t t-name="FieldBinaryFile">
1200     <t t-if="!widget.get('effective_readonly')">
1201         <table class="oe_form_field oe_form_field_binary" cellpadding="0" cellspacing="0" border="0" t-att-style="widget.node.attrs.style">
1202         <tr>
1203             <td>
1204                 <input type="text" size="1" readonly="readonly"
1205                     t-att-name="widget.name"
1206                     t-att-tabindex="widget.node.attrs.tabindex"
1207                     t-att-autofocus="widget.node.attrs.autofocus"
1208                     class="field_binary"
1209                 />
1210             </td>
1211             <td class="oe_form_binary" nowrap="true">
1212                 <table cellspacing="0" cellpadding="0" border="0">
1213                 <tr>
1214                     <td>
1215                         <t t-call="HiddenInputFile">
1216                             <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1217                             <t t-set="fileupload_style" t-translation="off">width: 83px;</t>
1218                             <button class="oe_button oe_field_button" type="button">
1219                                 <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
1220                                 <span>Select</span>
1221                             </button>
1222                         </t>
1223                     </td>
1224                     <td>
1225                         <a class="oe_form_binary_file_save_data">
1226                             <button class="oe_button oe_form_binary_file_save" type="button" title="Save As">
1227                                 <img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/>
1228                                 <span>Save As</span>
1229                             </button>
1230                         </a>
1231                     </td>
1232                     <td>
1233                         <button class="oe_button oe_form_binary_file_clear" type="button" title="Clear">
1234                             <img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/>
1235                             <span>Clear</span>
1236                         </button>
1237                     </td>
1238                 </tr>
1239                 </table>
1240             </td>
1241             <td class="oe_form_binary_progress" style="display: none" nowrap="true">
1242                 <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
1243                 <b>Uploading ...</b>
1244             </td>
1245         </tr>
1246         </table>
1247     </t>
1248     <t t-if="widget.get('effective_readonly')">
1249         <span t-att-style="widget.node.attrs.style">
1250             <a href="javascript:void(0)" class="oe_form_uri"/>
1251         </span>
1252     </t>
1253 </t>
1254 <t t-name="HiddenInputFile">
1255     <div t-attf-class="oe_hidden_input_file #{fileupload_class or ''}" t-att-style="fileupload_style">
1256         <form class="oe_form_binary_form" t-att-target="fileupload_id"
1257             method="post" enctype="multipart/form-data" t-att-action="fileupload_action || '/web/binary/upload'">
1258             <input type="hidden" name="session_id" value=""/>
1259             <input type="hidden" name="callback" t-att-value="fileupload_id"/>
1260             <t t-raw="__content__"/>
1261             <input type="file" class="oe_form_binary_file" name="ufile" t-if="widget.widget!='image'"/>
1262             <input type="file" class="oe_form_binary_file" name="ufile" accept="image/*" t-if="widget.widget=='image'"/>
1263         </form>
1264         <iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/>
1265     </div>
1266 </t>
1267 <t t-name="FieldBinaryFileUploader.files">
1268     <div class="oe_attachments">
1269         <t t-if="widget.get('value')">
1270             <t t-if="!widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
1271                 <div class="oe_attachment">
1272                     <span t-if="(file.upload or file.percent_loaded&lt;100)" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}" t-attf-name="{file.name || file.filename}">
1273                         <span class="oe_fileuploader_in_process">...Upload in progress...</span>
1274                         <t t-raw="file.name || file.filename"/>
1275                     </span>
1276                     <a t-if="(!file.upload or file.percent_loaded&gt;=100)" t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
1277                         <t t-raw="file.name || file.filename"/>
1278                     </a>
1279                     <t t-if="(!file.upload or file.percent_loaded&gt;=100)">
1280                         <a class="oe_right oe_delete oe_e" title="Delete this file" t-attf-data-id="{file.id}">[</a>
1281                     </t>
1282                 </div>
1283             </t>
1284             <t t-if="widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
1285                 <div>
1286                     <a t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
1287                         <t t-raw="file.name || file.filename"/>
1288                     </a>
1289                 </div>
1290             </t>
1291         </t>
1292     </div>
1293 </t>
1294 <t t-name="FieldBinaryFileUploader">
1295     <div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
1296         <div class="oe_placeholder_files"/>
1297         <div class="oe_add" t-if="!widget.get('effective_readonly')">
1298             <!-- uploader of file -->
1299             <button class="oe_attach"><span class="oe_e">'</span></button> 
1300             <span class='oe_attach_label'>File</span>
1301             <t t-call="HiddenInputFile">
1302                 <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1303                 <t t-set="fileupload_action">/web/binary/upload_attachment</t>
1304                 <input type="hidden" name="model" t-att-value="widget.view.model"/>
1305                 <input type="hidden" name="id" value="0"/>
1306                 <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
1307             </t>
1308         </div>
1309     </div>
1310 </t>
1311 <t t-name="WidgetButton">
1312     <button type="button" class="oe_button oe_form_button"
1313         t-att-style="widget.node.attrs.style"
1314         t-att-tabindex="widget.node.attrs.tabindex"
1315         t-att-autofocus="widget.node.attrs.autofocus"
1316         t-att-accesskey="widget.node.attrs.accesskey">
1317         <img t-if="widget.node.attrs.icon" t-att-src="_s + widget.node.attrs.icon" width="16" height="16"/>
1318         <span t-if="widget.string"><t t-esc="widget.string"/></span>
1319     </button>
1320 </t>
1321 <t t-name="WidgetButton.tooltip" t-extend="WidgetLabel.tooltip">
1322     <t t-jquery="div.oe_tooltip_string" t-operation="replace">
1323         <div class="oe_tooltip_string" t-if="debug || widget.string">
1324             <t t-if="debug">
1325                 Button
1326                 <t t-if="widget.string">: </t>
1327                 <t t-if="!widget.string"> (no string)</t>
1328             </t>
1329             <t t-esc="widget.string"/>
1330         </div>
1331     </t>
1332     <t t-jquery="ul.oe_tooltip_technical" t-operation="append">
1333         <li t-if="widget.node.attrs.special" data-item="special">
1334             <span class="oe_tooltip_technical_title">Special:</span>
1335             <t t-esc="widget.node.attrs.special"/>
1336         </li>
1337         <t t-set="button_type" t-value="widget.node.attrs.type"/>
1338         <li t-if="button_type" data-item="button_type">
1339             <span class="oe_tooltip_technical_title">Button Type:</span>
1340             <t t-esc="button_type"/>
1341         </li>
1342         <li t-if="button_type === 'object'" data-item="button_method">
1343             <span class="oe_tooltip_technical_title">Method:</span>
1344             <t t-esc="widget.node.attrs.name"/>
1345         </li>
1346         <li t-if="button_type === 'action'" data-item="button_action">
1347             <span class="oe_tooltip_technical_title">Action ID:</span>
1348             <t t-esc="widget.node.attrs.name"/>
1349         </li>
1350     </t>
1351 </t>
1352
1353 <t t-name="AbstractFormPopup.render">
1354     <div>
1355         <table style="width:100%">
1356             <tr style="width:100%">
1357                 <td style="width:100%">
1358                     <div class="oe_popup_search" style="width:100%"></div>
1359                 </td>
1360             </tr>
1361             <tr style="width:100%">
1362                 <td style="width:100%">
1363                     <div class="oe_popup_list_pager"></div>
1364                 </td>
1365             </tr>
1366             <tr style="width:100%">
1367                 <td style="width:100%">
1368                     <div class="oe_popup_list" style="width:100%"></div>
1369                 </td>
1370             </tr>
1371         </table>
1372         <div class="oe_popup_form" style="width:100%"></div>
1373     </div>
1374 </t>
1375 <t t-name="SelectCreatePopup.search.buttons">
1376     <t t-if="! widget.options.disable_multiple_selection">
1377         <button type="button" class="oe_button oe_selectcreatepopup-search-select oe_highlight" disabled="disabled">Select</button>
1378     </t>
1379     <button type="button" class="oe_button oe_selectcreatepopup-search-create">Create</button>
1380     or <a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
1381 </t>
1382 <t t-name="AbstractFormPopup.buttons">
1383     <t t-if="! readonly">
1384         <t t-if="! multi_select">
1385             <button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save</button>
1386         </t>
1387         <t t-if="multi_select">
1388             <button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save &amp; Close</button>
1389             <button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save &amp; New</button>
1390         </t>
1391         or
1392     </t>
1393     <a class="oe_button oe_abstractformpopup-form-close oe_bold oe_form_button_cancel" href="javascript:void(0)">
1394         <t t-if="! readonly">
1395             Discard
1396         </t>
1397         <t t-if="readonly">
1398             Close
1399         </t>
1400     </a>
1401 </t>
1402
1403 <t t-name="One2Many.viewmanager" t-extend="ViewManager">
1404     <t t-jquery=".oe-view-manager-header">
1405         this.attr('t-if', 'views.length != 1');
1406     </t>
1407 </t>
1408 <t t-name="One2Many.formview" t-extend="FormView">
1409     <t t-jquery=".oe_form_buttons" t-operation="inner">
1410         <button type="button" class="oe_button oe_form_button_create">Add</button>
1411     </t>
1412 </t>
1413 <t t-name="One2Many.listview" t-extend="ListView">
1414     <t t-jquery="thead.ui-widget-header > tr:first">
1415         this.removeAttr('t-if');
1416     </t>
1417
1418     <t t-jquery="td.oe-actions">
1419         this.removeAttr('t-if');
1420     </t>
1421     <t t-jquery="td.oe-actions" t-operation="prepend">
1422         <h3 class="oe_view_title"><t t-esc="fields_view.arch.attrs.string"/></h3>
1423     </t>
1424 </t>
1425
1426 <div t-name="SearchView" class="oe_searchview">
1427     <div class="oe_searchview_facets"/>
1428     <div class="oe_searchview_clear"/>
1429     <div class="oe_searchview_unfold_drawer" title="Advanced Search..."/>
1430     <div class="oe_searchview_drawer"/>
1431     <button type="button" class="oe_searchview_search"
1432             title="Search Again">Search</button>
1433 </div>
1434
1435 <div t-name="SearchView.InputView"
1436      class="oe_searchview_input"
1437      contenteditable="true"
1438      tabindex="0"/>
1439 <!-- tabindex: makes div focusable -->
1440 <div t-name="SearchView.FacetView"
1441      class="oe_tag oe_tag_dark oe_searchview_facet"
1442      tabindex="0"
1443     ><span class="oe_facet_remove">x</span
1444     ><span class="oe_facet_category oe_i" t-if="widget.model.has('icon')">
1445         <t t-esc="widget.model.get('icon')"/>
1446     </span
1447     ><span class="oe_facet_category" t-if="!widget.model.has('icon')">
1448         <t t-esc="widget.model.get('category')"/>
1449     </span ><span class="oe_facet_values"
1450 /></div>
1451 <span t-name="SearchView.FacetView.Value" class="oe_facet_value">
1452     <t t-esc="widget.model.get('label')"/>
1453 </span>
1454 <t t-name="SearchView.managed-filters">
1455     <option class="oe_search_filters_title" value="">Filters</option>
1456     <optgroup label="-- Filters --">
1457         <t t-foreach="filters" t-as="filter">
1458             <option t-attf-value="get:#{filter_index}"
1459                     t-att-disabled="filter.disabled and 'disabled'"
1460                     t-att-title="filter.disabled and disabled_filter_message">
1461                 <t t-esc="filter.name"/>
1462             </option>
1463         </t>
1464     </optgroup>
1465     <optgroup label="-- Actions --">
1466         <option value="advanced_filter">Add Advanced Filter</option>
1467         <option value="save_filter">Save Filter</option>
1468         <option value="manage_filters">Manage Filters</option>
1469     </optgroup>
1470 </t>
1471 <t t-name="SearchView.managed-filters.add">
1472     <div>
1473         <p>Filter Name:</p>
1474         <input type="text"/>
1475         <p>(Any existing filter with the same name will be replaced)</p>
1476     </div>
1477 </t>
1478 <t t-name="SearchView.render_lines">
1479     <table class="oe_search_render_line" border="0" cellspacing="0" cellpadding="0"
1480            t-foreach="lines" t-as="line">
1481         <tr>
1482             <td t-foreach="line" t-as="widget" class="oe_searchview_field">
1483                 <t t-raw="widget.render(defaults)"/>
1484             </td>
1485         </tr>
1486     </table>
1487 </t>
1488 <button t-name="SearchView.filter" type="button"
1489         t-att-id="element_id"
1490         t-att-title="attrs.help"
1491         t-att-class="classes.join(' ')"
1492         t-att-style="style"
1493         t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined">
1494     <img t-att-src="_s + '/web/static/src/img/icons/' + (attrs.icon || 'gtk-home') + '.png'" width="16" height="16"/>
1495     <br t-if="attrs.string"/>
1496     <t t-esc="attrs.string"/>
1497 </button>
1498 <ul t-name="SearchView.filters">
1499     <li t-foreach="widget.filters" t-as="filter"
1500             t-att-title="filter.attrs.string ? filter.attrs.help : undefined">
1501         <t t-esc="filter.attrs.string or filter.attrs.help or filter.attrs.name or 'Ω'"/>
1502     </li>
1503 </ul>
1504 <t t-name="SearchView.filters.facet">
1505     <div class="category oe_filter_category"><t t-esc="facet.get('category')"/></div>
1506
1507     <t t-set="val" t-value="facet.get('json')"/>
1508
1509     <div t-if="!(val instanceof Array)" class="search_facet_input_container">
1510         <t t-esc="facet.get('value')"/>
1511     </div>
1512     <t t-if="val instanceof Array">
1513         <div class="search_facet_input_container"
1514                 t-foreach="facet.get('json')" t-as="filter">
1515             <t t-esc="filter.attrs.string || filter.attrs.name"/>
1516         </div>
1517     </t>
1518
1519     <div class="search_facet_remove VS-icon VS-icon-cancel"/>
1520 </t>
1521 <t t-name="SearchView.field">
1522     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1523            t-att-title="attrs.help"
1524            t-att-for="element_id"
1525            t-att-style="style">
1526         <t t-esc="attrs.string || attrs.name"/>
1527         <span t-if="attrs.help">?</span>
1528     </label>
1529     <div t-att-style="style">
1530         <input type="text" size="15" t-att-name="attrs.name"
1531                t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"
1532                t-att-id="element_id"
1533                t-att-value="defaults[attrs.name] || ''"/>
1534         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1535     </div>
1536 </t>
1537 <t t-name="SearchView.date">
1538     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1539            t-att-title="attrs.help"
1540            t-att-for="element_id"
1541            t-att-style="style">
1542         <t t-esc="attrs.string || attrs.name"/>
1543         <span t-if="attrs.help">?</span>
1544     </label>
1545     <div t-att-style="style">
1546         <span t-att-id="element_id"/>
1547         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1548     </div>
1549 </t>
1550 <t t-name="SearchView.field.selection">
1551     <label t-att-title="attrs.help"
1552            t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1553            t-att-for="element_id"
1554            t-att-style="style">
1555         <t t-esc="attrs.string || attrs.name"/>
1556         <span t-if="attrs.help">?</span>
1557     </label>
1558     <div t-att-style="style">
1559         <select t-att-name="attrs.name" t-att-id="element_id"
1560                 t-att-autofocus="attrs.default_focus === '1' || undefined">
1561             <option t-if="prepend_empty"/>
1562             <t t-foreach="attrs.selection" t-as="option">
1563                 <t t-set="selected" t-value="defaults[attrs.name] === option[0]"/>
1564                 <option t-if="selected"
1565                         t-attf-selected="selected"
1566                         t-att-value="option_index">
1567                     <t t-esc="option[1]"/>
1568                 </option>
1569                 <option t-if="!selected" t-att-value="option_index">
1570                     <t t-esc="option[1]"/>
1571                 </option>
1572             </t>
1573         </select>
1574         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1575     </div>
1576 </t>
1577 <t t-name="SearchView.util.expand">
1578     <div t-att-class="'searchview_group ' + (expand == '0' ? 'folded' : 'expanded')">
1579         <a t-if="label" class="searchview_group_string" href="#">
1580             <t t-esc="label"/>
1581         </a>
1582         <div class="searchview_group_content">
1583             <t t-raw="content"/>
1584         </div>
1585     </div>
1586 </t>
1587 <t t-name="SearchView.group">
1588     <t t-call="SearchView.util.expand">
1589         <t t-set="expand" t-value="attrs.expand"/>
1590         <t t-set="label" t-value="attrs.string"/>
1591         <t t-set="content">
1592             <t t-call="SearchView.render_lines"/>
1593         </t>
1594     </t>
1595 </t>
1596 <div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
1597
1598 </div>
1599 <div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section">
1600     <div>
1601         <h3><span class="oe_i">M</span> Custom Filters</h3>
1602         <ul class="oe_searchview_custom_list"/>
1603         <div class="oe_searchview_custom">
1604             <h4>Save current filter</h4>
1605             <form>
1606                 <p><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
1607                 <p>
1608                     <input id="oe_searchview_custom_public" type="radio" name="oe_searchview_custom_filter"/>
1609                     <label for="oe_searchview_custom_public">Share with all users</label>
1610                     <input id="oe_searchview_custom_default" type="radio" name="oe_searchview_custom_filter"/>
1611                     <label for="oe_searchview_custom_default">Use by default</label>
1612                 </p>
1613                 <button>Save</button>
1614             </form>
1615         </div>
1616     </div>
1617 </div>
1618
1619 <div t-name="SearchView.advanced" class="oe_searchview_advanced">
1620     <h4>Advanced Search</h4>
1621     <form>
1622         <ul>
1623
1624         </ul>
1625         <button class="oe_add_condition button" type="button">Add a condition</button><br/>
1626         <button class="oe_apply" type="submit">Apply</button>
1627     </form>
1628 </div>
1629 <t t-name="SearchView.extended_search.proposition">
1630     <li>
1631         <span class="searchview_extended_prop_or">or</span>
1632         <select class="searchview_extended_prop_field">
1633             <t t-foreach="widget.attrs.fields" t-as="field">
1634                 <option t-att="{'selected': field === widget.attrs.selected ? 'selected' : null}"
1635                         t-att-value="field.name">
1636                     <t t-esc="field.string"/>
1637                 </option>
1638             </t>
1639         </select>
1640         <select class="searchview_extended_prop_op"/>
1641         <span class="searchview_extended_prop_value"/>
1642         <a class="searchview_extended_delete_prop button">x</a>
1643     </li>
1644 </t>
1645 <t t-name="SearchView.extended_search.proposition.char">
1646     <input class="field_char"/>
1647 </t>
1648 <t t-name="SearchView.extended_search.proposition.empty">
1649     <span/>
1650 </t>
1651 <t t-name="SearchView.extended_search.proposition.integer">
1652     <input type="number" class="field_integer" value = "0" step="1"/>
1653 </t>
1654 <t t-name="SearchView.extended_search.proposition.float">
1655     <input type="number" class="field_float" value = "0.0" step="0.01"/>
1656 </t>
1657 <t t-name="SearchView.extended_search.proposition.selection">
1658     <select>
1659         <t t-foreach="widget.field.selection" t-as="element">
1660         <option t-att-value="element[0]"><t t-esc="element[1]"/></option>
1661         </t>
1662     </select>
1663 </t>
1664
1665 <t t-name="ExportView">
1666     <a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
1667 </t>
1668 <table t-name="ExportTreeView" class="oe_export"
1669        style="background-color: #F3F3F3;">
1670     <tr>
1671         <td colspan="3">
1672             This wizard will export all data that matches the current search criteria to a CSV file.
1673             You can export all data or only the fields that can be reimported after modification.
1674         </td>
1675     </tr>
1676     <tr>
1677         <td colspan="3">
1678             <label for="import_compat">Export Type:</label>
1679             <select id="import_compat" name="import_compat">
1680                 <option value="yes">Import-Compatible Export</option>
1681                 <option value="">Export all Data</option>
1682             </select>
1683
1684             <label for="export_format">Export Formats</label>
1685             <select id="export_format" name="export_format"></select>
1686         </td>
1687     </tr>
1688
1689     <tr>
1690         <th>Available fields</th>
1691         <th/>
1692         <th>
1693             Fields to export
1694             <a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
1695             <div id="savenewlist"></div>
1696             <div id="ExistsExportList"></div>
1697         </th>
1698     </tr>
1699     <tr style="height: 400px;">
1700         <td class="oe_export_fields_selector_left">
1701             <div id="left_field_panel">
1702             </div>
1703         </td>
1704         <td class="oe_export_fields_selector_center">
1705             <!-- TODO: replace ids by 'oe_*' classes -->
1706             <button class="oe_button" id="add_field">Add</button>
1707             <button class="oe_button" id="remove_field">Remove</button>
1708             <button class="oe_button" id="remove_all_field">Remove All</button>
1709         </td>
1710         <td class="oe_export_fields_selector_right">
1711             <select name="fields_list" id="fields_list"
1712                     multiple="multiple"></select>
1713         </td>
1714     </tr>
1715 </table>
1716 <table t-name="ExportTreeView-Secondary"
1717        id="field-tree-structure" class="oe_export_fields_selector_export"
1718        cellspacing="0" cellpadding="0">
1719     <tr><th class="oe_export_tree_header"> Name </th></tr>
1720     <t t-call="ExportTreeView-Secondary.children"/>
1721 </table>
1722 <tr t-name="ExportTreeView-Secondary.children"
1723     t-foreach="fields" t-as="field"
1724     t-att-id="'treerow-' + field.id" class="oe_export_row">
1725     <td>
1726         <table class="tree_grid" border="0">
1727             <tr class="oe_export_row">
1728                 <t t-foreach="(field.id).split('/')" t-as="level" >
1729                     <t t-if="(field.id).split('/')[0] != level">
1730                         <td width="18" t-translation="off">&amp;nbsp;</td>
1731                     </t>
1732                 </t>
1733                 <td valign="top" align="left" style="cursor: pointer;" width="18">
1734                     <t t-if="field.children">
1735                         <t t-if="(field.id).split('/').length != 3">
1736                             <img t-att-id="'parentimg-' + field.id" t-att-src='_s + "/web/static/src/img/expand.gif"' width="16" height="16" border="0"/>
1737                         </t>
1738                     </t>
1739                 </td>
1740                 <td id="tree-column" valign="middle" align="left" style="cursor: pointer;">
1741                     <a t-att-id="'export-' + field.id"  t-att-string="field.string" href="javascript: void(0);" style="text-decoration: none;">
1742                         <t t-esc="field.string"/>
1743                     </a>
1744                 </td>
1745             </tr>
1746         </table>
1747     </td>
1748 </tr>
1749 <t t-name="ExportNewList">
1750     <tr>
1751         <th><label>Save as:</label></th>
1752         <td><input size="10" type="text" id="savelist_name"/></td>
1753         <td><button class="oe_button oe_export_button_export" id="add_export_list">Ok</button></td>
1754     </tr>
1755 </t>
1756 <t t-name="Exists.ExportList">
1757     <label for="saved_export_list">Saved exports:</label>
1758
1759     <select id="saved_export_list">
1760         <option></option>
1761         <t t-foreach="existing_exports" t-as="export">
1762             <option t-att-value="export.id"><t t-esc="export.name"/></option>
1763         </t>
1764     </select>
1765     <button class="oe_button oe_export_button_export" id="delete_export_list" type="button">Delete</button>
1766 </t>
1767
1768 <t t-name="ImportView">
1769     <a id="importview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Import</a>
1770 </t>
1771 <t t-name="ImportDataView">
1772 <form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data"
1773         class="oe_import oe_import_no_result">
1774     <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
1775     <h2 class="separator horizontal">1. Import a .CSV file</h2>
1776     <p>Select a .CSV file to import. If you need a sample of file to import,
1777        you should use the export tool with the "Import Compatible" option.
1778     </p>
1779     <p>
1780         <label for="csvfile">CSV File:</label>
1781         <input type="file" id="csvfile" size="50" name="csvfile"/>
1782     </p>
1783     <h2 class="separator horizontal oe_import_result">2. Check your file format</h2>
1784     <div id="result" class="oe_import_result"></div>
1785     <fieldset class="oe_closed oe_import_result">
1786         <legend>Import Options</legend>
1787         <table>
1788             <tr>
1789                 <td colspan="4">
1790                     <label for="file_has_headers">Does your file have titles?</label>
1791                     <input type="checkbox" checked="checked"
1792                            id="file_has_headers"/>
1793                 </td>
1794             </tr>
1795             <tr>
1796                 <td><label for="csv_separator">Separator:</label></td>
1797                 <td><input type="text" name="csvsep" id="csv_separator" value=","/></td>
1798                 <td><label for="csv_delimiter">Delimiter:</label></td>
1799                 <td><input type="text" name="csvdel" id="csv_delimiter" value='"'/></td>
1800             </tr>
1801             <tr>
1802                 <td><label for="csv_encoding">Encoding:</label></td>
1803                 <td>
1804                     <select name="csvcode" id="csv_encoding">
1805                         <option value="utf-8">UTF-8</option>
1806                         <option value="latin1">Latin 1</option>
1807                     </select>
1808                 </td>
1809                 <td><label for="csv_skip" title="For use if CSV files have titles on multiple lines, skips more than a single line during import">
1810                     Lines to skip<sup>?</sup>:</label></td>
1811                 <td><input type="number" id="csv_skip" value="0" min="0"/></td>
1812             </tr>
1813         </table>
1814     </fieldset>
1815 </form>
1816 </t>
1817 <t t-name="ImportView.result">
1818     <table class="oe_import_grid" width="100%" style="margin: 5px 0;">
1819         <tr t-if="headers" class="oe_import_grid-header">
1820             <td t-foreach="headers" t-as="header" class="oe_import_grid-cell">
1821                 <t t-esc="header"/></td>
1822         </tr>
1823         <tr>
1824             <td t-foreach="records[0]" t-as="column">
1825                 <input class="sel_fields" placeholder="--- Don't Import ---"/><span class="oe_m2o_drop_down_button">
1826                         <img t-att-src='_s + "/web/static/src/img/down-arrow.png"' /></span>
1827             </td>
1828         </tr>
1829         <tr t-foreach="records" t-as="record" class="oe_import_grid-row">
1830             <td t-foreach="record" t-as="cell" class="oe_import_grid-cell">
1831                 <t t-esc="cell"/></td>
1832         </tr>
1833     </table>
1834 </t>
1835 <t t-name="ImportView.error">
1836     <p style="white-space:pre;">The import failed due to:<t t-esc="error.message"/></p>
1837     <t t-if="error.preview">
1838         <p>Here is a preview of the file we could not import:</p>
1839         <pre><t t-esc="error.preview"/></pre>
1840     </t>
1841 </t>
1842 <div t-name="Many2ManyKanban.quick_create" class="oe_kanban_quick_create">
1843     <input t-att-placeholder="_t('Type name to search')"/>
1844 </div>
1845 <t t-name="Throbber">
1846     <div>
1847         <div class="oe_blockui_spin" style="height: 50px">
1848         </div>
1849         <br />
1850         <div class="oe_throbber_message" style="color:white"></div>
1851     </div>
1852 </t>
1853 <t t-name="M2ODialog">
1854     <div>
1855         Name: <input class="oe_form_m2o_input_name" type="text"/>
1856     </div>
1857 </t>
1858 <t t-name="M2ODialog.buttons">
1859     <button class="oe_form_m2o_qc_button oe_button oe_highlight">Quick Add</button>
1860     <button class="oe_form_m2o_sc_button oe_button">Add All Info...</button>
1861     <button class="oe_form_m2o_cancel_button oe_button">Cancel</button>
1862 </t>
1863 <t t-name="FieldMonetary" t-extend="FieldChar">
1864     <t t-jquery="t:first" t-operation="before">
1865         <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'before'">
1866             <t t-esc="widget.get('currency_info').symbol"/>
1867         </t>
1868     </t>
1869     <t t-jquery="t:last" t-operation="after">
1870         <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'after'">
1871             <t t-esc="widget.get('currency_info').symbol"/>
1872         </t>
1873     </t>
1874 </t>
1875 </templates>