600d1c0b78bb756d1de7a39a506c897ea0facb53
[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="Notification">
6     <div class="oe_notification">
7         <div id="oe_notification_default">
8             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
9             <h1>#{title}</h1>
10             <p>#{text}</p>
11         </div>
12         <div id="oe_notification_alert" class="ui-state-error">
13             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
14             <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert"></span>
15             <h1>#{title}</h1>
16             <p>#{text}</p>
17         </div>
18     </div>
19 </t>
20 <t t-name="Interface">
21     <div id="oe_loading"></div>
22     <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" class="main_table">
23     <tr>
24         <td colspan="2" valign="top">
25             <div id="oe_header" class="header"></div>
26             <div id="oe_menu" class="menu"></div>
27         </td>
28     </tr>
29     <tr>
30         <td valign="top" class="login-container" colspan="2">
31             <div id="oe_login" class="login"></div>
32         </td>
33     </tr>
34     <tr class="db_options_row">
35         <td valign="top" class="db_container">
36             <div id="oe_database" class="database"></div>
37         </td>
38         <td valign="top">
39                 <div id="oe_db_options"></div>
40         </td>
41     </tr>
42     <tr>
43         <td colspan="2" valign="top" height="100%">
44             <table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
45             <tr>
46                 <td valign="top" id="oe_secondary_menu" class="secondary_menu">
47                 </td>
48                 <td valign="top" class="oe-application-container">
49                     <div id="oe_app" class="oe-application">
50                     </div>
51                 </td>
52             </tr>
53             </table>
54         </td>
55     </tr>
56     <tr>
57         <td colspan="2">
58             <div id="oe_footer" class="oe_footer">
59                 <p class="oe_footer_powered">Powered by <a href="http://www.openerp.com">openerp.com</a>.</p>
60             </div>
61         </td>
62     </tr>
63     </table>
64 </t>
65 <t t-name="Loading">
66     <div class="loading">
67     Loading...
68     </div>
69 </t>
70 <t t-name="Database">
71     <ul class="db_options" style="padding: 0px; display: inline;">
72         <li id="db-create">Create</li>
73         <li id="db-drop">Drop</li>
74         <li id="db-backup">Backup</li>
75         <li id="db-restore">Restore</li>
76         <li id="db-change-password">Password</li>
77         <li id="back-to-login">Back to Login</li>
78     </ul>
79 </t>
80 <t t-name="Database.CreateDB">
81     <form name="create_db_form" class="oe_forms" method="POST">
82         <table width="100%">
83             <tr>
84                 <td class="option_string">
85                     CREATE DATABASE
86                 </td>
87             </tr>
88         </table>
89         <table align="center" class="db_option_table">
90             <tr>
91                 <td><label for="super_admin_pwd">Master password:</label></td>
92                 <td><input type="password" name="super_admin_pwd" class="required" value="admin"/></td>
93             </tr>
94             <tr>
95                 <td><label for="db_name">New database name:</label></td>
96                 <td><input type="text" name="db_name" class="required"/></td>
97             </tr>
98             <tr>
99                 <td><label for="demo_data">Load Demonstration data:</label></td>
100                 <td><input type="checkbox" name="demo_data"/></td>
101             </tr>
102             <tr>
103                 <td><label for="db_lang">Default language:</label></td>
104                 <td>
105                     <select name="db_lang" t-if="lang_list">
106                         <t t-foreach="lang_list" t-as="lang">
107                             <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option>
108                         </t>
109                     </select>
110                 </td>
111             </tr>
112             <tr>
113                 <td><label for="create_admin_pwd">Admin password:</label></td>
114                 <td><input type="password" name="create_admin_pwd" class="required"/></td>
115             </tr>
116             <tr>
117                 <td><label for="create_confirm_pwd">Confirm password:</label></td>
118                 <td><input type="password" name="create_confirm_pwd" class="required"
119                            equalTo="input[name=create_admin_pwd]"/></td>
120             </tr>
121             <tr>
122                 <td colspan="2" align="right"><button>Create</button></td>
123             </tr>
124         </table>
125     </form>
126 </t>
127 <t t-name="DropDB">
128     <form name="drop_db_form" class="oe_forms" method="POST">
129         <table width="100%">
130             <tr>
131                 <td class="option_string">
132                     DROP DATABASE
133                 </td>
134             </tr>
135         </table>
136         <table align="center" class="db_option_table">
137             <tr>
138                 <td><label for="drop_db">Database:</label></td>
139                 <td>
140                     <select t-if="db_list" name="drop_db" autofocus="autofocus">
141                         <t t-foreach="db_list" t-as="db">
142                             <option t-att-value="db"><t t-esc="db"/></option>
143                         </t>
144                     </select>
145                 </td>
146             </tr>
147             <tr>
148                 <td><label for="drop_password">Master Password:</label></td>
149                 <td><input type="password" name="drop_pwd" class="required"/></td>
150             </tr>
151             <tr>
152                 <td colspan="2" align="right"><button>Drop</button></td>
153             </tr>
154         </table>
155     </form>
156 </t>
157 <t t-name="BackupDB">
158     <form name="backup_db_form" class="oe_forms" method="POST" target="backup-target"
159           action="/web/database/backup">
160         <input type="hidden" name="token"/>
161         <table width="100%">
162             <tr>
163                 <td class="option_string">
164                     BACKUP DATABASE
165                 </td>
166             </tr>
167         </table>
168         <table align="center" class="db_option_table">
169             <tr>
170                 <td><label for="backup_db">Database:</label></td>
171                 <td>
172                     <select t-if="db_list" name="backup_db" autofocus="autofocus">
173                         <t t-foreach="db_list" t-as="db">
174                             <option t-att-value="db"><t t-esc="db"/></option>
175                         </t>
176                     </select>
177                 </td>
178             </tr>
179             <tr>
180                 <td><label for="backup_pwd">Master Password:</label></td>
181                 <td><input type="password" name="backup_pwd" class="required"/></td>
182             </tr>
183             <tr>
184                 <td colspan="2" align="right"><button>Backup</button></td>
185             </tr>
186         </table>
187     </form>
188 </t>
189 <t t-name="RestoreDB">
190     <form name="restore_db_form" class="oe_forms" method="POST">
191         <table width="100%">
192             <tr>
193                 <td class="option_string">
194                     RESTORE DATABASE
195                 </td>
196             </tr>
197         </table>
198         <table align="center" class="db_option_table">
199             <tr>
200                 <td><label for="restore_db">File:</label></td>
201                 <td><input type="file" name="db_file" class="required"
202                          autofocus="autofocus"/></td>
203             </tr>
204             <tr>
205                 <td><label for="restore_pwd">Master Password:</label></td>
206                 <td><input type="password" name="restore_pwd" class="required"/></td>
207             </tr>
208         <tr>
209                 <td><label for="new_db">New database name:</label></td>
210                 <td><input type="text" name="new_db" class="required"/></td>
211             </tr>
212         <tr>
213             <td colspan="2" align="right"><button>Restore</button></td>
214             </tr>
215         </table>
216     </form>
217 </t>
218 <t t-name="Change_DB_Pwd">
219     <form name="change_pwd_form" class="oe_forms" method="POST">
220         <table width="100%">
221             <tr>
222                 <td class="option_string">
223                     CHANGE MASTER PASSWORD
224                 </td>
225             </tr>
226         </table>
227         <table align="center" class="db_option_table">
228             <tr>
229                 <td><label for="old_pwd">Master password:</label></td>
230                 <td><input type="password" name="old_pwd" class="required"
231                            minlength="1" autofocus="autofocus"/></td>
232             </tr>
233             <tr>
234             <td><label for="new_pwd">New master password:</label></td>
235             <td><input type="password" name="new_pwd" class="required"
236                        minlength="1"/></td>
237             </tr>
238             <tr>
239                 <td><label for="confirm_pwd">Confirm new master password:</label></td>
240                 <td><input type="password" name="confirm_pwd" class="required"
241                            equalTo="input[name=new_pwd]" minlength="1"/></td>
242             </tr>
243             <tr>
244                 <td colspan="2" align="right"><button>Change Password</button></td>
245             </tr>
246         </table>
247     </form>
248 </t>
249
250 <t t-name="Login_dblist">
251     <select name="db">
252         <t t-foreach="db_list" t-as="db">
253             <t t-if="selected_db === db">
254                 <option t-att-value="db" selected="true">
255                     <t t-esc="db"/></option>
256             </t>
257             <t t-if="selected_db !== db">
258                 <option t-att-value="db"><t t-esc="db"/></option>
259             </t>
260         </t>
261     </select>
262 </t>
263
264 <t t-name="Login">
265     <div>
266     <form class="oe_forms">
267         <fieldset>
268             <legend style="">
269                 <img src="/web/static/src/img/stock_person.png" alt="" />
270             </legend>
271             <div class="oe_box2">
272                 <table align="center" cellspacing="2px" cellpadding="0">
273                     <tr>
274                         <td><label for="db">Database:</label></td>
275                         <td>
276                             <input type="text" name="db" t-att-value="widget.selected_db || ''" autofocus="true"/>
277                         </td>
278                     </tr>
279                     <tr>
280                         <td><label for="login">User:</label></td>
281                         <td><input type="text" name="login"
282                             t-att-value="widget.selected_login || ''" autofocus="true"/></td>
283                     </tr>
284                     <tr>
285                         <td><label for="password">Password:</label></td>
286                         <td><input type="password" name="password"
287                                 t-att-value="widget.selected_password || ''"/></td>
288                     </tr>
289                     <tr>
290                         <td></td>
291                         <td>
292                                 <button type="button" id="oe-db-config">Database</button>
293                             <button name="submit">Login</button>
294                         </td>
295                     </tr>
296                 </table>
297             </div>
298         </fieldset>
299         <div class="login_error_message">Bad username or password</div>
300     </form>
301     <div class="oe_login_right_pane">
302         <p>We think that daily job activities can be more intuitive, efficient, automated, .. and even fun.</p>
303         <h3>OpenERP's vision to be:</h3>
304
305         <table cellpadding="0" cellspacing="0" width="100%" style="border:none;">
306             <tbody>
307             <tr>
308                 <td>
309                     <img src="/web/static/src/img/product.png"/>
310                 </td>
311                 <td>
312                     <strong>Full featured</strong><br />
313                     Today's enterprise challenges are multiple. We provide one module for each need.
314                 </td>
315             </tr>
316             <tr>
317                 <td>
318                     <img src="/web/static/src/img/accessories-archiver.png"/>
319                 </td>
320                 <td>
321                     <strong>Open Source</strong><br />
322                     To Build a great product, we rely on the knowledge of thousands of contributors.
323                 </td>
324             </tr>
325             <tr>
326                 <td>
327                     <img src="/web/static/src/img/partner.png" />
328                 </td>
329                 <td>
330                     <strong>User Friendly</strong><br />
331                     In order to be productive, people need clean and easy to use interface.
332                 </td>
333             </tr>
334             </tbody>
335         </table>
336
337     </div>
338     </div>
339 </t>
340 <t t-name="Header">
341     <div>
342         <a t-att-href="'/' + widget.qs" class="company_logo_link">
343             <div class="company_logo" />
344         </a>
345     </div>
346 </t>
347 <t t-name="Header-content">
348     <h1 class="header_title">
349         <t t-esc="user.company_id[1]"/> (<t t-esc="widget.session.db"/>)<br/>
350         <small class="username"><t t-esc="user.name"/></small>
351     </h1>
352     <div class="header_corner">
353         <ul class="block">
354             <li>
355                 <a t-att-href="'/' + widget.qs" title="Home" class="home"><img src="/web/static/src/img/header-home.png" width="16" height="16" border="0"/></a>
356             </li>
357             <li class="preferences">
358                 <a href="javascript:void(0)" title="Preferences" class="preferences"><img src="/web/static/src/img/header-preferences.png" width="16" height="16" border="0"/></a>
359             </li>
360             <li>
361                 <a href="javascript:void(0)" title="About" class="about"><img src="/web/static/src/img/header-about.png" width="16" height="16" border="0"/></a>
362             </li>
363         </ul>
364         <div class="block">
365             <a href="#logout" class="logout">LOGOUT</a>
366         </div>
367
368     </div>
369     <div class="oe-shortcuts"> </div>
370 </t>
371 <ul t-name="Shortcuts">
372     <li t-foreach="shortcuts" t-as="shortcut"
373             t-att-data-id="shortcut.res_id"
374             t-att-data-shortcut-id="shortcut.id"
375         ><t t-esc="shortcut.name"/></li>
376 </ul>
377 <t t-name="Menu">
378     <table align="center">
379     <tr>
380         <td t-foreach="widget.data.data.children" t-as="menu">
381             <a href="#" t-att-data-menu="menu.id">
382                 <t t-esc="menu.name"/>
383             </a>
384         </td>
385     </tr>
386     </table>
387 </t>
388 <t t-name="Menu.secondary">
389     <div t-attf-class="oe_toggle_secondary_menu">
390         <span class="oe_menu_fold" title="Fold menu">&amp;laquo;</span>
391         <span class="oe_menu_unfold" title="Unfold menu">&amp;raquo;</span>
392     </div>
393     <div t-foreach="widget.data.data.children" t-as="menu" style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu.id">
394         <t t-foreach="menu.children" t-as="menu">
395             <t t-set="classname">oe_secondary_menu_item</t>
396             <t t-set="level" t-value="0"/>
397             <t t-call="Menu.secondary.children"/>
398         </t>
399     </div>
400 </t>
401 <t t-name="Menu.secondary.children">
402     <t t-set="level" t-value="level + 1"/>
403     <a href="#" t-att-id="menu.children.length ? 'menu_' + menu.id : undefined"
404         t-att-class="classname + (menu.children.length ? ' submenu' : ' leaf') + (menu_first and level == 1 ? ' opened' : '')"
405         t-att-data-menu="menu.children.length ? undefined : menu.id">
406         <span t-attf-style="padding-left: #{(level - 2) * 20}px"> <t t-esc="menu.name"/></span>
407     </a>
408     <div t-attf-class="oe_secondary_submenu" t-if="menu.children.length" t-att-style="menu_first and level == 1 ? undefined : 'display: none'">
409         <t t-foreach="menu.children" t-as="menu">
410             <t t-set="classname">oe_secondary_submenu_item</t>
411             <t t-call="Menu.secondary.children"/>
412         </t>
413     </div>
414 </t>
415 <t t-name="ViewManager">
416     <table class="view-manager-main-table" cellpadding="0" cellspacing="0">
417     <tbody>
418     <tr>
419         <td class="view-manager-main-content">
420             <div class="oe-view-manager-header">
421                 <h2 class="oe_view_title" t-if="self.flags.display_title !== false">
422                     <span class="oe_view_title_text"><t t-esc="self.display_title()"/></span>
423                 </h2>
424                 <div class="oe_vm_switch">
425                     <t t-if="views.length != 1" t-foreach="views" t-as="view">
426                         <button type="button" t-att-data-view-type="view.view_type">
427                             <t t-esc="view.view_type"/>
428                         </button>
429                     </t>
430                 </div>
431             </div>
432             <div t-attf-id="#{prefix}_search" t-opentag="true"/>
433             <t t-foreach="views" t-as="view">
434                 <div t-attf-id="#{prefix}_view_#{view.view_type}"/>
435             </t>
436         </td>
437         <td class="view-manager-main-sidebar" height="100%">
438             <t t-foreach="views" t-as="view">
439                 <div t-attf-id="#{prefix}_sidebar_#{view.view_type}" class="sidebar-main-div closed-sidebar" style="display: none"/>
440             </t>
441         </td>
442     </tr>
443     </tbody>
444     </table>
445 </t>
446
447 <t t-extend="ViewManager" t-name="ViewManagerAction">
448     <t t-jquery=".view-manager-main-table tbody" t-operation="prepend">
449         <tr>
450             <td class="oe_view_manager_menu_tips" colspan="2">
451                 <blockquote t-if="self.action.help and !self.flags.low_profile
452                                  and !(self.action.id in self.session.hidden_menutips)">
453                     <p><t t-esc="self.action.help"/></p>
454                     <div>
455                         <button type="button" name="hide">Hide this tip</button>
456                         <button type="button" name="disable">Disable all tips</button>
457                     </div>
458                 </blockquote>
459             </td>
460         </tr>
461     </t>
462     <t t-jquery="h2.oe_view_title" t-operation="prepend">
463         <a t-if="self.flags.display_title !== false" class="oe-shortcut-toggle" title="Add / Remove Shortcut..."
464             href="javascript: void(0)"> </a>
465     </t>
466     <t t-jquery="h2.oe_view_title" t-operation="after">
467         <select t-if="self.session.debug" class="oe_debug_view"/>
468     </t>
469     <t t-jquery=".oe-view-manager-header" t-operation="after">
470         <div class="oe-view-manager-logs oe-folded">
471             <ul></ul>
472             <a class="oe-more-logs" href="#">More…</a>
473             <a class="oe-remove-everything ui-icon ui-icon-closethick"/>
474         </div>
475     </t>
476 </t>
477 <t t-name="ViewManagerDebug">
478     <option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>
479     <option value="fvg"> - Fields View Get</option>
480     <option value="edit" data-model="ir.ui.view" t-att-data-id="view.fields_view.view_id"> - Edit <t t-esc="_.str.capitalize(view.fields_view.type)"/>View</option>
481     <option t-if="view_manager.searchview" value="edit" data-model="ir.ui.view" t-att-data-id="view_manager.searchview.view_id"> - Edit SearchView</option>
482     <option t-if="view_manager.action" value="edit" t-att-data-model="view_manager.action.type" t-att-data-id="view_manager.action.id"> - Edit Action</option>
483 </t>
484 <t t-extend="ViewManager" t-name="One2Many.viewmanager">
485     <t t-jquery="span.oe_view_title_text" t-operation="replace"/>
486
487     <t t-jquery=".oe-view-manager-header">
488         this.attr('t-if', 'views.length != 1');
489     </t>
490 </t>
491
492 <t t-name="Sidebar">
493     <a class="toggle-sidebar"></a>
494     <div class="sidebar-content">
495         <div class="sidebar-actions">
496         </div>
497     </div>
498 </t>
499 <t t-name="Sidebar.section">
500     <div t-att-id="section_id" t-att-class="classname">
501         <h2><t t-esc="name"/></h2>
502     </div>
503 </t>
504 <t t-name="Sidebar.section.items">
505             <li t-foreach="items" t-as="item" t-att-class="item.classname">
506                 <a class="oe_sidebar_action_a" t-att-id="item.element_id" t-att-title="item.title" href="#">
507                     <t t-esc="item.label"/>
508                 </a>
509             </li>
510 </t>
511
512 <t t-name="TranslateDialog">
513     <table t-if="widget.view.translatable_fields" class="oe_frame oe_forms oe_translation_form" border="0" cellpadding="0" cellspacing="0" width="100%">
514     <tr>
515         <td class="oe_form_separator" width="1%" nowrap="nowrap">
516             <div class="separator horizontal">Field</div>
517         </td>
518         <th t-foreach="widget.languages" align="left">
519             <div class="separator horizontal"><t t-esc="name"/></div>
520         </th>
521     </tr>
522     <tr t-foreach="widget.view.translatable_fields" t-as="field" t-att-data-field="field.name">
523         <td class="oe_form_frame_cell" width="1%" nowrap="nowrap">
524             <label class="oe_label"><t t-esc="field.string"/>:</label>
525         </td>
526         <td t-foreach="widget.languages" t-as="lg" class="oe_form_frame_cell">
527             <input t-if="field.type == 'char'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_trad_field" style="width: 100%"/>
528             <textarea t-if="field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_trad_field" style="width: 100%"></textarea>
529         </td>
530     </tr>
531     </table>
532 </t>
533 <t t-name="TreeView">
534     <select t-if="toolbar" style="width: 30%">
535     </select>
536     <table class="oe-treeview-table">
537         <thead>
538             <tr>
539                 <th t-foreach="fields_view" t-as="field"
540                     t-if="!field.attrs.modifiers.tree_invisible"
541                     class="treeview-header">
542                     <t t-esc="fields[field.attrs.name].string" />
543                 </th>
544             </tr>
545         </thead>
546         <tbody>
547         </tbody>
548     </table>
549 </t>
550 <tr t-name="TreeView.rows"
551         t-foreach="records" t-as="record"
552         t-att-id="'treerow_' + record.id"
553         t-att-data-id="record.id" t-att-data-level="level + 1">
554     <t t-set="children" t-value="record[children_field]"/>
555     <t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
556
557     <td t-foreach="fields_view" t-as="field"
558         t-if="!field.attrs.modifiers.tree_invisible"
559         t-att-data-id="record.id"
560         t-att-style="color_for(record) + (!field_index ? 'background-position: ' + 19*level + 'px; padding-left: ' + 19*level + 'px;' : '')"
561         t-att-class="class">
562         <span t-if="!field.attrs.modifiers.invisible">
563             <t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
564         </span>
565         <t t-set="class" t-value="'treeview-td'"/>
566     </td>
567 </tr>
568
569 <table t-name="ListView" class="oe-listview-content">
570     <t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0) + (options.isClarkGable ? 1 : 0)"/>
571     <thead class="ui-widget-header">
572         <tr t-if="options.action_buttons !== false or options.pager !== false">
573             <th t-att-colspan="columns_count">
574                 <table>
575                     <tr>
576                         <td t-if="!no_leaf and options.action_buttons !== false" class="oe-actions">
577                             <button type="button" class="oe-list-add"
578                                     t-if="options.addable">
579                                 <t t-esc="options.addable"/>
580                             </button>
581                             <button type="button" class="oe-list-delete"
582                                     t-if="options.selectable and options.deletable">
583                                 Delete
584                             </button>
585                         </td>
586                         <t t-call="Listview.navigation.button"/>
587                     </tr>
588                 </table>
589             </th>
590         </tr>
591         <tr t-if="options.header" class="oe-listview-header-columns">
592             <t t-foreach="columns" t-as="column">
593                 <th t-if="column.meta">
594                     <t t-esc="column.string"/>
595                 </th>
596             </t>
597             <th t-if="options.selectable" width="1"  >
598                 <input type="checkbox" class="all-record-selector"/> </th>
599             <th t-if="options.isClarkGable" width="1"> </th>
600             <t t-foreach="columns" t-as="column">
601                 <th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
602                     t-att-class="((options.sortable and column.tag !== 'button') ? 'oe-sortable' : null)">
603                     <t t-if="column.tag !== 'button'"
604                         ><t t-esc="column.string"/></t>
605                 </th>
606             </t>
607             <th t-if="options.deletable" width="1"/>
608         </tr>
609     </thead>
610     <tfoot class="ui-widget-header">
611         <tr>
612             <td t-if="options.selectable"/>
613             <td t-if="options.isClarkGable"/>
614             <td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
615                 t-att-data-field="column.id" t-att-title="column.label">
616             </td>
617             <td t-if="options.deletable"/>
618         </tr>
619         <tr>
620             <t t-call="Listview.navigation.button"/>
621         </tr>
622     </tfoot>
623 </table>
624 <t t-extend="ListView" t-name="One2Many.listview">
625     <t t-jquery="thead.ui-widget-header > tr:first">
626         this.removeAttr('t-if');
627     </t>
628
629     <t t-jquery="tfoot &gt; tr:last-child" t-operation="replace"/>
630
631     <t t-jquery="td.oe-actions">
632         this.removeAttr('t-if');
633         var $title = $(document.createElement('h3')).addClass('oe_view_title');
634         $title.append($(document.createElement('t')).attr(
635             't-esc', 'fields_view.arch.attrs.string'));
636         this.prepend($title);
637     </t>
638 </t>
639 <th t-name="Listview.navigation.button" t-if="!no_leaf and options.pager !== false"
640         class="oe-list-pager" t-att-colspan="columns_count">
641     <button type="button" disabled="disabled"
642             data-pager-action="first">First</button>
643     <button type="button" disabled="disabled"
644             data-pager-action="previous">&lt;</button>
645
646     <span class="oe-pager-state">
647     </span>
648
649     <button type="button" disabled="disabled"
650             data-pager-action="next">&gt;</button>
651     <button type="button" disabled="disabled"
652             data-pager-action="last">Last</button>
653 </th>
654 <t t-name="ListView.rows" t-foreach="records.length" t-as="index">
655     <t t-call="ListView.row">
656         <t t-set="record" t-value="records.at(index)"/>
657         <t t-set="row_parity" t-value="index_parity"/>
658     </t>
659 </t>
660 <tr t-name="ListView.row" t-att-class="row_parity"
661         t-att-data-id="record.get('id')"
662         t-att-style="view.color_for(record)">
663     <t t-foreach="columns" t-as="column">
664         <td t-if="column.meta">
665
666         </td>
667     </t>
668     <th t-if="options.selectable" class="oe-record-selector" width="1">
669         <input t-att-type="options.radio? 'radio': 'checkbox'" name ="radiogroup" t-att-checked="options.select_view_id == record.get('id')? true: null"/>
670     </th>
671     <th t-if="options.isClarkGable" class="oe-record-edit-link" width="1">
672         <img src="/web/static/src/img/pencil.gif" width="12" height="12" class="oe-record-edit-link-img"/>
673     </th>
674     <t t-foreach="columns" t-as="column">
675         <t t-set="align" t-value="column.type === 'integer' or column.type == 'float'"/>
676         <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
677             t-att-class="'oe-field-cell' + (align ? ' oe-number' : '')
678                          + (column.tag === 'button' ? ' oe-button' : '')"
679             t-att-data-field="column.id">
680             <t t-raw="render_cell(record, column)"/>
681         </td>
682     </t>
683     <td t-if="options.deletable" class='oe-record-delete' width="1">
684         <button type="button" name="delete"></button>
685     </td>
686 </tr>
687 <t t-name="ListView.row.form">
688     <t t-raw="frame.render()"/>
689 </t>
690
691 <t t-name="FormView">
692     <div class="oe_form_header">
693         <div class="oe_form_buttons" t-if="widget.options.action_buttons !== false">
694             <button type="button" class="oe_form_button_save">Save</button>
695             <button type="button" class="oe_form_button_cancel">Cancel</button>
696         </div>
697         <div class="oe_form_pager" t-if="widget.options.pager !== false">
698             <button type="button" data-pager-action="first">First</button>
699             <button type="button" data-pager-action="previous">&lt;&lt;</button>
700
701             <span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
702
703             <button type="button" data-pager-action="next">&gt;&gt;</button>
704             <button type="button" data-pager-action="last">Last</button>
705         </div>
706     </div>
707     <t t-raw="frame.render()"/>
708 </t>
709 <t t-name="PageView" t-extend="FormView">
710     <t t-jquery=".oe_form_buttons" t-operation="inner">
711         <button type="button" class="oe_form_button_edit">Edit</button>
712         <button type="button" class="oe_form_button_create">Create</button>
713         <button type="button" class="oe_form_button_duplicate">Duplicate</button>
714         <button type="button" class="oe_form_button_delete">Delete</button>
715     </t>
716 </t>
717 <t t-name="FormView.sidebar.attachments">
718     <div class="oe-sidebar-attachments-toolbar">
719         <div class="oe-binary-file-set" style="float: right">
720             <form class="oe-binary-form" t-attf-target="#{element_id}_iframe"
721                 method="post" enctype="multipart/form-data" action="/web/binary/upload_attachment">
722                 <input type="hidden" name="session_id" t-att-value="session.session_id"/>
723                 <input type="hidden" name="callback" t-attf-value="#{element_id}_iframe"/>
724                 <input type="hidden" name="model" t-att-value="view.dataset.model"/>
725                 <input type="hidden" name="id" t-att-value="view.datarecord.id"/>
726                 <button class="button" type="button">
727                     <img src="/web/static/src/img/throbber.gif" width="16" height="16" style="display: none"/>
728                     <span>Add</span>
729                 </button>
730                 <input type="file" class="oe-binary-file" name="ufile" title="Add attachment"
731                     t-att-onclick="view.datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/>
732             </form>
733             <iframe t-attf-id="#{element_id}_iframe" t-attf-name="#{element_id}_iframe" style="display: none"> </iframe>
734         </div>
735     </div>
736     <br style="clear: both"/>
737     <ul class="oe-sidebar-attachments-items">
738         <li t-foreach="attachments" t-as="attachment">
739             <t t-if="attachment.type == 'binary'" t-set="attachment.url" t-value="'/web/binary/saveas?session_id='
740                 + session.session_id + '&amp;model=ir.attachment&amp;id=' + attachment.id
741                 + '&amp;field=datas&amp;fieldname=name&amp;t=' + (new Date().getTime())"/>
742             <a class="oe-sidebar-attachments-link" t-att-href="attachment.url" target="_blank">
743                 <t t-esc="attachment.name"/>
744             </a>
745             <a href="#" class="oe-sidebar-attachment-delete" t-att-data-id="attachment.id" t-attf-title="Delete the attachment #{attachment.name}">
746                 <img src="/web/static/src/img/attachments-close.png" width="15" height="15" border="0"/>
747             </a>
748         </li>
749     </ul>
750 </t>
751 <t t-name="Widget">
752     Unhandled widget
753     <t t-js="dict">console.warn('Unhandled widget', dict.widget);</t>
754 </t>
755 <t t-name="WidgetFrame">
756     <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
757     <tr t-foreach="widget.table" t-as="row">
758         <t t-foreach="row" t-as="td">
759             <td t-att-colspan="td.colspan gt 1 ? td.colspan : undefined"
760                 t-att-width="td.width"
761                 t-att-valign="td.table ? 'top' : undefined"
762                 t-attf-class="oe_form_frame_cell #{td.classname} #{td.element_class}"
763             >
764                 <t t-raw="td.render()"/>
765             </td>
766         </t>
767     </tr>
768     </table>
769 </t>
770 <t t-name="WidgetFrame.readonly" t-extend="WidgetFrame">
771     <t t-jquery="&gt;table">
772         this.attr('class', this.attr('class')+' oe_form_readonly');
773     </t>
774 </t>
775 <t t-name="WidgetGroup">
776     <t t-if="widget.string">
777     <fieldset class="oe_group_box">
778         <legend><t t-esc="widget.string"/></legend>
779         <t t-call="WidgetFrame"/>
780     </fieldset>
781     </t>
782     <t t-if="!widget.string">
783         <t t-call="WidgetFrame"/>
784     </t>
785 </t>
786 <t t-name="WidgetNotebook">
787     <ul>
788         <li t-foreach="widget.pages" t-as="page">
789             <a href="#">
790                 <t t-esc="page.string"/>
791             </a>
792         </li>
793     </ul>
794     <t t-foreach="widget.pages" t-as="page">
795         <t t-raw="page.render()"/>
796     </t>
797 </t>
798 <t t-name="WidgetNotebook.tooltip">
799     <t t-foreach="widget.pages" t-as="page">
800         <div class="oe_tooltip_string">
801             Notebook Page "<t t-esc="page.string"/>"
802         </div>
803         <ul class="oe_tooltip_technical">
804             <li data-item="modifiers">
805                 <span class="oe_tooltip_technical_title">Modifiers:</span>
806                 <t t-esc="page.node.attrs.modifiers"/>
807             </li>
808         </ul>
809     </t>
810 </t>
811 <t t-name="WidgetNotebookPage">
812     <div>
813         <t t-call="WidgetFrame"/>
814     </div>
815 </t>
816 <t t-name="WidgetSeparator">
817     <div t-if="widget.orientation !== 'vertical'" t-att-class="'separator ' + widget.orientation">
818         <t t-esc="widget.string"/>
819     </div>
820 </t>
821 <t t-name="WidgetLabel">
822     <label t-att-for="widget.element_id"
823            t-attf-class="oe_label#{widget.help ? '_help' : ''} oe_align_#{widget.align}">
824         <t t-esc="widget.string"/>
825         <span t-if="widget.help">?</span>
826         <t t-if="widget.string and widget.node.tag != 'label'">:</t>
827     </label>
828 </t>
829 <t t-name="WidgetLabel.tooltip">
830     <div class="oe_tooltip_string" t-if="widget.string">
831         <t t-esc="widget.string"/> <t t-if="debug and widget.nolabel">(nolabel)</t>
832     </div>
833     <p t-if="widget.help" class="oe_tooltip_help">
834         <t t-esc="widget.help"/>
835     </p>
836     <ul t-if="debug" class="oe_tooltip_technical">
837         <li data-item="field" t-if="widget.name">
838             <span class="oe_tooltip_technical_title">Field:</span>
839             <t t-esc="widget.name"/>
840         </li>
841         <li data-item="object" t-if="widget.view and widget.view.fields_view">
842             <span class="oe_tooltip_technical_title">Object:</span>
843             <t t-esc="widget.view.fields_view.model"/>
844         </li>
845         <li data-item="type" t-if="widget.field">
846             <span class="oe_tooltip_technical_title">Type:</span>
847             <t t-esc="widget.field.type"/>
848         </li>
849         <li t-if="widget.node.attrs.widget" data-item="widget">
850             <span class="oe_tooltip_technical_title">Widget:</span>
851             <t t-esc="widget.node.attrs.widget"/>
852         </li>
853         <li t-if="widget.node.attrs.size || (widget.field and widget.field.size)" data-item="size">
854             <span class="oe_tooltip_technical_title">Size:</span>
855             <t t-esc="widget.node.attrs.size || widget.field.size"/>
856         </li>
857         <li t-if="widget.node.attrs.context" data-item="context">
858             <span class="oe_tooltip_technical_title">Context:</span>
859             <t t-esc="widget.node.attrs.context_string"/>
860         </li>
861         <li t-if="widget.node.attrs.domain" data-item="domain">
862             <span class="oe_tooltip_technical_title">Domain:</span>
863             <t t-esc="widget.node.attrs.domain_string"/>
864         </li>
865         <li t-if="widget.node.attrs.modifiers and widget.node.attrs.modifiers != '{}'" data-item="modifiers">
866             <span class="oe_tooltip_technical_title">Modifiers:</span>
867             <t t-esc="widget.node.attrs.modifiers"/>
868         </li>
869         <li t-if="widget.node.attrs.on_change" data-item="on_change">
870             <span class="oe_tooltip_technical_title">On change:</span>
871             <t t-esc="widget.node.attrs.on_change"/>
872         </li>
873         <li t-if="widget.field and widget.field.relation" data-item="relation">
874             <span class="oe_tooltip_technical_title">Relation:</span>
875             <t t-esc="widget.field.relation"/>
876         </li>
877         <li t-if="widget.field and widget.field.selection" data-item="selection">
878             <span class="oe_tooltip_technical_title">Selection:</span>
879             <ul>
880                 <li t-foreach="widget.field.selection" t-as="option">
881                     [<t t-esc="option[0]"/>]
882                     <t t-if="option[1]"> - </t>
883                     <t t-esc="option[1]"/>
884                 </li>
885             </ul>
886         </li>
887     </ul>
888 </t>
889 <t t-name="WidgetParagraph">
890     <p t-attf-class="oe_form_paragraph oe_align_#{widget.align}"><t t-esc="widget.string"/></p>
891 </t>
892 <t t-name="FieldChar">
893     <input t-att-type="widget.password ? 'password' : 'text'" size="1"
894         t-att-name="widget.name"
895         t-att-id="widget.element_id"
896         t-attf-class="field_#{widget.type} #{_(['integer', 'float', 'float_time']).contains(widget.type) ? 'oe-number' : ''}"
897         style="width: 100%"
898     /><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" src="/web/static/src/img/icons/terp-translate.png" width="16" height="16" border="0"/>
899 </t>
900 <t t-name="FieldChar.readonly">
901     <div
902         t-att-id="widget.element_id"
903         t-attf-class="field_#{widget.type} #{_(['integer', 'float', 'float_time']).contains(widget.type) ? 'oe-number' : ''}">
904     </div>
905 </t>
906 <t t-name="FieldURI.readonly">
907     <a href="#" class="oe_form_uri">#</a>
908 </t>
909 <t t-name="FieldEmail">
910     <table cellpadding="0" cellspacing="0" border="0" width="100%">
911     <tr>
912         <td width="100%" style="position: relative">
913             <t t-call="FieldChar"/>
914         </td>
915         <td width="16">
916             <button type="button" class="button" title="Send an e-mail with your default e-mail client">
917                 <img src="/web/static/src/img/icons/terp-mail-message-new.png"/>
918             </button>
919         </td>
920     </tr>
921     </table>
922 </t>
923 <t t-name="FieldUrl">
924     <table cellpadding="0" cellspacing="0" border="0" width="100%">
925     <tr>
926         <td width="100%" style="position: relative">
927             <t t-call="FieldChar"/>
928         </td>
929         <td width="16">
930             <button type="button" class="button" title="Open this resource">
931                 <img src="/web/static/src/img/icons/gtk-ok.png"/>
932             </button>
933         </td>
934     </tr>
935     </table>
936 </t>
937 <t t-name="FieldText">
938     <textarea rows="6"
939         t-att-name="widget.name"
940         t-att-id="widget.element_id"
941         t-attf-class="field_#{widget.type}"
942         style="width: 100%"
943     ></textarea><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" src="/web/static/src/img/icons/terp-translate.png" width="16" height="16" border="0"/>
944 </t>
945 <t t-name="web.datetimepicker">
946     <div class="oe_datepicker_root">
947         <input type="text" size="1" class="oe_datepicker_container" disabled="disabled" style="display: none;"/>
948         <input type="text" size="1" style="width: 100%"
949             t-att-name="widget.name"
950             t-attf-class="oe_datepicker_master field_#{widget.type_of_date}"
951         /><img class="oe_input_icon oe_datepicker_trigger" src="/web/static/src/img/ui/field_calendar.png"
952              title="Select date" width="16" height="16" border="0"/>
953     </div>
954 </t>
955 <t t-name="FieldSelection">
956     <select
957         t-att-name="widget.name"
958         t-att-id="widget.element_id"
959         t-attf-class="field_#{widget.type}"
960         style="width: 100%">
961             <t t-foreach="widget.values" t-as="option">
962                 <option><t t-esc="option[1]"/></option>
963             </t>
964     </select>
965 </t>
966 <t t-name="FieldMany2One">
967     <div class="oe-m2o">
968         <input type="text" size="1" style="width: 100%;"
969                 t-att-id="widget.element_id"/>
970         <span class="oe-m2o-drop-down-button">
971             <img src="/web/static/src/img/down-arrow.png" /></span>
972         <span class="oe-m2o-cm-button" t-att-id="widget.name + '_open'">
973             <img src="/web/static/src/img/icons/gtk-index.png"/></span>
974         <div t-att-id="widget.cm_id" class="contextMenu" style="display:none">
975         </div>
976     </div>
977 </t>
978 <t t-name="FieldMany2One.context_menu">
979     <ul>
980         <li t-att-id="widget.cm_id + '_open'" style="color:grey" class="oe_m2o_menu_item_mandatory">Open...</li>
981         <li t-att-id="widget.cm_id + '_create'" class="oe_m2o_menu_item_noreadonly">Create...</li>
982         <li t-att-id="widget.cm_id + '_search'" class="oe_m2o_menu_item_noreadonly">Search...</li>
983         <t t-set="i" t-value="0"/>
984         <t t-foreach="widget.related_entries" t-as="entry">
985             <li t-att-id="widget.cm_id + '_related_' + i" style="color:grey" class="oe_m2o_menu_item_mandatory">
986                 ... <t t-esc="(entry[2] || {})['name'] || ''"/>
987             </li>
988             <t t-set="i" t-value="i+1"/>
989         </t>
990     </ul>
991 </t>
992 <t t-name="FieldOne2Many">
993 </t>
994 <t t-name="FieldMany2Many">
995     <div t-att-id="widget.list_id"></div>
996 </t>
997 <t t-name="FieldReference">
998     <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
999     <tr>
1000         <td t-attf-class="oe_form_frame_cell oe_form_selection #{widget.selection.element_class}">
1001             <t t-raw="widget.selection.render()"/>
1002         </td>
1003         <td t-attf-class="oe_form_frame_cell oe_form_many2one #{widget.m2o.element_class}" nowrap="true" style="display: none">
1004             <t t-raw="widget.m2o.render()"/>
1005         </td>
1006     </tr>
1007     </table>
1008 </t>
1009 <t t-name="FieldBoolean">
1010     <input type="checkbox"
1011         t-att-name="widget.name"
1012         t-att-id="widget.element_id"
1013         t-attf-class="field_#{widget.type}"/>
1014 </t>
1015 <t t-name="FieldProgressBar">
1016     <div t-opentag="true" class="oe-progressbar">
1017         <span></span>
1018     </div>
1019 </t>
1020 <t t-name="FieldBinaryImage">
1021     <table cellpadding="0" cellspacing="0" border="0">
1022     <tr>
1023         <td align="center">
1024             <img src="/web/static/src/img/placeholder.png" class="oe-binary-image"
1025                 t-att-border="widget.readonly ? 0 : 1"
1026                 t-att-id="widget.element_id + '_field'"
1027                 t-att-name="widget.name"
1028                 t-attf-class="field_#{widget.type}"
1029                 t-att-width="widget.node.attrs.img_width || widget.node.attrs.width"
1030                 t-att-height="widget.node.attrs.img_height || widget.node.attrs.height"
1031             />
1032         </td>
1033     </tr>
1034     <tr>
1035         <td align="center" valign="bottom" height="25">
1036             <div class="oe-binary">
1037                 <table cellspacing="0" cellpadding="0" border="0">
1038                 <tr>
1039                     <td>
1040                         <div class="oe-binary-file-set" style="width: 40px; height:22px;">
1041                             <form class="oe-binary-form" t-att-target="widget.iframe"
1042                                 method="post" enctype="multipart/form-data" action="/web/binary/upload">
1043                                 <input type="hidden" name="session_id" value=""/>
1044                                 <input type="hidden" name="callback" t-att-value="widget.iframe"/>
1045                                 <button class="button" type="button" title="Set Image">
1046                                     <img src="/web/static/src/img/icons/STOCK_DIRECTORY.png"/>
1047                                 </button>
1048                                 <input type="file" class="oe-binary-file" name="ufile"/>
1049                             </form>
1050                         </div>
1051                     </td>
1052                     <td>
1053                         <button class="button oe-binary-file-clear" type="button" title="Clear">
1054                             <img src="/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"/>
1055                         </button>
1056                     </td>
1057                 </tr>
1058                 </table>
1059             </div>
1060             <div class="oe-binary-progress" style="display: none">
1061                 <img src="/web/static/src/img/throbber.gif" width="16" height="16"/>
1062                 <b>Uploading ...</b>
1063             </div>
1064             <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"> </iframe>
1065         </td>
1066     </tr>
1067     </table>
1068 </t>
1069 <t t-name="FieldBinaryFile">
1070     <table cellpadding="0" cellspacing="0" border="0" width="100%">
1071     <tr>
1072         <td width="100%">
1073             <input type="text" size="1" readonly="readonly"
1074                 t-att-name="widget.name"
1075                 t-att-id="widget.element_id + '_field'"
1076                 t-attf-class="field_#{widget.type}" style="width: 100%"
1077             />
1078         </td>
1079         <td class="oe-binary" nowrap="true">
1080             <table cellspacing="0" cellpadding="0" border="0">
1081             <tr>
1082                 <td>
1083                     <div class="oe-binary-file-set" style="width: 80px; height:22px;">
1084                         <form class="oe-binary-form" t-att-target="widget.iframe"
1085                             method="post" enctype="multipart/form-data" action="/web/binary/upload">
1086                             <input type="hidden" name="session_id" value=""/>
1087                             <input type="hidden" name="callback" t-att-value="widget.iframe"/>
1088                             <button class="button" type="button" title="Set Image">
1089                                 <img src="/web/static/src/img/icons/STOCK_DIRECTORY.png"/>
1090                                 <span>Select</span>
1091                             </button>
1092                             <input type="file" class="oe-binary-file" name="ufile"/>
1093                         </form>
1094                     </div>
1095                 </td>
1096                 <td>
1097                     <button class="button oe-binary-file-save" type="button" title="Save As">
1098                         <img src="/web/static/src/img/icons/gtk-save.png"/>
1099                         <span>Save As</span>
1100                     </button>
1101                 </td>
1102                 <td>
1103                     <button class="button oe-binary-file-clear" type="button" title="Clear">
1104                         <img src="/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"/>
1105                         <span>Clear</span>
1106                     </button>
1107                 </td>
1108             </tr>
1109             </table>
1110         </td>
1111         <td class="oe-binary-progress" style="display: none" nowrap="true">
1112             <img src="/web/static/src/img/throbber.gif" width="16" height="16"/>
1113             <b>Uploading ...</b>
1114             <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"> </iframe>
1115         </td>
1116     </tr>
1117     </table>
1118 </t>
1119 <t t-name="WidgetButton">
1120     <button type="button" class="oe_button">
1121         <img t-if="widget.node.attrs.icon" t-att-src="'/web/static/src/img/icons/' + widget.node.attrs.icon + '.png'" width="16" height="16"/>
1122         <span t-if="widget.string"><t t-esc="widget.string"/></span>
1123     </button>
1124 </t>
1125 <t t-name="WidgetButton.tooltip" t-extend="WidgetLabel.tooltip">
1126     <t t-jquery="div.oe_tooltip_string" t-operation="replace">
1127         <div class="oe_tooltip_string" t-if="debug || widget.string">
1128             <t t-if="debug">
1129                 Button
1130                 <t t-if="widget.string">: </t>
1131                 <t t-if="!widget.string"> (no string)</t>
1132             </t>
1133             <t t-esc="widget.string"/>
1134         </div>
1135     </t>
1136     <t t-jquery="ul.oe_tooltip_technical" t-operation="append">
1137         <li t-if="widget.node.attrs.special" data-item="special">
1138             <span class="oe_tooltip_technical_title">Special:</span>
1139             <t t-esc="widget.node.attrs.special"/>
1140         </li>
1141         <t t-set="button_type" t-value="widget.node.attrs.type"/>
1142         <li t-if="button_type" data-item="button_type">
1143             <span class="oe_tooltip_technical_title">Button Type:</span>
1144             <t t-esc="button_type"/>
1145         </li>
1146         <li t-if="button_type === 'object'" data-item="button_method">
1147             <span class="oe_tooltip_technical_title">Method:</span>
1148             <t t-esc="widget.node.attrs.name"/>
1149         </li>
1150         <li t-if="button_type === 'action'" data-item="button_action">
1151             <span class="oe_tooltip_technical_title">Action ID:</span>
1152             <t t-esc="widget.node.attrs.name"/>
1153         </li>
1154     </t>
1155 </t>
1156
1157 <t t-name="SearchView">
1158     <form class="oe_forms">
1159         <t t-call="SearchView.render_lines"/>
1160         <div class="oe_search-view-buttons">
1161             <button>Search</button>
1162             <button type="reset">Clear</button>
1163             <select class="oe_search-view-filters-management">
1164             </select>
1165         </div>
1166     </form>
1167 </t>
1168 <t t-name="SearchView.managed-filters">
1169     <option/>
1170     <optgroup label="-- Filters --">
1171         <t t-foreach="filters" t-as="filter">
1172             <option t-attf-value="get:#{filter_index}"><t t-esc="filter.name"/></option>
1173         </t>
1174     </optgroup>
1175     <optgroup label="-- Actions --">
1176         <option value="advanced_filter">Advanced Filter</option>
1177         <option value="save_filter">Save Filter</option>
1178         <option value="add_to_dashboard">Add to Dashboard</option>
1179         <option value="manage_filters">Manage Filters</option>
1180     </optgroup>
1181 </t>
1182 <t t-name="SearchView.managed-filters.add">
1183     <div>
1184         <p>Filter Name:</p>
1185         <input type="text"/>
1186         <p>(Any existing filter with the same name will be replaced)</p>
1187     </div>
1188 </t>
1189 <t t-name="SearchView.add_to_dashboard">
1190     <div class="oe_forms">
1191         <p><b>Select Dashboard to add this filter to:</b></p>
1192         <select style="width: 100%; margin-right: 1em;">
1193             <option t-foreach="dashboards" t-as="menu" t-att-value="menu.id" t-att-selected="(menu.id == selected_menu_id) || undefined"><t t-esc="menu.name"/></option>
1194         </select>
1195         <p><b>Title of new Dashboard item:</b></p>
1196         <input type="text" style="width: 100%; margin-right: 1em;"/>
1197     </div>
1198 </t>
1199 <t t-name="SearchView.render_lines">
1200     <table class="oe-searchview-render-line" border="0" cellspacing="0" cellpadding="0"
1201            t-foreach="lines" t-as="line">
1202         <tr>
1203             <td t-foreach="line" t-as="widget" class="oe_searchview_field">
1204                 <t t-raw="widget.render(defaults)"/>
1205             </td>
1206         </tr>
1207     </table>
1208 </t>
1209 <button t-name="SearchView.filter" type="button"
1210         t-att-id="element_id"
1211         t-att-title="attrs.help"
1212         t-att-class="classes.join(' ')"
1213         t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined">
1214     <img t-att-src="'/web/static/src/img/icons/' + (attrs.icon || 'gtk-home') + '.png'" width="16" height="16"/>
1215     <br t-if="attrs.string"/>
1216     <t t-esc="attrs.string"/>
1217 </button>
1218 <span t-name="SearchView.filters" class="filter_label_group"
1219     ><t t-foreach="filters" t-as="filter"
1220         ><t t-raw="filter.render(defaults)"/></t
1221 ></span>
1222 <t t-name="SearchView.field">
1223     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1224            t-att-title="attrs.help"
1225            t-att-for="element_id">
1226         <t t-esc="attrs.string || attrs.name"/>
1227         <span t-if="attrs.help">?</span>
1228     </label>
1229     <div>
1230         <input type="text" size="15" t-att-name="attrs.name"
1231                t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"
1232                t-att-id="element_id"
1233                t-att-value="defaults[attrs.name] || ''"/>
1234         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1235     </div>
1236 </t>
1237 <t t-name="SearchView.date">
1238     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1239            t-att-title="attrs.help"
1240            t-att-for="element_id">
1241         <t t-esc="attrs.string || attrs.name"/>
1242         <span t-if="attrs.help">?</span>
1243     </label>
1244     <div>
1245         <span t-att-id="element_id"></span>
1246         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1247     </div>
1248 </t>
1249 <t t-name="SearchView.field.selection">
1250     <label t-att-title="attrs.help"
1251            t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1252            t-att-for="element_id">
1253         <t t-esc="attrs.string || attrs.name"/>
1254         <span t-if="attrs.help">?</span>
1255     </label>
1256     <div>
1257         <select t-att-name="attrs.name" t-att-id="element_id"
1258                 t-att-autofocus="attrs.default_focus === '1' || undefined">
1259             <option t-if="prepend_empty"/>
1260             <t t-foreach="attrs.selection" t-as="option">
1261                 <t t-set="selected" t-value="defaults[attrs.name] === option[0]"/>
1262                 <option t-if="selected"
1263                         t-att-value="option_index" selected="selected">
1264                     <t t-esc="option[1]"/>
1265                 </option>
1266                 <option t-if="!selected" t-att-value="option_index">
1267                     <t t-esc="option[1]"/>
1268                 </option>
1269             </t>
1270         </select>
1271         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1272     </div>
1273 </t>
1274 <t t-name="SearchView.util.expand">
1275     <div t-att-class="'searchview_group ' + (expand == '0' ? 'folded' : 'expanded')"
1276          t-att-id="element_id">
1277         <a t-if="label" class="searchview_group_string" href="#">
1278             <t t-esc="label"/>
1279         </a>
1280         <div class="searchview_group_content">
1281             <t t-raw="content"/>
1282         </div>
1283     </div>
1284 </t>
1285 <t t-name="SearchView.group">
1286     <t t-call="SearchView.util.expand">
1287         <t t-set="expand" t-value="attrs.expand"/>
1288         <t t-set="label" t-value="attrs.string"/>
1289         <t t-set="content">
1290             <t t-call="SearchView.render_lines"/>
1291         </t>
1292     </t>
1293 </t>
1294 <t t-name="SearchView.extended_search">
1295     <t t-call="SearchView.util.expand">
1296         <t t-set="expand" t-value="false"/>
1297         <t t-set="label" t-value="'Advanced Filters'"/>
1298         <t t-set="content">
1299             <div class="searchview_extended_groups_list">
1300             </div>
1301         </t>
1302     </t>
1303 </t>
1304 <t t-name="SearchView.extended_search.group">
1305     <div t-att-id="element_id" class="searchview_extended_group">
1306         <select class="searchview_extended_group_choice">
1307             <option value="any">Any of the following conditions must match</option>
1308             <option value="all">All the following conditions must match</option>
1309             <option value="none">None of the following conditions must match</option>
1310         </select>
1311         <a class="searchview_extended_delete_group"
1312                 href="javascript:void(0)"><span></span></a>
1313         <div class="searchview_extended_propositions_list">
1314         </div>
1315         <a class="searchview_extended_add_proposition" href="javascript:void(0)">
1316             <span>Add condition</span></a>
1317         <div class="oe_adv_filters_and"><span>and</span></div>
1318     </div>
1319 </t>
1320 <t t-name="SearchView.extended_search.proposition">
1321     <div t-att-id="element_id">
1322         <select class="searchview_extended_prop_field">
1323             <t t-foreach="attrs.fields" t-as="field">
1324                 <option t-if="typeof field.store === 'undefined' || field.store || field.fnct_search"
1325                         t-att="{'selected': field === attrs.selected ? 'selected' : null}"
1326                         t-att-value="field.name">
1327                     <t t-esc="field.string"/>
1328                 </option>
1329             </t>
1330         </select>
1331         <select class="searchview_extended_prop_op"/>
1332         <span class="searchview_extended_prop_value"/>
1333         <a class="searchview_extended_delete_prop"
1334                 href="javascript:void(0)"><span> </span></a>
1335     </div>
1336 </t>
1337 <t t-name="SearchView.extended_search.proposition.char">
1338     <input t-att-id="element_id" class="field_char"/>
1339 </t>
1340 <t t-name="SearchView.extended_search.proposition.empty">
1341     <span t-att-id="element_id"></span>
1342 </t>
1343 <t t-name="SearchView.extended_search.proposition.integer">
1344     <input type="number" t-att-id="element_id" class="field_integer" step="1"/>
1345 </t>
1346 <t t-name="SearchView.extended_search.proposition.float">
1347     <input type="number" t-att-id="element_id" class="field_float" step="0.01"/>
1348 </t>
1349 <t t-name="SearchView.extended_search.proposition.boolean">
1350 </t>
1351 <t t-name="SearchView.extended_search.proposition.selection">
1352     <select t-att-id="element_id">
1353         <t t-foreach="field.selection" t-as="element">
1354         <option t-att-value="element[0]"><t t-esc="element[1]"/></option>
1355         </t>
1356     </select>
1357 </t>
1358 <t t-name="DialogWarning">
1359     <table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
1360     <tr>
1361         <td><img src="/web/static/src/img/warning.png" class="oe-dialog-icon"/></td>
1362         <td>
1363             <p>
1364                 <t t-js="d">
1365                     var message = d.message ? d.message : d.error.data.fault_code;
1366                     d.html_error = context.engine.tools.html_escape(message)
1367                         .replace(/\n/g, '<br/>');
1368                 </t>
1369                 <t t-raw="html_error"/>
1370             </p>
1371         </td>
1372     </tr>
1373     </table>
1374 </t>
1375 <t t-name="DialogTraceback">
1376     <pre><t t-esc="error.message"/></pre>
1377     <hr/>
1378     <pre><t t-esc="error.data.debug"/></pre>
1379 </t>
1380 <t t-name="SelectCreatePopup">
1381     <div t-att-id="element_id">
1382         <table style="width:100%">
1383             <tr style="width:100%">
1384                 <td style="width:100%">
1385                     <div t-att-id="element_id + '_search'" style="width:100%"></div>
1386                 </td>
1387             </tr>
1388             <tr style="width:100%">
1389                 <td style="width:100%">
1390                     <div t-att-id="element_id + '_view_list'" style="width:100%"></div>
1391                 </td>
1392             </tr>
1393         </table>
1394         <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
1395     </div>
1396 </t>
1397 <t t-name="SelectCreatePopup.search.buttons">
1398     <button type="button" class="oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
1399     <button type="button" class="oe_selectcreatepopup-search-close">Cancel</button>
1400 </t>
1401 <t t-name="SelectCreatePopup.form.buttons">
1402     <t t-if="widget.options.disable_multiple_selection">
1403         <button type="button" class="oe_selectcreatepopup-form-save">Save</button>
1404     </t>
1405     <t t-if="! widget.options.disable_multiple_selection">
1406         <button type="button" class="oe_selectcreatepopup-form-save-new">Save &amp; New</button>
1407         <button type="button" class="oe_selectcreatepopup-form-save">Save &amp; Close</button>
1408     </t>
1409     <button type="button" class="oe_selectcreatepopup-form-close">Cancel</button>
1410 </t>
1411 <t t-name="FormOpenPopup">
1412     <div t-att-id="element_id">
1413         <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
1414     </div>
1415 </t>
1416 <t t-name="FormOpenPopup.form.buttons">
1417     <button type="button" class="oe_formopenpopup-form-save">Save</button>
1418     <button type="button" class="oe_formopenpopup-form-close">Cancel</button>
1419 </t>
1420 <t t-extend="ListView.row">
1421     <!-- adds front & back padding to row being rendered after edition, if
1422          necessary (if not selectable add front padding and if not deletable
1423          add back padding), otherwise the row being added is missing columns
1424      -->
1425     <t t-jquery="&gt; :first" t-operation="before">
1426         <td t-if="edited and !options.selectable" class="oe-listview-padding"/>
1427         <td t-if="edited and !options.isClarkGable" class="oe-listview-padding"/>
1428     </t>
1429     <t t-jquery="&gt; :last" t-operation="after">
1430         <td t-if="edited and !options.deletable" class="oe-listview-padding"/>
1431     </t>
1432 </t>
1433 <t t-name="ListView.row.frame" t-extend="WidgetFrame">
1434     <t t-jquery="tr">
1435         $(document.createElement('t'))
1436             .append(this.contents())
1437             .attr({
1438                 't-foreach': this.attr('t-foreach'),
1439                 't-as': this.attr('t-as')
1440             })
1441             .replaceAll(this)
1442             .after($(document.createElement('td')).append(
1443                 $(document.createElement('button')).attr({
1444                     'class': 'oe-edit-row-save', 'type': 'button'})
1445                   .html(' ')))
1446             .unwrap();
1447     </t>
1448 </t>
1449 <t t-name="view_editor">
1450     <table class="oe_view_editor">
1451         <t t-call="view_editor.row"/>
1452     </table>
1453 </t>
1454 <t t-name="view_editor.row">
1455     <tr  class="oe_view_editor_row" t-att-id="'viewedit-' + rec.id"  t-att-level="rec.level" t-foreach="data" t-as="rec">
1456         <td class="oe_view_editor_colum"  width="85%">
1457             <table class="oe_view_editor_tree_grid">
1458                 <tr>
1459                     <td width="16px" t-att-style="'background-position: ' + 20*rec.level + 'px; padding-left: ' + 20*rec.level + 'px'">
1460                         <img t-if="rec.child_id.length" t-att-id="'parentimg-' + rec.id"
1461                             src="/web/static/src/img/collapse.gif" width="16" height="16" border="0"/>
1462                     </td>
1463                     <td style="cursor: pointer;">
1464                         <a style="text-decoration:none" href="javascript:void(0);">
1465                             <t t-esc="rec.name"/>
1466                         </a>
1467                     </td>
1468                 </tr>
1469             </table>
1470         </td>
1471         <td align="left" class="oe_view_editor_colum"  width="15%">
1472             <table width="100%">
1473                 <tr>
1474                     <td width="20%">
1475                         <img t-if="rec.att_list.length"
1476                             id="side-add" src="/web/static/src/img/icons/gtk-add.png" style="cursor: pointer;"/>
1477                     </td>
1478                     <td width="20%">
1479                         <img  id="side-remove" src="/web/static/src/img/icons/gtk-remove.png" style="cursor: pointer;"/>
1480                     </td>
1481                     <td width="20%">
1482                         <img t-if="rec.att_list.length and !_.include(no_properties, rec.att_list[0])"
1483                             id="side-edit" src="/web/static/src/img/icons/gtk-edit.png" style="cursor: pointer;"/>
1484                     </td>
1485                     <td width="20%">
1486                         <img t-if="rec.att_list.length"
1487                             id="side-up" src="/web/static/src/img/icons/gtk-go-up.png" style="cursor: pointer;"/>
1488                     </td>
1489                     <td width="20%">
1490                         <img t-if="rec.att_list.length"
1491                             id="side-down" src="/web/static/src/img/icons/gtk-go-down.png" style="cursor: pointer;"/>
1492                     </td>
1493                 </tr>
1494             </table>
1495         </td>
1496         <t t-if="rec.child_id.length">
1497             <t t-set="data" t-value="rec.child_id"/>
1498             <t t-call="view_editor.row"/>
1499         </t>
1500     </tr>
1501 </t>
1502 <t t-name="vieweditor_char">
1503     <input type="text" t-att-id="widget.name" class="field_char" size="50"/>
1504 </t>
1505 <t t-name="vieweditor_selection">
1506     <select t-att-id="widget.name" >
1507         <t t-if="widget.selection" t-foreach="widget.selection" t-as="option">
1508             <option
1509                 t-att-value="typeof option === 'object' ? option[0] : option">
1510                 <t t-esc="typeof option === 'object' ? option[1] : option"/>
1511             </option>
1512         </t>
1513     </select>
1514 </t>
1515 <t t-name="vieweditor_boolean">
1516     <input type="checkbox" t-att-id="widget.name"/>
1517 </t>
1518 <t t-name="ExportView">
1519     <a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
1520 </t>
1521 <table t-name="ExportTreeView" class="oe-export"
1522        style="background-color: #F3F3F3;">
1523     <tr>
1524         <td colspan="3">
1525             This wizard will export all data that matches the current search criteria to a CSV file.
1526             You can export all data or only the fields that can be reimported after modification.
1527         </td>
1528     </tr>
1529     <tr>
1530         <td colspan="3">
1531             <label for="import_compat">Export Type:</label>
1532             <select id="import_compat" name="import_compat">
1533                 <option value="yes">Import Compatible Export</option>
1534                 <option value="">Export all Data</option>
1535             </select>
1536
1537             <label for="export_format">Export Formats</label>
1538             <select id="export_format" name="export_format"></select>
1539         </td>
1540     </tr>
1541
1542     <tr>
1543         <th>Available fields</th>
1544         <th/>
1545         <th>
1546             Fields to export
1547             <a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
1548             <div id="savenewlist"></div>
1549             <div id="ExistsExportList"></div>
1550         </th>
1551     </tr>
1552     <tr style="height: 400px;">
1553         <td class="oe_export_fields_selector_left">
1554             <div id="left_field_panel">
1555             </div>
1556         </td>
1557         <td class="oe_export_fields_selector_center">
1558             <button id="add_field">Add</button>
1559             <button id="remove_field">Remove</button>
1560             <button id="remove_all_field">Remove All</button>
1561         </td>
1562         <td class="oe_export_fields_selector_right">
1563             <select name="fields_list" id="fields_list"
1564                     multiple="multiple"></select>
1565         </td>
1566     </tr>
1567 </table>
1568
1569 <table t-name="ExportTreeView-Secondary"
1570        id="field-tree-structure" class="oe_export_fields_selector_export"
1571        cellspacing="0" cellpadding="0">
1572     <tr><th class="oe_export_tree_header"> Name </th></tr>
1573     <t t-call="ExportTreeView-Secondary.children"/>
1574 </table>
1575 <tr t-name="ExportTreeView-Secondary.children"
1576     t-foreach="fields" t-as="field"
1577     t-att-id="'treerow-' + field.id" class="oe_export_row">
1578     <td>
1579         <table class="tree_grid" border="0">
1580             <tr class="oe_export_row">
1581                 <t t-foreach="(field.id).split('/')" t-as="level" >
1582                     <t t-if="(field.id).split('/')[0] != level">
1583                         <td width="18">&amp;nbsp;</td>
1584                     </t>
1585                 </t>
1586                 <td valign="top" align="left" style="cursor: pointer;" width="18">
1587                     <t t-if="field.children">
1588                         <t t-if="(field.id).split('/').length != 3">
1589                             <img t-att-id="'parentimg-' + field.id" src="/web/static/src/img/expand.gif" width="16" height="16" border="0"/>
1590                         </t>
1591                     </t>
1592                 </td>
1593                 <td id="tree-column" valign="middle" align="left" style="cursor: pointer;">
1594                     <a t-att-id="'export-' + field.id"  t-att-string="field.string" href="javascript: void(0);" style="text-decoration: none;">
1595                         <t t-esc="field.string"/>
1596                     </a>
1597                 </td>
1598             </tr>
1599         </table>
1600     </td>
1601 </tr>
1602
1603 <t t-name="ExportNewList">
1604     <tr>
1605         <th><label>Save as:</label></th>
1606         <td><input size="10" type="text" id="savelist_name"/></td>
1607         <td><button class="oe_export_button_export" id="add_export_list">Ok</button></td>
1608     </tr>
1609 </t>
1610
1611 <t t-name="Exists.ExportList">
1612     <label for="saved_export_list">Saved exports:</label>
1613
1614     <select id="saved_export_list">
1615         <option></option>
1616         <t t-foreach="existing_exports" t-as="export">
1617             <option t-att-value="export.id"><t t-esc="export.name"/></option>
1618         </t>
1619     </select>
1620     <button class="oe_export_button_export" id="delete_export_list" type="button">Delete</button>
1621 </t>
1622 <t t-name="Change_Pwd">
1623     <form name="change_password_form" class="oe_forms" method="POST">
1624         <table align="center">
1625             <tr>
1626                 <td><label for="old_pwd">Old Password:</label></td>
1627                 <td><input type="password" name="old_pwd"
1628                            minlength="1" autofocus="autofocus"/></td>
1629             </tr>
1630             <tr>
1631             <td><label for="new_password">New Password:</label></td>
1632             <td><input type="password" name="new_password"
1633                        minlength="1" autofocus="autofocus"/></td>
1634             </tr>
1635             <tr>
1636                 <td><label for="confirm_pwd">Confirm Password:</label></td>
1637                 <td><input type="password" name="confirm_pwd"
1638                              minlength="1"/></td>
1639             </tr>
1640             <tr>
1641                 <td colspan="2" align="right"><button>Change Password</button></td>
1642             </tr>
1643         </table>
1644     </form>
1645 </t>
1646
1647 <t t-name="ImportView">
1648     <a id="importview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Import</a>
1649 </t>
1650 <t t-name="ImportDataView">
1651 <form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data"
1652         class="oe-import oe-import-no-result">
1653     <input type="hidden" name="session_id" t-att-value="session.session_id"/>
1654     <h2 class="separator horizontal">1. Import a .CSV file</h2>
1655     <p>Select a .CSV file to import. If you need a sample of file to import,
1656        you should use the export tool with the "Import Compatible" option.
1657     </p>
1658     <p>
1659         <label for="csvfile">CSV File:</label>
1660         <input type="file" id="csvfile" size="50" name="csvfile"/>
1661     </p>
1662     <h2 class="separator horizontal oe-import-result">2. Check your file format</h2>
1663     <div id="result" class="oe-import-result"></div>
1664     <fieldset class="oe-closed oe-import-result">
1665         <legend>Import Options</legend>
1666         <table>
1667             <tr>
1668                 <td colspan="4">
1669                     <label for="file_has_headers">Does your file have titles?</label>
1670                     <input type="checkbox" checked="checked"
1671                            id="file_has_headers"/>
1672                 </td>
1673             </tr>
1674             <tr>
1675                 <td><label for="csv_separator">Separator:</label></td>
1676                 <td><input type="text" name="csvsep" id="csv_separator" value=","/></td>
1677                 <td><label for="csv_delimiter">Delimiter:</label></td>
1678                 <td><input type="text" name="csvdel" id="csv_delimiter" value='"'/></td>
1679             </tr>
1680             <tr>
1681                 <td><label for="csv_encoding">Encoding:</label></td>
1682                 <td>
1683                     <select name="csvcode" id="csv_encoding">
1684                         <option value="utf-8">UTF-8</option>
1685                         <option value="latin1">Latin 1</option>
1686                     </select>
1687                 </td>
1688                 <td><label for="csv_skip" title="For use if CSV files have titles on multiple lines, skips more than a single line during import">
1689                     Lines to skip<sup>?</sup>:</label></td>
1690                 <td><input type="number" id="csv_skip" value="0" min="0"/></td>
1691             </tr>
1692         </table>
1693     </fieldset>
1694 </form>
1695 </t>
1696 <t t-name="ImportView.result">
1697     <table class="oe_import_grid" width="100%" style="margin: 5px 0;">
1698         <tr t-if="headers" class="oe_import_grid-header">
1699             <td t-foreach="headers" t-as="header" class="oe_import_grid-cell">
1700                 <t t-esc="header"/></td>
1701         </tr>
1702         <tr>
1703             <td t-foreach="records[0]" t-as="column">
1704                 <input class="sel_fields" placeholder="--- Don't Import ---"/><span class="oe-m2o-drop-down-button">
1705                         <img src="/web/static/src/img/down-arrow.png" /></span>
1706             </td>
1707         </tr>
1708         <tr t-foreach="records" t-as="record" class="oe_import_grid-row">
1709             <td t-foreach="record" t-as="cell" class="oe_import_grid-cell">
1710                 <t t-esc="cell"/></td>
1711         </tr>
1712     </table>
1713 </t>
1714 <t t-name="ImportView.error">
1715     <p style="white-space:pre;">The import failed due to:<t t-esc="error.message"/></p>
1716     <t t-if="error.preview">
1717         <p>Here is a preview of the file we could not import:</p>
1718         <pre><t t-esc="error.preview"/></pre>
1719     </t>
1720 </t>
1721
1722 <t t-name="About-Page">
1723     <div>
1724         <h1>OpenERP Web</h1>
1725         <h3 style="padding:0 5px 5px">Version <t t-esc="version_info.version"/></h3>
1726         <p>
1727             Copyright © 2011-TODAY OpenERP SA. All Rights Reserved.<br />
1728             OpenERP is a trademark of the <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP SA Company</a>.
1729         </p>
1730         <p>
1731             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>
1732         </p>
1733         <br />
1734         <h1>About OpenERP</h1>
1735         <p>
1736             <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP</a> is a free enterprise-scale software system that is designed to boost
1737             productivity and profit through data integration. It connects, improves and
1738             manages business processes in areas such as sales, finance, supply chain,
1739             project management, production, services, CRM, etc...
1740         </p>
1741         <p>
1742             The system is platform-independent, and can be installed on Windows, Mac OS X,
1743             and various Linux and other Unix-based distributions. Its architecture enables
1744             new functionality to be rapidly created, modifications to be made to a
1745             production system and migration to a new version to be straightforward.
1746         </p>
1747         <p>
1748             Depending on your needs, OpenERP is available through a web or application client.
1749         </p>
1750     </div>
1751 </t>
1752 <t t-name="FieldStatus.content">
1753     <ul class="oe-arrow-list">
1754         <t t-set="size" t-value="widget.to_show.length"/>
1755         <t t-foreach="_.range(size)" t-as="i">
1756             <li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe-arrow-list-selected' : ''">
1757                 <span class="oe-arrow-list-before" t-if="i &gt; 0"></span><span><t t-esc="widget.to_show[i][1]"/></span><span class="oe-arrow-list-after" t-if="i &lt; size - 1"></span>
1758             </li>
1759         </t>
1760     </ul>
1761 </t>
1762 <t t-name="EmptyComponent">
1763     <div></div>
1764 </t>
1765 </templates>