summaryrefslogtreecommitdiff
path: root/addons/web
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/web
parentafba9e8817c458640ae446ac7aaaab79be4fe1e9 (diff)
parented1c173971968eaa96693cb4e1547efa6e6c34e0 (diff)
[MERGE] forward port of branch 8.0 up to ed1c173
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/controllers/main.py71
-rw-r--r--addons/web/i18n/vi.po658
-rw-r--r--addons/web/i18n/web.pot1894
-rw-r--r--addons/web/static/src/css/base.css17
-rw-r--r--addons/web/static/src/css/base.sass19
-rw-r--r--addons/web/static/src/js/chrome.js5
-rw-r--r--addons/web/static/src/js/core.js13
-rw-r--r--addons/web/static/src/js/data.js15
-rw-r--r--addons/web/static/src/js/data_export.js1
-rw-r--r--addons/web/static/src/js/search.js11
-rw-r--r--addons/web/static/src/js/tour.js2
-rw-r--r--addons/web/static/src/js/view_form.js137
-rw-r--r--addons/web/static/src/js/view_list.js4
-rw-r--r--addons/web/static/src/js/view_list_editable.js2
-rw-r--r--addons/web/static/src/js/views.js51
-rw-r--r--addons/web/static/src/xml/base.xml24
-rw-r--r--addons/web/static/test/list-editable.js11
-rw-r--r--addons/web/static/test/search.js4
-rw-r--r--addons/web/tests/test_serving_base.py4
19 files changed, 1630 insertions, 1313 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index b34c33d4a23..5050ad16e49 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -32,6 +32,7 @@ except ImportError:
import openerp
import openerp.modules.registry
from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound
+from openerp.tools import topological_sort
from openerp.tools.translate import _
from openerp import http
@@ -141,50 +142,6 @@ def ensure_db(redirect='/web/database/selector'):
request.session.db = db
-def module_topological_sort(modules):
- """ Return a list of module names sorted so that their dependencies of the
- modules are listed before the module itself
-
- modules is a dict of {module_name: dependencies}
-
- :param modules: modules to sort
- :type modules: dict
- :returns: list(str)
- """
-
- dependencies = set(itertools.chain.from_iterable(modules.itervalues()))
- # incoming edge: dependency on other module (if a depends on b, a has an
- # incoming edge from b, aka there's an edge from b to a)
- # outgoing edge: other module depending on this one
-
- # [Tarjan 1976], http://en.wikipedia.org/wiki/Topological_sorting#Algorithms
- #L ← Empty list that will contain the sorted nodes
- L = []
- #S ← Set of all nodes with no outgoing edges (modules on which no other
- # module depends)
- S = set(module for module in modules if module not in dependencies)
-
- visited = set()
- #function visit(node n)
- def visit(n):
- #if n has not been visited yet then
- if n not in visited:
- #mark n as visited
- visited.add(n)
- #change: n not web module, can not be resolved, ignore
- if n not in modules: return
- #for each node m with an edge from m to n do (dependencies of n)
- for m in modules[n]:
- #visit(m)
- visit(m)
- #add n to L
- L.append(n)
- #for each node n in S do
- for n in S:
- #visit(n)
- visit(n)
- return L
-
def module_installed():
# Candidates module the current heuristic is the /static dir
loadable = http.addons_manifest.keys()
@@ -202,7 +159,7 @@ def module_installed():
dependencies = [i['name'] for i in deps_read]
modules[module['name']] = dependencies
- sorted_modules = module_topological_sort(modules)
+ sorted_modules = topological_sort(modules)
return sorted_modules
def module_installed_bypass_session(dbname):
@@ -224,7 +181,7 @@ def module_installed_bypass_session(dbname):
modules[module['name']] = dependencies
except Exception,e:
pass
- sorted_modules = module_topological_sort(modules)
+ sorted_modules = topological_sort(modules)
return sorted_modules
def module_boot(db=None):
@@ -710,7 +667,8 @@ class Proxy(http.Controller):
from werkzeug.test import Client
from werkzeug.wrappers import BaseResponse
- return Client(request.httprequest.app, BaseResponse).get(path).data
+ base_url = request.httprequest.base_url
+ return Client(request.httprequest.app, BaseResponse).get(path, base_url=base_url).data
class Database(http.Controller):
@@ -775,7 +733,7 @@ class Database(http.Controller):
password, db = operator.itemgetter(
'drop_pwd', 'drop_db')(
dict(map(operator.itemgetter('name', 'value'), fields)))
-
+
try:
if request.session.proxy("db").drop(password, db):
return True
@@ -1289,7 +1247,7 @@ class Binary(http.Controller):
class Action(http.Controller):
@http.route('/web/action/load', type='json', auth="user")
- def load(self, action_id, do_not_eval=False):
+ def load(self, action_id, do_not_eval=False, additional_context=None):
Actions = request.session.model('ir.actions.actions')
value = False
try:
@@ -1304,11 +1262,12 @@ class Action(http.Controller):
base_action = Actions.read([action_id], ['type'], request.context)
if base_action:
- ctx = {}
+ ctx = request.context
action_type = base_action[0]['type']
if action_type == 'ir.actions.report.xml':
ctx.update({'bin_size': True})
- ctx.update(request.context)
+ if additional_context:
+ ctx.update(additional_context)
action = request.session.model(action_type).read([action_id], False, ctx)
if action:
value = clean_action(action[0])
@@ -1489,16 +1448,18 @@ class ExportFormat(object):
raise NotImplementedError()
def base(self, data, token):
+ params = simplejson.loads(data)
model, fields, ids, domain, import_compat = \
operator.itemgetter('model', 'fields', 'ids', 'domain',
'import_compat')(
- simplejson.loads(data))
+ params)
Model = request.session.model(model)
- ids = ids or Model.search(domain, 0, False, False, request.context)
+ context = dict(request.context or {}, **params.get('context', {}))
+ ids = ids or Model.search(domain, 0, False, False, context)
field_names = map(operator.itemgetter('name'), fields)
- import_data = Model.export_data(ids, field_names, self.raw_data, context=request.context).get('datas',[])
+ import_data = Model.export_data(ids, field_names, self.raw_data, context=context).get('datas',[])
if import_compat:
columns_headers = field_names
@@ -1686,7 +1647,7 @@ class Apps(http.Controller):
sakey = Session().save_session_action(action)
debug = '?debug' if req.debug else ''
return werkzeug.utils.redirect('/web{0}#sa={1}'.format(debug, sakey))
-
+
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/web/i18n/vi.po b/addons/web/i18n/vi.po
index 2e5f95539df..b5a11aafbd3 100644
--- a/addons/web/i18n/vi.po
+++ b/addons/web/i18n/vi.po
@@ -6,15 +6,15 @@
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2013-07-29 08:37+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Report-Msgid-Bugs-To: FULL NAME <thanhchatvn@gmail.com\n"
+"POT-Creation-Date: 2014-08-14 17:06+0000\n"
+"PO-Revision-Date: 2014-08-14 08:37+0000\n"
+"Last-Translator: FULL NAME <thanhchatvn@gmail.com>\n"
"Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-05-14 05:53+0000\n"
+"X-Launchpad-Export-Date: 2014-08-14 05:53+0000\n"
"X-Generator: Launchpad (build 17002)\n"
#. module: web
@@ -22,21 +22,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:147
#, python-format
msgid "Default language:"
-msgstr ""
+msgstr "Ngôn ngữ mặc định"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:592
#, python-format
msgid "%d minutes ago"
-msgstr ""
+msgstr "%d phút trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:620
#, python-format
msgid "Still loading...<br />Please be patient."
-msgstr ""
+msgstr "Đang nạp... <br />Vui lòng đợi."
#. module: web
#. openerp-web
@@ -52,14 +52,14 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2124
#, python-format
msgid "less or equal than"
-msgstr ""
+msgstr "nhỏ hơn hoặc bằng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:410
#, python-format
msgid "Please enter your previous password"
-msgstr ""
+msgstr "Vui lòng điền mật khẩu trước"
#. module: web
#. openerp-web
@@ -68,49 +68,49 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:300
#, python-format
msgid "Master password:"
-msgstr ""
+msgstr "Mật khẩu chính"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:292
#, python-format
msgid "Change Master Password"
-msgstr ""
+msgstr "Thay đổi mật khẩu chính"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:513
#, python-format
msgid "Do you really want to delete the database: %s ?"
-msgstr ""
+msgstr "Bạn có chắc chắn muốn xóa Cơ sở dữ liệu :%s ?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1502
#, python-format
msgid "Search %(field)s at: %(value)s"
-msgstr ""
+msgstr "Tìm kiếm %(field)s ở: %(value)s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:559
#, python-format
msgid "Access Denied"
-msgstr ""
+msgstr "Truy cập bị từ chối"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5220
#, python-format
msgid "Uploading error"
-msgstr ""
+msgstr "Lỗi tải lên"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:593
#, python-format
msgid "about an hour ago"
-msgstr ""
+msgstr "khoảng một giờ trước"
#. module: web
#. openerp-web
@@ -119,14 +119,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:234
#, python-format
msgid "Backup Database"
-msgstr ""
+msgstr "Sao lưu Cơ sở dữ liệu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:518
#, python-format
msgid "%(view_type)s view"
-msgstr ""
+msgstr "Loại hiển thị %(view_type)s"
#. module: web
#. openerp-web
@@ -134,41 +134,41 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
-msgstr ""
+msgstr "'%s' không đúng định dạng ngày"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1858
#, python-format
msgid "Here is a preview of the file we could not import:"
-msgstr ""
+msgstr "Đây là phần xem trước của file chưa được chèn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:591
#, python-format
msgid "about a minute ago"
-msgstr ""
+msgstr "khoảng một phút trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1306
#, python-format
msgid "File"
-msgstr ""
+msgstr "Tệp"
#. module: web
#: code:addons/web/controllers/main.py:869
#, python-format
msgid "You cannot leave any password empty."
-msgstr ""
+msgstr "Bạn không thể để mật khẩu trống"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:732
#, python-format
msgid "Invalid username or password"
-msgstr ""
+msgstr "Sai tên đăng nhập hoặc mật khẩu"
#. module: web
#. openerp-web
@@ -177,7 +177,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:278
#, python-format
msgid "Master Password:"
-msgstr ""
+msgstr "Mật khẩu chính"
#. module: web
#. openerp-web
@@ -185,49 +185,49 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1402
#, python-format
msgid "Select"
-msgstr ""
+msgstr "Lựa chọn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:571
#, python-format
msgid "Database restored successfully"
-msgstr ""
+msgstr "Cơ sở dữ liệu đã khôi phục thành công"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:437
#, python-format
msgid "Version"
-msgstr ""
+msgstr "Phiên bản"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:592
#, python-format
msgid "Latest Modification Date:"
-msgstr ""
+msgstr "Ngày sửa gần nhất:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1566
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
-msgstr ""
+msgstr "Trường tìm kiếm M20 không thể xử lý nhiều giá trị mặc định"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1241
#, python-format
msgid "Widget type '%s' is not implemented"
-msgstr ""
+msgstr "Loại Widget '%s' không được thực hi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1626
#, python-format
msgid "Share with all users"
-msgstr ""
+msgstr "Chia sẻ với tất cả người dùng"
#. module: web
#. openerp-web
@@ -235,84 +235,84 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:320
#, python-format
msgid "Form"
-msgstr ""
+msgstr "Biểu mẫu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1352
#, python-format
msgid "(no string)"
-msgstr ""
+msgstr "(không chuỗi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:286
#, python-format
msgid "'%s' is not a correct time"
-msgstr ""
+msgstr "'%s' không đúng thời gian"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1401
#, python-format
msgid "not a valid number"
-msgstr ""
+msgstr "không phải định dạng số"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:343
#, python-format
msgid "New Password:"
-msgstr ""
+msgstr "Mật khẩu mới:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:632
#, python-format
msgid "Attachment :"
-msgstr ""
+msgstr "Đính kèm :"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1712
#, python-format
msgid "Fields to export"
-msgstr ""
+msgstr "Các trường trích xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1350
#, python-format
msgid "Undefined"
-msgstr ""
+msgstr "Chưa định nghĩa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5002
#, python-format
msgid "File Upload"
-msgstr ""
+msgstr "Tải lên tệp"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:597
#, python-format
msgid "about a month ago"
-msgstr ""
+msgstr "khoảng một tháng trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1618
#, python-format
msgid "Custom Filters"
-msgstr ""
+msgstr "Các bộ lọc tùy chỉnh"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1364
#, python-format
msgid "Button Type:"
-msgstr ""
+msgstr "Loại nút:"
#. module: web
#. openerp-web
@@ -326,14 +326,14 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:1663
#, python-format
msgid "Custom Filter"
-msgstr ""
+msgstr "Lọc tùy chỉnh"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:177
#, python-format
msgid "Duplicate Database"
-msgstr ""
+msgstr "Nhân đôi CSDL"
#. module: web
#. openerp-web
@@ -348,14 +348,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:354
#, python-format
msgid "Change Password"
-msgstr ""
+msgstr "Đổi mật khẩu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:3528
#, python-format
msgid "View type '%s' is not supported in One2Many."
-msgstr ""
+msgstr "Kiểu hiển thị '%s' không hỗ trợ Một - Nhiều"
#. module: web
#. openerp-web
@@ -363,21 +363,21 @@ msgstr ""
#: code:addons/web/static/src/js/view_list.js:2204
#, python-format
msgid "Download"
-msgstr ""
+msgstr "Tải về"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:270
#, python-format
msgid "'%s' is not a correct datetime"
-msgstr ""
+msgstr "'%s' không đúng định dạng thời gian"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:432
#, python-format
msgid "Group"
-msgstr ""
+msgstr "Nhóm"
#. module: web
#. openerp-web
@@ -391,48 +391,48 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1004
#, python-format
msgid "Selection:"
-msgstr ""
+msgstr "Lựa chọn:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:881
#, python-format
msgid "The following fields are invalid:"
-msgstr ""
+msgstr "Các trường sau không hợp lệ"
#. module: web
#: code:addons/web/controllers/main.py:890
#, python-format
msgid "Languages"
-msgstr ""
+msgstr "Các ngôn ngữ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1298
#, python-format
msgid "...Upload in progress..."
-msgstr ""
+msgstr "...Đang tiến trình tải lên..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1789
#, python-format
msgid "Import"
-msgstr ""
+msgstr "Chèn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:565
#, python-format
msgid "Could not restore the database"
-msgstr ""
+msgstr "Không thể khôi phục CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4982
#, python-format
msgid "File upload"
-msgstr ""
+msgstr "Tải tệp lên"
#. module: web
#. openerp-web
@@ -447,119 +447,119 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1493
#, python-format
msgid "Manage Filters"
-msgstr ""
+msgstr "Quản lý các bộ lọc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:2042
#, python-format
msgid "contains"
-msgstr ""
+msgstr "chứa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:623
#, python-format
msgid "Take a minute to get a coffee,<br />because it's loading..."
-msgstr ""
+msgstr "Vui lòng đợi. Đang nạp..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:435
#, python-format
msgid "Activate the developer mode"
-msgstr ""
+msgstr "Kích hoạt chế độ phát triển"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:341
#, python-format
msgid "Loading (%d)"
-msgstr ""
+msgstr "Đang nạp (%d)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1216
#, python-format
msgid "GroupBy"
-msgstr ""
+msgstr "Nhóm theo"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:699
#, python-format
msgid "You must select at least one record."
-msgstr ""
+msgstr "Bạn cần chọn ít nhất một bản ghi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:557
#, python-format
msgid "View Log (perm_read)"
-msgstr ""
+msgstr "Xem nhật ý (perm_read)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1071
#, python-format
msgid "Set Default"
-msgstr ""
+msgstr "Đặt làm mặc định"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1000
#, python-format
msgid "Relation:"
-msgstr ""
+msgstr "Quan hệ:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:590
#, python-format
msgid "less than a minute ago"
-msgstr ""
+msgstr "ít hơn một phút trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:873
#, python-format
msgid "Condition:"
-msgstr ""
+msgstr "Diều kiện"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1709
#, python-format
msgid "Unsupported operator %s in domain %s"
-msgstr ""
+msgstr "Không hỗ trợ toán tử %s trong phạm vi %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:246
#, python-format
msgid "'%s' is not a correct float"
-msgstr ""
+msgstr "'%s' không đúng kiểu float"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:571
#, python-format
msgid "Restored"
-msgstr ""
+msgstr "Đã khôi phục"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:409
#, python-format
msgid "%d-%d of %d"
-msgstr ""
+msgstr "%d-%d của %d"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2955
#, python-format
msgid "Create and Edit..."
-msgstr ""
+msgstr "Tạo và sửa"
#. module: web
#. openerp-web
@@ -573,84 +573,84 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:2359
#, python-format
msgid "Resource error"
-msgstr ""
+msgstr "Lỗi tài nguyên"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:2144
#, python-format
msgid "is not"
-msgstr ""
+msgstr "không phải là"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:572
#, python-format
msgid "Print Workflow"
-msgstr ""
+msgstr "In luồng công việc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:413
#, python-format
msgid "Please confirm your new password"
-msgstr ""
+msgstr "Hãy xác nhận mật khẩu mới của bạn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1825
#, python-format
msgid "UTF-8"
-msgstr ""
+msgstr "UTF-8"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:443
#, python-format
msgid "For more information visit"
-msgstr ""
+msgstr "Ghé thăm để biết thêm thông tin"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1880
#, python-format
msgid "Add All Info..."
-msgstr ""
+msgstr "Thêm tất cả thông tin"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1701
#, python-format
msgid "Export Formats"
-msgstr ""
+msgstr "Trích xuất các định dạng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:996
-#, python-format
+#, python-formata
msgid "On change:"
-msgstr ""
+msgstr "Ngày thay đổi:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:939
#, python-format
msgid "Model %s fields"
-msgstr ""
+msgstr "Mô hình các trường %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:906
#, python-format
msgid "Setting 'id' attribute on existing record %s"
-msgstr ""
+msgstr "Thiết lập 'id' trên bản ghi hiện có %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:8
#, python-format
msgid "List"
-msgstr ""
+msgstr "Danh sách"
#. module: web
#. openerp-web
@@ -659,7 +659,7 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2121
#, python-format
msgid "greater than"
-msgstr ""
+msgstr "lớn hơn"
#. module: web
#. openerp-web
@@ -667,77 +667,77 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:568
#, python-format
msgid "View"
-msgstr ""
+msgstr "Hiển thị"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1492
#, python-format
msgid "Save Filter"
-msgstr ""
+msgstr "Lưu bộ lọc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1372
#, python-format
msgid "Action ID:"
-msgstr ""
+msgstr "ID Hành động"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:479
#, python-format
msgid "Your user's preference timezone does not match your browser timezone:"
-msgstr ""
+msgstr "Múi giờ thông hồ sơ của bạn không khớp với múi giờ trình duyệt"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1237
#, python-format
msgid "Field '%s' specified in view could not be found."
-msgstr ""
+msgstr "Trường đặc biệt '%s' không tìm thấy trong bảng hiển thị"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1777
#, python-format
msgid "Saved exports:"
-msgstr ""
+msgstr "Đã lưu các trích xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:338
#, python-format
msgid "Old Password:"
-msgstr ""
+msgstr "Mật khẩu cũ:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:113
#, python-format
msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
-msgstr ""
+msgstr "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:503
#, python-format
msgid "The database has been duplicated."
-msgstr ""
+msgstr "Cơ sở dữ liệu đã được nhân đôi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1643
#, python-format
msgid "Apply"
-msgstr ""
+msgstr "Áp dụng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1414
#, python-format
msgid "Save & New"
-msgstr ""
+msgstr "Lưu & Tạo mới"
#. module: web
#. openerp-web
@@ -745,42 +745,42 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1253
#, python-format
msgid "Save As"
-msgstr ""
+msgstr "Lưu thành"
#. module: web
#. openerp-web
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
-msgstr ""
+msgstr "00:00:00"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2330
#, python-format
msgid "E-mail error"
-msgstr ""
+msgstr "Lỗi E-mail"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:595
#, python-format
msgid "a day ago"
-msgstr ""
+msgstr "ngày trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1810
#, python-format
msgid "Does your file have titles?"
-msgstr ""
+msgstr "Tệp của bạn có tiêu đề ?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:327
#, python-format
msgid "Unlimited"
-msgstr ""
+msgstr "Không giới hạn"
#. module: web
#. openerp-web
@@ -791,48 +791,51 @@ msgid ""
"\n"
"Are you sure you want to leave this page ?"
msgstr ""
+"Cảnh báo, bản ghi của bạn đã được thanh đổi, các thanh đổi sẽ bị bỏ qua.\n"
+"\n"
+"Bạn có chắc rời khỏi trang này ?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2991
#, python-format
msgid "Search: "
-msgstr ""
+msgstr "Tìm kiếm: "
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:566
#, python-format
msgid "Technical translation"
-msgstr ""
+msgstr "Dịch thuật"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1818
#, python-format
msgid "Delimiter:"
-msgstr ""
+msgstr "Dấu phân cách:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:484
#, python-format
msgid "Browser's timezone"
-msgstr ""
+msgstr "Múi giờ trình duyệt"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1623
#, python-format
msgid "Filter name"
-msgstr ""
+msgstr "Tên bộ lọc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1490
#, python-format
msgid "-- Actions --"
-msgstr ""
+msgstr "-- Các hành động --"
#. module: web
#. openerp-web
@@ -842,14 +845,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1726
#, python-format
msgid "Add"
-msgstr ""
+msgstr "Thêm"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:558
#, python-format
msgid "Toggle Form Layout Outline"
-msgstr ""
+msgstr "Thay đổi bố trí phác thảo biểu mẫu"
#. module: web
#. openerp-web
@@ -863,28 +866,28 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:2349
#, python-format
msgid "Can't send email to invalid e-mail address"
-msgstr ""
+msgstr "KHông thể gửi email tới địa chỉ email không hợp lệ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:658
#, python-format
msgid "Add..."
-msgstr ""
+msgstr "Thêm..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:424
#, python-format
msgid "Preferences"
-msgstr ""
+msgstr "Tùy chọn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:435
#, python-format
msgid "Wrong on change format: %s"
-msgstr ""
+msgstr "Sai khi thay đổi định dạng: %s"
#. module: web
#. openerp-web
@@ -892,28 +895,28 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:203
#, python-format
msgid "Drop Database"
-msgstr ""
+msgstr "Xóa CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:488
#, python-format
msgid "Click here to change your user's timezone."
-msgstr ""
+msgstr "Ấn vào đây để thay đổi múi giờ của bạn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:988
#, python-format
msgid "Modifiers:"
-msgstr ""
+msgstr "Người chỉnh sửa:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:649
#, python-format
msgid "Delete this attachment"
-msgstr ""
+msgstr "Xóa đính kèm này"
#. module: web
#. openerp-web
@@ -923,7 +926,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1630
#, python-format
msgid "Save"
-msgstr ""
+msgstr "Lưu"
#. module: web
#. openerp-web
@@ -931,49 +934,49 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:370
#, python-format
msgid "More"
-msgstr ""
+msgstr "Thêm"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:73
#, python-format
msgid "Username"
-msgstr ""
+msgstr "Tên tài khoản:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:503
#, python-format
msgid "Duplicating database"
-msgstr ""
+msgstr "Nhân đôi CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:585
#, python-format
msgid "Password has been changed successfully"
-msgstr ""
+msgstr "Mật khẩu đã thay đổi thành công"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list_editable.js:793
#, python-format
msgid "The form's data can not be discarded"
-msgstr ""
+msgstr "Biểu mẫu dữ liệu không thể bị loại bỏ "
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:555
#, python-format
msgid "Debug View#"
-msgstr ""
+msgstr "Gỡ lỡi hiển thị#"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:77
#, python-format
msgid "Log in"
-msgstr ""
+msgstr "Đăng nhập"
#. module: web
#. openerp-web
@@ -982,7 +985,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1785
#, python-format
msgid "Delete"
-msgstr ""
+msgstr "Xóa"
#. module: web
#. openerp-web
@@ -1000,70 +1003,70 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:367
#, python-format
msgid "Invalid database name"
-msgstr ""
+msgstr "Tên CSDL sai"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1714
#, python-format
msgid "Save fields list"
-msgstr ""
+msgstr "Lưu danh sách các trường"
#. module: web
#. openerp-web
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
-msgstr ""
+msgstr "Bắt đầu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:897
#, python-format
msgid "View Log (%s)"
-msgstr ""
+msgstr "Xem nhật ký (%s)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:586
#, python-format
msgid "Creation Date:"
-msgstr ""
+msgstr "Ngày tạo:"
#. module: web
#: code:addons/web/controllers/main.py:833
#: code:addons/web/controllers/main.py:878
#, python-format
msgid "Error, password not changed !"
-msgstr ""
+msgstr "Lỗi, mật khẩu không thay đổi !"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4981
#, python-format
msgid "The selected file exceed the maximum file size of %s."
-msgstr ""
+msgstr "Tệp đã chọn vượt quá kích thước tối đa %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:635
#, python-format
msgid "/web/binary/upload_attachment"
-msgstr ""
+msgstr "/web/binary/upload_attachment"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:585
#, python-format
msgid "Changed Password"
-msgstr ""
+msgstr "Mật khẩu đã thay đổi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1457
#, python-format
msgid "Search"
-msgstr ""
+msgstr "Tìm kiếm"
#. module: web
#. openerp-web
@@ -1074,7 +1077,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4482
#, python-format
msgid "Open: "
-msgstr ""
+msgstr "Mở: "
#. module: web
#. openerp-web
@@ -1082,7 +1085,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:327
#, python-format
msgid "Backup"
-msgstr ""
+msgstr "Sao lưu"
#. module: web
#. openerp-web
@@ -1090,35 +1093,35 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:80
#, python-format
msgid "'%s' is not a valid time"
-msgstr ""
+msgstr "'%s' không đúng định dạng thời gian"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:278
#, python-format
msgid "'%s' is not a correct date"
-msgstr ""
+msgstr "'%s' không đúng định dạng ngày"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:955
#, python-format
msgid "(nolabel)"
-msgstr ""
+msgstr "(không nhãn)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:596
#, python-format
msgid "%d days ago"
-msgstr ""
+msgstr "%d ngày trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1500
#, python-format
msgid "(Any existing filter with the same name will be replaced)"
-msgstr ""
+msgstr "(Bộ lọc bất kì trùng tên sẽ bị thay thế)"
#. module: web
#. openerp-web
@@ -1128,7 +1131,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1881
#, python-format
msgid "Cancel"
-msgstr ""
+msgstr "Hủy bỏ"
#. module: web
#. openerp-web
@@ -1137,49 +1140,49 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:9
#, python-format
msgid "Loading..."
-msgstr ""
+msgstr "Đang nạp..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:589
#, python-format
msgid "Latest Modification by:"
-msgstr ""
+msgstr "Sửa gần nhất bởi:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:492
#, python-format
msgid "Timezone mismatch"
-msgstr ""
+msgstr "Thiếu múi giờ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1663
#, python-format
msgid "Unknown operator %s in domain %s"
-msgstr ""
+msgstr "Toán tử không xác định %s trong phạm vi %s "
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:427
#, python-format
msgid "%d / %d"
-msgstr ""
+msgstr "%d / %d"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1803
#, python-format
msgid "2. Check your file format"
-msgstr ""
+msgstr "2. Kiểm tra định dạng tệp của bạn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1739
#, python-format
msgid "Name"
-msgstr ""
+msgstr "Tên"
#. module: web
#. openerp-web
@@ -1189,13 +1192,16 @@ msgid ""
"Select a .CSV file to import. If you need a sample of file to import,\n"
" you should use the export tool with the \"Import Compatible\" option."
msgstr ""
+"Lựa chọn tệp .CSV để chèn. Nếu bạn cần tệp mẫu,\n"
+"hãy sử dụng công cụ trích xuất với tùy chọn \"Tương thích khi chèn dữ liệu\" option."
+
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:598
#, python-format
msgid "%d months ago"
-msgstr ""
+msgstr "%s tháng trước"
#. module: web
#. openerp-web
@@ -1203,20 +1209,20 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:326
#, python-format
msgid "Drop"
-msgstr ""
+msgstr "Loại bỏ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1491
#, python-format
msgid "Add Advanced Filter"
-msgstr ""
+msgstr "Thêm bộc lọc nâng cao"
#. module: web
#: code:addons/web/controllers/main.py:871
#, python-format
msgid "The new password and its confirmation must be identical."
-msgstr ""
+msgstr "Mật khẩu mới và hãy đảm bảo nó giống nhau"
#. module: web
#. openerp-web
@@ -1224,21 +1230,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:266
#, python-format
msgid "Restore Database"
-msgstr ""
+msgstr "Khôi phục CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:702
#, python-format
msgid "Login"
-msgstr ""
+msgstr "Đăng nhập"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:442
#, python-format
msgid "Licenced under the terms of"
-msgstr ""
+msgstr "Bản quyền được cấp phép theo điều khoản"
#. module: web
#. openerp-web
@@ -1246,35 +1252,35 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:328
#, python-format
msgid "Restore"
-msgstr ""
+msgstr "Khôi phục"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1695
#, python-format
msgid "Export Type:"
-msgstr ""
+msgstr "Loại trích xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:428
#, python-format
msgid "Log out"
-msgstr ""
+msgstr "Đăng xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1192
#, python-format
msgid "Group by: %s"
-msgstr ""
+msgstr "Nhóm theo: %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:154
#, python-format
msgid "No data provided."
-msgstr ""
+msgstr "Không cung cấp được dữ liệu"
#. module: web
#. openerp-web
@@ -1282,98 +1288,98 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1683
#, python-format
msgid "Export"
-msgstr ""
+msgstr "Trích xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/data_export.js:31
#, python-format
msgid "Export To File"
-msgstr ""
+msgstr "Trích xuất thành tệp"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1172
#, python-format
msgid "You must choose at least one record."
-msgstr ""
+msgstr "Bạn cần chọn tối thiểu một bản ghi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "Don't leave yet,<br />it's still loading..."
-msgstr ""
+msgstr "Đừng thoát ra ngoài, đang nạp..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:841
#, python-format
msgid "Invalid Search"
-msgstr ""
+msgstr "Tìm kiếm không hợp lệ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:990
#, python-format
msgid "Could not find id in dataset"
-msgstr ""
+msgstr "KHông thể tìm thấy id trong dữ liệu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1728
#, python-format
msgid "Remove All"
-msgstr ""
+msgstr "Loại tất cả"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1368
#, python-format
msgid "Method:"
-msgstr ""
+msgstr "Phương thức:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1449
#, python-format
msgid "%(page)d/%(page_count)d"
-msgstr ""
+msgstr "%(page)d/%(page_count)d"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:414
#, python-format
msgid "The confirmation does not match the password"
-msgstr ""
+msgstr "Mật khẩu không khớp"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:463
#, python-format
msgid "Edit Company data"
-msgstr ""
+msgstr "Sửa dữ liệu doanh nghiệp"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5017
#, python-format
msgid "Save As..."
-msgstr ""
+msgstr "Lưu thành..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5138
#, python-format
msgid "Could not display the selected image."
-msgstr ""
+msgstr "Không thể hiển thị ảnh đã chọn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:531
#, python-format
msgid "Database backed up successfully"
-msgstr ""
+msgstr "CSDL đã sao lưu thành công"
#. module: web
#. openerp-web
@@ -1389,42 +1395,42 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:414
#, python-format
msgid "99+"
-msgstr ""
+msgstr "99+"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1795
#, python-format
msgid "1. Import a .CSV file"
-msgstr ""
+msgstr "1. Chèn tệp .CSV"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:702
#, python-format
msgid "No database selected !"
-msgstr ""
+msgstr "Chưa chọn CSDL !"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:184
#, python-format
msgid "(%d records)"
-msgstr ""
+msgstr "(%d bản ghi)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:992
#, python-format
msgid "Change default:"
-msgstr ""
+msgstr "Đổi thiết lập mặc định:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:189
#, python-format
msgid "Original database name:"
-msgstr ""
+msgstr "Tên CSDL gốc"
#. module: web
#. openerp-web
@@ -1434,35 +1440,35 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2119
#, python-format
msgid "is equal to"
-msgstr ""
+msgstr "bằng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1581
#, python-format
msgid "Could not serialize XML"
-msgstr ""
+msgstr "Khôg thể sắp xếp từng hàng XML"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1637
#, python-format
msgid "Advanced Search"
-msgstr ""
+msgstr "Tìm kiếm nâng cao"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:308
#, python-format
msgid "Confirm new master password:"
-msgstr ""
+msgstr "Xác nhận mật khẩu chính mới"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:624
#, python-format
msgid "Maybe you should consider reloading the application by pressing F5..."
-msgstr ""
+msgstr "Có lẻ bạn nên nạp lại ứng dụng bằng cách ấn phím F5..."
#. module: web
#. openerp-web
@@ -1473,35 +1479,35 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1404
#, python-format
msgid "Create"
-msgstr ""
+msgstr "Tạo"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:2043
#, python-format
msgid "doesn't contain"
-msgstr ""
+msgstr "không chứa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1806
#, python-format
msgid "Import Options"
-msgstr ""
+msgstr "Các tùy chọn chèn vào"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:3023
#, python-format
msgid "Add %s"
-msgstr ""
+msgstr "Thêm %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:145
#, python-format
msgid "Admin password:"
-msgstr ""
+msgstr "Mật khẩu Admin:"
#. module: web
#. openerp-web
@@ -1510,7 +1516,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1422
#, python-format
msgid "Close"
-msgstr ""
+msgstr "Đóng"
#. module: web
#. openerp-web
@@ -1518,55 +1524,55 @@ msgstr ""
#, python-format
msgid ""
"You may not believe it,<br />but the application is actually loading..."
-msgstr ""
+msgstr "Ứng dụng vẫn đang nhạp dữ liệu..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1800
#, python-format
msgid "CSV File:"
-msgstr ""
+msgstr "Tệp CSV:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1879
#, python-format
msgid "Advanced"
-msgstr ""
+msgstr "Nâng cao"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_tree.js:11
#, python-format
msgid "Tree"
-msgstr ""
+msgstr "Cây"
#. module: web
#: code:addons/web/controllers/main.py:793
#, python-format
msgid "Could not drop database !"
-msgstr ""
+msgstr "Không thể loại bỏ CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:231
#, python-format
msgid "'%s' is not a correct integer"
-msgstr ""
+msgstr "'%s' không đúng kiểu số nguyên"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:899
#, python-format
msgid "All users"
-msgstr ""
+msgstr "Tất cả người dùng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1671
#, python-format
msgid "Unknown field %s in domain %s"
-msgstr ""
+msgstr "Trường %s không xác định trong khoảng %s"
#. module: web
#. openerp-web
@@ -1580,14 +1586,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1454
#, python-format
msgid "Advanced Search..."
-msgstr ""
+msgstr "Tìm kiếm nâng cao"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:521
#, python-format
msgid "Dropping database"
-msgstr ""
+msgstr "Đang loại bỏ CSDL"
#. module: web
#. openerp-web
@@ -1595,7 +1601,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:467
#, python-format
msgid "Powered by"
-msgstr ""
+msgstr "Mã nguồn bởi"
#. module: web
#. openerp-web
@@ -1603,63 +1609,63 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:992
#, python-format
msgid "Yes"
-msgstr ""
+msgstr "Có"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5002
#, python-format
msgid "There was a problem while uploading your file"
-msgstr ""
+msgstr "Gặp vấn đề khi tải tệp lên"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:580
#, python-format
msgid "XML ID:"
-msgstr ""
+msgstr "ID XML"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:976
#, python-format
msgid "Size:"
-msgstr ""
+msgstr "Kích thước:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1845
#, python-format
msgid "--- Don't Import ---"
-msgstr ""
+msgstr "--- Không chèn ---"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1697
#, python-format
msgid "Import-Compatible Export"
-msgstr ""
+msgstr "Chèn vào - Phù hợp trích xuất"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:600
#, python-format
msgid "%d years ago"
-msgstr ""
+msgstr "%d năm trước"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1050
#, python-format
msgid "Unknown m2m command %s"
-msgstr ""
+msgstr "Câu lệnh m2m không xác định %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1078
#, python-format
msgid "Save default"
-msgstr ""
+msgstr "Lưu mặc định"
#. module: web
#. openerp-web
@@ -1667,42 +1673,42 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:282
#, python-format
msgid "New database name:"
-msgstr ""
+msgstr "Tên CSDL mới"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:411
#, python-format
msgid "Please enter your new password"
-msgstr ""
+msgstr "Vui lòng điền mật khẩu mới của bạn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5017
#, python-format
msgid "The field is empty, there's nothing to save !"
-msgstr ""
+msgstr "Trường thông tin trống, không có gì để lưu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:567
#, python-format
msgid "Manage Views"
-msgstr ""
+msgstr "Quản lý các hiển thị"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1822
#, python-format
msgid "Encoding:"
-msgstr ""
+msgstr "Bảng mã:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1829
#, python-format
msgid "Lines to skip"
-msgstr ""
+msgstr "Bỏ qua dòng"
#. module: web
#. openerp-web
@@ -1716,7 +1722,7 @@ msgstr ""
#: code:addons/web/static/src/js/data_export.js:362
#, python-format
msgid "Please select fields to save export list..."
-msgstr ""
+msgstr "Lựa chọn các trường để lưu danh sách trích xuất..."
#. module: web
#. openerp-web
@@ -1730,21 +1736,21 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:2379
#, python-format
msgid "This resource is empty"
-msgstr ""
+msgstr "Tài nguyễn đang trống"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1710
#, python-format
msgid "Available fields"
-msgstr ""
+msgstr "Các trường hiện sẵn sàng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1856
#, python-format
msgid "The import failed due to:"
-msgstr ""
+msgstr "Chèn vào lỗi do:"
#. module: web
#. openerp-web
@@ -1752,21 +1758,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:561
#, python-format
msgid "JS Tests"
-msgstr ""
+msgstr "Kiểm tra JS"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1771
#, python-format
msgid "Save as:"
-msgstr ""
+msgstr "Lưu thành"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1024
#, python-format
msgid "Filter on: %s"
-msgstr ""
+msgstr "Lọc trên: %s"
#. module: web
#. openerp-web
@@ -1774,35 +1780,35 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:3878
#, python-format
msgid "Create: "
-msgstr ""
+msgstr "Tạo:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:562
#, python-format
msgid "View Fields"
-msgstr ""
+msgstr "Các trường hiển thị"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:348
#, python-format
msgid "Confirm New Password:"
-msgstr ""
+msgstr "Xác nhận mật khẩu mới"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:587
#, python-format
msgid "Do you really want to remove these records?"
-msgstr ""
+msgstr "Bạn có chắc chắn muốn loại bỏ các bản ghi?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:980
#, python-format
msgid "Context:"
-msgstr ""
+msgstr "Nội dung:"
#. module: web
#. openerp-web
@@ -1810,14 +1816,14 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2143
#, python-format
msgid "is"
-msgstr ""
+msgstr "là"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/data_export.js:6
#, python-format
msgid "Export Data"
-msgstr ""
+msgstr "Trích xuất dữ liệu"
#. module: web
#. openerp-web
@@ -1831,7 +1837,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:856
#, python-format
msgid "Default:"
-msgstr ""
+msgstr "Mặc định:"
#. module: web
#. openerp-web
@@ -1846,7 +1852,7 @@ msgstr ""
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
-msgstr ""
+msgstr "Dừng"
#. module: web
#. openerp-web
@@ -1855,7 +1861,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:243
#, python-format
msgid "Database:"
-msgstr ""
+msgstr "CSDL:"
#. module: web
#. openerp-web
@@ -1863,35 +1869,35 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1268
#, python-format
msgid "Uploading ..."
-msgstr ""
+msgstr "Đang tải lên..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1874
#, python-format
msgid "Name:"
-msgstr ""
+msgstr "Tên:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:1165
#, python-format
msgid "About"
-msgstr ""
+msgstr "Giới thiệu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1457
#, python-format
msgid "Search Again"
-msgstr ""
+msgstr "Tìm kiếm lần nữa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1481
#, python-format
msgid "-- Filters --"
-msgstr ""
+msgstr "-- Bộ lọc --"
#. module: web
#. openerp-web
@@ -1900,14 +1906,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1260
#, python-format
msgid "Clear"
-msgstr ""
+msgstr "Làm mới"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1698
#, python-format
msgid "Export all Data"
-msgstr ""
+msgstr "Xuất tất cả dữ liệu"
#. module: web
#. openerp-web
@@ -1923,7 +1929,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:559
#, python-format
msgid "Set Defaults"
-msgstr ""
+msgstr "Sử dụng mặc định"
#. module: web
#. openerp-web
@@ -1941,35 +1947,35 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:320
#, python-format
msgid "The record could not be found in the database."
-msgstr ""
+msgstr "Dữ liệu không tồn tại trong CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1498
#, python-format
msgid "Filter Name:"
-msgstr ""
+msgstr "Lọc theo tên:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:968
#, python-format
msgid "Type:"
-msgstr ""
+msgstr "Kiểu:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:560
#, python-format
msgid "Incorrect super-administrator password"
-msgstr ""
+msgstr "Mật khẩu master không hợp lệ"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:964
#, python-format
msgid "Object:"
-msgstr ""
+msgstr "Đối tượng :"
#. module: web
#. openerp-web
@@ -1977,7 +1983,7 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:343
#, python-format
msgid "Loading"
-msgstr ""
+msgstr "Đang tải"
#. module: web
#. openerp-web
@@ -1994,7 +2000,7 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2120
#, python-format
msgid "is not equal to"
-msgstr ""
+msgstr "không bằng với"
#. module: web
#. openerp-web
@@ -2010,7 +2016,7 @@ msgstr ""
#: code:addons/web/static/src/js/coresetup.js:594
#, python-format
msgid "%d hours ago"
-msgstr ""
+msgstr "cách đây %s giờ"
#. module: web
#. openerp-web
@@ -2018,14 +2024,14 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4464
#, python-format
msgid "Add: "
-msgstr ""
+msgstr "Thêm vào: "
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1879
#, python-format
msgid "Quick Add"
-msgstr ""
+msgstr "Bỏ thêm vào "
#. module: web
#. openerp-web
@@ -2045,28 +2051,28 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1773
#, python-format
msgid "Ok"
-msgstr ""
+msgstr "Đồng ý"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1237
#, python-format
msgid "Uploading..."
-msgstr ""
+msgstr "Đang tải lên..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:125
#, python-format
msgid "Load Demonstration data:"
-msgstr ""
+msgstr "Sử dụng dữ liệu mẩu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:637
#, python-format
msgid "Created by :"
-msgstr ""
+msgstr "Tạo bởi"
#. module: web
#. openerp-web
@@ -2074,14 +2080,14 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:26
#, python-format
msgid "'%s' is not a valid datetime"
-msgstr ""
+msgstr "'%s' không phải là kiểu thời gian"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "File:"
-msgstr ""
+msgstr "Tập tin"
#. module: web
#. openerp-web
@@ -2090,7 +2096,7 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2122
#, python-format
msgid "less than"
-msgstr ""
+msgstr "ít hơn"
#. module: web
#. openerp-web
@@ -2098,42 +2104,42 @@ msgstr ""
#: code:addons/web/static/src/js/views.js:1172
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "Cảnh báo"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:569
#, python-format
msgid "Edit SearchView"
-msgstr ""
+msgstr "Thay đổi kiểu tìm kiếm"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:2160
#, python-format
msgid "is true"
-msgstr ""
+msgstr "à đúng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4030
#, python-format
msgid "Add an item"
-msgstr ""
+msgstr "Thêm mới chỉ mục"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1621
#, python-format
msgid "Save current filter"
-msgstr ""
+msgstr "Lưu bộ lọc hiện tại"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1933
#, python-format
msgid "Confirm"
-msgstr ""
+msgstr "Xác nhận"
#. module: web
#. openerp-web
@@ -2147,14 +2153,14 @@ msgstr ""
#: code:addons/web/static/src/js/view_list.js:2216
#, python-format
msgid "Download \"%s\""
-msgstr ""
+msgstr "Tải về \"%s\""
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:325
#, python-format
msgid "New"
-msgstr ""
+msgstr "Mới"
#. module: web
#. openerp-web
@@ -2176,7 +2182,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:163
#, python-format
msgid "Confirm password:"
-msgstr ""
+msgstr "Nhập lại mật khẩu"
#. module: web
#. openerp-web
@@ -2185,14 +2191,14 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:2123
#, python-format
msgid "greater or equal than"
-msgstr ""
+msgstr "Lớn hơn hoặc bằng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1349
#, python-format
msgid "Button"
-msgstr ""
+msgstr "Nút"
#. module: web
#. openerp-web
@@ -2206,76 +2212,76 @@ msgstr ""
#: code:addons/web/static/src/js/data_export.js:375
#, python-format
msgid "Please select fields to export..."
-msgstr ""
+msgstr "Vui lòng chọn trường dữ liệu để xuất data..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:304
#, python-format
msgid "New master password:"
-msgstr ""
+msgstr "Mật khẩu master:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:2161
#, python-format
msgid "is false"
-msgstr ""
+msgstr "là sai"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:426
#, python-format
msgid "About OpenERP"
-msgstr ""
+msgstr "Giới thiệu về OpenErp"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:301
#, python-format
msgid "'%s' is not a correct date, datetime nor time"
-msgstr ""
+msgstr "'%s' không phải là kiểu dữ liêụ ngày tháng hay thời gian"
#. module: web
#: code:addons/web/controllers/main.py:1307
#, python-format
msgid "No content found for field '%s' on '%s:%s'"
-msgstr ""
+msgstr "Tham số không có dành cho trường '%s' trên '%s:%s'"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:322
#, python-format
msgid "Database Management"
-msgstr ""
+msgstr "Quản lý CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5138
#, python-format
msgid "Image"
-msgstr ""
+msgstr "Hình ảnh"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:81
#, python-format
msgid "Manage Databases"
-msgstr ""
+msgstr "Quản lý CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/pyeval.js:770
#, python-format
msgid "Evaluation Error"
-msgstr ""
+msgstr "Ước lượng lổi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1387
#, python-format
msgid "not a valid integer"
-msgstr ""
+msgstr "không phải là kiểu số nguyên"
#. module: web
#. openerp-web
@@ -2287,14 +2293,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1648
#, python-format
msgid "or"
-msgstr ""
+msgstr "hoặc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1485
#, python-format
msgid "No"
-msgstr ""
+msgstr "Không"
#. module: web
#. openerp-web
@@ -2310,7 +2316,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:325
#, python-format
msgid "Duplicate"
-msgstr ""
+msgstr "Nhân bản"
#. module: web
#. openerp-web
@@ -2319,21 +2325,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1419
#, python-format
msgid "Discard"
-msgstr ""
+msgstr "Không cần lưu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1642
#, python-format
msgid "Add a condition"
-msgstr ""
+msgstr "Thêm điều kiện"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:619
#, python-format
msgid "Still loading..."
-msgstr ""
+msgstr "Vui lòng đợi..."
#. module: web
#. openerp-web
@@ -2354,14 +2360,14 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:531
#, python-format
msgid "Backed"
-msgstr ""
+msgstr "Quay về thành công"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1628
#, python-format
msgid "Use by default"
-msgstr ""
+msgstr "Sử dụng mặc định"
#. module: web
#. openerp-web
@@ -2382,84 +2388,84 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:1079
#, python-format
msgid "Filter"
-msgstr ""
+msgstr "Bộ lọc"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:972
#, python-format
msgid "Widget:"
-msgstr ""
+msgstr "Widget:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:570
#, python-format
msgid "Edit Action"
-msgstr ""
+msgstr "Thay đổi hành động"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:577
#, python-format
msgid "ID:"
-msgstr ""
+msgstr "Mã số ID"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:892
#, python-format
msgid "Only you"
-msgstr ""
+msgstr "Chỉ riêng bạn"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:571
#, python-format
msgid "Edit Workflow"
-msgstr ""
+msgstr "Thay đổi Workflow"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1246
#, python-format
msgid "Do you really want to delete this attachment ?"
-msgstr ""
+msgstr "Bạn có chắc chắn xoá file đính kèm này?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:914
#, python-format
msgid "Technical Translation"
-msgstr ""
+msgstr "Kỷ thuật dịch"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:960
#, python-format
msgid "Field:"
-msgstr ""
+msgstr "Trường: "
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:642
#, python-format
msgid "Modified by :"
-msgstr ""
+msgstr "Thay đổi bởi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:521
#, python-format
msgid "The database %s has been dropped"
-msgstr ""
+msgstr "CSDL %s đã được xoá thành công"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:482
#, python-format
msgid "User's timezone"
-msgstr ""
+msgstr "Timezone của User"
#. module: web
#. openerp-web
@@ -2467,14 +2473,14 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:1276
#, python-format
msgid "Client Error"
-msgstr ""
+msgstr "Client lổi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1073
#, python-format
msgid "Print"
-msgstr ""
+msgstr "In"
#. module: web
#. openerp-web
@@ -2495,28 +2501,28 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:583
#, python-format
msgid "Creation User:"
-msgstr ""
+msgstr "Tạo tài khoản"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:769
#, python-format
msgid "Do you really want to delete this record?"
-msgstr ""
+msgstr "Bạn có chắc chắn muốn xoá dữ liệu này?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1413
#, python-format
msgid "Save & Close"
-msgstr ""
+msgstr "Lưu và đóng"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2932
#, python-format
msgid "Search More..."
-msgstr ""
+msgstr "Tìm kiếm thêm..."
#. module: web
#. openerp-web
@@ -2524,7 +2530,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:329
#, python-format
msgid "Password"
-msgstr ""
+msgstr "Mật khẩu"
#. module: web
#. openerp-web
@@ -2533,21 +2539,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1206
#, python-format
msgid "Edit"
-msgstr ""
+msgstr "Sửa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1727
#, python-format
msgid "Remove"
-msgstr ""
+msgstr "Xoá"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1090
#, python-format
msgid "Select date"
-msgstr ""
+msgstr "Chọn Ngày"
#. module: web
#. openerp-web
@@ -2555,28 +2561,28 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:1369
#, python-format
msgid "Search %(field)s for: %(value)s"
-msgstr ""
+msgstr "Tìm kiếm %s(field)s dành cho %(value)s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1305
#, python-format
msgid "Delete this file"
-msgstr ""
+msgstr "Xoá file này"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:168
#, python-format
msgid "Create Database"
-msgstr ""
+msgstr "Tạo mới CSDL"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:442
#, python-format
msgid "GNU Affero General Public License"
-msgstr ""
+msgstr "Bản quyền theo chuẩn GNU"
#. module: web
#. openerp-web
@@ -2590,7 +2596,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:318
#, python-format
msgid "Back to Login"
-msgstr ""
+msgstr "Quay về màn hình Login"
#. module: web
#. openerp-web
@@ -2598,4 +2604,4 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1480
#, python-format
msgid "Filters"
-msgstr ""
+msgstr "Bộ lọc"
diff --git a/addons/web/i18n/web.pot b/addons/web/i18n/web.pot
index 2122713ce8d..7e67055f896 100644
--- a/addons/web/i18n/web.pot
+++ b/addons/web/i18n/web.pot
@@ -1,13 +1,13 @@
-# Translation of OpenERP Server.
+# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 7.0alpha\n"
+"Project-Id-Version: Odoo Server 8.0rc1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:06+0000\n"
-"PO-Revision-Date: 2012-12-21 17:06+0000\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"
@@ -17,2571 +17,2839 @@ msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:133
+#: code:addons/web/static/src/js/search.js:2119
+#: code:addons/web/static/src/js/search.js:2286
#, python-format
-msgid "Default language:"
+msgid "%(field)s %(operator)s"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:2120
+#, python-format
+msgid "%(field)s %(operator)s \"%(value)s\""
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/view_list.js:1515
+#, python-format
+msgid "%(page)d/%(page_count)d"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/views.js:566
+#, python-format
+msgid "%(view_type)s view"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:432
+#, python-format
+msgid "%d / %d"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/core.js:679
+#, python-format
+msgid "%d days ago"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/core.js:677
+#, python-format
+msgid "%d hours ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:602
+#: code:addons/web/static/src/js/core.js:675
#, python-format
msgid "%d minutes ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:630
+#: code:addons/web/static/src/js/core.js:681
#, python-format
-msgid "Still loading...<br />Please be patient."
+msgid "%d months ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1832
+#: code:addons/web/static/src/js/core.js:683
#, python-format
-msgid "%(field)s %(operator)s \"%(value)s\""
+msgid "%d years ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1884
-#: code:addons/web/static/src/js/search.js:1918
-#: code:addons/web/static/src/js/search.js:1943
+#: code:addons/web/static/src/js/view_list.js:423
#, python-format
-msgid "less or equal than"
+msgid "%d-%d of %d"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:393
+#: code:addons/web/static/src/js/view_list.js:1424
#, python-format
-msgid "Please enter your previous password"
+msgid "%s (%d)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:117
-#: code:addons/web/static/src/xml/base.xml:167
-#: code:addons/web/static/src/xml/base.xml:282
+#: code:addons/web/static/src/js/formats.js:295
#, python-format
-msgid "Master password:"
+msgid "'%s' is not a correct date"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:274
+#: code:addons/web/static/src/js/formats.js:318
#, python-format
-msgid "Change Master Password"
+msgid "'%s' is not a correct date, datetime nor time"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:491
+#: code:addons/web/static/src/js/formats.js:282
#, python-format
-msgid "Do you really want to delete the database: %s ?"
+msgid "'%s' is not a correct datetime"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1398
+#: code:addons/web/static/src/js/formats.js:253
#, python-format
-msgid "Search %(field)s at: %(value)s"
+msgid "'%s' is not a correct float"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:537
+#: code:addons/web/static/src/js/formats.js:238
#, python-format
-msgid "Access Denied"
+msgid "'%s' is not a correct integer"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:5183
+#: code:addons/web/static/src/js/formats.js:303
#, python-format
-msgid "Uploading error"
+msgid "'%s' is not a correct time"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:603
+#: code:addons/web/static/src/js/formats.js:330
#, python-format
-msgid "about an hour ago"
+msgid "'%s' is not convertible to date, datetime nor time"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/controllers/main.py:768
-#: code:addons/web/static/src/js/chrome.js:514
-#: code:addons/web/static/src/xml/base.xml:216
+#: code:addons/web/static/src/js/formats.js:190
#, python-format
-msgid "Backup Database"
+msgid "(%d records)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:463
+#: code:addons/web/static/src/xml/base.xml:1538
#, python-format
-msgid "%(view_type)s view"
+msgid "(Any existing filter with the same name will be replaced)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/dates.js:49
-#: code:addons/web/static/src/js/dates.js:53
+#: code:addons/web/static/src/xml/base.xml:1385
#, python-format
-msgid "'%s' is not a valid date"
+msgid "(no string)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1837
+#: code:addons/web/static/src/xml/base.xml:885
#, python-format
-msgid "Here is a preview of the file we could not import:"
+msgid "(nolabel)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:601
+#: code:addons/web/static/src/xml/base.xml:1528
#, python-format
-msgid "about a minute ago"
+msgid "-- Actions --"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1297
+#: code:addons/web/static/src/xml/base.xml:1519
#, python-format
-msgid "File"
+msgid "-- Filters --"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:826
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1895
#, python-format
-msgid "You cannot leave any password empty."
+msgid "--- Don't Import ---"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:680
+#: code:addons/web/static/src/xml/base.xml:1326
#, python-format
-msgid "Invalid username or password"
+msgid "...Upload in progress..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:206
-#: code:addons/web/static/src/xml/base.xml:238
-#: code:addons/web/static/src/xml/base.xml:260
+#: code:addons/web/static/src/xml/base.xml:1845
#, python-format
-msgid "Master Password:"
+msgid "1. Import a .CSV file"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1217
-#: code:addons/web/static/src/xml/base.xml:1374
+#: code:addons/web/static/src/xml/base.xml:1853
#, python-format
-msgid "Select"
+msgid "2. Check your file format"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:549
+#: code:addons/web/static/src/js/view_form.js:2616
#, python-format
-msgid "Database restored successfully"
+msgid "<Prev"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:415
+#: code:addons/web/static/src/js/chrome.js:1095
#, python-format
-msgid "Version"
+msgid "About"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:570
+#: code:addons/web/static/src/xml/base.xml:360
#, python-format
-msgid "Latest Modification Date:"
+msgid "About Odoo"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1459
+#: code:addons/web/static/src/js/chrome.js:583
#, python-format
-msgid "M2O search fields do not currently handle multiple default values"
+msgid "Access Denied"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1227
+#: code:addons/web/static/src/js/view_form.js:4445
#, python-format
-msgid "Widget type '%s' is not implemented"
+msgid "Action Button"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1608
+#: code:addons/web/static/src/xml/base.xml:1405
#, python-format
-msgid "Share with all users"
+msgid "Action ID:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:77
-#: code:addons/web/static/src/js/view_form.js:321
+#: code:addons/web/static/src/xml/base.xml:369
#, python-format
-msgid "Form"
+msgid "Activate the developer mode"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1324
+#: code:addons/web/static/src/js/view_form.js:4981
+#: code:addons/web/static/src/xml/base.xml:1469
+#: code:addons/web/static/src/xml/base.xml:1768
#, python-format
-msgid "(no string)"
+msgid "Add"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:282
+#: code:addons/web/static/src/xml/base.xml:1529
#, python-format
-msgid "'%s' is not a correct time"
+msgid "Add Advanced Filter"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1297
+#: code:addons/web/static/src/xml/base.xml:1683
#, python-format
-msgid "not a valid number"
+msgid "Add a condition"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:325
+#: code:addons/web/static/src/js/view_form.js:3909
#, python-format
-msgid "New Password:"
+msgid "Add an item"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:610
+#: code:addons/web/static/src/xml/base.xml:584
+#, python-format
+msgid "Add..."
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:4874
+#: code:addons/web/static/src/js/view_form.js:5023
+#, python-format
+msgid "Add: "
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:2000
+#, python-format
+msgid "Advanced"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1678
+#, python-format
+msgid "Advanced Search"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1488
+#, python-format
+msgid "Advanced Search..."
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:830
+#, python-format
+msgid "All users"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1684
+#, python-format
+msgid "Apply"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:558
#, python-format
msgid "Attachment :"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1691
+#: code:addons/web/static/src/xml/base.xml:1752
#, python-format
-msgid "Fields to export"
+msgid "Available fields"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1340
+#: code:addons/web/static/src/xml/base.xml:298
#, python-format
-msgid "Undefined"
+msgid "Back to Login"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4871
+#: code:addons/web/static/src/js/chrome.js:555
#, python-format
-msgid "File Upload"
+msgid "Backed"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:607
+#: code:addons/web/static/src/xml/base.xml:209
+#: code:addons/web/static/src/xml/base.xml:307
#, python-format
-msgid "about a month ago"
+msgid "Backup"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/controllers/main.py:734
+#: code:addons/web/static/src/js/chrome.js:560
+#: code:addons/web/static/src/xml/base.xml:207
+#, python-format
+msgid "Backup Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1600
+#: code:addons/web/static/src/xml/base.xml:261
#, python-format
-msgid "Custom Filters"
+msgid "Backup Restore"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1336
+#: code:addons/web/static/src/xml/base.xml:390
+#, python-format
+msgid "Browser's timezone"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1382
+#, python-format
+msgid "Button"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1397
#, python-format
msgid "Button Type:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:419
+#: code:addons/web/static/src/xml/base.xml:93
#, python-format
-msgid "OpenERP SA Company"
+msgid "By default, the master password is 'admin'. This password\n"
+" is required to created, delete dump or restore databases."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1553
+#: code:addons/web/static/src/js/formats.js:117
#, python-format
-msgid "Custom Filter"
+msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:159
+#: code:addons/web/static/src/xml/base.xml:1850
#, python-format
-msgid "Duplicate Database"
+msgid "CSV File:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/controllers/main.py:789
-#: code:addons/web/controllers/main.py:790
-#: code:addons/web/controllers/main.py:826
-#: code:addons/web/controllers/main.py:828
-#: code:addons/web/controllers/main.py:834
-#: code:addons/web/controllers/main.py:835
-#: code:addons/web/static/src/js/chrome.js:768
-#: code:addons/web/static/src/xml/base.xml:276
+#: code:addons/web/static/src/js/view_list.js:1868
+#, python-format
+msgid "Can't convert value %s to context"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:2454
+#, python-format
+msgid "Can't send email to invalid e-mail address"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:1929
#: code:addons/web/static/src/xml/base.xml:336
+#: code:addons/web/static/src/xml/base.xml:1439
+#: code:addons/web/static/src/xml/base.xml:1932
#, python-format
-msgid "Change Password"
+msgid "Cancel"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:3411
+#: code:addons/web/static/src/xml/base.xml:272
#, python-format
-msgid "View type '%s' is not supported in One2Many."
+msgid "Change Master Password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4951
-#: code:addons/web/static/src/js/view_list.js:2194
+#: code:addons/web/controllers/main.py:754
+#: code:addons/web/controllers/main.py:756
+#: code:addons/web/controllers/main.py:787
+#: code:addons/web/controllers/main.py:789
+#: code:addons/web/controllers/main.py:795
+#: code:addons/web/controllers/main.py:796
+#: code:addons/web/static/src/js/chrome.js:726
+#: code:addons/web/static/src/xml/base.xml:274
+#: code:addons/web/static/src/xml/base.xml:334
#, python-format
-msgid "Download"
+msgid "Change Password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:266
+#: code:addons/web/static/src/xml/base.xml:922
#, python-format
-msgid "'%s' is not a correct datetime"
+msgid "Change default:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:417
+#: code:addons/web/static/src/js/chrome.js:609
#, python-format
-msgid "Group"
+msgid "Changed Password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:927
+#: code:addons/web/static/src/xml/base.xml:114
#, python-format
-msgid "Unhandled widget"
+msgid "Check this box to evaluate Odoo."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:982
+#: code:addons/web/static/src/js/view_form.js:2638
#, python-format
-msgid "Selection:"
+msgid "Choose Time"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:871
+#: code:addons/web/static/src/xml/base.xml:132
#, python-format
-msgid "The following fields are invalid:"
+msgid "Choose a password:"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:847
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:2612
+#: code:addons/web/static/src/xml/base.xml:1232
+#: code:addons/web/static/src/xml/base.xml:1285
+#: code:addons/web/static/src/xml/base.xml:1287
#, python-format
-msgid "Languages"
+msgid "Clear"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1270
+#: code:addons/web/static/src/xml/base.xml:394
#, python-format
-msgid "...Upload in progress..."
+msgid "Click here to change your user's timezone."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1768
+#: code:addons/web/static/src/js/chrome.js:298
+#: code:addons/web/static/src/js/chrome.js:1258
#, python-format
-msgid "Import"
+msgid "Client Error"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:543
+#: code:addons/web/static/src/js/data_export.js:35
+#: code:addons/web/static/src/js/view_form.js:1060
+#: code:addons/web/static/src/xml/base.xml:1456
#, python-format
-msgid "Could not restore the database"
+msgid "Close"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4851
+#: code:addons/web/static/src/js/view_form.js:2615
#, python-format
-msgid "File upload"
+msgid "Close without change"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:3804
+#: code:addons/web/static/src/xml/base.xml:804
#, python-format
-msgid "Action Button"
+msgid "Condition:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:542
-#: code:addons/web/static/src/xml/base.xml:1467
+#: code:addons/web/static/src/js/view_form.js:1927
#, python-format
-msgid "Manage Filters"
+msgid "Confirm"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1867
+#: code:addons/web/static/src/xml/base.xml:328
#, python-format
-msgid "contains"
+msgid "Confirm New Password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:633
+#: code:addons/web/static/src/xml/base.xml:288
#, python-format
-msgid "Take a minute to get a coffee,<br />because it's loading..."
+msgid "Confirm new master password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:413
+#: code:addons/web/static/src/xml/base.xml:136
#, python-format
-msgid "Activate the developer mode"
+msgid "Confirm password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:324
+#: code:addons/web/static/src/xml/base.xml:910
#, python-format
-msgid "Loading (%d)"
+msgid "Context:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1114
+#: code:addons/web/static/src/xml/base.xml:262
#, python-format
-msgid "GroupBy"
+msgid "Copy of an existing database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:687
+#: code:addons/web/static/src/xml/base.xml:374
#, python-format
-msgid "You must select at least one record."
+msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:535
+#: code:addons/web/static/src/js/view_form.js:5709
+#, python-format
+msgid "Could not display the selected image."
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:716
#, python-format
-msgid "View Log (perm_read)"
+msgid "Could not drop database !"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1061
+#: code:addons/web/static/src/js/view_list.js:1049
#, python-format
-msgid "Set Default"
+msgid "Could not find id in dataset"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:978
+#: code:addons/web/static/src/js/chrome.js:589
#, python-format
-msgid "Relation:"
+msgid "Could not restore the database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:600
+#: code:addons/web/static/src/js/views.js:1668
#, python-format
-msgid "less than a minute ago"
+msgid "Could not serialize XML"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:851
+#: code:addons/web/static/src/js/view_list.js:20
+#: code:addons/web/static/src/js/view_list.js:2367
+#: code:addons/web/static/src/xml/base.xml:304
+#: code:addons/web/static/src/xml/base.xml:765
+#: code:addons/web/static/src/xml/base.xml:1438
+#: code:addons/web/static/src/xml/base.xml:1930
#, python-format
-msgid "Condition:"
+msgid "Create"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1692
+#: code:addons/web/static/src/js/view_form.js:3350
#, python-format
-msgid "Unsupported operator %s in domain %s"
+msgid "Create \"<strong>%s</strong>\""
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:242
+#: code:addons/web/static/src/xml/base.xml:141
#, python-format
-msgid "'%s' is not a correct float"
+msgid "Create Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:549
+#: code:addons/web/static/src/js/view_form.js:3438
#, python-format
-msgid "Restored"
+msgid "Create a %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:394
+#: code:addons/web/static/src/xml/base.xml:82
#, python-format
-msgid "%d-%d of %d"
+msgid "Create a New Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2868
+#: code:addons/web/static/src/js/view_form.js:3361
#, python-format
msgid "Create and Edit..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/pyeval.js:731
+#: code:addons/web/static/src/xml/base.xml:1931
#, python-format
-msgid "Unknown nonliteral type "
+msgid "Create and edit"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2346
+#: code:addons/web/static/src/js/view_form.js:3405
+#: code:addons/web/static/src/js/view_form.js:4398
#, python-format
-msgid "Resource error"
+msgid "Create: "
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1961
+#: code:addons/web/static/src/xml/base.xml:563
#, python-format
-msgid "is not"
+msgid "Created by :"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:550
+#: code:addons/web/static/src/xml/base.xml:502
#, python-format
-msgid "Print Workflow"
+msgid "Creation Date:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:396
+#: code:addons/web/static/src/xml/base.xml:498
#, python-format
-msgid "Please confirm your new password"
+msgid "Creation User:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1804
+#: code:addons/web/static/src/js/search.js:1759
#, python-format
-msgid "UTF-8"
+msgid "Custom Filter"
+msgstr ""
+
+#. module: web
+#: view:website:web.database_select
+msgid "Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:421
+#: code:addons/web/static/src/xml/base.xml:302
#, python-format
-msgid "For more information visit"
+msgid "Database Management"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1859
+#: code:addons/web/static/src/js/chrome.js:555
#, python-format
-msgid "Add All Info..."
+msgid "Database backed up successfully"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1683
+#: code:addons/web/static/src/js/chrome.js:595
#, python-format
-msgid "Export Formats"
+msgid "Database restored successfully"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:974
+#: code:addons/web/static/src/xml/base.xml:184
+#: code:addons/web/static/src/xml/base.xml:216
#, python-format
-msgid "On change:"
+msgid "Database:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:865
+#: code:addons/web/static/src/xml/base.xml:466
#, python-format
-msgid "Model %s fields"
+msgid "Debug View#"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:893
+#: code:addons/web/static/src/xml/base.xml:120
#, python-format
-msgid "Setting 'id' attribute on existing record %s"
+msgid "Default language:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:8
+#: code:addons/web/static/src/xml/base.xml:787
#, python-format
-msgid "List"
+msgid "Default:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1881
-#: code:addons/web/static/src/js/search.js:1915
-#: code:addons/web/static/src/js/search.js:1940
+#: code:addons/web/static/src/js/view_form.js:202
+#: code:addons/web/static/src/js/view_list.js:351
+#: code:addons/web/static/src/xml/base.xml:1835
#, python-format
-msgid "greater than"
+msgid "Delete"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:2248
-#: code:addons/web/static/src/xml/base.xml:546
+#: code:addons/web/static/src/xml/base.xml:575
#, python-format
-msgid "View"
+msgid "Delete this attachment"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1466
+#: code:addons/web/static/src/xml/base.xml:1333
#, python-format
-msgid "Save Filter"
+msgid "Delete this file"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1344
+#: code:addons/web/static/src/xml/base.xml:1868
#, python-format
-msgid "Action ID:"
+msgid "Delimiter:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:457
+#: code:addons/web/static/src/xml/base.xml:726
+#: code:addons/web/static/src/xml/base.xml:770
+#: code:addons/web/static/src/xml/base.xml:1453
#, python-format
-msgid "Your user's preference timezone does not match your browser timezone:"
+msgid "Discard"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1223
+#: code:addons/web/static/src/js/chrome.js:537
#, python-format
-msgid "Field '%s' specified in view could not be found."
+msgid "Do you really want to delete the database: %s ?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1756
+#: code:addons/web/static/src/js/views.js:1322
#, python-format
-msgid "Saved exports:"
+msgid "Do you really want to delete this attachment ?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:320
+#: code:addons/web/static/src/js/view_form.js:754
#, python-format
-msgid "Old Password:"
+msgid "Do you really want to delete this record?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:113
+#: code:addons/web/static/src/js/view_list.js:607
#, python-format
-msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
+msgid "Do you really want to remove these records?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:481
+#: code:addons/web/static/src/xml/base.xml:1860
#, python-format
-msgid "The database has been duplicated."
+msgid "Does your file have titles?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1625
+#: code:addons/web/static/src/xml/base.xml:914
#, python-format
-msgid "Apply"
+msgid "Domain:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1386
+#: code:addons/web/static/src/js/core.js:704
#, python-format
-msgid "Save & New"
+msgid "Don't leave yet,<br />it's still loading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1223
-#: code:addons/web/static/src/xml/base.xml:1225
+#: code:addons/web/static/src/js/view_form.js:2614
+#: code:addons/web/static/src/js/view_form.js:2644
#, python-format
-msgid "Save As"
+msgid "Done"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
+#: code:addons/web/static/src/js/view_form.js:5648
+#: code:addons/web/static/src/js/view_list.js:2299
#, python-format
-msgid "00:00:00"
+msgid "Download"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2317
+#: code:addons/web/static/src/js/view_list.js:2311
#, python-format
-msgid "E-mail error"
+msgid "Download \"%s\""
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:605
+#: code:addons/web/static/src/xml/base.xml:178
+#: code:addons/web/static/src/xml/base.xml:306
#, python-format
-msgid "a day ago"
+msgid "Drop"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1789
+#: code:addons/web/controllers/main.py:716
+#: code:addons/web/static/src/xml/base.xml:176
#, python-format
-msgid "Does your file have titles?"
+msgid "Drop Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:327
+#: code:addons/web/static/src/js/chrome.js:545
#, python-format
-msgid "Unlimited"
+msgid "Dropping database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:784
+#: code:addons/web/static/src/js/view_form.js:203
+#: code:addons/web/static/src/xml/base.xml:152
+#: code:addons/web/static/src/xml/base.xml:305
#, python-format
-msgid "Warning, the record has been modified, your changes will be discarded.\n"
-"\n"
-"Are you sure you want to leave this page ?"
+msgid "Duplicate"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2904
+#: code:addons/web/static/src/xml/base.xml:150
#, python-format
-msgid "Search: "
+msgid "Duplicate Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:544
+#: code:addons/web/static/src/js/chrome.js:527
#, python-format
-msgid "Technical translation"
+msgid "Duplicating database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1797
+#: code:addons/web/static/src/js/view_form.js:2454
#, python-format
-msgid "Delimiter:"
+msgid "E-mail Error"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:462
+#: code:addons/web/static/src/xml/base.xml:479
+#: code:addons/web/static/src/xml/base.xml:762
+#: code:addons/web/static/src/xml/base.xml:1231
#, python-format
-msgid "Browser's timezone"
+msgid "Edit"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1605
+#: code:addons/web/static/src/xml/base.xml:481
#, python-format
-msgid "Filter name"
+msgid "Edit Action"
+msgstr ""
+
+#. module: web
+#: view:website:web.menu_secondary
+msgid "Edit Company data"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1464
+#: code:addons/web/static/src/xml/base.xml:480
#, python-format
-msgid "-- Actions --"
+msgid "Edit SearchView"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4134
-#: code:addons/web/static/src/js/view_form.js:4294
-#: code:addons/web/static/src/xml/base.xml:1407
-#: code:addons/web/static/src/xml/base.xml:1705
+#: code:addons/web/static/src/xml/base.xml:482
#, python-format
-msgid "Add"
+msgid "Edit Workflow"
+msgstr ""
+
+#. module: web
+#: view:website:web.login
+msgid "Email"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:536
+#: code:addons/web/static/src/xml/base.xml:1872
#, python-format
-msgid "Toggle Form Layout Outline"
+msgid "Encoding:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:421
+#: code:addons/web/static/src/xml/website.tour.xml:25
#, python-format
-msgid "OpenERP.com"
+msgid "End This Tutorial"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2317
+#: code:addons/web/static/src/js/view_form.js:2613
#, python-format
-msgid "Can't send email to invalid e-mail address"
+msgid "Erase the current date"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:636
+#: code:addons/web/static/src/js/search.js:1867
#, python-format
-msgid "Add..."
+msgid "Error"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:756
+#: code:addons/web/controllers/main.py:796
+#, python-format
+msgid "Error, password not changed !"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:405
+#: code:addons/web/static/src/js/pyeval.js:902
#, python-format
-msgid "Preferences"
+msgid "Evaluation Error"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:436
+#: code:addons/web/static/src/js/view_list.js:350
+#: code:addons/web/static/src/xml/base.xml:1728
#, python-format
-msgid "Wrong on change format: %s"
+msgid "Export"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/controllers/main.py:750
-#: code:addons/web/static/src/xml/base.xml:185
+#: code:addons/web/static/src/js/data_export.js:11
#, python-format
-msgid "Drop Database"
+msgid "Export Data"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:466
+#: code:addons/web/static/src/xml/base.xml:1746
#, python-format
-msgid "Click here to change your user's timezone."
+msgid "Export Formats"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:966
+#: code:addons/web/static/src/js/data_export.js:36
#, python-format
-msgid "Modifiers:"
+msgid "Export To File"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:627
+#: code:addons/web/static/src/xml/base.xml:1740
#, python-format
-msgid "Delete this attachment"
+msgid "Export Type:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:774
-#: code:addons/web/static/src/xml/base.xml:815
-#: code:addons/web/static/src/xml/base.xml:1382
-#: code:addons/web/static/src/xml/base.xml:1612
+#: code:addons/web/static/src/xml/base.xml:1743
#, python-format
-msgid "Save"
+msgid "Export all Data"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:999
-#: code:addons/web/static/src/xml/base.xml:352
+#: code:addons/web/static/src/js/views.js:824
#, python-format
-msgid "More"
+msgid "Failed to evaluate search criterions"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:73
+#: code:addons/web/static/src/xml/base.xml:1658
#, python-format
-msgid "Username"
+msgid "Favorites"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:481
+#: code:addons/web/static/src/js/view_form.js:1220
#, python-format
-msgid "Duplicating database"
+msgid "Field '%s' specified in view could not be found."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:563
+#: code:addons/web/static/src/xml/base.xml:890
#, python-format
-msgid "Password has been changed successfully"
+msgid "Field:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list_editable.js:788
+#: code:addons/web/static/src/js/views.js:946
+#: code:addons/web/static/src/xml/base.xml:474
#, python-format
-msgid "The form's data can not be discarded"
+msgid "Fields View Get"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:533
+#: code:addons/web/static/src/xml/base.xml:1754
#, python-format
-msgid "Debug View#"
+msgid "Fields to export"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:77
+#: code:addons/web/static/src/js/view_form.js:5568
#, python-format
-msgid "Log in"
+msgid "File Upload"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:198
-#: code:addons/web/static/src/js/view_list.js:346
-#: code:addons/web/static/src/xml/base.xml:1764
+#: code:addons/web/static/src/js/view_form.js:5548
#, python-format
-msgid "Delete"
+msgid "File upload"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/pyeval.js:769
+#: code:addons/web/static/src/xml/base.xml:251
#, python-format
-msgid "Local evaluation failure\n"
-"%s\n"
-"\n"
-"%s"
+msgid "File:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:350
+#: code:addons/web/static/src/xml/base.xml:87
#, python-format
-msgid "Invalid database name"
+msgid "Fill in this form to create an Odoo database. You can\n"
+" create databases for different companies or for different\n"
+" goals (testing, production). Once the database is created,\n"
+" you will be able to install your first application."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1693
+#: code:addons/web/static/src/js/search.js:1147
#, python-format
-msgid "Save fields list"
+msgid "Filter"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
+#: code:addons/web/static/src/xml/base.xml:1536
#, python-format
-msgid "Start"
+msgid "Filter Name:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:823
+#: code:addons/web/static/src/xml/base.xml:1666
#, python-format
-msgid "View Log (%s)"
+msgid "Filter name"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:564
+#: code:addons/web/static/src/js/search.js:1867
#, python-format
-msgid "Creation Date:"
+msgid "Filter name is required."
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:790
-#: code:addons/web/controllers/main.py:835
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:1092
#, python-format
-msgid "Error, password not changed !"
+msgid "Filter on: %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4850
+#: code:addons/web/static/src/js/search.js:832
+#: code:addons/web/static/src/xml/base.xml:1518
#, python-format
-msgid "The selected file exceed the maximum file size of %s."
+msgid "Filters"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:632
-#: code:addons/web/static/src/xml/base.xml:1300
+#: code:addons/web/static/src/xml/base.xml:377
#, python-format
-msgid "/web/binary/upload_attachment"
+msgid "For more information visit"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:563
+#: code:addons/web/static/src/xml/base.xml:1879
#, python-format
-msgid "Changed Password"
+msgid "For use if CSV files have titles on multiple lines, skips more than a single line during import"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1431
+#: code:addons/web/static/src/js/view_form.js:79
+#: code:addons/web/static/src/js/view_form.js:323
#, python-format
-msgid "Search"
+msgid "Form"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:3032
-#: code:addons/web/static/src/js/view_form.js:3668
-#: code:addons/web/static/src/js/view_form.js:3785
-#: code:addons/web/static/src/js/view_form.js:4230
-#: code:addons/web/static/src/js/view_form.js:4353
+#: code:addons/web/static/src/xml/base.xml:376
#, python-format
-msgid "Open: "
+msgid "GNU Affero General Public License"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:218
-#: code:addons/web/static/src/xml/base.xml:309
+#: code:addons/web/static/src/js/view_list.js:446
#, python-format
-msgid "Backup"
+msgid "Group"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/dates.js:76
-#: code:addons/web/static/src/js/dates.js:80
+#: code:addons/web/static/src/js/search.js:1260
#, python-format
-msgid "'%s' is not a valid time"
+msgid "Group by: %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:274
+#: code:addons/web/static/src/js/search.js:1284
#, python-format
-msgid "'%s' is not a correct date"
+msgid "GroupBy"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:933
+#: code:addons/web/static/src/xml/base.xml:361
#, python-format
-msgid "(nolabel)"
+msgid "Help"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:606
+#: code:addons/web/static/src/xml/base.xml:1908
#, python-format
-msgid "%d days ago"
+msgid "Here is a preview of the file we could not import:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1474
+#: code:addons/web/static/src/js/view_form.js:2640
#, python-format
-msgid "(Any existing filter with the same name will be replaced)"
+msgid "Hour"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1918
-#: code:addons/web/static/src/xml/base.xml:338
-#: code:addons/web/static/src/xml/base.xml:1377
-#: code:addons/web/static/src/xml/base.xml:1860
+#: code:addons/web/static/src/xml/base.xml:490
#, python-format
-msgid "Cancel"
+msgid "ID:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:628
-#: code:addons/web/static/src/xml/base.xml:9
+#: code:addons/web/static/src/js/view_form.js:5709
#, python-format
-msgid "Loading..."
+msgid "Image"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:567
+#: code:addons/web/static/src/xml/base.xml:1839
#, python-format
-msgid "Latest Modification by:"
+msgid "Import"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:1242
-#: code:addons/web/static/src/xml/base.xml:470
+#: code:addons/web/static/src/xml/base.xml:1856
#, python-format
-msgid "Timezone mismatch"
+msgid "Import Options"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1646
+#: code:addons/web/static/src/xml/base.xml:1742
#, python-format
-msgid "Unknown operator %s in domain %s"
+msgid "Import-Compatible Export"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:428
+#: code:addons/web/static/src/js/chrome.js:584
#, python-format
-msgid "%d / %d"
+msgid "Incorrect super-administrator password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1782
+#: code:addons/web/static/src/js/search.js:951
#, python-format
-msgid "2. Check your file format"
+msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1718
+#: code:addons/web/static/src/js/search.js:742
#, python-format
-msgid "Name"
+msgid "Invalid Search"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1775
+#: code:addons/web/static/src/js/chrome.js:418
#, python-format
-msgid "Select a .CSV file to import. If you need a sample of file to import,\n"
-" you should use the export tool with the \"Import Compatible\" option."
+msgid "Invalid database name"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:608
+#: code:addons/web/static/src/js/views.js:951
+#: code:addons/web/static/src/xml/base.xml:472
#, python-format
-msgid "%d months ago"
+msgid "JS Tests"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:803
+#, python-format
+msgid "Languages"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:187
-#: code:addons/web/static/src/xml/base.xml:308
+#: code:addons/web/static/src/xml/base.xml:510
#, python-format
-msgid "Drop"
+msgid "Latest Modification Date:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1465
+#: code:addons/web/static/src/xml/base.xml:506
#, python-format
-msgid "Add Advanced Filter"
+msgid "Latest Modification by:"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:828
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:1876
#, python-format
-msgid "The new password and its confirmation must be identical."
+msgid "Latin 1"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:542
-#: code:addons/web/static/src/xml/base.xml:248
+#: code:addons/web/static/src/xml/base.xml:376
#, python-format
-msgid "Restore Database"
+msgid "Licenced under the terms of"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:644
+#: code:addons/web/static/src/xml/base.xml:1879
#, python-format
-msgid "Login"
+msgid "Lines to skip"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:420
+#: code:addons/web/static/src/js/view_list.js:11
#, python-format
-msgid "Licenced under the terms of"
+msgid "List"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:250
-#: code:addons/web/static/src/xml/base.xml:310
+#: code:addons/web/static/src/xml/base.xml:111
#, python-format
-msgid "Restore"
+msgid "Load demonstration data:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1677
+#: code:addons/web/static/src/js/chrome.js:360
+#: code:addons/web/static/src/js/chrome.js:394
#, python-format
-msgid "Export Type:"
+msgid "Loading"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:406
+#: code:addons/web/static/src/js/chrome.js:392
#, python-format
-msgid "Log out"
+msgid "Loading (%d)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1090
+#: code:addons/web/static/src/js/core.js:701
+#: code:addons/web/static/src/xml/base.xml:9
#, python-format
-msgid "Group by: %s"
+msgid "Loading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:153
+#: code:addons/web/static/src/js/pyeval.js:906
#, python-format
-msgid "No data provided."
+msgid "Local evaluation failure\n"
+"%s\n"
+"\n"
+"%s"
+msgstr ""
+
+#. module: web
+#: view:website:web.login
+msgid "Log in"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:345
-#: code:addons/web/static/src/xml/base.xml:1665
+#: code:addons/web/static/src/xml/base.xml:362
#, python-format
-msgid "Export"
+msgid "Log out"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:12
+#: code:addons/web/static/src/js/search.js:1660
#, python-format
-msgid "Export To File"
+msgid "M2O search fields do not currently handle multiple default values"
+msgstr ""
+
+#. module: web
+#: view:website:web.login_layout
+msgid "Manage Databases"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:1097
+#: code:addons/web/static/src/xml/base.xml:475
+#: code:addons/web/static/src/xml/base.xml:1531
#, python-format
-msgid "You must choose at least one record."
+msgid "Manage Filters"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:631
+#: code:addons/web/static/src/xml/base.xml:478
#, python-format
-msgid "Don't leave yet,<br />it's still loading..."
+msgid "Manage Views"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:775
+#: code:addons/web/static/src/xml/base.xml:197
+#: code:addons/web/static/src/xml/base.xml:229
+#: code:addons/web/static/src/xml/base.xml:247
#, python-format
-msgid "Invalid Search"
+msgid "Master Password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:980
+#: code:addons/web/static/src/xml/base.xml:99
+#: code:addons/web/static/src/xml/base.xml:158
+#: code:addons/web/static/src/xml/base.xml:280
#, python-format
-msgid "Could not find id in dataset"
+msgid "Master password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1707
+#: code:addons/web/static/src/js/core.js:707
#, python-format
-msgid "Remove All"
+msgid "Maybe you should consider reloading the application by pressing F5..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1340
+#: code:addons/web/static/src/js/views.js:962
#, python-format
-msgid "Method:"
+msgid "Metadata (%s)"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1439
+#: code:addons/web/static/src/xml/base.xml:1401
#, python-format
-msgid "%(page)d/%(page_count)d"
+msgid "Method:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:397
+#: code:addons/web/static/src/js/view_form.js:2641
#, python-format
-msgid "The confirmation does not match the password"
+msgid "Minute"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:441
+#: code:addons/web/static/src/xml/base.xml:259
#, python-format
-msgid "Edit Company data"
+msgid "Mode:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4886
+#: code:addons/web/static/src/js/views.js:1004
#, python-format
-msgid "Save As..."
+msgid "Model %s fields"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:5007
+#: code:addons/web/static/src/xml/base.xml:568
#, python-format
-msgid "Could not display the selected image."
+msgid "Modified by :"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:509
+#: code:addons/web/static/src/xml/base.xml:918
#, python-format
-msgid "Database backed up successfully"
+msgid "Modifiers:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1808
+#: code:addons/web/static/src/js/views.js:1138
+#: code:addons/web/static/src/xml/base.xml:1217
+#: view:website:web.menu
#, python-format
-msgid "For use if CSV files have titles on multiple lines, skips more than a single line during import"
+msgid "More"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:394
+#: code:addons/web/static/src/xml/base.xml:359
#, python-format
-msgid "99+"
+msgid "My Odoo.com account"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1774
+#: code:addons/web/static/src/xml/base.xml:1789
#, python-format
-msgid "1. Import a .CSV file"
+msgid "Name"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:644
+#: code:addons/web/static/src/xml/base.xml:1925
#, python-format
-msgid "No database selected !"
+msgid "Name:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:180
+#: code:addons/web/static/src/js/view_form.js:328
#, python-format
-msgid "(%d records)"
+msgid "New"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:970
+#: code:addons/web/static/src/xml/base.xml:323
#, python-format
-msgid "Change default:"
+msgid "New Password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:171
+#: code:addons/web/static/src/xml/base.xml:166
+#: code:addons/web/static/src/xml/base.xml:255
#, python-format
-msgid "Original database name:"
+msgid "New database name:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1869
-#: code:addons/web/static/src/js/search.js:1879
-#: code:addons/web/static/src/js/search.js:1913
-#: code:addons/web/static/src/js/search.js:1938
+#: code:addons/web/static/src/xml/base.xml:284
#, python-format
-msgid "is equal to"
+msgid "New master password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:1500
+#: code:addons/web/static/src/js/view_form.js:2618
#, python-format
-msgid "Could not serialize XML"
+msgid "Next>"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1619
+#: code:addons/web/static/src/js/search.js:1562
#, python-format
-msgid "Advanced Search"
+msgid "No"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:1123
+#, python-format
+msgid "No content found for field '%s' on '%s:%s'"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:290
+#: code:addons/web/static/src/js/view_form.js:157
#, python-format
-msgid "Confirm new master password:"
+msgid "No data provided."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:634
+#: code:addons/web/static/src/js/view_form.js:3370
#, python-format
-msgid "Maybe you should consider reloading the application by pressing F5..."
+msgid "No results to show..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:17
-#: code:addons/web/static/src/js/view_list.js:2248
-#: code:addons/web/static/src/xml/base.xml:111
-#: code:addons/web/static/src/xml/base.xml:306
-#: code:addons/web/static/src/xml/base.xml:812
-#: code:addons/web/static/src/xml/base.xml:1376
+#: code:addons/web/static/src/js/view_form.js:3734
#, python-format
-msgid "Create"
+msgid "No value found for the field for value "
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1868
+#: code:addons/web/static/src/js/views.js:1633
#, python-format
-msgid "doesn't contain"
+msgid "Node [%s] is not a JSONified XML node"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1785
+#: code:addons/web/static/src/js/view_form.js:2643
#, python-format
-msgid "Import Options"
+msgid "Now"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2936
+#: code:addons/web/static/src/xml/base.xml:894
#, python-format
-msgid "Add %s"
+msgid "Object:"
+msgstr ""
+
+#. module: web
+#: view:website:web.layout
+#: view:website:web.login_layout
+#: view:website:web.menu_secondary
+msgid "Odoo"
+msgstr ""
+
+#. module: web
+#: view:website:web.qunit_suite
+msgid "Odoo Web Tests"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:145
+#: code:addons/web/static/src/xml/base.xml:374
#, python-format
-msgid "Admin password:"
+msgid "Odoo is a trademark of the"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:11
-#: code:addons/web/static/src/js/view_form.js:1067
-#: code:addons/web/static/src/xml/base.xml:1394
+#: code:addons/web/static/src/xml/base.xml:377
#, python-format
-msgid "Close"
+msgid "Odoo.com"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:632
+#: code:addons/web/static/src/js/chrome.js:279
+#: code:addons/web/static/src/js/chrome.js:288
+#: code:addons/web/static/src/js/chrome.js:346
+#: code:addons/web/static/src/js/chrome.js:504
+#: code:addons/web/static/src/js/chrome.js:750
+#: code:addons/web/static/src/js/view_form.js:570
+#: code:addons/web/static/src/js/view_form.js:1933
+#: code:addons/web/static/src/xml/base.xml:1823
#, python-format
-msgid "You may not believe it,<br />but the application is actually loading..."
+msgid "Ok"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1779
+#: code:addons/web/static/src/xml/base.xml:318
#, python-format
-msgid "CSV File:"
+msgid "Old Password:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1741
+#: code:addons/web/static/src/xml/base.xml:926
#, python-format
-msgid "Advanced"
+msgid "On change:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_tree.js:11
+#: code:addons/web/static/src/xml/base.xml:823
#, python-format
-msgid "Tree"
+msgid "Only you"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:750
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:3561
+#: code:addons/web/static/src/js/view_form.js:4306
+#: code:addons/web/static/src/js/view_form.js:4426
+#: code:addons/web/static/src/js/view_form.js:4899
+#: code:addons/web/static/src/js/view_form.js:5041
#, python-format
-msgid "Could not drop database !"
+msgid "Open: "
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:227
+#: code:addons/web/static/src/xml/base.xml:375
#, python-format
-msgid "'%s' is not a correct integer"
+msgid "OpenERP SA Company"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:877
+#: code:addons/web/static/src/xml/base.xml:162
#, python-format
-msgid "All users"
+msgid "Original database name:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1654
+#: code:addons/web/static/src/xml/base.xml:309
+#: view:website:web.login
#, python-format
-msgid "Unknown field %s in domain %s"
+msgid "Password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:1466
+#: code:addons/web/static/src/js/chrome.js:609
#, python-format
-msgid "Node [%s] is not a JSONified XML node"
+msgid "Password has been changed successfully"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1428
+#: code:addons/web/static/src/js/chrome.js:464
#, python-format
-msgid "Advanced Search..."
+msgid "Please confirm your new password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:499
+#: code:addons/web/static/src/js/data_export.js:145
#, python-format
-msgid "Dropping database"
+msgid "Please enter save field list name"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:82
-#: code:addons/web/static/src/xml/base.xml:445
+#: code:addons/web/static/src/js/chrome.js:462
#, python-format
-msgid "Powered by"
+msgid "Please enter your new password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1380
-#: code:addons/web/static/src/xml/base.xml:970
+#: code:addons/web/static/src/js/chrome.js:461
#, python-format
-msgid "Yes"
+msgid "Please enter your previous password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4871
+#: code:addons/web/static/src/xml/base.xml:1783
#, python-format
-msgid "There was a problem while uploading your file"
+msgid "Please note that only the selected ids will be exported."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:558
+#: code:addons/web/static/src/xml/base.xml:1780
#, python-format
-msgid "XML ID:"
+msgid "Please pay attention that all records matching your search filter will be exported. Not only the selected ids."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:954
+#: code:addons/web/static/src/js/data_export.js:394
#, python-format
-msgid "Size:"
+msgid "Please select fields to export..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1824
+#: code:addons/web/static/src/js/data_export.js:381
#, python-format
-msgid "--- Don't Import ---"
+msgid "Please select fields to save export list..."
+msgstr ""
+
+#. module: web
+#: view:website:web.login_layout
+#: view:website:web.menu_secondary
+msgid "Powered by"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1679
+#: code:addons/web/static/src/xml/base.xml:358
#, python-format
-msgid "Import-Compatible Export"
+msgid "Preferences"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:610
+#: code:addons/web/static/src/js/views.js:1137
#, python-format
-msgid "%d years ago"
+msgid "Print"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1040
+#: code:addons/web/static/src/xml/base.xml:483
#, python-format
-msgid "Unknown m2m command %s"
+msgid "Print Workflow"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1068
+#: code:addons/web/static/src/xml/base.xml:930
#, python-format
-msgid "Save default"
+msgid "Relation:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:121
-#: code:addons/web/static/src/xml/base.xml:175
-#: code:addons/web/static/src/xml/base.xml:264
+#: code:addons/web/static/src/xml/base.xml:1769
#, python-format
-msgid "New database name:"
+msgid "Remove"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:394
+#: code:addons/web/static/src/xml/base.xml:1770
#, python-format
-msgid "Please enter your new password"
+msgid "Remove All"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4886
+#: code:addons/web/static/src/js/view_form.js:3734
#, python-format
-msgid "The field is empty, there's nothing to save !"
+msgid "Render"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:545
+#: code:addons/web/static/src/js/view_form.js:2484
#, python-format
-msgid "Manage Views"
+msgid "Resource Error"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1801
+#: code:addons/web/static/src/xml/base.xml:241
+#: code:addons/web/static/src/xml/base.xml:308
#, python-format
-msgid "Encoding:"
+msgid "Restore"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1808
+#: code:addons/web/static/src/js/chrome.js:588
+#: code:addons/web/static/src/xml/base.xml:239
#, python-format
-msgid "Lines to skip"
+msgid "Restore Database"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2858
+#: code:addons/web/static/src/js/chrome.js:595
#, python-format
-msgid "Create \"<strong>%s</strong>\""
+msgid "Restored"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:361
+#: code:addons/web/static/src/xml/base.xml:723
+#: code:addons/web/static/src/xml/base.xml:768
+#: code:addons/web/static/src/xml/base.xml:1444
+#: code:addons/web/static/src/xml/base.xml:1673
#, python-format
-msgid "Please select fields to save export list..."
+msgid "Save"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:418
+#: code:addons/web/static/src/xml/base.xml:1447
#, python-format
-msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved."
+msgid "Save & Close"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2346
+#: code:addons/web/static/src/xml/base.xml:1448
#, python-format
-msgid "This resource is empty"
+msgid "Save & New"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1689
+#: code:addons/web/static/src/xml/base.xml:1278
+#: code:addons/web/static/src/xml/base.xml:1280
#, python-format
-msgid "Available fields"
+msgid "Save As"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1835
+#: code:addons/web/static/src/js/view_form.js:5583
#, python-format
-msgid "The import failed due to:"
+msgid "Save As..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:812
-#: code:addons/web/static/src/xml/base.xml:539
+#: code:addons/web/static/src/xml/base.xml:1530
#, python-format
-msgid "JS Tests"
+msgid "Save Filter"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1750
+#: code:addons/web/static/src/xml/base.xml:1821
#, python-format
msgid "Save as:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:927
+#: code:addons/web/static/src/xml/base.xml:1664
#, python-format
-msgid "Filter on: %s"
+msgid "Save current filter"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2904
-#: code:addons/web/static/src/js/view_form.js:3757
+#: code:addons/web/static/src/js/view_form.js:1061
#, python-format
-msgid "Create: "
+msgid "Save default"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:540
+#: code:addons/web/static/src/xml/base.xml:1756
#, python-format
-msgid "View Fields"
+msgid "Save fields list"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:330
+#: code:addons/web/static/src/xml/base.xml:1827
#, python-format
-msgid "Confirm New Password:"
+msgid "Saved exports:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:575
+#: code:addons/web/static/src/xml/base.xml:1490
#, python-format
-msgid "Do you really want to remove these records?"
+msgid "Search"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:958
+#: code:addons/web/static/src/js/search.js:1579
#, python-format
-msgid "Context:"
+msgid "Search %(field)s at: %(value)s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1933
-#: code:addons/web/static/src/js/search.js:1960
+#: code:addons/web/static/src/js/search.js:1428
+#: code:addons/web/static/src/js/search.js:1446
+#: code:addons/web/static/src/js/search.js:1618
#, python-format
-msgid "is"
+msgid "Search %(field)s for: %(value)s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:6
+#: code:addons/web/static/src/xml/base.xml:1490
#, python-format
-msgid "Export Data"
+msgid "Search Again"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:962
+#: code:addons/web/static/src/js/view_form.js:3336
#, python-format
-msgid "Domain:"
+msgid "Search More..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:834
+#: code:addons/web/static/src/js/view_form.js:3405
#, python-format
-msgid "Default:"
+msgid "Search: "
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:82
-#: code:addons/web/static/src/xml/base.xml:446
+#: code:addons/web/static/src/js/view_form.js:2642
#, python-format
-msgid "OpenERP"
+msgid "Second"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
+#: code:addons/web/static/src/xml/base.xml:1272
+#: code:addons/web/static/src/xml/base.xml:1435
#, python-format
-msgid "Stop"
+msgid "Select"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:68
-#: code:addons/web/static/src/xml/base.xml:193
-#: code:addons/web/static/src/xml/base.xml:225
+#: code:addons/web/static/src/js/view_form.js:2632
#, python-format
-msgid "Database:"
+msgid "Select D, M d"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1183
-#: code:addons/web/static/src/xml/base.xml:1240
+#: code:addons/web/static/src/xml/base.xml:1846
#, python-format
-msgid "Uploading ..."
+msgid "Select a .CSV file to import. If you need a sample of file to import,\n"
+" you should use the export tool with the \"Import Compatible\" option."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1853
+#: code:addons/web/static/src/xml/base.xml:105
#, python-format
-msgid "Name:"
+msgid "Select a database name:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:1058
+#: code:addons/web/static/src/js/view_form.js:2634
#, python-format
-msgid "About"
+msgid "Select a date"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1431
+#: code:addons/web/static/src/xml/base.xml:1063
#, python-format
-msgid "Search Again"
+msgid "Select date"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1455
+#: code:addons/web/static/src/xml/base.xml:934
#, python-format
-msgid "-- Filters --"
+msgid "Selection:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1230
-#: code:addons/web/static/src/xml/base.xml:1232
+#: code:addons/web/static/src/xml/base.xml:1866
#, python-format
-msgid "Clear"
+msgid "Separator:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1680
+#: code:addons/web/static/src/js/view_form.js:2631
#, python-format
-msgid "Export all Data"
+msgid "Set DD as first week day"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1334
+#: code:addons/web/static/src/js/view_form.js:1054
#, python-format
-msgid "Grouping on field '%s' is not possible because that field does not appear in the list view."
+msgid "Set Default"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:537
+#: code:addons/web/static/src/xml/base.xml:470
#, python-format
msgid "Set Defaults"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1670
+#: code:addons/web/static/src/js/view_list.js:964
#, python-format
-msgid "This wizard will export all data that matches the current search criteria to a CSV file.\n"
-" You can export all data or only the fields that can be reimported after modification."
+msgid "Setting 'id' attribute on existing record %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:321
+#: code:addons/web/static/src/xml/base.xml:1669
#, python-format
-msgid "The record could not be found in the database."
+msgid "Share with all users"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1472
+#: code:addons/web/static/src/js/view_form.js:2624
#, python-format
-msgid "Filter Name:"
+msgid "Show a different month"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:946
+#: code:addons/web/static/src/js/view_form.js:2625
#, python-format
-msgid "Type:"
+msgid "Show a different year"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:538
+#: code:addons/web/static/src/js/view_form.js:2621
#, python-format
-msgid "Incorrect super-administrator password"
+msgid "Show the current month"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:942
+#: code:addons/web/static/src/js/view_form.js:2619
#, python-format
-msgid "Object:"
+msgid "Show the next month"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:292
-#: code:addons/web/static/src/js/chrome.js:326
+#: code:addons/web/static/src/js/view_form.js:2617
#, python-format
-msgid "Loading"
+msgid "Show the previous month"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:609
+#: code:addons/web/static/src/xml/base.xml:906
#, python-format
-msgid "about a year ago"
+msgid "Size:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1870
-#: code:addons/web/static/src/js/search.js:1880
-#: code:addons/web/static/src/js/search.js:1914
-#: code:addons/web/static/src/js/search.js:1939
+#: code:addons/web/static/src/xml/base.xml:1392
#, python-format
-msgid "is not equal to"
+msgid "Special:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:5036
+#: code:addons/web/static/src/js/core.js:702
#, python-format
-msgid "The type of the field '%s' must be a many2many field with a relation to 'ir.attachment' model."
+msgid "Still loading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:604
+#: code:addons/web/static/src/js/core.js:703
#, python-format
-msgid "%d hours ago"
+msgid "Still loading...<br />Please be patient."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:4206
-#: code:addons/web/static/src/js/view_form.js:4335
+#: code:addons/web/static/src/js/core.js:706
#, python-format
-msgid "Add: "
+msgid "Take a minute to get a coffee,<br />because it's loading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1858
+#: code:addons/web/static/src/js/views.js:979
#, python-format
-msgid "Quick Add"
+msgid "Technical Translation"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1805
+#: code:addons/web/static/src/xml/base.xml:477
#, python-format
-msgid "Latin 1"
+msgid "Technical translation"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:260
-#: code:addons/web/static/src/js/chrome.js:269
-#: code:addons/web/static/src/js/chrome.js:449
-#: code:addons/web/static/src/js/chrome.js:792
-#: code:addons/web/static/src/js/view_form.js:572
-#: code:addons/web/static/src/js/view_form.js:1923
-#: code:addons/web/static/src/xml/base.xml:1752
+#: code:addons/web/static/src/js/chrome.js:465
#, python-format
-msgid "Ok"
+msgid "The confirmation does not match the password"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:1162
+#: code:addons/web/static/src/js/chrome.js:545
#, python-format
-msgid "Uploading..."
+msgid "The database %s has been dropped"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:125
+#: code:addons/web/static/src/js/chrome.js:527
#, python-format
-msgid "Load Demonstration data:"
+msgid "The database has been duplicated."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:615
+#: code:addons/web/static/src/js/view_form.js:5583
#, python-format
-msgid "Created by :"
+msgid "The field is empty, there's nothing to save !"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/dates.js:22
-#: code:addons/web/static/src/js/dates.js:26
+#: code:addons/web/static/src/js/view_form.js:866
#, python-format
-msgid "'%s' is not a valid datetime"
+msgid "The following fields are invalid:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:256
+#: code:addons/web/static/src/js/view_list_editable.js:780
#, python-format
-msgid "File:"
+msgid "The form's data can not be discarded"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1882
-#: code:addons/web/static/src/js/search.js:1916
-#: code:addons/web/static/src/js/search.js:1941
+#: code:addons/web/static/src/xml/base.xml:1906
#, python-format
-msgid "less than"
+msgid "The import failed due to:"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:789
+#, python-format
+msgid "The new password and its confirmation must be identical."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:687
-#: code:addons/web/static/src/js/views.js:1097
+#: code:addons/web/static/src/js/view_form.js:4446
#, python-format
-msgid "Warning"
+msgid "The o2m record must be saved before an action can be used"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:795
+#, python-format
+msgid "The old password you provided is incorrect, your password was not changed."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:547
+#: code:addons/web/static/src/js/view_form.js:323
#, python-format
-msgid "Edit SearchView"
+msgid "The record could not be found in the database."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1975
+#: code:addons/web/static/src/js/view_form.js:5547
#, python-format
-msgid "is true"
+msgid "The selected file exceed the maximum file size of %s."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:3909
+#: code:addons/web/static/src/js/view_form.js:5752
#, python-format
-msgid "Add an item"
+msgid "The type of the field '%s' must be a many2many field with a relation to 'ir.attachment' model."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1603
+#: code:addons/web/static/src/js/view_form.js:5568
#, python-format
-msgid "Save current filter"
+msgid "There was a problem while uploading your file"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:1915
+#: code:addons/web/static/src/js/search.js:1777
#, python-format
-msgid "Confirm"
+msgid "This filter is global and will be removed for everybody if you continue."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:126
+#: code:addons/web/static/src/js/view_form.js:2484
#, python-format
-msgid "Please enter save field list name"
+msgid "This resource is empty"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:2206
+#: code:addons/web/static/src/xml/base.xml:1733
#, python-format
-msgid "Download \"%s\""
+msgid "This wizard will export all data that matches the current search criteria to a CSV file.\n"
+" You can export all data or only the fields that can be reimported after modification."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:326
+#: code:addons/web/static/src/js/view_form.js:2639
#, python-format
-msgid "New"
+msgid "Time"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1767
+#: code:addons/web/static/src/js/chrome.js:1329
#, python-format
-msgid "Can't convert value %s to context"
+msgid "Timezone Mismatch"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:807
-#: code:addons/web/static/src/xml/base.xml:541
+#: code:addons/web/static/src/xml/base.xml:398
#, python-format
-msgid "Fields View Get"
+msgid "Timezone mismatch"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:149
+#: code:addons/web/static/src/js/view_form.js:2620
#, python-format
-msgid "Confirm password:"
+msgid "Today"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1883
-#: code:addons/web/static/src/js/search.js:1917
-#: code:addons/web/static/src/js/search.js:1942
+#: code:addons/web/static/src/xml/base.xml:967
#, python-format
-msgid "greater or equal than"
+msgid "Toggle Dropdown"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1321
+#: code:addons/web/static/src/xml/base.xml:469
#, python-format
-msgid "Button"
+msgid "Toggle Form Layout Outline"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:418
+#: code:addons/web/static/src/js/view_tree.js:14
#, python-format
-msgid "OpenERP is a trademark of the"
+msgid "Tree"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/data_export.js:374
+#: code:addons/web/static/src/xml/base.xml:898
#, python-format
-msgid "Please select fields to export..."
+msgid "Type:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:286
+#: code:addons/web/static/src/xml/base.xml:1875
#, python-format
-msgid "New master password:"
+msgid "UTF-8"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1976
+#: code:addons/web/static/src/js/view_list.js:1399
+#: code:addons/web/static/src/js/view_list.js:1405
+#: code:addons/web/static/src/js/view_list.js:1417
#, python-format
-msgid "is false"
+msgid "Undefined"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:404
+#: code:addons/web/static/src/xml/base.xml:879
#, python-format
-msgid "About OpenERP"
+msgid "Unhandled widget"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:297
+#: code:addons/web/static/src/js/view_form.js:3144
#, python-format
-msgid "'%s' is not a correct date, datetime nor time"
+msgid "Unknown"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:1264
+#. openerp-web
+#: code:addons/web/static/src/js/view_form.js:1664
#, python-format
-msgid "No content found for field '%s' on '%s:%s'"
+msgid "Unknown field %s in domain %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:304
+#: code:addons/web/static/src/js/view_list.js:1109
#, python-format
-msgid "Database Management"
+msgid "Unknown m2m command %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:5007
+#: code:addons/web/static/src/js/pyeval.js:866
#, python-format
-msgid "Image"
+msgid "Unknown nonliteral type "
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:81
+#: code:addons/web/static/src/js/view_form.js:1656
#, python-format
-msgid "Manage Databases"
+msgid "Unknown operator %s in domain %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/pyeval.js:765
+#: code:addons/web/static/src/js/view_list.js:332
#, python-format
-msgid "Evaluation Error"
+msgid "Unlimited"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1283
+#: code:addons/web/static/src/js/view_form.js:1702
#, python-format
-msgid "not a valid integer"
+msgid "Unsupported operator %s in domain %s"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:337
-#: code:addons/web/static/src/xml/base.xml:776
-#: code:addons/web/static/src/xml/base.xml:816
-#: code:addons/web/static/src/xml/base.xml:1376
-#: code:addons/web/static/src/xml/base.xml:1384
-#: code:addons/web/static/src/xml/base.xml:1630
+#: code:addons/web/static/src/xml/base.xml:1235
+#: code:addons/web/static/src/xml/base.xml:1295
#, python-format
-msgid "or"
+msgid "Uploading ..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1381
+#: code:addons/web/static/src/js/view_form.js:5868
+#: code:addons/web/static/src/js/views.js:1282
#, python-format
-msgid "No"
+msgid "Uploading Error"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/formats.js:309
+#: code:addons/web/static/src/js/views.js:1313
#, python-format
-msgid "'%s' is not convertible to date, datetime nor time"
+msgid "Uploading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:199
-#: code:addons/web/static/src/xml/base.xml:161
-#: code:addons/web/static/src/xml/base.xml:307
+#: code:addons/web/static/src/xml/base.xml:1671
#, python-format
-msgid "Duplicate"
+msgid "Use by default"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:777
-#: code:addons/web/static/src/xml/base.xml:817
-#: code:addons/web/static/src/xml/base.xml:1391
+#: code:addons/web/static/src/xml/base.xml:388
#, python-format
-msgid "Discard"
+msgid "User's timezone"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1624
+#: code:addons/web/static/src/xml/base.xml:371
#, python-format
-msgid "Add a condition"
+msgid "Version"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/coresetup.js:629
+#: code:addons/web/static/src/js/view_list.js:2367
+#: code:addons/web/static/src/xml/base.xml:479
#, python-format
-msgid "Still loading..."
+msgid "View"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:818
+#: code:addons/web/static/src/xml/base.xml:473
#, python-format
-msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s"
+msgid "View Fields"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:3805
+#: code:addons/web/static/src/xml/base.xml:468
#, python-format
-msgid "The o2m record must be saved before an action can be used"
+msgid "View Metadata"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:509
+#: code:addons/web/static/src/js/view_form.js:4036
#, python-format
-msgid "Backed"
+msgid "View type '%s' is not supported in One2Many."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1610
+#: code:addons/web/static/src/js/view_list.js:734
+#: code:addons/web/static/src/js/views.js:1241
#, python-format
-msgid "Use by default"
+msgid "Warning"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_list.js:1348
+#: code:addons/web/static/src/js/view_form.js:773
#, python-format
-msgid "%s (%d)"
+msgid "Warning, the record has been modified, your changes will be discarded.\n"
+"\n"
+"Are you sure you want to leave this page ?"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:775
+#: code:addons/web/static/src/js/view_form.js:2627
#, python-format
-msgid "triggered from search view"
+msgid "Week of the year"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:978
+#: code:addons/web/static/src/js/view_form.js:1224
#, python-format
-msgid "Filter"
+msgid "Widget type '%s' is not implemented"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:950
+#: code:addons/web/static/src/xml/base.xml:902
#, python-format
msgid "Widget:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:548
+#: code:addons/web/static/src/js/view_form.js:2626
#, python-format
-msgid "Edit Action"
+msgid "Wk"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:555
+#: code:addons/web/static/src/xml/base.xml:494
#, python-format
-msgid "ID:"
+msgid "XML ID:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:870
+#: code:addons/web/static/src/js/search.js:1561
+#: code:addons/web/static/src/xml/base.xml:922
#, python-format
-msgid "Only you"
+msgid "Yes"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:549
+#: code:addons/web/static/src/js/view_form.js:3444
#, python-format
-msgid "Edit Workflow"
+msgid "You are creating a new %s, are you sure it does not exist yet?"
+msgstr ""
+
+#. module: web
+#: code:addons/web/controllers/main.py:787
+#, python-format
+msgid "You cannot leave any password empty."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:1171
+#: code:addons/web/static/src/js/core.js:705
#, python-format
-msgid "Do you really want to delete this attachment ?"
+msgid "You may not believe it,<br />but the application is actually loading..."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:840
+#: code:addons/web/static/src/js/views.js:1241
#, python-format
-msgid "Technical Translation"
+msgid "You must choose at least one record."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:938
+#: code:addons/web/static/src/js/view_list.js:734
#, python-format
-msgid "Field:"
+msgid "You must select at least one record."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:620
+#: code:addons/web/static/src/js/chrome.js:259
#, python-format
-msgid "Modified by :"
+msgid "Your Odoo session expired. Please refresh the current web page."
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:499
+#: code:addons/web/static/src/xml/base.xml:385
#, python-format
-msgid "The database %s has been dropped"
+msgid "Your user's preference timezone does not match your browser timezone:"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:460
+#: code:addons/web/static/src/js/core.js:678
#, python-format
-msgid "User's timezone"
+msgid "a day ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/chrome.js:284
-#: code:addons/web/static/src/js/chrome.js:1168
+#: code:addons/web/static/src/js/core.js:674
#, python-format
-msgid "Client Error"
+msgid "about a minute ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/views.js:998
+#: code:addons/web/static/src/js/core.js:680
#, python-format
-msgid "Print"
+msgid "about a month ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1331
+#: code:addons/web/static/src/js/core.js:682
#, python-format
-msgid "Special:"
+msgid "about a year ago"
msgstr ""
#. module: web
-#: code:addons/web/controllers/main.py:834
+#. openerp-web
+#: code:addons/web/static/src/js/core.js:676
#, python-format
-msgid "The old password you provided is incorrect, your password was not changed."
+msgid "about an hour ago"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:561
+#: code:addons/web/static/src/js/search.js:2163
#, python-format
-msgid "Creation User:"
+msgid "contains"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:769
+#: code:addons/web/static/src/js/search.js:2164
#, python-format
-msgid "Do you really want to delete this record?"
+msgid "doesn't contain"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1385
+#: code:addons/web/static/src/xml/base.xml:107
#, python-format
-msgid "Save & Close"
+msgid "e.g. mycompany"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/view_form.js:2845
+#: code:addons/web/static/src/js/search.js:2181
+#: code:addons/web/static/src/js/search.js:2217
+#: code:addons/web/static/src/js/search.js:2244
#, python-format
-msgid "Search More..."
+msgid "greater or equal than"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:75
-#: code:addons/web/static/src/xml/base.xml:311
+#: code:addons/web/static/src/js/search.js:2179
+#: code:addons/web/static/src/js/search.js:2215
+#: code:addons/web/static/src/js/search.js:2242
#, python-format
-msgid "Password"
+msgid "greater than"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:546
-#: code:addons/web/static/src/xml/base.xml:809
-#: code:addons/web/static/src/xml/base.xml:1178
+#: code:addons/web/static/src/js/search.js:2235
+#: code:addons/web/static/src/js/search.js:2264
#, python-format
-msgid "Edit"
+msgid "is"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1706
+#: code:addons/web/static/src/js/search.js:2165
+#: code:addons/web/static/src/js/search.js:2177
+#: code:addons/web/static/src/js/search.js:2213
+#: code:addons/web/static/src/js/search.js:2240
#, python-format
-msgid "Remove"
+msgid "is equal to"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1062
+#: code:addons/web/static/src/js/search.js:2282
#, python-format
-msgid "Select date"
+msgid "is false"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1249
+#: code:addons/web/static/src/js/search.js:2265
#, python-format
-msgid "Search %(field)s for: %(value)s"
+msgid "is not"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1277
+#: code:addons/web/static/src/js/search.js:2166
+#: code:addons/web/static/src/js/search.js:2178
+#: code:addons/web/static/src/js/search.js:2214
+#: code:addons/web/static/src/js/search.js:2241
#, python-format
-msgid "Delete this file"
+msgid "is not equal to"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:109
+#: code:addons/web/static/src/js/search.js:2168
+#: code:addons/web/static/src/js/search.js:2184
+#: code:addons/web/static/src/js/search.js:2220
+#: code:addons/web/static/src/js/search.js:2247
+#: code:addons/web/static/src/js/search.js:2267
#, python-format
-msgid "Create Database"
+msgid "is not set"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:420
+#: code:addons/web/static/src/js/search.js:2167
+#: code:addons/web/static/src/js/search.js:2183
+#: code:addons/web/static/src/js/search.js:2219
+#: code:addons/web/static/src/js/search.js:2246
+#: code:addons/web/static/src/js/search.js:2266
#, python-format
-msgid "GNU Affero General Public License"
+msgid "is set"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:1795
+#: code:addons/web/static/src/js/search.js:2281
#, python-format
-msgid "Separator:"
+msgid "is true"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/xml/base.xml:300
+#: code:addons/web/static/src/js/search.js:2182
+#: code:addons/web/static/src/js/search.js:2218
+#: code:addons/web/static/src/js/search.js:2245
#, python-format
-msgid "Back to Login"
+msgid "less or equal than"
msgstr ""
#. module: web
#. openerp-web
-#: code:addons/web/static/src/js/search.js:1662
-#: code:addons/web/static/src/xml/base.xml:1454
+#: code:addons/web/static/src/js/search.js:2180
+#: code:addons/web/static/src/js/search.js:2216
+#: code:addons/web/static/src/js/search.js:2243
#, python-format
-msgid "Filters"
+msgid "less than"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/core.js:673
+#, python-format
+msgid "less than a minute ago"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:1464
+#, python-format
+msgid "not a valid integer"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:1478
+#, python-format
+msgid "not a valid number"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/xml/base.xml:335
+#: code:addons/web/static/src/xml/base.xml:725
+#: code:addons/web/static/src/xml/base.xml:769
+#: code:addons/web/static/src/xml/base.xml:1438
+#: code:addons/web/static/src/xml/base.xml:1446
+#: code:addons/web/static/src/xml/base.xml:1689
+#: code:addons/web/static/src/xml/base.xml:1931
+#: code:addons/web/static/src/xml/website.tour.xml:14
+#, python-format
+msgid "or"
+msgstr ""
+
+#. module: web
+#. openerp-web
+#: code:addons/web/static/src/js/search.js:742
+#, python-format
+msgid "triggered from search view"
msgstr ""
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 06b1e844792..de3ed514eff 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -549,14 +549,6 @@
padding-top: 8px;
margin-right: 4px !important;
}
-.openerp .btn-group.kanban_state .dropdown-menu {
- min-width: 100%;
- padding-right: 10px !important;
-}
-.openerp .btn-group.kanban_state .dropdown-menu li a, .openerp .btn-group.kanban_state .dropdown-menu li a:hover, .openerp .btn-group.kanban_state .dropdown-menu li a:focus {
- padding-left: 5px;
- padding-right: 0px;
-}
.openerp .btn-group.kanban_state a {
color: #333333;
}
@@ -1274,6 +1266,9 @@
.openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header {
display: none;
}
+.openerp .oe_popup_form {
+ display: table;
+}
.openerp .oe_popup_form .oe_formview .oe_form_pager {
display: none !important;
}
@@ -3390,3 +3385,9 @@ div.tour-backdrop {
body {
overflow: auto;
}
+
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .oe_secondary_menus_container {
+ position: static !important;
+ }
+}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 38e3ebf40ce..fde8811476c 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -498,12 +498,6 @@ $sheet-padding: 16px
.btn-group.kanban_state
padding-top: 8px
margin-right: 4px !important
- .dropdown-menu
- min-width: 100%
- padding-right: 10px !important
- .dropdown-menu li a, .dropdown-menu li a:hover, .dropdown-menu li a:focus
- padding-left: 5px
- padding-right: 0px
a
color: #333333
// }}}
@@ -1077,6 +1071,7 @@ $sheet-padding: 16px
// }}}
// FormPopup {{{
.oe_popup_form
+ display: table
.oe_formview .oe_form_pager
display: none !important
// Customize label weight for popup wizard appear from another wizard according bootstrap3
@@ -1665,8 +1660,8 @@ $sheet-padding: 16px
font-size: 20px
margin: 15px 0px 10px 0px
color: $section-title-color
- .oe_horizontal_separator:empty
- height: 5px
+ &:empty
+ height: 5px
.oe_vertical_separator
border-left: 1px solid #666
padding: 0 4px 0 4px
@@ -2766,5 +2761,13 @@ div.tour-backdrop
body
overflow: auto
+
+// hack to make IE11 work
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)
+ .oe_secondary_menus_container
+ position: static !important
+
+
+
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 608f76cd6ca..8fa16a90b6e 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -1077,7 +1077,10 @@ instance.web.UserMenu = instance.web.Widget.extend({
state: JSON.stringify(state),
scope: 'userinfo',
};
- instance.web.redirect('https://accounts.openerp.com/oauth2/auth?'+$.param(params));
+ instance.web.redirect('https://accounts.odoo.com/oauth2/auth?'+$.param(params));
+ }).fail(function(result, ev){
+ ev.preventDefault();
+ instance.web.redirect('https://accounts.openerp.com/web');
});
}
},
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js
index 169547d78c0..5ed174a128d 100644
--- a/addons/web/static/src/js/core.js
+++ b/addons/web/static/src/js/core.js
@@ -772,6 +772,7 @@ instance.web.unblockUI = function() {
$.fn.tooltip.Constructor.DEFAULTS.placement = 'auto top';
$.fn.tooltip.Constructor.DEFAULTS.html = true;
$.fn.tooltip.Constructor.DEFAULTS.trigger = 'hover focus click';
+$.fn.tooltip.Constructor.DEFAULTS.container = 'body';
//overwrite bootstrap tooltip method to prevent showing 2 tooltip at the same time
var bootstrap_show_function = $.fn.tooltip.Constructor.prototype.show;
$.fn.tooltip.Constructor.prototype.show = function () {
@@ -785,18 +786,6 @@ $.fn.tooltip.Constructor.prototype.show = function () {
if (e.isDefaultPrevented() || !inDom) return;
return bootstrap_show_function.call(this);
};
-//overwrite bootstrap tooltip init method in order to check if tooltip is in a modal or not and
-//if so it needs to have a container body in order to be visible
-var bootstrap_init_tooltip_fnct = $.fn.tooltip.Constructor.prototype.init;
-$.fn.tooltip.Constructor.prototype.init = function (type, element, options) {
- options = options || {}
- if ($('.modal[aria-hidden="false"]').length !== 0){
- if (options && !options.container){
- options = _.extend({container: 'body'},options);
- }
- }
- return bootstrap_init_tooltip_fnct.call(this, type, element, options);
-}
/**
* Registry for all the client actions key: tag value: widget
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index f580d282516..c22faaae9bd 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -73,8 +73,9 @@ instance.web.Query = instance.web.Class.extend({
}
return q;
},
- _execute: function () {
+ _execute: function (options) {
var self = this;
+ options = options || {};
return instance.session.rpc('/web/dataset/search_read', {
model: this._model.name,
fields: this._fields || false,
@@ -85,7 +86,7 @@ instance.web.Query = instance.web.Class.extend({
offset: this._offset,
limit: this._limit,
sort: instance.web.serialize_sort(this._order_by)
- }).then(function (results) {
+ }, options).then(function (results) {
self._count = results.length;
return results.records;
}, null);
@@ -93,11 +94,12 @@ instance.web.Query = instance.web.Class.extend({
/**
* Fetches the first record matching the query, or null
*
+ * @param {Object} [options] additional options for the rpc() method
* @returns {jQuery.Deferred<Object|null>}
*/
- first: function () {
+ first: function (options) {
var self = this;
- return this.clone({limit: 1})._execute().then(function (records) {
+ return this.clone({limit: 1})._execute(options).then(function (records) {
delete self._count;
if (records.length) { return records[0]; }
return null;
@@ -106,10 +108,11 @@ instance.web.Query = instance.web.Class.extend({
/**
* Fetches all records matching the query
*
+ * @param {Object} [options] additional options for the rpc() method
* @returns {jQuery.Deferred<Array<>>}
*/
- all: function () {
- return this._execute();
+ all: function (options) {
+ return this._execute(options);
},
/**
* Fetches the number of records matching the query in the database
diff --git a/addons/web/static/src/js/data_export.js b/addons/web/static/src/js/data_export.js
index a6cb35423fb..f64ae7c139c 100644
--- a/addons/web/static/src/js/data_export.js
+++ b/addons/web/static/src/js/data_export.js
@@ -422,6 +422,7 @@ instance.web.DataExport = instance.web.Dialog.extend({
fields: exported_fields,
ids: this.ids_to_export,
domain: this.domain,
+ context: this.dataset.context,
import_compat: !!this.$el.find("#import_compat").val(),
})},
complete: instance.web.unblockUI,
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js
index 566179c2a38..17458e1c185 100644
--- a/addons/web/static/src/js/search.js
+++ b/addons/web/static/src/js/search.js
@@ -487,7 +487,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
*/
setup_global_completion: function () {
var self = this;
-
this.autocomplete = new instance.web.search.AutoComplete(this, {
source: this.proxy('complete_global_search'),
select: this.proxy('select_completion'),
@@ -1624,7 +1623,7 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
facet: {
category: this.attrs.string,
field: this,
- values: [{label: value, value: value}]
+ values: [{label: value, value: value, operator: 'ilike'}]
},
expand: this.expand.bind(this),
}]);
@@ -1672,9 +1671,13 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
return facetValue.get('label');
},
make_domain: function (name, operator, facetValue) {
+ operator = facetValue.get('operator') || operator;
+
switch(operator){
case this.default_operator:
return [[name, '=', facetValue.get('value')]];
+ case 'ilike':
+ return [[name, 'ilike', facetValue.get('value')]];
case 'child_of':
return [[name, 'child_of', facetValue.get('value')]];
}
@@ -1963,7 +1966,7 @@ instance.web.search.Advanced = instance.web.search.Input.extend({
context: this.view.dataset.context
}).done(function(data) {
self.fields = {
- id: { string: 'ID', type: 'id' }
+ id: { string: 'ID', type: 'id', searchable: true }
};
_.each(data, function(field_def, field_name) {
if (field_def.selectable !== false && field_name != 'id') {
@@ -2037,7 +2040,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
this._super(parent);
this.fields = _(fields).chain()
.map(function(val, key) { return _.extend({}, val, {'name': key}); })
- .filter(function (field) { return !field.deprecated && (field.store === void 0 || field.store || field.fnct_search); })
+ .filter(function (field) { return !field.deprecated && field.searchable; })
.sortBy(function(field) {return field.string;})
.value();
this.attrs = {_: _, fields: this.fields, selected: null};
diff --git a/addons/web/static/src/js/tour.js b/addons/web/static/src/js/tour.js
index 0179d3eda65..6813a421cb7 100644
--- a/addons/web/static/src/js/tour.js
+++ b/addons/web/static/src/js/tour.js
@@ -323,7 +323,7 @@ var Tour = {
},
log: function (message, add_user) {
if (add_user) {
- var user = $(".navbar .dropdown:has(>.js_usermenu) a:first, .navbar .oe_topbar_name").text();
+ var user = $(".navbar .dropdown:has(>.js_usermenu) a:first, .navbar .oe_topbar_name, .pos .username").text();
if (!user && $('a[href*="/login"]')) user = 'Public User';
message += " (" + (user||"").replace(/^\s*|\s*$/g, '') + ")";
}
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 93ebc8b8167..5f5fb401d8e 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -103,6 +103,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
this.fields_order = [];
this.datarecord = {};
this._onchange_specs = {};
+ this.onchanges_defs = [];
this.default_focus_field = null;
this.default_focus_button = null;
this.fields_registry = instance.web.form.widgets;
@@ -508,7 +509,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
def = self.alive(new instance.web.Model(self.dataset.model).call(
"onchange", [ids, values, trigger_field_name, onchange_specs, context]));
}
- return def.then(function(response) {
+ var onchange_def = def.then(function(response) {
if (widget && widget.field['change_default']) {
var fieldname = widget.name;
var value_;
@@ -544,6 +545,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
}).then(function(response) {
return self.on_processed_onchange(response);
});
+ this.onchanges_defs.push(onchange_def);
+ return onchange_def;
} catch(e) {
console.error(e);
instance.webclient.crashmanager.show_message(e);
@@ -643,6 +646,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
* if the current record is not yet saved. It will then stay in create mode.
*/
to_edit_mode: function() {
+ this.onchanges_defs = [];
this._actualize_mode("edit");
},
/**
@@ -792,12 +796,14 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var self = this;
var save_obj = {prepend_on_create: prepend_on_create, ret: null};
this.save_list.push(save_obj);
- return this._process_operations().then(function() {
- if (save_obj.error)
- return $.Deferred().reject();
- return $.when.apply($, save_obj.ret);
- }).done(function() {
- self.$el.removeClass('oe_form_dirty');
+ return $.when.apply($, self.onchanges_defs).then(function(){
+ return self._process_operations().then(function() {
+ if (save_obj.error)
+ return $.Deferred().reject();
+ return $.when.apply($, save_obj.ret);
+ }).done(function() {
+ self.$el.removeClass('oe_form_dirty');
+ });
});
},
_process_save: function(save_obj) {
@@ -2337,26 +2343,31 @@ instance.web.form.KanbanSelection = instance.web.form.FieldChar.extend({
},
render_value: function() {
var self = this;
- this.record_id = self.view.datarecord.id;
- this.states = self.prepare_dropdown_selection();;
+ this.record_id = this.view.datarecord.id;
+ this.states = this.prepare_dropdown_selection();;
this.$el.html(QWeb.render("KanbanSelection", {'widget': self}));
- this.$el.find('.oe_legend').click(self.do_action.bind(self));
+ this.$el.find('li').on('click', this.set_kanban_selection.bind(this));
},
- do_action: function(e) {
+ /* setting the value: in view mode, perform an asynchronous call and reload
+ the form view; in edit mode, use set_value to save the new value that will
+ be written when saving the record. */
+ set_kanban_selection: function (ev) {
var self = this;
- var li = $(e.target).closest( "li" );
+ var li = $(ev.target).closest('li');
if (li.length) {
- var value = {};
- value[self.name] = String(li.data('value'));
- self.record_id = self.view.datarecord.id;
- if (self.record_id) {
- return self.view.dataset._model.call('write', [[self.record_id], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- } else {
- return self.view.on_button_save().done(function(result) {
- if (result) {
- self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- }
- });
+ var value = String(li.data('value'));
+ if (this.view.get('actual_mode') == 'view') {
+ var write_values = {}
+ write_values[self.name] = value;
+ return this.view.dataset._model.call(
+ 'write', [
+ [self.record_id],
+ write_values,
+ self.view.dataset.get_context()
+ ]).done(self.reload_record.bind(self));
+ }
+ else {
+ return this.set_value(value);
}
}
},
@@ -2388,27 +2399,34 @@ instance.web.form.Priority = instance.web.form.FieldChar.extend({
},
render_value: function() {
var self = this;
- this.record_id = self.view.datarecord.id;
- this.priorities = self.prepare_priority();
+ this.record_id = this.view.datarecord.id;
+ this.priorities = this.prepare_priority();
this.$el.html(QWeb.render("Priority", {'widget': this}));
- this.$el.find('.oe_legend').click(self.do_action.bind(self));
+ this.$el.find('li').on('click', this.set_priority.bind(this));
},
- do_action: function(e) {
+ /* setting the value: in view mode, perform an asynchronous call and reload
+ the form view; in edit mode, use set_value to save the new value that will
+ be written when saving the record. */
+ set_priority: function (ev) {
var self = this;
- var li = $(e.target).closest( "li" );
+ var li = $(ev.target).closest('li');
if (li.length) {
- var value = {};
- value[self.name] = String(li.data('value'));
- if (self.record_id) {
- return self.view.dataset._model.call('write', [[self.record_id], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- } else {
- return self.view.on_button_save().done(function(result) {
- if (result) {
- self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- }
- });
+ var value = String(li.data('value'));
+ if (this.view.get('actual_mode') == 'view') {
+ var write_values = {}
+ write_values[self.name] = value;
+ return this.view.dataset._model.call(
+ 'write', [
+ [self.record_id],
+ write_values,
+ self.view.dataset.get_context()
+ ]).done(self.reload_record.bind(self));
+ }
+ else {
+ return this.set_value(value);
}
}
+
},
reload_record: function() {
this.view.reload();
@@ -2515,14 +2533,10 @@ instance.web.form.FieldCharDomain = instance.web.form.AbstractField.extend(insta
this._super.apply(this, arguments);
this.on("change:effective_readonly", this, function () {
this.display_field();
- this.render_value();
});
this.display_field();
return this._super();
},
- render_value: function() {
- this.$('button.select_records').css('visibility', this.get('effective_readonly') ? 'hidden': '');
- },
set_value: function(value_) {
var self = this;
this.set('value', value_ || false);
@@ -2537,7 +2551,12 @@ instance.web.form.FieldCharDomain = instance.web.form.AbstractField.extend(insta
var ds = new instance.web.DataSetStatic(self, model, self.build_context());
ds.call('search_count', [domain]).then(function (results) {
$('.oe_domain_count', self.$el).text(results + ' records selected');
- $('button span', self.$el).text(' Change selection');
+ if (self.get('effective_readonly')) {
+ $('button span', self.$el).text(' See selection');
+ }
+ else {
+ $('button span', self.$el).text(' Change selection');
+ }
});
} else {
$('.oe_domain_count', this.$el).text('0 record selected');
@@ -2551,8 +2570,12 @@ instance.web.form.FieldCharDomain = instance.web.form.AbstractField.extend(insta
var model = this.options.model || this.field_manager.get_field_value(this.options.model_field);
this.pop = new instance.web.form.SelectCreatePopup(this);
this.pop.select_element(
- model, {title: 'Select records...'},
- [], this.build_context());
+ model, {
+ title: this.get('effective_readonly') ? 'Selected records' : 'Select records...',
+ readonly: this.get('effective_readonly'),
+ disable_multiple_selection: this.get('effective_readonly'),
+ no_create: this.get('effective_readonly'),
+ }, [], this.build_context());
this.pop.on("elements_selected", self, function(element_ids) {
if (this.pop.$('input.oe_list_record_selector').prop('checked')) {
var search_data = this.pop.searchview.build_search_data();
@@ -2834,7 +2857,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc
if (! this.get("effective_readonly")) {
self._updating_editor = false;
this.$textarea = this.$el.find('textarea');
- var width = ((this.node.attrs || {}).editor_width || '100%');
+ var width = ((this.node.attrs || {}).editor_width || 'auto');
var height = ((this.node.attrs || {}).editor_height || 250);
this.$textarea.cleditor({
width: width, // width not including margins, borders or padding
@@ -3300,7 +3323,7 @@ instance.web.form.CompletionFieldMixin = {
});
}
// create...
- if (!(self.options && self.options.no_create)){
+ if (!(self.options && (self.options.no_create || self.options.no_create_edit))){
values.push({
label: _t("Create and Edit..."),
action: function() {
@@ -3575,7 +3598,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
}
self.floating = false;
}
- if (used && self.get("value") === false && ! self.no_ed && (self.options.no_create === false || self.options.no_create === undefined)) {
+ if (used && self.get("value") === false && ! self.no_ed && ! (self.options && (self.options.no_create || self.options.no_quick_create))) {
self.ed_def.reject();
self.uned_def.reject();
self.ed_def = $.Deferred();
@@ -3604,10 +3627,10 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
focusout: anyoneLoosesFocus,
focus: function () { self.trigger('focused'); },
autocompleteopen: function () { ignore_blur = true; },
- autocompleteclose: function () { ignore_blur = false; },
+ autocompleteclose: function () { setTimeout(function() {ignore_blur = false;},0); },
blur: function () {
// autocomplete open
- if (ignore_blur) { return; }
+ if (ignore_blur) { $(this).focus(); return; }
if (_(self.getChildren()).any(function (child) {
return child instanceof instance.web.form.AbstractFormPopup;
})) { return; }
@@ -5663,6 +5686,20 @@ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
this._super.apply(this, arguments);
this.render_value();
this.set_filename('');
+ },
+ set_value: function(value_){
+ var changed = value_ !== this.get_value();
+ this._super.apply(this, arguments);
+ // By default, on binary images read, the server returns the binary size
+ // This is possible that two images have the exact same size
+ // Therefore we trigger the change in case the image value hasn't changed
+ // So the image is re-rendered correctly
+ if (!changed){
+ this.trigger("change:value", this, {
+ oldValue: value_,
+ newValue: value_
+ });
+ }
}
});
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index fca5dd4f969..b36974e859e 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -167,7 +167,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
* @returns {String} CSS style declaration
*/
style_for: function (record) {
- var style= '';
+ var len, style= '';
var context = _.extend({}, record.attributes, {
uid: this.session.uid,
@@ -522,7 +522,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
self.dataset.index = 0;
}
} else if (self.dataset.index >= self.records.length) {
- self.dataset.index = 0;
+ self.dataset.index = self.records.length ? 0 : null;
}
self.compute_aggregates();
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index a83e9042199..62a0717d374 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -258,7 +258,7 @@
if (!focus_field){
focus_field = _.find(self.editor.form.fields_order, function(field){ return fields[field] && fields[field].$el.is(':visible:has(input)'); });
}
- if (focus_field) fields[focus_field].$el.find('input').select();
+ if (focus_field && fields[focus_field]) fields[focus_field].$el.find('input').select();
return record.attributes;
});
}).fail(function () {
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index a3fc2784748..85e8e274d30 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -339,7 +339,12 @@ instance.web.ActionManager = instance.web.Widget.extend({
return this.do_action(action_client, options);
} else if (_.isNumber(action) || _.isString(action)) {
var self = this;
- return self.rpc("/web/action/load", { action_id: action }).then(function(result) {
+ var additional_context = {
+ active_id : options.additional_context.active_id,
+ active_ids : options.additional_context.active_ids,
+ active_model : options.additional_context.active_model
+ };
+ return self.rpc("/web/action/load", { action_id: action, additional_context : additional_context }).then(function(result) {
return self.do_action(result, options);
});
}
@@ -407,15 +412,36 @@ instance.web.ActionManager = instance.web.Widget.extend({
}
var widget = executor.widget();
if (executor.action.target === 'new') {
+ var pre_dialog = this.dialog;
+ if (pre_dialog){
+ // prevent previous dialog to consider itself closed,
+ // right now, as we're opening a new one (prevents
+ // reload of original form view)
+ pre_dialog.off('closing', null, pre_dialog.on_close);
+ }
if (this.dialog_widget && !this.dialog_widget.isDestroyed()) {
this.dialog_widget.destroy();
}
+ // explicitly passing a closing action to dialog_stop() prevents
+ // it from reloading the original form view
this.dialog_stop(executor.action);
this.dialog = new instance.web.Dialog(this, {
title: executor.action.name,
dialogClass: executor.klass,
});
- this.dialog.on("closing", null, options.on_close);
+
+ // chain on_close triggers with previous dialog, if any
+ this.dialog.on_close = function(){
+ options.on_close.apply(null, arguments);
+ if (pre_dialog && pre_dialog.on_close){
+ // no parameter passed to on_close as this will
+ // only be called when the last dialog is truly
+ // closing, and *should* trigger a reload of the
+ // underlying form view (see comments above)
+ pre_dialog.on_close();
+ }
+ };
+ this.dialog.on("closing", null, this.dialog.on_close);
if (widget instanceof instance.web.ViewManager) {
_.extend(widget.flags, {
$buttons: this.dialog.$buttons,
@@ -428,6 +454,9 @@ instance.web.ActionManager = instance.web.Widget.extend({
this.dialog.open();
return initialized;
} else {
+ // explicitly passing a closing action to dialog_stop() prevents
+ // it from reloading the original form view - we're opening a
+ // completely new action anyway
this.dialog_stop(executor.action);
this.inner_action = executor.action;
this.inner_widget = widget;
@@ -600,7 +629,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
action_views_ids : views_ids
}, self.flags, self.flags[view.view_type] || {}, view.options || {})
});
-
+
views_ids[view.view_type] = view.view_id;
});
if (this.flags.views_switcher === false) {
@@ -608,10 +637,10 @@ instance.web.ViewManager = instance.web.Widget.extend({
}
// If no default view defined, switch to the first one in sequence
var default_view = this.flags.default_view || this.views_src[0].view_type;
-
+
return this.switch_mode(default_view, null, this.flags[default_view] && this.flags[default_view].options);
-
-
+
+
},
switch_mode: function(view_type, no_store, view_options) {
var self = this;
@@ -689,7 +718,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
}
controller.on('switch_mode', self, this.switch_mode);
controller.on('previous_view', self, this.prev_view);
-
+
var container = this.$el.find("> div > div > .oe_view_manager_body > .oe_view_manager_view_" + view_type);
var view_promise = controller.appendTo(container);
this.views[view_type].controller = controller;
@@ -1123,7 +1152,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
return self.switch_mode(state.view_type, true);
})
);
- }
+ }
$.when(this.views[this.active_view] ? this.views[this.active_view].deferred : $.when(), defs).done(function() {
self.views[self.active_view].controller.do_load_state(state, warm);
@@ -1445,12 +1474,12 @@ instance.web.View = instance.web.Widget.extend({
if (action_data.special === 'cancel') {
return handler({"type":"ir.actions.act_window_close"});
} else if (action_data.type=="object") {
- var args = [[record_id]], additional_args = [];
+ var args = [[record_id]];
if (action_data.args) {
try {
// Warning: quotes and double quotes problem due to json and xml clash
// Maybe we should force escaping in xml or do a better parse of the args array
- additional_args = JSON.parse(action_data.args.replace(/'/g, '"'));
+ var additional_args = JSON.parse(action_data.args.replace(/'/g, '"'));
args = args.concat(additional_args);
} catch(e) {
console.error("Could not JSON.parse arguments", action_data.args);
@@ -1520,7 +1549,7 @@ instance.web.View = instance.web.Widget.extend({
/**
* Switches to a specific view type
*/
- do_switch_view: function() {
+ do_switch_view: function() {
this.trigger.apply(this, ['switch_mode'].concat(_.toArray(arguments)));
},
/**
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index f37c282b01c..93269fe588f 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -962,7 +962,7 @@
<div class="btn-group kanban_state">
<t t-foreach="widget.states" t-as="rec">
<a t-if="widget.get('value') === rec.name">
- <a class="oe_legend dropdown-toggle" data-toggle="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown">
<span t-att-class="rec.state_class" t-if="widget.get('value') === rec.name" t-att-title="rec.tooltip"/>
<span class="sr-only">Toggle Dropdown</span>
</a>
@@ -971,7 +971,7 @@
<ul class="dropdown-menu state" role="menu">
<t t-foreach="widget.states" t-as="rec">
<t t-if="widget.get('value') !== rec.name">
- <li class="oe_legend" t-att-data-value="rec.name" ><a href="#">
+ <li t-att-data-value="rec.name" ><a href="#">
<span t-att-class="rec.state_class" t-att-title="rec.tooltip"/>
<t t-raw="rec.state_name" /></a>
</li>
@@ -983,7 +983,7 @@
<t t-name="Priority">
<ul style="list-style: none; padding-left: 2px; display: inline-block;">
<t t-foreach="widget.priorities" t-as="rec" >
- <li t-att-data-value="rec.click_value" class="oe_legend" style="display: inline-block;">
+ <li t-att-data-value="rec.click_value" style="display: inline-block;">
<a href="#" t-att-title="rec.name">
<span t-att-class="widget.get('value') gte rec.value and 'oe_e oe_star_on' or 'oe_e oe_star_off'">7</span>
</a>
@@ -1228,16 +1228,18 @@
</t>
<t t-name="FieldBinaryImage">
<span class="oe_form_field oe_form_field_image" t-att-style="widget.node.attrs.style">
- <div class="oe_form_field_image_controls oe_edit_only">
- <i class="fa fa-pencil fa-1g pull-left col-md-offset-1 oe_form_binary_file_edit" title="Edit"/>
- <i class="fa fa-trash-o fa-1g col-md-offset-5 oe_form_binary_file_clear" title="Clear"/>
- <div class="oe_form_binary_progress" style="display: none">
- <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
- <b>Uploading ...</b>
+ <t t-if="!widget.get('effective_readonly')">
+ <div class="oe_form_field_image_controls oe_edit_only">
+ <i class="fa fa-pencil fa-1g pull-left col-md-offset-1 oe_form_binary_file_edit" title="Edit"/>
+ <i class="fa fa-trash-o fa-1g col-md-offset-5 oe_form_binary_file_clear" title="Clear"/>
+ <div class="oe_form_binary_progress" style="display: none">
+ <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
+ <b>Uploading ...</b>
+ </div>
</div>
- </div>
- <t t-call="HiddenInputFile">
+ <t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
+ </t>
</t>
</span>
</t>
diff --git a/addons/web/static/test/list-editable.js b/addons/web/static/test/list-editable.js
index ef2d608bc5d..a91d5012123 100644
--- a/addons/web/static/test/list-editable.js
+++ b/addons/web/static/test/list-editable.js
@@ -6,6 +6,9 @@ openerp.testing.section('editor', {
mock('test.model:create', function () {
return 42;
});
+ mock('test.model:onchange', function () {
+ return {};
+ });
}
}, function (test) {
/**
@@ -203,6 +206,9 @@ openerp.testing.section('list.edition', {
arch: '<tree><field name="a"/><field name="b"/><field name="c"/></tree>',
};
});
+ mock('demo:onchange', function () {
+ return {};
+ });
}
}, function (test) {
test('newrecord', {asserts: 6}, function (instance, $fix, mock) {
@@ -311,6 +317,11 @@ openerp.testing.section('list.edition.onwrite', {
dependencies: ['web.list_editable'],
rpc: 'mock',
templates: true,
+ setup: function (instance, $s, mock) {
+ mock('demo:onchange', function () {
+ return {};
+ });
+ }
}, function (test) {
test('record-to-read', {asserts: 4}, function (instance, $fix, mock) {
mock('demo:fields_view_get', function () {
diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js
index d93cb131e05..828347b68a5 100644
--- a/addons/web/static/test/search.js
+++ b/addons/web/static/test/search.js
@@ -157,7 +157,7 @@ var makeSearchView = function (instance, dummy_widget_attributes, defaults) {
return {
type: 'search',
fields: {
- dummy: {type: 'char', string: "Dummy"}
+ dummy: {type: 'char', string: "Dummy", searchable: true}
},
arch: '<search><field name="dummy" widget="dummy"/></search>'
};
@@ -168,7 +168,7 @@ var makeSearchView = function (instance, dummy_widget_attributes, defaults) {
};
instance.session.responses['dummy.model:fields_get'] = function () {
return {
- dummy: {type: 'char', string: 'Dummy'}
+ dummy: {type: 'char', string: 'Dummy', searchable: true}
};
};
instance.client = { action_manager: { inner_action: undefined } };
diff --git a/addons/web/tests/test_serving_base.py b/addons/web/tests/test_serving_base.py
index 34cc7e10b62..10545a3efb4 100644
--- a/addons/web/tests/test_serving_base.py
+++ b/addons/web/tests/test_serving_base.py
@@ -3,7 +3,7 @@
import random
import unittest2
-from ..controllers.main import module_topological_sort as sort
+from openerp.tools import topological_sort
def sample(population):
return random.sample(
@@ -22,7 +22,7 @@ class TestModulesLoading(unittest2.TestCase):
ms = dict(modules)
seen = set()
- sorted_modules = sort(ms)
+ sorted_modules = topological_sort(ms)
for module in sorted_modules:
deps = ms[module]
self.assertGreaterEqual(