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