[IMP] bootstrap 3 mobile menu

bzr revid: fp@openerp.com-20130829204553-qyfk30am8tj4bm5n
This commit is contained in:
Fabien Pinckaers
2013-08-29 22:45:53 +02:00
18 changed files with 11314 additions and 15412 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,268 @@
.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger {
text-shadow:0 -1px 0 rgba(0,0,0,0.2);
-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);
box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);
}
.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active {
-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);
box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);
}
.btn:active,.btn.active {
background-image:none;
}
.btn-default {
text-shadow:0 1px 0 #fff;
background-image:linear-gradient(tobottom,#fff0,#e6e6e6100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
border-color:#ccc;
}
.btn-default:active,.btn-default.active {
background-color:#e6e6e6;
border-color:#e0e0e0;
}
.btn-primary {
background-image:linear-gradient(tobottom,#428bca0,#3071a9100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0);
border-color:#2d6ca2;
}
.btn-primary:active,.btn-primary.active {
background-color:#3071a9;
border-color:#2d6ca2;
}
.btn-success {
background-image:linear-gradient(tobottom,#5cb85c0,#449d44100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0);
border-color:#419641;
}
.btn-success:active,.btn-success.active {
background-color:#449d44;
border-color:#419641;
}
.btn-warning {
background-image:linear-gradient(tobottom,#f0ad4e0,#ec971f100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0);
border-color:#eb9316;
}
.btn-warning:active,.btn-warning.active {
background-color:#ec971f;
border-color:#eb9316;
}
.btn-danger {
background-image:linear-gradient(tobottom,#d9534f0,#c9302c100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0);
border-color:#c12e2a;
}
.btn-danger:active,.btn-danger.active {
background-color:#c9302c;
border-color:#c12e2a;
}
.btn-info {
background-image:linear-gradient(tobottom,#5bc0de0,#31b0d5100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0);
border-color:#2aabd2;
}
.btn-info:active,.btn-info.active {
background-color:#31b0d5;
border-color:#2aabd2;
}
.thumbnail,.img-thumbnail {
-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);
box-shadow:0 1px 2px rgba(0,0,0,0.075);
}
.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus {
background-color:#357ebd;
background-image:linear-gradient(tobottom,#428bca0,#357ebd100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0);
}
.navbar {
background-image:linear-gradient(tobottom,#fff0,#f8f8f8100%);
background-repeat:repeat-x;
border-radius:4px;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);
-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);
box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);
}
.navbar .navbar-nav>.active>a {
background-color:#f8f8f8;
}
.navbar-brand,.navbar-nav>li>a {
text-shadow:0 1px 0 rgba(255,255,255,0.25);
}
.navbar-inverse {
background-image:linear-gradient(tobottom,#3c3c3c0,#222100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);
}
.navbar-inverse .navbar-nav>.active>a {
background-color:#222;
}
.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a {
text-shadow:0 -1px 0 rgba(0,0,0,0.25);
}
.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom {
border-radius:0;
}
.alert {
text-shadow:0 1px 0 rgba(255,255,255,0.2);
-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);
box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);
}
.alert-success {
background-image:linear-gradient(tobottom,#dff0d80,#c8e5bc100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0);
border-color:#b2dba1;
}
.alert-info {
background-image:linear-gradient(tobottom,#d9edf70,#b9def0100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0);
border-color:#9acfea;
}
.alert-warning {
background-image:linear-gradient(tobottom,#fcf8e30,#f8efc0100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0);
border-color:#f5e79e;
}
.alert-danger {
background-image:linear-gradient(tobottom,#f2dede0,#e7c3c3100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0);
border-color:#dca7a7;
}
.progress {
background-image:linear-gradient(tobottom,#ebebeb0,#f5f5f5100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0);
}
.progress-bar {
background-image:linear-gradient(tobottom,#428bca0,#3071a9100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0);
}
.progress-bar-success {
background-image:linear-gradient(tobottom,#5cb85c0,#449d44100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0);
}
.progress-bar-info {
background-image:linear-gradient(tobottom,#5bc0de0,#31b0d5100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0);
}
.progress-bar-warning {
background-image:linear-gradient(tobottom,#f0ad4e0,#ec971f100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0);
}
.progress-bar-danger {
background-image:linear-gradient(tobottom,#d9534f0,#c9302c100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0);
}
.list-group {
border-radius:4px;
-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);
box-shadow:0 1px 2px rgba(0,0,0,0.075);
}
.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus {
text-shadow:0 -1px 0 #3071a9;
background-image:linear-gradient(tobottom,#428bca0,#3278b3100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0);
border-color:#3278b3;
}
.panel {
-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);
box-shadow:0 1px 2px rgba(0,0,0,0.05);
}
.panel-default>.panel-heading {
background-image:linear-gradient(tobottom,#f5f5f50,#e8e8e8100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0);
}
.panel-primary>.panel-heading {
background-image:linear-gradient(tobottom,#428bca0,#357ebd100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0);
}
.panel-success>.panel-heading {
background-image:linear-gradient(tobottom,#dff0d80,#d0e9c6100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0);
}
.panel-info>.panel-heading {
background-image:linear-gradient(tobottom,#d9edf70,#c4e3f3100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0);
}
.panel-warning>.panel-heading {
background-image:linear-gradient(tobottom,#fcf8e30,#faf2cc100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0);
}
.panel-danger>.panel-heading {
background-image:linear-gradient(tobottom,#f2dede0,#ebcccc100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0);
}
.well {
background-image:linear-gradient(tobottom,#e8e8e80,#f5f5f5100%);
background-repeat:repeat-x;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);
-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);
box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);
border-color:#dcdcdc;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+68 -10
View File
@@ -1,3 +1,4 @@
@charset "utf-8";
/* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY
*
* css for editor buttons, openerp widget included in the website and other
@@ -149,16 +150,73 @@ footer {
display: block;
}
/* ---- HOMEPAGE THEME CUSTOMIZATION ---- */
header.navbar-fixed-top {
position: static;
}
#myCarousel .item {
min-height: 300px;
color: white;
}
/* ---- HOMEPAGE THEME CUSTOMIZATION ----
*
* min-height: 300px
* color: white */
.dark {
background: #eff8f8;
}
/* Hacks to remove */
div.wrap .carousel {
top: -20px;
}
/* -- Hack for nav header -- */
.nav > li.nav-header {
display: block;
font-size: 11px;
font-weight: bold;
line-height: 20px;
color: #999999;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
text-transform: uppercase;
}
ul.nav-stacked > li > a {
padding: 2px 15px;
}
.nav.nav-hierarchy {
padding-left: 16px;
}
.navbar-inverse .divider-vertical {
height: 40px;
margin: 0 9px;
border-right: 1px solid white;
border-left: 1px solid #f2f2f2;
}
.navbar-nav .divider-vertical {
border-right-color: #222222;
border-left-color: #080808;
}
.navbar-inverse {
background-image: -moz-linear-gradient(top, #222222, #080808);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#080808));
background-image: -webkit-linear-gradient(top, #222222, #080808);
background-image: -o-linear-gradient(top, #222222, #080808);
background-image: linear-gradient(to bottom, #222222, #080808);
background-repeat: repeat-x;
}
.navbar-default {
border: 1px solid #d4d4d4;
}
/* -- Hack for removing double scrollbar from mobile preview -- */
.modal {
overflow: hidden;
overflow-y: hidden;
}
ul.nav-stacked > li > a {
padding: 2px 15px;
}
.dropdown-header {
text-transform: uppercase;
}
+51 -7
View File
@@ -109,17 +109,61 @@ footer
.nav > li a
display: block
/* ---- HOMEPAGE THEME CUSTOMIZATION ---- */
header.navbar-fixed-top
position: static
#myCarousel .item
min-height: 300px
color: white
/* ---- HOMEPAGE THEME CUSTOMIZATION ---- */
.dark
background: rgb(239, 248, 248)
/* Hacks to remove */
div.wrap
.carousel
top: -20px
/* -- Hack for nav header -- */
.nav > li.nav-header
display: block
font-size: 11px
font-weight: bold
line-height: 20px
color: #999999
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5)
text-transform: uppercase
ul.nav-stacked>li>a
padding: 2px 15px
.nav.nav-hierarchy
padding-left: 16px
.navbar-inverse .divider-vertical
height: 40px
margin: 0 9px
border-right: 1px solid #ffffff
border-left: 1px solid #f2f2f2
.navbar-nav .divider-vertical
border-right-color: #222
border-left-color: #080808
.navbar-inverse
background-image: -moz-linear-gradient(top, #222, #080808)
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222), to(#080808))
background-image: -webkit-linear-gradient(top, #222, #080808)
background-image: -o-linear-gradient(top, #222, #080808)
background-image: linear-gradient(to bottom, #222, #080808)
background-repeat: repeat-x
.navbar-default
border: 1px solid #d4d4d4
/* -- Hack for removing double scrollbar from mobile preview -- */
.modal
overflow: hidden
overflow-y: hidden
ul.nav-stacked>li>a
padding: 2px 15px
.dropdown-header
text-transform: uppercase
@@ -74,9 +74,9 @@
function(result) {
_.each(result, function (item) {
if (item.header) {
menu.append('<li class="nav-header">' + item.name + '</li>');
menu.append('<li class="dropdown-header">' + item.name + '</li>');
} else {
menu.append(_.str.sprintf('<li><a href="#" data-view-id="%s"><strong class="icon-check%s"></strong> %s</a></li>',
menu.append(_.str.sprintf('<li role="presentation"><a href="#" data-view-id="%s" role="menuitem"><strong class="icon-check%s"></strong> %s</a></li>',
item.id, item.active ? '' : '-empty', item.name));
}
});
@@ -20,6 +20,10 @@
$(document.body).addClass('oe_stop_scrolling');
document.getElementById("mobile-viewport").src = window.location.href + "?mobile-preview=true";
this.$el.modal();
this.$el.removeClass('hide');
this.$el.find('.oe_mobile_preview_header button').click(function() {
$('body').removeClass('oe_stop_scrolling');
});
},
close: function () {
$(document.body).removeClass('oe_stop_scrolling');
+35 -18
View File
@@ -5,26 +5,43 @@
<t t-name="website.editorbar">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner" id="website-top-view">
<form class="navbar-form pull-left">
<button data-action="edit" class="btn btn-primary">Edit</button>
</form>
<ul class="nav pull-right">
<li><a data-action="show-mobile-preview" href="#"><span title="Mobile preview" class="icon-mobile-phone"/></a></li>
<li class="divider-vertical"></li>
<li><a data-action="promote-current-page" href="#"><span title="Promote page on the web">Promote</span></a></li>
<li><a href="#">Translate</a></li>
<li class="dropdown">
<a id="customize-menu-button" class="dropdown-toggle" data-toggle="dropdown" href="#">Customize <span class="caret"></span></a>
<div class="dropdown-menu">
<ul class="nav nav-list" id="customize-menu">
<div id="website-top-view" class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-edit-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<form class="navbar-form navbar-left">
<button data-action="edit" class="btn btn-primary">Edit</button>
</form>
</div>
<div class="collapse navbar-collapse navbar-edit-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a data-action="show-mobile-preview" href="#"><span title="Mobile preview" class="icon-mobile-phone"/></a></li>
<li class="divider-vertical"></li>
<li><a data-action="promote-current-page" href="#"><span title="Promote page on the web">Promote</span></a></li>
<li><a href="#">Translate</a></li>
<li class="dropdown">
<a id="customize-menu-button" class="dropdown-toggle" data-toggle="dropdown" href="#">Customize <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" id="customize-menu">
<!-- filled in JS -->
</ul>
</div>
</li>
<li>
<a href="/admin#action=website.action_module_website">Apps</a>
</li>
</li>
<li>
<a href="/admin#action=website.action_module_website">Apps</a>
</li>
</ul>
</div>
</div>
<div id="website-top-edit">
<form class="navbar-form navbar-left">
<button data-action="save" class="btn btn-primary">Save</button>
<button data-action="cancel" class="btn">Cancel</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><button data-action="snippet" class="btn btn-primary">Building Blocks</button></li>
</ul>
</div>
</div>
+9 -10
View File
@@ -10,7 +10,7 @@
<t t-call="website.layout">
<div class="container" t-if="editable">
<div class="alert alert-block alert-success mt32" t-if="theme_changed">
<div class="alert alert-success mt32" t-if="theme_changed">
<button type="button" class="close" data-dismiss="alert">&amp;times;</button>
<p>
<h4>Theme Changed!</h4>
@@ -21,7 +21,7 @@
<div class="row mt32" id="themes-list">
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/flatly/thumbnail.png" alt="Flatly"/>
@@ -34,7 +34,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img src="http://bootswatch.com/amelia/thumbnail.png" class="img-responsive" alt="Amelia"/>
@@ -47,7 +47,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img src="http://bootswatch.com/cerulean/thumbnail.png" class="img-responsive" alt="Cerulean"/>
@@ -60,7 +60,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/cosmo/thumbnail.png" alt="Cosmo"/>
@@ -73,7 +73,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/cyborg/thumbnail.png" alt="Cyborg"/>
@@ -86,7 +86,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/journal/thumbnail.png" alt="Journal"/>
@@ -99,7 +99,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/readable/thumbnail.png" alt="Readable"/>
@@ -112,7 +112,7 @@
</div>
</div>
<div class="span4">
<div class="col-md-4">
<div class="well text-center">
<div class="image">
<img class="img-responsive" src="http://bootswatch.com/simplex/thumbnail.png" alt="Simplex"/>
@@ -137,7 +137,6 @@
<template id="website.theme_flatly" name="Flat Theme" inherit_option_id="website.theme">
<xpath expr="//link[@id='bootstrap_css']" position="replace">
<link rel='stylesheet' href='/website/static/lib/bootstrap/css/bootstrap-flatly.css' t-ignore="true"/>
<link rel='stylesheet' href='/website/static/src/css/website-flatly.css' t-ignore="true"/>
</xpath>
</template>
+211 -254
View File
@@ -13,7 +13,7 @@
<template id="layout">
&lt;!DOCTYPE html&gt;
<html t-att-data-view-xmlid="__stack__[0]" t-att-data-editable="'1' if editable else '0'">
<html t-att-data-editable="'1' if editable else '0'" t-att-data-view-xmlid="str(__stack__[0])">
<head>
<title><t t-esc="title or res_company.name"/></title>
<script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
@@ -50,20 +50,26 @@
<t t-call="website.theme"/>
<link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
<link rel='stylesheet' href='/website/static/lib/bootstrap/css/bootstrap-responsive.css'/>
</head>
<body>
<header class='navbar navbar-static-top'>
<div class='navbar-inner'>
<header>
<div class="navbar navbar-default navbar-static-top">
<div class="container">
<a href='/page/website.homepage' class='brand'>
<em>Open</em><b>ERP</b>
<!--<img t-att-alt="res_company.name" src='/web/binary/company_logo'/></a>-->
</a>
<ul class="nav pull-right" id="top_menu">
<li><a href="/page/website.contactus">Contact us</a></li>
<li><a href="/admin">Sign in</a></li>
</ul>
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/page/website.homepage"><em>Open</em><b>ERP</b></a>
</div>
<div class="collapse navbar-collapse navbar-top-collapse">
<ul class="nav navbar-nav navbar-right" id="top_menu">
<li><a href="/page/website.contactus">Contact us</a></li>
<li><a href="/admin">Sign in</a></li>
</ul>
</div>
</div>
</div>
</header>
@@ -75,36 +81,35 @@
<footer>
<div class="container" id="footer_container">
<div class="row">
<div class="span3" name="product">
<h5>Our products</h5>
<ul class='unstyled' name="products">
<div class="col-md-3" name="product">
<h4>Our products</h4>
<ul class="list-unstyled" name="products">
<li><a href="/">Home</a></li>
</ul>
</div>
<div class="span3" name="info">
<h5 name="info_title">Connect with us</h5>
<ul class='unstyled'>
<div class="col-md-3" name="info">
<h4 name="info_title">Connect with us</h4>
<ul class="list-unstyled">
<li><a href="/page/website.aboutus">About us</a></li>
<li><a href="/page/website.contactus">Contact us</a></li>
</ul>
<ul class='unstyled'>
<li><i class="icon-phone"></i> <span t-field="res_company.phone"/></li>
<li><i class="icon-envelope"></i> <span t-field="res_company.email"></span></li>
<ul class="list-unstyled">
<li><i class="icon-phone"></i> <span t-field="res_company.phone"></span></li>
<li><i class="icon-envelope"></i> <span t-field="res_company.email"></span></li>
</ul>
</div>
<div class="span5 offset1" name="about_us">
<h5 t-field="res_company.name">About us</h5>
<div class="col-md-5 col-lg-offset-1" name="about_us">
<h4 t-field="res_company.name">About us</h4>
<p>
We are a team of passionated people whose goal
is to improve everyone's life through
disruptive products. We build great products to
solve your business problems.
</p><p>
Our products are designed for small to medium
companies willing to optimize their
performance.
We are a team of passionated people whose goal is to improve everyone's
life through disruptive products. We build great products to solve your
business problems.
</p>
<h1 style="padding: 12px 24px">
<p>
Our products are designed for small to medium companies willing to optimize
their performance.
</p>
<h1 style="padding: 12px 24px;">
<a href="http://twitter.com/openerp"><i class="icon-twitter-sign"></i></a>
<a href="http://facebook.com/OpenERP"><i class="icon-facebook-sign"></i></a>
<a href="https://plus.google.com/+openerp/posts"><i class="icon-google-plus-sign"></i></a>
@@ -114,14 +119,14 @@
</div>
<div class="container mt16">
<div class="pull-right" t-ignore="1">
Create a <a href="http://openerp.com/apps/website">free website</a> with <a class="label label-important" href="https://openerp.com/apps/website">OpenERP</a>
Create a <a href="http://openerp.com/apps/website">free website</a> with
<a class="label label-danger" href="https://openerp.com/apps/website">OpenERP</a>
</div>
<div class="pull-left muted">
<div class="pull-left text-muted">
Copyright &amp;copy; <span t-field="res_company.name">Company name</span> - <a href="/sitemap">Sitemap</a>
</div>
</div>
</footer>
</body>
</html>
</template>
@@ -134,102 +139,99 @@
<template id="homepage" page="True">
<t t-call="website.layout">
<section>
<div id="myCarousel" class="carousel slide" data-interval='1000000'>
<div id="myCarousel" class="carousel slide" data-interval="1000000">
<div class="oe_carousel_options js_carousel_options" t-ignore="1" t-if="editable">
<span class="label js_add"><i class="icon-plus-sign"></i></span>
<span class="label js_remove"><i class="icon-minus-sign"></i></span>
<span class="label label-default js_add"><i class="icon-plus-sign"></i></span>
<span class="label label-default js_remove"><i class="icon-minus-sign"></i></span>
</div>
<!-- Carousel items -->
<div class="carousel-inner">
<div class="item active" style="background-image: url(/website/static/src/img/greenfields.jpg); background-size: cover;" >
<div class='container'>
<div class="mt64"> </div>
<div class="item active" style="background-image: url(/website/static/src/img/greenfields.jpg); background-size: cover; padding-top: 70px; padding-bottom:35px;">
<div class="container">
<div class="mt64"></div>
<h1>Create Awesome Websites</h1>
<h3>Super easy, fully flexible</h3>
<a href='/page/website.contactus' class='btn btn-success btn-large mt16'>Contact us</a>
<a href="/page/website.contactus" class="btn btn-success btn-large mt16">Contact us</a>
</div>
</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev" t-ignore="1">&amp;lsaquo;</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next" t-ignore="1">&amp;rsaquo;</a>
<a class="carousel-control left" href="#myCarousel" data-slide="prev">
</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">
</a>
</div>
</section>
<div>
<section class="container">
<div class="row">
<div class="span12 text-center">
<h1 class='mt64'>Welcome To Your New Homepage,</h1>
<h2 class='mt32 subheader'>where <b><em>everything</em></b> can be customized </h2>
<div class="col-md-12 text-center">
<h1 class="mt64">Welcome To Your New Homepage,</h1>
<h2 class="mt32 subheader">where <b><em>everything</em></b> can be customized </h2>
</div>
</div>
</section>
<div class='dark mt64'>
<section class="container">
<div class="row">
<div class="span5">
<img class='img-rounded' src="/website/static/src/img/island.jpg"/>
</div>
<div class="span6 offset1">
<p class='mt16'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
<p>
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum
</p>
<div class="text-center">
<a href="http://www.openerp.com/start" class="btn mt16 btn-large btn-primary">Call To <em>Action</em></a>
<div class="dark mt64">
<section class="container">
<div class="row">
<div class="col-md-5">
<img class="img-rounded img-responsive" src="/website/static/src/img/island.jpg" />
</div>
<div class="col-md-6 col-lg-offset-1">
<p class="mt16">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
<p>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</p>
<div class="text-center"> <a href="http://www.openerp.com/start" class="btn mt16 btn-lg btn-primary">Call To <em>Action</em></a></div>
</div>
</div>
</div>
</section>
</section>
</div>
<section class="container">
<div class="row">
<div class="span12 text-center">
<h2 class='mt48'>Ut enim ad minim veniam</h2>
<div class="col-md-12 text-center">
<h2 class="mt48">Ut enim ad minim veniam</h2>
</div>
</div>
<div class="row mt32">
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/china_thumb.jpg"/>
<h4 class='mt16'>Cillum Dolore</h4>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/china_thumb.jpg" />
<h4 class="mt16">Cillum Dolore</h4>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/desert_thumb.jpg"/>
<h4 class='mt16'>Mollit Anim</h4>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/desert_thumb.jpg"/>
<h4 class="mt16">Mollit Anim</h4>
<p>
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</p>
</div>
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/deers_thumb.jpg"/>
<h4 class='mt16'>Nemo Enim Ipsam</h4>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/deers_thumb.jpg"/>
<h4 class="mt16">Nemo Enim Ipsam</h4>
<p>
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa
quae ab illo inventore veritatis et quasi architecto beatae vitae
dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim
ipsam voluptatem quia voluptas
</p>
</div>
</div>
@@ -242,7 +244,7 @@
<t t-call="website.layout">
<div class="container">
<div class="row">
<div class="span12">
<div class="col-md-12">
<h1>New Page</h1>
<p>Write your text here...</p>
</div>
@@ -253,39 +255,30 @@
<template id="404">
<t t-call="website.layout">
<div class="container" t-if="editable and path">
<div class="well mt32">
<p>
This page does not exists, but you can create
it as you are administrator of this site.
</p>
<a class="btn btn-primary" t-att-href="'/pagenew/'+path">Create Page</a> <span class="muted"> or </span> <a href="/sitemap">Search a Page</a>
</div>
<div class="text-center muted">
Edit the content bellow this line to adapt the default "page not found" page.
</div>
<t t-call="website.layout">
<div class="container" t-if="editable and path">
<div class="well mt32">
<p>This page does not exists, but you can create it as you are administrator of this site.</p>
<a class="btn btn-primary" t-att-href="'/pagenew/'+path">Create Page</a>
<span class="text-muted">or</span> <a href="/sitemap">Search a Page</a>
</div>
<hr/>
<div class="container">
<h1 class="mt32">404: Page not found!</h1>
<p>
The page you were looking for could not be
found; it is possible you have typed the
address incorrectly, but it has most
probably been removed due to the recent
website reorganisation.
</p><p>
Maybe you were looking for one of these
popular pages ?
</p>
<ul>
<li><a href="/">Homepage</a></li>
<li><a href="/">Contact Us</a></li>
</ul>
</div>
</t>
<div class="text-center text-muted">Edit the content bellow this line to adapt the default "page not found" page.</div>
</div>
<hr />
<div class="container">
<h1 class="mt32">404: Page not found!</h1>
<p>
The page you were looking for could not be found; it is possible you have
typed the address incorrectly, but it has most probably been removed due
to the recent website reorganisation.
</p>
<p>Maybe you were looking for one of these popular pages ?</p>
<ul>
<li><a href="/">Homepage</a></li>
<li><a href="/">Contact Us</a></li>
</ul>
</div>
</t>
</template>
<template id="500">
@@ -301,6 +294,7 @@
<t t-call="website.layout">
<div class="container">
<h1 class="mt32">401: Unauthorized Access!</h1>
<p>
The page you were looking for could not be
authorized.
@@ -320,32 +314,31 @@
<template id="contactus" name="Contact us" page="True">
<t t-call="website.layout">
<t t-set="title">Contact us - <t t-raw="res_company.name"/></t>
<t t-set="title">Contact us -
<t t-raw="res_company.name"></t>
</t>
<div class="container">
<h2>Contact us</h2>
<h1>Contact us</h1>
<div class="row">
<div class="span8">
<p>
Contact us about anything related to our company or services.
</p><p>
We'll do our best to get back to you as soon as possible.
</p>
<div class="col-md-8">
<p>Contact us about anything related to our company or services.</p>
<p>We'll do our best to get back to you as soon as possible.</p>
<div class="text-center mt64" name="mail_button">
<a t-att-href="'mailto:'+res_company.email" class="btn btn-primary">Send us an email</a>
</div>
</div>
<div class="span4">
<div class="col-md-4">
<address>
<strong t-field="res_company.name">Name</strong><br/>
<span t-field="res_company.street"/> <span t-field="res_company.state_id"/><br/>
<span t-field="res_company.zip"/> <span t-field="res_company.city"/><br/>
<span t-field="res_company.country_id"> </span><br/>
<br/>
<span>&amp;#x2706; <span t-field="res_company.phone"></span></span><br/>
<strong t-field="res_company.name">Name</strong><br />
<span t-field="res_company.street"></span> <span t-field="res_company.state_id"></span><br />
<span t-field="res_company.zip"></span> <span t-field="res_company.city"></span><br />
<span t-field="res_company.country_id"> </span><br />
<br />
<span>&amp;#x2706; <span t-field="res_company.phone"></span></span><br />
<i class="icon-envelope"></i> <span t-field="res_company.email"></span>
</address>
<a t-att-href="res_company.partner_id.google_map_link()" target="_BLANK">
<img class="thumbnail" t-att-src="res_company.partner_id.google_map_img()"/>
<a t-att-href="res_company.partner_id.google_map_link()" target="_BLANK">
<img class="thumbnail img-responsive" t-att-src="res_company.partner_id.google_map_img()" />
</a>
</div>
</div>
@@ -355,52 +348,45 @@
<template id="aboutus" page="True">
<t t-call="website.layout">
<t t-set="title">About us - <t t-raw="res_company.name"/></t>
<t t-set="title">About us -
<t t-raw="res_company.name"></t>
</t>
<div class="container">
<h2>About us</h2>
<div class="row">
<div class="span4">
<div class="col-md-4">
<h3>Our vision</h3>
<p>
Contact us about anything related to our company or services.
</p><p>
We'll do our best to get back to you as soon as possible.
</p>
</div>
<div class="span8">
<p>Contact us about anything related to our company or services.</p>
<p>We'll do our best to get back to you as soon as possible.</p>
</div>
<div class="col-md-8"></div>
</div>
</div>
</t>
</template>
<template id="pager">
<div t-if="pager['page_count'] > 1" t-attf-class="#{ classname or '' } pagination">
<ul>
<li t-att-class=" 'disabled' if pager['page']['num'] == 1 else '' " >
<a t-att-href=" pager['page_start']['url'] if pager['page']['num'] != 1 else '' ">Prev</a>
</li>
<t t-foreach="pager['pages']" t-as="page">
<li t-att-class=" 'active' if page['num'] == pager['page']['num'] else '' ">
<a t-att-href="page['url']" t-raw="page['num']"></a>
</li>
</t>
<li t-att-class=" 'disabled' if pager['page']['num'] == pager['page_count'] else '' " >
<a t-att-href=" pager['page_end']['url'] if pager['page']['num'] != pager['page_count'] else '' ">Next</a>
</li>
</ul>
</div>
<ul t-if="pager['page_count'] > 1" t-attf-class="#{ classname or '' } pagination">
<li t-att-class=" 'disabled' if pager['page']['num'] == 1 else '' ">
<a t-att-href=" pager['page_start']['url'] if pager['page']['num'] != 1 else '' ">Prev</a>
</li>
<t t-foreach="pager['pages']" t-as="page">
<li t-att-class=" 'active' if page['num'] == pager['page']['num'] else '' "> <a t-att-href="page['url']" t-raw="page['num']"></a></li>
</t>
<li t-att-class=" 'disabled' if pager['page']['num'] == pager['page_count'] else '' ">
<a t-att-href=" pager['page_end']['url'] if pager['page']['num'] != pager['page_count'] else '' ">Next</a>
</li>
</ul>
</template>
<template id="publish">
<a href="#" t-att-data-id="object.id" t-att-data-object="object._name" class="pull-right" t-if="editable" t-ignore="true">
<a href="#" t-att-data-id="object.id" t-att-data-object="object._name" class="pull-right" t-if="editable" t-ignore="true" style="text-decoration: none !important;">
<span t-attf-class="label label-success js_unpublish #{ '' if object.website_published else 'hidden' }">Unpublish</span>
<span t-attf-class="label label-important js_publish #{ 'hidden' if object.website_published else '' }">Publish</span>
<span t-attf-class="label label-danger js_publish #{ 'hidden' if object.website_published else '' }">Publish</span>
</a>
</template>
<template id="snippets">
<div class='oe_snippet' data-snippet-id='darken' data-action='mutate' data-selector='#wrap .container' data-action-function='openerp.website.mutations.darken'>
<div class='oe_snippet_thumbnail oe_label'>Darken</div>
</div>
@@ -420,9 +406,9 @@
</div>
<section class="oe_snippet_body container">
<div class="row">
<div class="span12 text-center">
<h1 class='mt64'>Welcome To Your New Homepage,</h1>
<h2 class='mt32 subheader'>where <b><em>everything</em></b> can be customized </h2>
<div class="col-md-12 text-center">
<h1 class="mt64">Welcome To Your New Homepage,</h1>
<h2 class="mt32 subheader">where <b><em>everything</em></b> can be customized </h2>
</div>
</div>
</section>
@@ -431,40 +417,33 @@
<div class='oe_snippet' data-snippet-id='' data-action='insert' data-selector-siblings='#wrap .container'>
<section class="oe_snippet_body container">
<div class="row">
<div class="span12 text-center">
<h2 class='mt48'>Ut enim ad minim veniam</h2>
<div class="col-md-12 text-center">
<h2 class="mt48">Ut enim ad minim veniam</h2>
</div>
</div>
<div class="row mt32">
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/china_thumb.jpg"/>
<h4 class='mt16'>Cillum Dolore</h4>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/china_thumb.jpg"/>
<h4 class="mt16">Cillum Dolore</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.</p>
</div>
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/desert_thumb.jpg"/>
<h4 class='mt16'>Mollit Anim</h4>
<p>
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum
</p>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/desert_thumb.jpg"/>
<h4 class="mt16">Mollit Anim</h4>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="span4">
<img class='img-rounded' src="/website/static/src/img/deers_thumb.jpg"/>
<h4 class='mt16'>Nemo Enim Ipsam</h4>
<p>
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa
quae ab illo inventore veritatis et quasi architecto beatae vitae
dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas
</p>
<div class="col-md-4">
<img class="img-rounded img-responsive" src="/website/static/src/img/deers_thumb.jpg"/>
<h4 class="mt16">Nemo Enim Ipsam</h4>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim
ipsam voluptatem quia voluptas</p>
</div>
</div>
</section>
@@ -473,24 +452,19 @@
<div class='oe_snippet' name='Header' data-action='insert' data-selector-siblings='#wrap .container'>
<section class="container oe_snippet_body">
<div class="row">
<div class="span5">
<img class='img-rounded' src="/website/static/src/img/island.jpg"/>
<div class="col-md-5">
<img class="img-rounded img-responsive" src="/website/static/src/img/island.jpg"/>
</div>
<div class="span6 offset1">
<p class='mt16'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
<p>
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum
</p>
<div class="col-md-6 col-lg-offset-1">
<p class="mt16">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
<div class="text-center">
<a href="http://www.openerp.com/start" class="btn mt16 btn-large btn-primary">Call To <em>Action</em></a>
<a href="http://www.openerp.com/start" class="btn btn-default mt16 btn-lg btn-primary">Call To <em>Action</em></a>
</div>
</div>
</div>
@@ -513,51 +487,34 @@
<tr>
<t t-set="width" t-value="str(round(100.0 / len(objects), 2)) + '%'"/>
<t t-foreach="objects">
<th t-att-width="width">
<div t-field="column_id.name" class="text-center"/>
</th>
<th t-att-width="width">
<div t-field="column_id.name" class="text-center"></div>
</th>
</t>
</tr>
</thead>
<tbody>
<tr>
<t t-foreach="objects">
<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">
<t t-foreach="object_ids" t-as="object_id">
<t t-call="#{ template }"/>
</t>
<!-- pager -->
<div t-if="1 != page_end" class="pagination pagination-centered">
<ul>
<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>
<t t-foreach="range(page_start, page_end+1)" t-as="p">
<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"/>
</li>
</t>
<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>
</ul>
</div>
</td>
<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">
<t t-foreach="object_ids" t-as="object_id">
<t t-call="#{ template }"></t>
</t>
<!-- pager -->
<div t-if="1 != page_end" class="pagination pagination-centered">
<ul>
<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>
<t t-foreach="range(page_start, page_end+1)" t-as="p">
<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>
</t>
<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>
</ul>
</div>
</td>
</t>
</tr>
</tbody>
</table>
</template>
</data>
</openerp>
@@ -27,27 +27,31 @@
<template id="index" name="References">
<t t-call="website_contract.layout">
<t t-set="ref_content">
<h1 class="span12 text-center">
Trusted by millions worldwide<br/>
<small>Our public references</small>
</h1>
<div class="span12" id="ref_content">
<div class='navbar'>
<div class='navbar-inner'>
<t t-call="website.pager" >
<t t-set="classname">pull-left</t>
<h1 class="col-md-12 text-center">Customer References</h1>
<h2 class="col-md-12 text-center">Trusted by millions worldwide</h2>
<div class="col-md-12" id="ref_content">
<div class="navbar navbar-inverse">
<div class="navbar-collapse">
<t t-call="website.pager">
<t t-set="classname">pull-left</t>
</t>
<form action="/references/" method="get" class="navbar-search pull-right pagination">
<input type="text" name="search" class="search-query span2 mt4" placeholder="Search" t-att-value="searches.get('search') or '' or ''"/>
<select class="search-query span2 mt4" name="country" t-if="len(countries) > 1" onchange="submit()">
<t t-foreach="countries">
<t t-if="country_id">
<option t-att-selected="searches.get('country') == str(country_id and country_id[0]) and 'selected'" t-att-value="country_id[0]">
<t t-esc="country_id[1]"/> (<t t-esc="country_id_count"/>)
</option>
</t>
</t>
</select>
<div class="col-md-10">
<div class="col-md-5">
<input type="text" name="search" class="search-query form-control" placeholder="Search" t-att-value="searches.get('search') or '' or ''" />
</div>
<div class="col-lg-5">
<select class="search-query mt4 form-control" name="country" t-if="len(countries) > 1" onchange="submit()">
<t t-foreach="countries">
<t t-if="country_id">
<option t-att-selected="searches.get('country') == str(country_id and country_id[0]) and 'selected'" t-att-value="country_id[0]">
<t t-esc="country_id[1]"/> (<t t-esc="country_id_count"/>)
</option>
</t>
</t>
</select>
</div>
</div>
</form>
</div>
</div>
@@ -70,8 +74,8 @@
<template id="ref_country" inherit_id="website_contract.index" inherit_option_id="website_contract.index" name="Left World Map">
<xpath expr="//div[@id='ref_content']" position="before">
<div class="span4">
<ul class="nav nav-list">
<div class="col-md-4">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header">World Map</li>
<iframe t-attf-src="/worldmap/?width=320&amp;height=240&amp;partner_ids=#{ worldmap_partner_ids }&amp;partner_url=/references/"
style="width:320px; height:260px; border:0; padding:0; margin:0;"></iframe>
@@ -79,7 +83,7 @@
</div>
</xpath>
<xpath expr="//div[@id='ref_content']" position="attributes">
<attribute name="class">span8</attribute>
<attribute name="class">col-md-8</attribute>
</xpath>
</template>
@@ -87,8 +91,8 @@
<t t-call="website_contract.layout">
<t t-set="ref_content">
<t t-call="website.publish"><t t-set="object" t-value="partner_id"/></t>
<h1 class="span12 text-center" t-field="partner_id.name"/>
<div class="span4">
<h1 class="col-md-12 text-center" t-field="partner_id.name"/>
<div class="col-md-4">
<div class="text-center">
<img t-att-src="partner_id.img('image_medium')"/>
</div>
@@ -100,17 +104,17 @@
</colgroup>
<tbody>
<t t-set="address" t-value="'&lt;br/&gt;'.join(partner_id.name_get()[0][1].split('\n')[1:])"/>
<tr t-if="address or editable"><th>Address</th><td class="span2" t-raw="address"/></tr>
<tr t-if="partner_id.website or editable"><th>Website</th><td class="span2" t-field="partner_id.website"/></tr>
<tr t-if="partner_id.phone or editable"><th>Tel</th><td class="span2" t-field="partner_id.phone"/></tr>
<tr t-if="partner_id.mobile or editable"><th>Tel</th><td class="span2" t-field="partner_id.mobile"/></tr>
<tr t-if="partner_id.fax or editable"><th>Fax</th><td class="span2" t-field="partner_id.fax"/></tr>
<tr t-if="partner_id.email or editable"><th>Email</th><td class="span2" t-field="partner_id.email"/></tr>
<tr t-if="address or editable"><th>Address</th><td class="col-md-2" t-raw="address"/></tr>
<tr t-if="partner_id.website or editable"><th>Website</th><td class="col-md-2" t-field="partner_id.website"/></tr>
<tr t-if="partner_id.phone or editable"><th>Tel</th><td class="col-md-2" t-field="partner_id.phone"/></tr>
<tr t-if="partner_id.mobile or editable"><th>Tel</th><td class="col-md-2" t-field="partner_id.mobile"/></tr>
<tr t-if="partner_id.fax or editable"><th>Fax</th><td class="col-md-2" t-field="partner_id.fax"/></tr>
<tr t-if="partner_id.email or editable"><th>Email</th><td class="col-md-2" t-field="partner_id.email"/></tr>
</tbody>
</table>
</address>
</div>
<div class="span8 mt32" t-field="partner_id.website_description"/>
<div class="col-md-8 mt32" t-field="partner_id.website_description"/>
</t>
</t>
</template>
+29 -27
View File
@@ -1,42 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="contactus_form" name="Contact Form" inherit_id="website.contactus" inherit_option_id="website.contactus">
<xpath expr="//div[@name='mail_button']" position="replace">
<form action="/crm/contactus" method="post" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="contact_name">Name</label>
<div class="controls">
<input type="text" name="contact_name" required="True"/>
<form action="/crm/contactus" method="post" class="form-horizontal mt32" >
<div class="form-group">
<label class="col-md-2 control-label" for="contact_name">Your Name</label>
<div class="col-md-6">
<input type="text" class="form-control" name="contact_name" required="True" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="phone">Phone number</label>
<div class="controls">
<input type="text" name="phone" required="True" placeholder="e.g. (+32).81.81.37.00"/>
<div class="form-group">
<label class="col-md-2 control-label" for="phone">Phone Number</label>
<div class="col-md-6">
<input type="text" class="form-control" name="phone" required="True" placeholder="e.g. (+32).81.81.37.00"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email_from">Email</label>
<div class="controls">
<input type="text" name="email_from" required="True"/>
<div class="form-group">
<label class="col-md-2 control-label" for="email_from">Email</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email_from" required="True" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">Subject</label>
<div class="controls">
<input type="text" name="name" required="True"/>
<div class="form-group">
<label class="col-md-2 control-label" for="name">Subject</label>
<div class="col-md-6">
<input type="text" class="form-control" name="name" required="True"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="description">Your Question</label>
<div class="controls">
<textarea name="description"/>
<div class="form-group">
<label class="col-md-2 control-label" for="description">Your Question</label>
<div class="col-md-6">
<textarea class="form-control" name="description"/>
</div>
</div>
<div class="control-group">
<div class="controls">
<button class="btn">Send</button>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button class="btn btn-primary">Send</button>
</div>
</div>
</form>
@@ -47,7 +48,7 @@
<t t-call="website.layout">
<t t-set="title">Message Sent</t>
<div class="container">
<div class="alert mt32">
<div class="alert alert-success">
Your message has been sent successfully.
<button type="button" class="close" data-dismiss="alert">&amp;times;</button>
</div>
@@ -57,12 +58,13 @@
</p><p class="mt64">
If you have an emergency, do not hesitate to contact us by phone:
</p>
<ul class='unstyled'>
<ul class="list-unstyled">
<li><i class="icon-phone"></i> : <span t-field="res_company.phone"/></li>
<li><i class="icon-envelope"></i> : <span t-field="res_company.email"></span></li>
<li><i class="icon-envelope"></i> : <span t-field="res_company.email"/></li>
</ul>
</div>
</t>
</template>
</data>
</openerp>
+18 -17
View File
@@ -30,8 +30,8 @@
<t t-set="title">Events</t>
<div class="container mt48">
<div class="row">
<div class="span4 css_noprint" id="left_column">
<ul class="nav nav-list">
<div class="col-md-4 css_noprint" id="left_column">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header">Date</li>
<t t-foreach="dates" t-as="date">
<li t-att-class="searches.get('date') == date[0] and 'active' or ''">
@@ -40,22 +40,22 @@
</t>
</ul>
</div>
<div class='span8 navbar'>
<div class="col-md-8 navbar navbar-default">
<div class='navbar-inner'>
<t t-call="website.pager" >
<t t-set="classname">pull-left</t>
</t>
</div>
</div>
<div class="span8">
<div class="col-md-8">
<ul class="media-list">
<li t-foreach="event_ids" t-as="event" class="media thumbnail">
<div class="media-body">
<span t-if="not event.event_ticket_ids" class="label pull-right">No tickets needed.</span>
<span t-if="not event.event_ticket_ids" class="label label-default pull-right">No tickets needed.</span>
<t t-if="event.event_ticket_ids">
<span t-if="event.register_avail == 9999" class="label pull-right label-info">Tickets availables.</span>
<span t-if="not event.register_avail" class="label pull-right">No ticket available.</span>
<span t-if="event.register_avail and event.register_avail != 9999" t-attf-class="label pull-right label-#{ event.register_avail &lt;= 10 and 'warning' or 'info' }">
<span t-if="event.register_avail == 9999" class="label label-default pull-right label-info">Tickets availables.</span>
<span t-if="not event.register_avail" class="label label-default pull-right">No ticket available.</span>
<span t-if="event.register_avail and event.register_avail != 9999" t-attf-class="label label-default pull-right label-#{ event.register_avail &lt;= 10 and 'warning' or 'info' }">
<t t-if="event.register_avail &lt;= 10">Only</t>
<t t-esc="event.register_avail"/>
<t t-if="event.register_avail &gt; 1">tickets</t>
@@ -81,7 +81,7 @@
</li>
</ul>
</div>
<div class="span8 offset4 text-center">
<div class="col-md-8 col-lg-offset-4 text-center">
<t t-call="website.pager" />
</div>
</div>
@@ -91,7 +91,7 @@
<template id="event_category" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Category">
<xpath expr="//div[@id='left_column']" position="inside">
<ul class="nav nav-list">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header">Category</li>
<t t-foreach="types">
<li t-if="type" t-att-class="searches.get('type') == str(type and type[0]) and 'active' or ''">
@@ -103,7 +103,7 @@
</template>
<template id="event_location" inherit_id="website_event.index" inherit_option_id="website_event.index" name="Location">
<xpath expr="//div[@id='left_column']" position="inside">
<ul class="nav nav-list">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header">Location</li>
<t t-foreach="countries">
<li t-if="country_id" t-att-class="searches.get('country') == str(country_id and country_id[0]) and 'active' or ''">
@@ -123,7 +123,7 @@
<t t-set="title">Events</t>
<div class="container mt48">
<div class="row">
<div class="span4 css_noprint">
<div class="col-md-4 css_noprint">
<h4>When &amp; Where</h4>
<a t-att-href="event_id.google_map_link()" target="_BLANK">
<img class="thumbnail" t-att-src="event_id.google_map_img()"/>
@@ -138,13 +138,14 @@
</t>
</address>
</div>
<div class="span8">
<div class="col-md-8">
<div class="media-body">
<span t-if="not event_id.event_ticket_ids" class="label pull-right">No tickets needed.</span>
<span t-if="not event_id.event_ticket_ids" class="label label-default pull-right">No tickets needed.</span>
<t t-if="event_id.event_ticket_ids">
<span t-if="event_id.register_avail == 9999" class="label pull-right">Tickets availables.</span>
<span t-if="not event_id.register_avail" class="label pull-right">No ticket available.</span>
<span t-if="event_id.register_avail and event_id.register_avail != 9999" t-attf-class="label pull-right label-#{ event_id.register_avail &lt;= 10 and 'warning' or 'info' }">
<span t-if="event_id.register_avail == 9999" class="label label-default pull-right">Tickets availables.</span>
<span t-if="not event_id.register_avail" class="label label-default pull-right">No ticket available.</span>
<span t-if="event_id.register_avail and event_id.register_avail != 9999"
t-attf-class="label label-default pull-right label-#{ event_id.register_avail &lt;= 10 and 'warning' or 'info' }">
<t t-if="event_id.register_avail &lt;= 10">Only</t>
<t t-esc="event_id.register_avail"/>
<t t-if="event_id.register_avail &gt; 1">tickets </t>
+3 -3
View File
@@ -22,15 +22,15 @@
<template id="aboutus" inherit_id="website.aboutus">
<xpath expr="//div[@class='span8']" position="inside">
<xpath expr="//div[@class='col-md-8']" position="inside">
<t t-set="head">
<script type="text/javascript" src="/website_hr/static/src/js/website_hr.js"></script>
<t t-raw="head or ''"/>
</t>
<h3>Our team</h3>
<div class="thumbnails">
<div t-foreach="employee_ids" t-as="employee" class="span4 mt16">
<div class="media thumbnail">
<div t-foreach="employee_ids" t-as="employee" class="col-md-4 mt16">
<div class="media img-thumbnail">
<a class="pull-left" href="#">
<img class="media-object" t-att-src="employee.img('image_small')"/>
</a>
+10 -11
View File
@@ -33,9 +33,8 @@
<t t-set="title">Blog</t>
<div class="container mt48 js_website_mail">
<div class="row">
<div class="span4" id="left_column">
<a t-if="mail_group_id and editable" t-attf-href="/blog/#{ mail_group_id }/new" class="btn">Add a new Blog</a>
<div class="col-md-4" id="left_column">
<a t-if="mail_group_id and editable" t-attf-href="/blog/#{ mail_group_id }/new" class="btn btn-default">Add a new Blog</a>
<div id="blog_subscribe">
<form action="./subscribe" method="POST" class="form-inline" t-if="not subscribe">
<input placeholder="Email Address" type="email" name="email" class="input-medium" t-if="is_public_user"/>
@@ -43,11 +42,11 @@
</form>
<form action="./unsubscribe" method="POST" class="form-inline" t-if="subscribe">
<input type="hidden" name="email" t-att-value="subscribe"/>
<button type="submit" class="btn" name="unsubscribe">Unsubscribe</button>
<button type="submit" class="btn btn-default" name="unsubscribe">Unsubscribe</button>
</form>
</div>
</div>
<div class="span8" t-if="blog_id">
<div class="col-md-8" t-if="blog_id">
<div class="media">
<div class="media-body well">
<t t-call="website.publish"><t t-set="object" t-value="blog_id"/></t>
@@ -70,14 +69,14 @@
</div>
</li>
<form id="post" t-attf-action="/blog/#{ blog_id.res_id }/#{ blog_id.id }/post#post" method="POST" class="form-horizontal text-center" groups="group_website_mail_reply">
<textarea rows="4" placeholder="Your comment" class="span7"> </textarea>
<button type="submit" class="btn">Post your comment</button>
<textarea rows="4" placeholder="Your comment" class="col-md-7 form-control"></textarea>
<button type="submit" class="btn btn-default">Post your comment</button>
</form>
</ul>
</div>
</div>
<div class="span8" t-if="not blog_id and blog_ids">
<div class="col-md-8" t-if="not blog_id and blog_ids">
<ul class="media-list">
<li t-foreach="blog_ids" t-as="blog" class="media well">
<div t-attf-class="media-body #{ 'css_published' if blog.website_published else '' }">
@@ -108,16 +107,16 @@
<template id="blog_history" inherit_id="website_mail.index" inherit_option_id="website_mail.index" name="History">
<xpath expr="//div[@id='left_column']" position="inside">
<ul class="nav nav-list">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header"><a t-attf-href="/blog/#{ mail_group_id }/">BLOG ARCHIVE</a></li>
<!-- TODO: check qweb iteration -->
<li t-foreach="nav_list" t-as="year" class="js_nav_year">
<t t-set="year" t-value="nav_list[year]"/>
<a href="#"><t t-esc="year['name']"/> <small>(<t t-esc="year['date_count']"/>)</small></a>
<ul class="nav nav-list css_nav_month">
<ul class="nav list-group css_nav_month nav-stacked nav-hierarchy">
<t t-foreach="year['months']">
<li class="js_nav_month"><a href="#" t-att-data-domain="__domain"><t t-esc="date"/> <small>(<t t-esc="date_count"/>)</small></a>
<ul class="nav nav-list"/>
<ul class="nav list-group nav-stacked nav-hierarchy"/>
</li>
</t>
</ul>
+127 -129
View File
@@ -23,7 +23,7 @@
<i class="icon-shopping-cart"></i>
My cart
<t t-if="order and order.get_total_quantity()">
<span class="badge badge-success" t-esc="order.get_total_quantity()"/>
<span class="badge" t-esc="order.get_total_quantity()"/>
</t>
</a>
</li>
@@ -53,9 +53,9 @@
<t t-raw="head or ''"/>
</t>
<t t-set="title">Shop - <t t-raw="title">Categories</t></t>
<div class="container mt48 oe_website_sale">
<div class="container oe_website_sale">
<div class="row">
<div class="span12" id="shop_content">
<div class="col-md-12" id="shop_content">
<t t-raw="shop_content" />
</div>
</div>
@@ -64,17 +64,17 @@
</template>
<template id="products_categories" inherit_id="website_sale.layout" inherit_option_id="website_sale.layout" name="Left Product Categories">
<xpath expr="//div[@id='shop_content']" position="before">
<div class="span4">
<ul class="nav nav-list">
<div class="col-md-4">
<ul class="nav nav-pills nav-stacked">
<li t-att-class=" '' if category_id else 'active' " class='active'><a href="/shop/">All Products</a></li>
<t t-foreach="categories" t-as="category">
<t t-call="website_sale.categories_recursive"/>
</t>
<t t-foreach="categories" t-as="category">
<t t-call="website_sale.categories_recursive"/>
</t>
</ul>
</div>
</xpath>
<xpath expr="//div[@id='shop_content']" position="attributes">
<attribute name="class">span8</attribute>
<attribute name="class">col-md-8</attribute>
</xpath>
</template>
@@ -83,7 +83,7 @@
<template id="categories_recursive">
<li t-att-class="category.id == category_id and 'active' or ''">
<a t-attf-href="/shop/category/#{ category.id }/" t-field="category.name"></a>
<ul t-if="category.child_id" class="nav nav-list">
<ul t-if="category.child_id" class="nav nav-pills nav-stacked nav-hierarchy">
<t t-foreach="category.child_id" t-as="category">
<t t-call="website_sale.categories_recursive"/>
</t>
@@ -97,19 +97,16 @@
<t t-call="website_sale.layout">
<t t-set="title">Product</t>
<t t-set="shop_content">
<div class='navbar'>
<div class='navbar-inner'>
<t t-call="website.pager" >
<t t-set="classname">pull-left</t>
</t>
<form t-attf-action="/shop/#{ category_id and ('category/%s/' % category_id) or ''}" method="get" class="navbar-search pull-right pagination">
<input type="text" name="search" class="search-query span2" placeholder="Search" t-att-value="search or '' or ''"/>
</form>
</div>
</div>
<t t-call="website.pager">
<t t-set="classname">pull-left</t>
</t>
<form t-attf-action="/shop/#{ category_id and ('category/%s/' % category_id) or ''}" method="get" class="pull-right pagination">
<input type="text" name="search" class="search-query col-md-2 form-control" placeholder="Search" t-att-value="search or '' or ''"/>
</form>
<div class="clearfix"/>
<div class='row grid grid-align-top'>
<t t-foreach="products" t-as="product">
<div t-attf-class="span2 mb16 thumbnail text-center #{not product.website_published and 'alert' or ''}">
<div t-attf-class="col-md-2 mb16 thumbnail text-center #{not product.website_published and 'alert alert-warning' or ''}" style="width: 170px; margin-left: 16px;">
<a t-attf-href="/shop/product/#{ product.id }/?#{ search and ('search=%s' % search) or ''}#{ category_id and ('&amp;category_id=%s' % category_id) or ''}">
<h5 t-field="product.name"> </h5>
<img class="img-rounded" t-att-src="product.img('image_small')"/>
@@ -123,7 +120,7 @@
<b><t t-esc="product.product_variant_ids[0].price" /> €</b>
</div>
<div class="mb8 mt8">
<a t-if="product.website_published" t-attf-href="./add_cart/#{ product.id }/" class="btn btn-small btn-success">Add to cart</a>
<a t-if="product.website_published" t-attf-href="./add_cart/#{ product.id }/" class="btn btn-default btn-sm btn-success">Add to cart</a>
</div>
</div>
</div>
@@ -142,26 +139,27 @@
<t t-call="website_sale.layout">
<t t-set="title">Product</t>
<t t-set="shop_content">
<div class='navbar'>
<div class='navbar-inner'>
<div class='navbar navbar' role='navigation'>
<div class="collapse navbar-collapse">
<form t-attf-action="/shop/#{ category_id and ('category/%s/' % category_id) or ''}" method="get" class="navbar-search pull-right pagination">
<input type="text" name="search" class="search-query span2" placeholder="Search" t-att-value="search or '' or ''"/>
<input type="text" name="search" class="search-query col-md-2 form-control" placeholder="Search..." t-att-value="search or '' or ''"/>
</form>
</div>
</div>
<div id="product_detail">
<t t-call="website.publish"><t t-set="object" t-value="product"/></t>
<h2 t-field="product.name"></h2>
<a t-if="not product.product_variant_ids" t-attf-href="./add_cart/#{ product.id }/" class="btn btn-small btn-success pull-right">Add to cart</a>
<h1 t-field="product.name"></h1>
<a t-if="not product.product_variant_ids" t-attf-href="./add_cart/#{ product.id }/" class="btn btn-default btn-sm btn-success pull-right">Add to cart</a>
<form t-if="len(product.product_variant_ids) > 1" action="./add_cart/" class="pull-right">
<label class="radio" t-foreach="product.product_variant_ids" t-as="product">
<label label-default="label-default" class="radio" t-foreach="product.product_variant_ids" t-as="product">
<input type="radio" name="product_id" t-att-value="product.id" t-att-checked="product == product.product_variant_ids[0] or None"/>
<t t-esc="product.variants or ''">Standard</t>
<span class="badge" t-if="product.price_extra"><t t-esc="product.price_extra > 0 and '+' or ''"/><t t-esc="product.price_extra"/> €</span>
</label><br/>
<button class="btn btn-small btn-success">Add to cart</button>
<button class="btn btn-sm btn-success">Add to cart</button>
</form>
<img class="media-object" t-att-src="product.img('image_medium')"/>
<img class="media-object img-responsive" t-att-src="product.img('image_medium')"/>
<div t-field="product.website_description"></div>
<div>
<t t-if="product.product_variant_ids[0].lst_price != product.product_variant_ids[0].price">
@@ -177,9 +175,9 @@
<xpath expr="//div[@id='product_detail']" position="inside">
<div class="well mt32" t-if="product.recommended_products()">
<h4>Customers who have bought this item also bought</h4>
<div class='row mt16'>
<div class='row mt16' style="margin-left: 15px !important;">
<t t-foreach="product.recommended_products()" t-as="product">
<div class='span2 thumbnail'>
<div class='col-md-2 thumbnail' style='width: 170px; margin-right: 16px;'>
<a t-attf-href="/shop/product/#{ product.id }/">
<div class='mt16 text-center'>
<img t-att-src="product.img('image_small')"/>
@@ -199,8 +197,8 @@
<t t-call="website_sale.layout">
<t t-set="title">My cart</t>
<t t-set="shop_content">
<div class="span8 oe_mycart">
<h2>My Shopping Cart</h2>
<div class="col-md-12 oe_mycart">
<h1>My Shopping Cart</h1>
<table class='table' id="mycart_products">
<colgroup>
<col width="80"/>
@@ -233,10 +231,10 @@
<span t-field="line.price_unit"></span> €
</td>
<td>
<div class="mb8 mt8 pull-right">
<input type="text" class="js_quantity input-mini" t-att-data-id="line.product_id.id" t-att-value="line.product_uom_qty"/>
<a t-attf-href="./remove_cart/#{ line.product_id.id }/" class="btn mb8 btn-small btn-inverse">-</a>
<a t-attf-href="./add_cart/#{ line.product_id.id }/" class="btn mb8 btn-small btn-success">+</a>
<div class="pull-right">
<input type="text" class="js_quantity input-sm col-md-5" t-att-data-id="line.product_id.id" t-att-value="line.product_uom_qty"/>
<a t-attf-href="./remove_cart/#{ line.product_id.id }/" class="btn btn-default mb8 btn-sm btn-inverse">-</a>
<a t-attf-href="./add_cart/#{ line.product_id.id }/" class="btn btn-default mb8 btn-sm btn-success">+</a>
</div>
</td>
</tr>
@@ -286,7 +284,7 @@
</td>
<td>
<div class="pull-right">
<a t-attf-href="./add_cart/#{ product.id }/" class="btn btn-small btn-success">+</a>
<a t-attf-href="./add_cart/#{ product.id }/" class="btn btn-sm btn-success">+</a>
</div>
</td>
</tr>
@@ -301,7 +299,7 @@
<h4>Suggested products</h4>
<div class='row mt16'>
<t t-foreach="suggested_products" t-as="product">
<div class='span2 thumbnail'>
<div class='col-md-2 thumbnail'>
<a t-attf-href="/shop/product/#{ product.id }/">
<div class='mt16 text-center'>
<img t-att-src="product.img('image_small')"/>
@@ -316,7 +314,7 @@
</template>
<template id="reduction_code" inherit_option_id="website_sale.mycart" name="Reduction Code">
<xpath expr="//table[@id='mycart_total']" position="after">
<form t-if="order and order.order_line" class="well form-search" action="/shop/mycart/" method="post">
<form t-if="order and order.order_line" class="well" action="/shop/mycart/" method="post">
<input name="promo" class='input' type="text" placeholder="Reduction Code..." t-att-value="order.pricelist_id.code or ''"/>
<button class="btn">Apply Code</button>
</form>
@@ -333,9 +331,9 @@
<t t-raw="head or ''"/>
</t>
<t t-set="title">Shop - Checkout</t>
<div class="container mt48 oe_website_sale">
<div class="container oe_website_sale">
<div class="row">
<div class="span4">
<div class="col-md-4">
<table class="table table-condensed">
<thead>
<tr>
@@ -360,56 +358,56 @@
</tfoot>
</table>
</div>
<form class="span8 form-horizontal" action="/shop/confirm_order/" method="post">
<form class="col-md-8 form-horizontal" action="/shop/confirm_order/" method="post">
<div class=" row">
<a t-if="not partner" t-attf-href="/admin#action=redirect&amp;url=#{ host_url }/shop/checkout/" class="btn btn-primary">Log me, I have an account</a>
<h3 class="span8">Billing Information</h3>
<div t-attf-class="control-group #{error.get('name', '')}">
<label class="control-label" for="contact_name">Name and firstname</label>
<div class="controls">
<input type="text" name="name" t-att-value="checkout.get('name', '')"/>
<h3 class="col-md-10">Billing Information</h3>
<div t-attf-class="form-group #{error.get('name', '')}">
<label class="col-lg-3 control-label" for="contact_name">Name and firstname</label>
<div class="col-lg-4">
<input type="text" name="name" class="form-control" t-att-value="checkout.get('name', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('phone', '')}">
<label class="control-label" for="contact_name">Telephone</label>
<div class="controls">
<input type="tel" name="phone" t-att-value="checkout.get('phone', '')"/>
<div t-attf-class="form-group #{error.get('phone', '')}">
<label class="col-lg-3 control-label" for="contact_name">Telephone</label>
<div class="col-lg-4">
<input type="tel" name="phone" class="form-control" t-att-value="checkout.get('phone', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('fax', '')}">
<label class="control-label" for="contact_name">Fax</label>
<div class="controls">
<input type="tel" name="fax" t-att-value="checkout.get('fax', '')"/>
<div t-attf-class="form-group #{error.get('fax', '')}">
<label class="col-lg-3 control-label" for="contact_name">Fax</label>
<div class="col-lg-4">
<input type="tel" name="fax" class="form-control" t-att-value="checkout.get('fax', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('company', '')}">
<label class="control-label" for="contact_name">Company</label>
<div class="controls">
<input type="tel" name="company" t-att-value="checkout.get('company', '')"/>
<div t-attf-class="form-group #{error.get('company', '')}">
<label class="col-lg-3 control-label" for="contact_name">Company</label>
<div class="col-lg-4">
<input type="tel" name="company" class="form-control" t-att-value="checkout.get('company', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('email', '')}">
<label class="control-label" for="contact_name">Email address</label>
<div class="controls">
<input type="tel" name="email" t-att-value="checkout.get('email', '')"/>
<div t-attf-class="form-group #{error.get('email', '')}">
<label class="col-lg-3 control-label" for="contact_name">Email address</label>
<div class="col-lg-4">
<input type="tel" name="email" class="form-control" t-att-value="checkout.get('email', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('street', '')}">
<label class="control-label" for="contact_name">Street</label>
<div class="controls">
<input type="tel" name="street" t-att-value="checkout.get('street', '')"/>
<div t-attf-class="form-group #{error.get('street', '')}">
<label class="col-lg-3 control-label" for="contact_name">Street</label>
<div class="col-lg-4">
<input type="tel" name="street" class="form-control" t-att-value="checkout.get('street', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('city', '')}">
<label class="control-label" for="contact_name">City</label>
<div class="controls">
<input type="tel" name="city" t-att-value="checkout.get('city', '')"/>
<div t-attf-class="form-group #{error.get('city', '')}">
<label class="col-lg-3 control-label" for="contact_name">City</label>
<div class="col-lg-4">
<input type="tel" name="city" class="form-control" t-att-value="checkout.get('city', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('state_id', '')}">
<label class="control-label" for="contact_name">State / Province</label>
<div class="controls">
<select name="state_id">
<div t-attf-class="form-group #{error.get('state_id', '')}">
<label class="col-lg-3 control-label" for="contact_name">State / Province</label>
<div class="col-lg-4">
<select name="state_id" class="form-control">
<option value="">State / Province...</option>
<t t-foreach="states or []" t-as="state">
<option t-att-value="state.id" t-att-selected="state.id == checkout.get('state_id')"><t t-esc="state.name"/></option>
@@ -417,16 +415,16 @@
</select>
</div>
</div>
<div t-attf-class="control-group #{error.get('zip', '')}">
<label class="control-label" for="contact_name">Zip / Postal Code</label>
<div class="controls">
<input type="tel" name="zip" t-att-value="checkout.get('zip', '')"/>
<div t-attf-class="form-group #{error.get('zip', '')}">
<label class="col-lg-3 control-label" for="contact_name">Zip / Postal Code</label>
<div class="col-lg-4">
<input type="tel" name="zip" class="form-control" t-att-value="checkout.get('zip', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('country_id', '')}">
<label class="control-label" for="contact_name">Country</label>
<div class="controls">
<select name="country_id">
<div t-attf-class="form-group #{error.get('country_id', '')}">
<label class="col-lg-3 control-label" for="contact_name">Country</label>
<div class="col-lg-4">
<select name="country_id" class="form-control">
<option value="">Country...</option>
<t t-foreach="countries or []" t-as="country">
<option t-att-value="country.id" t-att-selected="country.id == checkout.get('country_id')"><t t-esc="country.name"/></option>
@@ -434,9 +432,9 @@
</select>
</div>
</div>
<div class="control-group checkbox">
<div class="controls">
<label class="checkbox">
<div class="form-group checkbox">
<div class="col-lg-7 col-md-offset-3">
<label>
<input t-if="not shipping" type="checkbox" name="shipping_different"/>
<input t-if="shipping" type="checkbox" name="shipping_different" checked="1"/>
Ship to different address
@@ -445,41 +443,41 @@
</div>
</div>
<div class="js_shipping row" t-att-style="not shipping and 'display:none' or ''">
<h3 class="span8 oe_shipping">Shipping Information</h3>
<div t-attf-class="control-group #{error.get('shipping_name', '')}">
<label class="control-label" for="contact_name">Name and firstname</label>
<div class="controls">
<input type="text" name="shipping_name" t-att-value="checkout.get('shipping_name', '')"/>
<h3 class="col-md-12 oe_shipping">Shipping Information</h3>
<div t-attf-class="form-group #{error.get('shipping_name', '')}">
<label class="col-lg-3 control-label" for="contact_name">Name and firstname</label>
<div class="col-lg-4">
<input type="text" name="shipping_name" class="form-control" t-att-value="checkout.get('shipping_name', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_phone', '')}">
<label class="control-label" for="contact_name">Telephone</label>
<div class="controls">
<input type="tel" name="shipping_phone" t-att-value="checkout.get('shipping_phone', '')"/>
<div t-attf-class="form-group #{error.get('shipping_phone', '')}">
<label class="col-lg-3 control-label" for="contact_name">Telephone</label>
<div class="col-lg-4">
<input type="tel" name="shipping_phone" class="form-control" t-att-value="checkout.get('shipping_phone', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_fax', '')}">
<label class="control-label" for="contact_name">Fax</label>
<div class="controls">
<input type="tel" name="shipping_fax" t-att-value="checkout.get('shipping_fax', '')"/>
<div t-attf-class="form-group #{error.get('shipping_fax', '')}">
<label class="col-lg-3 control-label" for="contact_name">Fax</label>
<div class="col-lg-4">
<input type="tel" name="shipping_fax" class="form-control" t-att-value="checkout.get('shipping_fax', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_street', '')}">
<label class="control-label" for="contact_name">Street</label>
<div class="controls">
<input type="tel" name="shipping_street" t-att-value="checkout.get('shipping_street', '')"/>
<div t-attf-class="form-group #{error.get('shipping_street', '')}">
<label class="col-lg-3 control-label" for="contact_name">Street</label>
<div class="col-lg-4">
<input type="tel" name="shipping_street" class="form-control" t-att-value="checkout.get('shipping_street', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_city', '')}">
<label class="control-label" for="contact_name">City</label>
<div class="controls">
<input type="tel" name="shipping_city" t-att-value="checkout.get('shipping_city', '')"/>
<div t-attf-class="form-group #{error.get('shipping_city', '')}">
<label class="col-lg-3 control-label" for="contact_name">City</label>
<div class="col-lg-4">
<input type="tel" name="shipping_city" class="form-control" t-att-value="checkout.get('shipping_city', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_state_id', '')}">
<label class="control-label" for="contact_name">State / Province</label>
<div class="controls">
<select name="shipping_state_id">
<div t-attf-class="form-group #{error.get('shipping_state_id', '')}">
<label class="col-lg-3 control-label" for="contact_name">State / Province</label>
<div class="col-lg-4">
<select name="shipping_state_id" class="form-control">
<option value="">State / Province...</option>
<t t-foreach="states or []" t-as="state">
<option t-att-value="state.id" t-att-selected="state.id == checkout.get('shipping_state_id')"><t t-esc="state.name"/></option>
@@ -487,16 +485,16 @@
</select>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_zip', '')}">
<label class="control-label" for="contact_name">Zip / Postal Code</label>
<div class="controls">
<input type="tel" name="shipping_zip" t-att-value="checkout.get('shipping_zip', '')"/>
<div t-attf-class="form-group #{error.get('shipping_zip', '')}">
<label class="col-lg-3 control-label" for="contact_name">Zip / Postal Code</label>
<div class="col-lg-4">
<input type="tel" name="shipping_zip" class="form-control" t-att-value="checkout.get('shipping_zip', '')"/>
</div>
</div>
<div t-attf-class="control-group #{error.get('shipping_country_id', '')}">
<label class="control-label" for="contact_name">Country</label>
<div class="controls">
<select name="shipping_country_id">
<div t-attf-class="form-group #{error.get('shipping_country_id', '')}">
<label class="col-lg-3 control-label" for="contact_name">Country</label>
<div class="col-lg-4">
<select name="shipping_country_id" class="form-control">
<option value="">Country...</option>
<t t-foreach="countries or []" t-as="country">
<option t-att-value="country.id" t-att-selected="country.id == checkout.get('shipping_country_id')"><t t-esc="country.name"/></option>
@@ -505,7 +503,7 @@
</div>
</div>
</div>
<button type="submit">Last stape</button>
<button type="submit" class="btn btn-default">Last stape</button>
</form>
</div>
</div>
@@ -519,9 +517,9 @@
<t t-raw="head or ''"/>
</t>
<t t-set="title">Shop - Payment</t>
<div class="container mt48 oe_website_sale">
<div class="container oe_website_sale">
<div class="row">
<div class="span4">
<div class="col-md-4">
<table class="table table-condensed" t-if="order">
<thead>
<tr>
@@ -546,10 +544,10 @@
</tfoot>
</table>
</div>
<div class="span8">
<div class="col-md-8">
<div class="js_payment row">
<h3 class="span8">Click on your payment method</h3>
<div class="span2">
<h3 class="col-md-12">Click on your payment method</h3>
<div class="col-md-2">
<t t-foreach="payments or []" t-as="payment">
<label>
<input t-att-value="payment.id" type="radio" name="payment_type"/> <t t-esc="payment.name"/>
@@ -557,9 +555,9 @@
</t>
</div>
<t t-foreach="payments or []" t-as="payment">
<div t-att-data-id="payment.id" t-raw="payment._content" class="hidden span6"/>
<div t-att-data-id="payment.id" t-raw="payment._content" class="hidden col-md-6"/>
</t>
<a href="/shop/payment_validate/" class="hidden btn">I validate my payment</a>
<a href="/shop/payment_validate/" class="hidden btn btn-default">I validate my payment</a>
</div>
</div>
</div>