[MERGE] forward port of branch 8.0 up to e883193
[odoo/odoo.git] / addons / website / views / website_templates.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- vim:fdn=3:
3 -->
4 <openerp>
5     <data>
6
7 <!-- Layout and generic templates -->
8
9 <template id="website.assets_frontend" name="Website assets">
10     <t t-call="website.theme"/>
11
12     <script type="text/javascript" src="/web/static/src/js/watch.js"></script>
13
14     <script type="text/javascript" src="/website/static/src/js/website.js"></script>
15
16     <script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script>
17     <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
18     
19 </template>
20
21 <template id="assets_backend" name="website assets for backend" inherit_id="web.assets_backend">
22     <xpath expr="." position="inside">
23         <link rel="stylesheet" href="/website/static/src/css/website.backend.css"/>
24
25         <script type="text/javascript" src="/website/static/src/js/website.backend.js"></script>
26     </xpath>
27 </template>
28
29 <template id="website.submenu" name="Submenu">
30     <li t-if="not submenu.child_id" t-att-class="
31         ((submenu.url != '/' and request.httprequest.path.startswith(submenu.url)) or
32          request.httprequest.path == submenu.url) and 'active'
33         ">
34         <a t-att-href="(website.menu_id.child_id[0] == submenu) and '/' or submenu.url" t-ignore="true" t-att-target="'blank' if submenu.new_window else None">
35             <span t-field="submenu.name"/>
36         </a>
37     </li>
38     <li t-if="submenu.child_id" t-attf-class="dropdown #{
39         ((submenu.url != '/' and [1 for submenu in submenu.child_id if request.httprequest.path.startswith(submenu.url)]) or
40          request.httprequest.path == submenu.url) and 'active'
41         }">
42         <a class="dropdown-toggle" data-toggle="dropdown" href="#">
43             <span t-field="submenu.name"/> <span class="caret" t-ignore="true"></span>
44         </a>
45         <ul class="dropdown-menu" role="menu">
46             <t t-foreach="submenu.child_id" t-as="submenu">
47                 <t t-call="website.submenu"/>
48             </t>
49         </ul>
50     </li>
51 </template>
52
53 <template id="layout" name="Main layout">&lt;!DOCTYPE html&gt;
54     <html t-att-lang="lang and lang.replace('_', '-')"
55           t-att-data-website-id="website.id if editable and website else None"
56           t-att-data-editable="'1' if editable else None"
57           t-att-data-translatable="'1' if translatable else None"
58           t-att-data-view-xmlid="xmlid if editable else None"
59           t-att-data-main-object="repr(main_object) if editable else None"
60           t-att-data-oe-company-name="res_company.name">
61         <head>
62             <meta charset="utf-8" />
63             <t t-if="main_object and 'website_meta_title' in main_object">
64                 <t t-set="title" t-value="main_object.website_meta_title"/>
65             </t>
66             <t t-if="not title and main_object and 'name' in main_object">
67                 <t t-set="additional_title" t-value="main_object.name"/>
68             </t>
69             <t t-if="not title">
70                 <t t-set="title"><t t-if="additional_title"><t t-raw="additional_title"/> | </t><t t-esc="(website or res_company).name"/></t>
71             </t>
72             <meta name="viewport" content="initial-scale=1"/>
73             <meta name="description" t-att-content="main_object and 'website_meta_description' in main_object
74                 and main_object.website_meta_description or website_meta_description"/>
75             <meta name="keywords" t-att-content="main_object and 'website_meta_keywords' in main_object
76                 and main_object.website_meta_keywords or website_meta_keywords"/>
77             <title><t t-esc="title"/></title>
78
79             <t t-set="languages" t-value="website.get_languages() if website else None"/>
80             <t t-if="request and request.website_multilang and website">
81                 <t t-foreach="website.get_alternate_languages(request.httprequest)" t-as="lang">
82                     <link rel="alternate" t-att-hreflang="lang['hreflang']" t-att-href="lang['href']"/>
83                 </t>
84             </t>
85
86             <t t-call-assets="web.assets_common" t-js="false"/>
87             <t t-call-assets="website.assets_frontend" t-js="false"/>
88
89             <t t-raw="head or ''" name='layout_head'/>
90             <t t-if="website and website.google_analytics_key">
91                 <script>
92                     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
93                     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
94                     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
95                     })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
96
97                     ga('create', _.str.trim('<t t-esc="website.google_analytics_key"/>'), 'auto');
98                     ga('send','pageview');
99                 </script>
100             </t>
101         </head>
102         <body>
103             <div id="wrapwrap">
104                 <header>
105                     <div class="navbar navbar-default navbar-static-top">
106                         <div class="container">
107                             <div class="navbar-header">
108                                 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
109                                     <span class="sr-only">Toggle navigation</span>
110                                     <span class="icon-bar"></span>
111                                     <span class="icon-bar"></span>
112                                     <span class="icon-bar"></span>
113                                 </button>
114                                 <a class="navbar-brand" href="/">YourCompany</a>
115                             </div>
116                             <div class="collapse navbar-collapse navbar-top-collapse">
117                                 <ul class="nav navbar-nav navbar-right" id="top_menu">
118                                     <t t-foreach="website.menu_id.child_id" t-as="submenu">
119                                         <t t-call="website.submenu"/>
120                                     </t>
121                                     <li class="divider" t-ignore="true" t-if="website.user_id != user_id"/>
122                                     <li class="dropdown" t-ignore="true" t-if="website.user_id != user_id">
123                                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">
124                                             <b>
125                                                 <span t-esc="(len(user_id.name)&gt;25) and (user_id.name[:23]+'...') or user_id.name"/>
126                                                 <span class="caret"></span>
127                                             </b>
128                                         </a>
129                                         <ul class="dropdown-menu js_usermenu" role="menu">
130                                             <li><a href="/web" role="menuitem">My Account</a></li>
131                                             <li class="divider"/>
132                                             <li><a t-attf-href="/web/session/logout?redirect=/" role="menuitem">Logout</a></li>
133                                         </ul>
134                                     </li>
135                                 </ul>
136                             </div>
137                         </div>
138                     </div>
139                 </header>
140                 <main>
141                     <t t-raw="0"/>
142                 </main>
143                 <footer>
144                     <div id="footer_container">
145                     </div>
146                 </footer>
147             </div>
148
149             <t t-call-assets="web.assets_common" t-css="false"/>
150             <t t-call-assets="website.assets_frontend" t-css="false"/>
151         </body>
152     </html>
153 </template>
154
155 <template id="layout_footer_copyright" inherit_id="website.layout" name="Footer Copyright">
156     <xpath expr="//footer" position="inside">
157         <div class="container mt16 mb8">
158             <div class="pull-right" t-ignore="true" t-if="not editable">
159                 Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with
160                 <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>
161             </div>
162             <div class="pull-left text-muted">
163                 Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
164             </div>
165         </div>
166     </xpath>
167 </template>
168
169 <template id="layout_logo_show" inherit_id="website.layout" customize_show="True" name="Show Logo">
170     <xpath expr="//header//a[@class='navbar-brand']" position="replace">
171         <a href="/" class="navbar-brand logo">
172             <img src="/logo.png"/>
173         </a>
174     </xpath>
175 </template>
176
177 <template id="editor_head" inherit_id="website.layout" name="Editor" groups="base.group_website_publisher,base.group_website_designer">
178     <xpath expr='//t[@t-call-assets="website.assets_frontend"][@t-js]' position="after">
179         <t t-call-assets="website.assets_editor" t-js="false"/>
180     </xpath>
181     <xpath expr='//t[@t-call-assets="website.assets_frontend"][@t-css]' position="after">
182         <t t-call-assets="website.assets_editor" t-css="false"/>
183     </xpath>
184 </template>
185
186 <template id="assets_editor" name="Editor assets">
187     <script type="text/javascript">
188         var CKEDITOR_BASEPATH = '/web/static/lib/ckeditor/';
189     </script>
190     <link rel='stylesheet' href='/website/static/src/css/snippets.css'/>
191     <link rel='stylesheet' href='/website/static/src/css/editor.css'/>
192     <link rel='stylesheet' href="/web/static/lib/jquery.ui/css/smoothness/jquery-ui-1.9.1.custom.css"/>
193     <link rel="stylesheet" href="/web/static/lib/select2/select2.css"/>
194     <link rel="stylesheet" href="/website/static/lib/select2-bootstrap-css/select2-bootstrap.css"/>
195
196     <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
197     <script type="text/javascript" src="/web/static/lib/ckeditor/ckeditor.js"></script>
198     <script type="text/javascript" src="/website/static/lib/ace/ace.js"></script>
199     <script type="text/javascript" src="/website/static/lib/ace/theme-monokai.js"></script>
200     <script type="text/javascript" src="/website/static/lib/ace/mode-xml.js"></script>
201     <script type="text/javascript" src="/website/static/lib/vkbeautify/vkbeautify.0.99.00.beta.js"></script>
202     <script type="text/javascript" src="/website/static/lib/jQuery.transfo.js"></script>
203     <t t-call="web.jqueryui_conflict">
204         <script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js"></script>
205     </t>
206
207     <!-- mutation observers shim backed by mutation events (8 < IE < 11, Safari < 6, FF < 14, Chrome < 17) -->
208     <script type="text/javascript" src="/website/static/lib//jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js"></script>
209     <script type="text/javascript" src="/website/static/lib/MutationObservers/test/sidetable.js"></script>
210     <script type="text/javascript" src='/website/static/lib/nearest/jquery.nearest.js'></script>
211     <script type="text/javascript" src="/website/static/lib/MutationObservers/MutationObserver.js"></script>
212
213     <script type="text/javascript" src="/website/static/src/js/website.editor.js"></script>
214     <script type="text/javascript" src="/website/static/src/js/website.contentMenu.js"></script> <!-- groups="base.group_website_designer" -->
215     <script type="text/javascript" src="/website/static/src/js/website.mobile.js"></script>
216     <script type="text/javascript" src="/website/static/src/js/website.seo.js"></script>
217     <script type="text/javascript" src="/website/static/src/js/website.tour.js"></script>
218     <script type="text/javascript" src="/website/static/src/js/website.tour.banner.js"></script> <!-- groups="base.group_website_designer" -->
219     <script type="text/javascript" src="/website/static/src/js/website.snippets.editor.js"></script>
220     <script type="text/javascript" src="/website/static/src/js/website.snippets.gallery.js" />
221     <script type="text/javascript" src="/website/static/src/js/website.ace.js"></script>
222     <script type="text/javascript" src="/website/static/src/js/website.translator.js"></script>
223     <script type="text/javascript" src="/website/static/src/js/website.theme.js"></script>
224
225 </template>
226
227 <template id="login_layout" inherit_id="web.login_layout" name="Website Login Layout">
228     <xpath expr="t" position="replace">
229         <t t-call="website.layout">
230             <div class="oe_website_login_container" t-raw="0"/>
231         </t>
232     </xpath>
233 </template>
234
235 <template id="show_sign_in" customize_show="True" inherit_id="website.layout" name="Show Sign In" groups="base.group_public">
236     <xpath expr="//ul[@id='top_menu']" position="inside">
237         <li class="divider"/>
238         <li>
239             <a t-attf-href="/web/login">
240                 <b>Sign in</b>
241             </a>
242         </li>
243     </xpath>
244 </template>
245
246 <template id="footer_custom" inherit_id="website.layout" name="Footer">
247     <xpath expr="//div[@id='footer_container']" position="replace">
248         <div class="oe_structure" id="footer">
249             <section class="mt16 mb16">
250                 <div class="container">
251                     <div class="row">
252                         <div class="col-md-4">
253                             <h4 class="mt16">Subtitle</h4>
254                             <p>
255                                 <a href="/">Homepage</a>
256                             </p>
257                         </div>
258                         <div class="col-md-4">
259                             <h4 class="mt16">Subtitle 2</h4>
260                             <p>
261                                 ...
262                             </p>
263                         </div>
264                         <div class="col-md-4">
265                             <h4 class="mt16">Subtitle 3</h4>
266                             <p>
267                                 ...
268                             </p>
269                         </div>
270                     </div>
271                 </div>
272             </section>
273         </div>
274     </xpath>
275 </template>
276
277 <template id="footer_default" inherit_id="website.footer_custom" customize_show="True" name="Automatic Footer">
278     <xpath expr="//div[@id='footer']" position="replace">
279         <div class="container hidden-print">
280             <div class="row">
281                 <div class="col-md-3">
282                     <h4>Our products &amp; Services</h4>
283                     <ul class="list-unstyled" id="products">
284                         <li><a href="/">Home</a></li>
285                     </ul>
286                 </div>
287                 <div class="col-md-3" id="info">
288                     <h4>Connect with us</h4>
289                     <ul class="list-unstyled">
290                         <li><a href="/page/website.contactus">Contact us</a></li>
291                     </ul>
292                     <ul class="list-unstyled">
293                         <li t-ignore="true"><i class="fa fa-phone"></i> <span t-field="res_company.phone"></span></li>
294                         <li t-ignore="true"><i class="fa fa-envelope"></i>  <span t-field="res_company.email"></span></li>
295                     </ul>
296                     <h2>
297                         <a t-att-href="website.social_facebook" t-if="website.social_facebook"><i class="fa fa-facebook-square"/></a>
298                         <a t-att-href="website.social_twitter" t-if="website.social_twitter"><i class="fa fa-twitter"/></a>
299                         <a t-att-href="website.social_linkedin" t-if="website.social_linkedin"><i class="fa fa-linkedin"/></a>
300                         <a t-att-href="website.social_youtube" t-if="website.social_youtube"><i class="fa fa-youtube-play"/></a>
301                         <a t-att-href="website.social_googleplus" t-if="website.social_googleplus"><i class="fa fa-google-plus-square"/></a>
302                         <a t-att-href="website.social_github" t-if="website.social_github"><i class="fa fa-github"/></a>
303                     </h2>
304                 </div>
305                 <div class="col-md-5 col-lg-offset-1">
306                     <div>
307                         <h4>
308                             <span t-field="res_company.name" />
309                             <small> - <a href="/page/website.aboutus">About us</a></small>
310                         </h4>
311                         <p>
312                             We are a team of passionate people whose goal is to improve everyone's
313                             life through disruptive products. We build great products to solve your
314                             business problems.
315                         </p>
316                         <p>
317                             Our products are designed for small to medium size companies willing to optimize
318                             their performance.
319                         </p>
320                     </div>
321                     <ul class="list-inline js_language_selector mt16" t-if="(request.website_multilang and len(languages) &gt; 1) or editable">
322                         <li t-foreach="languages" t-as="lg">
323                             <a t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang=lg[0])"
324                              t-att-data-default-lang="editable and 'true' if lg[0] == website.default_lang_code else None">
325                              <t t-esc="lg[1].split('/').pop()"/></a>
326                         </li>
327                         <li groups="base.group_website_publisher">
328                             <t t-set="url_return" t-value="url_for('', '[lang]') + '?' + keep_query()"/>
329                             <a t-attf-href="/web#action=base.action_view_base_language_install&amp;website_id=#{website.id}&amp;url_return=#{url_return}">
330                             <i class="fa fa-plus-circle"/>
331                             Add a language...
332                             </a>
333                         </li>
334                     </ul>
335                 </div>
336             </div>
337         </div>
338     </xpath>
339 </template>
340
341 <template id="publish_management">
342     <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
343         <div t-attf-class="btn-group js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
344             <button class="btn btn-danger js_publish_btn">Not Published</button>
345             <button class="btn btn-success js_publish_btn">Published</button>
346             <button type="button" t-attf-class="btn btn-default dropdown-toggle" t-att-id="'dopprod-%s' % object.id" data-toggle="dropdown">
347                 <span class="caret"></span>
348             </button>
349             <ul class="dropdown-menu" role="menu" t-att-aria-labelledby="'dopprod-%s' % object.id">
350                 <li>
351                     <a href="#" class="js_publish_btn">
352                         <span class="css_unpublish">Unpublish</span>
353                         <span class="css_publish">Publish</span>
354                     </a>
355                 </li>
356                 <t t-raw="0"/>
357                 <li t-if="publish_edit">
358                     <a t-attf-href="/web#return_label=Website&amp;view_type=form&amp;model=#{object._name}&amp;id=#{object.id}&amp;action=#{action}"
359                     title='Edit in backend'>Edit</a>
360                 </li>
361             </ul>
362         </div>
363     </div>
364 </template>
365
366 <template id="publish_short">
367     <t groups="base.group_website_publisher" t-ignore="true">
368         <div t-attf-class="btn-group pull-right js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
369             <button t-attf-class="btn btn-sm btn-#{object.website_published and 'success' or 'danger'} js_publish_btn">
370                 <span class="css_publish">Not Published</span>
371                 <span class="css_unpublish">Published</span>
372             </button>
373         </div>
374     </t>
375 </template>
376
377 <template id="pager" name="Pager">
378     <ul t-if="pager['page_count'] > 1" t-attf-class="#{ classname or '' } pagination" t-att-style="style or ''">
379         <li t-att-class=" 'disabled' if pager['page']['num'] == 1 else '' ">
380             <a t-att-href=" pager['page_previous']['url'] if pager['page']['num'] != 1 else ''">Prev</a>
381         </li>
382         <t t-foreach="pager['pages']" t-as="page">
383             <li t-att-class=" 'active' if page['num'] == pager['page']['num'] else '' "> <a t-att-href="page['url']" t-raw="page['num']"></a></li>
384         </t>
385         <li t-att-class=" 'disabled' if pager['page']['num'] == pager['page_count'] else '' ">
386             <a t-att-href="pager['page_next']['url'] if pager['page']['num'] != pager['page_count'] else ''">Next</a>
387         </li>
388     </ul>
389 </template>
390
391 <template id="kanban">
392     <t t-set="step"><t t-esc="step or 0"/></t>
393     <t t-set="scope"><t t-esc="scope or 0"/></t>
394     <t t-set="orderby"><t t-esc="orderby or 'name'"/></t>
395     <t t-raw="website.kanban(model, domain, column, template, step=step, scope=scope, orderby=orderby)"/>
396 </template>
397
398 <template id="kanban_contain">
399     <table class="table js_kanban">
400         <thead>
401             <tr>
402                 <t t-set="width" t-valuef="{{ round(100.0 / (len(objects) if objects else 1), 2) }}%"/>
403                 <t t-foreach="objects" t-as="obj">
404                     <th t-att-width="width">
405                         <div t-field="obj['column_id'].name" class="text-center"></div>
406                     </th>
407                 </t>
408             </tr>
409         </thead>
410         <tbody>
411             <tr>
412                 <t t-foreach="objects" t-as="obj">
413                     <td class="js_kanban_col" t-att-data-template="template"
414                             t-att-data-domain="obj['domain']"
415                             t-att-data-page_count="obj['page_count']"
416                             t-att-data-model="obj['model']"
417                             t-att-data-step="obj['step']"
418                             t-att-data-orderby="obj['orderby']">
419                         <t t-foreach="obj['object_ids']" t-as="object_id">
420                             <t t-call="#{ template }"></t>
421                         </t>
422                         <!-- pager -->
423                         <div t-if="1 != obj['page_end']" class="pagination pagination-centered">
424                             <ul>
425                                 <li t-attf-class="prev #{'active' if obj['page'] == 1 else '' }">
426                                     <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, (obj['page'] &gt; 1 and obj['page']-1 or 1)) ">Prev</a></li>
427                                 <t t-foreach="range(obj['page_start'], obj['page_end']+1)" t-as="p">
428                                     <li t-att-class=" 'active' if obj['page'] == p else '' ">
429                                         <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, p)" t-esc="p"></a></li>
430                                 </t>
431                                 <li t-attf-class="next #{'active' if obj['page'] == obj['page_end'] else '' }">
432                                     <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, (obj['page'] &lt; obj['page_end'] and obj['page']+1 or obj['page_end']) )">Next</a></li>
433                             </ul>
434                         </div>
435                     </td>
436                 </t>
437             </tr>
438         </tbody>
439     </table>
440 </template>
441
442 <!-- Error and special pages -->
443
444 <template id="info" name="Odoo Information">
445     <t t-call="website.layout">
446       <div id="wrap">
447         <div class="oe_structure">
448
449             <section class="container">
450                 <h1><t t-esc="res_company.name"/>
451                     <small>Odoo Version <t t-raw="version.get('server_version')"/></small>
452                 </h1>
453                 <p>
454                     Information about the <t t-esc="res_company.name"/> instance of Odoo, the <a href="https://www.odoo.com">Open Source ERP</a>.
455                 </p>
456
457                 <div class="alert alert-warning alert-dismissable mt16" groups="base.group_website_publisher">
458                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&amp;times;</button>
459                    <p>
460                      Note: To hide this page, uncheck it from the top Customize menu.
461                    </p>
462                 </div>
463                 <h2>Installed Applications</h2>
464                 <dl class="dl-horizontal" t-foreach="apps" t-as="app">
465                     <dt>
466                         <a t-att-href="app.website" t-if="app.website">
467                             <t t-raw="app.shortdesc"/>
468                         </a>
469                         <span t-raw="app.shortdesc" t-if="not app.website"/>
470                     </dt>
471                     <dd>
472                         <span t-raw="app.summary"/>
473                     </dd><dd class="text-muted">
474                         Technical name: <span t-field="app.name"/>, updated: <span t-field="app.write_date"/>, author: <span t-field="app.author"/>
475                     </dd>
476                 </dl>
477
478                 <h2>Installed Modules</h2>
479                 <dl class="dl-horizontal">
480                     <t t-foreach="modules" t-as="app">
481                         <dt>
482                             <span t-raw="app.shortdesc"/>
483                         </dt>
484                         <dd t-if="app.summary">
485                             <span t-raw="app.summary"/>
486                         </dd><dd>
487                             Technical name: <span t-field="app.name"/>,
488                             updated: <span t-field="app.write_date"/>
489                             <t t-if="app.author">
490                                 , author: <span t-field="app.author"/>
491                             </t>
492                         </dd>
493                     </t>
494                 </dl>
495
496
497             </section>
498
499         </div>
500       </div>
501     </t>
502 </template>
503
504 <template id="default_page">
505     <t t-call="website.layout">
506       <div id="wrap" class="oe_structure oe_empty"></div>
507     </t>
508 </template>
509
510 <template id="page_404">
511     <t t-call="website.404">
512         <div class="container">
513             <div class="well mt32">
514                 <p>This page does not exists, but you can create it as you are administrator of this site.</p>
515                 <a class="btn btn-primary" t-attf-href="/website/add/#{ path }">Create Page</a>
516             </div>
517             <div class="text-center text-muted">Edit the content below this line to adapt the default "page not found" page.</div>
518         </div>
519         <hr/>
520     </t>
521 </template>
522
523 <template id="http_error">
524     <t t-call="website.layout">
525         <div id="wrap">
526             <div class="oe_structure">
527                 <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1>
528             </div>
529
530             <t t-if="editable or request.debug">
531                 <t t-call="website.http_error_debug"/>
532             </t>
533         </div>
534     </t>
535 </template>
536
537 <template id="http_error_debug">
538     <div class="container panel-group mb32 mt32" id="debug_infos">
539         <div class="panel panel-default" t-if="exception">
540             <div class="panel-heading">
541                 <h4 class="panel-title">
542                     <a data-toggle="collapse" data-parent="#debug_infos" href="#error_main">
543                         Error
544                     </a>
545                 </h4>
546             </div>
547             <div id="error_main" class="panel-collapse collapse in">
548                 <div class="panel-body">
549                     <p t-if="website_controller">The following error was raised in the website controller <code t-esc="website_controller"/></p>
550                     <p>
551                         <strong>Error message:</strong>
552                         <pre t-esc="exception.message"/>
553                     </p>
554                 </div>
555             </div>
556         </div>
557         <div class="panel panel-default" t-if="qweb_exception">
558             <div class="panel-heading">
559                 <h4 class="panel-title">
560                     <a data-toggle="collapse" data-parent="#adebug_infos" href="#error_qweb">
561                         QWeb
562                     </a>
563                 </h4>
564             </div>
565             <div id="error_qweb" class="panel-collapse collapse">
566                 <div class="panel-body">
567                     <p t-if="exception.qweb.get('message')">
568                         <strong>Error message:</strong>
569                         <pre t-esc="exception.qweb.get('message')"/>
570                     </p>
571                     <p>
572                         The error occured while rendering the template <code t-esc="qweb_exception.qweb.get('template')"/>
573                         <t t-if="'expression' in qweb_exception.qweb">and evaluating the following expression: <code t-esc="qweb_exception.qweb['expression']"/></t>
574                     </p>
575                     <t t-if="'node' in qweb_exception.qweb">
576                         <pre id="exception_node" t-esc="qweb_exception.pretty_xml()"/>
577                     </t>
578                 </div>
579             </div>
580         </div>
581         <div class="panel panel-default" t-if="traceback">
582             <div class="panel-heading">
583                 <h4 class="panel-title">
584                     <a data-toggle="collapse" data-parent="#adebug_infos" href="#error_traceback">
585                         Traceback
586                     </a>
587                 </h4>
588             </div>
589             <div id="error_traceback" class="panel-collapse collapse">
590                 <div class="panel-body">
591                     <pre id="exception_traceback" t-esc="traceback"/>
592                 </div>
593             </div>
594         </div>
595     </div>
596 </template>
597
598 <template id="403">
599     <t t-call="website.layout">
600         <div id="wrap">
601             <div class="container">
602                 <h1 class="mt32">403: Forbidden</h1>
603                 <p>The page you were looking for could not be authorized.</p>
604                 <p>Maybe you were looking for one of these popular pages ?</p>
605                 <ul>
606                     <li><a href="/">Homepage</a></li>
607                     <li><a href="/page/website.contactus/">Contact Us</a></li>
608                 </ul>
609             </div>
610             <t t-if="editable or request.debug">
611                 <t t-call="website.http_error_debug"/>
612             </t>
613         </div>
614     </t>
615 </template>
616
617 <template id="404">
618     <t t-call="website.layout">
619         <div id="wrap">
620             <t t-raw="0"/>
621             <div class="oe_structure oe_empty">
622                 <div class="container">
623                     <h1 class="mt32">404: Page not found!</h1>
624                     <p>
625                         The page you were looking for could not be found; it is possible you have
626                         typed the address incorrectly, but it has most probably been removed due
627                         to the recent website reorganisation.
628                     </p>
629                     <p>Maybe you were looking for one of these popular pages ?</p>
630                     <ul>
631                         <li><a href="/">Homepage</a></li>
632                         <li><a href="/page/website.contactus/">Contact Us</a></li>
633                     </ul>
634                 </div>
635             </div>
636
637             <t t-if="request.debug">
638                 <t t-call="website.http_error_debug"/>
639             </t>
640         </div>
641     </t>
642 </template>
643
644 <template id="500">
645     <!-- This template should not use any variable except those provided by website.ir_http._handle_exception -->
646     <html>
647         <head>
648             <title t-esc="status_message">Internal Server Error</title>
649             <link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
650             <link rel='stylesheet' href='/web/static/lib/bootstrap/css/bootstrap.css'/>
651             <link rel='stylesheet' href='/website/static/src/css/website.css'/>
652             <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
653             <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
654             <script>
655                 $(document).ready(function() {
656                     var button = $('#reset_templates_button');
657                     button.click(function() {
658                         var dialog = $('#reset_template_confirmation').modal('show');
659                         var input = dialog.find('input[type="text"]').val('').focus();
660                         var dialog_form = dialog.find('form');
661                         dialog_form.submit(function() {
662                             if (input.val() == dialog.find('.confirm_word').text()) {
663                                 dialog.modal('hide');
664                                 button.prop('disabled', true).text('Working...');
665                                 $('#reset_templates_form').trigger('submit');
666                             } else {
667                                 input.val('').focus();
668                             }
669                             return false;
670                         });
671                         return false;
672                     });
673                 });
674             </script>
675         </head>
676         <body>
677             <div id="reset_template_confirmation" class="modal" tabindex="-1" role="dialog" aria-hidden="true" t-ignore="true">
678                 <div class="modal-dialog">
679                     <form class="form-horizontal" role="form">
680                     <div class="modal-content">
681                         <div class="modal-header">
682                             <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
683                             <h3 class="modal-title">Reset templates</h3>
684                         </div>
685                         <div class="modal-body">
686                             <div class="form-group mb0">
687                                 <label for="page-name" class="col-sm-9">
688                                     <p>The selected templates will be reset to their factory settings.</p>
689                                     <p>Type '<i class="confirm_word">yes</i>' in the box below if you want to confirm.</p>
690                                 </label>
691                                 <div class="col-sm-3 mt16">
692                                     <input type="text" class="form-control" required="required" placeholder="yes"/>
693                                 </div>
694                             </div>
695                         </div>
696                         <div class="modal-footer">
697                             <input type="submit" value="Confirm" class="btn btn-primary"/>
698                             <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
699                         </div>
700                     </div>
701                     </form>
702                 </div>
703             </div>
704
705             <div id="wrapwrap">
706                 <div class="navbar navbar-default navbar-static-top">
707                     <div class="container">
708                         <div class="collapse navbar-collapse navbar-top-collapse">
709                             <ul class="nav navbar-nav pull-right">
710                                 <li><a href="/">Home</a></li>
711                                 <li><a href="javascript: window.history.back()">Back</a></li>
712                             </ul>
713                         </div>
714                     </div>
715                 </div>
716                 <div class="mb32">
717                     <div class="oe_structure">
718                         <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1>
719                     </div>
720                     <div class="container" t-if="views">
721                         <div class="alert alert-danger" t-if="qweb_exception and editable">
722                             <h4>Template fallback</h4>
723                             <p>An error occured while rendering the template <code t-esc="qweb_exception.qweb['template']"/>.</p>
724                             <p>If this error is caused by a change of yours in the templates, you have the possibility to reset one or more templates to their <strong>factory settings</strong>.</p>
725                             <form action="/website/reset_templates" method="post" id="reset_templates_form">
726                                 <ul class="oe_template_fallback">
727                                     <li t-foreach="views" t-as="view">
728                                         <label>
729                                             <input type="checkbox" name="templates" t-att-value="view.id" t-att-checked="'checked' if view_first else None"/>
730                                             <t t-esc="view.name"/>
731                                         </label>
732                                     </li>
733                                 </ul>
734                                 <input type="hidden" name="redirect" t-att-value="request.httprequest.path"/>
735                                 <button id="reset_templates_button">Reset selected templates</button>
736                             </form>
737                         </div>
738                     </div>
739
740                     <t t-if="editable or request.debug">
741                         <t t-call="website.http_error_debug"/>
742                     </t>
743                 </div>
744             </div>
745         </body>
746     </html>
747 </template>
748
749 <template id="robots">
750 User-agent: *
751 Sitemap: <t t-esc="url_root"/>sitemap.xml
752 </template>
753
754 <template id="sitemap_locs">
755     <url t-foreach="locs" t-as="page">
756         <loc><t t-esc="url_root"/><t t-esc="page['loc']"/></loc><t t-if="page.get('lastmod', False)">
757         <lastmod t-esc="page['lastmod']"/></t><t t-if="page.get('priority', False)">
758         <priority t-esc="page['priority']"/></t><t t-if="page.get('changefreq', False)">
759         <changefreq t-esc="page['changefreq']"/></t>
760     </url>
761 </template>
762
763 <template id="sitemap_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
764 <urlset t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
765     <t t-raw="content"/>
766 </urlset>
767 </template>
768
769 <template id="sitemap_index_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
770 <sitemapindex t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
771   <sitemap t-translate="off" t-foreach="pages" t-as="page">
772     <loc><t t-esc="url_root"/>sitemap-<t t-esc="page"/>.xml</loc>
773   </sitemap>
774 </sitemapindex>
775 </template>
776
777
778 <!-- Actual pages -->
779
780 <template id="homepage" name="Homepage" page="True" priority="29">
781     <t t-call="website.layout">
782       <div id="wrap" class="oe_structure oe_empty"></div>
783     </t>
784 </template>
785
786 <template id="company_description" name="Company Description">
787     <address itemscope="itemscope" itemtype="http://schema.org/Organization">
788         <!-- TODO widget contact must add itemprop attributes -->
789         <div t-field="res_company.partner_id" t-field-options='{
790                 "widget": "contact",
791                 "fields": ["name", "address", "phone", "mobile", "fax", "email"]}'/>
792     </address>
793      <a t-att-href="res_company.google_map_link()" target="_BLANK">
794         <img class="thumbnail img-responsive" t-att-src="res_company.google_map_img()" />
795     </a>
796 </template>
797
798 <template id="contactus" name="Contact us" page="True">
799     <t t-call="website.layout">
800       <div id="wrap">
801         <div class="oe_structure"/>
802         <div class="container">
803             <h1>Contact us</h1>
804             <div class="row">
805                 <div class="col-md-8">
806                     <div class="oe_structure">
807                         <div>
808                             <p>Contact us about anything related to our company or services.</p>
809                             <p>We'll do our best to get back to you as soon as possible.</p>
810                         </div>
811                     </div>
812                     <div class="text-center mt64" name="mail_button">
813                         <a t-attf-href="mailto:{{ res_company.email }}" class="btn btn-primary">Send us an email</a>
814                     </div>
815                 </div>
816                 <div class="col-md-4 mb32">
817                     <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
818                         <a class="btn btm-sm btn-default" t-att-href="'/web#return_label=Website&amp;model=%s&amp;id=%s' % (res_company._name, res_company.id)">Change address</a>
819                     </div>
820                     <t t-call="website.company_description"/>
821                 </div>
822             </div>
823         </div>
824         <div class="oe_structure"/>
825       </div>
826     </t>
827 </template>
828
829 <template id="aboutus" name="About us" page="True">
830     <t t-call="website.layout">
831         <div id="wrap">
832             <div class="oe_structure">
833
834                 <section>
835                     <div class="container">
836                         <div class="row">
837                             <div class="col-md-12">
838                                 <h1 class="text-center">About us</h1>
839                                 <h3 class="text-muted text-center">Great products for great people</h3>
840                             </div>
841                         </div>
842                     </div>
843                 </section>
844
845                 <section>
846                     <div class="container">
847                         <div class="row">
848                             <div class="col-md-6 mt32">
849                                 <p>
850                                       We are a team of passionate people whose goal is to improve everyone's
851                                       life through disruptive products. We build great products to solve your
852                                       business problems.
853                                 </p>
854                                 <p>
855                                       Our products are designed for small to medium size companies willing to optimize
856                                       their performance.
857                                 </p>
858                             </div>
859                             <div class="col-md-4 col-md-offset-2 mt16 mb16">
860                                 <img src="/website/static/src/img/library/business_conference.jpg" class="img img-responsive shadow" alt="Our Team"/>
861                             </div>
862                         </div>
863                     </div>
864                 </section>
865
866             </div>
867             <div class="oe_structure"></div>
868         </div>
869     </t>
870 </template>
871
872      </data>
873 </openerp>