diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-09-05 15:28:22 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-09-05 15:28:22 +0200 |
| commit | 31bf30d2d0eb78baaa36360b99fe58bf7cd4c9e7 (patch) | |
| tree | d7be61ecd6bb4c8b5552e39b03e2a64eebbbf323 /addons/web | |
| parent | afba9e8817c458640ae446ac7aaaab79be4fe1e9 (diff) | |
| parent | ed1c173971968eaa96693cb4e1547efa6e6c34e0 (diff) | |
[MERGE] forward port of branch 8.0 up to ed1c173
Diffstat (limited to 'addons/web')
| -rw-r--r-- | addons/web/controllers/main.py | 71 | ||||
| -rw-r--r-- | addons/web/i18n/vi.po | 658 | ||||
| -rw-r--r-- | addons/web/i18n/web.pot | 1894 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.css | 17 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.sass | 19 | ||||
| -rw-r--r-- | addons/web/static/src/js/chrome.js | 5 | ||||
| -rw-r--r-- | addons/web/static/src/js/core.js | 13 | ||||
| -rw-r--r-- | addons/web/static/src/js/data.js | 15 | ||||
| -rw-r--r-- | addons/web/static/src/js/data_export.js | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/search.js | 11 | ||||
| -rw-r--r-- | addons/web/static/src/js/tour.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 137 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 4 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list_editable.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 51 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 24 | ||||
| -rw-r--r-- | addons/web/static/test/list-editable.js | 11 | ||||
| -rw-r--r-- | addons/web/static/test/search.js | 4 | ||||
| -rw-r--r-- | addons/web/tests/test_serving_base.py | 4 |
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( |
