diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 2f49071adf6..2548ad80824 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -271,10 +271,21 @@ class Website(openerp.addons.web.controllers.main.Home):
def robots(self):
return request.website.render('website.robots', {'url_root': request.httprequest.url_root})
- @website.route(['/sitemap.xml'], type='http', auth="public")
- def sitemap(self):
+ @website.route('/sitemap', type='http', auth='public', multilang=True)
+ def sitemap(self, **kwargs):
return request.website.render('website.sitemap', {'pages': request.website.list_pages()})
+ @website.route('/sitemap.xml', type='http', auth="public")
+ def sitemap_xml(self):
+ body = request.website.render('website.sitemap_xml', {
+ 'pages': request.website.list_pages()
+ })
+
+ return request.make_response(body, [
+ ('Content-Type', 'application/xml;charset=utf-8')
+ ])
+
+
class Images(http.Controller):
def placeholder(self, response):
# file_open may return a StringIO. StringIO can be closed but are
diff --git a/addons/website/data/website_demo.xml b/addons/website/data/website_demo.xml
index 672f2f3d29d..d23bc50c817 100644
--- a/addons/website/data/website_demo.xml
+++ b/addons/website/data/website_demo.xml
@@ -9,5 +9,8 @@
http://www.linkedin.com/company/openerp
+
+ Great Product for Great People
+
diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py
index ab09336d6cb..123557a625e 100644
--- a/addons/website/models/ir_ui_view.py
+++ b/addons/website/models/ir_ui_view.py
@@ -131,7 +131,9 @@ class view(osv.osv):
arch_section = html.fromstring(
value, parser=html.HTMLParser(encoding='utf-8'))
- self._normalize_urls(arch_section)
+ # TODO fme: Temporary desactivated because this breaks most of the snippets
+ # Need to find another way to normalize multilang urls (postprocessing) ?
+ # self._normalize_urls(arch_section)
if xpath is None:
# value is an embedded field on its own, not a view section
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index d7f47c01b25..add8c921b92 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -55,7 +55,7 @@ def url_for(path, lang=None, keep_query=None):
if request:
path = urljoin(request.httprequest.path, path)
langs = request.context.get('langs')
- if path[0] == '/' and len(langs) > 1:
+ if path[0] == '/' and (len(langs) > 1 or lang):
ps = path.split('/')
lang = lang or request.context.get('lang')
if ps[1] in langs:
diff --git a/addons/website/static/src/css/editor.css b/addons/website/static/src/css/editor.css
index 8fa0ad80f5f..474012afc98 100644
--- a/addons/website/static/src/css/editor.css
+++ b/addons/website/static/src/css/editor.css
@@ -1,3 +1,4 @@
+@charset "utf-8";
/* ---- CKEditor Minimal Reset ---- */
.navbar.navbar-inverse .cke_chrome {
border: none;
diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css
index c851c7e43f6..dd7d1f3183b 100644
--- a/addons/website/static/src/css/website.css
+++ b/addons/website/static/src/css/website.css
@@ -2,7 +2,7 @@
/* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY
*
* css for editor buttons, openerp widget included in the website and other
- * stuff must go to the editor.css
+ * stuff must go to the editor.css
*
*/
/* ----- GENERIC LAYOUTING HELPERS ---- */
@@ -440,3 +440,7 @@ a[data-publish][data-publish='on']:hover .css_published {
::selection {
background: rgba(150, 150, 220, 0.3);
}
+
+.logo-img {
+ width: 220px;
+}
diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass
index 4d9a6ae01c0..8ef6407e08c 100644
--- a/addons/website/static/src/css/website.sass
+++ b/addons/website/static/src/css/website.sass
@@ -1,10 +1,10 @@
@charset "utf-8"
-/*
+/*
* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY
*
* css for editor buttons, openerp widget included in the website and other
- * stuff must go to the editor.css
+ * stuff must go to the editor.css
*
*/
@@ -133,7 +133,7 @@ html,body, #wrapwrap
header, #wrap, footer
display: table-row
-
+
footer
height: 100%
background: rgb(239, 248, 248)
@@ -183,7 +183,7 @@ footer
// .navbar .nav > li a
// text-shadow: none
-// .nav > li a
+// .nav > li a
// display: block
.carousel-inner .item
@@ -284,7 +284,6 @@ footer
height: 300px
&.oe_big
height: 450px
-
/* -- Hack for removing double scrollbar from mobile preview -- */
div#mobile-preview.modal
overflow: hidden
@@ -335,3 +334,6 @@ a[data-publish]
::selection
background: rgba(150, 150, 220, 0.3)
+
+.logo-img
+ width: 220px
diff --git a/addons/website/static/src/js/website.snippets.js b/addons/website/static/src/js/website.snippets.js
index c29325c8de8..303e670b133 100644
--- a/addons/website/static/src/js/website.snippets.js
+++ b/addons/website/static/src/js/website.snippets.js
@@ -1037,6 +1037,11 @@
this.$target.attr("id", "myCarousel" + id);
this.$target.find(".carousel-control").attr("href", "#myCarousel" + id);
this.$target.find("[data-target='#myCarousel']").attr("data-target", "#myCarousel" + id);
+
+ this.$target.attr('contentEditable', 'false')
+ .find('.content, .carousel-image img')
+ .attr('contentEditable', 'true');
+
this.rebind_event();
},
onFocus: function () {
@@ -1053,6 +1058,9 @@
if(!this.$target.find(".item.active").length) {
this.$target.find(".item:first").addClass("active");
}
+ this.$target.removeAttr('contentEditable')
+ .find('.content, .carousel-image img')
+ .removeAttr('contentEditable');
},
start : function () {
this._super();
@@ -1223,7 +1231,6 @@
size = 'oe_small';
else if ($el.hasClass('oe_medium'))
size = 'oe_medium';
-
var $ul = this.$editor.find('ul[name="parallax-size"]');
var $li = $ul.find("li");
diff --git a/addons/website/views/snippets.xml b/addons/website/views/snippets.xml
index d1f4d92e35a..82c8c94a2c4 100644
--- a/addons/website/views/snippets.xml
+++ b/addons/website/views/snippets.xml
@@ -62,7 +62,7 @@
Banner
-
+
@@ -70,7 +70,7 @@
-
+
Your Banner Title
Click to customize this text
@@ -78,7 +78,7 @@
-
+
@@ -692,6 +692,7 @@
- Landscape
- Photo Woman
- Mountains
+
- Office
- Chose your picture
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 430ed49e08b..43b85ee8b61 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -401,10 +401,22 @@ User-agent: *
Sitemap:
sitemap.xml
-
+
+
+
+
+
+
+
-
+
+
+
@@ -460,31 +472,42 @@ Sitemap: sitemap.xml
-
-
-
-
-
-
About us
- A passion for great products
-
-
-
- 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.
-
-
- 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.
+
+
+ Our products are designed for small to medium companies willing to optimize
+ their performance.
+
+
+
+
+
+
+
+
+
diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py
index 34a117505a5..61a248da1a8 100644
--- a/addons/website_blog/controllers/main.py
+++ b/addons/website_blog/controllers/main.py
@@ -41,7 +41,7 @@ class WebsiteBlog(http.Controller):
'/blog/cat//page//',
'/blog/tag/',
'/blog/tag//',
- ], type='http', auth="public")
+ ], type='http', auth="public", multilang=True)
def blog(self, category_id=None, blog_post_id=None, tag_id=None, page=1, **post):
""" Prepare all values to display the blog.
diff --git a/addons/website_blog/static/src/css/website_blog.css b/addons/website_blog/static/src/css/website_blog.css
index bd680d3b9c2..171f13c7941 100644
--- a/addons/website_blog/static/src/css/website_blog.css
+++ b/addons/website_blog/static/src/css/website_blog.css
@@ -1,4 +1,4 @@
-@import url(compass/css3.css);
+@charset "UTF-8";
.css_website_mail .has-error {
border-color: red;
}
@@ -22,11 +22,14 @@ p.post-meta {
}
.js_website_blog div#right_column section {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
opacity: 0.6;
}
.js_website_blog div#right_column section:hover {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
- -moz-transition: all 0.2s ease-out;
-webkit-transition: all 0.2s ease-out;
+ -moz-transition: all 0.2s ease-out;
+ -o-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
diff --git a/addons/website_blog/static/src/css/website_blog.sass b/addons/website_blog/static/src/css/website_blog.sass
index 43339ad577f..d467df2de47 100644
--- a/addons/website_blog/static/src/css/website_blog.sass
+++ b/addons/website_blog/static/src/css/website_blog.sass
@@ -1,30 +1,29 @@
+@charset "utf-8"
+
@import "compass/css3"
.css_website_mail
- .has-error
- border-color: red
- .css_nav_month
- display: none
- &:first-of-type
- display: block
+ .has-error
+ border-color: red
+ .css_nav_month
+ display: none
+ &:first-of-type
+ display: block
.blog_content
- a.oe_mail_expand:after
- content: " →"
- a.oe_mail_expand
- font-weight: bold
+ a.oe_mail_expand:after
+ content: " →"
+ a.oe_mail_expand
+ font-weight: bold
p.post-meta
- position: relative
- top: -5px
+ position: relative
+ top: -5px
.js_website_blog
- div#right_column
- section
- opacity: 0.6
- section:hover
- opacity: 1
- -moz-transition: all 0.2s ease-out
- -webkit-transition: all 0.2s ease-out
- transition: all 0.2s ease-out
-
+ div#right_column
+ section
+ +opacity(0.6)
+ section:hover
+ +opacity(1)
+ @include transition(all 0.2s ease-out)
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index efbf22814d0..b77214f020f 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -4,10 +4,10 @@
@@ -24,17 +24,17 @@
-
+
-
+
By
+
@@ -112,6 +112,7 @@
Apply for