summaryrefslogtreecommitdiff
path: root/addons/website
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2014-09-05 15:28:22 +0200
committerChristophe Simonis <chs@odoo.com>2014-09-05 15:28:22 +0200
commit31bf30d2d0eb78baaa36360b99fe58bf7cd4c9e7 (patch)
treed7be61ecd6bb4c8b5552e39b03e2a64eebbbf323 /addons/website
parentafba9e8817c458640ae446ac7aaaab79be4fe1e9 (diff)
parented1c173971968eaa96693cb4e1547efa6e6c34e0 (diff)
[MERGE] forward port of branch 8.0 up to ed1c173
Diffstat (limited to 'addons/website')
-rw-r--r--addons/website/README.md117
-rw-r--r--addons/website/__openerp__.py1
-rw-r--r--addons/website/controllers/main.py81
-rw-r--r--addons/website/i18n/website.pot3069
-rw-r--r--addons/website/models/ir_actions.py2
-rw-r--r--addons/website/models/ir_http.py30
-rw-r--r--addons/website/models/ir_qweb.py20
-rw-r--r--addons/website/models/ir_ui_view.py15
-rw-r--r--addons/website/models/website.py51
-rw-r--r--addons/website/static/src/css/website.css5
-rw-r--r--addons/website/static/src/css/website.sass7
-rw-r--r--addons/website/static/src/js/website.editor.js20
-rw-r--r--addons/website/static/src/js/website.seo.js2
-rw-r--r--addons/website/static/src/js/website.snippets.editor.js10
-rw-r--r--addons/website/static/src/js/website.translator.js2
-rw-r--r--addons/website/views/themes.xml26
-rw-r--r--addons/website/views/website_templates.xml105
17 files changed, 3459 insertions, 104 deletions
diff --git a/addons/website/README.md b/addons/website/README.md
new file mode 100644
index 00000000000..2f31310c837
--- /dev/null
+++ b/addons/website/README.md
@@ -0,0 +1,117 @@
+Odoo Website Builder
+--------------------
+
+Get an awesome and <a href="https://www.odoo.com/page/website-builder">free website</a>,
+easily customizable with the Odoo <a href="https://www.odoo.com/page/website-builder">website builder</a>.
+
+Create enterprise grade website with our super easy builder. Use finely
+designed building blocks and edit everything inline.
+
+Benefit from out-of-the-box business features; e-Commerce, events, blogs, jobs
+announces, customer references, call-to-actions, etc.
+
+Edit Anything Inline
+--------------------
+
+Create beautiful websites with no technical knowledge. Odoo's unique *'edit
+inline'* approach makes website creation surprisingly easy. No more complex
+backend; just click anywhere to change any content.
+
+"Want to change the price of a product? or put it in bold? Want to change a
+blog title?" Just click and change. What you see is what you get. Really.
+
+Awesome. Astonishingly Beautiful.
+---------------------------------
+
+Odoo's building blocks allow to design modern websites that are not possible
+with traditional WYSIWYG page editors.
+
+Whether it's for products descriptions, blogs or static pages, you don't need
+to be a professioanl designer to create clean contents. Just drag and drop and
+customize predefined building blocks.
+
+Enterprise-Ready, out-of-the-box
+--------------------------------
+
+Activate ready-to-use enterprise features in just a click; e-commerce,
+call-to-actions, jobs announces, events, customer references, blogs, etc.
+
+Traditional eCommerce and CMS have poorly designed backends as it's not their
+core focus. With the Odoo integration, you benefit from the best management
+software to follow-up on your orders, your jobs applicants, your leads, etc.
+
+A Great Mobile Experience
+-------------------------
+
+Get a mobile friendly website thanks to our responsive design based on
+bootstrap. All your pages adapt automatically to the screen size. (mobile
+phones, tablets, desktop) You don't have to worry about mobile contents, it
+works by default.
+
+SEO tools at your finger tips
+-----------------------------
+
+The *Promote* tool suggests keywords according to Google most searched terms.
+Search Engine Optimization tools are ready to use, with no configuration
+required.
+
+Google Analytics tracks your shopping cart events by default. Sitemap and
+structured content are created automatically for Google indexation.
+
+Multi-Languages Made Easy
+-------------------------
+
+Get your website translated in multiple languages with no effort. Odoo proposes
+and propagates translations automatically across pages, following what you edit
+on the master page.
+
+Benefit from professional translators to translate all your contents
+automatically with the [Gengo](http://gengo.com) integration. Update any part
+of your website and the translated versions are pushed automatically in a few
+hours.
+
+Designer-Friendly Templates
+---------------------------
+
+Templates are awesome and easy to design. You don't need to develop to create
+new pages, themes or building blocks. We use a clean HTML structure, a
+[bootstrap](http://getbootstrap.com/) CSS.
+
+Customize every page on the fly with the integrated template editor. Distribute
+your work easily as an Odoo module.
+
+Fluid Grid Layouting
+--------------------
+
+Design perfect pages by drag and dropping building blocks. Move and scale them
+to fit the layout you are looking for.
+
+Building blocks are based on a responsive, mobile friendly fluid grid system
+that appropriately scales up to 12 columns as the device or viewport size
+increases.
+
+Professional Themes
+-------------------
+
+Design a custom theme or reuse pre-defined themes to customize the look and
+feel of your website.
+
+Test new color scheme easily; you can change your theme at any time in just a
+click.
+
+Integrated With Odoo Apps
+-------------------------
+
+### e-Commerce
+
+Promote products, sell online, optimize visitors' shopping experience.
+
+
+### Blogs
+
+Write news, attract new visitors, build customer loyalty.
+
+
+### Online Events
+
+Schedule, organize, promote or sell events online; conferences, trainings, webinars, etc.
diff --git a/addons/website/__openerp__.py b/addons/website/__openerp__.py
index ab3a84d5e7e..240109d005a 100644
--- a/addons/website/__openerp__.py
+++ b/addons/website/__openerp__.py
@@ -2,6 +2,7 @@
'name': 'Website Builder',
'category': 'Website',
'summary': 'Build Your Enterprise Website',
+ 'website': 'https://www.odoo.com/page/website-builder',
'version': '1.0',
'description': """
OpenERP Website CMS
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index ce080d34821..0f08a9e717c 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -3,12 +3,15 @@ import cStringIO
import datetime
from itertools import islice
import json
+import xml.etree.ElementTree as ET
+
import logging
import re
from sys import maxint
import werkzeug.utils
+import urllib2
import werkzeug.wrappers
from PIL import Image
@@ -53,8 +56,10 @@ class Website(openerp.addons.web.controllers.main.Home):
values = {
'path': page,
}
- # allow shortcut for /page/<website_xml_id>
- if '.' not in page:
+ # /page/website.XXX --> /page/XXX
+ if page.startswith('website.'):
+ return request.redirect('/page/' + page[8:], code=301)
+ elif '.' not in page:
page = 'website.%s' % page
try:
@@ -136,6 +141,22 @@ class Website(openerp.addons.web.controllers.main.Home):
return request.make_response(content, [('Content-Type', mimetype)])
+ @http.route('/website/info', type='http', auth="public", website=True)
+ def website_info(self):
+ try:
+ request.website.get_template('website.info').name
+ except Exception, e:
+ return request.registry['ir.http']._handle_exception(e, 404)
+ irm = request.env()['ir.module.module'].sudo()
+ apps = irm.search([('state','=','installed'),('application','=',True)])
+ modules = irm.search([('state','=','installed'),('application','=',False)])
+ values = {
+ 'apps': apps,
+ 'modules': modules,
+ 'version': openerp.service.common.exp_version()
+ }
+ return request.render('website.info', values)
+
#------------------------------------------------------
# Edit
#------------------------------------------------------
@@ -197,13 +218,13 @@ class Website(openerp.addons.web.controllers.main.Home):
user_groups = set(user.groups_id)
views = request.registry["ir.ui.view"]\
- ._views_get(request.cr, request.uid, xml_id, bundles=bundles, context=request.context)
+ ._views_get(request.cr, request.uid, xml_id, bundles=bundles, context=dict(request.context or {}, active_test=False))
done = set()
result = []
for v in views:
if not user_groups.issuperset(v.groups_id):
continue
- if full or (v.application != 'always' and v.inherit_id.id != view_theme_id):
+ if full or (v.customize_show and v.inherit_id.id != view_theme_id):
if v.inherit_id not in done:
result.append({
'name': v.inherit_id.name,
@@ -220,7 +241,7 @@ class Website(openerp.addons.web.controllers.main.Home):
'xml_id': v.xml_id,
'inherit_id': v.inherit_id.id,
'header': False,
- 'active': v.application in ('always', 'enabled'),
+ 'active': v.active,
})
return result
@@ -334,6 +355,18 @@ class Website(openerp.addons.web.controllers.main.Home):
obj = _object.browse(request.cr, request.uid, _id)
return bool(obj.website_published)
+ @http.route(['/website/seo_suggest/<keywords>'], type='http', auth="public", website=True)
+ def seo_suggest(self, keywords):
+ url = "http://google.com/complete/search"
+ try:
+ req = urllib2.Request("%s?%s" % (url, werkzeug.url_encode({
+ 'ie': 'utf8', 'oe': 'utf8', 'output': 'toolbar', 'q': keywords})))
+ request = urllib2.urlopen(req)
+ except (urllib2.HTTPError, urllib2.URLError):
+ return []
+ xmlroot = ET.fromstring(request.read())
+ return json.dumps([sugg[0].attrib['data'] for sugg in xmlroot if len(sugg) and sugg[0].attrib['data']])
+
#------------------------------------------------------
# Themes
#------------------------------------------------------
@@ -356,8 +389,9 @@ class Website(openerp.addons.web.controllers.main.Home):
enable = []
disable = []
ids = self.get_view_ids(xml_ids)
- for v in view.browse(request.cr, request.uid, ids, context=request.context):
- if v.application != "disabled":
+ context = dict(request.context or {}, active_test=True)
+ for v in view.browse(request.cr, request.uid, ids, context=context):
+ if v.active:
enable.append(v.xml_id)
else:
disable.append(v.xml_id)
@@ -370,19 +404,12 @@ class Website(openerp.addons.web.controllers.main.Home):
cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
view = pool["ir.ui.view"]
- def set_application(ids, application):
- write_ids = []
- for v in view.browse(cr, uid, self.get_view_ids(ids), context=context):
- if v.application == 'always':
- continue
- if v.application != application:
- write_ids.append(v.id)
-
- if write_ids:
- view.write(cr, uid, write_ids, {'application': application})
+ def set_active(ids, active):
+ if ids:
+ view.write(cr, uid, ids, {'active': active}, context=dict(request.context or {}, active_test=True))
- set_application(disable, 'disabled')
- set_application(enable, 'enabled')
+ set_active(disable, False)
+ set_active(enable, True)
return True
@@ -405,7 +432,8 @@ class Website(openerp.addons.web.controllers.main.Home):
'/website/image',
'/website/image/<xmlid>',
'/website/image/<xmlid>/<field>',
- '/website/image/<model>/<id>/<field>'
+ '/website/image/<model>/<id>/<field>',
+ '/website/image/<model>/<id>/<field>/<int:max_width>x<int:max_height>'
], auth="public", website=True)
def website_image(self, model=None, id=None, field=None, xmlid=None, max_width=None, max_height=None):
""" Fetches the requested field and ensures it does not go above
@@ -436,10 +464,15 @@ class Website(openerp.addons.web.controllers.main.Home):
if not model or not id or not field:
raise werkzeug.exceptions.NotFound()
- response = werkzeug.wrappers.Response()
- return request.registry['website']._image(
- request.cr, request.uid, model, id, field, response, max_width, max_height)
-
+ try:
+ response = werkzeug.wrappers.Response()
+ return request.registry['website']._image(
+ request.cr, request.uid, model, id, field, response, max_width, max_height)
+ except Exception:
+ logger.exception("Cannot render image field %r of record %s[%s] at size(%s,%s)",
+ field, model, id, max_width, max_height)
+ response = werkzeug.wrappers.Response()
+ return self.placeholder(response)
#------------------------------------------------------
# Server actions
diff --git a/addons/website/i18n/website.pot b/addons/website/i18n/website.pot
new file mode 100644
index 00000000000..751dd93a55e
--- /dev/null
+++ b/addons/website/i18n/website.pot
@@ -0,0 +1,3069 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * website
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0rc1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-08-14 13:09+0000\n"
+"PO-Revision-Date: 2014-08-14 13:09+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:34
+#: code:addons/website/static/src/xml/website.snippets.xml:35
+#: code:addons/website/static/src/xml/website.snippets.xml:36
+#, python-format
+msgid "&nbsp;"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "&times;"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "' in the box below if you want to confirm."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:356
+#, python-format
+msgid "(Youtube, Vimeo, Dailymotion)"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid ",\n"
+" the #1"
+msgstr ""
+
+#. module: website
+#: view:website:website.sitemap_index_xml
+msgid ".xml"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:22
+#, python-format
+msgid "1. Define Keywords"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:40
+#, python-format
+msgid "2. Reference Your Page"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:57
+#, python-format
+msgid "3. Preview"
+msgstr ""
+
+#. module: website
+#: view:website:website.403
+msgid "403: Forbidden"
+msgstr ""
+
+#. module: website
+#: view:website:website.404
+msgid "404: Page not found!"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "50,000+ companies run Odoo to grow their businesses."
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_window,help:website.action_module_website
+msgid "<p><b>No website module found!</b></p>\n"
+" <p>You should try others search criteria.</p>\n"
+" "
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A Great Headline"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A Punchy Headline"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A Section Subtitle"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A Small Subtitle"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "A calm blue sky"
+msgstr ""
+
+#. module: website
+#: help:ir.actions.server,website_published:0
+msgid "A code server action can be executed from the website, using a dedicatedcontroller. The address is <base>/website/action/<website_path>.Set this field as True to allow users to run this action. If itset to is False the action cannot be run through the website."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "A friendly foundation"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A good subtitle"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A great way to catch your reader's attention is to tell a story.\n"
+" Everything you consider writing can be told as a story."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "A small explanation of this great"
+msgstr ""
+
+#. module: website
+#: view:website:website.aboutus
+#: view:website:website.layout
+msgid "About us"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Adapt these three columns to fit you design need.\n"
+" To duplicate, delete or move columns, select the\n"
+" column and use the top icons to perform your action."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:215
+#: code:addons/website/static/src/xml/website.seo.xml:30
+#, python-format
+msgid "Add"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:67
+#, python-format
+msgid "Add Another Block"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.contentMenu.xml:39
+#: code:addons/website/static/src/xml/website.contentMenu.xml:47
+#, python-format
+msgid "Add Menu Entry"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Add Slide"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Add a great slogan"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Add a language..."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:212
+#, python-format
+msgid "Add an image URL"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:25
+#, python-format
+msgid "Add keyword:"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:111
+#, python-format
+msgid "Add new pages and menus"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.contentMenu.js:50
+#, python-format
+msgid "Add page in menu"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "All these icons are licensed under creative commons so that you can use them."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Amelia"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "An error occured while rendering the template"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "An ode to Metro"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "And a great subtitle too"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+#: view:website:website.view_website_form
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Apply"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Aqua"
+msgstr ""
+
+#. module: website
+#: field:ir.attachment,website_url:0
+msgid "Attachment URL"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Author of this quote"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:44
+#, python-format
+msgid "Auto Resize"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:394
+#, python-format
+msgid "Autoplay"
+msgstr ""
+
+#. module: website
+#: field:ir.actions.server,website_published:0
+msgid "Available on the Website"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Baby Blue"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Back"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Background"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Banner"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Banner Odoo Image"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:92
+#, python-format
+msgid "Basic"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Battery: 12 hours"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Battery: 20 hours"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Battery: 8 hours"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Beginner"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Big Message"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Big Picture"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Bigger Text"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Black"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:13
+#, python-format
+msgid "Block style"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Box"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:8
+#, python-format
+msgid "Build a page"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Business Guy"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Button"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Can I use it to manage projects based on agile methodologies?"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:300
+#: code:addons/website/static/src/xml/website.translator.xml:46
+#: code:addons/website/static/src/xml/website.xml:74
+#: view:website:website.500
+#: view:website:website.view_website_form
+#: view:website.config.settings:website.view_website_config_settings
+#, python-format
+msgid "Cancel"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Cerulean"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:308
+#, python-format
+msgid "Change"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Change Background"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Change Icons"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:315
+#, python-format
+msgid "Change Media"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Change Theme"
+msgstr ""
+
+#. module: website
+#: view:website:website.contactus
+msgid "Change address"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Change..."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:103
+#, python-format
+msgid "Check Mobile Preview"
+msgstr ""
+
+#. module: website
+#: field:website.menu,child_id:0
+msgid "Child Menus"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Choose a vibrant image and write an inspiring paragraph\n"
+" about it. It does not have to be long, but it should\n"
+" reinforce your image."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Choose an image..."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Circle"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:28
+#, python-format
+msgid "Click here to insert blocks of content in the page."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:43
+#, python-format
+msgid "Click in the text and start editing it."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Click on the icon to adapt it to your feature"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:49
+#: view:website:website.snippets
+#, python-format
+msgid "Click to customize this text"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.ace.xml:11
+#: code:addons/website/static/src/xml/website.seo.xml:13
+#: code:addons/website/static/src/xml/website.translator.xml:11
+#: code:addons/website/static/src/xml/website.xml:10
+#: code:addons/website/static/src/xml/website.xml:26
+#: code:addons/website/static/src/xml/website.xml:43
+#, python-format
+msgid "Close"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:113
+#, python-format
+msgid "Close Tutorial"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Color Splash"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:86
+#, python-format
+msgid "Color Style"
+msgstr ""
+
+#. module: website
+#: model:ir.model,name:website.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: website
+#: field:website,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Company name"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Comparisons"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Configure Website"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Configure website menus"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Connect with us"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Consider telling\n"
+" a great story that provides personality. Writing a story\n"
+" with personality for potential clients will asist with\n"
+" making a relationship connection. This shows up in small\n"
+" quirks like word choices or phrases. Write from your point\n"
+" of view, not from someone else's experience."
+msgstr ""
+
+#. module: website
+#: view:website:website.403
+#: view:website:website.404
+msgid "Contact Us"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Contact Us Now"
+msgstr ""
+
+#. module: website
+#: view:website:website.contactus
+#: view:website:website.layout
+#: view:website:website.snippets
+#: model:website.menu,name:website.menu_contactus
+msgid "Contact us"
+msgstr ""
+
+#. module: website
+#: view:website:website.contactus
+msgid "Contact us about anything related to our company or services."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Contact us ยป"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+#: view:website:website.snippets
+msgid "Content"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:22
+#, python-format
+msgid "Content to translate"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:61
+#: code:addons/website/static/src/js/website.tour.banner.js:90
+#: code:addons/website/static/src/js/website.tour.banner.js:105
+#: code:addons/website/static/src/xml/website.xml:73
+#, python-format
+msgid "Continue"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Copyright &copy;"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Cosmo"
+msgstr ""
+
+#. module: website
+#: view:website:website.page_404
+msgid "Create Page"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.editor.js:987
+#, python-format
+msgid "Create page '%s'"
+msgstr ""
+
+#. module: website
+#: field:website,create_uid:0
+#: field:website.config.settings,create_uid:0
+#: field:website.converter.test.sub,create_uid:0
+#: field:website.menu,create_uid:0
+#: field:website.seo.metadata,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: website
+#: field:website,create_date:0
+#: field:website.config.settings,create_date:0
+#: field:website.converter.test.sub,create_date:0
+#: field:website.menu,create_date:0
+#: field:website.seo.metadata,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Crisp like a new sheet of paper."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:313
+#: code:addons/website/static/src/xml/website.snippets.xml:31
+#: view:website:website.layout
+#, python-format
+msgid "Customize"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:60
+#, python-format
+msgid "Customize any block through this menu. Try to change the background of the banner."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:42
+#, python-format
+msgid "Customize banner's text"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:59
+#, python-format
+msgid "Customize the banner"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Cyborg"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:107
+#, python-format
+msgid "Danger"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Dark Blue"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Darken"
+msgstr ""
+
+#. module: website
+#: field:ir.attachment,datas_checksum:0
+msgid "Datas checksum"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:123
+#: view:website:website.themes
+#, python-format
+msgid "Default"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Default Theme"
+msgstr ""
+
+#. module: website
+#: field:website,default_lang_id:0
+#: field:website.config.settings,default_lang_id:0
+msgid "Default language"
+msgstr ""
+
+#. module: website
+#: field:website,default_lang_code:0
+#: field:website.config.settings,default_lang_code:0
+msgid "Default language code"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Delete Blocks"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Delete the above image or replace it with a picture\n"
+" that illustrates your message. Click on the picture to\n"
+" change it's"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Deploy new stores with just an internet connection: no\n"
+" installation, no specific hardware required. It works with any\n"
+" iPad, Tablet PC, laptop or industrial POS machine."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:49
+#, python-format
+msgid "Description"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:120
+#, python-format
+msgid "Description..."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:11
+#: code:addons/website/static/src/xml/website.editor.xml:30
+#: code:addons/website/static/src/xml/website.editor.xml:191
+#: code:addons/website/static/src/xml/website.editor.xml:239
+#: code:addons/website/static/src/xml/website.editor.xml:298
+#: code:addons/website/static/src/xml/website.seo.xml:71
+#, python-format
+msgid "Discard"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:288
+#, python-format
+msgid "Discard edition"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Discuss and Comments"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:41
+#, python-format
+msgid "Do not show this dialog later."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Does it works offline?"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+#: field:website,name:0
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Domain"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:74
+#, python-format
+msgid "Drag & Drop This Block"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:34
+#, python-format
+msgid "Drag & Drop a Banner"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.contentMenu.xml:34
+#, python-format
+msgid "Drag a menu to the right to create a sub-menu"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:75
+#, python-format
+msgid "Drag the <em>'Features'</em> block and drop it below the banner."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:35
+#, python-format
+msgid "Drag the Banner block and drop it in your page."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:34
+#, python-format
+msgid "Drag to Move"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Duplicate"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:35
+#, python-format
+msgid "Duplicate Container"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Duplicate blocks to add more features."
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+#: view:website:website.publish_management
+msgid "Edit"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.contentMenu.xml:27
+#: view:website:website.layout
+#, python-format
+msgid "Edit Menu"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.contentMenu.xml:48
+#, python-format
+msgid "Edit Menu Entry"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Edit Top Menu"
+msgstr ""
+
+#. module: website
+#: view:website:website.publish_management
+msgid "Edit in backend"
+msgstr ""
+
+#. module: website
+#: view:website:website.page_404
+msgid "Edit the content below this line to adapt the default \"page not found\" page."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:20
+#, python-format
+msgid "Edit this page"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Effects"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:368
+#, python-format
+msgid "Embed Video (HTML)"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Enterprise package"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "Error"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "Error message:"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:21
+#, python-format
+msgid "Every page of your website can be modified through the <i>Edit</i> button."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Expert"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Explain the benefits you offer. Don't write about products or\n"
+" services here, write about solutions."
+msgstr ""
+
+#. module: website
+#: field:ir.actions.server,xml_id:0
+msgid "External ID"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:117
+#, python-format
+msgid "Extra Small"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "FAQ"
+msgstr ""
+
+#. module: website
+#: field:website,social_facebook:0
+#: field:website.config.settings,social_facebook:0
+msgid "Facebook Account"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Fast"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Feature Grid"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Feature One"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Feature Three"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Feature Title"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Feature Two"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Features"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "First Feature"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Fixed"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Flat and modern"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Flatly"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Flowers Field"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.ace.xml:10
+#, python-format
+msgid "Format"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Free shipping, satisfied or reimbursed."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "From the main container, you can change the background to highlight features."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:52
+#, python-format
+msgid "Get banner properties"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:15
+#, python-format
+msgid "Get this page efficiently referenced in Google to attract more visitors."
+msgstr ""
+
+#. module: website
+#: field:website,social_github:0
+#: field:website.config.settings,social_github:0
+msgid "GitHub Account"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:88
+#, python-format
+msgid "Good Job!"
+msgstr ""
+
+#. module: website
+#: field:website,google_analytics_key:0
+#: field:website.config.settings,google_analytics_key:0
+msgid "Google Analytics Key"
+msgstr ""
+
+#. module: website
+#: field:website,social_googleplus:0
+#: field:website.config.settings,social_googleplus:0
+msgid "Google+ Account"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Great Value"
+msgstr ""
+
+#. module: website
+#: view:website:website.aboutus
+msgid "Great products for great people"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Great stories are for everyone even when only written for\n"
+" just one person."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Great stories have personality."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Green"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Greenfields"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "HELP & TUTORIALS"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "HTML Editor"
+msgstr ""
+
+#. module: website
+#: model:ir.model,name:website.model_ir_http
+msgid "HTTP routing"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Have a look at"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Help"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:19
+#, python-format
+msgid "Here are the visuals used to help you translate efficiently:"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+#: view:website:website.layout
+#: model:website.menu,name:website.menu_homepage
+msgid "Home"
+msgstr ""
+
+#. module: website
+#: view:website:website.403
+#: view:website:website.404
+#: view:website:website.layout
+msgid "Homepage"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:321
+#, python-format
+msgid "Horizontal flip"
+msgstr ""
+
+#. module: website
+#: field:website,id:0
+#: field:website.config.settings,id:0
+#: field:website.converter.test.sub,id:0
+#: field:website.menu,id:0
+#: field:website.qweb,id:0
+#: field:website.qweb.field,id:0
+#: field:website.qweb.field.contact,id:0
+#: field:website.qweb.field.date,id:0
+#: field:website.qweb.field.datetime,id:0
+#: field:website.qweb.field.duration,id:0
+#: field:website.qweb.field.float,id:0
+#: field:website.qweb.field.html,id:0
+#: field:website.qweb.field.image,id:0
+#: field:website.qweb.field.integer,id:0
+#: field:website.qweb.field.many2one,id:0
+#: field:website.qweb.field.monetary,id:0
+#: field:website.qweb.field.qweb,id:0
+#: field:website.qweb.field.relative,id:0
+#: field:website.qweb.field.selection,id:0
+#: field:website.qweb.field.text,id:0
+#: field:website.seo.metadata,id:0
+msgid "ID"
+msgstr ""
+
+#. module: website
+#: help:ir.actions.server,xml_id:0
+msgid "ID of the action if defined in a XML file"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "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"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:291
+#, python-format
+msgid "If you discard the current edition,"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "If you try to write with a wide general\n"
+" audience in mind, your story will ring false and be bland.\n"
+" No one will be interested. Write for one person. If itโ€™s genuine for the one, itโ€™s genuine for the rest."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:156
+#, python-format
+msgid "Image"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Image Gallery"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Image-Text"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:30
+#, python-format
+msgid "In this mode, you can only translate texts. To\n"
+" change the structure of the page, you must edit the\n"
+" master page. Each modification on the master page\n"
+" is automatically applied to all translated\n"
+" versions."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:101
+#, python-format
+msgid "Info"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:7
+#, python-format
+msgid "Insert Blocks"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:27
+#, python-format
+msgid "Insert building blocks"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Install Apps"
+msgstr ""
+
+#. module: website
+#: model:ir.model,name:website.model_base_language_install
+msgid "Install Language"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Internal Server Error"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.xml:35
+#, python-format
+msgid "It might be possible to edit the relevant items\n"
+" or fix the issue in"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Jet black and electric blue"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "John Doe, CEO"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Join us and make your company a better place."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Journal"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Landscape"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Language"
+msgstr ""
+
+#. module: website
+#: field:website,language_ids:0
+#: field:website.config.settings,language_ids:0
+msgid "Languages"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:126
+#, python-format
+msgid "Large"
+msgstr ""
+
+#. module: website
+#: field:website,write_uid:0
+#: field:website.config.settings,write_uid:0
+#: field:website.converter.test.sub,write_uid:0
+#: field:website.menu,write_uid:0
+#: field:website.seo.metadata,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: website
+#: field:website,write_date:0
+#: field:website.config.settings,write_date:0
+#: field:website.converter.test.sub,write_date:0
+#: field:website.menu,write_date:0
+#: field:website.seo.metadata,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:68
+#, python-format
+msgid "Let's add another building block to your page."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:97
+#, python-format
+msgid "Let's check how your homepage looks like on mobile devices."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Limited support"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:89
+#, python-format
+msgid "Link"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:71
+#, python-format
+msgid "Link text"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:41
+#, python-format
+msgid "Link to"
+msgstr ""
+
+#. module: website
+#: field:website,social_linkedin:0
+#: field:website.config.settings,social_linkedin:0
+msgid "LinkedIn Account"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "List of Features"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Logout"
+msgstr ""
+
+#. module: website
+#: field:website,menu_id:0
+msgid "Main Menu"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Mango"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:60
+#, python-format
+msgid "Margin resize"
+msgstr ""
+
+#. module: website
+#: view:website:website.403
+#: view:website:website.404
+msgid "Maybe you were looking for one of these popular pages ?"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+#: field:website.menu,name:0
+msgid "Menu"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.contentMenu.xml:55
+#, python-format
+msgid "Menu Label"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Message"
+msgstr ""
+
+#. module: website
+#: field:ir.attachment,mimetype:0
+msgid "Mime Type"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Mini and minimalist."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.xml:11
+#: view:website:website.layout
+#, python-format
+msgid "Mobile preview"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "More than 500 happy customers."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "More than 500 successful projects"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:36
+#, python-format
+msgid "Most searched topics related to your keywords, ordered by importance:"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Mountains"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "My Account"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Narrow"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.contentMenu.js:38
+#: view:website:website.layout
+#, python-format
+msgid "New Page"
+msgstr ""
+
+#. module: website
+#: field:website.menu,new_window:0
+msgid "New Window"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.editor.js:972
+#, python-format
+msgid "New or existing page"
+msgstr ""
+
+#. module: website
+#: view:website:website.kanban_contain
+#: view:website:website.pager
+msgid "Next"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:162
+#, python-format
+msgid "Next โ†’"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "No support"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "None"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.backend.xml:10
+#: view:website:website.publish_management
+#: view:website:website.publish_short
+#, python-format
+msgid "Not Published"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Odoo"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Odoo provides essential platform for our project management.\n"
+" Things are better organized and more visible with it."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Odoo provides essential platform for our project management.\n"
+" Things are better organized and more visible with it."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Odoo provides essential platform for our project management.\n"
+" Things are better organized and more visible with it."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Odoo's POS is a web application that can run on any device that\n"
+" can display websites with little to no setup required."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:44
+#, python-format
+msgid "Ok"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Open Source eCommerce"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:56
+#, python-format
+msgid "Open in new window"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Optimized for legibility"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Orange"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Orange Red"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Order now"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "Other Info"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Our Customer References"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Our Offers"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Our References"
+msgstr ""
+
+#. module: website
+#: view:website:website.aboutus
+msgid "Our Team"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Our products & Services"
+msgstr ""
+
+#. module: website
+#: view:website:website.aboutus
+msgid "Our products are designed for small to medium size companies willing to optimize\n"
+" their performance."
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Our products are designed for small to medium size companies willing to optimize\n"
+" their performance."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:46
+#, python-format
+msgid "Page"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.contentMenu.js:39
+#, python-format
+msgid "Page Title"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Panel"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Panels are a great tool to compare offers or to emphasize on\n"
+" key features. To compare products, use the inside columns."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Parallax"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Parallax Slider"
+msgstr ""
+
+#. module: website
+#: field:website.menu,parent_left:0
+msgid "Parent Left"
+msgstr ""
+
+#. module: website
+#: field:website.menu,parent_id:0
+msgid "Parent Menu"
+msgstr ""
+
+#. module: website
+#: field:website.menu,parent_right:0
+msgid "Parent Right"
+msgstr ""
+
+#. module: website
+#: model:ir.model,name:website.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_post
+msgid "Partner Detail"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Partners"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "People"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:157
+#, python-format
+msgid "Pictogram"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Point of Sale Questions"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Powered by"
+msgstr ""
+
+#. module: website
+#: view:website:website.kanban_contain
+#: view:website:website.pager
+msgid "Prev"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:135
+#: code:addons/website/static/src/xml/website.editor.xml:365
+#: code:addons/website/static/src/xml/website.editor.xml:376
+#, python-format
+msgid "Preview"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:98
+#, python-format
+msgid "Primary"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Professional"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Project Management Questions"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:5
+#: view:website:website.layout
+#, python-format
+msgid "Promote"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:14
+#, python-format
+msgid "Promote This Page"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:5
+#: view:website:website.layout
+#, python-format
+msgid "Promote page on the web"
+msgstr ""
+
+#. module: website
+#: field:website,partner_id:0
+msgid "Public Partner"
+msgstr ""
+
+#. module: website
+#: field:website,user_id:0
+msgid "Public User"
+msgstr ""
+
+#. module: website
+#: view:website:website.publish_management
+msgid "Publish"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:83
+#, python-format
+msgid "Publish your page by clicking on the <em>'Save'</em> button."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.backend.xml:11
+#: view:website:website.publish_management
+#: view:website:website.publish_short
+#, python-format
+msgid "Published"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Pure Bootstrap"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Purple"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "QWeb"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+#: view:website:website.snippets
+msgid "Quote"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Quotes Slider"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Readable"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Recipient"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Red"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "References"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:36
+#, python-format
+msgid "Remove Block"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:37
+#, python-format
+msgid "Remove Link"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Remove Slide"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Reset Transformation"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Reset selected templates"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Reset templates"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:45
+#, python-format
+msgid "Resize"
+msgstr ""
+
+#. module: website
+#: field:ir.attachment,datas_big:0
+msgid "Resized file content"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:318
+#, python-format
+msgid "Rotation"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Rounded corners"
+msgstr ""
+
+#. module: website
+#: model:ir.model,name:website.model_website_seo_metadata
+msgid "SEO metadata"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Sample images"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.ace.xml:9
+#: code:addons/website/static/src/xml/website.editor.xml:9
+#: code:addons/website/static/src/xml/website.editor.xml:27
+#: code:addons/website/static/src/xml/website.editor.xml:188
+#: code:addons/website/static/src/xml/website.seo.xml:69
+#, python-format
+msgid "Save"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:82
+#, python-format
+msgid "Save your modifications"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Screen: 2.5 inch"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Screen: 2.8 inch"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Scroll Speed"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:104
+#, python-format
+msgid "Scroll to check rendering and then close the mobile preview."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Second Feature"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Second List"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.snippets.xml:29
+#, python-format
+msgid "Select Container Block"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:152
+#, python-format
+msgid "Select a Media"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:232
+#, python-format
+msgid "Select a Picture"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Select and delete blocks to remove some features."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:53
+#, python-format
+msgid "Select the parent container to get the global options of the banner."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Sell Online. Easily."
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Send"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_comment
+msgid "Send a Message to our Partners"
+msgstr ""
+
+#. module: website
+#: view:website:website.contactus
+msgid "Send us an email"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Separator"
+msgstr ""
+
+#. module: website
+#: field:website.menu,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:357
+#, python-format
+msgid "Set a video URL"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Shades of gunmetal gray"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Shadow"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Share"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Sign in"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Silvery and sleek."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Simplex"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:114
+#, python-format
+msgid "Size"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:14
+#, python-format
+msgid "Skip It"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Slate"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Slow"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:120
+#, python-format
+msgid "Small"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+#: view:website.config.settings:website.view_website_config_settings
+msgid "Social Media"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Spacelab"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:320
+#: view:website:website.snippet_options
+#, python-format
+msgid "Spin"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:14
+#, python-format
+msgid "Start Tutorial"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Start with the customer โ€“ find out what they want\n"
+" and give it to them."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Starter package"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Static"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Structure"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:81
+#: code:addons/website/static/src/xml/website.editor.xml:316
+#: view:website:website.snippet_options
+#, python-format
+msgid "Style"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Subtitle"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Subtitle 2"
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Subtitle 3"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:95
+#, python-format
+msgid "Success"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Sunflower"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Sweet and cheery"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Tell features the visitor would like to know, not what you'd like to say."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Tell what's the value for the"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.ace.js:234
+#, python-format
+msgid "Template ID: %s"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Template fallback"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:96
+#, python-format
+msgid "Test Your Mobile Version"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Text Block"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Text-Image"
+msgstr ""
+
+#. module: website
+#: view:website:website.template_partner_post
+msgid "Thank you for posting a message !"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:112
+#, python-format
+msgid "The 'Content' menu allows you to add pages or add the top menu."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "The Point of Sale works perfectly on any kind of touch enabled\n"
+" device, whether it's multi-touch tablets like an iPad or\n"
+" keyboardless resistive touchscreen terminals."
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "The error occured while rendering the template"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "The following error was raised in the website controller"
+msgstr ""
+
+#. module: website
+#: help:ir.actions.server,website_url:0
+msgid "The full URL to access the server action through the website."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:258
+#, python-format
+msgid "The image could not be deleted because it is used in the\n"
+" following pages or views:"
+msgstr ""
+
+#. module: website
+#: view:website:website.403
+msgid "The page you were looking for could not be authorized."
+msgstr ""
+
+#. module: website
+#: view:website:website.404
+msgid "The page you were looking for could not be found; it is possible you have\n"
+" typed the address incorrectly, but it has most probably been removed due\n"
+" to the recent website reorganisation."
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "The selected templates will be reset to their factory settings."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "The top of the top"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.xml:34
+#, python-format
+msgid "The web site has encountered an error."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Theme Changed!"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Third Feature"
+msgstr ""
+
+#. module: website
+#: view:website:website.page_404
+msgid "This page does not exists, but you can create it as you are administrator of this site."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:13
+#, python-format
+msgid "This tutorial will guide you to build your home page. We will start by adding a banner."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Three Columns"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:43
+#: view:website:website.snippets
+#, python-format
+msgid "Title"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "To add a fourth column, reduce the size of these\n"
+" three columns using the right icon of each block.\n"
+" Then, duplicate one of the column to create a new\n"
+" one as a copy."
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "Toggle navigation"
+msgstr ""
+
+#. module: website
+#: model:website.menu,name:website.main_menu
+msgid "Top Menu"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "Traceback"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Transform"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:12
+#, python-format
+msgid "Translate this page"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:25
+#, python-format
+msgid "Translated content"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Try a New Theme"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Turquoise"
+msgstr ""
+
+#. module: website
+#: field:website,social_twitter:0
+#: field:website.config.settings,social_twitter:0
+msgid "Twitter Account"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "Type '"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+#: view:website.config.settings:website.view_website_config_settings
+msgid "UA-XXXXXXXX-Y"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:61
+#, python-format
+msgid "URL or Email Address"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Ubuntu orange and unique font"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Uniform Color"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "United"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Unlimited support"
+msgstr ""
+
+#. module: website
+#: view:website:website.publish_management
+msgid "Unpublish"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:207
+#, python-format
+msgid "Upload an image from your computer"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:208
+#, python-format
+msgid "Uploading..."
+msgstr ""
+
+#. module: website
+#: field:website.menu,url:0
+msgid "Url"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Various"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Velour"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:322
+#, python-format
+msgid "Vertical flip"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Very Fast"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Very Slow"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:158
+#, python-format
+msgid "Video"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.backend.xml:18
+#, python-format
+msgid "View in frontend"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:104
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: website
+#: view:website:website.aboutus
+msgid "We are a team of passionate people whose goal is to improve everyone's\n"
+" life through disruptive products. We build great products to solve your\n"
+" business problems."
+msgstr ""
+
+#. module: website
+#: view:website:website.layout
+msgid "We are a team of passionate people whose goal is to improve everyone's\n"
+" life through disruptive products. We build great products to solve your\n"
+" business problems."
+msgstr ""
+
+#. module: website
+#: view:website:website.contactus
+msgid "We'll do our best to get back to you as soon as possible."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.backend.xml:18
+#: model:ir.actions.act_url,name:website.action_website
+#: view:ir.actions.server:website.view_server_action_search_website
+#: model:ir.model,name:website.model_website
+#: model:ir.ui.menu,name:website.menu_website
+#: view:website:website.layout
+#: field:website.menu,website_id:0
+#, python-format
+msgid "Website"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_window,name:website.action_module_website
+msgid "Website Apps"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_url,name:website.action_website_homepage
+msgid "Website Homepage"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_window,name:website.action_website_menu
+#: model:ir.model,name:website.model_website_menu
+msgid "Website Menu"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.server,name:website.action_partner_post
+msgid "Website Partner Post and Thanks Demo"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.server,name:website.action_partner_comment
+msgid "Website Partners Comment Form"
+msgstr ""
+
+#. module: website
+#: field:ir.actions.server,website_path:0
+msgid "Website Path"
+msgstr ""
+
+#. module: website
+#: model:crm.case.section,name:website.salesteam_website_sales
+msgid "Website Sales"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_window,name:website.action_website_configuration
+#: model:ir.ui.menu,name:website.menu_website_configuration
+#: view:website:website.view_website_form
+msgid "Website Settings"
+msgstr ""
+
+#. module: website
+#: field:ir.actions.server,website_url:0
+msgid "Website URL"
+msgstr ""
+
+#. module: website
+#: model:ir.actions.act_url,name:website.action_website_tutorial
+msgid "Website With Tutorial"
+msgstr ""
+
+#. module: website
+#: view:website.menu:website.menu_tree
+msgid "Website menu"
+msgstr ""
+
+#. module: website
+#: field:ir.ui.view,website_meta_description:0
+#: field:website.seo.metadata,website_meta_description:0
+msgid "Website meta description"
+msgstr ""
+
+#. module: website
+#: field:ir.ui.view,website_meta_keywords:0
+#: field:website.seo.metadata,website_meta_keywords:0
+msgid "Website meta keywords"
+msgstr ""
+
+#. module: website
+#: field:ir.ui.view,website_meta_title:0
+#: field:website.seo.metadata,website_meta_title:0
+msgid "Website meta title"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_tree
+msgid "Websites"
+msgstr ""
+
+#. module: website
+#: field:base.language.install,website_ids:0
+msgid "Websites to translate"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Weight: 1.1 ounces"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Weight: 1.2 ounces"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:12
+#, python-format
+msgid "Welcome to your website!"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Well"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:89
+#, python-format
+msgid "Well done, you created your homepage."
+msgstr ""
+
+#. module: website
+#: field:ir.ui.view,page:0
+msgid "Whether this view is a web page template (complete)"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Which hardware does Odoo POS support?"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "While an internet connection is required to start the Point of\n"
+" Sale, it will stay operational even after a complete disconnection."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Wood"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write a quote here from one of your customers. Quotes are a\n"
+" great way to build confidence in your products or services."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write a quote here from one of your customers. Quotes are a\n"
+" great way to build confidence in your products or services."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write a quote here from one of your customers. Quotes are a\n"
+" great way to build confidence in your products or services."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write a quote here from one of your customers. Quotes are a\n"
+" great way to build confidence in your products or services."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write one or two paragraphs describing your product or\n"
+" services. To be successful your content needs to be\n"
+" useful to your readers."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write one or two paragraphs describing your product,\n"
+" services or a specific feature. To be successful\n"
+" your content needs to be useful to your readers."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write one sentence to convince visitor about your message."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Write what the customer would like to know,"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippet_options
+msgid "Yellow Green"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Yes."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "Yeti"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:16
+#, python-format
+msgid "You are about to enter the translation mode."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:295
+#, python-format
+msgid "You can cancel to return to the edition mode."
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "You'll be able to change the theme at anytime"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/js/website.tour.banner.js:48
+#: view:website:website.snippets
+#, python-format
+msgid "Your Banner Title"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "Your Website Title"
+msgstr ""
+
+#. module: website
+#: field:website,social_youtube:0
+#: field:website.config.settings,social_youtube:0
+msgid "Youtube Account"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:292
+#, python-format
+msgid "all"
+msgstr ""
+
+#. module: website
+#: view:website:website.http_error_debug
+msgid "and evaluating the following expression:"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:325
+#, python-format
+msgid "border"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "customer for this feature."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:22
+#, python-format
+msgid "describing your page content"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "factory settings"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "feature, in clear words."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:57
+#, python-format
+msgid "how your page will be listed on Google"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:66
+#, python-format
+msgid "http://openerp.com"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:214
+#, python-format
+msgid "http://openerp.com/logo.png"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "http://www.linkedin.com/company/odoo"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "http://www.linkedin.com/company/openerp"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "http://www.youtube.com/channel/HCU842OHPPNrQ"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "https://facebook.com/odoo"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "https://facebook.com/openerp"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "https://plus.google.com/+Odooapps"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "https://plus.google.com/+openerp"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "https://twitter.com/odooapps"
+msgstr ""
+
+#. module: website
+#: view:website.config.settings:website.view_website_config_settings
+msgid "https://twitter.com/openerp"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+msgid "https://www.youtube.com/channel/UCkQPikELWZFLgQNHd73jkdg"
+msgstr ""
+
+#. module: website
+#: view:website:website.view_website_form
+#: view:website.config.settings:website.view_website_config_settings
+msgid "https://youraccount.github.io"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "not what you want to show."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:9
+#: code:addons/website/static/src/xml/website.editor.xml:28
+#: code:addons/website/static/src/xml/website.editor.xml:189
+#: code:addons/website/static/src/xml/website.editor.xml:298
+#: code:addons/website/static/src/xml/website.seo.xml:69
+#: code:addons/website/static/src/xml/website.translator.xml:44
+#, python-format
+msgid "or"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.translator.xml:4
+#, python-format
+msgid "or Edit Master"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "or try another theme below."
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "per month"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "rounded corner"
+msgstr ""
+
+#. module: website
+#: view:website:website.sitemap_index_xml
+msgid "sitemap-"
+msgstr ""
+
+#. module: website
+#: view:website:website.robots
+msgid "sitemap.xml"
+msgstr ""
+
+#. module: website
+#: view:website:website.snippets
+msgid "style."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.xml:37
+#, python-format
+msgid "the classic Odoo interface"
+msgstr ""
+
+#. module: website
+#: field:website.converter.test.sub,name:0
+msgid "unknown"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:292
+#, python-format
+msgid "unsaved changes will be lost."
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.seo.xml:40
+#, python-format
+msgid "using above suggested keywords"
+msgstr ""
+
+#. module: website
+#: field:website.config.settings,website_id:0
+msgid "website"
+msgstr ""
+
+#. module: website
+#: view:website:website.500
+msgid "yes"
+msgstr ""
+
+#. module: website
+#: view:website:website.themes
+msgid "your homepage"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:211
+#: code:addons/website/static/src/xml/website.editor.xml:368
+#, python-format
+msgid "โ€” or โ€”"
+msgstr ""
+
+#. module: website
+#. openerp-web
+#: code:addons/website/static/src/xml/website.editor.xml:161
+#, python-format
+msgid "โ† Previous"
+msgstr ""
+
diff --git a/addons/website/models/ir_actions.py b/addons/website/models/ir_actions.py
index 1b469adfc05..f186c421b9f 100644
--- a/addons/website/models/ir_actions.py
+++ b/addons/website/models/ir_actions.py
@@ -44,7 +44,7 @@ class actions_server(osv.Model):
def on_change_website_path(self, cr, uid, ids, website_path, xml_id, context=None):
values = {
- 'website_url': self._compute_website_url(cr, uid, ids[0], website_path, xml_id, context=context)
+ 'website_url': self._compute_website_url(cr, uid, ids and ids[0] or None, website_path, xml_id, context=context)
}
return {'value': values}
diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py
index e5ffedd556d..cd0e591ef35 100644
--- a/addons/website/models/ir_http.py
+++ b/addons/website/models/ir_http.py
@@ -82,23 +82,41 @@ class ir_http(orm.AbstractModel):
self._authenticate(func.routing['auth'])
else:
self._auth_method_public()
- request.redirect = lambda url: werkzeug.utils.redirect(url_for(url))
+ request.redirect = lambda url, code=302: werkzeug.utils.redirect(url_for(url), code)
request.website = request.registry['website'].get_current_website(request.cr, request.uid, context=request.context)
+ langs = [lg[0] for lg in request.website.get_languages()]
+ path = request.httprequest.path.split('/')
if first_pass:
- request.lang = request.website.default_lang_code
+ if request.website_multilang:
+ # If the url doesn't contains the lang and that it's the first connection, we to retreive the user preference if it exists.
+ if not path[1] in langs and not request.httprequest.cookies.get('session_id'):
+ if request.lang not in langs:
+ # Try to find a similar lang. Eg: fr_BE and fr_FR
+ short = request.lang.split('_')[0]
+ langs_withshort = [lg[0] for lg in request.website.get_languages() if lg[0].startswith(short)]
+ if len(langs_withshort):
+ request.lang = langs_withshort[0]
+ else:
+ request.lang = request.website.default_lang_code
+ # We redirect with the right language in url
+ if request.lang != request.website.default_lang_code:
+ path.insert(1, request.lang)
+ path = '/'.join(path) or '/'
+ return request.redirect(path + '?' + request.httprequest.query_string)
+ else:
+ request.lang = request.website.default_lang_code
+
request.context['lang'] = request.lang
if not request.context.get('tz'):
request.context['tz'] = request.session['geoip'].get('time_zone')
if not func:
- path = request.httprequest.path.split('/')
- langs = [lg[0] for lg in request.website.get_languages()]
if path[1] in langs:
request.lang = request.context['lang'] = path.pop(1)
path = '/'.join(path) or '/'
if request.lang == request.website.default_lang_code:
# If language is in the url and it is the default language, redirect
# to url without language so google doesn't see duplicate content
- return request.redirect(path + '?' + request.httprequest.query_string)
+ return request.redirect(path + '?' + request.httprequest.query_string, code=301)
return self.reroute(path)
return super(ir_http, self)._dispatch()
@@ -139,7 +157,7 @@ class ir_http(orm.AbstractModel):
path = '/' + request.lang + path
if request.httprequest.query_string:
path += '?' + request.httprequest.query_string
- return werkzeug.utils.redirect(path)
+ return werkzeug.utils.redirect(path, code=301)
def _serve_attachment(self):
domain = [('type', '=', 'binary'), ('url', '=', request.httprequest.path)]
diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py
index 132ee143bd1..9d528c9329b 100644
--- a/addons/website/models/ir_qweb.py
+++ b/addons/website/models/ir_qweb.py
@@ -288,19 +288,19 @@ class Image(orm.AbstractModel):
if options is None: options = {}
classes = ['img', 'img-responsive'] + options.get('class', '').split()
- url_params = {
+ url_frags = {
+ 'classes': ' '.join(itertools.imap(escape, classes)),
'model': record._model._name,
- 'field': field_name,
'id': record.id,
+ 'field': field_name,
+ 'max_size': '',
}
- for options_key in ['max_width', 'max_height']:
- if options.get(options_key):
- url_params[options_key] = options[options_key]
-
- return ir_qweb.HTMLSafe('<img class="%s" src="/website/image?%s"/>' % (
- ' '.join(itertools.imap(escape, classes)),
- werkzeug.urls.url_encode(url_params)
- ))
+ max_width, max_height = options.get('max_width', 0), options.get('max_height', 0)
+ if max_width or max_height:
+ url_frags['max_size'] = '/%sx%s' % (max_width, max_height)
+
+ img = '<img class="%(classes)s" src="/website/image/%(model)s/%(id)s/%(field)s%(max_size)s"/>'
+ return ir_qweb.HTMLSafe(img % url_frags)
local_url_re = re.compile(r'^/(?P<module>[^]]+)/static/(?P<rest>.+)$')
def from_html(self, cr, uid, model, column, element, context=None):
diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py
index 61de01c4b96..2c468e37af8 100644
--- a/addons/website/models/ir_ui_view.py
+++ b/addons/website/models/ir_ui_view.py
@@ -1,8 +1,5 @@
# -*- coding: utf-8 -*-
import copy
-import re
-import simplejson
-import werkzeug
from lxml import etree, html
@@ -18,9 +15,11 @@ class view(osv.osv):
'website_meta_title': fields.char("Website meta title", size=70, translate=True),
'website_meta_description': fields.text("Website meta description", size=160, translate=True),
'website_meta_keywords': fields.char("Website meta keywords", translate=True),
+ 'customize_show': fields.boolean("Show As Optional Inherit"),
}
_defaults = {
'page': False,
+ 'customize_show': False,
}
@@ -71,15 +70,14 @@ class view(osv.osv):
extensions = view.inherit_children_ids
if not options:
# only active children
- extensions = (v for v in view.inherit_children_ids
- if v.application in ('always', 'enabled'))
+ extensions = (v for v in view.inherit_children_ids if v.active)
# Keep options in a deterministic order regardless of their applicability
for extension in sorted(extensions, key=lambda v: v.id):
for r in self._views_get(
cr, uid, extension,
# only return optional grandchildren if this child is enabled
- options=extension.application in ('always', 'enabled'),
+ options=extension.active,
context=context, root=False):
if r not in result:
result.append(r)
@@ -145,12 +143,14 @@ class view(osv.osv):
if not context:
context = {}
+ company = self.pool['res.company'].browse(cr, SUPERUSER_ID, request.website.company_id.id, context=context)
+
qcontext = dict(
context.copy(),
website=request.website,
url_for=website.url_for,
slug=website.slug,
- res_company=request.website.company_id,
+ res_company=company,
user_id=self.pool.get("res.users").browse(cr, uid, uid),
translatable=context.get('lang') != request.website.default_lang_code,
editable=request.website.is_publisher(),
@@ -215,3 +215,4 @@ class view(osv.osv):
view = self.browse(cr, SUPERUSER_ID, res_id, context=context)
if view.model_data_id:
view.model_data_id.write({'noupdate': True})
+
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index 681d6560c7e..a1414f204bc 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -121,7 +121,8 @@ def slug(value):
return "%s-%d" % (slugname, id)
-_UNSLUG_RE = re.compile(r'(?:(\w{1,2}|\w[a-z0-9-_]+?\w)-)?(-?\d+)(?=$|/)', re.I)
+# NOTE: as the pattern is used as it for the ModelConverter (ir_http.py), do not use any flags
+_UNSLUG_RE = re.compile(r'(?:(\w{1,2}|\w[A-Za-z0-9-_]+?\w)-)?(-?\d+)(?=$|/)')
def unslug(s):
"""Extract slug and id from a string.
@@ -219,7 +220,10 @@ class website(osv.osv):
def page_exists(self, cr, uid, ids, name, module='website', context=None):
try:
- return self.pool["ir.model.data"].get_object_reference(cr, uid, module, name)
+ name = (name or "").replace("/page/website.", "").replace("/page/", "")
+ if not name:
+ return False
+ return self.pool["ir.model.data"].get_object_reference(cr, uid, module, name)
except:
return False
@@ -229,7 +233,31 @@ class website(osv.osv):
return [(lg.code, lg.name) for lg in website.language_ids]
def get_languages(self, cr, uid, ids, context=None):
- return self._get_languages(cr, uid, ids[0])
+ return self._get_languages(cr, uid, ids[0], context=context)
+
+ def get_alternate_languages(self, cr, uid, ids, req=None, context=None):
+ langs = []
+ if req is None:
+ req = request.httprequest
+ default = self.get_current_website(cr, uid, context=context).default_lang_code
+ uri = req.path
+ if req.query_string:
+ uri += '?' + req.query_string
+ shorts = []
+ for code, name in self.get_languages(cr, uid, ids, context=context):
+ lg_path = ('/' + code) if code != default else ''
+ lg = code.split('_')
+ shorts.append(lg[0])
+ lang = {
+ 'hreflang': ('-'.join(lg)).lower(),
+ 'short': lg[0],
+ 'href': req.url_root[0:-1] + lg_path + uri,
+ }
+ langs.append(lang)
+ for lang in langs:
+ if shorts.count(lang['short']) == 1:
+ lang['hreflang'] = lang['short']
+ return langs
def get_current_website(self, cr, uid, context=None):
# TODO: Select website, currently hard coded
@@ -393,9 +421,14 @@ class website(osv.osv):
yield page
def search_pages(self, cr, uid, ids, needle=None, limit=None, context=None):
- return list(itertools.islice(
- self.enumerate_pages(cr, uid, ids, query_string=needle, context=context),
- limit))
+ name = (needle or "").replace("/page/website.", "").replace("/page/", "")
+ res = []
+ for page in self.enumerate_pages(cr, uid, ids, query_string=name, context=context):
+ if needle in page['loc']:
+ res.append(page)
+ if len(res) == limit:
+ break
+ return res
def kanban(self, cr, uid, ids, model, domain, column, template, step=None, scope=None, orderby=None, context=None):
step = step and int(step) or 10
@@ -546,10 +579,8 @@ class website(osv.osv):
response.mimetype = Image.MIME[image.format]
w, h = image.size
- try:
- max_w, max_h = int(max_width), int(max_height)
- except:
- max_w, max_h = (maxint, maxint)
+ max_w = int(max_width) if max_width else maxint
+ max_h = int(max_height) if max_height else maxint
if w < max_w and h < max_h:
response.data = data
diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css
index 055ac7fb4e3..09d00d6d0b6 100644
--- a/addons/website/static/src/css/website.css
+++ b/addons/website/static/src/css/website.css
@@ -570,12 +570,15 @@ div.media_iframe_video {
div.media_iframe_video iframe {
width: 100%;
height: 100%;
+ position: absolute;
+ margin-left: -50%;
}
-div.media_iframe_video div {
+div.media_iframe_video .css_editable_mode_display {
position: absolute;
width: 100%;
height: 100%;
display: none;
+ z-index: 2;
}
/* Mobile view */
diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass
index ba47a12c90f..b9d7dc1fa9d 100644
--- a/addons/website/static/src/css/website.sass
+++ b/addons/website/static/src/css/website.sass
@@ -99,7 +99,7 @@ header
margin-right: 0 !important
.css_non_editable_mode_hidden
- display: none
+ display: none !important
/* ----- BOOTSTRAP FIX ----- */
@@ -473,11 +473,14 @@ div.media_iframe_video
iframe
width: 100%
height: 100%
- div
+ position: absolute
+ margin-left: -50%
+ .css_editable_mode_display
position: absolute
width: 100%
height: 100%
display: none
+ z-index: 2
/* Mobile view */
diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js
index 205d8dde076..5ef971f98b0 100644
--- a/addons/website/static/src/js/website.editor.js
+++ b/addons/website/static/src/js/website.editor.js
@@ -1151,6 +1151,7 @@
make_link: function (url, new_window, label, classes) {
},
bind_data: function () {
+ var self = this;
var href = this.element && (this.element.data( 'cke-saved-href')
|| this.element.getAttribute('href'));
var new_window = this.element
@@ -1158,8 +1159,13 @@
: false;
var text = this.element ? this.element.getText() : '';
if (!text.length) {
- var selection = this.editor.getSelection();
- text = selection.getSelectedText();
+ if (this.editor) {
+ text = this.editor.getSelection().getSelectedText();
+ } else {
+ text = this.data.name;
+ href = this.data.url;
+ new_window = this.data.new_window;
+ }
}
this.$('input#link-text').val(text);
@@ -1180,8 +1186,14 @@
this.$('input.email-address').val(match[1]).change();
}
if (href && !$control) {
- this.$('input.url').val(href).change();
- this.$('input.window-new').closest("div").show();
+ this.page_exists(href).then(function (exist) {
+ if (exist) {
+ self.$('#link-page').select2('data', {'id': href, 'text': href});
+ } else {
+ self.$('input.url').val(href).change();
+ self.$('input.window-new').closest("div").show();
+ }
+ });
}
this.preview();
},
diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js
index 8d28237f924..7e32a780bf1 100644
--- a/addons/website/static/src/js/website.seo.js
+++ b/addons/website/static/src/js/website.seo.js
@@ -86,7 +86,7 @@
}
});
}
- $.getJSON("http://suggest.hp.af.cm/suggest/"+encodeURIComponent(this.root + " "), addSuggestions);
+ $.getJSON("/website/seo_suggest/" + encodeURIComponent(this.root + " "), addSuggestions);
},
});
diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js
index e734d361da9..116f55713ec 100644
--- a/addons/website/static/src/js/website.snippets.editor.js
+++ b/addons/website/static/src/js/website.snippets.editor.js
@@ -247,13 +247,14 @@
var self = this;
var snipped_event_flag;
self.$wrapwrap.on('click', function (event) {
- if (snipped_event_flag || !event.srcElement) {
+ var srcElement = event.srcElement || (event.originalEvent && (event.originalEvent.originalTarget || event.originalEvent.target));
+ if (snipped_event_flag || !srcElement) {
return;
}
snipped_event_flag = true;
setTimeout(function () {snipped_event_flag = false;}, 0);
- var $target = $(event.srcElement);
+ var $target = $(srcElement);
if ($target.parents(".oe_overlay").length) {
return;
@@ -644,7 +645,7 @@
var styles = this.$target.data("snippet-option-ids") || {};
styles[option_id] = this;
this.$target.data("snippet-option-ids", styles);
- this.$overlay = this.$target.data('overlay');
+ this.$overlay = this.$target.data('overlay') || $('<div>');
this.option= option_id;
this.$el = option.$el.find(">li").clone();
this.data = option.$el.data();
@@ -1505,6 +1506,9 @@
new website.editor.MediaDialog(self, self.element).appendTo(document.body);
self.BuildingBlock.make_active(false);
}
+ setTimeout(function () {
+ self.$target.find(".css_editable_mode_display").removeAttr("_moz_abspos");
+ },0);
},
});
diff --git a/addons/website/static/src/js/website.translator.js b/addons/website/static/src/js/website.translator.js
index 674b2f727b9..a1800799c0c 100644
--- a/addons/website/static/src/js/website.translator.js
+++ b/addons/website/static/src/js/website.translator.js
@@ -130,7 +130,7 @@
node.setAttribute('data-oe-translation-view-id', view_id);
var content = node.childNodes[0].data.trim();
var trans = this.translations.filter(function (t) {
- return t.res_id === view_id && t.value === content;
+ return t.res_id === view_id && t.value.trim() === content;
});
if (trans.length) {
node.setAttribute('data-oe-translation-id', trans[0].id);
diff --git a/addons/website/views/themes.xml b/addons/website/views/themes.xml
index d1505575b9c..c90b71e8caa 100644
--- a/addons/website/views/themes.xml
+++ b/addons/website/views/themes.xml
@@ -8,7 +8,7 @@
Use INPUT type 'checkbox' or 'radio' or use OPTION in select box
'data-xmlid' (optional) xml id of the template to add if the input is checked.
- You can set a list of xml id separate by comma (all template is enable or
+ You can set a list of xml id separate by comma (all template is enable or
disable in same time)
'data-enable' (optional) to checked one or more HTML ids, or list separate by comma
'data-disable' (optional) to unchecked one or more HTML ids, or list separate by comma
@@ -21,10 +21,10 @@
- all related fields are enabled for data-enable
- all related fields are disabled for data-disable
else unchecked
-
+
HTML apply classes:
- 'checked': on the parent label when input is checked
- - 'in': on the container (e.g.: bootstrap modal) after added in DOM (removed together
+ - 'in': on the container (e.g.: bootstrap modal) after added in DOM (removed together
out is added)
- 'out': on the container 1 second before removed from ths DOM
- 'loading': on the container/modal when the new css is loading
@@ -51,7 +51,7 @@
<label class=" center-block">
<div class="text-center" style="background-image: url(/website/static/src/img/theme/layout-full.gif); background-size: 100%; line-height: 40px;">FULL WIDTH</div>
<input name="layoutvar" type="radio" data-xmlid=""/>
- </label>
+ </label>
</td>
<td class=" text-center">
<label class=" center-block">
@@ -172,7 +172,7 @@
<!-- Bootstrap Less File layout -->
-<template id="option_bootstrap_less" name="option_bootstrap_less" inherit_id="website.theme" optional="disabled">
+<template id="option_bootstrap_less" name="option_bootstrap_less" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[@id='bootstrap_css']" position="replace">
<link rel="stylesheet" href='/website/static/src/less/import_bootstrap.less'/>
<link rel="stylesheet" href='/website/static/src/less/colors.less' t-ignore="true"/>
@@ -181,7 +181,7 @@
<!-- Option layout -->
-<template id="option_layout_boxed" name="option_layout_boxed" inherit_id="website.theme" optional="disabled">
+<template id="option_layout_boxed" name="option_layout_boxed" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after">
<link href="/website/static/src/less/option_layout_boxed.less" rel="stylesheet" type="text/less"/>
</xpath>
@@ -189,26 +189,26 @@
<!-- Option color -->
-<template id="option_color_stone" name="option_color_stone" inherit_id="website.theme" optional="disabled">
+<template id="option_color_stone" name="option_color_stone" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_stone.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_color_emerald" name="option_color_emerald" inherit_id="website.theme" optional="disabled">
+<template id="option_color_emerald" name="option_color_emerald" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_emerald.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_color_cobalt" name="option_color_cobalt" inherit_id="website.theme" optional="disabled">
+<template id="option_color_cobalt" name="option_color_cobalt" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_cobalt.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_color_amethyst" name="option_color_amethyst" inherit_id="website.theme" optional="disabled">
+<template id="option_color_amethyst" name="option_color_amethyst" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_amethyst.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_color_ruby" name="option_color_ruby" inherit_id="website.theme" optional="disabled">
+<template id="option_color_ruby" name="option_color_ruby" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_ruby.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_color_gold" name="option_color_gold" inherit_id="website.theme" optional="disabled">
+<template id="option_color_gold" name="option_color_gold" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_gold.less" rel="stylesheet" type="text/less"/></xpath>
</template>
-<template id="option_font" name="option_font" inherit_id="website.theme" optional="disabled">
+<template id="option_font" name="option_font" inherit_id="website.theme" active="False" customize_show="False">
<xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_font.less" rel="stylesheet" type="text/less"/></xpath>
</template>
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 52322bc0f18..499c790882f 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -78,10 +78,9 @@
<title><t t-esc="title"/></title>
<t t-set="languages" t-value="website.get_languages() if website else None"/>
- <t t-if="request and request.website_multilang">
- <t t-foreach="languages" t-as="lg">
- <t t-set="force_lang" t-value="lg[0] if website and lg[0] != website.default_lang_code else None"/>
- <link rel="alternate" t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang=force_lang)" t-att-hreflang="lg[0].replace('_', '-').lower()" />
+ <t t-if="request and request.website_multilang and website">
+ <t t-foreach="website.get_alternate_languages(request.httprequest)" t-as="lang">
+ <link rel="alternate" t-att-hreflang="lang['hreflang']" t-att-href="lang['href']"/>
</t>
</t>
@@ -94,10 +93,10 @@
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','_gaw');
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
- _gaw('create',_.str.trim('<t t-esc="website.google_analytics_key"/>'));
- _gaw('send','pageview');
+ ga('create',_.str.trim('<t t-esc="website.google_analytics_key"/>'));
+ ga('send','pageview');
</script>
</t>
</head>
@@ -145,22 +144,27 @@
<footer>
<div id="footer_container">
</div>
- <div class="container mt16 mb8">
- <div class="pull-right" t-ignore="true" t-if="not editable">
- Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with
- <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>
- </div>
- <div class="pull-left text-muted">
- Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
- </div>
- </div>
</footer>
</div>
</body>
</html>
</template>
-<template id="layout_logo_show" inherit_id="website.layout" optional="enabled" name="Show Logo">
+<template id="layout_footer_copyright" inherit_id="website.layout" name="Footer Copyright">
+ <xpath expr="//footer" position="inside">
+ <div class="container mt16 mb8">
+ <div class="pull-right" t-ignore="true" t-if="not editable">
+ Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with
+ <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>
+ </div>
+ <div class="pull-left text-muted">
+ Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
+ </div>
+ </div>
+ </xpath>
+</template>
+
+<template id="layout_logo_show" inherit_id="website.layout" customize_show="True" name="Show Logo">
<xpath expr="//header//a[@class='navbar-brand']" position="replace">
<a href="/" class="navbar-brand logo">
<img src="/logo.png"/>
@@ -223,7 +227,7 @@
</xpath>
</template>
-<template id="show_sign_in" optional="enabled" inherit_id="website.layout" name="Show Sign In" groups="base.group_public">
+<template id="show_sign_in" customize_show="True" inherit_id="website.layout" name="Show Sign In" groups="base.group_public">
<xpath expr="//ul[@id='top_menu']" position="inside">
<li class="divider"/>
<li>
@@ -265,7 +269,7 @@
</xpath>
</template>
-<template id="footer_default" inherit_id="website.footer_custom" optional="enabled" name="Automatic Footer">
+<template id="footer_default" inherit_id="website.footer_custom" customize_show="True" name="Automatic Footer">
<xpath expr="//div[@id='footer']" position="replace">
<div class="container hidden-print">
<div class="row">
@@ -432,6 +436,66 @@
<!-- Error and special pages -->
+<template id="info" name="Odoo Information">
+ <t t-call="website.layout">
+ <div id="wrap">
+ <div class="oe_structure">
+
+ <section class="container">
+ <h1><t t-esc="res_company.name"/>
+ <small>Odoo Version <t t-raw="version.get('server_version')"/></small>
+ </h1>
+ <p>
+ Information about the <t t-esc="res_company.name"/> instance of Odoo, the <a href="https://www.odoo.com">Open Source ERP</a>.
+ </p>
+
+ <div class="alert alert-warning alert-dismissable mt16" groups="base.group_website_publisher">
+ <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&amp;times;</button>
+ <p>
+ Note: To hide this page, uncheck it from the top Customize menu.
+ </p>
+ </div>
+ <h2>Installed Applications</h2>
+ <dl class="dl-horizontal" t-foreach="apps" t-as="app">
+ <dt>
+ <a t-att-href="app.website" t-if="app.website">
+ <t t-raw="app.shortdesc"/>
+ </a>
+ <span t-raw="app.shortdesc" t-if="not app.website"/>
+ </dt>
+ <dd>
+ <span t-raw="app.summary"/>
+ </dd><dd class="text-muted">
+ Technical name: <span t-field="app.name"/>, updated: <span t-field="app.write_date"/>, author: <span t-field="app.author"/>
+ </dd>
+ </dl>
+
+ <h2>Installed Modules</h2>
+ <dl class="dl-horizontal">
+ <t t-foreach="modules" t-as="app">
+ <dt>
+ <span t-raw="app.shortdesc"/>
+ </dt>
+ <dd t-if="app.summary">
+ <span t-raw="app.summary"/>
+ </dd><dd>
+ Technical name: <span t-field="app.name"/>,
+ updated: <span t-field="app.write_date"/>
+ <t t-if="app.author">
+ , author: <span t-field="app.author"/>
+ </t>
+ </dd>
+ </t>
+ </dl>
+
+
+ </section>
+
+ </div>
+ </div>
+ </t>
+</template>
+
<template id="default_page">
<t t-call="website.layout">
<div id="wrap" class="oe_structure oe_empty"></div>
@@ -648,7 +712,6 @@
<div class="oe_structure">
<h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1>
</div>
-
<div class="container" t-if="views">
<div class="alert alert-danger" t-if="qweb_exception and editable">
<h4>Template fallback</h4>
@@ -700,7 +763,7 @@ Sitemap: <t t-esc="url_root"/>sitemap.xml
<template id="sitemap_index_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
<sitemapindex t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- <sitemap t-foreach="pages" t-as="page">
+ <sitemap t-translate="off" t-foreach="pages" t-as="page">
<loc><t t-esc="url_root"/>sitemap-<t t-esc="page"/>.xml</loc>
</sitemap>
</sitemapindex>