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