[MERGE] trunk
bzr revid: chm@openerp.com-20120914083540-t5bhzfksdxi2wqj5
This commit is contained in:
commit
5d25e1c109
|
@ -48,7 +48,6 @@ This module provides the core of the OpenERP Web Client.
|
|||
"static/src/js/views.js",
|
||||
"static/src/js/data.js",
|
||||
"static/src/js/data_export.js",
|
||||
"static/src/js/data_import.js",
|
||||
"static/src/js/search.js",
|
||||
"static/src/js/view_form.js",
|
||||
"static/src/js/view_list.js",
|
||||
|
@ -63,7 +62,6 @@ This module provides the core of the OpenERP Web Client.
|
|||
"static/lib/jquery.textext/jquery.textext.css",
|
||||
"static/src/css/base.css",
|
||||
"static/src/css/data_export.css",
|
||||
"static/src/css/data_import.css",
|
||||
"static/lib/cleditor/jquery.cleditor.css",
|
||||
],
|
||||
'qweb' : [
|
||||
|
|
|
@ -7,6 +7,7 @@ import cgi
|
|||
import contextlib
|
||||
import functools
|
||||
import logging
|
||||
import mimetypes
|
||||
import os
|
||||
import pprint
|
||||
import sys
|
||||
|
@ -420,6 +421,10 @@ def session_context(request, storage_path, session_cookie='httpsessionid'):
|
|||
#----------------------------------------------------------
|
||||
# OpenERP Web WSGI Application
|
||||
#----------------------------------------------------------
|
||||
# Add potentially missing (older ubuntu) font mime types
|
||||
mimetypes.add_type('application/font-woff', '.woff')
|
||||
mimetypes.add_type('application/vnd.ms-fontobject', '.eot')
|
||||
mimetypes.add_type('application/x-font-ttf', '.ttf')
|
||||
class DisableCacheMiddleware(object):
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
|
|
|
@ -484,15 +484,13 @@ def fix_view_modes(action):
|
|||
if not action.get('views'):
|
||||
generate_views(action)
|
||||
|
||||
id_form = None
|
||||
for index, (id, mode) in enumerate(action['views']):
|
||||
if mode == 'form':
|
||||
id_form = id
|
||||
break
|
||||
|
||||
if action.pop('view_type', 'form') != 'form':
|
||||
return action
|
||||
|
||||
if 'view_mode' in action:
|
||||
action['view_mode'] = ','.join(
|
||||
mode if mode != 'tree' else 'list'
|
||||
for mode in action['view_mode'].split(','))
|
||||
action['views'] = [
|
||||
[id, mode if mode != 'tree' else 'list']
|
||||
for id, mode in action['views']
|
||||
|
@ -1351,27 +1349,6 @@ class View(openerpweb.Controller):
|
|||
def load(self, req, model, view_id, view_type, toolbar=False):
|
||||
return self.fields_view_get(req, model, view_id, view_type, toolbar=toolbar)
|
||||
|
||||
class ListView(View):
|
||||
_cp_path = "/web/listview"
|
||||
|
||||
def process_colors(self, view, row, context):
|
||||
colors = view['arch']['attrs'].get('colors')
|
||||
|
||||
if not colors:
|
||||
return None
|
||||
|
||||
color = [
|
||||
pair.split(':')[0]
|
||||
for pair in colors.split(';')
|
||||
if eval(pair.split(':')[1], dict(context, **row))
|
||||
]
|
||||
|
||||
if not color:
|
||||
return None
|
||||
elif len(color) == 1:
|
||||
return color[0]
|
||||
return 'maroon'
|
||||
|
||||
class TreeView(View):
|
||||
_cp_path = "/web/treeview"
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. openerp-web
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
@ -243,17 +243,19 @@ msgid ""
|
|||
"Destination fields should only be selected once, some fields are selected "
|
||||
"more than once:"
|
||||
msgstr ""
|
||||
"Destination fields should only be selected once, some fields are selected "
|
||||
"more than once:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:386
|
||||
msgid "*Required Fields are not selected :"
|
||||
msgstr ""
|
||||
msgstr "*Required Fields are not selected :"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:139
|
||||
#, python-format
|
||||
msgid "(%d records)"
|
||||
msgstr ""
|
||||
msgstr "(%d records)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:325
|
||||
|
@ -663,7 +665,7 @@ msgstr "Export"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:374
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
msgstr "Group"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:549
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
"Language: es\n"
|
||||
|
||||
#. openerp-web
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
@ -35,18 +35,18 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:198
|
||||
msgid "Dont send"
|
||||
msgstr ""
|
||||
msgstr "Ne küldje"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:1119
|
||||
msgid "Client Error"
|
||||
msgstr ""
|
||||
msgstr "Kliens hiba"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:260
|
||||
#, python-format
|
||||
msgid "Loading (%d)"
|
||||
msgstr ""
|
||||
msgstr "Betöltés (%d)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:292
|
||||
|
@ -66,12 +66,12 @@ msgstr "Az adatbázis mentése sikerült"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:499
|
||||
msgid "Restored"
|
||||
msgstr ""
|
||||
msgstr "Visszaállítva"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:499
|
||||
msgid "Database restored successfully"
|
||||
msgstr ""
|
||||
msgstr "Sikeres adatbázis visszaállítás"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:783
|
||||
|
@ -235,7 +235,7 @@ msgstr "Fájl importálása"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:108
|
||||
msgid "External ID"
|
||||
msgstr ""
|
||||
msgstr "Külső azonosító"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:349
|
||||
|
@ -259,18 +259,18 @@ msgstr ""
|
|||
#: addons/web/static/src/js/formats.js:325
|
||||
#: addons/web/static/src/js/view_page.js:268
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
msgstr "Letöltés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:330
|
||||
#, python-format
|
||||
msgid "Download \"%s\""
|
||||
msgstr ""
|
||||
msgstr "\"%s\" letöltése"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:437
|
||||
msgid "Invalid Search"
|
||||
msgstr ""
|
||||
msgstr "Helytelen keresés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:437
|
||||
|
@ -325,12 +325,12 @@ msgstr ""
|
|||
#: addons/web/static/src/js/search.js:962
|
||||
#: addons/web/static/src/xml/base.xml:973
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
msgstr "Igen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:963
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
msgstr "Nem"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1416
|
||||
|
@ -487,7 +487,7 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:367
|
||||
msgid "Inherited View"
|
||||
msgstr ""
|
||||
msgstr "Örökölt Nézet"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:371
|
||||
|
@ -497,7 +497,7 @@ msgstr "Biztos, hogy létre akar hozni egy származtatott nézetet ide?"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:381
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
msgstr "Előnézet"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:501
|
||||
|
@ -508,19 +508,19 @@ msgstr "Biztos, hogy el akarja távolítani ezt a csomópontot?"
|
|||
#: addons/web/static/src/js/view_editor.js:815
|
||||
#: addons/web/static/src/js/view_editor.js:939
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
msgstr "Tulajdonságok"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:818
|
||||
#: addons/web/static/src/js/view_editor.js:942
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
msgstr "Frissítés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:16
|
||||
#: addons/web/static/src/js/view_form.js:210
|
||||
msgid "Form"
|
||||
msgstr ""
|
||||
msgstr "Űrlap"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:632
|
||||
|
@ -577,7 +577,7 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:1287
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
msgstr "Jóváhagyás"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:2220
|
||||
|
@ -1036,7 +1036,7 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:477
|
||||
msgid "Debug View#"
|
||||
msgstr ""
|
||||
msgstr "Debug nézet#"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:478
|
||||
|
@ -1634,3 +1634,9 @@ msgstr "Itt van a fájlnak az előnézete, amit nem tudunk importálni:"
|
|||
|
||||
#~ msgid "Hide this tip"
|
||||
#~ msgstr "Tii elrejtése"
|
||||
|
||||
#~ msgid "OK"
|
||||
#~ msgstr "OK"
|
||||
|
||||
#~ msgid "Filter Entry"
|
||||
#~ msgstr "Szűrő bejegyzés"
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -15,8 +15,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
@ -256,7 +256,7 @@ msgstr "*Campos Obrigatórios não selecionados :"
|
|||
#: addons/web/static/src/js/formats.js:139
|
||||
#, python-format
|
||||
msgid "(%d records)"
|
||||
msgstr "(%d registos)"
|
||||
msgstr "(%d registros)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:325
|
||||
|
@ -500,7 +500,7 @@ msgstr "Quer realmente criar uma view herdada aqui?"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:381
|
||||
msgid "Preview"
|
||||
msgstr "Pré-visualizar"
|
||||
msgstr "Visualizar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:501
|
||||
|
@ -541,7 +541,7 @@ msgstr "Duplicar"
|
|||
#: addons/web/static/src/js/view_form.js:133
|
||||
#: addons/web/static/src/js/view_form.js:728
|
||||
msgid "Set Default"
|
||||
msgstr "Definir como Padrão"
|
||||
msgstr "Configurar Padrão"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_page.js:59
|
||||
|
@ -665,12 +665,12 @@ msgstr "Exportar"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:374
|
||||
msgid "Group"
|
||||
msgstr "Grupo"
|
||||
msgstr "Agrupar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:549
|
||||
msgid "Do you really want to remove these records?"
|
||||
msgstr "Deseja remover esse registro?"
|
||||
msgstr "Deseja remover estes registros?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:925
|
||||
|
@ -787,12 +787,12 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:251
|
||||
msgid "OpenERP Entreprise"
|
||||
msgstr "OpenERP Entreprise"
|
||||
msgstr "OpenERP Enterprise"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:256
|
||||
msgid "OpenERP Enterprise Contract."
|
||||
msgstr "Contrato Corporativo OpenERP"
|
||||
msgstr "Contrato Enterprise do OpenERP"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:257
|
||||
|
@ -829,7 +829,7 @@ msgstr "Banco de Dados:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:306
|
||||
msgid "Username"
|
||||
msgstr "Nome do usuário"
|
||||
msgstr "Nome de usuário"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:308
|
||||
|
@ -840,7 +840,7 @@ msgstr "Senha"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:310
|
||||
msgid "Log in"
|
||||
msgstr "Autenticar"
|
||||
msgstr "Acessar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:314
|
||||
|
@ -850,7 +850,7 @@ msgstr "Administrar bancos de dados"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315
|
||||
msgid "Powered by"
|
||||
msgstr "Desenvolvido Por"
|
||||
msgstr "Desenvolvido por"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315
|
||||
|
@ -862,7 +862,7 @@ msgstr "OpenERP"
|
|||
#: addons/web/static/src/xml/base.xml:132
|
||||
#: addons/web/static/src/xml/base.xml:328
|
||||
msgid "Drop"
|
||||
msgstr "Soltar"
|
||||
msgstr "Excluir"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:166
|
||||
|
@ -981,7 +981,7 @@ msgstr "Versão"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1821
|
||||
msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved."
|
||||
msgstr "Copyright © 2004-HOJE OpenERP SA. Alguns Direitos Reservados."
|
||||
msgstr "Copyright © 2004-HOJE OpenERP SA. Todos os Direitos Reservados."
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1822
|
||||
|
@ -991,12 +991,12 @@ msgstr "OpenERP é uma marca de"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1823
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr "Empresa OpenERP SA"
|
||||
msgstr "OpenERP SA"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1825
|
||||
msgid "Licenced under the terms of"
|
||||
msgstr "Licenciado sobre os termos de"
|
||||
msgstr "Licenciado sob os termos de"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1826
|
||||
|
@ -1152,7 +1152,7 @@ msgstr "Condição:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:842
|
||||
msgid "Only you"
|
||||
msgstr "Somente voce"
|
||||
msgstr "Apenas eu"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:849
|
||||
|
@ -1167,7 +1167,7 @@ msgstr "Widget não utilizado"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:936
|
||||
msgid "(nolabel)"
|
||||
msgstr "(nolabel)"
|
||||
msgstr "(sem rótulo)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:941
|
||||
|
@ -1213,7 +1213,7 @@ msgstr "Modificadores:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:973
|
||||
msgid "Change default:"
|
||||
msgstr "Trocar padrão"
|
||||
msgstr "Alterar padrão"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:977
|
||||
|
@ -1238,7 +1238,7 @@ msgstr "Abrir este recurso"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1063
|
||||
msgid "Select date"
|
||||
msgstr "Data selecionada"
|
||||
msgstr "Escolha a data"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:948
|
||||
|
@ -1511,12 +1511,12 @@ msgstr "Arquivo CSV:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1756
|
||||
msgid "2. Check your file format"
|
||||
msgstr "Verifique seu formato de arquivo"
|
||||
msgstr "2. Verifique seu formato de arquivo"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1759
|
||||
msgid "Import Options"
|
||||
msgstr "Opções de importação"
|
||||
msgstr "Opções de Importação"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1763
|
||||
|
@ -1577,9 +1577,6 @@ msgstr "A importação falhou devido a:"
|
|||
msgid "Here is a preview of the file we could not import:"
|
||||
msgstr "Aqui está uma visualização do arquivo que não pode ser importado:"
|
||||
|
||||
#~ msgid "LOGOUT"
|
||||
#~ msgstr "DESCONECTAR"
|
||||
|
||||
#~ msgid "Open..."
|
||||
#~ msgstr "Abrir..."
|
||||
|
||||
|
@ -1623,9 +1620,6 @@ msgstr "Aqui está uma visualização do arquivo que não pode ser importado:"
|
|||
#~ msgid "Page"
|
||||
#~ msgstr "Página"
|
||||
|
||||
#~ msgid "Customize"
|
||||
#~ msgstr "Customizar"
|
||||
|
||||
#~ msgid "Reports"
|
||||
#~ msgstr "Relatórios"
|
||||
|
||||
|
@ -1665,9 +1659,6 @@ msgstr "Aqui está uma visualização do arquivo que não pode ser importado:"
|
|||
#~ msgid "Add / Remove Shortcut..."
|
||||
#~ msgstr "Adicionar/Remover atalho..."
|
||||
|
||||
#~ msgid "Fold menu"
|
||||
#~ msgstr "Abrir menu"
|
||||
|
||||
#~ msgid "Add attachment"
|
||||
#~ msgstr "Adicionar anexo"
|
||||
|
||||
|
@ -1689,3 +1680,12 @@ msgstr "Aqui está uma visualização do arquivo que não pode ser importado:"
|
|||
|
||||
#~ msgid "Filter disabled due to invalid syntax"
|
||||
#~ msgstr "Filtro desativado devido a sintaxe inválida"
|
||||
|
||||
#~ msgid "Fold menu"
|
||||
#~ msgstr "Fechar o menu"
|
||||
|
||||
#~ msgid "LOGOUT"
|
||||
#~ msgstr "SAIR"
|
||||
|
||||
#~ msgid "Customize"
|
||||
#~ msgstr "Personalizar"
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
@ -66,12 +66,12 @@ msgstr "База данных резервированна успешно"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:499
|
||||
msgid "Restored"
|
||||
msgstr "Восстановленна"
|
||||
msgstr "Восстановлена"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:499
|
||||
msgid "Database restored successfully"
|
||||
msgstr "База данных восстановленна успешно"
|
||||
msgstr "База данных восстановлена успешно"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:783
|
||||
|
@ -205,12 +205,12 @@ msgstr "Закрыть"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:20
|
||||
msgid "Export To File"
|
||||
msgstr "Экспортировать в файл"
|
||||
msgstr "Экспорт в файл"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:126
|
||||
msgid "Please enter save field list name"
|
||||
msgstr "Введите имя для сохраняемого списка полей"
|
||||
msgstr "Введите имя списка полей для сохранения"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:362
|
||||
|
@ -230,12 +230,12 @@ msgstr "Импорт данных"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:72
|
||||
msgid "Import File"
|
||||
msgstr "Импортировать файл"
|
||||
msgstr "Импорт файла"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:108
|
||||
msgid "External ID"
|
||||
msgstr "Внешний идентификатор"
|
||||
msgstr "Внешний ID"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:349
|
||||
|
@ -243,17 +243,19 @@ msgid ""
|
|||
"Destination fields should only be selected once, some fields are selected "
|
||||
"more than once:"
|
||||
msgstr ""
|
||||
"Конечные поля должны быть выбраны единожды, некоторые поля выбраны более "
|
||||
"одного раза:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:386
|
||||
msgid "*Required Fields are not selected :"
|
||||
msgstr ""
|
||||
msgstr "*Требуемые поля не выбраны :"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:139
|
||||
#, python-format
|
||||
msgid "(%d records)"
|
||||
msgstr ""
|
||||
msgstr "(%d записей)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:325
|
||||
|
@ -444,7 +446,7 @@ msgstr "ложно"
|
|||
#: addons/web/static/src/js/view_editor.js:20
|
||||
#, python-format
|
||||
msgid "Manage Views (%s)"
|
||||
msgstr "Управление макетами (%s)"
|
||||
msgstr "Управление видами (%s)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:46
|
||||
|
@ -477,18 +479,18 @@ msgstr "Создать вид (%s)"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:168
|
||||
msgid "Do you really want to remove this view?"
|
||||
msgstr "Вы действительно хотите удалить этот Вид?"
|
||||
msgstr "Вы действительно хотите удалить этот вид?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:364
|
||||
#, python-format
|
||||
msgid "View Editor %d - %s"
|
||||
msgstr "Редактор Вида %d - %s"
|
||||
msgstr "Редактор вида %d - %s"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:367
|
||||
msgid "Inherited View"
|
||||
msgstr "Унаследованный Вид"
|
||||
msgstr "Унаследованный вид"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:371
|
||||
|
@ -503,7 +505,7 @@ msgstr "Предпросмотр"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:501
|
||||
msgid "Do you really want to remove this node?"
|
||||
msgstr "Вы действительно хотите удалить этот Узел?"
|
||||
msgstr "Вы действительно хотите удалить этот узел?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:815
|
||||
|
@ -544,18 +546,18 @@ msgstr "Установить по умолчанию"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_page.js:59
|
||||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Вы действительно хотите удалить эту Запись?"
|
||||
msgstr "Вы действительно хотите удалить эту запись?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:508
|
||||
msgid ""
|
||||
"Warning, the record has been modified, your changes will be discarded."
|
||||
msgstr "Внимание. Эта запись была изменена. Ваши изменения будут потеряны."
|
||||
msgstr "Внимание, запись была изменена. Ваши изменения будут потеряны."
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:735
|
||||
msgid "Save default"
|
||||
msgstr "Сохранить как По Умолчанию"
|
||||
msgstr "Сохранить значения по умолчанию"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_form.js:870
|
||||
|
@ -663,12 +665,12 @@ msgstr "Экспорт"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:374
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
msgstr "Группа"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_list.js:549
|
||||
msgid "Do you really want to remove these records?"
|
||||
msgstr "Вы действительно хотите удалить эту Запись?"
|
||||
msgstr "Вы действительно хотите удалить эти записи?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:925
|
||||
|
@ -699,29 +701,29 @@ msgstr "Дерево"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:570 addons/web/static/src/xml/base.xml:480
|
||||
msgid "Fields View Get"
|
||||
msgstr "Получить Поля Просмотра"
|
||||
msgstr "Получить поля вида"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:578
|
||||
#, python-format
|
||||
msgid "View Log (%s)"
|
||||
msgstr "Просмотреть Протокол (%s)"
|
||||
msgstr "Показать отчет (%s)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:605
|
||||
#, python-format
|
||||
msgid "Model %s fields"
|
||||
msgstr "Поля Модели %s"
|
||||
msgstr "Поля модели %s"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:615 addons/web/static/src/xml/base.xml:482
|
||||
msgid "Manage Views"
|
||||
msgstr "Управление Видами"
|
||||
msgstr "Управление видами"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:616
|
||||
msgid "Could not find current view declaration"
|
||||
msgstr "Не могу найти объявление текущего макета"
|
||||
msgstr "Не удалось найти определение текущего вида"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:716
|
||||
|
@ -751,7 +753,7 @@ msgstr "Технический перевод"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:924
|
||||
msgid "You must choose at least one record."
|
||||
msgstr "Вы должны выбрать хотя-бы одну запись."
|
||||
msgstr "Вы должны выбрать хотя бы одну запись."
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/views.js:875
|
||||
|
@ -779,8 +781,7 @@ msgid ""
|
|||
"Your version of OpenERP is unsupported. Support & maintenance services are "
|
||||
"available here:"
|
||||
msgstr ""
|
||||
"Ваша версия OpenERP не поддерживается. Службы Технической Поддержки доступны "
|
||||
"тут:"
|
||||
"Ваша версия OpenERP не поддерживается. Услуги техподдержки доступны здесь:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:251
|
||||
|
@ -790,7 +791,7 @@ msgstr "OpenERP Entreprise"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:256
|
||||
msgid "OpenERP Enterprise Contract."
|
||||
msgstr "OpenERP Enterprise Contract."
|
||||
msgstr "Контракт OpenERP Enterprise."
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:257
|
||||
|
@ -843,7 +844,7 @@ msgstr "Вход"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:314
|
||||
msgid "Manage Databases"
|
||||
msgstr "Управление Базами Данных"
|
||||
msgstr "Управление базами данных"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315
|
||||
|
@ -866,7 +867,7 @@ msgstr "Удалить"
|
|||
#: addons/web/static/src/xml/base.xml:166
|
||||
#: addons/web/static/src/xml/base.xml:329
|
||||
msgid "Backup"
|
||||
msgstr "Создать Резервную Копию"
|
||||
msgstr "Резервное копирование"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:195
|
||||
|
@ -877,7 +878,7 @@ msgstr "Востановить"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:332
|
||||
msgid "Back to Login"
|
||||
msgstr "Вернутся к Авторизации"
|
||||
msgstr "Войти"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:61
|
||||
|
@ -887,7 +888,7 @@ msgstr "СОЗДАТЬ БАЗУ ДАННЫХ"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:68 addons/web/static/src/xml/base.xml:211
|
||||
msgid "Master password:"
|
||||
msgstr "Мастер пароль:"
|
||||
msgstr "Мастер-пароль:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:72 addons/web/static/src/xml/base.xml:191
|
||||
|
@ -897,7 +898,7 @@ msgstr "Название новой базы данных:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:77
|
||||
msgid "Load Demonstration data:"
|
||||
msgstr "Загрузить Демонстрационные данные:"
|
||||
msgstr "Загрузить демонстрационные данные:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:81
|
||||
|
@ -924,7 +925,7 @@ msgstr "УДАЛИТЬ БАЗУ ДАННЫХ"
|
|||
#: addons/web/static/src/xml/base.xml:162
|
||||
#: addons/web/static/src/xml/base.xml:187
|
||||
msgid "Master Password:"
|
||||
msgstr "Мастер Пароль:"
|
||||
msgstr "Мастер-пароль:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:143
|
||||
|
@ -944,17 +945,17 @@ msgstr "Файл:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:204
|
||||
msgid "CHANGE MASTER PASSWORD"
|
||||
msgstr "ИЗМЕНИТЬ МАСТЕР ПАРОЛЬ"
|
||||
msgstr "ИЗМЕНИТЬ МАСТЕР-ПАРОЛЬ"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:216
|
||||
msgid "New master password:"
|
||||
msgstr "Новый Мастер Пароль:"
|
||||
msgstr "Новый мастер-пароль:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:221
|
||||
msgid "Confirm new master password:"
|
||||
msgstr "Подтверждение Мастер Пароля:"
|
||||
msgstr "Подтвердить мастер-пароль:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:325
|
||||
|
@ -1054,7 +1055,7 @@ msgstr ""
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:479
|
||||
msgid "View Fields"
|
||||
msgstr "Просмотр Полей"
|
||||
msgstr "Просмотр полей"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1300
|
||||
|
@ -1069,7 +1070,7 @@ msgstr "Вид"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:484
|
||||
msgid "Edit SearchView"
|
||||
msgstr "Изменить Вид Поиска"
|
||||
msgstr "Изменить вид поиска"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:485
|
||||
|
@ -1099,7 +1100,7 @@ msgstr "Создатель:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:500
|
||||
msgid "Creation Date:"
|
||||
msgstr "Дата Создания:"
|
||||
msgstr "Дата создания:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:503
|
||||
|
@ -1109,7 +1110,7 @@ msgstr "Изменялся:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:506
|
||||
msgid "Latest Modification Date:"
|
||||
msgstr "Дата Изменения:"
|
||||
msgstr "Дата изменения:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:518
|
||||
|
@ -1299,7 +1300,7 @@ msgstr "Специальное:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1260
|
||||
msgid "Button Type:"
|
||||
msgstr "Тип Кнопки:"
|
||||
msgstr "Тип кнопки:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1264
|
||||
|
@ -1309,7 +1310,7 @@ msgstr "Метод:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1268
|
||||
msgid "Action ID:"
|
||||
msgstr "ID Действия:"
|
||||
msgstr "ID действия:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:542
|
||||
|
@ -1334,7 +1335,7 @@ msgstr "-- Действия --"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1297
|
||||
msgid "Add Advanced Filter"
|
||||
msgstr "Добавить Расширенный Фильтр"
|
||||
msgstr "Добавить расширенный фильтр"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1298
|
||||
|
@ -1344,12 +1345,12 @@ msgstr "Сохранить фильтр"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1305
|
||||
msgid "Filter Name:"
|
||||
msgstr "Название Фильтра:"
|
||||
msgstr "Название фильтра:"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1307
|
||||
msgid "(Any existing filter with the same name will be replaced)"
|
||||
msgstr "(Существующий фильтр с таким же именени будет замещен)"
|
||||
msgstr "(Имеющийся фильтр с таким же имененем будет заменен)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1376
|
||||
|
@ -1437,7 +1438,7 @@ msgstr "Тип экспорта:"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1626
|
||||
msgid "Import Compatible Export"
|
||||
msgstr "Импорт совместимого Экспорта"
|
||||
msgstr "Экспорт, совместимый с импортом"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1627
|
||||
|
@ -1447,7 +1448,7 @@ msgstr "Экспортировать все данные"
|
|||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1630
|
||||
msgid "Export Formats"
|
||||
msgstr "Форматы Экспорта"
|
||||
msgstr "Форматы экспорта"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/xml/base.xml:1636
|
||||
|
@ -1620,9 +1621,6 @@ msgstr "Предпросмотр файла, который система не
|
|||
#~ msgid "[%(first_record)d to %(last_record)d] of %(records_count)d"
|
||||
#~ msgstr "[%(first_record)d до %(last_record)d] из %(records_count)d"
|
||||
|
||||
#~ msgid "Filter disabled due to invalid syntax"
|
||||
#~ msgstr "Фильтр отключен так-как имеет неверный синтаксис"
|
||||
|
||||
#~ msgid "Add / Remove Shortcut..."
|
||||
#~ msgstr "Добавить / Удалить ярлык..."
|
||||
|
||||
|
@ -1641,9 +1639,6 @@ msgstr "Предпросмотр файла, который система не
|
|||
#~ msgid "Open..."
|
||||
#~ msgstr "Открыть..."
|
||||
|
||||
#~ msgid "Send an e-mail with your default e-mail client"
|
||||
#~ msgstr "Отправлять имейл вашим почтовым клиентом"
|
||||
|
||||
#~ msgid "Search..."
|
||||
#~ msgstr "Поиск…"
|
||||
|
||||
|
@ -1671,17 +1666,23 @@ msgstr "Предпросмотр файла, который система не
|
|||
#~ msgid "None of the following conditions must match"
|
||||
#~ msgstr "Ни одно из следующих условий не должно соответствовать"
|
||||
|
||||
#~ msgid "Advanced Filters"
|
||||
#~ msgstr "Расширенные Фильтры"
|
||||
|
||||
#~ msgid "Activate the developper mode"
|
||||
#~ msgstr "Активировать режим разработчика"
|
||||
|
||||
#~ msgid "Title of new Dashboard item:"
|
||||
#~ msgstr "Заголовок нового Дашбоарда:"
|
||||
|
||||
#~ msgid "Notebook Page \""
|
||||
#~ msgstr "Страница Блокнота \""
|
||||
|
||||
#~ msgid "Filter disabled due to invalid syntax"
|
||||
#~ msgstr "Фильтр отключен из-за неверного синтаксиса"
|
||||
|
||||
#~ msgid "Send an e-mail with your default e-mail client"
|
||||
#~ msgstr "Отправлять e-mail вашим почтовым клиентом"
|
||||
|
||||
#~ msgid "Select Dashboard to add this filter to:"
|
||||
#~ msgstr "Выберите Дашбоард, к которому добавить этот фильтр:"
|
||||
#~ msgstr "Выберите панель для добавления этого фильтра:"
|
||||
|
||||
#~ msgid "Title of new Dashboard item:"
|
||||
#~ msgstr "Заголовок новой панели:"
|
||||
|
||||
#~ msgid "Advanced Filters"
|
||||
#~ msgstr "Расширенные фильтры"
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:176
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.openerp.openerp_webclient_container {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
@ -40,7 +41,7 @@
|
|||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
/* http://www.quirksmode.org/dom/inputfile.html
|
||||
* http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image
|
||||
*/
|
||||
*/ */
|
||||
}
|
||||
.openerp :-moz-placeholder {
|
||||
color: #afafb6 !important;
|
||||
|
@ -111,28 +112,6 @@
|
|||
.openerp h4 {
|
||||
margin: 4px 0;
|
||||
}
|
||||
.openerp .oe_semantic_html_override ul, .openerp .oe_semantic_html_override ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_semantic_html_override ul ul, .openerp .oe_semantic_html_override ul ol, .openerp .oe_semantic_html_override ul li, .openerp .oe_semantic_html_override ol ul, .openerp .oe_semantic_html_override ol ol, .openerp .oe_semantic_html_override ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_semantic_html_override ul li, .openerp .oe_semantic_html_override ol li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp ul.oe_semantic_html_override {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp ul.oe_semantic_html_override ul, .openerp ul.oe_semantic_html_override ol, .openerp ul.oe_semantic_html_override li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp ul.oe_semantic_html_override li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
|
||||
display: inline-block;
|
||||
border: 1px solid #ababab;
|
||||
|
@ -265,7 +244,7 @@
|
|||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane button {
|
||||
margin: 0;
|
||||
margin: 0 4px 0 0;
|
||||
}
|
||||
.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: left;
|
||||
|
@ -393,40 +372,38 @@
|
|||
background: #dc5f59;
|
||||
}
|
||||
.openerp button.oe_highlight {
|
||||
background-color: #dc5f59;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630));
|
||||
background-image: -webkit-linear-gradient(top, #dc5f59, #b33630);
|
||||
background-image: -moz-linear-gradient(top, #dc5f59, #b33630);
|
||||
background-image: -ms-linear-gradient(top, #dc5f59, #b33630);
|
||||
background-image: -o-linear-gradient(top, #dc5f59, #b33630);
|
||||
background-image: linear-gradient(to bottom, #dc5f59, #b33630);
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.openerp button.oe_highlight:active {
|
||||
background-color: #b33630;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#b33630), to(#dc5f59));
|
||||
background-image: -webkit-linear-gradient(top, #b33630, #dc5f59);
|
||||
background-image: -moz-linear-gradient(top, #b33630, #dc5f59);
|
||||
background-image: -ms-linear-gradient(top, #b33630, #dc5f59);
|
||||
background-image: -o-linear-gradient(top, #b33630, #dc5f59);
|
||||
background-image: linear-gradient(to bottom, #b33630, #dc5f59);
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 1px solid #795151;
|
||||
background-color: #df3f3f;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a));
|
||||
background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a);
|
||||
background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a);
|
||||
background-image: -ms-linear-gradient(top, #df3f3f, #a21a1a);
|
||||
background-image: -o-linear-gradient(top, #df3f3f, #a21a1a);
|
||||
background-image: linear-gradient(to bottom, #df3f3f, #a21a1a);
|
||||
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
|
||||
}
|
||||
.openerp button.oe_highlight:hover {
|
||||
background-color: #df6b66;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#df6b66), to(#bf3a33));
|
||||
background-image: -webkit-linear-gradient(top, #df6b66, #bf3a33);
|
||||
background-image: -moz-linear-gradient(top, #df6b66, #bf3a33);
|
||||
background-image: -ms-linear-gradient(top, #df6b66, #bf3a33);
|
||||
background-image: -o-linear-gradient(top, #df6b66, #bf3a33);
|
||||
background-image: linear-gradient(to bottom, #df6b66, #bf3a33);
|
||||
-moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
|
||||
-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
|
||||
background-color: #e25858;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b));
|
||||
background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b);
|
||||
background-image: -moz-linear-gradient(top, #e25858, #ab1b1b);
|
||||
background-image: -ms-linear-gradient(top, #e25858, #ab1b1b);
|
||||
background-image: -o-linear-gradient(top, #e25858, #ab1b1b);
|
||||
background-image: linear-gradient(to bottom, #e25858, #ab1b1b);
|
||||
}
|
||||
.openerp button.oe_highlight:active {
|
||||
background-color: #c52020;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323));
|
||||
background-image: -webkit-linear-gradient(top, #c52020, #d22323);
|
||||
background-image: -moz-linear-gradient(top, #c52020, #d22323);
|
||||
background-image: -ms-linear-gradient(top, #c52020, #d22323);
|
||||
background-image: -o-linear-gradient(top, #c52020, #d22323);
|
||||
background-image: linear-gradient(to bottom, #c52020, #d22323);
|
||||
}
|
||||
.openerp .oe_background_grey {
|
||||
background: #eeeeee !important;
|
||||
}
|
||||
.openerp .oe_form_dirty .oe_highlight_on_dirty {
|
||||
color: white;
|
||||
|
@ -472,9 +449,9 @@
|
|||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
border: none;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
@ -604,26 +581,6 @@
|
|||
padding: 0 16px;
|
||||
list-style: none;
|
||||
zoom: 1;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_notebook ul, .openerp .oe_notebook ol, .openerp .oe_notebook li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_notebook li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_notebook ul, .openerp .oe_notebook ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_notebook ul ul, .openerp .oe_notebook ul ol, .openerp .oe_notebook ul li, .openerp .oe_notebook ol ul, .openerp .oe_notebook ol ol, .openerp .oe_notebook ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_notebook ul li, .openerp .oe_notebook ol li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_notebook.ui-corner-all {
|
||||
-moz-border-radius: 0;
|
||||
|
@ -700,6 +657,8 @@
|
|||
top: 26px;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 1px solid #afafb6;
|
||||
background: white;
|
||||
padding: 4px 0;
|
||||
|
@ -717,6 +676,7 @@
|
|||
float: none;
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
.openerp .oe_dropdown_menu > li:hover {
|
||||
|
@ -834,9 +794,10 @@
|
|||
font-size: 14px;
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_login li {
|
||||
.openerp .oe_login ul, .openerp .oe_login li {
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
padding-bottom: 4px;
|
||||
padding: 0 0 4px 0;
|
||||
}
|
||||
.openerp .oe_login button {
|
||||
float: right;
|
||||
|
@ -865,9 +826,9 @@
|
|||
font-family: "Lucida Grande", Helvetica, Verdana, Arial;
|
||||
border: 1px solid #999999;
|
||||
background: whitesmoke;
|
||||
-moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
-webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
|
@ -929,17 +890,6 @@
|
|||
-webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
|
||||
box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.openerp .oe_login .oe_login_pane ul, .openerp .oe_login .oe_login_pane ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_login .oe_login_pane ul ul, .openerp .oe_login .oe_login_pane ul ol, .openerp .oe_login .oe_login_pane ul li, .openerp .oe_login .oe_login_pane ol ul, .openerp .oe_login .oe_login_pane ol ol, .openerp .oe_login .oe_login_pane ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_login .oe_login_pane ul li, .openerp .oe_login .oe_login_pane ol li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_login .oe_login_pane h2 {
|
||||
margin-top: 0;
|
||||
font-size: 18px;
|
||||
|
@ -1010,7 +960,6 @@
|
|||
.openerp .oe_topbar {
|
||||
width: 100%;
|
||||
height: 31px;
|
||||
border-top: solid 1px #d3d3d3;
|
||||
background-color: #646060;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
|
||||
background-image: -webkit-linear-gradient(top, #646060, #262626);
|
||||
|
@ -1019,17 +968,6 @@
|
|||
background-image: -o-linear-gradient(top, #646060, #262626);
|
||||
background-image: linear-gradient(to bottom, #646060, #262626);
|
||||
}
|
||||
.openerp .oe_topbar ul, .openerp .oe_topbar ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_topbar ul ul, .openerp .oe_topbar ul ol, .openerp .oe_topbar ul li, .openerp .oe_topbar ol ul, .openerp .oe_topbar ol ol, .openerp .oe_topbar ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_topbar ul li, .openerp .oe_topbar ol li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_topbar .oe_topbar_item {
|
||||
display: block;
|
||||
padding: 5px 10px 7px;
|
||||
|
@ -1102,17 +1040,6 @@
|
|||
text-shadow: 0 1px 1px white;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.openerp .oe_leftbar ul, .openerp .oe_leftbar ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_leftbar ul ul, .openerp .oe_leftbar ul ol, .openerp .oe_leftbar ul li, .openerp .oe_leftbar ol ul, .openerp .oe_leftbar ol ol, .openerp .oe_leftbar ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_leftbar ul li, .openerp .oe_leftbar ol li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp a.oe_logo {
|
||||
width: 220px;
|
||||
display: block;
|
||||
|
@ -1168,6 +1095,9 @@
|
|||
margin: 0;
|
||||
}
|
||||
.openerp .oe_menu > li {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
float: left;
|
||||
}
|
||||
.openerp .oe_menu > li > a {
|
||||
|
@ -1207,7 +1137,9 @@
|
|||
}
|
||||
.openerp .oe_secondary_submenu li {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 1px 0 1px 20px !important;
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_secondary_submenu li a {
|
||||
display: block;
|
||||
|
@ -1235,24 +1167,26 @@
|
|||
.openerp .oe_secondary_submenu .oe_menu_counter {
|
||||
float: right;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||
margin: 0px;
|
||||
margin: 1px;
|
||||
padding: 1px 4px;
|
||||
border: none;
|
||||
}
|
||||
.openerp .oe_secondary_submenu .oe_menu_counter:hover {
|
||||
cursor: pointer;
|
||||
border: 1px solid #c81010;
|
||||
-moz-box-shadow: 0 0 2px #c81010;
|
||||
-webkit-box-shadow: 0 0 2px #c81010;
|
||||
box-shadow: 0 0 2px #c81010;
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
.openerp .oe_secondary_submenu .oe_active {
|
||||
background: #7c7bad;
|
||||
border-top: 1px solid lightGray;
|
||||
border-bottom: 1px solid lightGray;
|
||||
border-bottom: 1px solid #dedede;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
|
||||
background: #7c7bad;
|
||||
}
|
||||
.openerp .oe_secondary_submenu .oe_active a {
|
||||
color: white;
|
||||
|
@ -1268,6 +1202,9 @@
|
|||
.openerp .oe_secondary_submenu .oe_active .oe_menu_counter {
|
||||
background: #eeeeee;
|
||||
color: #7c7bad;
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.openerp .oe_secondary_submenu .oe_menu_toggler:before {
|
||||
width: 0;
|
||||
|
@ -1305,6 +1242,13 @@
|
|||
.openerp .oe_application > div {
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_application .oe_breadcrumb_item:not(:last-child) {
|
||||
display: inline-block;
|
||||
max-width: 7em;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_body {
|
||||
height: inherit;
|
||||
}
|
||||
|
@ -1315,16 +1259,6 @@
|
|||
width: 100%;
|
||||
table-layout: fixed;
|
||||
}
|
||||
.openerp .oe_view_manager table.oe_view_manager_header ul {
|
||||
padding: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.openerp .oe_view_manager table.oe_view_manager_header ul li {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
}
|
||||
.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row {
|
||||
clear: both;
|
||||
text-shadow: 0 1px 1px white;
|
||||
|
@ -1396,6 +1330,10 @@
|
|||
float: left;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.openerp .oe_view_manager ul.oe_pager_group {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_pager_group {
|
||||
float: left;
|
||||
height: 24px;
|
||||
|
@ -1411,6 +1349,8 @@
|
|||
height: 24px;
|
||||
line-height: 24px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
float: left;
|
||||
border-right: 1px solid #ababab;
|
||||
}
|
||||
|
@ -1435,14 +1375,17 @@
|
|||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_switch {
|
||||
margin-left: 8px;
|
||||
padding: 0;
|
||||
margin: 0 0 0 8px;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_switch li {
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 16px;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_view_manager .oe_view_manager_switch li a {
|
||||
position: relative;
|
||||
|
@ -1502,10 +1445,10 @@
|
|||
.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row:first-child td {
|
||||
padding-top: 8px;
|
||||
}
|
||||
.openerp .oe_view_manager_inline {
|
||||
.openerp .oe_view_manager_inline, .openerp .oe_view_manager_inlineview {
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_view_manager_inline > .oe_view_manager_header {
|
||||
.openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_popup_form > .oe_formview > .oe_form_pager {
|
||||
|
@ -2006,6 +1949,7 @@
|
|||
.openerp .oe_form header {
|
||||
position: relative;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
padding-left: 2px;
|
||||
background-color: #fcfcfc;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
|
||||
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
|
||||
|
@ -2018,6 +1962,9 @@
|
|||
display: inline-block;
|
||||
float: right;
|
||||
}
|
||||
.openerp .oe_form header .oe_form_button {
|
||||
margin: 3px 2px 1px;
|
||||
}
|
||||
.openerp .oe_form div.oe_chatter {
|
||||
min-width: 650px;
|
||||
max-width: 860px;
|
||||
|
@ -2037,140 +1984,11 @@
|
|||
min-width: 150px;
|
||||
}
|
||||
.openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label {
|
||||
padding: 2px 0;
|
||||
padding: 1px 0;
|
||||
}
|
||||
.openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div {
|
||||
padding: 1px 0;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps, .openerp .oe_form ul.oe_form_steps_clickable {
|
||||
display: inline-block;
|
||||
padding-right: 18px;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li, .openerp .oe_form ul.oe_form_steps_clickable li {
|
||||
display: inline-block;
|
||||
margin-right: -20px;
|
||||
background-color: #fcfcfc;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
|
||||
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li:first-child .label, .openerp .oe_form ul.oe_form_steps_clickable li:first-child .label {
|
||||
border-left: 1px solid #cacaca;
|
||||
padding-left: 14px;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li:last-child, .openerp .oe_form ul.oe_form_steps_clickable li:last-child {
|
||||
border-right: 1px solid #cacaca;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li:last-child .label, .openerp .oe_form ul.oe_form_steps_clickable li:last-child .label {
|
||||
padding-right: 14px;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li:last-child .arrow, .openerp .oe_form ul.oe_form_steps_clickable li:last-child .arrow {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li .label, .openerp .oe_form ul.oe_form_steps_clickable li .label {
|
||||
color: #4c4c4c;
|
||||
text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede;
|
||||
padding: 7px;
|
||||
display: inline-block;
|
||||
padding-left: 24px;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li .arrow, .openerp .oe_form ul.oe_form_steps_clickable li .arrow {
|
||||
width: 17px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
overflow: hidden;
|
||||
margin-left: -5px;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li .arrow span, .openerp .oe_form ul.oe_form_steps_clickable li .arrow span {
|
||||
position: relative;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: inline-block;
|
||||
margin-left: -12px;
|
||||
margin-top: 3px;
|
||||
box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2);
|
||||
background-color: #dedede;
|
||||
background: -moz-linear-gradient(135deg, #dedede, #fcfcfc);
|
||||
background: -o-linear-gradient(135deg, #fcfcfc, #dedede);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede));
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li.oe_active, .openerp .oe_form ul.oe_form_steps_clickable li.oe_active {
|
||||
background-color: #729fcf;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
|
||||
background-image: -webkit-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -moz-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -ms-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -o-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: linear-gradient(to bottom, #729fcf, #3465a4);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li.oe_active .arrow span, .openerp .oe_form ul.oe_form_steps_clickable li.oe_active .arrow span {
|
||||
background-color: #3465a4;
|
||||
background: -moz-linear-gradient(135deg, #3465a4, #729fcf);
|
||||
background: -o-linear-gradient(135deg, #729fcf, #3465a4);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4));
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps li.oe_active .label, .openerp .oe_form ul.oe_form_steps_clickable li.oe_active .label {
|
||||
color: white;
|
||||
text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li {
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li:hover {
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li:hover .label {
|
||||
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li:hover .arrow span {
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li .label {
|
||||
color: #7c7bad;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li.oe_active:hover {
|
||||
background-color: #4c85c2;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d));
|
||||
background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -moz-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -ms-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -o-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: linear-gradient(to bottom, #4c85c2, #284d7d);
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li.oe_active:hover .label {
|
||||
text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4;
|
||||
}
|
||||
.openerp .oe_form ul.oe_form_steps_clickable li.oe_active:hover .arrow span {
|
||||
background-color: #284d7d;
|
||||
background: -moz-linear-gradient(135deg, #284d7d, #4c85c2);
|
||||
background: -o-linear-gradient(135deg, #4c85c2, #284d7d);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d));
|
||||
}
|
||||
.openerp .oe_form .oe_subtotal_footer {
|
||||
width: 1% !important;
|
||||
}
|
||||
|
@ -2202,7 +2020,7 @@
|
|||
}
|
||||
.openerp .oe_form td.oe_form_group_cell_label {
|
||||
border-right: 1px solid #dddddd;
|
||||
padding: 4px 0px 4px 0px;
|
||||
padding: 2px 0px;
|
||||
}
|
||||
.openerp .oe_form td.oe_form_group_cell_label label {
|
||||
line-height: 18px;
|
||||
|
@ -2210,7 +2028,7 @@
|
|||
min-width: 140px;
|
||||
}
|
||||
.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
|
||||
padding-left: 6px;
|
||||
padding: 2px 0 2px 8px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_group {
|
||||
width: 100%;
|
||||
|
@ -2222,7 +2040,7 @@
|
|||
.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-right: 6px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
|
||||
font-size: 80%;
|
||||
|
@ -2298,7 +2116,6 @@
|
|||
width: 100%;
|
||||
display: inline-block;
|
||||
padding: 2px 2px 2px 0px;
|
||||
line-height: 1em;
|
||||
}
|
||||
.openerp .oe_form .oe_form_field input {
|
||||
margin: 0px;
|
||||
|
@ -2459,27 +2276,137 @@
|
|||
.openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.openerp .oe_form_field_status {
|
||||
.openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable {
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding: 0 18px 0 0;
|
||||
}
|
||||
.openerp .oe_form_field_status ul, .openerp .oe_form_field_status ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_form_field_status ul ul, .openerp .oe_form_field_status ul ol, .openerp .oe_form_field_status ul li, .openerp .oe_form_field_status ol ul, .openerp .oe_form_field_status ol ol, .openerp .oe_form_field_status ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_form_field_status ul li, .openerp .oe_form_field_status ol li {
|
||||
.openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
}
|
||||
.openerp .oe_form_field_status ul, .openerp .oe_form_field_status ol, .openerp .oe_form_field_status li {
|
||||
margin: 0;
|
||||
margin: 0 -20px 0 0;
|
||||
padding: 0;
|
||||
background-color: #fcfcfc;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
|
||||
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
|
||||
}
|
||||
.openerp .oe_form_field_status li {
|
||||
list-style-type: none;
|
||||
.openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label {
|
||||
border-left: 1px solid #cacaca;
|
||||
padding-left: 14px;
|
||||
}
|
||||
.openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child {
|
||||
border-right: 1px solid #cacaca;
|
||||
}
|
||||
.openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label {
|
||||
padding-right: 14px;
|
||||
}
|
||||
.openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow {
|
||||
display: none;
|
||||
}
|
||||
.openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label {
|
||||
color: #4c4c4c;
|
||||
text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede;
|
||||
padding: 7px;
|
||||
display: inline-block;
|
||||
padding-left: 24px;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
}
|
||||
.openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow {
|
||||
width: 17px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
overflow: hidden;
|
||||
margin-left: -5px;
|
||||
}
|
||||
.openerp ul.oe_form_status li .arrow span, .openerp ul.oe_form_status_clickable li .arrow span {
|
||||
position: relative;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: inline-block;
|
||||
margin-left: -12px;
|
||||
margin-top: 3px;
|
||||
box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2);
|
||||
background-color: #dedede;
|
||||
background: -moz-linear-gradient(135deg, #dedede, #fcfcfc);
|
||||
background: -o-linear-gradient(135deg, #fcfcfc, #dedede);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede));
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active {
|
||||
background-color: #729fcf;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
|
||||
background-image: -webkit-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -moz-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -ms-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: -o-linear-gradient(top, #729fcf, #3465a4);
|
||||
background-image: linear-gradient(to bottom, #729fcf, #3465a4);
|
||||
}
|
||||
.openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span {
|
||||
background-color: #3465a4;
|
||||
background: -moz-linear-gradient(135deg, #3465a4, #729fcf);
|
||||
background: -o-linear-gradient(135deg, #729fcf, #3465a4);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4));
|
||||
}
|
||||
.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label {
|
||||
color: white;
|
||||
text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4;
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li {
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li:hover {
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li:hover .label {
|
||||
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede;
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li:hover .arrow span {
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li .label {
|
||||
color: #7c7bad;
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li.oe_active:hover {
|
||||
background-color: #4c85c2;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d));
|
||||
background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -moz-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -ms-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: -o-linear-gradient(top, #4c85c2, #284d7d);
|
||||
background-image: linear-gradient(to bottom, #4c85c2, #284d7d);
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li.oe_active:hover .label {
|
||||
text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4;
|
||||
}
|
||||
.openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span {
|
||||
background-color: #284d7d;
|
||||
background: -moz-linear-gradient(135deg, #284d7d, #4c85c2);
|
||||
background: -o-linear-gradient(135deg, #4c85c2, #284d7d);
|
||||
background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d));
|
||||
}
|
||||
.openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page {
|
||||
display: none;
|
||||
|
@ -2541,7 +2468,7 @@
|
|||
.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input {
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
|
||||
height: 27px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
|
||||
|
@ -2551,9 +2478,6 @@
|
|||
border: 1px solid #aaaaff;
|
||||
margin: 0;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
|
||||
height: 60px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input {
|
||||
text-align: right;
|
||||
}
|
||||
|
@ -2570,10 +2494,13 @@
|
|||
.openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_list_buttons .oe_alternative {
|
||||
visibility: hidden;
|
||||
}
|
||||
.openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_list_buttons.oe_editing .oe_list_add, .openerp .oe_list_buttons.oe_editing .oe_list_button_import {
|
||||
.openerp .oe_list_buttons.oe_editing .oe_list_add {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_list_buttons.oe_editing .oe_list_save {
|
||||
|
@ -2582,6 +2509,9 @@
|
|||
.openerp .oe_list_buttons.oe_editing .oe_list_discard {
|
||||
display: inline;
|
||||
}
|
||||
.openerp .oe_list_buttons.oe_editing .oe_alternative {
|
||||
visibility: visible;
|
||||
}
|
||||
.openerp .oe_list {
|
||||
position: relative;
|
||||
}
|
||||
|
@ -2596,6 +2526,15 @@
|
|||
margin: 0 !important;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_list .oe_list_content .oe_group_header {
|
||||
background-color: #fcfcfc;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
|
||||
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -ms-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
|
||||
background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
|
||||
}
|
||||
.openerp .oe_list_content {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -2813,16 +2752,6 @@
|
|||
float: right;
|
||||
color: #333333;
|
||||
}
|
||||
.openerp .oe_semantic_html li {
|
||||
list-style-type: disc;
|
||||
display: list-item;
|
||||
}
|
||||
.openerp .oe_semantic_html ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
.openerp .oe_semantic_html p {
|
||||
color: #4c4c4c !important;
|
||||
}
|
||||
|
||||
.kitten-mode-activated {
|
||||
background-image: url(http://placekitten.com/g/1365/769);
|
||||
|
|
|
@ -124,19 +124,6 @@ $sheet-max-width: 860px
|
|||
content: $icon-name
|
||||
color: $color
|
||||
|
||||
@mixin ul-html-override()
|
||||
margin: 0
|
||||
padding: 0
|
||||
ul, ol, li
|
||||
margin: 0
|
||||
padding: 0
|
||||
li
|
||||
list-style-type: none
|
||||
|
||||
@mixin semantic-html-override()
|
||||
ul, ol
|
||||
@include ul-html-override()
|
||||
|
||||
// }}}
|
||||
|
||||
@media print
|
||||
|
@ -200,10 +187,6 @@ $sheet-max-width: 860px
|
|||
vertical-align: middle
|
||||
h4
|
||||
margin: 4px 0
|
||||
.oe_semantic_html_override
|
||||
@include semantic-html-override
|
||||
ul.oe_semantic_html_override
|
||||
@include ul-html-override
|
||||
// }}}
|
||||
// Button style {{{
|
||||
a.button:link, a.button:visited, button, input[type='submit'], .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button
|
||||
|
@ -283,7 +266,7 @@ $sheet-max-width: 860px
|
|||
margin: 0
|
||||
@include radius(0 0 2px 2px)
|
||||
button
|
||||
margin: 0
|
||||
margin: 0 4px 0 0
|
||||
.ui-dialog-buttonset
|
||||
float: left
|
||||
.ui-button
|
||||
|
@ -379,15 +362,15 @@ $sheet-max-width: 860px
|
|||
color: white
|
||||
background: #DC5F59
|
||||
button.oe_highlight
|
||||
@include vertical-gradient(#dc5f59, #b33630)
|
||||
@include box-shadow(none)
|
||||
button.oe_highlight:active
|
||||
@include vertical-gradient(#b33630, #dc5f59)
|
||||
@include box-shadow(none)
|
||||
border: 1px solid #795151
|
||||
@include vertical-gradient(#df3f3f, #a21a1a)
|
||||
@include box-shadow((0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset))
|
||||
button.oe_highlight:hover
|
||||
@include vertical-gradient(#DF6B66, #BF3A33)
|
||||
//@include vertical-gradient(lighten(#dc5f59, 3%), lighten(#b33630, 3%))
|
||||
@include box-shadow(0 0 1px rgba(0, 0, 0, 0.2))
|
||||
@include vertical-gradient(lighten(#e04f4f, 2%), lighten(#a21a1a, 2%))
|
||||
button.oe_highlight:active
|
||||
@include vertical-gradient(lighten(#a21a1a, 8%), darken(#df3f3f, 8%))
|
||||
.oe_background_grey
|
||||
background: #eee !important
|
||||
|
||||
.oe_form_dirty
|
||||
.oe_highlight_on_dirty
|
||||
|
@ -418,7 +401,7 @@ $sheet-max-width: 860px
|
|||
max-height: 90px
|
||||
max-width: 90px
|
||||
@include radius(3px)
|
||||
@include box-shadow(0 1px 3px rgba(0, 0, 0, 0.3))
|
||||
@include box-shadow(0 1px 4px rgba(0, 0, 0, 0.4))
|
||||
border: none
|
||||
margin-bottom: 10px
|
||||
.oe_avatar + div
|
||||
|
@ -509,8 +492,6 @@ $sheet-max-width: 860px
|
|||
padding: 0 16px
|
||||
list-style: none
|
||||
zoom: 1
|
||||
@include ul-html-override
|
||||
@include semantic-html-override
|
||||
.oe_notebook.ui-corner-all
|
||||
@include radius(0)
|
||||
.oe_notebook:before, .oe_notebook:after
|
||||
|
@ -568,6 +549,8 @@ $sheet-max-width: 860px
|
|||
top: 26px
|
||||
left: 0
|
||||
z-index: 1
|
||||
margin: 0
|
||||
padding: 0
|
||||
border: 1px solid $tag-border
|
||||
background: white
|
||||
padding: 4px 0
|
||||
|
@ -583,6 +566,7 @@ $sheet-max-width: 860px
|
|||
float: none
|
||||
display: block
|
||||
position: relative
|
||||
margin: 0
|
||||
padding: 2px 8px
|
||||
> a
|
||||
white-space: nowrap
|
||||
|
@ -671,9 +655,10 @@ $sheet-max-width: 860px
|
|||
text-align: center
|
||||
font-size: 14px
|
||||
height: 100%
|
||||
li
|
||||
ul, li
|
||||
margin: 0
|
||||
list-style-type: none
|
||||
padding-bottom: 4px
|
||||
padding: 0 0 4px 0
|
||||
button
|
||||
float: right
|
||||
display: inline-block
|
||||
|
@ -690,7 +675,7 @@ $sheet-max-width: 860px
|
|||
font-family: "Lucida Grande", Helvetica, Verdana, Arial
|
||||
border: 1px solid #999999
|
||||
background: whitesmoke
|
||||
@include box-shadow(inset 0 1px 4px rgba(0, 0, 0, 0.3))
|
||||
@include box-shadow(inset 0 1px 4px rgba(0, 0, 0, 0.4))
|
||||
@include radius(3px)
|
||||
input
|
||||
margin-bottom: 9px
|
||||
|
@ -731,7 +716,6 @@ $sheet-max-width: 860px
|
|||
text-align: left
|
||||
@include radius(8px)
|
||||
@include box-shadow(0 0 18px rgba(0, 0, 0, 0.9))
|
||||
@include semantic-html-override
|
||||
h2
|
||||
margin-top: 0
|
||||
font-size: 18px
|
||||
|
@ -795,9 +779,7 @@ $sheet-max-width: 860px
|
|||
.oe_topbar
|
||||
width: 100%
|
||||
height: 31px
|
||||
border-top: solid 1px #d3d3d3
|
||||
@include vertical-gradient(#646060, #262626)
|
||||
@include semantic-html-override
|
||||
.oe_topbar_item
|
||||
display: block
|
||||
padding: 5px 10px 7px
|
||||
|
@ -848,7 +830,6 @@ $sheet-max-width: 860px
|
|||
border-right: 1px solid $tag-border
|
||||
text-shadow: 0 1px 1px white
|
||||
padding-bottom: 16px
|
||||
@include semantic-html-override
|
||||
a.oe_logo
|
||||
width: 220px
|
||||
display: block
|
||||
|
@ -899,6 +880,9 @@ $sheet-max-width: 860px
|
|||
padding: 0
|
||||
margin: 0
|
||||
> li
|
||||
list-style-type: none
|
||||
padding: 0
|
||||
margin: 0
|
||||
float: left
|
||||
> a
|
||||
display: block
|
||||
|
@ -928,7 +912,9 @@ $sheet-max-width: 860px
|
|||
display: inline-block
|
||||
li
|
||||
position: relative
|
||||
margin: 0
|
||||
padding: 1px 0 1px 20px !important
|
||||
list-style-type: none
|
||||
a
|
||||
display: block
|
||||
color: #4c4c4c
|
||||
|
@ -949,18 +935,18 @@ $sheet-max-width: 860px
|
|||
.oe_menu_counter
|
||||
float: right
|
||||
text-shadow: 0 1px 1px rgba(0,0,0,0.2)
|
||||
margin: 0px
|
||||
margin: 1px
|
||||
padding: 1px 4px
|
||||
border: none
|
||||
&:hover
|
||||
cursor: pointer
|
||||
border: 1px solid #C81010
|
||||
@include box-shadow(0 0 2px #C81010)
|
||||
@include transform(scale(1.1))
|
||||
.oe_active
|
||||
background: $link-color
|
||||
border-top: 1px solid lightGray
|
||||
border-bottom: 1px solid lightGray
|
||||
border-bottom: 1px solid #dedede
|
||||
text-shadow: 0 1px 1px rgba(0,0,0,0.2)
|
||||
@include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.2))
|
||||
@include box-shadow((inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2)))
|
||||
background: $link-color
|
||||
a
|
||||
color: white
|
||||
.oe_menu_label
|
||||
|
@ -971,6 +957,7 @@ $sheet-max-width: 860px
|
|||
.oe_menu_counter
|
||||
background: #eee
|
||||
color: $link-color
|
||||
@include box-shadow(inset 0 1px 2px rgba(0, 0, 0, 0.2))
|
||||
.oe_menu_toggler:before
|
||||
width: 0
|
||||
height: 0
|
||||
|
@ -1002,6 +989,12 @@ $sheet-max-width: 860px
|
|||
text-decoration: underline
|
||||
> div
|
||||
height: 100%
|
||||
.oe_breadcrumb_item:not(:last-child)
|
||||
display: inline-block
|
||||
max-width: 7em
|
||||
white-space: nowrap
|
||||
overflow: hidden
|
||||
text-overflow: ellipsis
|
||||
// }}}
|
||||
// ViewManager common {{{
|
||||
.oe_view_manager
|
||||
|
@ -1013,14 +1006,6 @@ $sheet-max-width: 860px
|
|||
table.oe_view_manager_header
|
||||
width: 100%
|
||||
table-layout: fixed
|
||||
ul
|
||||
padding: 0
|
||||
margin-right: 0
|
||||
margin-top: 0
|
||||
margin-bottom: 0
|
||||
li
|
||||
list-style-type: none
|
||||
margin: 0
|
||||
.oe_header_row
|
||||
//min-height: 26px
|
||||
//line-height: 26px
|
||||
|
@ -1075,6 +1060,9 @@ $sheet-max-width: 860px
|
|||
.oe_pager_value
|
||||
float: left
|
||||
margin-right: 8px
|
||||
ul.oe_pager_group
|
||||
padding: 0
|
||||
margin: 0
|
||||
.oe_pager_group
|
||||
float: left
|
||||
height: 24px
|
||||
|
@ -1087,6 +1075,8 @@ $sheet-max-width: 860px
|
|||
height: 24px
|
||||
line-height: 24px
|
||||
padding: 0
|
||||
margin: 0
|
||||
list-style-type: none
|
||||
float: left
|
||||
border-right: 1px solid #ababab
|
||||
&:last-child
|
||||
|
@ -1105,13 +1095,16 @@ $sheet-max-width: 860px
|
|||
// }}}
|
||||
// ViewManager.switches {{{
|
||||
.oe_view_manager_switch
|
||||
margin-left: 8px
|
||||
padding: 0
|
||||
margin: 0 0 0 8px
|
||||
li
|
||||
text-align: center
|
||||
margin: 0
|
||||
width: 24px
|
||||
height: 24px
|
||||
line-height: 16px
|
||||
padding: 0
|
||||
text-align: center
|
||||
list-style-type: none
|
||||
a
|
||||
position: relative
|
||||
.oe_vm_switch_list:after, .oe_vm_switch_tree:after
|
||||
|
@ -1156,7 +1149,7 @@ $sheet-max-width: 860px
|
|||
padding-top: 8px
|
||||
// }}}
|
||||
// ViewManager inline {{{
|
||||
.oe_view_manager_inline
|
||||
.oe_view_manager_inline, .oe_view_manager_inlineview
|
||||
height: 100%
|
||||
> .oe_view_manager_header
|
||||
display: none
|
||||
|
@ -1546,10 +1539,13 @@ $sheet-max-width: 860px
|
|||
header
|
||||
position: relative
|
||||
border-bottom: 1px solid #cacaca
|
||||
padding-left: 2px
|
||||
@include vertical-gradient(#fcfcfc, #dedede)
|
||||
ul
|
||||
display: inline-block
|
||||
float: right
|
||||
.oe_form_button
|
||||
margin: 3px 2px 1px
|
||||
div.oe_chatter
|
||||
min-width: 650px
|
||||
max-width: $sheet-max-width
|
||||
|
@ -1566,75 +1562,9 @@ $sheet-max-width: 860px
|
|||
label
|
||||
min-width: 150px
|
||||
.oe_form_group_cell_label
|
||||
padding: 2px 0
|
||||
padding: 1px 0
|
||||
.oe_form_group_cell div div
|
||||
padding: 1px 0
|
||||
ul.oe_form_steps, ul.oe_form_steps_clickable
|
||||
display: inline-block
|
||||
padding-right: 18px
|
||||
li
|
||||
display: inline-block
|
||||
margin-right: -20px
|
||||
@include vertical-gradient(#fcfcfc, #dedede)
|
||||
&:first-child .label
|
||||
border-left: 1px solid #cacaca
|
||||
padding-left: 14px
|
||||
&:last-child
|
||||
border-right: 1px solid #cacaca
|
||||
.label
|
||||
padding-right: 14px
|
||||
.arrow
|
||||
display: none
|
||||
.label
|
||||
color: #4c4c4c
|
||||
text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede
|
||||
padding: 7px
|
||||
display: inline-block
|
||||
padding-left: 24px
|
||||
margin: 0
|
||||
position: relative
|
||||
.arrow
|
||||
width: 17px
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
overflow: hidden
|
||||
margin-left: -5px
|
||||
span
|
||||
position: relative
|
||||
width: 24px
|
||||
height: 24px
|
||||
display: inline-block
|
||||
margin-left: -12px
|
||||
margin-top: 3px
|
||||
box-shadow: -1px 1px 2px rgba(255,255,255,0.2), inset -1px 1px 1px rgba(0,0,0,0.2)
|
||||
@include skew-gradient(#fcfcfc, #dedede)
|
||||
@include radius(3px)
|
||||
@include transform(rotate(45deg))
|
||||
li.oe_active
|
||||
@include vertical-gradient(#729fcf, #3465a4)
|
||||
.arrow span
|
||||
@include skew-gradient(#729fcf, #3465a4)
|
||||
.label
|
||||
color: white
|
||||
text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4
|
||||
ul.oe_form_steps_clickable
|
||||
li
|
||||
cursor: pointer
|
||||
&:hover
|
||||
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
|
||||
.label
|
||||
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede
|
||||
.arrow span
|
||||
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
|
||||
.label
|
||||
color: $link-color
|
||||
li.oe_active
|
||||
&:hover
|
||||
@include vertical-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
|
||||
.label
|
||||
text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4
|
||||
.arrow span
|
||||
@include skew-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
|
||||
.oe_subtotal_footer
|
||||
width: 1% !important
|
||||
td.oe_form_group_cell
|
||||
|
@ -1662,13 +1592,13 @@ $sheet-max-width: 860px
|
|||
margin: 2px
|
||||
td.oe_form_group_cell_label
|
||||
border-right: 1px solid #ddd
|
||||
padding: 4px 0px 4px 0px
|
||||
padding: 2px 0px
|
||||
label
|
||||
line-height: 18px
|
||||
display: block
|
||||
min-width: 140px
|
||||
td.oe_form_group_cell + .oe_form_group_cell
|
||||
padding-left: 6px
|
||||
padding: 2px 0 2px 8px
|
||||
.oe_form_group
|
||||
width: 100%
|
||||
margin: 9px 0 9px 0
|
||||
|
@ -1680,7 +1610,7 @@ $sheet-max-width: 860px
|
|||
.oe_form_label_help[for], .oe_form_label[for]
|
||||
font-weight: bold
|
||||
white-space: nowrap
|
||||
padding-right: 6px
|
||||
padding-right: 8px
|
||||
span
|
||||
font-size: 80%
|
||||
color: darkGreen
|
||||
|
@ -1743,7 +1673,6 @@ $sheet-max-width: 860px
|
|||
width: 100%
|
||||
display: inline-block
|
||||
padding: 2px 2px 2px 0px
|
||||
line-height: 1em
|
||||
input
|
||||
margin: 0px
|
||||
input[type="text"], input[type="password"], input[type="file"], select
|
||||
|
@ -1877,9 +1806,75 @@ $sheet-max-width: 860px
|
|||
margin-top: 10px
|
||||
// }}}
|
||||
// FormView.fieldstatus {{{
|
||||
.oe_form_field_status
|
||||
@include semantic-html-override
|
||||
@include ul-html-override
|
||||
ul.oe_form_status, ul.oe_form_status_clickable
|
||||
display: inline-block
|
||||
margin: 0
|
||||
padding: 0 18px 0 0
|
||||
li
|
||||
display: inline-block
|
||||
list-style-type: none
|
||||
margin: 0 -20px 0 0
|
||||
padding: 0
|
||||
@include vertical-gradient(#fcfcfc, #dedede)
|
||||
&:first-child .label
|
||||
border-left: 1px solid #cacaca
|
||||
padding-left: 14px
|
||||
&:last-child
|
||||
border-right: 1px solid #cacaca
|
||||
.label
|
||||
padding-right: 14px
|
||||
.arrow
|
||||
display: none
|
||||
.label
|
||||
color: #4c4c4c
|
||||
text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede
|
||||
padding: 7px
|
||||
display: inline-block
|
||||
padding-left: 24px
|
||||
margin: 0
|
||||
position: relative
|
||||
.arrow
|
||||
width: 17px
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
overflow: hidden
|
||||
margin-left: -5px
|
||||
span
|
||||
position: relative
|
||||
width: 24px
|
||||
height: 24px
|
||||
display: inline-block
|
||||
margin-left: -12px
|
||||
margin-top: 3px
|
||||
box-shadow: -1px 1px 2px rgba(255,255,255,0.2), inset -1px 1px 1px rgba(0,0,0,0.2)
|
||||
@include skew-gradient(#fcfcfc, #dedede)
|
||||
@include radius(3px)
|
||||
@include transform(rotate(45deg))
|
||||
li.oe_active
|
||||
@include vertical-gradient(#729fcf, #3465a4)
|
||||
.arrow span
|
||||
@include skew-gradient(#729fcf, #3465a4)
|
||||
.label
|
||||
color: white
|
||||
text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4
|
||||
ul.oe_form_status_clickable
|
||||
li
|
||||
cursor: pointer
|
||||
&:hover
|
||||
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
|
||||
.label
|
||||
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede
|
||||
.arrow span
|
||||
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
|
||||
.label
|
||||
color: $link-color
|
||||
li.oe_active
|
||||
&:hover
|
||||
@include vertical-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
|
||||
.label
|
||||
text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4
|
||||
.arrow span
|
||||
@include skew-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
|
||||
// }}}
|
||||
// FormView.one2many {{{
|
||||
.oe_form .oe_form_field_one2many > .oe_view_manager
|
||||
|
@ -1943,14 +1938,12 @@ $sheet-max-width: 860px
|
|||
.oe_m2o_cm_button
|
||||
display: none
|
||||
.oe_form_field
|
||||
input
|
||||
input, textarea
|
||||
height: $row-height
|
||||
input, textarea
|
||||
@include radius(0)
|
||||
border: 1px solid #aaf
|
||||
margin: 0
|
||||
textarea
|
||||
height: 60px
|
||||
&.oe_form_field_float,&.oe_form_view_integer
|
||||
input
|
||||
text-align: right
|
||||
|
@ -1970,15 +1963,19 @@ $sheet-max-width: 860px
|
|||
// }}}
|
||||
// ListView {{{
|
||||
.oe_list_buttons
|
||||
.oe_alternative
|
||||
visibility: hidden
|
||||
.oe_list_save, .oe_list_discard
|
||||
display: none
|
||||
&.oe_editing
|
||||
.oe_list_add, .oe_list_button_import
|
||||
.oe_list_add
|
||||
display: none
|
||||
.oe_list_save
|
||||
display: inline-block
|
||||
.oe_list_discard
|
||||
display: inline
|
||||
.oe_alternative
|
||||
visibility: visible
|
||||
|
||||
.oe_list
|
||||
position: relative
|
||||
|
@ -1992,6 +1989,8 @@ $sheet-max-width: 860px
|
|||
position: absolute
|
||||
margin: 0 !important // dammit
|
||||
padding: 0
|
||||
.oe_list_content .oe_group_header
|
||||
@include vertical-gradient(#fcfcfc, #dedede)
|
||||
|
||||
.oe_list_content
|
||||
width: 100%
|
||||
|
@ -2051,6 +2050,7 @@ $sheet-max-width: 860px
|
|||
> tr:nth-child(odd)
|
||||
background-color: #f0f0fa
|
||||
@include vertical-gradient(#f0f0fa, #eeeef6)
|
||||
|
||||
> tfoot
|
||||
border-top: 2px solid #cacaca
|
||||
border-bottom: 1px solid #cacaca
|
||||
|
@ -2162,15 +2162,6 @@ $sheet-max-width: 860px
|
|||
float: right
|
||||
color: #333
|
||||
// }}}
|
||||
.oe_semantic_html // a style to use normal html
|
||||
li
|
||||
list-style-type: disc
|
||||
display: list-item
|
||||
ul
|
||||
padding-left: 1em
|
||||
p
|
||||
color: #4C4C4C !important
|
||||
|
||||
// Kitten Mode {{{
|
||||
.kitten-mode-activated
|
||||
background-image: url(http://placekitten.com/g/1365/769)
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
.openerp .oe_import_grid {
|
||||
border: none;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.openerp .oe_import_grid-header .oe_import_grid-cell {
|
||||
background: url(../img/gradientlinebg.gif) repeat-x #CCCCCC;
|
||||
border-bottom: 1px solid #E3E3E3;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
.openerp .oe_import_grid-row .oe_import_grid-cell {
|
||||
border-bottom: 1px solid #E3E3E3;
|
||||
}
|
||||
|
||||
.openerp .oe_import_no_result .oe_import_result {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_import fieldset {
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp .oe_import fieldset legend:before {
|
||||
content: '\25BC ';
|
||||
}
|
||||
.openerp .oe_import fieldset.oe_closed legend:before {
|
||||
content: '\25B6 ';
|
||||
}
|
||||
.openerp .oe_import fieldset.oe_closed table {
|
||||
display: none;
|
||||
}
|
||||
.openerp .oe_import .separator.horizontal {
|
||||
font-weight: bold;
|
||||
border-bottom-width: 1px;
|
||||
margin: 6px 4px 6px 1px;
|
||||
height: 20px;
|
||||
}
|
||||
.openerp .duplicate_fld{
|
||||
background-color:#FF6666;
|
||||
}
|
||||
.openerp .select_fld{
|
||||
background: none repeat scroll 0 0 white;
|
||||
}
|
||||
.openerp .ui-autocomplete {
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
padding-right: 20px;
|
||||
}
|
|
@ -731,6 +731,8 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
* @param {Number} id database id of the terminal menu to select
|
||||
*/
|
||||
open_menu: function (id) {
|
||||
this.current_menu = id;
|
||||
this.session.active_id = id;
|
||||
var $clicked_menu, $sub_menu, $main_menu;
|
||||
$clicked_menu = this.$el.add(this.$secondary_menus).find('a[data-menu=' + id + ']');
|
||||
this.trigger('open_menu', id, $clicked_menu);
|
||||
|
@ -803,16 +805,15 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
}
|
||||
}
|
||||
}
|
||||
this.open_menu(id);
|
||||
this.current_menu = id;
|
||||
this.session.active_id = id;
|
||||
if (action_id) {
|
||||
this.trigger('menu_click', {
|
||||
action_id: action_id,
|
||||
needaction: needaction,
|
||||
id: id
|
||||
id: id,
|
||||
previous_menu_id: this.current_menu // Here we don't know if action will fail (in which case we have to revert menu)
|
||||
}, $item);
|
||||
}
|
||||
this.open_menu(id);
|
||||
},
|
||||
/**
|
||||
* Jquery event handler for menu click
|
||||
|
@ -870,10 +871,12 @@ instance.web.UserMenu = instance.web.Widget.extend({
|
|||
},
|
||||
on_menu_settings: function() {
|
||||
var self = this;
|
||||
self.rpc("/web/action/load", { action_id: "base.action_res_users_my" }, function(result) {
|
||||
result.result.res_id = instance.session.uid;
|
||||
self.getParent().action_manager.do_action(result.result);
|
||||
});
|
||||
if (!this.getParent().has_uncommitted_changes()) {
|
||||
self.rpc("/web/action/load", { action_id: "base.action_res_users_my" }, function(result) {
|
||||
result.result.res_id = instance.session.uid;
|
||||
self.getParent().action_manager.do_action(result.result);
|
||||
});
|
||||
}
|
||||
},
|
||||
on_menu_about: function() {
|
||||
var self = this;
|
||||
|
@ -951,7 +954,10 @@ instance.web.Client = instance.web.Widget.extend({
|
|||
},
|
||||
toggle_bars: function(value) {
|
||||
this.$('tr:has(td.oe_topbar),.oe_leftbar').toggle(value);
|
||||
}
|
||||
},
|
||||
has_uncommitted_changes: function() {
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.WebClient = instance.web.Client.extend({
|
||||
|
@ -963,6 +969,9 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
start: function() {
|
||||
var self = this;
|
||||
return $.when(this._super()).pipe(function() {
|
||||
self.$el.on('click', '.oe_logo', function() {
|
||||
self.action_manager.do_action('home');
|
||||
});
|
||||
if (jQuery.param !== undefined && jQuery.deparam(jQuery.param.querystring()).kitten !== undefined) {
|
||||
$("body").addClass("kitten-mode-activated");
|
||||
if ($.blockUI) {
|
||||
|
@ -1048,11 +1057,13 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
},
|
||||
on_logout: function() {
|
||||
var self = this;
|
||||
this.session.session_logout().then(function () {
|
||||
$(window).unbind('hashchange', self.on_hashchange);
|
||||
self.do_push_state({});
|
||||
window.location.reload();
|
||||
});
|
||||
if (!this.has_uncommitted_changes()) {
|
||||
this.session.session_logout().then(function () {
|
||||
$(window).unbind('hashchange', self.on_hashchange);
|
||||
self.do_push_state({});
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
},
|
||||
bind_hashchange: function() {
|
||||
var self = this;
|
||||
|
@ -1095,14 +1106,15 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
},
|
||||
on_menu_action: function(options) {
|
||||
var self = this;
|
||||
this.rpc("/web/action/load", { action_id: options.action_id })
|
||||
.then(function (result) {
|
||||
return this.rpc("/web/action/load", { action_id: options.action_id })
|
||||
.pipe(function (result) {
|
||||
var action = result.result;
|
||||
if (options.needaction) {
|
||||
action.context.search_default_needaction_pending = true;
|
||||
}
|
||||
self.action_manager.clear_breadcrumbs();
|
||||
self.action_manager.do_action(action);
|
||||
return $.when(self.action_manager.do_action(action, null, true)).fail(function() {
|
||||
self.menu.open_menu(options.previous_menu_id);
|
||||
});
|
||||
});
|
||||
},
|
||||
do_action: function(action) {
|
||||
|
@ -1122,7 +1134,16 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
$(".oe_webclient", this.$el).removeClass("oe_content_full_screen");
|
||||
$("body").css({'overflow-y':'scroll'});
|
||||
}
|
||||
}
|
||||
},
|
||||
has_uncommitted_changes: function() {
|
||||
var $e = $.Event('clear_uncommitted_changes');
|
||||
instance.web.bus.trigger('clear_uncommitted_changes', $e);
|
||||
if ($e.isDefaultPrevented()) {
|
||||
return true;
|
||||
} else {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.EmbeddedClient = instance.web.Client.extend({
|
||||
|
|
|
@ -585,7 +585,7 @@ instance.session.on('module_loaded', this, function () {
|
|||
/** Setup blockui */
|
||||
if ($.blockUI) {
|
||||
$.blockUI.defaults.baseZ = 1100;
|
||||
$.blockUI.defaults.message = '<div class="oe_blockui_spin_container">';
|
||||
$.blockUI.defaults.message = '<div class="openerp oe_blockui_spin_container" style="background-color: transparent;">';
|
||||
$.blockUI.defaults.css.border = '0';
|
||||
$.blockUI.defaults.css["background-color"] = '';
|
||||
}
|
||||
|
@ -597,7 +597,8 @@ var messages_by_seconds = function() {
|
|||
[60, _t("Still loading...<br />Please be patient.")],
|
||||
[120, _t("Don't leave yet,<br />it's still loading...")],
|
||||
[300, _t("You may not believe it,<br />but the application is actually loading...")],
|
||||
[600, _t("Take a minute to get a coffee,<br />because it's loading...")],
|
||||
[420, _t("Take a minute to get a coffee,<br />because it's loading...")],
|
||||
[600, _t("It's loading...<br />By the way, did you tried the kitten mode?")],
|
||||
[3600, _t("Maybe you should consider pressing F5...")],
|
||||
];
|
||||
};
|
||||
|
|
|
@ -417,6 +417,7 @@ instance.web.data = {
|
|||
var group_size = fixed_group[grouping_field + '_count'] || fixed_group.__count || 0;
|
||||
var leaf_group = fixed_group.__context.group_by.length === 0;
|
||||
this.attributes = {
|
||||
folded: !!(fixed_group.__fold),
|
||||
grouped_on: grouping_field,
|
||||
// if terminal group (or no group) and group_by_no_leaf => use group.__count
|
||||
length: group_size,
|
||||
|
@ -494,6 +495,7 @@ instance.web.DataGroup = instance.web.CallbackEnabled.extend( /** @lends opener
|
|||
{
|
||||
__context: child_context,
|
||||
__domain: group.model.domain(),
|
||||
folded: group.get('folded'),
|
||||
grouped_on: group.get('grouped_on'),
|
||||
length: group.get('length'),
|
||||
value: group.get('value'),
|
||||
|
|
|
@ -1,393 +0,0 @@
|
|||
openerp.web.data_import = function(instance) {
|
||||
var QWeb = instance.web.qweb,
|
||||
_t = instance.web._t;
|
||||
/**
|
||||
* Safari does not deal well at all with raw JSON data being returned. As a
|
||||
* result, we're going to cheat by using a pseudo-jsonp: instead of getting
|
||||
* JSON data in the iframe, we're getting a ``script`` tag which consists of a
|
||||
* function call and the returned data (the json dump).
|
||||
*
|
||||
* The function is an auto-generated name bound to ``window``, which calls
|
||||
* back into the callback provided here.
|
||||
*
|
||||
* @param {Object} form the form element (DOM or jQuery) to use in the call
|
||||
* @param {Object} attributes jquery.form attributes object
|
||||
* @param {Function} callback function to call with the returned data
|
||||
*/
|
||||
function jsonp(form, attributes, callback) {
|
||||
attributes = attributes || {};
|
||||
var options = {jsonp: _.uniqueId('import_callback_')};
|
||||
window[options.jsonp] = function () {
|
||||
delete window[options.jsonp];
|
||||
callback.apply(null, arguments);
|
||||
};
|
||||
if ('data' in attributes) {
|
||||
_.extend(attributes.data, options);
|
||||
} else {
|
||||
_.extend(attributes, {data: options});
|
||||
}
|
||||
$(form).ajaxSubmit(attributes);
|
||||
}
|
||||
|
||||
instance.web.DataImport = instance.web.Dialog.extend({
|
||||
template: 'ImportDataView',
|
||||
dialog_title: {toString: function () { return _t("Import Data"); }},
|
||||
init: function(parent, dataset){
|
||||
var self = this;
|
||||
this._super(parent, {});
|
||||
this.model = parent.model;
|
||||
this.fields = [];
|
||||
this.all_fields = [];
|
||||
this.fields_with_defaults = [];
|
||||
this.required_fields = null;
|
||||
|
||||
var convert_fields = function (root, prefix) {
|
||||
prefix = prefix || '';
|
||||
_(root.fields).each(function (f) {
|
||||
self.all_fields.push(prefix + f.name);
|
||||
if (f.fields) {
|
||||
convert_fields(f, prefix + f.id + '/');
|
||||
}
|
||||
});
|
||||
};
|
||||
this.ready = $.Deferred.queue().then(function () {
|
||||
self.required_fields = _(self.fields).chain()
|
||||
.filter(function (field) {
|
||||
return field.required &&
|
||||
!_.include(self.fields_with_defaults, field.id); })
|
||||
.pluck('id')
|
||||
.uniq()
|
||||
.value();
|
||||
convert_fields(self);
|
||||
self.all_fields.sort();
|
||||
});
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
this._super();
|
||||
this.open({
|
||||
buttons: [
|
||||
{text: _t("Close"), click: function() { self.destroy(); }},
|
||||
{text: _t("Import File"), click: function() { self.do_import(); }, 'class': 'oe_import_dialog_button'}
|
||||
],
|
||||
close: function(event, ui) {
|
||||
self.destroy();
|
||||
}
|
||||
});
|
||||
this.toggle_import_button(false);
|
||||
this.$el.find('#csvfile').change(this.on_autodetect_data);
|
||||
this.$el.find('fieldset').change(this.on_autodetect_data);
|
||||
this.$el.delegate('fieldset legend', 'click', function() {
|
||||
$(this).parent().toggleClass('oe_closed');
|
||||
});
|
||||
this.ready.push(new instance.web.DataSet(this, this.model).call(
|
||||
'fields_get', [], function (fields) {
|
||||
self.graft_fields(fields);
|
||||
self.ready.push(new instance.web.DataSet(self, self.model)
|
||||
.default_get(_.pluck(self.fields, 'id')).then(function (fields) {
|
||||
_.each(fields, function(val, key) {
|
||||
if (val) {
|
||||
self.fields_with_defaults.push(key);
|
||||
}
|
||||
});
|
||||
})
|
||||
)
|
||||
}));
|
||||
},
|
||||
graft_fields: function (fields, parent, level) {
|
||||
parent = parent || this;
|
||||
level = level || 0;
|
||||
|
||||
var self = this;
|
||||
if (level === 0) {
|
||||
parent.fields.push({
|
||||
id: 'id',
|
||||
name: 'id',
|
||||
string: _t('External ID'),
|
||||
required: false
|
||||
});
|
||||
}
|
||||
_(fields).each(function (field, field_name) {
|
||||
// Ignore spec for id field
|
||||
// Don't import function fields (function and related)
|
||||
if (field_name === 'id') {
|
||||
return;
|
||||
}
|
||||
// Skip if there's no state which could disable @readonly,
|
||||
// if a field is ever always readonly we can't import it
|
||||
if (field.readonly) {
|
||||
// no states at all
|
||||
if (_.isEmpty(field.states)) { return; }
|
||||
// no state altering @readonly
|
||||
if (!_.any(field.states, function (modifiers) {
|
||||
return _(modifiers).chain().pluck(0).contains('readonly').value();
|
||||
})) { return; }
|
||||
}
|
||||
|
||||
var f = {
|
||||
id: field_name,
|
||||
name: field_name,
|
||||
string: field.string,
|
||||
required: field.required
|
||||
};
|
||||
|
||||
switch (field.type) {
|
||||
case 'many2many':
|
||||
case 'many2one':
|
||||
// push a copy for the bare many2one field, to allow importing
|
||||
// using name_search too - even if we default to exporting the XML ID
|
||||
var many2one_field = _.extend({}, f)
|
||||
parent.fields.push(many2one_field);
|
||||
f.name += '/id';
|
||||
break;
|
||||
case 'one2many':
|
||||
f.name += '/id';
|
||||
f.fields = [];
|
||||
// only fetch sub-fields to a depth of 2 levels
|
||||
if (level < 2) {
|
||||
self.ready.push(new instance.web.DataSet(self, field.relation).call(
|
||||
'fields_get', [], function (fields) {
|
||||
self.graft_fields(fields, f, level+1);
|
||||
}));
|
||||
}
|
||||
break;
|
||||
}
|
||||
parent.fields.push(f);
|
||||
});
|
||||
},
|
||||
toggle_import_button: function (newstate) {
|
||||
instance.web.dialog(this.$el, 'widget')
|
||||
.find('.oe_import_dialog_button')
|
||||
.button('option', 'disabled', !newstate);
|
||||
},
|
||||
do_import: function() {
|
||||
if(!this.$el.find('#csvfile').val()) { return; }
|
||||
var lines_to_skip = parseInt(this.$el.find('#csv_skip').val(), 10);
|
||||
var with_headers = this.$el.find('#file_has_headers').prop('checked');
|
||||
if (!lines_to_skip && with_headers) {
|
||||
lines_to_skip = 1;
|
||||
}
|
||||
var indices = [], fields = [];
|
||||
this.$el.find(".sel_fields").each(function(index, element) {
|
||||
var val = element.value;
|
||||
if (!val) {
|
||||
return;
|
||||
}
|
||||
indices.push(index);
|
||||
fields.push(val);
|
||||
});
|
||||
|
||||
jsonp(this.$el.find('#import_data'), {
|
||||
url: '/web/import/import_data',
|
||||
data: {
|
||||
model: this.model,
|
||||
meta: JSON.stringify({
|
||||
skip: lines_to_skip,
|
||||
indices: indices,
|
||||
fields: fields
|
||||
})
|
||||
}
|
||||
}, this.on_import_results);
|
||||
},
|
||||
on_autodetect_data: function() {
|
||||
if(!this.$el.find('#csvfile').val()) { return; }
|
||||
jsonp(this.$el.find('#import_data'), {
|
||||
url: '/web/import/detect_data'
|
||||
}, this.on_import_results);
|
||||
},
|
||||
on_import_results: function(results) {
|
||||
this.$el.find('#result').empty();
|
||||
var headers, result_node = this.$el.find("#result");
|
||||
|
||||
if (results['error']) {
|
||||
result_node.append(QWeb.render('ImportView.error', {
|
||||
'error': results['error']}));
|
||||
this.$el.find('fieldset').removeClass('oe_closed');
|
||||
return;
|
||||
}
|
||||
if (results['success']) {
|
||||
if (this.getParent().getParent().active_view == "list") {
|
||||
this.getParent().reload_content();
|
||||
}
|
||||
this.destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (results['records']) {
|
||||
var lines_to_skip = parseInt(this.$el.find('#csv_skip').val(), 10),
|
||||
with_headers = this.$el.find('#file_has_headers').prop('checked');
|
||||
headers = with_headers ? results.records[0] : null;
|
||||
|
||||
result_node.append(QWeb.render('ImportView.result', {
|
||||
'headers': headers,
|
||||
'records': lines_to_skip ? results.records.slice(lines_to_skip)
|
||||
: with_headers ? results.records.slice(1)
|
||||
: results.records
|
||||
}));
|
||||
this.$el.find('fieldset').addClass('oe_closed');
|
||||
}
|
||||
this.$el.find('form').removeClass('oe_import_no_result');
|
||||
|
||||
this.$el.delegate('.oe_m2o_drop_down_button', 'click', function () {
|
||||
$(this).prev('input').focus();
|
||||
});
|
||||
|
||||
var self = this;
|
||||
this.ready.then(function () {
|
||||
var $fields = self.$el.find('.sel_fields').bind('blur', function () {
|
||||
if (this.value && !_(self.all_fields).contains(this.value)) {
|
||||
this.value = '';
|
||||
}
|
||||
}).autocomplete({
|
||||
minLength: 0,
|
||||
source: self.all_fields,
|
||||
change: self.on_check_field_values
|
||||
}).focus(function () {
|
||||
$(this).autocomplete('search');
|
||||
});
|
||||
// Column auto-detection
|
||||
_(headers).each(function (header, index) {
|
||||
var field_name = self.match_column_to_field(header);
|
||||
if (field_name) {
|
||||
$fields.eq(index).val(field_name);
|
||||
}
|
||||
});
|
||||
self.on_check_field_values();
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Returns the name of the field (nested) matching the provided column name
|
||||
*
|
||||
* @param {String} name column name to look for
|
||||
* @param {Array} [fields] fields to look into for the provided name
|
||||
* @returns {String|undefined}
|
||||
*/
|
||||
match_column_to_field: function (name, fields) {
|
||||
fields = fields || this.fields;
|
||||
var f;
|
||||
f = _(fields).detect(function (field) {
|
||||
return field.name === name
|
||||
});
|
||||
if (!f) {
|
||||
f = _(fields).detect(function (field) {
|
||||
// TODO: levenshtein between header and field.string
|
||||
return field.string.toLowerCase() === name.toLowerCase();
|
||||
});
|
||||
}
|
||||
if (f) { return f.name; }
|
||||
|
||||
// if ``name`` is a path (o2m), we need to recurse through its .fields
|
||||
var index = name.indexOf('/');
|
||||
if (index === -1) { return undefined; }
|
||||
// Get the first path section, try to find the matching field
|
||||
var column_name = name.substring(0, index);
|
||||
f = _(fields).detect(function (field) {
|
||||
// field.name for o2m is $foo/id, so we want to match on id
|
||||
return field.id === column_name;
|
||||
});
|
||||
if (!f) {
|
||||
f = _(fields).detect(function (field) {
|
||||
return field.string.toLowerCase() === column_name.toLowerCase();
|
||||
});
|
||||
}
|
||||
if (!f) { return undefined; }
|
||||
|
||||
// if we found a matching field for the first path section, recurse in
|
||||
// its own .fields to try and get the rest of the path matched
|
||||
var rest = this.match_column_to_field(
|
||||
name.substring(index+1), f.fields);
|
||||
if (!rest) { return undefined; }
|
||||
return f.id + '/' + rest;
|
||||
},
|
||||
/**
|
||||
* Looks through all the field selections, and tries to find if two
|
||||
* (or more) columns were matched to the same model field.
|
||||
*
|
||||
* Returns a map of the multiply-mapped fields to an array of offending
|
||||
* columns (not actually columns, but the inputs containing the same field
|
||||
* names).
|
||||
*
|
||||
* Also has the side-effect of marking the discovered inputs with the class
|
||||
* ``duplicate_fld``.
|
||||
*
|
||||
* @returns {Object<String, Array<String>>} map of duplicate field matches to same-valued inputs
|
||||
*/
|
||||
find_duplicate_fields: function() {
|
||||
// Maps values to DOM nodes, in order to discover duplicates
|
||||
var values = {}, duplicates = {};
|
||||
this.$el.find(".sel_fields").each(function(index, element) {
|
||||
var value = element.value;
|
||||
var $el = $(element).removeClass('duplicate_fld');
|
||||
if (!value) { return; }
|
||||
|
||||
if (!(value in values)) {
|
||||
values[value] = element;
|
||||
} else {
|
||||
var same_valued_field = values[value];
|
||||
if (value in duplicates) {
|
||||
duplicates[value].push(element);
|
||||
} else {
|
||||
duplicates[value] = [same_valued_field, element];
|
||||
}
|
||||
$el.add(same_valued_field).addClass('duplicate_fld');
|
||||
}
|
||||
});
|
||||
return duplicates;
|
||||
},
|
||||
on_check_field_values: function () {
|
||||
this.$el.find("#message, #msg").remove();
|
||||
|
||||
var required_valid = this.check_required();
|
||||
|
||||
var duplicates = this.find_duplicate_fields();
|
||||
if (_.isEmpty(duplicates)) {
|
||||
this.toggle_import_button(required_valid);
|
||||
} else {
|
||||
var $err = $('<div id="msg" style="color: red;">'+_t("Destination fields should only be selected once, some fields are selected more than once:")+'</div>').insertBefore(this.$el.find('#result'));
|
||||
var $dupes = $('<dl>').appendTo($err);
|
||||
_(duplicates).each(function(elements, value) {
|
||||
$('<dt>').text(value).appendTo($dupes);
|
||||
_(elements).each(function(element) {
|
||||
var cell = $(element).closest('td');
|
||||
$('<dd>').text(cell.parent().children().index(cell)).appendTo($dupes);
|
||||
});
|
||||
});
|
||||
this.toggle_import_button(false);
|
||||
}
|
||||
|
||||
},
|
||||
check_required: function() {
|
||||
var self = this;
|
||||
if (!self.required_fields.length) { return true; }
|
||||
|
||||
// Resolve field id based on column name, as there may be
|
||||
// several ways to provide the value for a given field and
|
||||
// thus satisfy the requirement.
|
||||
// (e.g. m2o_id or m2o_id/id columns may be provided)
|
||||
var resolve_field_id = function(column_name) {
|
||||
var f = _.detect(self.fields, function(field) {
|
||||
return field.name === column_name;
|
||||
});
|
||||
if (!f) { return column_name; };
|
||||
return f.id;
|
||||
};
|
||||
|
||||
var selected_fields = _(this.$el.find('.sel_fields').get()).chain()
|
||||
.pluck('value')
|
||||
.compact()
|
||||
.map(resolve_field_id)
|
||||
.value();
|
||||
|
||||
var missing_fields = _.difference(this.required_fields, selected_fields);
|
||||
if (missing_fields.length) {
|
||||
this.$el.find("#result").before('<div id="message" style="color:red">' + _t("*Required Fields are not selected :") + missing_fields + '.</div>');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
destroy: function() {
|
||||
this.$el.remove();
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
};
|
|
@ -92,6 +92,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
self.on("change:actual_mode", self, self.init_pager);
|
||||
self.init_pager();
|
||||
});
|
||||
instance.web.bus.on('clear_uncommitted_changes', this, function(e) {
|
||||
if (!this.can_be_discarded()) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
},
|
||||
destroy: function() {
|
||||
_.each(this.get_widgets(), function(w) {
|
||||
|
@ -316,7 +321,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
}
|
||||
this.datarecord = record;
|
||||
this._actualize_mode();
|
||||
this.set({ 'title' : record.id ? record.display_name : "New record" });
|
||||
this.set({ 'title' : record.id ? record.display_name : "New" });
|
||||
|
||||
if (this.qweb) {
|
||||
this.kill_current_form();
|
||||
|
@ -748,7 +753,13 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
return def.promise();
|
||||
},
|
||||
can_be_discarded: function() {
|
||||
return !this.$el.is('.oe_form_dirty') || confirm(_t("Warning, the record has been modified, your changes will be discarded."));
|
||||
if (this.$el.is('.oe_form_dirty')) {
|
||||
if (!confirm(_t("Warning, the record has been modified, your changes will be discarded.\n\nAre you sure you want to leave this page ?"))) {
|
||||
return false;
|
||||
}
|
||||
this.$el.removeClass('oe_form_dirty');
|
||||
}
|
||||
return true;
|
||||
},
|
||||
/**
|
||||
* Triggers saving the form's record. Chooses between creating a new
|
||||
|
@ -1388,6 +1399,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
|
|||
if (! page.__ic)
|
||||
return;
|
||||
page.__ic.on("change:effective_invisible", null, function() {
|
||||
if (!page.__ic.get('effective_invisible')) {
|
||||
$new_notebook.tabs('select', i);
|
||||
return;
|
||||
}
|
||||
var current = $new_notebook.tabs("option", "selected");
|
||||
if (! pages[current].__ic || ! pages[current].__ic.get("effective_invisible"))
|
||||
return;
|
||||
|
@ -2387,6 +2402,9 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(instance.we
|
|||
*/
|
||||
instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeFieldMixin, {
|
||||
template: 'FieldTextHtml',
|
||||
init: function() {
|
||||
this._super.apply(this, arguments);
|
||||
},
|
||||
initialize_content: function() {
|
||||
var self = this;
|
||||
if (! this.get("effective_readonly")) {
|
||||
|
@ -2419,7 +2437,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc
|
|||
},
|
||||
render_value: function() {
|
||||
if (! this.get("effective_readonly")) {
|
||||
this.$textarea.val(this.get('value'));
|
||||
this.$textarea.val(this.get('value') || '');
|
||||
this._updating_editor = true;
|
||||
this.$cleditor.updateFrame();
|
||||
this._updating_editor = false;
|
||||
|
@ -2694,8 +2712,10 @@ instance.web.form.CompletionFieldMixin = {
|
|||
_create_context: function(name) {
|
||||
var tmp = {};
|
||||
var field = (this.options || {}).create_name_field;
|
||||
if (field !== false && (this.options || {}).quick_create !== false)
|
||||
tmp["default_" + field] = name || "name";
|
||||
if (field === undefined)
|
||||
field = "name";
|
||||
if (field !== false && name && (this.options || {}).quick_create !== false)
|
||||
tmp["default_" + field] = name;
|
||||
return tmp;
|
||||
},
|
||||
};
|
||||
|
@ -2755,7 +2775,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
|
|||
this.$drop_down = this.$el.find(".oe_m2o_drop_down_button");
|
||||
this.$follow_button = $(".oe_m2o_cm_button", this.$el);
|
||||
|
||||
this.$follow_button.click(function() {
|
||||
this.$follow_button.click(function(ev) {
|
||||
ev.preventDefault();
|
||||
if (!self.get('value')) {
|
||||
self.focus();
|
||||
return;
|
||||
|
@ -2933,14 +2954,10 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
|
|||
var lines = _.escape(str).split("\n");
|
||||
var link = "";
|
||||
var follow = "";
|
||||
if (! this.options.highlight_first_line) {
|
||||
link = lines.join("<br />");
|
||||
} else {
|
||||
link = lines[0];
|
||||
follow = _.rest(lines).join("<br />");
|
||||
if (follow)
|
||||
link += "<br />";
|
||||
}
|
||||
link = lines[0];
|
||||
follow = _.rest(lines).join("<br />");
|
||||
if (follow)
|
||||
link += "<br />";
|
||||
var $link = this.$el.find('.oe_form_uri')
|
||||
.unbind('click')
|
||||
.html(link);
|
||||
|
|
|
@ -21,8 +21,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
// whether the view rows can be reordered (via vertical drag & drop)
|
||||
'reorderable': true,
|
||||
'action_buttons': true,
|
||||
// if true, the 'Import', 'Export', etc... buttons will be shown
|
||||
'import_enabled': true,
|
||||
},
|
||||
/**
|
||||
* Core class for list-type displays.
|
||||
|
@ -281,7 +279,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
self.reload_content();
|
||||
});
|
||||
|
||||
// Add button and Import link
|
||||
// Add button
|
||||
if (!this.$buttons) {
|
||||
this.$buttons = $(QWeb.render("ListView.buttons", {'widget':self}));
|
||||
if (this.options.$buttons) {
|
||||
|
@ -292,10 +290,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
this.$buttons.find('.oe_list_add')
|
||||
.click(this.proxy('do_add_record'))
|
||||
.prop('disabled', grouped);
|
||||
this.$buttons.on('click', '.oe_list_button_import', function() {
|
||||
self.on_sidebar_import();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
// Pager
|
||||
|
@ -358,7 +352,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
this.sidebar = new instance.web.Sidebar(this);
|
||||
this.sidebar.appendTo(this.options.$sidebar);
|
||||
this.sidebar.add_items('other', _.compact([
|
||||
self.is_action_enabled('create') && { label: _t("Import"), callback: this.on_sidebar_import },
|
||||
{ label: _t("Export"), callback: this.on_sidebar_export },
|
||||
self.is_action_enabled('delete') && { label: _t('Delete'), callback: this.do_delete_selected }
|
||||
]));
|
||||
|
@ -480,7 +473,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
if (this.embedded_view) {
|
||||
return $.Deferred().then(callback).resolve(this.embedded_view);
|
||||
} else {
|
||||
return this.rpc('/web/listview/load', {
|
||||
return this.rpc('/web/view/load', {
|
||||
model: this.model,
|
||||
view_id: this.view_id,
|
||||
view_type: "tree",
|
||||
|
@ -1265,7 +1258,7 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
|
|||
self.bind_child_events(child);
|
||||
child.datagroup = group;
|
||||
|
||||
var $row = child.$row = $('<tr>');
|
||||
var $row = child.$row = $('<tr class="oe_group_header">');
|
||||
if (group.openable && group.length) {
|
||||
$row.click(function (e) {
|
||||
if (!$row.data('open')) {
|
||||
|
|
|
@ -20,7 +20,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
},
|
||||
start: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.$el.on('click', '.oe_breadcrumb_item', this.on_breadcrumb_clicked);
|
||||
this.$el.on('click', 'a.oe_breadcrumb_item', this.on_breadcrumb_clicked);
|
||||
},
|
||||
dialog_stop: function () {
|
||||
if (this.dialog) {
|
||||
|
@ -95,13 +95,15 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
break;
|
||||
}
|
||||
}
|
||||
var subindex = $e.parent().find('.oe_breadcrumb_item[data-id=' + $e.data('id') + ']').index($e);
|
||||
var subindex = $e.parent().find('a.oe_breadcrumb_item[data-id=' + $e.data('id') + ']').index($e);
|
||||
this.select_breadcrumb(index, subindex);
|
||||
},
|
||||
select_breadcrumb: function(index, subindex) {
|
||||
for (var i = this.breadcrumbs.length - 1; i >= 0; i--) {
|
||||
if (i > index) {
|
||||
this.remove_breadcrumb(i);
|
||||
if (this.remove_breadcrumb(i) === false) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var item = this.breadcrumbs[index];
|
||||
|
@ -110,8 +112,10 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
return true;
|
||||
},
|
||||
clear_breadcrumbs: function() {
|
||||
while (this.breadcrumbs.length) {
|
||||
this.remove_breadcrumb(0);
|
||||
for (var i = this.breadcrumbs.length - 1; i >= 0; i--) {
|
||||
if (this.remove_breadcrumb(0) === false) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
remove_breadcrumb: function(index) {
|
||||
|
@ -121,9 +125,17 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
return item.widget === it.widget;
|
||||
});
|
||||
if (!dups.length) {
|
||||
item.destroy();
|
||||
if (this.getParent().has_uncommitted_changes()) {
|
||||
this.inner_widget = item.widget;
|
||||
this.breadcrumbs.splice(index, 0, item);
|
||||
return false;
|
||||
} else {
|
||||
item.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
var last_widget = this.breadcrumbs.slice(-1)[0];
|
||||
this.inner_widget = last_widget && last_widget.widget;
|
||||
},
|
||||
get_title: function() {
|
||||
var titles = [];
|
||||
|
@ -136,7 +148,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
for (var j = 0; j < tit.length; j += 1) {
|
||||
var label = _.escape(tit[j]);
|
||||
if (i === this.breadcrumbs.length - 1 && j === tit.length - 1) {
|
||||
titles.push(label);
|
||||
titles.push(_.str.sprintf('<span class="oe_breadcrumb_item">%s</span>', label));
|
||||
} else {
|
||||
titles.push(_.str.sprintf('<a href="#" class="oe_breadcrumb_item" data-id="%s">%s</a>', item.id, label));
|
||||
}
|
||||
|
@ -208,19 +220,19 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
},
|
||||
do_action: function(action, on_close) {
|
||||
do_action: function(action, on_close, clear_breadcrumbs) {
|
||||
if (_.isString(action) && instance.web.client_actions.contains(action)) {
|
||||
var action_client = { type: "ir.actions.client", tag: action };
|
||||
return this.do_action(action_client);
|
||||
return this.do_action(action_client, on_close, clear_breadcrumbs);
|
||||
} else if (_.isNumber(action) || _.isString(action)) {
|
||||
var self = this;
|
||||
return self.rpc("/web/action/load", { action_id: action }, function(result) {
|
||||
self.do_action(result.result, on_close);
|
||||
return self.rpc("/web/action/load", { action_id: action }).pipe(function(result) {
|
||||
return self.do_action(result.result, on_close, clear_breadcrumbs);
|
||||
});
|
||||
}
|
||||
if (!action.type) {
|
||||
console.error("No type for action", action);
|
||||
return null;
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
var type = action.type.replace(/\./g,'_');
|
||||
var popup = action.target === 'new';
|
||||
|
@ -235,16 +247,23 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
}, action.flags || {});
|
||||
if (!(type in this)) {
|
||||
console.error("Action manager can't handle action of type " + action.type, action);
|
||||
return null;
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
return this[type](action, on_close);
|
||||
return this[type](action, on_close, clear_breadcrumbs);
|
||||
},
|
||||
null_action: function() {
|
||||
this.dialog_stop();
|
||||
this.clear_breadcrumbs();
|
||||
},
|
||||
ir_actions_common: function(action, on_close) {
|
||||
ir_actions_common: function(action, on_close, clear_breadcrumbs) {
|
||||
var self = this, klass, widget, post_process;
|
||||
if (this.inner_widget && (action.type === 'ir.actions.client' || action.target !== 'new')) {
|
||||
if (this.getParent().has_uncommitted_changes()) {
|
||||
return $.Deferred().reject();
|
||||
} else if (clear_breadcrumbs) {
|
||||
this.clear_breadcrumbs();
|
||||
}
|
||||
}
|
||||
if (action.type === 'ir.actions.client') {
|
||||
var ClientWidget = instance.web.client_actions.get_object(action.tag);
|
||||
widget = new ClientWidget(this, action.params);
|
||||
|
@ -287,17 +306,17 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
this.inner_widget.appendTo(this.$el);
|
||||
}
|
||||
},
|
||||
ir_actions_act_window: function (action, on_close) {
|
||||
ir_actions_act_window: function (action, on_close, clear_breadcrumbs) {
|
||||
var self = this;
|
||||
if (action.target !== 'new') {
|
||||
if(action.menu_id) {
|
||||
this.dialog_stop();
|
||||
return this.getParent().do_action(action, function () {
|
||||
instance.webclient.menu.open_menu(action.menu_id);
|
||||
});
|
||||
}, clear_breadcrumbs);
|
||||
}
|
||||
}
|
||||
return this.ir_actions_common(action, on_close);
|
||||
return this.ir_actions_common(action, on_close, clear_breadcrumbs);
|
||||
},
|
||||
ir_actions_client: function (action, on_close) {
|
||||
return this.ir_actions_common(action, on_close);
|
||||
|
@ -314,7 +333,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
|||
action_id: action.id,
|
||||
context: action.context || {}
|
||||
}).then(function (action) {
|
||||
self.do_action(action, on_closed)
|
||||
self.do_action(action, on_closed, clear_breadcrumbs)
|
||||
});
|
||||
},
|
||||
ir_actions_report_xml: function(action, on_closed) {
|
||||
|
@ -412,8 +431,10 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
var view = this.views[view_type];
|
||||
var view_promise;
|
||||
if(!view)
|
||||
var form = this.views['form'];
|
||||
if (!view || (form && form.controller && !form.controller.can_be_discarded())) {
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
|
||||
if (!no_store) {
|
||||
this.views_history.push(view_type);
|
||||
|
@ -545,7 +566,8 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
|||
}
|
||||
return controller.get('title');
|
||||
});
|
||||
if (next && next.action && next.action.res_id && self.active_view === 'form' && self.model === next.action.res_model && id === next.action.res_id) {
|
||||
if (next && next.action && next.action.res_id && self.dataset &&
|
||||
self.active_view === 'form' && self.dataset.model === next.action.res_model && id === next.action.res_id) {
|
||||
// If the current active view is a formview and the next item in the breadcrumbs
|
||||
// is an action on same object (model / res_id), then we omit the current formview's title
|
||||
titles.pop();
|
||||
|
@ -732,6 +754,14 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
|||
var dialog = new instance.web.Dialog(this, { title: _t("Fields View Get"), width: '95%' }).open();
|
||||
$('<pre>').text(instance.web.json_node_to_xml(current_view.fields_view.arch, true)).appendTo(dialog.$el);
|
||||
break;
|
||||
case 'tests':
|
||||
this.do_action({
|
||||
name: "JS Tests",
|
||||
target: 'new',
|
||||
type : 'ir.actions.act_url',
|
||||
url: '/web/static/test/test.html'
|
||||
})
|
||||
break;
|
||||
case 'perm_read':
|
||||
var ids = current_view.get_selected_ids();
|
||||
if (ids.length === 1) {
|
||||
|
@ -807,6 +837,21 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
|||
}
|
||||
});
|
||||
break;
|
||||
case 'print_workflow':
|
||||
if (current_view.get_selected_ids && current_view.get_selected_ids().length == 1) {
|
||||
instance.web.blockUI();
|
||||
var action = {
|
||||
context: { active_ids: current_view.get_selected_ids() },
|
||||
report_name: "workflow.instance.graph",
|
||||
datas: {
|
||||
model: this.dataset.model,
|
||||
id: current_view.get_selected_ids()[0],
|
||||
nested: true,
|
||||
}
|
||||
};
|
||||
this.session.get_file({ url: '/web/report', data: {action: JSON.stringify(action)}, complete: instance.web.unblockUI });
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (val) {
|
||||
console.log("No debug handler for ", val);
|
||||
|
@ -1220,9 +1265,6 @@ instance.web.View = instance.web.Widget.extend({
|
|||
},
|
||||
do_search: function(view) {
|
||||
},
|
||||
on_sidebar_import: function() {
|
||||
new instance.web.DataImport(this, this.dataset).open();
|
||||
},
|
||||
on_sidebar_export: function() {
|
||||
new instance.web.DataExport(this, this.dataset).open();
|
||||
},
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
</form>
|
||||
<div class="oe_login_footer">
|
||||
<a href="#" class="oe_login_manage_db">Manage Databases</a> |
|
||||
<a href="http://www.openerp.com">Powered by <span>OpenERP</span></a>
|
||||
<a href="http://www.openerp.com" target="_blank">Powered by <span>OpenERP</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -404,13 +404,10 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="oe_leftbar" valign="top">
|
||||
<t t-js="d">
|
||||
d.url = '/' + (window.location.search || '');
|
||||
</t>
|
||||
<a t-att-href="url" class="oe_logo"><img t-att-src='_s + "/web/static/src/img/logo.png"'/></a>
|
||||
<a class="oe_logo" href="#"><img t-att-src='_s + "/web/static/src/img/logo.png"'/></a>
|
||||
<div class="oe_secondary_menus_container"/>
|
||||
<div class="oe_footer">
|
||||
Powered by <a href="http://www.openerp.com"><span>Open</span>ERP</a>
|
||||
Powered by <a href="http://www.openerp.com" target="_blank"><span>Open</span>ERP</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="oe_application">
|
||||
|
@ -429,10 +426,10 @@
|
|||
<t t-name="ViewManager">
|
||||
<div class="oe_view_manager">
|
||||
<table class="oe_view_manager_header">
|
||||
<col width="20%"/>
|
||||
<col width="25%"/>
|
||||
<col width="20%"/>
|
||||
<col width="35%"/>
|
||||
<col width="15%"/>
|
||||
<col width="30%"/>
|
||||
<tr class="oe_header_row oe_header_row_top">
|
||||
<td colspan="2">
|
||||
<h2 class="oe_view_title" t-if="widget.flags.display_title !== false">
|
||||
|
@ -479,6 +476,7 @@
|
|||
<option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>
|
||||
<option t-if="view_manager.active_view === 'form'" value="perm_read" data-views="form,page">View Log (perm_read)</option>
|
||||
<option t-if="view_manager.active_view === 'form'" value="toggle_layout_outline">Toggle Form Layout Outline</option>
|
||||
<option value="tests">JS Tests</option>
|
||||
<option value="fields">View Fields</option>
|
||||
<option value="fvg">Fields View Get</option>
|
||||
<option value="manage_filters">Manage Filters</option>
|
||||
|
@ -489,6 +487,7 @@
|
|||
<option t-if="view_manager.searchview" value="edit" data-model="ir.ui.view" t-att-data-id="view_manager.searchview.view_id">Edit SearchView</option>
|
||||
<option t-if="view_manager.action" value="edit" t-att-data-model="view_manager.action.type" t-att-data-id="view_manager.action.id">Edit Action</option>
|
||||
<option value="edit_workflow">Edit Workflow</option>
|
||||
<option value="print_workflow">Print Workflow</option>
|
||||
</t>
|
||||
</t>
|
||||
<t t-name="ViewManagerDebugViewLog">
|
||||
|
@ -654,9 +653,6 @@
|
|||
<button type="button" class="oe_button oe_list_add oe_highlight">
|
||||
<t t-esc="widget.options.addable"/>
|
||||
</button>
|
||||
<span class="oe_alternative" t-if="widget.options.import_enabled">
|
||||
<span class="oe_fade">or</span> <a href="#" class="oe_bold oe_list_button_import">Import</a>
|
||||
</span>
|
||||
</t>
|
||||
</div>
|
||||
<t t-name="ListView.pager">
|
||||
|
@ -700,9 +696,10 @@
|
|||
<t t-jquery="button.oe_list_add" t-operation="after">
|
||||
<button class="oe_button oe_list_save oe_highlight"
|
||||
type="button">Save</button>
|
||||
</t>
|
||||
<t t-jquery="a.oe_list_button_import" t-operation="after">
|
||||
<a href="#" class="oe_bold oe_list_discard">Discard</a>
|
||||
<span class="oe_alternative">
|
||||
<span class="oe_fade">or</span>
|
||||
<a href="#" class="oe_bold oe_list_discard">Discard</a>
|
||||
</span>
|
||||
</t>
|
||||
</t>
|
||||
<t t-extend="ListView.row">
|
||||
|
@ -1066,7 +1063,7 @@
|
|||
</span>
|
||||
</t>
|
||||
<t t-name="FieldStatus">
|
||||
<ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_steps_clickable' : 'oe_form_steps')" t-att-style="widget.node.attrs.style"/>
|
||||
<ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_status_clickable' : 'oe_form_status')" t-att-style="widget.node.attrs.style"/>
|
||||
</t>
|
||||
<t t-name="FieldStatus.content">
|
||||
<t t-foreach="widget.selection" t-as="i">
|
||||
|
|
|
@ -192,7 +192,7 @@ $(document).ready(function () {
|
|||
|
||||
var records = {};
|
||||
_.extend(instance.session.responses, {
|
||||
'/web/listview/load': function () {
|
||||
'/web/view/load': function () {
|
||||
return {result: {
|
||||
type: 'tree',
|
||||
fields: {
|
||||
|
@ -268,7 +268,7 @@ $(document).ready(function () {
|
|||
setup: function () {
|
||||
baseSetup();
|
||||
_.extend(instance.session.responses, {
|
||||
'/web/listview/load': function () {
|
||||
'/web/view/load': function () {
|
||||
return {result: {
|
||||
type: 'tree',
|
||||
fields: {
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
|
@ -1,81 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import mock
|
||||
import unittest2
|
||||
import web.controllers.main
|
||||
|
||||
class TestDataSetController(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.dataset = web.controllers.main.DataSet()
|
||||
self.request = mock.Mock()
|
||||
self.read = self.request.session.model().read
|
||||
self.search = self.request.session.model().search
|
||||
|
||||
@unittest2.skip
|
||||
def test_empty_find(self):
|
||||
self.search.return_value = []
|
||||
self.read.return_value = []
|
||||
|
||||
self.assertFalse(self.dataset.do_search_read(self.request, 'fake.model'))
|
||||
self.read.assert_called_once_with([], False, self.request.context)
|
||||
|
||||
@unittest2.skip
|
||||
def test_regular_find(self):
|
||||
self.search.return_value = [1, 2, 3]
|
||||
|
||||
self.dataset.do_search_read(self.request, 'fake.model')
|
||||
self.read.assert_called_once_with([1, 2, 3], False,
|
||||
self.request.context)
|
||||
|
||||
@unittest2.skip
|
||||
def test_ids_shortcut(self):
|
||||
self.search.return_value = [1, 2, 3]
|
||||
self.read.return_value = [
|
||||
{'id': 1, 'name': 'foo'},
|
||||
{'id': 2, 'name': 'bar'},
|
||||
{'id': 3, 'name': 'qux'}
|
||||
]
|
||||
|
||||
self.assertEqual(
|
||||
self.dataset.do_search_read(self.request, 'fake.model', ['id']),
|
||||
[{'id': 1}, {'id': 2}, {'id': 3}])
|
||||
self.assertFalse(self.read.called)
|
||||
|
||||
@unittest2.skip
|
||||
def test_get(self):
|
||||
self.read.return_value = [
|
||||
{'id': 1, 'name': 'baz'},
|
||||
{'id': 3, 'name': 'foo'},
|
||||
{'id': 2, 'name': 'bar'}
|
||||
]
|
||||
|
||||
result = self.dataset.do_get(
|
||||
self.request, 'fake.model', [3, 2, 1])
|
||||
self.read.assert_called_once_with(
|
||||
[3, 2, 1], False)
|
||||
self.assertFalse(self.search.called)
|
||||
|
||||
self.assertEqual(
|
||||
result,
|
||||
[
|
||||
{'id': 3, 'name': 'foo'},
|
||||
{'id': 2, 'name': 'bar'},
|
||||
{'id': 1, 'name': 'baz'}
|
||||
]
|
||||
)
|
||||
|
||||
def test_get_missing_result(self):
|
||||
self.read.return_value = [
|
||||
{'id': 1, 'name': 'baz'},
|
||||
{'id': 2, 'name': 'bar'}
|
||||
]
|
||||
|
||||
result = self.dataset.do_get(
|
||||
self.request, 'fake.model', [3, 2, 1])
|
||||
|
||||
self.assertEqual(
|
||||
result,
|
||||
[
|
||||
{'id': 2, 'name': 'bar'},
|
||||
{'id': 1, 'name': 'baz'}
|
||||
]
|
||||
)
|
|
@ -1,248 +0,0 @@
|
|||
import copy
|
||||
import xml.etree.ElementTree
|
||||
import mock
|
||||
|
||||
import unittest2
|
||||
import simplejson
|
||||
|
||||
import web.controllers.main
|
||||
from ..common import nonliterals, session as s
|
||||
|
||||
def field_attrs(fields_view_get, fieldname):
|
||||
(field,) = filter(lambda f: f['attrs'].get('name') == fieldname,
|
||||
fields_view_get['arch']['children'])
|
||||
return field['attrs']
|
||||
|
||||
#noinspection PyCompatibility
|
||||
class DomainsAndContextsTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.view = web.controllers.main.View()
|
||||
|
||||
def test_convert_literal_domain(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', domain=" [('somefield', '=', 3)] ")
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('domain'),
|
||||
[('somefield', '=', 3)])
|
||||
|
||||
def test_convert_complex_domain(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field',
|
||||
domain="[('account_id.type','in',['receivable','payable']),"
|
||||
"('reconcile_id','=',False),"
|
||||
"('reconcile_partial_id','=',False),"
|
||||
"('state', '=', 'valid')]"
|
||||
)
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('domain'),
|
||||
[('account_id.type', 'in', ['receivable', 'payable']),
|
||||
('reconcile_id', '=', False),
|
||||
('reconcile_partial_id', '=', False),
|
||||
('state', '=', 'valid')]
|
||||
)
|
||||
|
||||
def test_retrieve_nonliteral_domain(self):
|
||||
session = mock.Mock(spec=s.OpenERPSession)
|
||||
session.domains_store = {}
|
||||
domain_string = ("[('month','=',(datetime.date.today() - "
|
||||
"datetime.timedelta(365/12)).strftime('%%m'))]")
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', domain=domain_string)
|
||||
|
||||
self.view.parse_domains_and_contexts(e, session)
|
||||
|
||||
self.assertIsInstance(e.get('domain'), nonliterals.Domain)
|
||||
self.assertEqual(
|
||||
nonliterals.Domain(
|
||||
session, key=e.get('domain').key).get_domain_string(),
|
||||
domain_string)
|
||||
|
||||
def test_convert_literal_context(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', context=" {'some_prop': 3} ")
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('context'),
|
||||
{'some_prop': 3})
|
||||
|
||||
def test_convert_complex_context(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field',
|
||||
context="{'account_id.type': ['receivable','payable'],"
|
||||
"'reconcile_id': False,"
|
||||
"'reconcile_partial_id': False,"
|
||||
"'state': 'valid'}"
|
||||
)
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('context'),
|
||||
{'account_id.type': ['receivable', 'payable'],
|
||||
'reconcile_id': False,
|
||||
'reconcile_partial_id': False,
|
||||
'state': 'valid'}
|
||||
)
|
||||
|
||||
def test_retrieve_nonliteral_context(self):
|
||||
session = mock.Mock(spec=s.OpenERPSession)
|
||||
session.contexts_store = {}
|
||||
context_string = ("{'month': (datetime.date.today() - "
|
||||
"datetime.timedelta(365/12)).strftime('%%m')}")
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', context=context_string)
|
||||
|
||||
self.view.parse_domains_and_contexts(e, session)
|
||||
|
||||
self.assertIsInstance(e.get('context'), nonliterals.Context)
|
||||
self.assertEqual(
|
||||
nonliterals.Context(
|
||||
session, key=e.get('context').key).get_context_string(),
|
||||
context_string)
|
||||
|
||||
class AttrsNormalizationTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.view = web.controllers.main.View()
|
||||
|
||||
def test_identity(self):
|
||||
web_view = """
|
||||
<form string="Title">
|
||||
<group>
|
||||
<field name="some_field"/>
|
||||
<field name="some_other_field"/>
|
||||
</group>
|
||||
<field name="stuff"/>
|
||||
</form>
|
||||
"""
|
||||
|
||||
pristine = xml.etree.ElementTree.fromstring(web_view)
|
||||
transformed = self.view.transform_view(web_view, None)
|
||||
|
||||
self.assertEqual(
|
||||
xml.etree.ElementTree.tostring(transformed),
|
||||
xml.etree.ElementTree.tostring(pristine)
|
||||
)
|
||||
|
||||
@unittest2.skip
|
||||
def test_transform_states(self):
|
||||
element = xml.etree.ElementTree.Element(
|
||||
'field', states="open,closed")
|
||||
self.view.normalize_attrs(element, {})
|
||||
|
||||
self.assertIsNone(element.get('states'))
|
||||
self.assertEqual(
|
||||
simplejson.loads(element.get('attrs')),
|
||||
{'invisible': [['state', 'not in', ['open', 'closed']]]})
|
||||
|
||||
@unittest2.skip
|
||||
def test_transform_invisible(self):
|
||||
element = xml.etree.ElementTree.Element(
|
||||
'field', invisible="context.get('invisible_country', False)")
|
||||
|
||||
empty_context = copy.deepcopy(element)
|
||||
self.view.normalize_attrs(empty_context, {})
|
||||
self.assertEqual(empty_context.get('invisible'), None)
|
||||
|
||||
full_context = copy.deepcopy(element)
|
||||
self.view.normalize_attrs(full_context, {'invisible_country': True})
|
||||
self.assertEqual(full_context.get('invisible'), '1')
|
||||
|
||||
@unittest2.skip
|
||||
def test_transform_invisible_list_column(self):
|
||||
req = mock.Mock()
|
||||
req.context = {'set_editable':True, 'set_visible':True,
|
||||
'gtd_visible':True, 'user_invisible':True}
|
||||
req.session.evaluation_context = \
|
||||
s.OpenERPSession().evaluation_context
|
||||
req.session.model('project.task').fields_view_get.return_value = {
|
||||
'arch': '''
|
||||
<tree colors="grey:state in ('cancelled','done');blue:state == 'pending';red:date_deadline and (date_deadline<current_date) and (state in ('draft','pending','open'))" string="Tasks">
|
||||
<field name="sequence" invisible="not context.get('seq_visible', False)"/>
|
||||
<field name="user_id" invisible="context.get('user_invisible', False)"/>
|
||||
<field name="delegated_user_id" invisible="context.get('show_delegated', True)"/>
|
||||
<field name="total_hours" invisible="1"/>
|
||||
<field name="date_deadline" invisible="context.get('deadline_visible',True)"/>
|
||||
<field name="type_id" invisible="context.get('set_visible',False)"/>
|
||||
</tree>
|
||||
'''}
|
||||
parsed_view = web.controllers.main.View().fields_view_get(
|
||||
req, 'project.task', 42, 'tree')
|
||||
|
||||
self.assertTrue(field_attrs(parsed_view, 'sequence')['invisible'])
|
||||
self.assertTrue(field_attrs(parsed_view, 'user_id')['invisible'])
|
||||
self.assertTrue(
|
||||
field_attrs(parsed_view, 'delegated_user_id')['invisible'])
|
||||
self.assertTrue(field_attrs(parsed_view, 'total_hours')['invisible'])
|
||||
self.assertTrue(
|
||||
field_attrs(parsed_view, 'date_deadline')['invisible'])
|
||||
self.assertTrue(field_attrs(parsed_view, 'type_id')['invisible'])
|
||||
|
||||
class ListViewTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.view = web.controllers.main.ListView()
|
||||
self.request = mock.Mock()
|
||||
self.request.context = {'set_editable': True}
|
||||
|
||||
@unittest2.skip
|
||||
def test_no_editable_editable_context(self):
|
||||
self.request.session.model('fake').fields_view_get.return_value = \
|
||||
{'arch': '<tree><field name="foo"/></tree>'}
|
||||
view = self.view.fields_view_get(self.request, 'fake', False, False)
|
||||
|
||||
self.assertEqual(view['arch']['attrs']['editable'],
|
||||
'bottom')
|
||||
|
||||
@unittest2.skip
|
||||
def test_editable_top_editable_context(self):
|
||||
self.request.session.model('fake').fields_view_get.return_value = \
|
||||
{'arch': '<tree editable="top"><field name="foo"/></tree>'}
|
||||
view = self.view.fields_view_get(self.request, 'fake', False)
|
||||
|
||||
self.assertEqual(view['arch']['attrs']['editable'],
|
||||
'top')
|
||||
|
||||
@unittest2.skip
|
||||
def test_editable_bottom_editable_context(self):
|
||||
self.request.session.model('fake').fields_view_get.return_value = \
|
||||
{'arch': '<tree editable="bottom"><field name="foo"/></tree>'}
|
||||
view = self.view.fields_view_get(self.request, 'fake', False)
|
||||
|
||||
self.assertEqual(view['arch']['attrs']['editable'],
|
||||
'bottom')
|
||||
|
||||
def test_color_nocolor(self):
|
||||
self.assertEqual(
|
||||
self.view.process_colors(
|
||||
{'arch': {'attrs': {}, 'children': []}}, {}, {}),
|
||||
None)
|
||||
def test_color_literal(self):
|
||||
self.assertEqual(
|
||||
self.view.process_colors(
|
||||
{'arch': {'attrs': {'colors': 'black:1'}}, 'children': []},
|
||||
{}, {}),
|
||||
'black')
|
||||
def test_color_miss(self):
|
||||
self.assertEqual(
|
||||
self.view.process_colors(
|
||||
{'arch': {'attrs': {'colors': "grey:state in ('cancelled','done');blue:state in ('pending')"}},
|
||||
'children': []
|
||||
}, {'state': 'open'}, {}),
|
||||
None)
|
||||
def test_color_compute(self):
|
||||
self.assertEqual(
|
||||
self.view.process_colors(
|
||||
{'arch': {'attrs': {'colors': "grey:state in ('cancelled','done');blue:state in ('pending')"}},
|
||||
'children': []
|
||||
}, {'state': 'done'}, {}),
|
||||
'grey')
|
||||
def test_color_multiple(self):
|
||||
self.assertEqual(
|
||||
self.view.process_colors(
|
||||
{'arch': {'attrs': {'colors': "grey:state in ('cancelled','done');blue:state in ('done')"}},
|
||||
'children': []
|
||||
}, {'state': 'done'}, {}),
|
||||
'maroon')
|
|
@ -0,0 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from . import test_dataset, test_menu, test_serving_base, test_view
|
||||
|
||||
fast_suite = []
|
||||
checks = [
|
||||
test_dataset,
|
||||
test_menu,
|
||||
test_serving_base,
|
||||
test_view,
|
||||
]
|
|
@ -0,0 +1,41 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import mock
|
||||
import unittest2
|
||||
import web.controllers.main
|
||||
|
||||
class TestDataSetController(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.dataset = web.controllers.main.DataSet()
|
||||
self.request = mock.Mock()
|
||||
self.read = self.request.session.model().read
|
||||
self.search = self.request.session.model().search
|
||||
|
||||
def test_empty_find(self):
|
||||
self.search.return_value = []
|
||||
self.read.return_value = []
|
||||
|
||||
self.assertEqual(
|
||||
self.dataset.do_search_read(self.request, 'fake.model'),
|
||||
{'records': [], 'length': 0})
|
||||
self.read.assert_called_once_with(
|
||||
[], False, self.request.session.eval_context())
|
||||
|
||||
def test_regular_find(self):
|
||||
self.search.return_value = [1, 2, 3]
|
||||
|
||||
self.dataset.do_search_read(self.request, 'fake.model')
|
||||
self.read.assert_called_once_with(
|
||||
[1, 2, 3], False,self.request.session.eval_context())
|
||||
|
||||
def test_ids_shortcut(self):
|
||||
self.search.return_value = [1, 2, 3]
|
||||
self.read.return_value = [
|
||||
{'id': 1, 'name': 'foo'},
|
||||
{'id': 2, 'name': 'bar'},
|
||||
{'id': 3, 'name': 'qux'}
|
||||
]
|
||||
|
||||
self.assertEqual(
|
||||
self.dataset.do_search_read(self.request, 'fake.model', ['id']),
|
||||
{'records': [{'id': 1}, {'id': 2}, {'id': 3}], 'length': 3})
|
||||
self.assertFalse(self.read.called)
|
|
@ -1,4 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import collections
|
||||
import mock
|
||||
import unittest2
|
||||
|
||||
|
@ -13,42 +14,56 @@ class Placeholder(object):
|
|||
class LoadTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.menu = main.Menu()
|
||||
self.menus_mock = mock.Mock()
|
||||
self.request = Placeholder(session=OpenERPSession())
|
||||
self.request = mock.Mock()
|
||||
|
||||
# Have self.request.session.model() return a different mock object for
|
||||
# each model (but always the same mock for a given model name)
|
||||
models = collections.defaultdict(mock.Mock)
|
||||
model = self.request.session.model.side_effect = \
|
||||
lambda model_name: models[model_name]
|
||||
|
||||
self.MockMenus = model('ir.ui.menu')
|
||||
# Mock the absence of custom menu
|
||||
model('res.users').read.return_value = [{
|
||||
'menu_id': False
|
||||
}]
|
||||
|
||||
def tearDown(self):
|
||||
del self.request
|
||||
del self.menus_mock
|
||||
del self.MockMenus
|
||||
del self.menu
|
||||
|
||||
@unittest2.skip
|
||||
def test_empty(self):
|
||||
self.menus_mock.search = mock.Mock(return_value=[])
|
||||
self.menus_mock.read = mock.Mock(return_value=[])
|
||||
self.MockMenus.search.return_value = []
|
||||
self.MockMenus.read.return_value = []
|
||||
|
||||
root = self.menu.do_load(self.request)
|
||||
|
||||
self.menus_mock.search.assert_called_with([])
|
||||
self.menus_mock.read.assert_called_with(
|
||||
[], ['name', 'sequence', 'parent_id'])
|
||||
self.MockMenus.search.assert_called_with(
|
||||
[], 0, False, False, self.request.session.eval_context())
|
||||
self.MockMenus.read.assert_called_with(
|
||||
[], ['name', 'sequence', 'parent_id',
|
||||
'action', 'needaction_enabled', 'needaction_counter'],
|
||||
self.request.session.eval_context())
|
||||
|
||||
self.assertListEqual(
|
||||
root['children'],
|
||||
[])
|
||||
|
||||
@unittest2.skip
|
||||
def test_applications_sort(self):
|
||||
self.menus_mock.search = mock.Mock(return_value=[1, 2, 3])
|
||||
self.menus_mock.read = mock.Mock(return_value=[
|
||||
{'id': 2, 'sequence': 3, 'parent_id': False},
|
||||
{'id': 3, 'sequence': 2, 'parent_id': False},
|
||||
self.MockMenus.search.return_value = [1, 2, 3]
|
||||
self.MockMenus.read.side_effect = lambda *args: [
|
||||
{'id': 1, 'sequence': 1, 'parent_id': False},
|
||||
])
|
||||
{'id': 3, 'sequence': 2, 'parent_id': False},
|
||||
{'id': 2, 'sequence': 3, 'parent_id': False},
|
||||
]
|
||||
|
||||
root = self.menu.do_load(self.request)
|
||||
|
||||
self.menus_mock.read.assert_called_with(
|
||||
[1, 2, 3], ['name', 'sequence', 'parent_id'])
|
||||
self.MockMenus.read.assert_called_with(
|
||||
[1, 2, 3], ['name', 'sequence', 'parent_id',
|
||||
'action', 'needaction_enabled', 'needaction_counter'],
|
||||
self.request.session.eval_context())
|
||||
|
||||
self.assertEqual(
|
||||
root['children'],
|
||||
|
@ -63,15 +78,18 @@ class LoadTest(unittest2.TestCase):
|
|||
'parent_id': False, 'children': []
|
||||
}])
|
||||
|
||||
@unittest2.skip
|
||||
def test_deep(self):
|
||||
self.menus_mock.search = mock.Mock(return_value=[1, 2, 3, 4])
|
||||
self.menus_mock.read = mock.Mock(return_value=[
|
||||
{'id': 1, 'sequence': 1, 'parent_id': False},
|
||||
{'id': 2, 'sequence': 2, 'parent_id': [1, '']},
|
||||
{'id': 3, 'sequence': 1, 'parent_id': [2, '']},
|
||||
{'id': 4, 'sequence': 2, 'parent_id': [2, '']},
|
||||
])
|
||||
self.MockMenus.search.side_effect = lambda domain, *args: (
|
||||
[1] if domain == [('parent_id', '=', False)] else [1, 2, 3, 4])
|
||||
|
||||
root = {'id': 1, 'sequence': 1, 'parent_id': False}
|
||||
self.MockMenus.read.side_effect = lambda ids, *args: (
|
||||
[root] if ids == [1] else [
|
||||
{'id': 1, 'sequence': 1, 'parent_id': False},
|
||||
{'id': 2, 'sequence': 2, 'parent_id': [1, '']},
|
||||
{'id': 3, 'sequence': 1, 'parent_id': [2, '']},
|
||||
{'id': 4, 'sequence': 2, 'parent_id': [2, '']},
|
||||
])
|
||||
|
||||
root = self.menu.do_load(self.request)
|
||||
|
||||
|
@ -117,7 +135,6 @@ class ActionMungerTest(unittest2.TestCase):
|
|||
|
||||
self.assertEqual(changed, action)
|
||||
|
||||
@unittest2.skip
|
||||
def test_list_view(self):
|
||||
action = {
|
||||
"views": [[False, "tree"], [False, "form"],
|
||||
|
@ -135,7 +152,6 @@ class ActionMungerTest(unittest2.TestCase):
|
|||
"view_mode": "list,form,calendar"
|
||||
})
|
||||
|
||||
@unittest2.skip
|
||||
def test_redundant_views(self):
|
||||
|
||||
action = {
|
|
@ -3,7 +3,7 @@
|
|||
import random
|
||||
import unittest2
|
||||
|
||||
from ..controllers.main import topological_sort
|
||||
from ..controllers.main import module_topological_sort as sort
|
||||
|
||||
def sample(population):
|
||||
return random.sample(
|
||||
|
@ -22,7 +22,7 @@ class TestModulesLoading(unittest2.TestCase):
|
|||
ms = dict(modules)
|
||||
|
||||
seen = set()
|
||||
sorted_modules = topological_sort(ms)
|
||||
sorted_modules = sort(ms)
|
||||
for module in sorted_modules:
|
||||
deps = ms[module]
|
||||
self.assertGreaterEqual(
|
|
@ -0,0 +1,128 @@
|
|||
import copy
|
||||
import xml.etree.ElementTree
|
||||
import mock
|
||||
|
||||
import unittest2
|
||||
import simplejson
|
||||
|
||||
import web.controllers.main
|
||||
from ..common import nonliterals, session as s
|
||||
|
||||
def field_attrs(fields_view_get, fieldname):
|
||||
(field,) = filter(lambda f: f['attrs'].get('name') == fieldname,
|
||||
fields_view_get['arch']['children'])
|
||||
return field['attrs']
|
||||
|
||||
#noinspection PyCompatibility
|
||||
class DomainsAndContextsTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.view = web.controllers.main.View()
|
||||
|
||||
def test_convert_literal_domain(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', domain=" [('somefield', '=', 3)] ")
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('domain'),
|
||||
[('somefield', '=', 3)])
|
||||
|
||||
def test_convert_complex_domain(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field',
|
||||
domain="[('account_id.type','in',['receivable','payable']),"
|
||||
"('reconcile_id','=',False),"
|
||||
"('reconcile_partial_id','=',False),"
|
||||
"('state', '=', 'valid')]"
|
||||
)
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('domain'),
|
||||
[('account_id.type', 'in', ['receivable', 'payable']),
|
||||
('reconcile_id', '=', False),
|
||||
('reconcile_partial_id', '=', False),
|
||||
('state', '=', 'valid')]
|
||||
)
|
||||
|
||||
def test_retrieve_nonliteral_domain(self):
|
||||
session = mock.Mock(spec=s.OpenERPSession)
|
||||
session.domains_store = {}
|
||||
domain_string = ("[('month','=',(datetime.date.today() - "
|
||||
"datetime.timedelta(365/12)).strftime('%%m'))]")
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', domain=domain_string)
|
||||
|
||||
self.view.parse_domains_and_contexts(e, session)
|
||||
|
||||
self.assertIsInstance(e.get('domain'), nonliterals.Domain)
|
||||
self.assertEqual(
|
||||
nonliterals.Domain(
|
||||
session, key=e.get('domain').key).get_domain_string(),
|
||||
domain_string)
|
||||
|
||||
def test_convert_literal_context(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', context=" {'some_prop': 3} ")
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('context'),
|
||||
{'some_prop': 3})
|
||||
|
||||
def test_convert_complex_context(self):
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field',
|
||||
context="{'account_id.type': ['receivable','payable'],"
|
||||
"'reconcile_id': False,"
|
||||
"'reconcile_partial_id': False,"
|
||||
"'state': 'valid'}"
|
||||
)
|
||||
self.view.parse_domains_and_contexts(e, None)
|
||||
|
||||
self.assertEqual(
|
||||
e.get('context'),
|
||||
{'account_id.type': ['receivable', 'payable'],
|
||||
'reconcile_id': False,
|
||||
'reconcile_partial_id': False,
|
||||
'state': 'valid'}
|
||||
)
|
||||
|
||||
def test_retrieve_nonliteral_context(self):
|
||||
session = mock.Mock(spec=s.OpenERPSession)
|
||||
session.contexts_store = {}
|
||||
context_string = ("{'month': (datetime.date.today() - "
|
||||
"datetime.timedelta(365/12)).strftime('%%m')}")
|
||||
e = xml.etree.ElementTree.Element(
|
||||
'field', context=context_string)
|
||||
|
||||
self.view.parse_domains_and_contexts(e, session)
|
||||
|
||||
self.assertIsInstance(e.get('context'), nonliterals.Context)
|
||||
self.assertEqual(
|
||||
nonliterals.Context(
|
||||
session, key=e.get('context').key).get_context_string(),
|
||||
context_string)
|
||||
|
||||
class AttrsNormalizationTest(unittest2.TestCase):
|
||||
def setUp(self):
|
||||
self.view = web.controllers.main.View()
|
||||
|
||||
def test_identity(self):
|
||||
web_view = """
|
||||
<form string="Title">
|
||||
<group>
|
||||
<field name="some_field"/>
|
||||
<field name="some_other_field"/>
|
||||
</group>
|
||||
<field name="stuff"/>
|
||||
</form>
|
||||
"""
|
||||
|
||||
pristine = xml.etree.ElementTree.fromstring(web_view)
|
||||
transformed = self.view.transform_view(web_view, None)
|
||||
|
||||
self.assertEqual(
|
||||
xml.etree.ElementTree.tostring(transformed),
|
||||
xml.etree.ElementTree.tostring(pristine)
|
||||
)
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. openerp-web
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
@ -25,114 +25,114 @@ msgstr "Calendar"
|
|||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:70
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
msgstr "Filter"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:144
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
msgstr "Today"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:145
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
msgstr "Day"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:146
|
||||
msgid "Week"
|
||||
msgstr ""
|
||||
msgstr "Week"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:147
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
msgstr "Month"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:148
|
||||
msgid "New event"
|
||||
msgstr ""
|
||||
msgstr "New event"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:149
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
msgstr "Save"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:150
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Cancel"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:151
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
msgstr "Details"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:152
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Edit"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:153
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
msgstr "Delete"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:155
|
||||
msgid "Event will be deleted permanently, are you sure?"
|
||||
msgstr ""
|
||||
msgstr "Event will be permanently deleted, are you sure?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:156
|
||||
#: addons/web_calendar/static/src/js/calendar.js:169
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "Description"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:157
|
||||
msgid "Time period"
|
||||
msgstr ""
|
||||
msgstr "Time period"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:158
|
||||
msgid "Full day"
|
||||
msgstr ""
|
||||
msgstr "Full day"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:161
|
||||
msgid "Do you want to edit the whole set of repeated events?"
|
||||
msgstr ""
|
||||
msgstr "Do you want to edit the whole set of repeated events?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:162
|
||||
msgid "Repeat event"
|
||||
msgstr ""
|
||||
msgstr "Repeat event"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:163
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
msgstr "Disabled"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:164
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
msgstr "Enabled"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:167
|
||||
#: addons/web_calendar/static/src/js/calendar.js:175
|
||||
msgid "Agenda"
|
||||
msgstr ""
|
||||
msgstr "Agenda"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:168
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "Date"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:172
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
msgstr "Year"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -15,8 +15,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
"Language: es\n"
|
||||
|
||||
#. openerp-web
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
# Hungarian translation for openerp-web
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
|
||||
"PO-Revision-Date: 2012-09-06 08:35+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hungarian <hu@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: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
msgid "Calendar"
|
||||
msgstr "Naptár"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:70
|
||||
msgid "Filter"
|
||||
msgstr "Szűrő"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:144
|
||||
msgid "Today"
|
||||
msgstr "Ma"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:145
|
||||
msgid "Day"
|
||||
msgstr "Nap"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:146
|
||||
msgid "Week"
|
||||
msgstr "Hét"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:147
|
||||
msgid "Month"
|
||||
msgstr "Hó"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:148
|
||||
msgid "New event"
|
||||
msgstr "Új esemény"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:149
|
||||
msgid "Save"
|
||||
msgstr "Mentés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:150
|
||||
msgid "Cancel"
|
||||
msgstr "Mégsem"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:151
|
||||
msgid "Details"
|
||||
msgstr "Részletek"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:152
|
||||
msgid "Edit"
|
||||
msgstr "Szerkesztés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:153
|
||||
msgid "Delete"
|
||||
msgstr "Törlés"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:155
|
||||
msgid "Event will be deleted permanently, are you sure?"
|
||||
msgstr "Az esemény véglegesen törlődik, biztos benne?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:156
|
||||
#: addons/web_calendar/static/src/js/calendar.js:169
|
||||
msgid "Description"
|
||||
msgstr "Leírás"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:157
|
||||
msgid "Time period"
|
||||
msgstr "Időintervallum"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:158
|
||||
msgid "Full day"
|
||||
msgstr "Egész nap"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:161
|
||||
msgid "Do you want to edit the whole set of repeated events?"
|
||||
msgstr "Az összes ismétlődő eseményt szerkeszteni akarja?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:162
|
||||
msgid "Repeat event"
|
||||
msgstr "Esemény ismétlése"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:163
|
||||
msgid "Disabled"
|
||||
msgstr "Tiltva"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:164
|
||||
msgid "Enabled"
|
||||
msgstr "Engedélyezve"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:167
|
||||
#: addons/web_calendar/static/src/js/calendar.js:175
|
||||
msgid "Agenda"
|
||||
msgstr "Napirend"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:168
|
||||
msgid "Date"
|
||||
msgstr "Dátum"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:172
|
||||
msgid "Year"
|
||||
msgstr "Év"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:6
|
||||
msgid " "
|
||||
msgstr " "
|
||||
|
||||
#~ msgid "Navigator"
|
||||
#~ msgstr "Navigátor"
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-05 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15901)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-14 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 15944)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue