From 182b9a7182400fe43ec966f74563a5acfceda49f Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Tue, 24 Jan 2012 16:34:19 +0100
Subject: [PATCH 001/154] [IMP] document_webdav.webdav_server: remove the so
called `uniform log handling` of the HttpLogHandler class.
bzr revid: vmt@openerp.com-20120124153419-w6oed6z1ui8mouo7
---
addons/document_webdav/webdav_server.py | 37 +++++++++++--------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py
index 81435a72137..ac7f87933ef 100644
--- a/addons/document_webdav/webdav_server.py
+++ b/addons/document_webdav/webdav_server.py
@@ -55,6 +55,8 @@ from DAV.propfind import PROPFIND
from xml.dom import minidom
from redirect import RedirectHTTPHandler
+_logger = logging.getLogger(__name__)
+
khtml_re = re.compile(r' KHTML/([0-9\.]+) ')
def OpenDAVConfig(**kw):
@@ -73,7 +75,6 @@ def OpenDAVConfig(**kw):
class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
verbose = False
- _logger = logging.getLogger('webdav')
protocol_version = 'HTTP/1.1'
_HTTP_OPTIONS= { 'DAV' : ['1', '2'],
'Allow' : [ 'GET', 'HEAD', 'COPY', 'MOVE', 'POST', 'PUT',
@@ -85,7 +86,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
return False
def _log(self, message):
- self._logger.debug(message)
+ _logger.debug(message)
def handle(self):
self._init_buffer()
@@ -106,7 +107,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
if hasattr(self.request, 'getsockname'):
addr, port = self.request.getsockname()
except Exception, e:
- self.log_error("Cannot calculate own address: %s" , e)
+ _logger.warning("Cannot calculate own address: %s", e)
# Too early here to use self.headers
self.baseuri = "%s://%s:%d/"% (server_proto, addr, port)
self.IFACE_CLASS = openerp_dav_handler(self, self.verbose)
@@ -126,12 +127,6 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
def get_davpath(self):
return self.davpath
- def log_message(self, format, *args):
- self._logger.log(netsvc.logging.DEBUG_RPC,format % args)
-
- def log_error(self, format, *args):
- self._logger.warning(format % args)
-
def _prep_OPTIONS(self, opts):
ret = opts
dc=self.IFACE_CLASS
@@ -142,7 +137,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
except DAV_Error, (ec,dd):
pass
except Exception,e:
- self.log_error("Error at options: %s", str(e))
+ _logger.warning("Error at options: %s", str(e))
raise
return ret
@@ -245,7 +240,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
try:
location = dc.put(uri, body, ct)
except DAV_Error, (ec,dd):
- self.log_error("Cannot PUT to %s: %s", uri, dd)
+ _logger.warning("Cannot PUT to %s: %s", uri, dd)
return self.send_status(ec)
headers = {}
@@ -284,7 +279,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
""" Unlocks given resource """
dc = self.IFACE_CLASS
- self.log_message('UNLOCKing resource %s' % self.headers)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'UNLOCKing resource %s' % self.headers)
uri = urlparse.urljoin(self.get_baseuri(dc), self.path)
uri = urllib.unquote(uri)
@@ -318,7 +313,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
dc = self.IFACE_CLASS
lock_data = {}
- self.log_message('LOCKing resource %s' % self.headers)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'LOCKing resource %s' % self.headers)
body = None
if self.headers.has_key('Content-Length'):
@@ -329,7 +324,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
uri = urlparse.urljoin(self.get_baseuri(dc), self.path)
uri = urllib.unquote(uri)
- self.log_message('do_LOCK: uri = %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'do_LOCK: uri = %s' % uri)
ifheader = self.headers.get('If')
@@ -477,7 +472,7 @@ class dummy_dav_interface(object):
uri2 = uri.split('/')
if len(uri2) < 3:
return True
- logging.getLogger('webdav').debug("Requested uri: %s", uri)
+ _logger.debug("Requested uri: %s", uri)
return None # no
def is_collection(self, uri):
@@ -532,7 +527,7 @@ class DAVStaticHandler(http_server.StaticHTTPHandler):
except DAV_Error, (ec,dd):
return self.send_error(ec,dd)
except Exception:
- self.log_exception("Cannot PROPFIND")
+ _logger.exception("Cannot PROPFIND")
raise
# work around MSIE DAV bug for creation and modified date
@@ -573,7 +568,7 @@ try:
conf = OpenDAVConfig(**_dc)
handler._config = conf
reg_http_service(directory, DAVHandler, DAVAuthProvider)
- logging.getLogger('webdav').info("WebDAV service registered at path: %s/ "% directory)
+ _logger.info("WebDAV service registered at path: %s/ ", directory)
if not (config.get_misc('webdav', 'no_root_hack', False)):
# Now, replace the static http handler with the dav-enabled one.
@@ -595,7 +590,7 @@ try:
reg_http_service('/', DAVStaticHandler)
except Exception, e:
- logging.getLogger('webdav').error('Cannot launch webdav: %s' % e)
+ _logger.error('Cannot launch webdav: %s', e)
def init_well_known():
@@ -639,9 +634,9 @@ def init_principals_redirect():
if dbname:
PrincipalsRedirect.redirect_paths[''] = '/webdav/%s/principals' % dbname
reg_http_service('/principals', PrincipalsRedirect)
- logging.getLogger("web-services").info(
- "Registered HTTP redirect handler for /principals to the %s db.",
- dbname)
+ _logger.info(
+ "Registered HTTP redirect handler for /principals to the %s db.",
+ dbname)
init_principals_redirect()
From 85f0ad1ea87f017a375d187d6d92cbdfffba61c7 Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Tue, 24 Jan 2012 16:57:59 +0100
Subject: [PATCH 002/154] [IMP] document_webdav.webdav_server: remove the so
called `uniform log handling` of the HttpLogHandler class.
bzr revid: vmt@openerp.com-20120124155759-6g40dmhz6ywk9xe9
---
addons/document_webdav/dav_fs.py | 57 +++++++++++++++---------------
addons/document_webdav/redirect.py | 10 +++---
2 files changed, 34 insertions(+), 33 deletions(-)
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
index 772b7600f20..a292019eeab 100644
--- a/addons/document_webdav/dav_fs.py
+++ b/addons/document_webdav/dav_fs.py
@@ -175,7 +175,7 @@ class openerp_dav_handler(dav_interface):
def get_propnames(self, uri):
props = self.PROPS
- self.parent.log_message('get propnames: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get propnames: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
@@ -203,21 +203,21 @@ class openerp_dav_handler(dav_interface):
except NotImplementedError, e:
if cr: cr.close()
import traceback
- self.parent.log_error("Cannot %s: %s", opname, str(e))
- self.parent.log_message("Exc: %s",traceback.format_exc())
+ _logger.warning("Cannot %s: %s", opname, str(e))
+ _logger.log(netsvc.logging.DEBUG_RPC, "Exc: %s" % traceback.format_exc())
# see par 9.3.1 of rfc
raise DAV_Error(403, str(e) or 'Not supported at this path')
except EnvironmentError, err:
if cr: cr.close()
import traceback
- self.parent.log_error("Cannot %s: %s", opname, err.strerror)
- self.parent.log_message("Exc: %s",traceback.format_exc())
+ _logger.warning("Cannot %s: %s", opname, err.strerror)
+ _logger.log(netsvc.logging.DEBUG_RPC, "Exc: %s" % traceback.format_exc())
raise default_exc(err.strerror)
except Exception, e:
import traceback
if cr: cr.close()
- self.parent.log_error("Cannot %s: %s", opname, str(e))
- self.parent.log_message("Exc: %s",traceback.format_exc())
+ _logger.warning("Cannot %s: %s", opname, str(e))
+ _logger.log(netsvc.logging.DEBUG_RPC, "Exc: %s" % traceback.format_exc())
raise default_exc("Operation failed")
def _get_dav_lockdiscovery(self, uri):
@@ -245,7 +245,7 @@ class openerp_dav_handler(dav_interface):
def prep_http_options(self, uri, opts):
"""see HttpOptions._prep_OPTIONS """
- self.parent.log_message('get options: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get options: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri, allow_last=True)
if not dbname:
@@ -268,7 +268,7 @@ class openerp_dav_handler(dav_interface):
ret[key] = []
ret[key].extend(val)
- self.parent.log_message('options: %s' % ret)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'options: %s' % ret)
else:
ret = opts
cr.close()
@@ -369,7 +369,7 @@ class openerp_dav_handler(dav_interface):
if res and len(res):
self.db_name_list.append(db_name)
except Exception, e:
- self.parent.log_error("Exception in db list: %s" % e)
+ _logger.warning("Exception in db list: %s", e)
finally:
if cr:
cr.close()
@@ -377,7 +377,7 @@ class openerp_dav_handler(dav_interface):
def get_childs(self,uri, filters=None):
""" return the child objects as self.baseuris for the given URI """
- self.parent.log_message('get children: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get children: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri, allow_last=True)
if not dbname:
@@ -394,7 +394,7 @@ class openerp_dav_handler(dav_interface):
fp = node.full_path()
if fp and len(fp):
fp = '/'.join(fp)
- self.parent.log_message('children for: %s' % fp)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'children for: %s' % fp)
else:
fp = None
domain = None
@@ -420,13 +420,13 @@ class openerp_dav_handler(dav_interface):
if turi.startswith(ul):
result.append( turi[len(self.parent.davpath):])
else:
- self.parent.log_error("ignore href %s because it is not under request path %s", turi, ul)
+ _logger.warning("ignore href %s because it is not under request path %s", turi, ul)
return result
# We don't want to continue with the children found below
# Note the exceptions and that 'finally' will close the
# cursor
for d in node.children(cr, domain):
- self.parent.log_message('child: %s' % d.path)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'child: %s' % d.path)
if fp:
result.append( self.urijoin(dbname,fp,d.path) )
else:
@@ -434,7 +434,7 @@ class openerp_dav_handler(dav_interface):
except DAV_Error:
raise
except Exception, e:
- self.parent.log_error("cannot get_children: "+ str(e))
+ _logger.warning("cannot get_children: "+ str(e))
raise
finally:
if cr: cr.close()
@@ -479,7 +479,7 @@ class openerp_dav_handler(dav_interface):
return pool.get('document.directory').get_object(cr, uid, uri, context=context)
def get_data(self,uri, rrange=None):
- self.parent.log_message('GET: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'GET: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
try:
if not dbname:
@@ -499,7 +499,7 @@ class openerp_dav_handler(dav_interface):
start = 0
assert start >= 0
if end and end < start:
- self.parent.log_error("Invalid range for data: %s-%s" %(start, end))
+ _logger.warning("Invalid range for data: %s-%s" %(start, end))
raise DAV_Error(416, "Invalid range for data")
if end:
if end >= res.size():
@@ -514,12 +514,12 @@ class openerp_dav_handler(dav_interface):
# says we'd better just return 200 OK with empty data
return ''
except IndexError,e :
- self.parent.log_error("GET IndexError: %s", str(e))
+ _logger.warning("GET IndexError: %s", str(e))
raise DAV_NotFound2(uri2)
except Exception,e:
import traceback
- self.parent.log_error("GET exception: %s",str(e))
- self.parent.log_message("Exc: %s", traceback.format_exc())
+ _logger.warning("GET exception: %s",str(e))
+ _logger.log(netsvc.logging.DEBUG_RPC, "Exc: %s" % traceback.format_exc())
raise DAV_Error, 409
return res
finally:
@@ -528,7 +528,7 @@ class openerp_dav_handler(dav_interface):
@memoize(CACHE_SIZE)
def _get_dav_resourcetype(self, uri):
""" return type of object """
- self.parent.log_message('get RT: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get RT: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
try:
if not dbname:
@@ -546,7 +546,7 @@ class openerp_dav_handler(dav_interface):
if cr: cr.close()
def _get_dav_displayname(self,uri):
- self.parent.log_message('get DN: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get DN: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
@@ -565,7 +565,7 @@ class openerp_dav_handler(dav_interface):
@memoize(CACHE_SIZE)
def _get_dav_getcontentlength(self, uri):
""" return the content length of an object """
- self.parent.log_message('get length: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get length: %s' % uri)
result = 0
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
@@ -582,7 +582,7 @@ class openerp_dav_handler(dav_interface):
@memoize(CACHE_SIZE)
def _get_dav_getetag(self,uri):
""" return the ETag of an object """
- self.parent.log_message('get etag: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get etag: %s' % uri)
result = 0
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
@@ -638,7 +638,7 @@ class openerp_dav_handler(dav_interface):
@memoize(CACHE_SIZE)
def _get_dav_getcontenttype(self,uri):
- self.parent.log_message('get contenttype: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'get contenttype: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
@@ -657,7 +657,7 @@ class openerp_dav_handler(dav_interface):
""" create a new collection
see par. 9.3 of rfc4918
"""
- self.parent.log_message('MKCOL: %s' % uri)
+ _logger.log(netsvc.logging.DEBUG_RPC, 'MKCOL: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not uri2[-1]:
if cr: cr.close()
@@ -681,7 +681,8 @@ class openerp_dav_handler(dav_interface):
def put(self, uri, data, content_type=None):
""" put the object into the filesystem """
- self.parent.log_message('Putting %s (%d), %s'%( misc.ustr(uri), data and len(data) or 0, content_type))
+ _logger.log(netsvc.logging.DEBUG_RPC, 'Putting %s (%d), %s' % \
+ (misc.ustr(uri), data and len(data) or 0, content_type))
cr, uid, pool,dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
@@ -723,7 +724,7 @@ class openerp_dav_handler(dav_interface):
try:
etag = str(newchild.get_etag(cr))
except Exception, e:
- self.parent.log_error("Cannot get etag for node: %s" % e)
+ _logger.warning("Cannot get etag for node: %s", e)
ret = (str(hurl), etag)
else:
self._try_function(node.set_data, (cr, data), "save %s" % objname, cr=cr)
diff --git a/addons/document_webdav/redirect.py b/addons/document_webdav/redirect.py
index 7bc0883f9e8..7d04ffb51f5 100644
--- a/addons/document_webdav/redirect.py
+++ b/addons/document_webdav/redirect.py
@@ -23,10 +23,10 @@
import logging
import urlparse
from service.websrv_lib import FixSendError, HTTPHandler, HttpOptions
-from service.http_server import HttpLogHandler
-class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler):
- _logger = logging.getLogger('httpd.well-known')
+_logger = logging.getLogger(__name__)
+
+class RedirectHTTPHandler(FixSendError, HttpOptions, HTTPHandler):
_HTTP_OPTIONS = { 'Allow': ['OPTIONS', 'GET', 'HEAD', 'PROPFIND'] }
redirect_paths = {}
@@ -62,7 +62,7 @@ class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler
try:
addr, port = self.request.getsockname()
except Exception, e:
- self.log_error("Cannot calculate own address:" , e)
+ _logger.error("Cannot calculate own address:", e)
if self.headers.has_key('Host'):
uparts = list(urlparse.urlparse("%s://%s:%d"% (server_proto, addr,port)))
@@ -80,7 +80,7 @@ class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler
self.send_header("Content-Length", 0)
self.end_headers()
# Do we need a Cache-content: header here?
- self._logger.debug("redirecting %s to %s", self.path, redir_path)
+ _logger.debug("redirecting %s to %s", self.path, redir_path)
return None
def do_PROPFIND(self):
From 7c4e08eb46a20e37ac490e6c2d4b916d56b8f63b Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Tue, 24 Jan 2012 17:28:50 +0100
Subject: [PATCH 003/154] [IMP] account,document: changed from class __logger
to module _logger.
bzr revid: vmt@openerp.com-20120124162850-qr1or3piq9f91c7u
---
addons/account/installer.py | 5 +++--
addons/document/content_index.py | 16 ++++++++--------
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/addons/account/installer.py b/addons/account/installer.py
index d1b19ef4319..a9122adf488 100644
--- a/addons/account/installer.py
+++ b/addons/account/installer.py
@@ -31,10 +31,11 @@ from osv import fields, osv
import netsvc
import tools
+_logger = logging.getLogger(__name__)
+
class account_installer(osv.osv_memory):
_name = 'account.installer'
_inherit = 'res.config.installer'
- __logger = logging.getLogger(_name)
def _get_charts(self, cr, uid, context=None):
modules = self.pool.get('ir.module.module')
@@ -142,7 +143,7 @@ class account_installer(osv.osv_memory):
cr, uid, ids, context=context)
chart = self.read(cr, uid, ids, ['charts'],
context=context)[0]['charts']
- self.__logger.debug('Installing chart of accounts %s', chart)
+ _logger.debug('Installing chart of accounts %s', chart)
return modules | set([chart])
account_installer()
diff --git a/addons/document/content_index.py b/addons/document/content_index.py
index 64b480ee736..3cb408428c9 100644
--- a/addons/document/content_index.py
+++ b/addons/document/content_index.py
@@ -23,10 +23,11 @@ import os
import tempfile
from subprocess import Popen, PIPE
+_logger = logging.getLogger(__name__)
+
class NhException(Exception):
pass
-
class indexer(object):
""" An indexer knows how to parse the content of some file.
@@ -116,7 +117,6 @@ def mime_match(mime, mdict):
return (None, None)
class contentIndex(object):
- __logger = logging.getLogger('addons.document.content_index')
def __init__(self):
self.mimes = {}
self.exts = {}
@@ -132,7 +132,7 @@ class contentIndex(object):
f = True
if f:
- self.__logger.debug('Register content indexer: %r', obj)
+ _logger.debug('Register content indexer: %r', obj)
if not f:
raise Exception("Your indexer should at least suport a mimetype or extension")
@@ -169,22 +169,22 @@ class contentIndex(object):
(result, _) = pop.communicate()
mime2 = result.split(';')[0]
- self.__logger.debug('File gave us: %s', mime2)
+ _logger.debug('File gave us: %s', mime2)
# Note that the temporary file still exists now.
mime,fobj = mime_match(mime2, self.mimes)
if not mime:
mime = mime2
except Exception:
- self.__logger.exception('Cannot determine mime type')
+ _logger.exception('Cannot determine mime type')
try:
if fobj:
res = (mime, fobj.indexContent(content,filename,fname or realfname) )
else:
- self.__logger.debug("Have no object, return (%s, None)", mime)
+ _logger.debug("Have no object, return (%s, None)", mime)
res = (mime, None )
except Exception:
- self.__logger.exception("Could not index file %s (%s)",
+ _logger.exception("Could not index file %s (%s)",
filename, fname or realfname)
res = None
@@ -193,7 +193,7 @@ class contentIndex(object):
try:
os.unlink(fname)
except Exception:
- self.__logger.exception("Could not unlink %s", fname)
+ _logger.exception("Could not unlink %s", fname)
return res
From 57b41aae43f0f2626f08e3e212aad4bab0394d42 Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Wed, 25 Jan 2012 10:44:51 +0100
Subject: [PATCH 004/154] [IMP] logging: use logging instead of netsvc, use
module __name__ instead of something else.
bzr revid: vmt@openerp.com-20120125094451-a6mejmnaxa2vp1bu
---
addons/account/account.py | 20 +-
.../report/bank_statement_balance_report.py | 4 -
addons/account_coda/account_coda.py | 5 +-
.../wizard/account_coda_import.py | 26 +-
addons/account_payment/account_payment.py | 7 +-
.../wizard/wizard_tech_guide_rst.py | 25 +-
.../base_module_quality.py | 21 +-
addons/document/document.py | 6 +-
addons/document/document_directory.py | 7 +-
addons/document/document_storage.py | 63 ++-
addons/document/nodes.py | 24 +-
addons/document/std_index.py | 7 +-
addons/document_ftp/ftpserver/__init__.py | 10 +-
addons/edi/__init__.py | 2 +-
addons/edi/edi_service.py | 2 +-
addons/edi/models/edi.py | 6 +-
addons/edi/models/res_partner.py | 6 +-
addons/fetchmail/fetchmail.py | 14 +-
addons/import_base/import_framework.py | 15 +-
addons/l10n_be_invoice_bba/invoice.py | 433 +++++++++---------
addons/l10n_be_invoice_bba/partner.py | 5 +-
addons/l10n_multilang/l10n_multilang.py | 13 +-
addons/mail/mail_message.py | 2 +-
addons/mail/mail_thread.py | 3 -
addons/project_messages/project_messages.py | 2 -
addons/report_webkit/webkit_report.py | 11 +-
addons/stock/stock.py | 6 +-
27 files changed, 369 insertions(+), 376 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index 432a90a653e..2b1834002e7 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -19,17 +19,19 @@
#
##############################################################################
-import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
+import logging
from operator import itemgetter
+import time
-import netsvc
-import pooler
-from osv import fields, osv
import decimal_precision as dp
+from osv import fields, osv
+import pooler
from tools.translate import _
+_logger = logging.getLogger(__name__)
+
def check_cycle(self, cr, uid, ids, context=None):
""" climbs the ``self._table.parent_id`` chains for 100 levels or
until it can't find any more parent(s)
@@ -212,7 +214,6 @@ class account_account(osv.osv):
_name = "account.account"
_description = "Account"
_parent_store = True
- logger = netsvc.Logger()
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
@@ -295,8 +296,7 @@ class account_account(osv.osv):
if aml_query.strip():
wheres.append(aml_query.strip())
filters = " AND ".join(wheres)
- self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
- 'Filters: %s'%filters)
+ _logger.debug('Filters: %s', filters)
# IN might not work ideally in case there are too many
# children_and_consolidated, in that case join on a
# values() e.g.:
@@ -312,8 +312,7 @@ class account_account(osv.osv):
" GROUP BY l.account_id")
params = (tuple(children_and_consolidated),) + query_params
cr.execute(request, params)
- self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
- 'Status: %s'%cr.statusmessage)
+ _logger.debug('Status: %s', cr.statusmessage)
for res in cr.dictfetchall():
accounts[res['id']] = res
@@ -2083,8 +2082,7 @@ class account_tax(osv.osv):
}
def compute(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None):
- logger = netsvc.Logger()
- logger.notifyChannel("warning", netsvc.LOG_WARNING,
+ _logger.warning(
"Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included")
return self._compute(cr, uid, taxes, price_unit, quantity, address_id, product, partner)
diff --git a/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py b/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
index 8e1e4b09e47..50b5bcd8d36 100644
--- a/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
+++ b/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
@@ -22,14 +22,10 @@
import time
from report import report_sxw
-import pooler
-import netsvc
-logger=netsvc.Logger()
class bank_statement_balance_report(report_sxw.rml_parse):
def set_context(self, objects, data, ids, report_type=None):
- #logger.notifyChannel('addons.'+__name__, netsvc.LOG_WARNING, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
cr = self.cr
uid = self.uid
context = self.context
diff --git a/addons/account_coda/account_coda.py b/addons/account_coda/account_coda.py
index f967669b98e..b4723794578 100644
--- a/addons/account_coda/account_coda.py
+++ b/addons/account_coda/account_coda.py
@@ -21,11 +21,10 @@
##############################################################################
import time
-from osv import osv, fields
+
import decimal_precision as dp
-import netsvc
+from osv import osv, fields
from tools.translate import _
-logger=netsvc.Logger()
class coda_bank_account(osv.osv):
_name= 'coda.bank.account'
diff --git a/addons/account_coda/wizard/account_coda_import.py b/addons/account_coda/wizard/account_coda_import.py
index 02e72bc3562..ac9a623e2fc 100644
--- a/addons/account_coda/wizard/account_coda_import.py
+++ b/addons/account_coda/wizard/account_coda_import.py
@@ -20,15 +20,16 @@
#
##############################################################################
-import time
import base64
+import re
+from sys import exc_info
+import time
+from traceback import format_exception
+
from osv import fields,osv
from tools.translate import _
-import netsvc
-import re
-from traceback import format_exception
-from sys import exc_info
-logger=netsvc.Logger()
+
+_logger = logging.getLogger(__name__)
class account_coda_import(osv.osv_memory):
_name = 'account.coda.import'
@@ -816,7 +817,6 @@ class account_coda_import(osv.osv_memory):
ttype = line['type'] == 'supplier' and 'payment' or 'receipt',
date = line['val_date'],
context = context)
- #logger.notifyChannel('addons.'+self._name, netsvc.LOG_WARNING, 'voucher_dict = %s' % voucher_dict)
voucher_line_vals = False
if voucher_dict['value']['line_ids']:
for line_dict in voucher_dict['value']['line_ids']:
@@ -889,22 +889,22 @@ class account_coda_import(osv.osv_memory):
nb_err += 1
err_string += _('\nError ! ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'Application Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('Application Error while processing Statement %s\n%s',
+ statement.get('name', '/'), tb)
except Exception, e:
cr.rollback()
nb_err += 1
err_string += _('\nSystem Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'System Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('System Error while processing Statement %s\n%s',
+ statement.get('name', '/'), tb)
except :
cr.rollback()
nb_err += 1
err_string = _('\nUnknown Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'Unknown Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('Unknown Error while processing Statement %s\n%s',
+ statement.get('name', '/'), tb)
# end 'for statement in coda_statements'
diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py
index 1de715dc777..11d4f98af8f 100644
--- a/addons/account_payment/account_payment.py
+++ b/addons/account_payment/account_payment.py
@@ -19,11 +19,14 @@
#
##############################################################################
+import logging
import time
from osv import osv, fields
import netsvc
+_logger = logging.getLogger(__name__)
+
class payment_mode(osv.osv):
_name= 'payment.mode'
_description= 'Payment Mode'
@@ -70,9 +73,7 @@ class payment_order(osv.osv):
#dead code
def get_wizard(self, type):
- logger = netsvc.Logger()
- logger.notifyChannel("warning", netsvc.LOG_WARNING,
- "No wizard found for the payment type '%s'." % type)
+ _logger.warning("No wizard found for the payment type '%s'.", type)
return None
def _total(self, cursor, user, ids, name, args, context=None):
diff --git a/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py b/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py
index 39933c39a3e..9f4c75918b9 100644
--- a/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py
+++ b/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py
@@ -18,17 +18,18 @@
# along with this program. If not, see .
#
##############################################################################
-from os.path import join
import base64
-import tempfile
-import tarfile
import httplib
+import logging
+import os
+from os.path import join
+import tarfile
+import tempfile
-import netsvc
import wizard
import pooler
-import os
-import tools
+
+_logger = logging.getLogger(__name__)
choose_file_form = '''
-
+
From 3a38ecd3c2febaa6aa5d7c9ff2127a8589cdd206 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Mon, 15 Oct 2012 17:00:22 +0530
Subject: [PATCH 055/154] [IMP]event : improve kanaban button condition
bzr revid: mma@tinyerp.com-20121015113022-um8ursgf4mzwvskl
---
addons/event/event_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 81984637137..92d88024d08 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -274,12 +274,12 @@
tickets
- ticket
+ ticket
available.
-
+
From 816bc9730da4dcf8437f4f240af0dd3ca6d57be0 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Mon, 15 Oct 2012 17:04:33 +0530
Subject: [PATCH 056/154] [IMP] css code added in saas.
bzr revid: bth@tinyerp.com-20121015113433-42ai0aw1xwb19ple
---
addons/web/static/src/css/base.css | 13 +++++++------
addons/web/static/src/css/base.sass | 6 ++++++
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 680ba83ae54..c0adb4e99df 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2916,10 +2916,11 @@ div.ui-widget-overlay {
}
@media print {
- .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header {
- display: none;
- }
- .openerp .oe_application .oe_form_sheet {
- border: none;
- }
+ .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header {
+ display: none;
+ }
+
+ .openerp .oe_application .oe_form_sheet {
+ border: none;
+ }
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index a1adfe67e75..09c39afafa9 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2305,5 +2305,11 @@ div.ui-widget-overlay
.ui-corner-all
@include radius(3px)
+@media print
+ .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header
+ display: none
+ .openerp .oe_application .oe_form_sheet
+ border: none
+
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 3f31313d46b9b4da1d41bf8dcf174b872cc49fe3 Mon Sep 17 00:00:00 2001
From: "Divyesh Makwana (Open ERP)"
Date: Tue, 16 Oct 2012 12:38:16 +0530
Subject: [PATCH 057/154] [IMP] base_calendar : Partners should always be
replaced with Customer, Supplier, or Contact (if it can be both).
bzr revid: mdi@tinyerp.com-20121016070816-1w25cevujbmvhu0m
---
addons/base_calendar/crm_meeting.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py
index 9ceaea671ca..df97df2f6b8 100644
--- a/addons/base_calendar/crm_meeting.py
+++ b/addons/base_calendar/crm_meeting.py
@@ -91,11 +91,16 @@ class crm_meeting(base_state, osv.Model):
partner_wo_email_lst.append(partner)
if not partner_wo_email_lst:
return {}
- warning_msg = _('The following contacts have no email address :')
for partner in partner_wo_email_lst:
+ recipients = "contacts"
+ if partner.customer and not partner.supplier:
+ recipients = "customers"
+ elif partner.supplier and not partner.customer:
+ recipients = "suppliers"
+ warning_msg = _('The following %s do not have an email address specified.') % (recipients,)
warning_msg += '\n- %s' % (partner.name)
return {'warning': {
- 'title': _('Email addresses not found'),
+ 'title': _('Email not found'),
'message': warning_msg,
}
}
From 866a761177bdc2d0a784ec38aa6a2dc625eb482b Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Tue, 16 Oct 2012 15:51:34 +0530
Subject: [PATCH 058/154] [IMP]sale : improve strings
bzr revid: mma@tinyerp.com-20121016102134-j4qa22us07at9ivw
---
addons/crm_partner_assign/partner_geo_assign.py | 2 +-
addons/crm_partner_assign/res_partner_view.xml | 2 +-
addons/project_gtd/project_gtd_view.xml | 2 +-
addons/sale/sale_view.xml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/partner_geo_assign.py
index 9134f427c5d..69b2ba406ca 100644
--- a/addons/crm_partner_assign/partner_geo_assign.py
+++ b/addons/crm_partner_assign/partner_geo_assign.py
@@ -87,7 +87,7 @@ class res_partner(osv.osv):
help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"),
'opportunity_assigned_ids': fields.one2many('crm.lead', 'partner_assigned_id',\
'Assigned Opportunities'),
- 'grade_id': fields.many2one('res.partner.grade', 'Partner Grade'),
+ 'grade_id': fields.many2one('res.partner.grade', 'Partner Level'),
'activation' : fields.many2one('res.partner.activation', 'Activation', select=1),
'date_partnership' : fields.date('Partnership Date'),
'date_review' : fields.date('Latest Partner Review'),
diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index f9a46b74791..3b55c70f4c7 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index 155e3ab39a2..1467ce55fab 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 95d526401ac..6553a169a34 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -131,7 +131,7 @@
-
+
From f1a881236b2c525a47ae99a9723a8ce00807b62e Mon Sep 17 00:00:00 2001
From: Amit Patel
Date: Thu, 18 Oct 2012 12:26:40 +0530
Subject: [PATCH 059/154] [IMP]:improved config parameter while sending
invitation
bzr revid: apa@tinyerp.com-20121018065640-chr285k3tcnk2bho
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 4c2840b787d..661c9417180 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -74,7 +74,7 @@ class survey_send_invitation(osv.osv_memory):
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
\n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n link :- http://'''+ str(socket.gethostname()) + ''':8069 \n\n Thanks,'''
+ \n '''+ self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context) + '''\n\n Thanks,'''
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From 143936a8c802cc6f64b567e12f008821822d8428 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Thu, 18 Oct 2012 18:47:56 +0530
Subject: [PATCH 060/154] [IMP] Improve css to hide border,button,notebook
tab,scoll.
bzr revid: bth@tinyerp.com-20121018131756-7bz5wt9bl6ck11jn
---
addons/web/static/src/css/base.css | 42 +++++++++----------
addons/web/static/src/css/base.sass | 37 ++++++++--------
.../static/src/css/web_calendar.css | 8 ++++
addons/web_gantt/static/src/css/gantt.css | 8 ++++
addons/web_kanban/static/src/css/kanban.css | 6 +++
addons/web_kanban/static/src/css/kanban.sass | 3 ++
6 files changed, 64 insertions(+), 40 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 36c5e96bd19..de9b50e53ac 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2561,12 +2561,6 @@
.openerp .oe_list.oe_list_editable td.oe_list_record_delete {
position: absolute;
}
-.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
- color: transparent;
-}
-.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * {
- visibility: hidden;
-}
.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button {
top: 5px;
}
@@ -2585,10 +2579,10 @@
}
.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;
- width: 100% !important;
+ width: 100%;
}
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
- width: 100% !important;
+ width: 100%;
}
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
width: 100% !important;
@@ -2597,9 +2591,6 @@
min-width: 0 !important;
max-width: none !important;
}
-.openerp .oe_list_group_name {
- white-space: nowrap;
-}
.openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page {
display: none;
}
@@ -2659,17 +2650,14 @@
background: #eeeeee;
vertical-align: top;
}
+.openerp .oe_list_content > thead th {
+ position: relative;
+}
.openerp .oe_list_content td, .openerp .oe_list_content th {
padding: 3px 6px;
line-height: 18px;
}
-.openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div {
- cursor: pointer;
-}
-.openerp .oe_list_content th.oe_sortable div {
- position: relative;
-}
-.openerp .oe_list_content th.oe_sortable div:after {
+.openerp .oe_list_content th:after {
position: absolute;
right: 6px;
content: "";
@@ -2679,12 +2667,12 @@
border-color: black transparent;
visibility: hidden;
}
-.openerp .oe_list_content th.sortup div:after {
+.openerp .oe_list_content th.sortup:after {
visibility: visible;
filter: alpha(opacity=60);
opacity: 0.6;
}
-.openerp .oe_list_content th.sortdown div:after {
+.openerp .oe_list_content th.sortdown:after {
border-bottom: none;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
@@ -2927,11 +2915,21 @@ div.ui-widget-overlay {
}
@media print {
- .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header {
+ .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header, .openerp .oe_notebook > li.ui-state-default {
display: none;
}
- .openerp .oe_application .oe_form_sheet {
+ .oe_list_content button, .oe_list_content input[type=checkbox] {
+ display: none;
+ }
+
+ .openerp .tree_header button {
+ display: none;
+ }
+ .openerp .oe_notebook > li.ui-tabs-selected {
+ display: block;
+ }
+ .openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg {
border: none;
}
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 5f9e4f2e31f..622b019e8fa 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2026,10 +2026,6 @@ $sheet-max-width: 860px
td.oe_list_record_delete
position: absolute
.oe_list.oe_list_editable.oe_editing
- .oe_edition .oe_list_field_cell:not(.oe_readonly)
- *
- visibility: hidden
- color: transparent
.oe_m2o_drop_down_button
top: 5px
.oe_m2o_cm_button
@@ -2044,17 +2040,15 @@ $sheet-max-width: 860px
&.oe_form_field_float,&.oe_form_view_integer
input
text-align: right
- width: 100% !important
+ width: 100%
&.oe_form_field_datetime,&.oe_form_field_date
> span
- width: 100% !important
+ width: 100%
input.oe_datepicker_master
width: 100% !important
.oe_form_field_float,.oe_form_view_integer,&.oe_form_field_datetime,&.oe_form_field_date
min-width: 0 !important
max-width: none !important
- .oe_list_group_name
- white-space: nowrap
// }}}
// FormView.many2many {{{
.oe_form .oe_form_field_many2many > .oe_list
@@ -2104,14 +2098,12 @@ $sheet-max-width: 860px
border-bottom: 2px solid #cacaca
background: #eee
vertical-align: top
+ th
+ position: relative
td, th
padding: 3px 6px
line-height: 18px
- th.oe_sortable, th.oe_sortable div
- cursor: pointer
- th.oe_sortable div
- position: relative
- th.oe_sortable div:after
+ th:after
position: absolute
right: 6px
content: ""
@@ -2120,10 +2112,10 @@ $sheet-max-width: 860px
border-style: solid
border-color: #000 transparent
visibility: hidden
- th.sortup div:after
+ th.sortup:after
visibility: visible
@include opacity(0.6)
- th.sortdown div:after
+ th.sortdown:after
border-bottom: none
border-left: 4px solid transparent
border-right: 4px solid transparent
@@ -2314,10 +2306,19 @@ div.ui-widget-overlay
@include radius(3px)
@media print
- .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header
+ .oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header, .openerp .oe_notebook > li.ui-state-default
display: none
- .openerp .oe_application .oe_form_sheet
- border: none
+ .oe_list_content
+ button, input[type=checkbox]
+ display: none
+ .openerp
+ .tree_header button
+ display: none
+ .oe_notebook > li.ui-tabs-selected
+ display: block
+ .oe_application
+ .oe_form_sheet, .oe_form_sheetbg
+ border: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
diff --git a/addons/web_calendar/static/src/css/web_calendar.css b/addons/web_calendar/static/src/css/web_calendar.css
index 9cfc2f777bd..083451f3fbc 100644
--- a/addons/web_calendar/static/src/css/web_calendar.css
+++ b/addons/web_calendar/static/src/css/web_calendar.css
@@ -1053,3 +1053,11 @@ div.openerp .dhx_cal_editor textarea {
.openerp .dhx_cal_event .dhx_header, .openerp .dhx_cal_event .dhx_header {
display:none;
}
+@media print {
+ div.dhx_cal_navline .dhx_cal_tab, div.dhx_cal_navline .dhx_cal_prev_button, div.dhx_cal_navline .dhx_cal_next_button, div.dhx_cal_navline .dhx_cal_today_button{
+ display: none;
+ }
+ .openerp .dhx_cal_data {
+ overflow-y: hidden !important;
+ }
+}
\ No newline at end of file
diff --git a/addons/web_gantt/static/src/css/gantt.css b/addons/web_gantt/static/src/css/gantt.css
index c6939fc9463..d6ef08c15fa 100644
--- a/addons/web_gantt/static/src/css/gantt.css
+++ b/addons/web_gantt/static/src/css/gantt.css
@@ -7,3 +7,11 @@
position: absolute;
top: 5px;
}
+@media print {
+ .oe_gantt button {
+ display: none;
+ }
+ .oe_gantt > table > tbody > tr > td > div > div {
+ overflow: hidden !important;
+ }
+}
\ No newline at end of file
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index 60e8eefcf37..c706bdcd063 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -609,3 +609,9 @@
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
}
+
+@media print {
+ .oe_kanban_groups button {
+ display: none;
+ }
+}
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index 1210e9bf640..56d457cee19 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -502,6 +502,9 @@
@include vertical-gradient(#f6f6f6, #e3e3e3)
@include box-shadow((0 1px 2px rgba(0, 0, 0, .1), 0 1px 1px rgba(255, 255, 255, .8) inset))
+@media print
+ .oe_kanban_groups button
+ display: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 479627856c3fc4e8c12dfe5b5b3d59609de1838c Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Fri, 19 Oct 2012 12:07:30 +0530
Subject: [PATCH 061/154] [IMP] Improve css to hide scroll in mail threads and
remove text shadow.
bzr revid: bth@tinyerp.com-20121019063730-cx2axh9cgbego6o0
---
addons/web/static/src/css/base.css | 12 ++++++++++++
addons/web/static/src/css/base.sass | 6 ++++++
2 files changed, 18 insertions(+)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 56369e18ba9..8234c26e507 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2944,4 +2944,16 @@ div.ui-widget-overlay {
.openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg {
border: none;
}
+
+ .openerp div.oe_mail_wall {
+ overflow: hidden !important;
+ }
+
+ .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more {
+ display: none;
+ }
+
+ .openerp {
+ text-shadow: none;
+ }
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 0a3d94220c0..128fdf8834e 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2327,6 +2327,12 @@ div.ui-widget-overlay
.oe_application
.oe_form_sheet, .oe_form_sheetbg
border: none
+ .openerp div.oe_mail_wall
+ overflow: hidden !important
+ .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more
+ display: none
+ .openerp
+ text-shadow: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 054f6e79653ee525969f9cf0acbbb6f097adb0f9 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Fri, 19 Oct 2012 16:44:57 +0530
Subject: [PATCH 062/154] [IMP] Improve css to hide border and remove
images,add an item link from list view.
bzr revid: bth@tinyerp.com-20121019111457-altw97yqg2abp58m
---
addons/web/static/src/css/base.css | 17 +++++++++++++----
addons/web/static/src/css/base.sass | 12 +++++++++---
2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 8234c26e507..3207e119555 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2942,11 +2942,12 @@ div.ui-widget-overlay {
display: block;
}
.openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg {
- border: none;
+ border: 0px !important;
+ box-shadow: 0px 0px 0px;
}
-
- .openerp div.oe_mail_wall {
- overflow: hidden !important;
+ .openerp .oe_view_manager_current > .oe_view_manager_header {
+ border: 0px !important;
+ box-shadow: 0px 0px 0px;
}
.oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more {
@@ -2956,4 +2957,12 @@ div.ui-widget-overlay {
.openerp {
text-shadow: none;
}
+
+ .text-core .text-wrap .text-arrow {
+ background: none;
+ }
+
+ .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e {
+ display: none;
+ }
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 128fdf8834e..5832a7e2bdb 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2326,13 +2326,19 @@ div.ui-widget-overlay
display: block
.oe_application
.oe_form_sheet, .oe_form_sheetbg
- border: none
- .openerp div.oe_mail_wall
- overflow: hidden !important
+ border: 0px !important
+ box-shadow: 0px 0px 0px
+ .oe_view_manager_current > .oe_view_manager_header
+ border: 0px !important
+ box-shadow: 0px 0px 0px
.oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more
display: none
.openerp
text-shadow: none
+ .text-core .text-wrap .text-arrow
+ background: none
+ .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e
+ display: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 3407d17448892ad7d8b93b060d458c5532daf75a Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Mon, 22 Oct 2012 10:43:11 +0530
Subject: [PATCH 063/154] [IMP] hide date img.
bzr revid: bth@tinyerp.com-20121022051311-9kcqf7x00ouvkiuj
---
addons/web/static/src/css/base.css | 4 ++++
addons/web/static/src/css/base.sass | 3 +++
2 files changed, 7 insertions(+)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 3207e119555..a1183109785 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2965,4 +2965,8 @@ div.ui-widget-overlay {
.oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e {
display: none;
}
+
+ .openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img {
+ display: none;
+ }
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 5832a7e2bdb..da71e280b33 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2340,5 +2340,8 @@ div.ui-widget-overlay
background: none
.oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e
display: none
+ .openerp .oe_form
+ .oe_form_field_date img, .oe_form_field_datetime img
+ display: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From c1b751d26eebb30935ce6a5ed5d55456b32e7c89 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Mon, 22 Oct 2012 14:57:41 +0530
Subject: [PATCH 064/154] [IMP] Hide delete buttons.
bzr revid: bth@tinyerp.com-20121022092741-yhs2wh3ax21s9yi3
---
addons/web_kanban/static/src/css/kanban.css | 4 ++++
addons/web_kanban/static/src/css/kanban.sass | 2 ++
2 files changed, 6 insertions(+)
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index c706bdcd063..bf7d61175ed 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -614,4 +614,8 @@
.oe_kanban_groups button {
display: none;
}
+
+ .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record > div > a {
+ display: none;
+ }
}
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index 56d457cee19..3f64ae45a0d 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -505,6 +505,8 @@
@media print
.oe_kanban_groups button
display: none
+ .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record > div > a
+ display: none
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 8d40893e6fa216873b867cf1734cacdfe049088e Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Mon, 22 Oct 2012 12:32:16 +0200
Subject: [PATCH 065/154] [IMP] account: added field supplier invoice number,
as suggested by Normunds Vilcans
lp bug: https://launchpad.net/bugs/814128 fixed
bzr revid: qdp-launchpad@openerp.com-20121022103216-9rnvr84s62ugazny
---
addons/account/account_invoice.py | 1 +
addons/account/account_invoice_view.xml | 13 ++++++++-----
addons/base_crypt/crypt.py | 17 ++++++++++-------
addons/event_sale/event_sale.py | 2 +-
4 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 57f16473b82..0508a7cadfe 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -185,6 +185,7 @@ class account_invoice(osv.osv):
_columns = {
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}),
+ 'supplier_invoice_number': fields.char('Supplier Invoice Number', size=64, help="The reference of this invoice as provided by the supplier.", readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([
('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'),
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 8516fcd96ae..ee5a911d933 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -170,12 +170,15 @@
context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
domain="[('supplier', '=', True)]"/>
-
-
-
@@ -449,7 +452,7 @@
account.invoice
-
+
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 81a60a5dd5f..3accc2740e9 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -140,15 +140,18 @@ class users(osv.osv):
# Add handlers for 'input_pw' field.
def set_pw(self, cr, uid, id, name, value, args, context):
- if not value:
- raise osv.except_osv(_('Error!'), _("You have to specify a password."))
+ if value:
+ obj = pooler.get_pool(cr.dbname).get('res.users')
+ if not hasattr(obj, "_salt_cache"):
+ obj._salt_cache = {}
- obj = pooler.get_pool(cr.dbname).get('res.users')
- if not hasattr(obj, "_salt_cache"):
- obj._salt_cache = {}
+ salt = obj._salt_cache[id] = gen_salt()
+ encrypted = encrypt_md5(value, salt)
- salt = obj._salt_cache[id] = gen_salt()
- encrypted = encrypt_md5(value, salt)
+ else:
+ #setting a password to '' is allowed. It can be used to inactivate the classic log-in of the user
+ #while the access can still be granted by another login method (openid...)
+ encrypted = ''
cr.execute('update res_users set password=%s where id=%s',
(encrypted.encode('utf-8'), int(id)))
cr.commit()
diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index f37dea3f075..2dd40a7c285 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -40,7 +40,7 @@ class sale_order_line(osv.osv):
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
#those 2 fields are used for dynamic domains and filled by onchange
'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"),
- 'event_ok': fields.related('event_ok', string='event_ok', type='boolean'),
+ 'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'),
}
def product_id_change(self, cr, uid, ids,
From 8e7ec0974960455d8fec16d92b8e4e93ea2aaa0e Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Mon, 22 Oct 2012 18:15:16 +0200
Subject: [PATCH 066/154] m
bzr revid: nicolas.vanhoren@openerp.com-20121022161516-4g9wg1a3fv0r7t12
---
addons/web/static/src/js/view_form.js | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 850a334c40b..bd4f8f5d55f 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3234,6 +3234,12 @@ var commands = {
return [6, false, ids];
}
};
+/**
+ widget options:
+ - reload_on_button: Reload the whole form view if click on a button in a list view.
+ If you see this options, do not use it, it's basically a dirty hack to make one
+ precise o2m to behave the way we want.
+*/
instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -3689,7 +3695,8 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
readonly: !this.is_action_enabled('edit') || self.o2m.get("effective_readonly")
});
},
- do_button_action: function (name, id, callback) {
+ handle_button: function(name, id, call) {
+ var _sup = _.bind(this._super, this);
if (!_.isNumber(id)) {
instance.webclient.notification.warn(
_t("Action Button"),
@@ -3700,14 +3707,22 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
var self = this;
this.ensure_saved().pipe(function () {
if (parent_form)
- return parent_form.save();
+ return parent_form.recursive_save();
else
return $.when();
- }).then(function () {
- self.handle_button(name, id, callback);
+ }).pipe(function () {
+ var call;
+ debugger;
+ if (! self.o2m.options.reload_on_button) {
+ call = callback;
+ } else {
+ call = function() {
+ self.o2m.view.recursive_reload();
+ };
+ }
+ _sup(name, id, call);
});
},
-
_before_edit: function () {
this.__ignore_blur = false;
this.editor.form.on('blurred', this, this._on_form_blur);
From dd99dc7ed07057bf46bd3a053e53dd49492e7d65 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Mon, 22 Oct 2012 18:15:56 +0200
Subject: [PATCH 067/154] m
bzr revid: nicolas.vanhoren@openerp.com-20121022161556-wb1l3kahb9lwrnv3
---
addons/mrp/mrp_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 9d1ae9eae8a..9e35377986a 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -668,7 +668,7 @@
-
+
From ce3882d8d73fba3a12d15f0b200e5033ff98f5c2 Mon Sep 17 00:00:00 2001
From: "ajay javiya (OpenERP)"
Date: Tue, 23 Oct 2012 12:20:37 +0530
Subject: [PATCH 068/154] [FIX]:Task issue in project module
bzr revid: aja@tinyerp.com-20121023065037-2i16k4xlsczqj04y
---
addons/pad/pad.py | 2 +-
addons/project_timesheet/project_timesheet.py | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/pad/pad.py b/addons/pad/pad.py
index 0cbb6107979..06d9aa3688f 100644
--- a/addons/pad/pad.py
+++ b/addons/pad/pad.py
@@ -86,7 +86,7 @@ class pad_common(osv.osv_memory):
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
- for k,v in self._all_columns:
+ for k,v in self._all_columns.iteritems():
field = v.column
if hasattr(field,'pad_content_field'):
pad = self.pad_generate_url(cr, uid, context)
diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py
index 7963c30b2be..fe4b848f522 100644
--- a/addons/project_timesheet/project_timesheet.py
+++ b/addons/project_timesheet/project_timesheet.py
@@ -115,7 +115,7 @@ class project_work(osv.osv):
if not context.get('no_analytic_entry',False):
task_obj = task_obj.browse(cr, uid, vals['task_id'])
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
- vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name']) or '/')
+ vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name'] or '/'))
vals_line['user_id'] = vals['user_id']
vals_line['product_id'] = result['product_id']
vals_line['date'] = vals['date'][:10]
@@ -172,7 +172,7 @@ class project_work(osv.osv):
vals_line = {}
if 'name' in vals:
- vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name']) or '/')
+ vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name'] or '/'))
if 'user_id' in vals:
vals_line['user_id'] = vals['user_id']
if 'date' in vals:
From f3682ca551c57571ec5e97e9c6cc1c1f6d89deae Mon Sep 17 00:00:00 2001
From: "Turkesh Patel (Open ERP)"
Date: Tue, 23 Oct 2012 12:41:42 +0530
Subject: [PATCH 069/154] [FIX] sale_stock: improve onchange to update tax.
bzr revid: tpa@tinyerp.com-20121023071142-dz227is8kp91ivxb
---
addons/sale_stock/sale_stock_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index 668f037bad8..a033e3e6d33 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -56,7 +56,7 @@
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/>
Date: Tue, 23 Oct 2012 10:52:20 +0200
Subject: [PATCH 070/154] [IMP] cleanup View.load_view a bit
and remove unused variables in ViewManagerAction#switch_view
bzr revid: xmo@openerp.com-20121023085220-h7lwft0nilng1q4y
---
addons/web/static/src/js/views.js | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 103ad7a2661..66dfba99d9f 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -895,9 +895,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
var self = this;
return $.when(this._super.apply(this, arguments)).then(function () {
- var controller = self.views[self.active_view].controller,
- fvg = controller.fields_view,
- view_id = (fvg && fvg.view_id) || '--';
+ var controller = self.views[self.active_view].controller;
self.$el.find('.oe_debug_view').html(QWeb.render('ViewManagerDebug', {
view: controller,
view_manager: self
@@ -1142,28 +1140,28 @@ instance.web.View = instance.web.Widget.extend({
start: function () {
return this.load_view();
},
- load_view: function() {
+ load_view: function(context) {
var self = this;
+ var view_loaded;
if (this.embedded_view) {
- var def = $.Deferred();
- $.async_when().then(function() {def.resolve(self.embedded_view);});
- return def.pipe(function(r) {
- self.trigger('view_loaded', r);
+ view_loaded = $.Deferred();
+ $.async_when().then(function() {
+ view_loaded.resolve(self.embedded_view);
});
} else {
- var context = new instance.web.CompoundContext(this.dataset.get_context());
if (! this.view_type)
console.warn("view_type is not defined", this);
- return this.rpc("/web/view/load", {
+ view_loaded = this.rpc("/web/view/load", {
"model": this.dataset.model,
"view_id": this.view_id,
"view_type": this.view_type,
toolbar: !!this.options.$sidebar,
- context: context
- }).pipe(function(r) {
- self.trigger('view_loaded', r);
+ context: this.dataset.get_context(context)
});
}
+ return view_loaded.pipe(function(r) {
+ self.trigger('view_loaded', r);
+ });
},
set_default_options: function(options) {
this.options = options || {};
From 9bf9ca7a67a16b83cfa371c1377865e168d6c7dc Mon Sep 17 00:00:00 2001
From: Xavier Morel
Date: Tue, 23 Oct 2012 10:53:29 +0200
Subject: [PATCH 071/154] [FIX] list view to use View#load_view rather than its
own implementation thereof
bzr revid: xmo@openerp.com-20121023085329-y01e1u77vfz2n7a9
---
addons/web/static/src/js/view_list.js | 34 +++++++------------
.../web/static/src/js/view_list_editable.js | 2 +-
2 files changed, 13 insertions(+), 23 deletions(-)
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 29bc81ea9ec..4da6136d3cc 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -22,6 +22,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
'reorderable': true,
'action_buttons': true,
},
+ view_type: 'tree',
/**
* Core class for list-type displays.
*
@@ -83,7 +84,8 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
});
this.no_leaf = false;
- this.on('view_load', self, self.load_list);
+ this.grouped = false;
+ this.on('view_loaded', self, self.load_list);
},
set_default_options: function (options) {
this._super(options);
@@ -145,7 +147,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
*/
start: function() {
this.$el.addClass('oe_list');
- return this.reload_view(null, null, true);
+ return this._super();
},
/**
* Returns the style for the provided record in the current view (from the
@@ -219,7 +221,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
* @param {Object} data.fields_view.arch current list view descriptor
* @param {Boolean} grouped Is the list view grouped
*/
- load_list: function(data, grouped) {
+ load_list: function(data) {
var self = this;
this.fields_view = data;
this.name = "" + this.fields_view.arch.attrs.string;
@@ -245,7 +247,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}).value();
}
- this.setup_columns(this.fields_view.fields, grouped);
+ this.setup_columns(this.fields_view.fields, this.grouped);
this.$el.html(QWeb.render(this._template, this));
this.$el.addClass(this.fields_view.arch.attrs['class']);
@@ -290,7 +292,7 @@ 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);
+ .prop('disabled', this.grouped);
}
// Pager
@@ -359,7 +361,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.sidebar.add_toolbar(this.fields_view.toolbar);
this.sidebar.$el.hide();
}
- this.trigger('list_view_loaded', data, grouped);
+ this.trigger('list_view_loaded', data, this.grouped);
},
/**
* Configures the ListView pager based on the provided dataset's information
@@ -464,25 +466,12 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
/**
* Reloads the list view based on the current settings (dataset & al)
*
+ * @deprecated
* @param {Boolean} [grouped] Should the list be displayed grouped
* @param {Object} [context] context to send the server while loading the view
*/
reload_view: function (grouped, context, initial) {
- var self = this;
- var callback = function (field_view_get) {
- self.load_list(field_view_get, grouped);
- };
- if (this.embedded_view) {
- return $.Deferred().then(callback).resolve(this.embedded_view);
- } else {
- return this.rpc('/web/view/load', {
- model: this.model,
- view_id: this.view_id,
- view_type: "tree",
- context: this.dataset.get_context(context),
- toolbar: !!this.options.$sidebar
- }).then(callback);
- }
+ return this.load_view(context);
},
/**
* re-renders the content of the list view
@@ -564,8 +553,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
group_by = null;
}
this.no_leaf = !!context['group_by_no_leaf'];
+ this.grouped = !!group_by;
- this.reload_view(!!group_by, context).then(
+ return this.load_view(context).pipe(
this.proxy('reload_content'));
},
/**
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index 9bc0e96032f..acc1d781976 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -150,7 +150,7 @@ openerp.web.list_editable = function (instance) {
if (!id && done.created) {
id = done.record.get('id');
}
- self.handle_button.call(self, name, id, callback);
+ self.handle_button(name, id, callback);
});
},
/**
From 4ab9d9a9b1c17ecce6eb63c82a2763808b44c95a Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Tue, 23 Oct 2012 14:33:10 +0530
Subject: [PATCH 072/154] [IMP] Improve css for kanban.
bzr revid: bth@tinyerp.com-20121023090310-ytk7zx1xth5e1oua
---
addons/web_kanban/static/src/css/kanban.css | 7 +++----
addons/web_kanban/static/src/css/kanban.sass | 10 ++++++----
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index bf7d61175ed..fbd55dcb0da 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -612,10 +612,9 @@
@media print {
.oe_kanban_groups button {
- display: none;
+ visibility: hidden;
}
-
- .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record > div > a {
- display: none;
+ .oe_kanban_groups a[data-type=object], .oe_kanban_groups a[data-type=delete] {
+ visibility: hidden;
}
}
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index 3f64ae45a0d..1b749731111 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -503,10 +503,12 @@
@include box-shadow((0 1px 2px rgba(0, 0, 0, .1), 0 1px 1px rgba(255, 255, 255, .8) inset))
@media print
- .oe_kanban_groups button
- display: none
- .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record > div > a
- display: none
+ .oe_kanban_groups
+ button
+ visibility: hidden
+ a
+ &[data-type=object], &[data-type=delete]
+ visibility: hidden
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 957c187bb18045d0fd21a7153eb97b1d73c1f282 Mon Sep 17 00:00:00 2001
From: Fabien Meghazi
Date: Tue, 23 Oct 2012 11:55:59 +0200
Subject: [PATCH 073/154] [IMP] Make 'oe_list_cannot_*' css classes generic
bzr revid: fme@openerp.com-20121023095559-63exp0dyf5zsd3qw
---
addons/web/static/src/css/base.css | 5207 ++++++++++++++-----------
addons/web/static/src/css/base.sass | 22 +-
addons/web/static/src/js/view_list.js | 5 -
addons/web/static/src/js/views.js | 5 +
4 files changed, 2888 insertions(+), 2351 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 565bf9c12f5..64b782835f2 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1,4 +1,4 @@
-@charset "UTF-8";
+@charset "utf-8";
@font-face {
font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
@@ -6,7 +6,8 @@
src: url("/web/static/src/font/mnmliconsv21-webfont.ttf") format("truetype");
src: url("/web/static/src/font/mnmliconsv21-webfont.svg") format("svg") active;
font-weight: normal;
- font-style: normal; }
+ font-style: normal;
+}
@font-face {
font-family: "EntypoRegular";
@@ -16,17 +17,22 @@
src: url("/web/static/src/font/entypo-webfont.ttf") format("truetype");
src: url("/web/static/src/font/entypo-webfont.svg") format("svg") active;
font-weight: normal;
- font-style: normal; }
+ font-style: normal;
+}
@media print {
.oe_topbar, .oe_leftbar, .oe_loading {
- display: none !important; } }
+ display: none !important;
+ }
+}
.openerp.openerp_webclient_container {
- height: 100%; }
+ height: 100%;
+}
.text-tag .text-button {
height: auto !important;
- min-height: 16px; }
+ min-height: 16px;
+}
.openerp {
padding: 0;
@@ -38,2332 +44,2856 @@
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;
- font-style: italic !important; }
- .openerp ::-webkit-input-placeholder {
- color: #afafb6 !important;
- font-style: italic !important; }
- .openerp a {
- text-decoration: none;
- cursor: pointer !important; }
- .openerp table {
- padding: 0;
- border-collapse: collapse; }
- .openerp thead {
- font-weight: bold;
- background-color: #f0f0f0; }
- .openerp thead th {
- border-left: 1px solid #dfdfdf; }
- .openerp thead th:first-child {
- border-left: none; }
- .openerp thead th.null {
- border-left: none; }
- .openerp th, .openerp td {
- padding: 0;
- text-align: left; }
- .openerp th {
- font-weight: bold;
- vertical-align: middle; }
- .openerp td {
- vertical-align: top; }
- .openerp .zebra tbody tr:nth-child(odd) td {
- background-color: #f0f0fa;
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); }
- .openerp .zebra tbody tr:hover td {
- background-color: #eeeeee;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
- background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
- background-image: -moz-linear-gradient(top, #eeeeee, #dedede);
- background-image: -ms-linear-gradient(top, #eeeeee, #dedede);
- background-image: -o-linear-gradient(top, #eeeeee, #dedede);
- background-image: linear-gradient(to bottom, #eeeeee, #dedede); }
- .openerp input, .openerp textarea, .openerp select {
- padding: 2px 4px;
- border: 1px solid #cccccc;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: white; }
- .openerp img {
- vertical-align: middle; }
- .openerp h4 {
- margin: 4px 0; }
- .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 rgba(0, 0, 0, 0.4);
- color: #4c4c4c;
- margin: 0;
- padding: 3px 12px;
- font-size: 13px;
- text-align: center;
- background-color: #efefef;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
- background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
- background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
- -webkit-font-smoothing: antialiased;
- outline: none; }
- .openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- cursor: pointer;
- background-position: 0; }
- .openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
- border: 1px solid #80bfff;
- background-position: 0;
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
- background-color: #e3e3e3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
- background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled {
- background: #efefef !important;
- border: 1px solid #d1d1d1 !important;
- -moz-box-shadow: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #aaaaaa !important;
- cursor: default;
- text-shadow: 0 1px 1px white !important; }
- .openerp .ui-widget-content a {
- color: #7c7bad; }
- .openerp .oe_bounce_container {
- display: inline-block; }
- .openerp .ui-tabs {
- position: static; }
- .openerp.ui-dialog {
- display: none;
- padding: 6px;
- background-color: rgba(60, 60, 60, 0.7);
- border: 1px solid;
- border-color: #888888 #555555 #444444;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box; }
- .openerp.ui-dialog .ui-dialog-content {
- padding: 0px; }
- .openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
- padding: 16px; }
- .openerp.ui-dialog .ui-dialog-titlebar {
- border-bottom: 1px solid #cacaca;
- -moz-border-radius: 2px 2px 0 0;
- -webkit-border-radius: 2px 2px 0 0;
- border-radius: 2px 2px 0 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.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
- margin: 0;
- padding: 0; }
- .openerp.ui-dialog .ui-widget-header {
- border: none; }
- .openerp.ui-dialog .ui-dialog-content {
- background: white; }
- .openerp.ui-dialog .ui-dialog-buttonpane {
- border-top: 1px solid #e0e0e0;
- background: #f5f7f9;
- margin: 0;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .ui-dialog-buttonpane button {
- margin: 0 4px 0 0; }
- .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
- float: left; }
- .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
- margin-right: 4px; }
- .openerp.ui-dialog .ui-dialog-titlebar-close {
- padding: 0; }
- .openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
- display: none; }
- .openerp.ui-dialog .ui-dialog-titlebar-close:before {
- content: "×";
- font-size: 18px;
- font-weight: bold;
- line-height: 16px;
- color: black;
- text-shadow: 0 1px 0 white;
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0; }
- .openerp.ui-dialog .ui-dialog-titlebar-close:before:hover {
- color: black;
- text-decoration: none; }
- .openerp.ui-dialog .oe_about {
- background-color: white;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .oe_about a {
- color: #7c7bad; }
- .openerp.ui-dialog .oe_about a:hover {
- text-decoration: underline; }
- .openerp.ui-dialog .oe_about a:focus {
- outline: none; }
- .openerp.ui-dialog .oe_about .oe_logo {
- margin-left: -6px; }
- .openerp.ui-dialog .oe_about .oe_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606);
- color: #eeeeee;
- padding: 0 16px;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp.ui-dialog .oe_about .oe_bottom a {
- color: #eeeeee; }
- .openerp.ui-dialog.oe_act_window .ui-dialog-content {
- padding: 0px; }
- .openerp .modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: black;
- filter: alpha(opacity=30);
- opacity: 0.3; }
- .openerp .oe_i {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important; }
- .openerp .oe_e {
- font-family: "entypoRegular" !important;
- font-size: 34px;
- font-weight: 300 !important; }
- .openerp .oe_left {
- float: left;
- margin-right: 8px; }
- .openerp .oe_right {
- float: right;
- margin-left: 8px; }
- .openerp .oe_text_right {
- text-align: right; }
- .openerp .oe_clear {
- clear: both; }
- .openerp .oe_wait {
- cursor: wait; }
- .openerp .oe_fade {
- color: #888888;
- font-weight: normal; }
- .openerp .oe_bold {
- font-weight: bold; }
- .openerp .oe_inline {
- width: auto !important; }
- .openerp .oe_highlight {
- color: white;
- background: #dc5f59; }
- .openerp button.oe_highlight {
- 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: #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;
- background: #dc5f59;
- font-weight: bold; }
- .openerp .oe_form_dirty button.oe_highlight_on_dirty {
- 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 .oe_form_dirty button.oe_highlight_on_dirty:hover {
- background: #ed6f6a; }
- .openerp .oe_title {
- width: 50%;
- float: left; }
- .openerp .oe_title:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden; }
- .openerp .oe_button_box {
- width: 270px;
- text-align: right; }
- .openerp .oe_button_box button {
- margin: 4px; }
- .openerp .oe_avatar > img {
- max-height: 90px;
- max-width: 90px;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -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; }
- .openerp .oe_avatar + div {
- margin-left: 5px; }
- .openerp .oe_image_small > img {
- max-width: 50px;
- max-height: 50px; }
- .openerp .oe_image_medium > img {
- max-width: 180px;
- max-height: 180px; }
- .openerp .oe_button.oe_link {
- border: none;
- padding: 0;
- margin: 0;
- background: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_button.oe_link img {
- display: none; }
- .openerp .oe_button.oe_link span {
- border: none;
- padding: 0;
- margin: 0;
- background: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #7c7bad;
- font-weight: bold; }
- .openerp .oe_button.oe_link span:hover {
- text-decoration: underline; }
- .openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off {
- color: #cccccc;
- text-shadow: 0 0 2px black;
- vertical-align: top;
- position: relative;
- top: -5px; }
- .openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover {
- text-decoration: none; }
- .openerp .oe_webclient .oe_star_on {
- color: gold; }
- .openerp p.oe_grey {
- max-width: 650px; }
- .openerp .oe_grey {
- color: #aaaaaa; }
- .openerp .oe_tag {
- border: 1px solid #afafb6;
- font-size: 11px;
- padding: 2px 4px;
- margin: 0 2px 2px 0;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: #f0f0fa;
- color: #4c4c4c; }
- .openerp .oe_tag_dark {
- background: #7c7bad;
- color: #eeeeee; }
- .openerp .oe_tags {
- margin-bottom: 1px; }
- .openerp .oe_tags.oe_inline {
- min-width: 250px; }
- .openerp .oe_tags .text-wrap {
- width: 100% !important; }
- .openerp .oe_tags .text-wrap textarea {
- width: 100% !important; }
- .openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em {
- font-style: italic;
- text-decoration: none; }
- .openerp.oe_tooltip {
- font-size: 12px; }
- .openerp.oe_tooltip .oe_tooltip_string {
- color: #ffdd55;
- font-weight: bold;
- font-size: 13px; }
- .openerp.oe_tooltip .oe_tooltip_help {
- white-space: pre-wrap; }
- .openerp.oe_tooltip .oe_tooltip_technical {
- padding: 0 0 4px 0;
- margin: 5px 0 0 15px; }
- .openerp.oe_tooltip .oe_tooltip_technical li {
- list-style: circle; }
- .openerp.oe_tooltip .oe_tooltip_technical_title {
- font-weight: bold; }
- .openerp.oe_tooltip .oe_tooltip_close {
- margin: -5px 0 0 2px;
- cursor: default;
- float: right;
- color: white; }
- .openerp.oe_tooltip .oe_tooltip_close:hover {
- color: #999999;
- cursor: pointer; }
- .openerp.oe_tooltip .oe_tooltip_message {
- max-width: 310px; }
- .openerp .oe_notebook {
- margin: 8px 0;
- padding: 0 16px;
- list-style: none;
- zoom: 1; }
- .openerp .oe_notebook.ui-corner-all {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .openerp .oe_notebook:before, .openerp .oe_notebook:after {
- display: table;
- content: "";
- zoom: 1; }
- .openerp .oe_notebook:after {
- clear: both; }
- .openerp .oe_notebook > li {
- float: left; }
- .openerp .oe_notebook > li > a {
- display: block;
- color: #4c4c4c; }
- .openerp .oe_notebook {
- border-color: #dddddd;
- border-style: solid;
- border-width: 0 0 1px; }
- .openerp .oe_notebook > li {
- position: relative; }
- .openerp .oe_notebook > li > a {
- padding: 0 12px;
- margin-right: 2px;
- line-height: 30px;
- border: 1px solid transparent;
- -moz-border-radius: 4px 4px 0 0;
- -webkit-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0; }
- .openerp .oe_notebook > li > a:hover {
- text-decoration: none;
- background-color: #eeeeee;
- border-color: #eeeeee #eeeeee #dddddd; }
- .openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover {
- background-color: white;
- border: 1px solid #dddddd;
- border-bottom-color: transparent;
- cursor: default; }
- .openerp .oe_notebook_page {
- padding: 0; }
- .openerp div.ui-tabs {
- padding: 3px 0px 3px 0px; }
- .openerp .ui-tabs-hide {
- display: none; }
- .openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle {
- position: relative;
- cursor: pointer; }
- .openerp .oe_dropdown_toggle {
- color: rgba(0, 0, 0, 0.5);
- font-weight: normal; }
- .openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened {
- display: block; }
- .openerp .oe_dropdown_menu {
- display: none;
- position: absolute;
- top: 26px;
- left: 0;
- z-index: 3;
- margin: 0;
- padding: 0;
- border: 1px solid #afafb6;
- background: white;
- padding: 4px 0;
- min-width: 140px;
- text-align: left;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); }
- .openerp .oe_dropdown_menu > li {
- list-style-type: none;
- float: none;
- display: block;
- position: relative;
- margin: 0;
- padding: 2px 8px; }
- .openerp .oe_dropdown_menu > li:hover {
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_dropdown_menu > li > a {
- white-space: nowrap;
- display: block;
- color: #4c4c4c;
- text-decoration: none; }
- .openerp .oe_dropdown_menu > li > a:hover {
- text-decoration: none; }
- .openerp .oe_dropdown_arrow:after {
- width: 0;
- height: 0;
- display: inline-block;
- content: "&darr";
- text-indent: -99999px;
- vertical-align: top;
- margin-top: 8px;
- margin-left: 3px;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid #404040;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_sidebar {
- white-space: nowrap; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment {
- height: 20px;
- cursor: pointer;
- padding-left: 6px;
- margin-top: 6px; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span {
- font-weight: bold; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file {
- width: 200px; }
- .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover {
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item {
- position: absolute;
- top: 4px;
- right: 4px;
- display: none;
- width: 12px;
- height: 12px;
- padding: 1px;
- color: #8786b7;
- line-height: 8px;
- text-align: center;
- font-weight: bold;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover {
- text-decoration: none;
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item {
- display: inline-block; }
- .openerp .oe_loading {
- display: none;
- z-index: 100;
- position: fixed;
- top: 0;
- right: 50%;
- padding: 4px 12px;
- background: #a61300;
- color: white;
- text-align: center;
- border: 1px solid #990000;
- border-top: none;
- -moz-border-radius-bottomright: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-right-radius: 8px;
- border-bottom-left-radius: 8px; }
- .openerp .oe_notification {
- z-index: 1050; }
- .openerp .oe_login {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- text-align: center;
- font-size: 14px;
- height: 100%; }
- .openerp .oe_login ul, .openerp .oe_login li {
- margin: 0;
- list-style-type: none;
- padding: 0 0 4px 0; }
- .openerp .oe_login button {
- float: right;
- display: inline-block;
- cursor: pointer;
- padding: 6px 16px;
- border: 1px solid #222222;
- color: white;
- margin: 0;
- background-color: #b92020;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606));
- background-image: -webkit-linear-gradient(top, #b92020, #600606);
- background-image: -moz-linear-gradient(top, #b92020, #600606);
- background-image: -ms-linear-gradient(top, #b92020, #600606);
- background-image: -o-linear-gradient(top, #b92020, #600606);
- background-image: linear-gradient(to bottom, #b92020, #600606);
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -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 .oe_login input, .openerp .oe_login select {
- width: 252px;
- 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.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; }
- .openerp .oe_login input {
- margin-bottom: 9px;
- padding: 5px 6px; }
- .openerp .oe_login select {
- padding: 1px; }
- .openerp .oe_login .oe_login_dbpane {
- position: fixed;
- top: 0;
- right: 8px;
- padding: 5px 10px;
- color: #eeeeee;
- border: solid 1px #333333;
- background: #1e1e1e;
- background: rgba(30, 30, 30, 0.94);
- -moz-border-radius: 0 0 8px 8px;
- -webkit-border-radius: 0 0 8px 8px;
- border-radius: 0 0 8px 8px; }
- .openerp .oe_login .oe_login_dbpane input {
- padding: 2px 4px;
- margin: 4px 0; }
- .openerp .oe_login .oe_login_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606); }
- .openerp .oe_login .oe_login_pane {
- position: absolute;
- top: 50%;
- left: 50%;
- margin: -160px -166px;
- border: solid 1px #333333;
- background: #1e1e1e;
- background: rgba(30, 30, 30, 0.94);
- padding: 22px 32px;
- color: #eeeeee;
- text-align: left;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
- -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 h2 {
- margin-top: 0;
- font-size: 18px; }
- .openerp .oe_login .oe_login_logo {
- position: absolute;
- top: -70px;
- left: 0;
- width: 100%;
- margin: 0 auto;
- text-align: center; }
- .openerp .oe_login .oe_login_footer {
- position: absolute;
- bottom: -40px;
- left: 0;
- width: 100%;
- text-align: center; }
- .openerp .oe_login .oe_login_footer a {
- color: #eeeeee;
- margin: 0 8px; }
- .openerp .oe_login .oe_login_footer a:hover {
- text-decoration: underline; }
- .openerp .oe_login .oe_login_footer span {
- font-weight: bold;
- font-size: 16px; }
- .openerp .oe_login .oe_login_error_message {
- display: none;
- background-color: #b41616;
- color: #eeeeee;
- padding: 14px 18px;
- margin-top: 15px;
- text-align: center;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); }
- .openerp .oe_login_invalid .oe_login_error_message {
- display: inline-block; }
- .openerp .oe_database_manager {
- background: white;
- color: black;
- text-align: left; }
- .openerp .oe_database_manager .oe_database_manager_menu {
- color: black; }
- .openerp .oe_webclient {
- width: 100%;
- height: 100%;
- border-spacing: 0px; }
- .openerp .oe_content_full_screen .oe_application {
- top: 0;
- left: 0; }
- .openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar {
- display: none; }
- .openerp .oe_topbar {
- width: 100%;
- height: 32px;
- background-color: #414141;
- background-color: #646060;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
- background-image: -webkit-linear-gradient(top, #646060, #262626);
- background-image: -moz-linear-gradient(top, #646060, #262626);
- background-image: -ms-linear-gradient(top, #646060, #262626);
- background-image: -o-linear-gradient(top, #646060, #262626);
- background-image: linear-gradient(to bottom, #646060, #262626); }
- .openerp .oe_topbar .oe_topbar_item {
- display: block;
- padding: 5px 10px 7px;
- line-height: 20px;
- height: 20px;
- text-decoration: none;
- color: #eeeeee;
- vertical-align: top;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-transition: all 0.2s ease-out;
- -moz-transition: all 0.2s ease-out;
- -ms-transition: all 0.2s ease-out;
- -o-transition: all 0.2s ease-out;
- transition: all 0.2s ease-out; }
- .openerp .oe_topbar .oe_topbar_item:hover {
- background: rgba(0, 0, 0, 0.2);
- text-shadow: black 0px 0px 3px;
- color: white;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_topbar .oe_topbar_avatar {
- width: 24px;
- height: 24px;
- margin: -2px 2px 0 0;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px; }
- .openerp .oe_topbar .oe_topbar_avatar {
- vertical-align: top; }
- .openerp .oe_topbar .oe_dropdown_arrow:after {
- border-top: 4px solid white; }
- .openerp .oe_topbar .oe_dropdown_menu {
- top: 32px;
- background: #333333;
- background: rgba(37, 37, 37, 0.9);
- border-color: #999999;
- border-color: rgba(0, 0, 0, 0.2);
- border-style: solid;
- border-width: 0 1px 1px;
- -moz-border-radius: 0 0 6px 6px;
- -webkit-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box; }
- .openerp .oe_topbar .oe_dropdown_menu li {
- float: none;
- padding: 3px 12px; }
- .openerp .oe_topbar .oe_dropdown_menu li a {
- color: #eeeeee; }
- .openerp .oe_topbar .oe_dropdown_menu li:hover {
- background-color: #292929;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919));
- background-image: -webkit-linear-gradient(top, #292929, #191919);
- background-image: -moz-linear-gradient(top, #292929, #191919);
- background-image: -ms-linear-gradient(top, #292929, #191919);
- background-image: -o-linear-gradient(top, #292929, #191919);
- background-image: linear-gradient(to bottom, #292929, #191919);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_menu {
- float: left;
- padding: 0;
- margin: 0;
- font-size: 13px; }
- .openerp .oe_menu > li {
- list-style-type: none;
- padding: 0;
- margin: 0;
- float: left;
- display: block;
- color: #eeeeee; }
- .openerp .oe_menu > li > a {
- display: block;
- padding: 5px 10px 7px;
- line-height: 20px;
- height: 20px;
- text-decoration: none;
- color: #eeeeee;
- vertical-align: top;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-transition: all 0.2s ease-out;
- -moz-transition: all 0.2s ease-out;
- -ms-transition: all 0.2s ease-out;
- -o-transition: all 0.2s ease-out;
- transition: all 0.2s ease-out; }
- .openerp .oe_menu > li > a:hover {
- background: rgba(0, 0, 0, 0.2);
- text-shadow: black 0px 0px 3px;
- color: white;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_menu > li > .oe_active {
- background: rgba(0, 0, 0, 0.3);
- text-shadow: black 0px 0px 3px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; }
- .openerp .oe_user_menu {
- float: right;
- padding: 0;
- margin: 0; }
- .openerp .oe_user_menu li {
- list-style-type: none;
- float: left; }
- .openerp .oe_user_menu .oe_dropdown_menu {
- right: -1px; }
- .openerp .oe_systray > div {
- float: left;
- padding: 0 4px 0 4px; }
- .openerp .oe_systray {
- float: right; }
- .openerp .oe_leftbar {
- display: none;
- width: 220px;
- background: #f0eeee;
- border-right: 1px solid #afafb6;
- text-shadow: 0 1px 1px white;
- padding-bottom: 16px; }
- .openerp a.oe_logo {
- width: 220px;
- display: block;
- text-align: center;
- height: 70px;
- line-height: 70px; }
- .openerp a.oe_logo img {
- height: 40px;
- width: 157px;
- margin: 14px 0; }
- .openerp .oe_footer {
- position: fixed;
- bottom: 0;
- padding: 4px 0;
- background: #f0eeee;
- width: 220px;
- text-align: center; }
- .openerp .oe_footer a {
- font-weight: 800;
- font-family: serif;
- font-size: 16px;
- color: black; }
- .openerp .oe_footer a span {
- color: #c81010;
- font-style: italic; }
- .openerp .oe_secondary_menu_section {
- font-weight: bold;
- margin-left: 8px;
- color: #7c7bad; }
- .openerp .oe_secondary_submenu {
- padding: 2px 0 8px 0;
- margin: 0;
- width: 100%;
- display: inline-block; }
- .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;
- color: #4c4c4c;
- padding: 2px 4px 2px 0; }
- .openerp .oe_secondary_submenu li .oe_menu_label {
- position: absolute;
- top: 1px;
- right: 1px;
- font-size: 10px;
- background: #7c7bad;
- color: white;
- padding: 2px 4px;
- margin: 1px 6px 0 0;
- border: 1px solid lightGray;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -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); }
- .openerp .oe_secondary_submenu .oe_menu_counter {
- float: right;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- margin: 1px;
- padding: 1px 4px;
- border: none; }
- .openerp .oe_secondary_submenu .oe_menu_counter:hover {
- cursor: pointer;
- -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 {
- border-top: 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 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; }
- .openerp .oe_secondary_submenu .oe_active .oe_menu_label {
- background: #eeeeee;
- color: #7c7bad;
- text-shadow: 0 1px 1px white;
- -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); }
- .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;
- height: 0;
- display: inline-block;
- content: "&darr";
- text-indent: -99999px;
- vertical-align: top;
- margin-left: -12px;
- margin-top: 4px;
- margin-right: 4px;
- border-top: 4px solid transparent;
- border-bottom: 4px solid transparent;
- border-left: 4px solid #4c4c4c;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_secondary_submenu .oe_menu_opened:before {
- margin-top: 6px;
- margin-left: -16px;
- margin-right: 4px;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid #4c4c4c; }
- .openerp .oe_about {
- background-color: white;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp .oe_about a {
- color: #7c7bad; }
- .openerp .oe_about a:hover {
- text-decoration: underline; }
- .openerp .oe_about a:focus {
- outline: none; }
- .openerp .oe_about .oe_logo {
- margin-left: -6px; }
- .openerp .oe_about .oe_bottom {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- bottom: 0;
- text-shadow: 0 1px 1px #999999;
- background-color: #b41616;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
- background-image: -webkit-linear-gradient(top, #b41616, #600606);
- background-image: -moz-linear-gradient(top, #b41616, #600606);
- background-image: -ms-linear-gradient(top, #b41616, #600606);
- background-image: -o-linear-gradient(top, #b41616, #600606);
- background-image: linear-gradient(to bottom, #b41616, #600606);
- color: #eeeeee;
- padding: 0 16px;
- -moz-border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- border-radius: 0 0 2px 2px; }
- .openerp .oe_about .oe_bottom a {
- color: #eeeeee; }
- .openerp .oe_application {
- width: 100%; }
- .openerp .oe_application a {
- color: #7c7bad; }
- .openerp .oe_application a:hover {
- text-decoration: underline; }
- .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; }
- .openerp .oe_view_manager .oe_view_manager_view_kanban {
- height: inherit; }
- .openerp .oe_view_manager table.oe_view_manager_header {
- width: 100%;
- table-layout: fixed; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row {
- clear: both;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td {
- padding-top: 0; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td {
- padding-top: 8px; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar {
- margin: 0px auto;
- text-align: center; }
- .openerp .oe_view_manager table.oe_view_manager_header td {
- line-height: 26px; }
- .openerp .oe_view_manager table.oe_view_manager_header h2 {
- font-size: 18px;
- margin: 0;
- float: left; }
- .openerp .oe_view_manager table.oe_view_manager_header h2 a {
- color: #7c7bad; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu {
- line-height: normal; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group {
- display: inline-block;
- border: 1px solid #ababab;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li {
- float: left;
- border-right: 1px solid #ababab; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child {
- border: none; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a {
- color: #4c4c4c; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover {
- text-decoration: none; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active {
- background: #999999;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a {
- color: white;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); }
- .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons {
- white-space: nowrap; }
- .openerp .oe_view_manager .oe_view_manager_pager {
- line-height: 26px; }
- .openerp .oe_view_manager .oe_view_manager_pager .oe_list_pager_single_page .oe_pager_group {
- display: none; }
- .openerp .oe_view_manager .oe_pager_value {
- 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;
- line-height: 24px;
- display: inline-block;
- border: 1px solid #ababab;
- cursor: pointer;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px; }
- .openerp .oe_view_manager .oe_pager_group li {
- height: 24px;
- line-height: 24px;
- padding: 0;
- margin: 0;
- list-style-type: none;
- float: left;
- border-right: 1px solid #ababab; }
- .openerp .oe_view_manager .oe_pager_group li:last-child {
- border: none; }
- .openerp .oe_view_manager .oe_pager_group a {
- color: #4c4c4c;
- padding: 0 8px; }
- .openerp .oe_view_manager .oe_pager_group a:hover {
- text-decoration: none; }
- .openerp .oe_view_manager .oe_pager_group .active {
- background: #999999;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; }
- .openerp .oe_view_manager .oe_pager_group .active a {
- color: white;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); }
- .openerp .oe_view_manager .oe_view_manager_switch {
- padding: 0;
- margin: 0 0 0 8px; }
- .openerp .oe_view_manager .oe_view_manager_switch li {
- 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; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after {
- padding: 2px;
- content: "i"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after {
- content: "m"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important;
- content: "}";
- top: -2px;
- position: relative; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after {
- font-family: "mnmliconsRegular" !important;
- font-size: 21px;
- font-weight: 300 !important;
- content: "y";
- top: -2px;
- position: relative; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after {
- content: "P"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after {
- content: "k"; }
- .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after {
- content: "f"; }
- .openerp .oe_view_manager_current {
- height: 100%; }
- .openerp .oe_view_manager_current > .oe_view_manager_header {
- border-bottom: 1px solid #cacaca;
- 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);
- -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
- -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
- box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); }
- .openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td {
- padding: 8px; }
- .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_inlineview {
- height: 100%; }
- .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 {
- display: none !important; }
- .openerp .oe_searchview {
- cursor: text;
- position: relative;
- float: right;
- padding: 1px 0;
- line-height: 18px;
- width: 400px;
- border: 1px solid #ababab;
- background: white;
- -moz-border-radius: 13px;
- -webkit-border-radius: 13px;
- border-radius: 13px;
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; }
- .openerp .oe_searchview input, .openerp .oe_searchview textarea {
- padding: 3px;
- height: 14px;
- font-size: 12px;
- line-height: 18px; }
- .openerp .oe_searchview.oe_focused {
- border-color: #a6a6fe;
- -moz-box-shadow: 0 1px 2px #a6a6fe inset;
- -webkit-box-shadow: 0 1px 2px #a6a6fe inset;
- box-shadow: 0 1px 2px #a6a6fe inset; }
- .openerp .oe_searchview .oe_searchview_clear {
- cursor: pointer;
- position: absolute;
- top: 0;
- right: 18px;
- width: 15px;
- height: 100%;
- background: url(../img/search_reset.gif) center center no-repeat; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer {
- position: absolute;
- top: 0;
- right: 0;
- height: 100%;
- padding: 0 7px 0 4px;
- color: #cccccc;
- cursor: pointer; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer:hover {
- color: #999999; }
- .openerp .oe_searchview .oe_searchview_unfold_drawer:before {
- position: absolute;
- top: 10px;
- right: 7px;
- width: 0;
- height: 0;
- display: inline-block;
- content: "";
- vertical-align: top;
- border-top: 5px solid #4c4c4c;
- border-left: 5px solid transparent;
- border-right: 5px solid transparent;
- filter: alpha(opacity=50);
- opacity: 0.5; }
- .openerp .oe_searchview .oe_searchview_search {
- font-size: 1px;
- letter-spacing: -1px;
- color: transparent;
- font-weight: normal;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- position: absolute;
- left: 3px;
- top: 1px;
- padding: 0;
- border: none;
- background: transparent; }
- .openerp .oe_searchview .oe_searchview_search:before {
- font: 21px "mnmliconsRegular";
- content: "r";
- color: #a3a3a3; }
- .openerp .oe_searchview .oe_searchview_facets {
- min-height: 22px;
- margin-left: 15px; }
- .openerp .oe_searchview .oe_searchview_facets * {
- vertical-align: top;
- display: inline-block;
- line-height: 17px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
- height: 18px;
- margin: 1px 0;
- font-size: 11px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
- outline: none; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input {
- padding: 0 0 0 6px;
- font-size: 12px;
- height: 16px;
- margin-top: 3px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus {
- outline: none; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
- position: relative;
- cursor: pointer;
- padding: 0;
- -webkit-font-smoothing: auto; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
- border-color: #a6a6fe;
- -moz-box-shadow: 0 0 3px 1px #a6a6fe;
- -webkit-box-shadow: 0 0 3px 1px #a6a6fe;
- box-shadow: 0 0 3px 1px #a6a6fe; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values {
- background: #f0f0fa;
- -moz-border-radius: 0 3px 3px 0;
- -webkit-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
- height: 18px;
- padding: 0 4px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category {
- color: white;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i {
- font-size: 16px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
- border-left: 1px solid #afafb6;
- text-shadow: 0 1px 1px white;
- color: #4c4c4c; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child {
- padding-right: 16px; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove {
- position: absolute;
- top: 3px;
- right: 3px;
- color: #8786b7;
- line-height: 8px;
- width: 12px;
- height: 12px;
- padding-top: 1px;
- text-align: center;
- font-weight: bold;
- cursor: pointer;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover {
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
- display: block; }
- .openerp .oe_searchview .oe_searchview_drawer {
- position: absolute;
- z-index: 100;
- margin-top: 4px;
- top: 100%;
- right: -1px;
- background-color: white;
- min-width: 100%;
- display: none;
- border: 1px solid #afafb6;
- text-align: left;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); }
- .openerp .oe_searchview .oe_searchview_drawer > div {
- border-top: 1px solid #cccccc;
- margin: 0;
- padding: 8px; }
- .openerp .oe_searchview .oe_searchview_drawer > div:first-child {
- border-top: none;
- margin: 0; }
- .openerp .oe_searchview .oe_searchview_drawer h3 {
- margin: 8px 4px 4px 12px;
- color: #7c7bad;
- font-size: 13px; }
- .openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
- margin: 0;
- cursor: pointer;
- font-weight: normal;
- display: inline-block; }
- .openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer h4:before {
- content: "▸ ";
- color: #a3a3a3; }
- .openerp .oe_searchview .oe_searchview_drawer button {
- margin: 4px 0; }
- .openerp .oe_searchview .oe_searchview_drawer .button {
- border: none;
- background: transparent;
- padding: 0 2px;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
- display: table;
- width: 100%; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- display: table-cell;
- width: 50%; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
- margin: 0 8px 8px;
- padding: 0;
- list-style: none; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
- list-style: none;
- padding: 2px 4px 2px 20px;
- line-height: 14px;
- color: inherit;
- cursor: pointer;
- position: relative; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
- content: "W";
- font-family: "entypoRegular" !important;
- font-size: 24px;
- font-weight: 300 !important;
- color: #a3a3a3;
- position: absolute;
- left: 4px;
- top: -2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer form {
- margin-left: 12px; }
- .openerp .oe_searchview .oe_searchview_drawer form p {
- margin: 4px 0;
- line-height: 18px; }
- .openerp .oe_searchview .oe_searchview_drawer form button {
- margin: 0 0 8px 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
- padding: 0 8px 8px 8px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
- display: none; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li {
- cursor: pointer;
- position: relative;
- line-height: 14px;
- padding: 2px 4px 2px 20px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
- background-color: #f0f0fa; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
- position: absolute;
- top: 0;
- right: 5px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
- display: none;
- margin-top: 2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
- display: none;
- margin-top: 8px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
- content: "Z";
- font-family: "entypoRegular" !important;
- font-size: 24px;
- font-weight: 300 !important;
- margin-right: 4px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
- list-style: none;
- padding: 0; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
- position: relative;
- list-style: none;
- margin: 0;
- white-space: nowrap; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
- visibility: hidden; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
- opacity: 0.5;
- margin-left: -14px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
- content: "▾ ";
- position: relative;
- top: -1px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
- display: block; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
- display: inline-block;
- width: 12px;
- height: 12px;
- line-height: 12px;
- padding: 1px;
- color: #8786b7;
- line-height: 8px;
- text-align: center;
- font-weight: bold;
- text-shadow: 0 1px 1px white; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
- text-decoration: none;
- color: white;
- background: #8786b7;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
- display: none;
- position: absolute;
- bottom: 1px;
- right: 4px; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
- display: inline-block; }
- .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
- content: ",";
- font-family: "entypoRegular" !important;
- font-size: 22px;
- font-weight: 300 !important;
- margin: 0 0 0 4px;
- padding: 0; }
- .openerp .oe_view_nocontent {
- padding: 15px;
- margin-top: 0;
- color: #777777;
- font-size: 125%;
- max-width: 700px; }
- .openerp .oe_view_nocontent .oe_view_nocontent_create {
- background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 7px 0;
- margin-top: 0;
- padding-top: 35px;
- min-height: 28px;
- color: #4c4c4c; }
- .openerp .oe_view_nocontent > p {
- padding-left: 95px; }
- .openerp .oe_view_nocontent .oe_empty_custom_dashboard {
- background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0;
- margin-top: -15px;
- padding: 100px 0 0 137px;
- min-height: 327px;
- margin-left: -15px; }
- .openerp .oe_formview {
- background: white; }
- .openerp .oe_form_dropdown_section {
- position: relative;
- display: inline-block; }
- .openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea {
- background-color: #ff6666 !important;
- border: 1px solid #dd0000 !important; }
- .openerp .oe_view_manager_current .oe_form_editable .oe_highlight {
- color: #404040;
- background: none; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight {
- background-color: #efefef;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
- background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
- background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
- background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active {
- background-color: #e3e3e3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
- background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
- background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover {
- background-color: #f6f6f6;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
- background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
- background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; }
- .openerp .oe_form_invisible {
- display: none !important; }
- .openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty {
- display: none !important; }
- .openerp .oe_form_readonly .oe_form .oe_form_field_date {
- width: auto; }
- .openerp .oe_form_nosheet {
- margin: 16px; }
- .openerp .oe_form_nosheet > header {
- margin: -16px -16px 0 -16px;
- padding: 0; }
- .openerp .oe_form_sheetbg {
- padding: 16px 0; }
- .openerp .oe_form_sheet_width {
- min-width: 650px;
- max-width: 860px;
- margin: 0 auto; }
- .openerp .oe_form_sheet {
- background: white;
- min-height: 330px;
- padding: 16px; }
- .openerp .oe_application .oe_form_sheetbg {
- background: url(/web/static/src/img/form_sheetbg.png);
- border-bottom: 1px solid #dddddd; }
- .openerp .oe_application .oe_form_sheet {
- border: 1px solid #c8c8d3;
- -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
- -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); }
- .openerp .oe_application .oe_form_sheet .ui-tabs {
- margin: 0 -16px; }
- .openerp .oe_application .oe_form_sheet .oe_notebook_page {
- padding: 0 16px; }
- .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);
- 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 header > span {
- margin-left: 4px; }
- .openerp .oe_form header ul {
- display: inline-block;
- float: right; }
- .openerp .oe_form header .oe_button {
- margin: 3px 2px 1px; }
- .openerp .oe_form header .oe_button:first-child {
- margin-left: 6px; }
- .openerp .oe_form header .oe_tags {
- margin: 5px 0 0 5px;
- width: 400px;
- padding-bottom: 0; }
- .openerp .oe_form div.oe_chatter {
- min-width: 650px;
- max-width: 860px;
- margin: 0 auto;
- padding: 16px 0 48px; }
- .openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol {
- color: #aaaaaa;
- max-width: 650px; }
- .openerp .oe_form div.oe_form_configuration label {
- min-width: 150px; }
- .openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label {
- padding: 1px 0; }
- .openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div {
- padding: 1px 0; }
- .openerp .oe_form .oe_subtotal_footer {
- width: 1% !important; }
- .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell {
- text-align: right;
- padding: 0 !important; }
- .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label {
- border-right: none; }
- .openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator {
- width: 108px;
- border-top: 1px solid #cacaca;
- margin-top: 4px;
- padding-top: 4px;
- font-weight: bold;
- font-size: 18px; }
- .openerp .oe_form .oe_subtotal_footer label:after {
- content: ":"; }
- .openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator {
- font-weight: bold !important;
- padding: 2px 11px 2px 0px !important; }
- .openerp .oe_form .oe_subtotal_footer label.oe_form_label_help {
- font-weight: normal; }
- .openerp .oe_form .oe_form_button {
- margin: 2px; }
- .openerp .oe_form td.oe_form_group_cell_label {
- border-right: 1px solid #dddddd;
- padding: 2px 0px; }
- .openerp .oe_form td.oe_form_group_cell_label label {
- line-height: 18px;
- display: block;
- min-width: 140px; }
- .openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
- padding: 2px 0 2px 8px; }
- .openerp .oe_form .oe_form_group {
- width: 100%;
- margin: 9px 0 9px 0; }
- .openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right {
- padding-left: 20px; }
- .openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
- font-weight: bold;
- white-space: nowrap;
- padding-right: 8px; }
- .openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
- font-size: 80%;
- color: darkGreen;
- vertical-align: top;
- position: relative;
- top: -4px;
- padding: 0 2px; }
- .openerp .oe_horizontal_border {
- border-bottom: 1px solid black; }
- .openerp .oe_horizontal_separator {
- font-weight: bold;
- font-size: 20px;
- margin: 15px 0px 10px 0px;
- color: #7c7bad; }
- .openerp .oe_horizontal_separator:empty {
- height: 5px; }
- .openerp .oe_vertical_separator {
- border-left: 1px solid #666666;
- padding: 0 4px 0 4px; }
- .openerp .oe_form_field_progressbar {
- display: inline-block;
- min-width: 70px; }
- .openerp .oe_form_field_progressbar.ui-progressbar {
- height: 22px;
- font-size: 10px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- border: 1px solid #999999;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: white;
- min-width: 50px; }
- .openerp .oe_form_field_progressbar.ui-progressbar span {
- position: absolute;
- margin-left: 10px;
- font-weight: bold; }
- .openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header {
- background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; }
- .openerp .oe_form .oe_form_field_text {
- width: 100%; }
- .openerp .oe_form .oe_form_field_char input,
- .openerp .oe_form .oe_form_field_url input,
- .openerp .oe_form .oe_form_field_email input,
- .openerp .oe_form .oe_form_field_text textarea,
- .openerp .oe_form .oe_form_field_selection select {
- width: 100%; }
- .openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea {
- width: 500px; }
- .openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 {
- margin: 0 0 4px 0; }
- .openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input {
- height: inherit !important;
- font-size: inherit; }
- .openerp .oe_form .oe_form_field {
- width: 100%;
- display: inline-block;
- padding: 2px 2px 2px 0px; }
- .openerp .oe_form .oe_form_field input {
- margin: 0px; }
- .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select {
- height: 22px;
- padding-top: 2px; }
- .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box;
- background: white;
- min-width: 60px;
- color: #1f1f1f; }
- .openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] {
- background: #e5e5e5 !important;
- color: #666666; }
- .openerp .oe_form textarea[disabled] {
- border: none;
- padding-left: 8px;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0px;
- -webkit-border-radius: 0px;
- border-radius: 0px; }
- .openerp .oe_form textarea.oe_inline[disabled] {
- border-left: 8px solid #eeeeee; }
- .openerp .oe_form .oe_form_field_url button img {
- vertical-align: top; }
- .openerp .oe_form .oe_form_field_date,
- .openerp .oe_form .oe_form_field_datetime {
- white-space: nowrap; }
- .openerp .oe_form .oe_form_field_boolean {
- padding-top: 4px;
- width: auto; }
- .openerp .oe_form .oe_datepicker_container {
- display: none; }
- .openerp .oe_form .oe_datepicker_root {
- display: inline-block; }
- .openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) {
- background-color: #d2d2ff !important; }
- .openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea {
- background-color: #ff6666 !important;
- border: 1px solid #dd0000 !important; }
- .openerp .oe_form .oe_input_icon {
- cursor: pointer;
- margin: 3px 0 0 -21px;
- vertical-align: top; }
- .openerp .oe_form .oe_input_icon_disabled {
- position: absolute;
- cursor: default;
- opacity: 0.5;
- filter: alpha(opacity=50);
- right: 5px;
- top: 3px; }
- .openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button {
- display: none; }
- .openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button {
- float: right;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- border-bottom-left-radius: 0px;
- height: 22px; }
- .openerp .oe_form .oe_form_field_with_button input {
- width: 100%; }
- .openerp .oe_form .oe_form_field_with_button > div {
- position: relative;
- overflow: hidden; }
- .openerp .oe_form .oe_form_embedded_html {
- position: relative;
- width: 600px;
- margin-left: 130px;
- margin-top: 32px;
- margin-bottom: 32px;
- text-align: justify; }
- .openerp .oe_form_editable .oe_form .oe_form_field_integer input {
- width: 6em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_float input {
- width: 7em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_date input {
- width: 7.5em !important; }
- .openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
- width: 11.5em !important; }
- .openerp .oe_hidden_input_file {
- position: relative; }
- .openerp .oe_hidden_input_file input.oe_form_binary_file {
- z-index: 0;
- line-height: 0;
- font-size: 12px;
- position: absolute;
- top: 1px;
- left: 0;
- right: 0;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "alpha(opacity=0)";
- margin: 0;
- padding: 0; }
- .openerp .oe_form .oe_form_field_image {
- padding: 0;
- position: relative;
- display: inline-block;
- width: auto;
- vertical-align: top; }
- .openerp .oe_form .oe_form_field_image .oe_form_field_image_controls {
- position: absolute;
- top: 1px;
- padding: 4px;
- width: 100%;
- display: none;
- text-align: center;
- color: #eeeeee;
- background: rgba(37, 37, 37, 0.9);
- -moz-border-radius: 3px 3px 0 0;
- -webkit-border-radius: 3px 3px 0 0;
- border-radius: 3px 3px 0 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- -ms-box-sizing: border-box;
- box-sizing: border-box; }
- .openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls {
- display: block; }
- .openerp .oe_form_field_many2one td:first-child {
- position: relative; }
- .openerp .oe_form_field_many2one span.oe_m2o_drop_down_button {
- position: absolute;
- top: 2px;
- right: 0px; }
- .openerp .oe_form_field_many2one .oe_m2o_cm_button {
- line-height: 14px;
- float: right;
- padding-left: 2px; }
- .openerp.ui-autocomplete li.oe_m2o_dropdown_option a {
- font-style: italic;
- padding-left: 2em; }
- .openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option {
- margin-top: 10px; }
- .openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable {
- display: inline-block;
- margin: 0;
- padding: 0 18px 0 0; }
- .openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
- display: inline-block;
- list-style-type: none;
- margin: 0 -18px 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 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; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
- display: none !important; }
- .openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
- font-weight: bold; }
- .openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead {
- border-bottom: 1px; }
- .openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) {
- background: transparent; }
- .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save {
- background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat; }
- .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before {
- visibility: hidden; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top {
- display: none; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td {
- padding: 0px 8px;
- line-height: 16px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i {
- font-size: 13px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group {
- height: auto;
- line-height: 16px; }
- .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li {
- height: auto;
- line-height: 16px; }
- .openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save {
- visibility: hidden; }
- .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required {
- background-color: #d2d2ff; }
- .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly {
- background-color: #eeeeee; }
- .openerp .oe_list_editable .oe_list_content td.oe_list_field_cell {
- padding: 4px 6px 3px 6px; }
- .openerp .oe_list.oe_list_editable td.oe_list_record_delete {
- position: absolute; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
- color: transparent; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * {
- visibility: hidden; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button {
- top: 5px; }
- .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 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 {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- border: 1px solid #aaaaff;
- margin: 0; }
- .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;
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
- width: 100% !important; }
- .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
- min-width: 0 !important;
- max-width: none !important; }
- .openerp .oe_list_group_name {
- white-space: nowrap; }
- .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 {
- display: none; }
- .openerp .oe_list_buttons.oe_editing .oe_list_save {
- display: inline-block; }
- .openerp .oe_list_buttons.oe_editing .oe_list_discard {
- display: inline; }
- .openerp .oe_list_buttons.oe_editing .oe_alternative {
- visibility: visible; }
- .openerp .oe_list .oe_form .oe_form_nosheet {
- margin: 0;
- padding: 0;
- border: none; }
- .openerp .oe_list .oe_form .oe_form_field {
- width: auto;
- position: absolute;
- 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%; }
- .openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after {
- border-width: 0; }
- .openerp .oe_list_content td.oe_number {
- text-align: right !important;
- max-width: 100px; }
- .openerp .oe_list_content > thead {
- border-bottom: 2px solid #cacaca;
- background: #eeeeee;
- vertical-align: top; }
- .openerp .oe_list_content td, .openerp .oe_list_content th {
- padding: 3px 6px;
- line-height: 18px; }
- .openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div {
- cursor: pointer; }
- .openerp .oe_list_content th.oe_sortable div {
- position: relative; }
- .openerp .oe_list_content th.oe_sortable div:after {
- position: absolute;
- right: 6px;
- content: "";
- margin-top: 7px;
- border-width: 0 4px 4px;
- border-style: solid;
- border-color: black transparent;
- visibility: hidden; }
- .openerp .oe_list_content th.sortup div:after {
- visibility: visible;
- filter: alpha(opacity=60);
- opacity: 0.6; }
- .openerp .oe_list_content th.sortdown div:after {
- border-bottom: none;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid black;
- visibility: visible;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- filter: alpha(opacity=60);
- opacity: 0.6; }
- .openerp .oe_list_content > tbody {
- cursor: pointer; }
- .openerp .oe_list_content > tbody > tr {
- height: 27px;
- border-top: 1px solid #dddddd; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
- padding: 3px 6px;
- white-space: pre-line; }
- .openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
- border: none;
- background: transparent;
- padding: 0;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child {
- width: 17px; }
- .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
- border-width: 0; }
- .openerp .oe_list_content > tbody > tr:nth-child(odd) {
- background-color: #f0f0fa;
- background-color: #f0f0fa;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
- background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
- background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); }
- .openerp .oe_list_content > tfoot {
- border-top: 2px solid #cacaca;
- border-bottom: 1px solid #cacaca;
- background: #eeeeee;
- font-weight: bold; }
- .openerp .oe_list_content .numeric {
- text-align: right;
- width: 82px; }
- .openerp .oe_list_content .numeric input {
- text-align: right; }
- .openerp .oe_list_content th.oe_list_header_handle {
- font-size: 1px;
- overflow: hidden;
- text-indent: -9001px; }
- .openerp .oe_list_content td.oe_list_field_handle {
- width: 1em;
- padding: 0 !important;
- cursor: ns-resize; }
- .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle {
- font-size: 1px;
- letter-spacing: -1px;
- color: transparent;
- font-weight: normal;
- margin-right: 7px; }
- .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before {
- font: 18px "entypoRegular";
- content: "}";
- color: #e0e0e0; }
- .openerp .oe_list_cannot_create .oe_view_nocontent_create {
- display: none; }
- .openerp .oe_list_cannot_edit .oe_list_header_handle, .openerp .oe_list_cannot_edit .oe_list_field_handle {
- display: none !important;
- padding: 0 !important; }
- .openerp .oe_list_cannot_delete .oe_list_record_delete {
- display: none !important; }
- .openerp .tree_header {
- background-color: #f0f0f0;
- border-bottom: 1px solid #cacaca;
- color: #4c4c4c;
- padding: 5px;
- height: 25px; }
- .openerp .tree_header button {
- float: right;
- height: 27px;
- margin-right: 5px; }
- .openerp .oe-treeview-table {
- width: 100%;
- background-color: white;
- border-spacing: 0;
- color: #4c4c4c; }
- .openerp .oe-treeview-table th {
- padding: 10px;
- font-weight: bold;
- background-color: #f0f0f0;
- border-bottom: 2px solid #cacaca; }
- .openerp .oe-treeview-table td {
- cursor: pointer;
- vertical-align: middle;
- text-align: left;
- vertical-align: middle;
- height: 20px;
- padding-left: 4px;
- padding-right: 4px;
- border-right: 1px solid #e7e7e7; }
- .openerp .oe-treeview-table td.oe_number {
- text-align: right !important; }
- .openerp .oe-treeview-table tr {
- border-bottom: 1px solid #d6d6d6; }
- .openerp .oe-treeview-table tr:hover {
- background-color: #e7e7e7; }
- .openerp .oe-treeview-table span {
- font-size: 90%;
- font-weight: normal;
- white-space: nowrap;
- display: block; }
- .openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
- background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; }
- .openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
- background-image: url(/web/static/src/img/collapse.gif); }
- .openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
- margin-left: 16px; }
- .openerp .oe_layout_debugging .oe_form_group {
- outline: 2px dashed green; }
- .openerp .oe_layout_debugging .oe_form_group_cell {
- outline: 1px solid blue; }
- .openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover {
- outline-color: red; }
- .openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after {
- content: "[Incomplete Row]";
- background: red;
- padding: 2px;
- font-weight: bold;
- color: white;
- float: right; }
- .openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after {
- content: "[newline]"; }
- .openerp .oe_debug_view {
- float: left; }
- .openerp .oe_debug_view_log {
- font-size: 95%; }
- .openerp .oe_debug_view_log label {
- display: block;
- width: 49%;
- text-align: right;
- float: left;
- font-weight: bold;
- color: #000099; }
- .openerp .oe_debug_view_log span {
- display: block;
- width: 49%;
- float: right;
- color: #333333; }
+ */
+}
+.openerp :-moz-placeholder {
+ color: #afafb6 !important;
+ font-style: italic !important;
+}
+.openerp ::-webkit-input-placeholder {
+ color: #afafb6 !important;
+ font-style: italic !important;
+}
+.openerp a {
+ text-decoration: none;
+ cursor: pointer !important;
+}
+.openerp table {
+ padding: 0;
+ border-collapse: collapse;
+}
+.openerp thead {
+ font-weight: bold;
+ background-color: #f0f0f0;
+}
+.openerp thead th {
+ border-left: 1px solid #dfdfdf;
+}
+.openerp thead th:first-child {
+ border-left: none;
+}
+.openerp thead th.null {
+ border-left: none;
+}
+.openerp th, .openerp td {
+ padding: 0;
+ text-align: left;
+}
+.openerp th {
+ font-weight: bold;
+ vertical-align: middle;
+}
+.openerp td {
+ vertical-align: top;
+}
+.openerp .zebra tbody tr:nth-child(odd) td {
+ background-color: #f0f0fa;
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+}
+.openerp .zebra tbody tr:hover td {
+ background-color: #eeeeee;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
+ background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -moz-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -ms-linear-gradient(top, #eeeeee, #dedede);
+ background-image: -o-linear-gradient(top, #eeeeee, #dedede);
+ background-image: linear-gradient(to bottom, #eeeeee, #dedede);
+}
+.openerp input, .openerp textarea, .openerp select {
+ padding: 2px 4px;
+ border: 1px solid #cccccc;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: white;
+}
+.openerp img {
+ vertical-align: middle;
+}
+.openerp h4 {
+ margin: 4px 0;
+}
+.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 rgba(0, 0, 0, 0.4);
+ color: #4c4c4c;
+ margin: 0;
+ padding: 3px 12px;
+ font-size: 13px;
+ text-align: center;
+ background-color: #efefef;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
+ background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+ -webkit-font-smoothing: antialiased;
+ outline: none;
+}
+.openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ cursor: pointer;
+ background-position: 0;
+}
+.openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
+ border: 1px solid #80bfff;
+ background-position: 0;
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
+ background-color: #e3e3e3;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
+ background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled {
+ background: #efefef !important;
+ border: 1px solid #d1d1d1 !important;
+ -moz-box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ color: #aaaaaa !important;
+ cursor: default;
+ text-shadow: 0 1px 1px white !important;
+}
+.openerp .ui-widget-content a {
+ color: #7c7bad;
+}
+.openerp .oe_bounce_container {
+ display: inline-block;
+}
+.openerp .ui-tabs {
+ position: static;
+}
+.openerp.ui-dialog {
+ display: none;
+ padding: 6px;
+ background-color: rgba(60, 60, 60, 0.7);
+ border: 1px solid;
+ border-color: #888888 #555555 #444444;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
+}
+.openerp.ui-dialog .ui-dialog-content {
+ padding: 0px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
+ padding: 16px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar {
+ border-bottom: 1px solid #cacaca;
+ -moz-border-radius: 2px 2px 0 0;
+ -webkit-border-radius: 2px 2px 0 0;
+ border-radius: 2px 2px 0 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.ui-dialog .ui-dialog-titlebar .ui-dialog-title {
+ margin: 0;
+ padding: 0;
+}
+.openerp.ui-dialog .ui-widget-header {
+ border: none;
+}
+.openerp.ui-dialog .ui-dialog-content {
+ background: white;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane {
+ border-top: 1px solid #e0e0e0;
+ background: #f5f7f9;
+ margin: 0;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane button {
+ margin: 0 4px 0 0;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+ float: left;
+}
+.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
+ margin-right: 4px;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close {
+ padding: 0;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
+ display: none;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close:before {
+ content: "×";
+ font-size: 18px;
+ font-weight: bold;
+ line-height: 16px;
+ color: black;
+ text-shadow: 0 1px 0 white;
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+}
+.openerp.ui-dialog .ui-dialog-titlebar-close:before:hover {
+ color: black;
+ text-decoration: none;
+}
+.openerp.ui-dialog .oe_about {
+ background-color: white;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .oe_about a {
+ color: #7c7bad;
+}
+.openerp.ui-dialog .oe_about a:hover {
+ text-decoration: underline;
+}
+.openerp.ui-dialog .oe_about a:focus {
+ outline: none;
+}
+.openerp.ui-dialog .oe_about .oe_logo {
+ margin-left: -6px;
+}
+.openerp.ui-dialog .oe_about .oe_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+ color: #eeeeee;
+ padding: 0 16px;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp.ui-dialog .oe_about .oe_bottom a {
+ color: #eeeeee;
+}
+.openerp.ui-dialog.oe_act_window .ui-dialog-content {
+ padding: 0px;
+}
+.openerp .modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: black;
+ filter: alpha(opacity=30);
+ opacity: 0.3;
+}
+.openerp .oe_i {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+}
+.openerp .oe_e {
+ font-family: "entypoRegular" !important;
+ font-size: 34px;
+ font-weight: 300 !important;
+}
+.openerp .oe_left {
+ float: left;
+ margin-right: 8px;
+}
+.openerp .oe_right {
+ float: right;
+ margin-left: 8px;
+}
+.openerp .oe_text_right {
+ text-align: right;
+}
+.openerp .oe_clear {
+ clear: both;
+}
+.openerp .oe_wait {
+ cursor: wait;
+}
+.openerp .oe_fade {
+ color: #888888;
+ font-weight: normal;
+}
+.openerp .oe_bold {
+ font-weight: bold;
+}
+.openerp .oe_inline {
+ width: auto !important;
+}
+.openerp .oe_highlight {
+ color: white;
+ background: #dc5f59;
+}
+.openerp button.oe_highlight {
+ 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: #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;
+ background: #dc5f59;
+ font-weight: bold;
+}
+.openerp .oe_form_dirty button.oe_highlight_on_dirty {
+ 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 .oe_form_dirty button.oe_highlight_on_dirty:hover {
+ background: #ed6f6a;
+}
+.openerp .oe_title {
+ width: 50%;
+ float: left;
+}
+.openerp .oe_title:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.openerp .oe_button_box {
+ width: 270px;
+ text-align: right;
+}
+.openerp .oe_button_box button {
+ margin: 4px;
+}
+.openerp .oe_avatar > img {
+ max-height: 90px;
+ max-width: 90px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -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;
+}
+.openerp .oe_avatar + div {
+ margin-left: 5px;
+}
+.openerp .oe_image_small > img {
+ max-width: 50px;
+ max-height: 50px;
+}
+.openerp .oe_image_medium > img {
+ max-width: 180px;
+ max-height: 180px;
+}
+.openerp .oe_button.oe_link {
+ border: none;
+ padding: 0;
+ margin: 0;
+ background: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_button.oe_link img {
+ display: none;
+}
+.openerp .oe_button.oe_link span {
+ border: none;
+ padding: 0;
+ margin: 0;
+ background: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #7c7bad;
+ font-weight: bold;
+}
+.openerp .oe_button.oe_link span:hover {
+ text-decoration: underline;
+}
+.openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off {
+ color: #cccccc;
+ text-shadow: 0 0 2px black;
+ vertical-align: top;
+ position: relative;
+ top: -5px;
+}
+.openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover {
+ text-decoration: none;
+}
+.openerp .oe_webclient .oe_star_on {
+ color: gold;
+}
+.openerp p.oe_grey {
+ max-width: 650px;
+}
+.openerp .oe_grey {
+ color: #aaaaaa;
+}
+.openerp .oe_tag {
+ border: 1px solid #afafb6;
+ font-size: 11px;
+ padding: 2px 4px;
+ margin: 0 2px 2px 0;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: #f0f0fa;
+ color: #4c4c4c;
+}
+.openerp .oe_tag_dark {
+ background: #7c7bad;
+ color: #eeeeee;
+}
+.openerp .oe_tags {
+ margin-bottom: 1px;
+}
+.openerp .oe_tags.oe_inline {
+ min-width: 250px;
+}
+.openerp .oe_tags .text-wrap {
+ width: 100% !important;
+}
+.openerp .oe_tags .text-wrap textarea {
+ width: 100% !important;
+}
+.openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em {
+ font-style: italic;
+ text-decoration: none;
+}
+.openerp.oe_tooltip {
+ font-size: 12px;
+}
+.openerp.oe_tooltip .oe_tooltip_string {
+ color: #ffdd55;
+ font-weight: bold;
+ font-size: 13px;
+}
+.openerp.oe_tooltip .oe_tooltip_help {
+ white-space: pre-wrap;
+}
+.openerp.oe_tooltip .oe_tooltip_technical {
+ padding: 0 0 4px 0;
+ margin: 5px 0 0 15px;
+}
+.openerp.oe_tooltip .oe_tooltip_technical li {
+ list-style: circle;
+}
+.openerp.oe_tooltip .oe_tooltip_technical_title {
+ font-weight: bold;
+}
+.openerp.oe_tooltip .oe_tooltip_close {
+ margin: -5px 0 0 2px;
+ cursor: default;
+ float: right;
+ color: white;
+}
+.openerp.oe_tooltip .oe_tooltip_close:hover {
+ color: #999999;
+ cursor: pointer;
+}
+.openerp.oe_tooltip .oe_tooltip_message {
+ max-width: 310px;
+}
+.openerp .oe_notebook {
+ margin: 8px 0;
+ padding: 0 16px;
+ list-style: none;
+ zoom: 1;
+}
+.openerp .oe_notebook.ui-corner-all {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.openerp .oe_notebook:before, .openerp .oe_notebook:after {
+ display: table;
+ content: "";
+ zoom: 1;
+}
+.openerp .oe_notebook:after {
+ clear: both;
+}
+.openerp .oe_notebook > li {
+ float: left;
+}
+.openerp .oe_notebook > li > a {
+ display: block;
+ color: #4c4c4c;
+}
+.openerp .oe_notebook {
+ border-color: #dddddd;
+ border-style: solid;
+ border-width: 0 0 1px;
+}
+.openerp .oe_notebook > li {
+ position: relative;
+}
+.openerp .oe_notebook > li > a {
+ padding: 0 12px;
+ margin-right: 2px;
+ line-height: 30px;
+ border: 1px solid transparent;
+ -moz-border-radius: 4px 4px 0 0;
+ -webkit-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+.openerp .oe_notebook > li > a:hover {
+ text-decoration: none;
+ background-color: #eeeeee;
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover {
+ background-color: white;
+ border: 1px solid #dddddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.openerp .oe_notebook_page {
+ padding: 0;
+}
+.openerp div.ui-tabs {
+ padding: 3px 0px 3px 0px;
+}
+.openerp .ui-tabs-hide {
+ display: none;
+}
+.openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle {
+ position: relative;
+ cursor: pointer;
+}
+.openerp .oe_dropdown_toggle {
+ color: rgba(0, 0, 0, 0.5);
+ font-weight: normal;
+}
+.openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened {
+ display: block;
+}
+.openerp .oe_dropdown_menu {
+ display: none;
+ position: absolute;
+ top: 26px;
+ left: 0;
+ z-index: 3;
+ margin: 0;
+ padding: 0;
+ border: 1px solid #afafb6;
+ background: white;
+ padding: 4px 0;
+ min-width: 140px;
+ text-align: left;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+}
+.openerp .oe_dropdown_menu > li {
+ list-style-type: none;
+ float: none;
+ display: block;
+ position: relative;
+ margin: 0;
+ padding: 2px 8px;
+}
+.openerp .oe_dropdown_menu > li:hover {
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_dropdown_menu > li > a {
+ white-space: nowrap;
+ display: block;
+ color: #4c4c4c;
+ text-decoration: none;
+}
+.openerp .oe_dropdown_menu > li > a:hover {
+ text-decoration: none;
+}
+.openerp .oe_dropdown_arrow:after {
+ width: 0;
+ height: 0;
+ display: inline-block;
+ content: "&darr";
+ text-indent: -99999px;
+ vertical-align: top;
+ margin-top: 8px;
+ margin-left: 3px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #404040;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_sidebar {
+ white-space: nowrap;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment {
+ height: 20px;
+ cursor: pointer;
+ padding-left: 6px;
+ margin-top: 6px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span {
+ font-weight: bold;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file {
+ width: 200px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover {
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ display: none;
+ width: 12px;
+ height: 12px;
+ padding: 1px;
+ color: #8786b7;
+ line-height: 8px;
+ text-align: center;
+ font-weight: bold;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover {
+ text-decoration: none;
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item {
+ display: inline-block;
+}
+.openerp .oe_loading {
+ display: none;
+ z-index: 100;
+ position: fixed;
+ top: 0;
+ right: 50%;
+ padding: 4px 12px;
+ background: #a61300;
+ color: white;
+ text-align: center;
+ border: 1px solid #990000;
+ border-top: none;
+ -moz-border-radius-bottomright: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ border-bottom-right-radius: 8px;
+ border-bottom-left-radius: 8px;
+}
+.openerp .oe_notification {
+ z-index: 1050;
+}
+.openerp .oe_login {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ text-align: center;
+ font-size: 14px;
+ height: 100%;
+}
+.openerp .oe_login ul, .openerp .oe_login li {
+ margin: 0;
+ list-style-type: none;
+ padding: 0 0 4px 0;
+}
+.openerp .oe_login button {
+ float: right;
+ display: inline-block;
+ cursor: pointer;
+ padding: 6px 16px;
+ border: 1px solid #222222;
+ color: white;
+ margin: 0;
+ background-color: #b92020;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b92020, #600606);
+ background-image: -moz-linear-gradient(top, #b92020, #600606);
+ background-image: -ms-linear-gradient(top, #b92020, #600606);
+ background-image: -o-linear-gradient(top, #b92020, #600606);
+ background-image: linear-gradient(to bottom, #b92020, #600606);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -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 .oe_login input, .openerp .oe_login select {
+ width: 252px;
+ 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.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;
+}
+.openerp .oe_login input {
+ margin-bottom: 9px;
+ padding: 5px 6px;
+}
+.openerp .oe_login select {
+ padding: 1px;
+}
+.openerp .oe_login .oe_login_dbpane {
+ position: fixed;
+ top: 0;
+ right: 8px;
+ padding: 5px 10px;
+ color: #eeeeee;
+ border: solid 1px #333333;
+ background: #1e1e1e;
+ background: rgba(30, 30, 30, 0.94);
+ -moz-border-radius: 0 0 8px 8px;
+ -webkit-border-radius: 0 0 8px 8px;
+ border-radius: 0 0 8px 8px;
+}
+.openerp .oe_login .oe_login_dbpane input {
+ padding: 2px 4px;
+ margin: 4px 0;
+}
+.openerp .oe_login .oe_login_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+}
+.openerp .oe_login .oe_login_pane {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -160px -166px;
+ border: solid 1px #333333;
+ background: #1e1e1e;
+ background: rgba(30, 30, 30, 0.94);
+ padding: 22px 32px;
+ color: #eeeeee;
+ text-align: left;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
+ -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 h2 {
+ margin-top: 0;
+ font-size: 18px;
+}
+.openerp .oe_login .oe_login_logo {
+ position: absolute;
+ top: -70px;
+ left: 0;
+ width: 100%;
+ margin: 0 auto;
+ text-align: center;
+}
+.openerp .oe_login .oe_login_footer {
+ position: absolute;
+ bottom: -40px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.openerp .oe_login .oe_login_footer a {
+ color: #eeeeee;
+ margin: 0 8px;
+}
+.openerp .oe_login .oe_login_footer a:hover {
+ text-decoration: underline;
+}
+.openerp .oe_login .oe_login_footer span {
+ font-weight: bold;
+ font-size: 16px;
+}
+.openerp .oe_login .oe_login_error_message {
+ display: none;
+ background-color: #b41616;
+ color: #eeeeee;
+ padding: 14px 18px;
+ margin-top: 15px;
+ text-align: center;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
+}
+.openerp .oe_login_invalid .oe_login_error_message {
+ display: inline-block;
+}
+.openerp .oe_database_manager {
+ background: white;
+ color: black;
+ text-align: left;
+}
+.openerp .oe_database_manager .oe_database_manager_menu {
+ color: black;
+}
+.openerp .oe_webclient {
+ width: 100%;
+ height: 100%;
+ border-spacing: 0px;
+}
+.openerp .oe_content_full_screen .oe_application {
+ top: 0;
+ left: 0;
+}
+.openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar {
+ display: none;
+}
+.openerp .oe_topbar {
+ width: 100%;
+ height: 32px;
+ background-color: #414141;
+ background-color: #646060;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
+ background-image: -webkit-linear-gradient(top, #646060, #262626);
+ background-image: -moz-linear-gradient(top, #646060, #262626);
+ background-image: -ms-linear-gradient(top, #646060, #262626);
+ background-image: -o-linear-gradient(top, #646060, #262626);
+ background-image: linear-gradient(to bottom, #646060, #262626);
+}
+.openerp .oe_topbar .oe_topbar_item {
+ display: block;
+ padding: 5px 10px 7px;
+ line-height: 20px;
+ height: 20px;
+ text-decoration: none;
+ color: #eeeeee;
+ vertical-align: top;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-transition: all 0.2s ease-out;
+ -moz-transition: all 0.2s ease-out;
+ -ms-transition: all 0.2s ease-out;
+ -o-transition: all 0.2s ease-out;
+ transition: all 0.2s ease-out;
+}
+.openerp .oe_topbar .oe_topbar_item:hover {
+ background: rgba(0, 0, 0, 0.2);
+ text-shadow: black 0px 0px 3px;
+ color: white;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_topbar .oe_topbar_avatar {
+ width: 24px;
+ height: 24px;
+ margin: -2px 2px 0 0;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.openerp .oe_topbar .oe_topbar_avatar {
+ vertical-align: top;
+}
+.openerp .oe_topbar .oe_dropdown_arrow:after {
+ border-top: 4px solid white;
+}
+.openerp .oe_topbar .oe_dropdown_menu {
+ top: 32px;
+ background: #333333;
+ background: rgba(37, 37, 37, 0.9);
+ border-color: #999999;
+ border-color: rgba(0, 0, 0, 0.2);
+ border-style: solid;
+ border-width: 0 1px 1px;
+ -moz-border-radius: 0 0 6px 6px;
+ -webkit-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
+}
+.openerp .oe_topbar .oe_dropdown_menu li {
+ float: none;
+ padding: 3px 12px;
+}
+.openerp .oe_topbar .oe_dropdown_menu li a {
+ color: #eeeeee;
+}
+.openerp .oe_topbar .oe_dropdown_menu li:hover {
+ background-color: #292929;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919));
+ background-image: -webkit-linear-gradient(top, #292929, #191919);
+ background-image: -moz-linear-gradient(top, #292929, #191919);
+ background-image: -ms-linear-gradient(top, #292929, #191919);
+ background-image: -o-linear-gradient(top, #292929, #191919);
+ background-image: linear-gradient(to bottom, #292929, #191919);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_menu {
+ float: left;
+ padding: 0;
+ margin: 0;
+ font-size: 13px;
+}
+.openerp .oe_menu > li {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ float: left;
+ display: block;
+ color: #eeeeee;
+}
+.openerp .oe_menu > li > a {
+ display: block;
+ padding: 5px 10px 7px;
+ line-height: 20px;
+ height: 20px;
+ text-decoration: none;
+ color: #eeeeee;
+ vertical-align: top;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-transition: all 0.2s ease-out;
+ -moz-transition: all 0.2s ease-out;
+ -ms-transition: all 0.2s ease-out;
+ -o-transition: all 0.2s ease-out;
+ transition: all 0.2s ease-out;
+}
+.openerp .oe_menu > li > a:hover {
+ background: rgba(0, 0, 0, 0.2);
+ text-shadow: black 0px 0px 3px;
+ color: white;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_menu > li > .oe_active {
+ background: rgba(0, 0, 0, 0.3);
+ text-shadow: black 0px 0px 3px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset;
+}
+.openerp .oe_user_menu {
+ float: right;
+ padding: 0;
+ margin: 0;
+}
+.openerp .oe_user_menu li {
+ list-style-type: none;
+ float: left;
+}
+.openerp .oe_user_menu .oe_dropdown_menu {
+ right: -1px;
+}
+.openerp .oe_systray > div {
+ float: left;
+ padding: 0 4px 0 4px;
+}
+.openerp .oe_systray {
+ float: right;
+}
+.openerp .oe_leftbar {
+ display: none;
+ width: 220px;
+ background: #f0eeee;
+ border-right: 1px solid #afafb6;
+ text-shadow: 0 1px 1px white;
+ padding-bottom: 16px;
+}
+.openerp a.oe_logo {
+ width: 220px;
+ display: block;
+ text-align: center;
+ height: 70px;
+ line-height: 70px;
+}
+.openerp a.oe_logo img {
+ height: 40px;
+ width: 157px;
+ margin: 14px 0;
+}
+.openerp .oe_footer {
+ position: fixed;
+ bottom: 0;
+ padding: 4px 0;
+ background: #f0eeee;
+ width: 220px;
+ text-align: center;
+}
+.openerp .oe_footer a {
+ font-weight: 800;
+ font-family: serif;
+ font-size: 16px;
+ color: black;
+}
+.openerp .oe_footer a span {
+ color: #c81010;
+ font-style: italic;
+}
+.openerp .oe_secondary_menu_section {
+ font-weight: bold;
+ margin-left: 8px;
+ color: #7c7bad;
+}
+.openerp .oe_secondary_submenu {
+ padding: 2px 0 8px 0;
+ margin: 0;
+ width: 100%;
+ display: inline-block;
+}
+.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;
+ color: #4c4c4c;
+ padding: 2px 4px 2px 0;
+}
+.openerp .oe_secondary_submenu li .oe_menu_label {
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ font-size: 10px;
+ background: #7c7bad;
+ color: white;
+ padding: 2px 4px;
+ margin: 1px 6px 0 0;
+ border: 1px solid lightGray;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -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);
+}
+.openerp .oe_secondary_submenu .oe_menu_counter {
+ float: right;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ margin: 1px;
+ padding: 1px 4px;
+ border: none;
+}
+.openerp .oe_secondary_submenu .oe_menu_counter:hover {
+ cursor: pointer;
+ -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 {
+ border-top: 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 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;
+}
+.openerp .oe_secondary_submenu .oe_active .oe_menu_label {
+ background: #eeeeee;
+ color: #7c7bad;
+ text-shadow: 0 1px 1px white;
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+}
+.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;
+ height: 0;
+ display: inline-block;
+ content: "&darr";
+ text-indent: -99999px;
+ vertical-align: top;
+ margin-left: -12px;
+ margin-top: 4px;
+ margin-right: 4px;
+ border-top: 4px solid transparent;
+ border-bottom: 4px solid transparent;
+ border-left: 4px solid #4c4c4c;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_secondary_submenu .oe_menu_opened:before {
+ margin-top: 6px;
+ margin-left: -16px;
+ margin-right: 4px;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #4c4c4c;
+}
+.openerp .oe_about {
+ background-color: white;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about a {
+ color: #7c7bad;
+}
+.openerp .oe_about a:hover {
+ text-decoration: underline;
+}
+.openerp .oe_about a:focus {
+ outline: none;
+}
+.openerp .oe_about .oe_logo {
+ margin-left: -6px;
+}
+.openerp .oe_about .oe_bottom {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-shadow: 0 1px 1px #999999;
+ background-color: #b41616;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+ background-image: -webkit-linear-gradient(top, #b41616, #600606);
+ background-image: -moz-linear-gradient(top, #b41616, #600606);
+ background-image: -ms-linear-gradient(top, #b41616, #600606);
+ background-image: -o-linear-gradient(top, #b41616, #600606);
+ background-image: linear-gradient(to bottom, #b41616, #600606);
+ color: #eeeeee;
+ padding: 0 16px;
+ -moz-border-radius: 0 0 2px 2px;
+ -webkit-border-radius: 0 0 2px 2px;
+ border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about .oe_bottom a {
+ color: #eeeeee;
+}
+.openerp .oe_application {
+ width: 100%;
+}
+.openerp .oe_application a {
+ color: #7c7bad;
+}
+.openerp .oe_application a:hover {
+ text-decoration: underline;
+}
+.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;
+}
+.openerp .oe_view_manager .oe_view_manager_view_kanban {
+ height: inherit;
+}
+.openerp .oe_view_manager table.oe_view_manager_header {
+ width: 100%;
+ table-layout: fixed;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row {
+ clear: both;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td {
+ padding-top: 0;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td {
+ padding-top: 8px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar {
+ margin: 0px auto;
+ text-align: center;
+}
+.openerp .oe_view_manager table.oe_view_manager_header td {
+ line-height: 26px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header h2 {
+ font-size: 18px;
+ margin: 0;
+ float: left;
+}
+.openerp .oe_view_manager table.oe_view_manager_header h2 a {
+ color: #7c7bad;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu {
+ line-height: normal;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group {
+ display: inline-block;
+ border: 1px solid #ababab;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li {
+ float: left;
+ border-right: 1px solid #ababab;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child {
+ border: none;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a {
+ color: #4c4c4c;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover {
+ text-decoration: none;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active {
+ background: #999999;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a {
+ color: white;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons {
+ white-space: nowrap;
+}
+.openerp .oe_view_manager .oe_view_manager_pager {
+ line-height: 26px;
+}
+.openerp .oe_view_manager .oe_view_manager_pager .oe_list_pager_single_page .oe_pager_group {
+ display: none;
+}
+.openerp .oe_view_manager .oe_pager_value {
+ 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;
+ line-height: 24px;
+ display: inline-block;
+ border: 1px solid #ababab;
+ cursor: pointer;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.openerp .oe_view_manager .oe_pager_group li {
+ height: 24px;
+ line-height: 24px;
+ padding: 0;
+ margin: 0;
+ list-style-type: none;
+ float: left;
+ border-right: 1px solid #ababab;
+}
+.openerp .oe_view_manager .oe_pager_group li:last-child {
+ border: none;
+}
+.openerp .oe_view_manager .oe_pager_group a {
+ color: #4c4c4c;
+ padding: 0 8px;
+}
+.openerp .oe_view_manager .oe_pager_group a:hover {
+ text-decoration: none;
+}
+.openerp .oe_view_manager .oe_pager_group .active {
+ background: #999999;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
+}
+.openerp .oe_view_manager .oe_pager_group .active a {
+ color: white;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_view_manager .oe_view_manager_switch {
+ padding: 0;
+ margin: 0 0 0 8px;
+}
+.openerp .oe_view_manager .oe_view_manager_switch li {
+ 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;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after {
+ padding: 2px;
+ content: "i";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after {
+ content: "m";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+ content: "}";
+ top: -2px;
+ position: relative;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after {
+ font-family: "mnmliconsRegular" !important;
+ font-size: 21px;
+ font-weight: 300 !important;
+ content: "y";
+ top: -2px;
+ position: relative;
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after {
+ content: "P";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after {
+ content: "k";
+}
+.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after {
+ content: "f";
+}
+.openerp .oe_view_manager_current {
+ height: 100%;
+}
+.openerp .oe_view_manager_current > .oe_view_manager_header {
+ border-bottom: 1px solid #cacaca;
+ 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);
+ -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1);
+}
+.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td {
+ padding: 8px;
+}
+.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_inlineview {
+ height: 100%;
+}
+.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 {
+ display: none !important;
+}
+.openerp .oe_searchview {
+ cursor: text;
+ position: relative;
+ float: right;
+ padding: 1px 0;
+ line-height: 18px;
+ width: 400px;
+ border: 1px solid #ababab;
+ background: white;
+ -moz-border-radius: 13px;
+ -webkit-border-radius: 13px;
+ border-radius: 13px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+}
+.openerp .oe_searchview input, .openerp .oe_searchview textarea {
+ padding: 3px;
+ height: 14px;
+ font-size: 12px;
+ line-height: 18px;
+}
+.openerp .oe_searchview.oe_focused {
+ border-color: #a6a6fe;
+ -moz-box-shadow: 0 1px 2px #a6a6fe inset;
+ -webkit-box-shadow: 0 1px 2px #a6a6fe inset;
+ box-shadow: 0 1px 2px #a6a6fe inset;
+}
+.openerp .oe_searchview .oe_searchview_clear {
+ cursor: pointer;
+ position: absolute;
+ top: 0;
+ right: 18px;
+ width: 15px;
+ height: 100%;
+ background: url(../img/search_reset.gif) center center no-repeat;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 100%;
+ padding: 0 7px 0 4px;
+ color: #cccccc;
+ cursor: pointer;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer:hover {
+ color: #999999;
+}
+.openerp .oe_searchview .oe_searchview_unfold_drawer:before {
+ position: absolute;
+ top: 10px;
+ right: 7px;
+ width: 0;
+ height: 0;
+ display: inline-block;
+ content: "";
+ vertical-align: top;
+ border-top: 5px solid #4c4c4c;
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ filter: alpha(opacity=50);
+ opacity: 0.5;
+}
+.openerp .oe_searchview .oe_searchview_search {
+ font-size: 1px;
+ letter-spacing: -1px;
+ color: transparent;
+ font-weight: normal;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ position: absolute;
+ left: 3px;
+ top: 1px;
+ padding: 0;
+ border: none;
+ background: transparent;
+}
+.openerp .oe_searchview .oe_searchview_search:before {
+ font: 21px "mnmliconsRegular";
+ content: "r";
+ color: #a3a3a3;
+}
+.openerp .oe_searchview .oe_searchview_facets {
+ min-height: 22px;
+ margin-left: 15px;
+}
+.openerp .oe_searchview .oe_searchview_facets * {
+ vertical-align: top;
+ display: inline-block;
+ line-height: 17px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
+ height: 18px;
+ margin: 1px 0;
+ font-size: 11px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
+ outline: none;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input {
+ padding: 0 0 0 6px;
+ font-size: 12px;
+ height: 16px;
+ margin-top: 3px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus {
+ outline: none;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet {
+ position: relative;
+ cursor: pointer;
+ padding: 0;
+ -webkit-font-smoothing: auto;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus {
+ border-color: #a6a6fe;
+ -moz-box-shadow: 0 0 3px 1px #a6a6fe;
+ -webkit-box-shadow: 0 0 3px 1px #a6a6fe;
+ box-shadow: 0 0 3px 1px #a6a6fe;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values {
+ background: #f0f0fa;
+ -moz-border-radius: 0 3px 3px 0;
+ -webkit-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
+ height: 18px;
+ padding: 0 4px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category {
+ color: white;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i {
+ font-size: 16px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value {
+ border-left: 1px solid #afafb6;
+ text-shadow: 0 1px 1px white;
+ color: #4c4c4c;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child {
+ padding-right: 16px;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove {
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ color: #8786b7;
+ line-height: 8px;
+ width: 12px;
+ height: 12px;
+ padding-top: 1px;
+ text-align: center;
+ font-weight: bold;
+ cursor: pointer;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover {
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer {
+ display: block;
+}
+.openerp .oe_searchview .oe_searchview_drawer {
+ position: absolute;
+ z-index: 100;
+ margin-top: 4px;
+ top: 100%;
+ right: -1px;
+ background-color: white;
+ min-width: 100%;
+ display: none;
+ border: 1px solid #afafb6;
+ text-align: left;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
+}
+.openerp .oe_searchview .oe_searchview_drawer > div {
+ border-top: 1px solid #cccccc;
+ margin: 0;
+ padding: 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer > div:first-child {
+ border-top: none;
+ margin: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer h3 {
+ margin: 8px 4px 4px 12px;
+ color: #7c7bad;
+ font-size: 13px;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
+ margin: 0;
+ cursor: pointer;
+ font-weight: normal;
+ display: inline-block;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer h4:before {
+ content: "▸ ";
+ color: #a3a3a3;
+}
+.openerp .oe_searchview .oe_searchview_drawer button {
+ margin: 4px 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .button {
+ border: none;
+ background: transparent;
+ padding: 0 2px;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section {
+ display: table;
+ width: 100%;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ display: table-cell;
+ width: 50%;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul {
+ margin: 0 8px 8px;
+ padding: 0;
+ list-style: none;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li {
+ list-style: none;
+ padding: 2px 4px 2px 20px;
+ line-height: 14px;
+ color: inherit;
+ cursor: pointer;
+ position: relative;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before {
+ content: "W";
+ font-family: "entypoRegular" !important;
+ font-size: 24px;
+ font-weight: 300 !important;
+ color: #a3a3a3;
+ position: absolute;
+ left: 4px;
+ top: -2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer form {
+ margin-left: 12px;
+}
+.openerp .oe_searchview .oe_searchview_drawer form p {
+ margin: 4px 0;
+ line-height: 18px;
+}
+.openerp .oe_searchview .oe_searchview_drawer form button {
+ margin: 0 0 8px 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
+ padding: 0 8px 8px 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
+ display: none;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li {
+ cursor: pointer;
+ position: relative;
+ line-height: 14px;
+ padding: 2px 4px 2px 20px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover {
+ background-color: #f0f0fa;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button {
+ position: absolute;
+ top: 0;
+ right: 5px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form {
+ display: none;
+ margin-top: 2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form {
+ display: none;
+ margin-top: 8px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before {
+ content: "Z";
+ font-family: "entypoRegular" !important;
+ font-size: 24px;
+ font-weight: 300 !important;
+ margin-right: 4px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul {
+ list-style: none;
+ padding: 0;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ white-space: nowrap;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or {
+ visibility: hidden;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or {
+ opacity: 0.5;
+ margin-left: -14px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before {
+ content: "▾ ";
+ position: relative;
+ top: -1px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_opened form {
+ display: block;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ line-height: 12px;
+ padding: 1px;
+ color: #8786b7;
+ line-height: 8px;
+ text-align: center;
+ font-weight: bold;
+ text-shadow: 0 1px 1px white;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover {
+ text-decoration: none;
+ color: white;
+ background: #8786b7;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete {
+ display: none;
+ position: absolute;
+ bottom: 1px;
+ right: 4px;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete {
+ display: inline-block;
+}
+.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after {
+ content: ",";
+ font-family: "entypoRegular" !important;
+ font-size: 22px;
+ font-weight: 300 !important;
+ margin: 0 0 0 4px;
+ padding: 0;
+}
+.openerp .oe_view_nocontent {
+ padding: 15px;
+ margin-top: 0;
+ color: #777777;
+ font-size: 125%;
+ max-width: 700px;
+}
+.openerp .oe_view_nocontent .oe_view_nocontent_create {
+ background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 7px 0;
+ margin-top: 0;
+ padding-top: 35px;
+ min-height: 28px;
+ color: #4c4c4c;
+}
+.openerp .oe_view_nocontent > p {
+ padding-left: 95px;
+}
+.openerp .oe_view_nocontent .oe_empty_custom_dashboard {
+ background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0;
+ margin-top: -15px;
+ padding: 100px 0 0 137px;
+ min-height: 327px;
+ margin-left: -15px;
+}
+.openerp .oe_view.oe_cannot_create .oe_view_nocontent_create {
+ display: none;
+}
+.openerp .oe_formview {
+ background: white;
+}
+.openerp .oe_form_dropdown_section {
+ position: relative;
+ display: inline-block;
+}
+.openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea {
+ background-color: #ff6666 !important;
+ border: 1px solid #dd0000 !important;
+}
+.openerp .oe_view_manager_current .oe_form_editable .oe_highlight {
+ color: #404040;
+ background: none;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight {
+ background-color: #efefef;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
+ background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -ms-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: -o-linear-gradient(top, #efefef, #d8d8d8);
+ background-image: linear-gradient(to bottom, #efefef, #d8d8d8);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active {
+ background-color: #e3e3e3;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
+ background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6);
+ background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover {
+ background-color: #f6f6f6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
+ background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3);
+ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
+}
+.openerp .oe_form_invisible {
+ display: none !important;
+}
+.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty {
+ display: none !important;
+}
+.openerp .oe_form_readonly .oe_form .oe_form_field_date {
+ width: auto;
+}
+.openerp .oe_form_nosheet {
+ margin: 16px;
+}
+.openerp .oe_form_nosheet > header {
+ margin: -16px -16px 0 -16px;
+ padding: 0;
+}
+.openerp .oe_form_sheetbg {
+ padding: 16px 0;
+}
+.openerp .oe_form_sheet_width {
+ min-width: 650px;
+ max-width: 860px;
+ margin: 0 auto;
+}
+.openerp .oe_form_sheet {
+ background: white;
+ min-height: 330px;
+ padding: 16px;
+}
+.openerp .oe_application .oe_form_sheetbg {
+ background: url(/web/static/src/img/form_sheetbg.png);
+ border-bottom: 1px solid #dddddd;
+}
+.openerp .oe_application .oe_form_sheet {
+ border: 1px solid #c8c8d3;
+ -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+ -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+}
+.openerp .oe_application .oe_form_sheet .ui-tabs {
+ margin: 0 -16px;
+}
+.openerp .oe_application .oe_form_sheet .oe_notebook_page {
+ padding: 0 16px;
+}
+.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);
+ 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 header > span {
+ margin-left: 4px;
+}
+.openerp .oe_form header ul {
+ display: inline-block;
+ float: right;
+}
+.openerp .oe_form header .oe_button {
+ margin: 3px 2px 1px;
+}
+.openerp .oe_form header .oe_button:first-child {
+ margin-left: 6px;
+}
+.openerp .oe_form header .oe_tags {
+ margin: 5px 0 0 5px;
+ width: 400px;
+ padding-bottom: 0;
+}
+.openerp .oe_form div.oe_chatter {
+ min-width: 650px;
+ max-width: 860px;
+ margin: 0 auto;
+ padding: 16px 0 48px;
+}
+.openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol {
+ color: #aaaaaa;
+ max-width: 650px;
+}
+.openerp .oe_form div.oe_form_configuration label {
+ min-width: 150px;
+}
+.openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label {
+ padding: 1px 0;
+}
+.openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div {
+ padding: 1px 0;
+}
+.openerp .oe_form .oe_subtotal_footer {
+ width: 1% !important;
+}
+.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell {
+ text-align: right;
+ padding: 0 !important;
+}
+.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label {
+ border-right: none;
+}
+.openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator {
+ width: 108px;
+ border-top: 1px solid #cacaca;
+ margin-top: 4px;
+ padding-top: 4px;
+ font-weight: bold;
+ font-size: 18px;
+}
+.openerp .oe_form .oe_subtotal_footer label:after {
+ content: ":";
+}
+.openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator {
+ font-weight: bold !important;
+ padding: 2px 11px 2px 0px !important;
+}
+.openerp .oe_form .oe_subtotal_footer label.oe_form_label_help {
+ font-weight: normal;
+}
+.openerp .oe_form .oe_form_button {
+ margin: 2px;
+}
+.openerp .oe_form td.oe_form_group_cell_label {
+ border-right: 1px solid #dddddd;
+ padding: 2px 0px;
+}
+.openerp .oe_form td.oe_form_group_cell_label label {
+ line-height: 18px;
+ display: block;
+ min-width: 140px;
+}
+.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell {
+ padding: 2px 0 2px 8px;
+}
+.openerp .oe_form .oe_form_group {
+ width: 100%;
+ margin: 9px 0 9px 0;
+}
+.openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right {
+ padding-left: 20px;
+}
+.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
+ font-weight: bold;
+ white-space: nowrap;
+ padding-right: 8px;
+}
+.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
+ font-size: 80%;
+ color: darkGreen;
+ vertical-align: top;
+ position: relative;
+ top: -4px;
+ padding: 0 2px;
+}
+.openerp .oe_horizontal_border {
+ border-bottom: 1px solid black;
+}
+.openerp .oe_horizontal_separator {
+ font-weight: bold;
+ font-size: 20px;
+ margin: 15px 0px 10px 0px;
+ color: #7c7bad;
+}
+.openerp .oe_horizontal_separator:empty {
+ height: 5px;
+}
+.openerp .oe_vertical_separator {
+ border-left: 1px solid #666666;
+ padding: 0 4px 0 4px;
+}
+.openerp .oe_form_field_progressbar {
+ display: inline-block;
+ min-width: 70px;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar {
+ height: 22px;
+ font-size: 10px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #999999;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: white;
+ min-width: 50px;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar span {
+ position: absolute;
+ margin-left: 10px;
+ font-weight: bold;
+}
+.openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header {
+ background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
+}
+.openerp .oe_form .oe_form_field_text {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_char input,
+.openerp .oe_form .oe_form_field_url input,
+.openerp .oe_form .oe_form_field_email input,
+.openerp .oe_form .oe_form_field_text textarea,
+.openerp .oe_form .oe_form_field_selection select {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea {
+ width: 500px;
+}
+.openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 {
+ margin: 0 0 4px 0;
+}
+.openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input {
+ height: inherit !important;
+ font-size: inherit;
+}
+.openerp .oe_form .oe_form_field {
+ width: 100%;
+ display: inline-block;
+ padding: 2px 2px 2px 0px;
+}
+.openerp .oe_form .oe_form_field input {
+ margin: 0px;
+}
+.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select {
+ height: 22px;
+ padding-top: 2px;
+}
+.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ background: white;
+ min-width: 60px;
+ color: #1f1f1f;
+}
+.openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] {
+ background: #e5e5e5 !important;
+ color: #666666;
+}
+.openerp .oe_form textarea[disabled] {
+ border: none;
+ padding-left: 8px;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+}
+.openerp .oe_form textarea.oe_inline[disabled] {
+ border-left: 8px solid #eeeeee;
+}
+.openerp .oe_form .oe_form_field_url button img {
+ vertical-align: top;
+}
+.openerp .oe_form .oe_form_field_date,
+.openerp .oe_form .oe_form_field_datetime {
+ white-space: nowrap;
+}
+.openerp .oe_form .oe_form_field_boolean {
+ padding-top: 4px;
+ width: auto;
+}
+.openerp .oe_form .oe_datepicker_container {
+ display: none;
+}
+.openerp .oe_form .oe_datepicker_root {
+ display: inline-block;
+}
+.openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) {
+ background-color: #d2d2ff !important;
+}
+.openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea {
+ background-color: #ff6666 !important;
+ border: 1px solid #dd0000 !important;
+}
+.openerp .oe_form .oe_input_icon {
+ cursor: pointer;
+ margin: 3px 0 0 -21px;
+ vertical-align: top;
+}
+.openerp .oe_form .oe_input_icon_disabled {
+ position: absolute;
+ cursor: default;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ right: 5px;
+ top: 3px;
+}
+.openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button {
+ display: none;
+}
+.openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button {
+ float: right;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ border-bottom-left-radius: 0px;
+ height: 22px;
+}
+.openerp .oe_form .oe_form_field_with_button input {
+ width: 100%;
+}
+.openerp .oe_form .oe_form_field_with_button > div {
+ position: relative;
+ overflow: hidden;
+}
+.openerp .oe_form .oe_form_embedded_html {
+ position: relative;
+ width: 600px;
+ margin-left: 130px;
+ margin-top: 32px;
+ margin-bottom: 32px;
+ text-align: justify;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_integer input {
+ width: 6em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_float input {
+ width: 7em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_date input {
+ width: 7.5em !important;
+}
+.openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
+ width: 11.5em !important;
+}
+.openerp .oe_hidden_input_file {
+ position: relative;
+}
+.openerp .oe_hidden_input_file input.oe_form_binary_file {
+ z-index: 0;
+ line-height: 0;
+ font-size: 12px;
+ position: absolute;
+ top: 1px;
+ left: 0;
+ right: 0;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ -ms-filter: "alpha(opacity=0)";
+ margin: 0;
+ padding: 0;
+}
+.openerp .oe_form .oe_form_field_image {
+ padding: 0;
+ position: relative;
+ display: inline-block;
+ width: auto;
+ vertical-align: top;
+}
+.openerp .oe_form .oe_form_field_image .oe_form_field_image_controls {
+ position: absolute;
+ top: 1px;
+ padding: 4px;
+ width: 100%;
+ display: none;
+ text-align: center;
+ color: #eeeeee;
+ background: rgba(37, 37, 37, 0.9);
+ -moz-border-radius: 3px 3px 0 0;
+ -webkit-border-radius: 3px 3px 0 0;
+ border-radius: 3px 3px 0 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls {
+ display: block;
+}
+.openerp .oe_form_field_many2one td:first-child {
+ position: relative;
+}
+.openerp .oe_form_field_many2one span.oe_m2o_drop_down_button {
+ position: absolute;
+ top: 2px;
+ right: 0px;
+}
+.openerp .oe_form_field_many2one .oe_m2o_cm_button {
+ line-height: 14px;
+ float: right;
+ padding-left: 2px;
+}
+.openerp.ui-autocomplete li.oe_m2o_dropdown_option a {
+ font-style: italic;
+ padding-left: 2em;
+}
+.openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option {
+ margin-top: 10px;
+}
+.openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable {
+ display: inline-block;
+ margin: 0;
+ padding: 0 18px 0 0;
+}
+.openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0 -18px 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 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;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
+ display: none !important;
+}
+.openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
+ font-weight: bold;
+}
+.openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead {
+ border-bottom: 1px;
+}
+.openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) {
+ background: transparent;
+}
+.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save {
+ background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat;
+}
+.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before {
+ visibility: hidden;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top {
+ display: none;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td {
+ padding: 0px 8px;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i {
+ font-size: 13px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group {
+ height: auto;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li {
+ height: auto;
+ line-height: 16px;
+}
+.openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save {
+ visibility: hidden;
+}
+.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required {
+ background-color: #d2d2ff;
+}
+.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly {
+ background-color: #eeeeee;
+}
+.openerp .oe_list_editable .oe_list_content td.oe_list_field_cell {
+ padding: 4px 6px 3px 6px;
+}
+.openerp .oe_list.oe_list_editable td.oe_list_record_delete {
+ position: absolute;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
+ color: transparent;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * {
+ visibility: hidden;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button {
+ top: 5px;
+}
+.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 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 {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ border: 1px solid #aaaaff;
+ margin: 0;
+}
+.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;
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
+ width: 100% !important;
+}
+.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
+ min-width: 0 !important;
+ max-width: none !important;
+}
+.openerp .oe_list_group_name {
+ white-space: nowrap;
+}
+.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 {
+ display: none;
+}
+.openerp .oe_list_buttons.oe_editing .oe_list_save {
+ display: inline-block;
+}
+.openerp .oe_list_buttons.oe_editing .oe_list_discard {
+ display: inline;
+}
+.openerp .oe_list_buttons.oe_editing .oe_alternative {
+ visibility: visible;
+}
+.openerp .oe_list.oe_cannot_edit .oe_list_header_handle, .openerp .oe_list.oe_cannot_edit .oe_list_field_handle {
+ display: none !important;
+ padding: 0 !important;
+}
+.openerp .oe_list.oe_cannot_delete .oe_list_record_delete {
+ display: none !important;
+}
+.openerp .oe_list .oe_form .oe_form_nosheet {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+.openerp .oe_list .oe_form .oe_form_field {
+ width: auto;
+ position: absolute;
+ 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%;
+}
+.openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after {
+ border-width: 0;
+}
+.openerp .oe_list_content td.oe_number {
+ text-align: right !important;
+ max-width: 100px;
+}
+.openerp .oe_list_content > thead {
+ border-bottom: 2px solid #cacaca;
+ background: #eeeeee;
+ vertical-align: top;
+}
+.openerp .oe_list_content td, .openerp .oe_list_content th {
+ padding: 3px 6px;
+ line-height: 18px;
+}
+.openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div {
+ cursor: pointer;
+}
+.openerp .oe_list_content th.oe_sortable div {
+ position: relative;
+}
+.openerp .oe_list_content th.oe_sortable div:after {
+ position: absolute;
+ right: 6px;
+ content: "";
+ margin-top: 7px;
+ border-width: 0 4px 4px;
+ border-style: solid;
+ border-color: black transparent;
+ visibility: hidden;
+}
+.openerp .oe_list_content th.sortup div:after {
+ visibility: visible;
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+}
+.openerp .oe_list_content th.sortdown div:after {
+ border-bottom: none;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid black;
+ visibility: visible;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+}
+.openerp .oe_list_content > tbody {
+ cursor: pointer;
+}
+.openerp .oe_list_content > tbody > tr {
+ height: 27px;
+ border-top: 1px solid #dddddd;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
+ padding: 3px 6px;
+ white-space: pre-line;
+}
+.openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
+ border: none;
+ background: transparent;
+ padding: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child {
+ width: 17px;
+}
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
+ border-width: 0;
+}
+.openerp .oe_list_content > tbody > tr:nth-child(odd) {
+ background-color: #f0f0fa;
+ background-color: #f0f0fa;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
+ background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
+ background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
+}
+.openerp .oe_list_content > tfoot {
+ border-top: 2px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+ background: #eeeeee;
+ font-weight: bold;
+}
+.openerp .oe_list_content .numeric {
+ text-align: right;
+ width: 82px;
+}
+.openerp .oe_list_content .numeric input {
+ text-align: right;
+}
+.openerp .oe_list_content th.oe_list_header_handle {
+ font-size: 1px;
+ overflow: hidden;
+ text-indent: -9001px;
+}
+.openerp .oe_list_content td.oe_list_field_handle {
+ width: 1em;
+ padding: 0 !important;
+ cursor: ns-resize;
+}
+.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle {
+ font-size: 1px;
+ letter-spacing: -1px;
+ color: transparent;
+ font-weight: normal;
+ margin-right: 7px;
+}
+.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before {
+ font: 18px "entypoRegular";
+ content: "}";
+ color: #e0e0e0;
+}
+.openerp .tree_header {
+ background-color: #f0f0f0;
+ border-bottom: 1px solid #cacaca;
+ color: #4c4c4c;
+ padding: 5px;
+ height: 25px;
+}
+.openerp .tree_header button {
+ float: right;
+ height: 27px;
+ margin-right: 5px;
+}
+.openerp .oe-treeview-table {
+ width: 100%;
+ background-color: white;
+ border-spacing: 0;
+ color: #4c4c4c;
+}
+.openerp .oe-treeview-table th {
+ padding: 10px;
+ font-weight: bold;
+ background-color: #f0f0f0;
+ border-bottom: 2px solid #cacaca;
+}
+.openerp .oe-treeview-table td {
+ cursor: pointer;
+ vertical-align: middle;
+ text-align: left;
+ vertical-align: middle;
+ height: 20px;
+ padding-left: 4px;
+ padding-right: 4px;
+ border-right: 1px solid #e7e7e7;
+}
+.openerp .oe-treeview-table td.oe_number {
+ text-align: right !important;
+}
+.openerp .oe-treeview-table tr {
+ border-bottom: 1px solid #d6d6d6;
+}
+.openerp .oe-treeview-table tr:hover {
+ background-color: #e7e7e7;
+}
+.openerp .oe-treeview-table span {
+ font-size: 90%;
+ font-weight: normal;
+ white-space: nowrap;
+ display: block;
+}
+.openerp .oe-treeview-table .treeview-tr.oe-treeview-first {
+ background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat;
+}
+.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first {
+ background-image: url(/web/static/src/img/collapse.gif);
+}
+.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
+ margin-left: 16px;
+}
+.openerp .oe_layout_debugging .oe_form_group {
+ outline: 2px dashed green;
+}
+.openerp .oe_layout_debugging .oe_form_group_cell {
+ outline: 1px solid blue;
+}
+.openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover {
+ outline-color: red;
+}
+.openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after {
+ content: "[Incomplete Row]";
+ background: red;
+ padding: 2px;
+ font-weight: bold;
+ color: white;
+ float: right;
+}
+.openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after {
+ content: "[newline]";
+}
+.openerp .oe_debug_view {
+ float: left;
+}
+.openerp .oe_debug_view_log {
+ font-size: 95%;
+}
+.openerp .oe_debug_view_log label {
+ display: block;
+ width: 49%;
+ text-align: right;
+ float: left;
+ font-weight: bold;
+ color: #000099;
+}
+.openerp .oe_debug_view_log span {
+ display: block;
+ width: 49%;
+ float: right;
+ color: #333333;
+}
.kitten-mode-activated {
background-image: url(http://placekitten.com/g/1365/769);
background-size: cover;
- background-attachment: fixed; }
- .kitten-mode-activated > * {
- opacity: 0.7; }
+ background-attachment: fixed;
+}
+.kitten-mode-activated > * {
+ opacity: 0.7;
+}
div.ui-widget-overlay {
background: black;
filter: alpha(opacity=30);
- opacity: 0.3; }
+ opacity: 0.3;
+}
.ui-widget {
font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
color: #4c4c4c;
- font-size: 13px; }
+ font-size: 13px;
+}
.ui-menu {
padding: 2px 0;
@@ -2371,22 +2901,29 @@ div.ui-widget-overlay {
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
margin-top: 4px;
- border: 1px solid #afafb6; }
- .ui-menu .ui-menu-item {
- width: 100%;
- padding: 0; }
- .ui-menu .ui-menu-item a {
- padding: 1px 16px; }
- .ui-menu .ui-menu-item a.ui-corner-all {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0; }
- .ui-menu .ui-menu-item a.ui-state-active {
- background: #f0f0fa; }
- .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active {
- background: #7c7bad; }
+ border: 1px solid #afafb6;
+}
+.ui-menu .ui-menu-item {
+ width: 100%;
+ padding: 0;
+}
+.ui-menu .ui-menu-item a {
+ padding: 1px 16px;
+}
+.ui-menu .ui-menu-item a.ui-corner-all {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+.ui-menu .ui-menu-item a.ui-state-active {
+ background: #f0f0fa;
+}
+.ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active {
+ background: #7c7bad;
+}
.ui-corner-all {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
- border-radius: 3px; }
+ border-radius: 3px;
+}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 568db634815..f84d30a93ea 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -1547,7 +1547,9 @@ $sheet-max-width: 860px
padding: 100px 0 0 137px
min-height: 327px
margin-left: -15px
-
+ .oe_view.oe_cannot_create
+ .oe_view_nocontent_create
+ display: none
// }}}
// FormView.base and dynamic tags {{{
.oe_formview
@@ -2081,6 +2083,14 @@ $sheet-max-width: 860px
visibility: visible
.oe_list
+ &.oe_cannot_edit
+ .oe_list_header_handle, .oe_list_field_handle
+ display: none !important
+ padding: 0 !important
+ &.oe_cannot_delete
+ .oe_list_record_delete
+ display: none !important
+
.oe_form
.oe_form_nosheet
margin: 0 // FIXME: either class or border should not be by default
@@ -2178,16 +2188,6 @@ $sheet-max-width: 860px
.oe_list_handle
@include text-to-entypo-icon("}",#E0E0E0,18px)
margin-right: 7px
- .oe_list_cannot_create
- .oe_view_nocontent_create
- display: none
- .oe_list_cannot_edit
- .oe_list_header_handle, .oe_list_field_handle
- display: none !important
- padding: 0 !important
- .oe_list_cannot_delete
- .oe_list_record_delete
- display: none !important
// }}}
// Tree view {{{
.tree_header
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 4da6136d3cc..75bf6c2f586 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -252,11 +252,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.$el.html(QWeb.render(this._template, this));
this.$el.addClass(this.fields_view.arch.attrs['class']);
- // add css classes that reflect the (absence of) access rights
- this.$el.toggleClass('oe_list_cannot_create', !this.is_action_enabled('create'))
- .toggleClass('oe_list_cannot_edit', !this.is_action_enabled('edit'))
- .toggleClass('oe_list_cannot_delete', !this.is_action_enabled('delete'));
-
// Head hook
// Selecting records
this.$el.find('.oe_list_record_selector').click(function(){
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 66dfba99d9f..d373adf514e 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -1161,6 +1161,11 @@ instance.web.View = instance.web.Widget.extend({
}
return view_loaded.pipe(function(r) {
self.trigger('view_loaded', r);
+ // add css classes that reflect the (absence of) access rights
+ self.$el.addClass('oe_view')
+ .toggleClass('oe_cannot_create', !self.is_action_enabled('create'))
+ .toggleClass('oe_cannot_edit', !self.is_action_enabled('edit'))
+ .toggleClass('oe_cannot_delete', !self.is_action_enabled('delete'));
});
},
set_default_options: function(options) {
From 33c29251a148b9f1fca64c2d5d10309782eacc42 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Tue, 23 Oct 2012 15:41:19 +0530
Subject: [PATCH 074/154] [IMP] Improve css for calendar.
bzr revid: bth@tinyerp.com-20121023101119-xg8lqvqxt0bqvszi
---
addons/web_calendar/static/src/css/web_calendar.css | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/web_calendar/static/src/css/web_calendar.css b/addons/web_calendar/static/src/css/web_calendar.css
index 083451f3fbc..6a82b6cea42 100644
--- a/addons/web_calendar/static/src/css/web_calendar.css
+++ b/addons/web_calendar/static/src/css/web_calendar.css
@@ -1059,5 +1059,6 @@ div.openerp .dhx_cal_editor textarea {
}
.openerp .dhx_cal_data {
overflow-y: hidden !important;
+ position: relative;
}
}
\ No newline at end of file
From edc3869ca2004251d13d1908526fc4e0290923cd Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Tue, 23 Oct 2012 17:03:53 +0530
Subject: [PATCH 075/154] [IMP] Improve code in sass and used visibility
instead of display attribute.
bzr revid: bth@tinyerp.com-20121023113353-gyl0isk329oh5ixe
---
addons/web/static/src/css/base.css | 33 ++++++++++++++---------------
addons/web/static/src/css/base.sass | 23 ++++++++++----------
2 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index a1183109785..30302c517dd 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2932,11 +2932,22 @@ div.ui-widget-overlay {
}
.oe_list_content button, .oe_list_content input[type=checkbox] {
- display: none;
+ visibility: hidden;
}
- .openerp .tree_header button {
- display: none;
+ .openerp .tree_header button, .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more, .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add {
+ visibility: hidden;
+ }
+
+ a.oe_m2o_cm_button, a.oe_e {
+ visibility: hidden;
+ }
+
+ .openerp {
+ text-shadow: none;
+ }
+ .openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img {
+ visibility: hidden;
}
.openerp .oe_notebook > li.ui-tabs-selected {
display: block;
@@ -2950,23 +2961,11 @@ div.ui-widget-overlay {
box-shadow: 0px 0px 0px;
}
- .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more {
- display: none;
- }
-
- .openerp {
- text-shadow: none;
- }
-
.text-core .text-wrap .text-arrow {
background: none;
}
- .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e {
- display: none;
- }
-
- .openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img {
- display: none;
+ .openerp div.oe_mail_wall {
+ overflow: hidden !important;
}
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index da71e280b33..ea3e6ca1efa 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -2318,10 +2318,16 @@ div.ui-widget-overlay
display: none
.oe_list_content
button, input[type=checkbox]
- display: none
+ visibility: hidden
+ .openerp .tree_header button, .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more, .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add
+ visibility: hidden
+ a
+ &.oe_m2o_cm_button, &.oe_e
+ visibility: hidden
.openerp
- .tree_header button
- display: none
+ .oe_form
+ .oe_form_field_date img, .oe_form_field_datetime img
+ visibility: hidden
.oe_notebook > li.ui-tabs-selected
display: block
.oe_application
@@ -2331,17 +2337,10 @@ div.ui-widget-overlay
.oe_view_manager_current > .oe_view_manager_header
border: 0px !important
box-shadow: 0px 0px 0px
-
- .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more
- display: none
- .openerp
text-shadow: none
.text-core .text-wrap .text-arrow
background: none
- .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add, a.oe_m2o_cm_button, a.oe_e
- display: none
- .openerp .oe_form
- .oe_form_field_date img, .oe_form_field_datetime img
- display: none
+ .openerp div.oe_mail_wall
+ overflow: hidden !important
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 910bb4d24e77638a73cbd369f81966bf22dc2e15 Mon Sep 17 00:00:00 2001
From: Antonin Bourguignon
Date: Tue, 23 Oct 2012 14:15:01 +0200
Subject: [PATCH 076/154] [FIX] only fetch the analytic accounts that the
current user has the right to read, avoiding an access error when calling
name_get()
lp bug: https://launchpad.net/bugs/1033505 fixed
bzr revid: abo@openerp.com-20121023121501-gl0wfhdo9zp34wx2
---
addons/analytic/analytic.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 1ce483a26cd..21e2d4156fe 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -255,8 +255,8 @@ class account_analytic_account(osv.osv):
if context is None:
context={}
if context.get('current_model') == 'project.project':
- cr.execute("select analytic_account_id from project_project")
- project_ids = [x[0] for x in cr.fetchall()]
+ project_obj = self.pool.get("account.analytic.account")
+ project_ids = project_obj.search(cr, uid, args)
return self.name_get(cr, uid, project_ids, context=context)
if name:
account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
From f50c720f3e02e211f3d7831a6b88b7d4b8a08f0e Mon Sep 17 00:00:00 2001
From: Fabien Meghazi
Date: Tue, 23 Oct 2012 14:28:33 +0200
Subject: [PATCH 077/154] [ADD] Add menu_id in url state
bzr revid: fme@openerp.com-20121023122833-l9a520bkpe2yty2r
---
addons/web/static/src/js/chrome.js | 1 +
addons/web/static/src/js/views.js | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 3cb4437d1c3..6cf35a14e92 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -1128,6 +1128,7 @@ instance.web.WebClient = instance.web.Client.extend({
}
return $.when(self.action_manager.do_action(action, {
clear_breadcrumbs: true,
+ action_menu_id: self.menu.current_menu,
})).fail(function() {
self.menu.open_menu(options.previous_menu_id);
});
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index d373adf514e..c6b150a4d77 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -174,6 +174,9 @@ instance.web.ActionManager = instance.web.Widget.extend({
if(this.inner_action.type == 'ir.actions.act_window') {
state['model'] = this.inner_action.res_model;
}
+ if (this.inner_action.menu_id) {
+ state['menu_id'] = this.inner_action.menu_id;
+ }
if (this.inner_action.id) {
state['action'] = this.inner_action.id;
} else if (this.inner_action.type == 'ir.actions.client') {
@@ -241,6 +244,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
clear_breadcrumbs: false,
on_reverse_breadcrumb: function() {},
on_close: function() {},
+ action_menu_id: null,
});
if (_.isString(action) && instance.web.client_actions.contains(action)) {
var action_client = { type: "ir.actions.client", tag: action };
@@ -266,6 +270,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
pager : !popup && !inline,
display_title : !popup
}, action.flags || {});
+ action.menu_id = options.action_menu_id;
if (!(type in this)) {
console.error("Action manager can't handle action of type " + action.type, action);
return $.Deferred().reject();
From cb713061b57d45162591b979f192994f0a3ce3cf Mon Sep 17 00:00:00 2001
From: Antonin Bourguignon
Date: Tue, 23 Oct 2012 14:38:14 +0200
Subject: [PATCH 078/154] [IMP] var names
bzr revid: abo@openerp.com-20121023123814-wbdrf146em3d39pe
---
addons/analytic/analytic.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 21e2d4156fe..5ea8c59b848 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -259,23 +259,23 @@ class account_analytic_account(osv.osv):
project_ids = project_obj.search(cr, uid, args)
return self.name_get(cr, uid, project_ids, context=context)
if name:
- account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
- if not account:
+ account_ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
+ if not account_ids:
names=map(lambda i : i.strip(),name.split('/'))
for i in range(len(names)):
dom=[('name', operator, names[i])]
if i>0:
- dom+=[('id','child_of',account)]
- account = self.search(cr, uid, dom, limit=limit, context=context)
- newacc = account
+ dom+=[('id','child_of',account_ids)]
+ account_ids = self.search(cr, uid, dom, limit=limit, context=context)
+ newacc = account_ids
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)], limit=limit, context=context)
- account += newacc
+ account_ids += newacc
if args:
- account = self.search(cr, uid, [('id', 'in', account)] + args, limit=limit, context=context)
+ account_ids = self.search(cr, uid, [('id', 'in', account_ids)] + args, limit=limit, context=context)
else:
- account = self.search(cr, uid, args, limit=limit, context=context)
- return self.name_get(cr, uid, account, context=context)
+ account_ids = self.search(cr, uid, args, limit=limit, context=context)
+ return self.name_get(cr, uid, account_ids, context=context)
def create(self, cr, uid, vals, context=None):
contract = super(account_analytic_account, self).create(cr, uid, vals, context=context)
From 8d92a334431a03a655bc42d9f731fdb174ddbdf2 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:40:42 +0200
Subject: [PATCH 079/154] [FIX] corrected the field reference
bzr revid: nicolas.vanhoren@openerp.com-20121023124042-u5yfvylxy7a2clfv
---
addons/web/static/src/js/view_form.js | 55 ++++++++++++---------------
1 file changed, 25 insertions(+), 30 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 850a334c40b..bd2fed78042 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -4605,16 +4605,6 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
this._super(field_manager, node);
this.reference_ready = true;
},
- on_nop: function() {
- },
- on_selection_changed: function() {
- if (this.reference_ready) {
- var sel = this.selection.get_value();
- this.m2o.field.relation = sel;
- this.m2o.set_value(false);
- this.m2o.$el.toggle(sel !== false);
- }
- },
destroy_content: function() {
if (this.fm) {
this.fm.destroy();
@@ -4655,33 +4645,38 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
.on('focused', null, function () {self.trigger('focused')})
.on('blurred', null, function () {self.trigger('blurred')});
},
- is_false: function() {
- return typeof(this.get_value()) !== 'string';
+ on_selection_changed: function() {
+ if (this.reference_ready) {
+ this.internal_set_value([this.selection.get_value(), false]);
+ this.render_value();
+ }
+ },
+ data_changed: function() {
+ if (this.reference_ready) {
+ this.internal_set_value([this.selection.get_value(), this.m2o.get_value()]);
+ }
+ },
+ set_value: function(val) {
+ if (val) {
+ val = val.split(',');
+ val[0] = val[0] || false;
+ val[1] = val[0] ? (val[1] ? parseInt(val[1], 10) : val[1]) : false;
+ }
+ this._super(val || [false, false]);
+ },
+ get_value: function() {
+ return this.get('value')[0] && this.get('value')[1] ? (this.get('value')[0] + ',' + this.get('value')[1]) : false;
},
render_value: function() {
this.reference_ready = false;
- var vals = [], sel_val, m2o_val;
- if (typeof(this.get('value')) === 'string') {
- vals = this.get('value').split(',');
- }
- sel_val = vals[0] || false;
- m2o_val = vals[1] ? parseInt(vals[1], 10) : vals[1];
if (!this.get("effective_readonly")) {
- this.selection.set_value(sel_val);
+ this.selection.set_value(this.get('value')[0]);
}
- this.m2o.field.relation = sel_val;
- this.m2o.set_value(m2o_val);
+ this.m2o.field.relation = this.get('value')[0];
+ this.m2o.set_value(this.get('value')[1]);
+ this.m2o.$el.toggle(!!this.get('value')[0]);
this.reference_ready = true;
},
- data_changed: function() {
- var model = this.selection.get_value(),
- id = this.m2o.get_value();
- if (typeof(model) === 'string' && typeof(id) === 'number') {
- this.internal_set_value(model + ',' + id);
- } else {
- this.internal_set_value(false);
- }
- },
});
instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeFieldMixin, {
From 94bc60b31027c36f94d6f07c3a485f4d355b673e Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:52:13 +0200
Subject: [PATCH 080/154] reverted changes to o2m
bzr revid: nicolas.vanhoren@openerp.com-20121023125213-d7nc1282zmbvk72a
---
addons/web/static/src/js/view_form.js | 25 +++++--------------------
1 file changed, 5 insertions(+), 20 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index ce6be5b2305..bd2fed78042 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3234,12 +3234,6 @@ var commands = {
return [6, false, ids];
}
};
-/**
- widget options:
- - reload_on_button: Reload the whole form view if click on a button in a list view.
- If you see this options, do not use it, it's basically a dirty hack to make one
- precise o2m to behave the way we want.
-*/
instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -3695,8 +3689,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
readonly: !this.is_action_enabled('edit') || self.o2m.get("effective_readonly")
});
},
- handle_button: function(name, id, call) {
- var _sup = _.bind(this._super, this);
+ do_button_action: function (name, id, callback) {
if (!_.isNumber(id)) {
instance.webclient.notification.warn(
_t("Action Button"),
@@ -3707,22 +3700,14 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
var self = this;
this.ensure_saved().pipe(function () {
if (parent_form)
- return parent_form.recursive_save();
+ return parent_form.save();
else
return $.when();
- }).pipe(function () {
- var call;
- debugger;
- if (! self.o2m.options.reload_on_button) {
- call = callback;
- } else {
- call = function() {
- self.o2m.view.recursive_reload();
- };
- }
- _sup(name, id, call);
+ }).then(function () {
+ self.handle_button(name, id, callback);
});
},
+
_before_edit: function () {
this.__ignore_blur = false;
this.editor.form.on('blurred', this, this._on_form_blur);
From cdb0601417a1e114bec809a3082491dbc008cd67 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 14:59:57 +0200
Subject: [PATCH 081/154] got it
bzr revid: nicolas.vanhoren@openerp.com-20121023125957-lfs7yogbygw2uz4a
---
addons/web/static/src/js/view_form.js | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index bd2fed78042..72d9725e105 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3987,9 +3987,12 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
},
});
-/*
- * TODO niv: clean those deferred stuff, it could be better
- */
+/**
+ widget options:
+ - reload_on_button: Reload the whole form view if click on a button in a list view.
+ If you see this options, do not use it, it's basically a dirty hack to make one
+ precise o2m to behave the way we want.
+*/
instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
multi_selection: false,
disable_utility_classes: true,
@@ -4118,7 +4121,20 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in
readonly: this.getParent().get("effective_readonly")
});
pop.on('write_completed', self, self.reload_content);
- }
+ },
+ do_button_action: function(name, id, callback) {
+ var self = this;
+ var _sup = _.bind(this._super, this);
+ if (! this.m2m_field.options.reload_on_button) {
+ return _sup(name, id, callback);
+ } else {
+ return this.m2m_field.view.save().pipe(function() {
+ return _sup(name, id, function() {
+ self.m2m_field.view.reload();
+ });
+ });
+ }
+ },
});
instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(instance.web.form.CompletionFieldMixin, {
From 9155f0318ec5a180d43449d9f8c5aac58fe8b25b Mon Sep 17 00:00:00 2001
From: Antony Lesuisse
Date: Tue, 23 Oct 2012 16:14:41 +0200
Subject: [PATCH 082/154] [IMP] http dispatching decorators
bzr revid: al@openerp.com-20121023141441-5yc5gso95tl1p157
---
addons/web/http.py | 46 ++++++++++++++++++++++------------------------
1 file changed, 22 insertions(+), 24 deletions(-)
diff --git a/addons/web/http.py b/addons/web/http.py
index 65630768737..1a636971fb5 100644
--- a/addons/web/http.py
+++ b/addons/web/http.py
@@ -128,10 +128,9 @@ class JsonRequest(WebRequest):
"id": null}
"""
- def dispatch(self, controller, method):
+ def dispatch(self, method):
""" Calls the method asked for by the JSON-RPC2 or JSONP request
- :param controller: the instance of the controller which received the request
:param method: the method which received the request
:returns: an utf8 encoded JSON-RPC2 or JSONP reply
@@ -170,9 +169,9 @@ class JsonRequest(WebRequest):
self.jsonrequest = simplejson.loads(request, object_hook=nonliterals.non_literal_decoder)
self.init(self.jsonrequest.get("params", {}))
if _logger.isEnabledFor(logging.DEBUG):
- _logger.debug("--> %s.%s\n%s", controller.__class__.__name__, method.__name__, pprint.pformat(self.jsonrequest))
+ _logger.debug("--> %s.%s\n%s", method.im_class.__name__, method.__name__, pprint.pformat(self.jsonrequest))
response['id'] = self.jsonrequest.get('id')
- response["result"] = method(controller, self, **self.params)
+ response["result"] = method(self, **self.params)
except session.AuthenticationError:
error = {
'code': 100,
@@ -230,16 +229,13 @@ def jsonrequest(f):
the ``session_id``, ``context`` and ``debug`` keys (which are stripped out
beforehand)
"""
- @functools.wraps(f)
- def json_handler(controller, request):
- return JsonRequest(request).dispatch(controller, f)
- json_handler.exposed = True
- return json_handler
+ f.exposed = 'json'
+ return f
class HttpRequest(WebRequest):
""" Regular GET/POST request
"""
- def dispatch(self, controller, method):
+ def dispatch(self, method):
params = dict(self.httprequest.args)
params.update(self.httprequest.form)
params.update(self.httprequest.files)
@@ -250,9 +246,9 @@ class HttpRequest(WebRequest):
akw[key] = value
else:
akw[key] = type(value)
- _logger.debug("%s --> %s.%s %r", self.httprequest.method, controller.__class__.__name__, method.__name__, akw)
+ _logger.debug("%s --> %s.%s %r", self.httprequest.method, method.im_class.__name__, method.__name__, akw)
try:
- r = method(controller, self, **self.params)
+ r = method(self, **self.params)
except xmlrpclib.Fault, e:
r = werkzeug.exceptions.InternalServerError(cgi.escape(simplejson.dumps({
'code': 200,
@@ -317,11 +313,8 @@ def httprequest(f):
merged in the same dictionary), apart from the ``session_id``, ``context``
and ``debug`` keys (which are stripped out beforehand)
"""
- @functools.wraps(f)
- def http_handler(controller, request):
- return HttpRequest(request).dispatch(controller, f)
- http_handler.exposed = True
- return http_handler
+ f.exposed = 'http'
+ return f
#----------------------------------------------------------
# Controller registration with a metaclass
@@ -538,16 +531,21 @@ class Root(object):
"""
if l:
ps = '/' + '/'.join(l)
- meth = 'index'
+ method_name = 'index'
while ps:
c = controllers_path.get(ps)
if c:
- m = getattr(c, meth, None)
- if m and getattr(m, 'exposed', False):
- _logger.debug("Dispatching to %s %s %s", ps, c, meth)
- return m
- ps, _slash, meth = ps.rpartition('/')
- if not ps and meth:
+ method = getattr(c, method_name, None)
+ if method:
+ exposed = getattr(method, 'exposed', False)
+ if exposed == 'json':
+ _logger.debug("Dispatch json to %s %s %s", ps, c, method_name)
+ return lambda request: JsonRequest(request).dispatch(method)
+ elif exposed == 'http':
+ _logger.debug("Dispatch http to %s %s %s", ps, c, method_name)
+ return lambda request: HttpRequest(request).dispatch(method)
+ ps, _slash, method_name = ps.rpartition('/')
+ if not ps and method_name:
ps = '/'
return None
From f57cc2402d2df0b1512c3f8aeeb5ba01024436ba Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 16:47:46 +0200
Subject: [PATCH 083/154] [IMP] survey: code review
bzr revid: qdp-launchpad@openerp.com-20121023144746-aidxyhxho59irw2d
---
addons/survey/survey.py | 6 ++----
addons/survey/survey_view.xml | 2 +-
addons/survey/wizard/survey_answer.py | 4 ++--
addons/survey/wizard/survey_send_invitation.py | 15 ++++++++++-----
4 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 809079eaedb..3b406484d43 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -152,8 +152,7 @@ class survey(osv.osv):
pages = sur['page_ids']
if not pages:
raise osv.except_osv(_('Warning!'), _('This survey has no question defined. Please define the questions and answers first.'))
- else:
- context.update({'active':False,'survey_id': ids[0]})
+ context.update({'active':False,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
@@ -170,8 +169,7 @@ class survey(osv.osv):
pages = sur['page_ids']
if not pages:
raise osv.except_osv(_('Warning!'), _('This survey has no pages defined. Please define pages first.'))
- else:
- context.update({'active':True,'survey_id': ids[0]})
+ context.update({'active':True,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index ef3366ee1ee..c01e8b45ce2 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -215,7 +215,7 @@
-
+
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 7e1417ecdb7..f1a96fa154a 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -153,9 +153,9 @@ class survey_question_wiz(osv.osv_memory):
if pag_rec:
title = pag_rec.title
note = pag_rec.note
- question_ids=pag_rec.question_ids
+ question_ids = pag_rec.question_ids
else:
- title=sur_rec.title
+ title = sur_rec.title
xml_form = etree.Element('form', {'string': tools.ustr(title)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 661c9417180..dd0d6157caf 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -67,14 +67,19 @@ class survey_send_invitation(osv.osv_memory):
name += "\t --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
- data['mail_subject'] = "Invitation for " + sur.title
- data['mail_subject_existing'] = "Invitation for " + sur.title
+ data['mail_subject'] = _("Invitation for %s") % (sur.title)
+ data['mail_subject_existing'] = "_(Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
- data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
- \n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n '''+ self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context) + '''\n\n Thanks,'''
+ data['mail'] = _('''
+Hello %(name)s, \n\n
+Please find hereby a survey that we would like you to fill: %s\n
+You can access this survey with the following parameters:
+ Your login ID: %(login)s,\n
+ Your password: %(passwd)s\n
+%s\n\n
+Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
From f6a1c4986dc7bcbe2d6d2b0557de00b51ece44c6 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 16:58:58 +0200
Subject: [PATCH 084/154] lot of modifs, still not functionning
bzr revid: nicolas.vanhoren@openerp.com-20121023145858-dg34k7kqi3jkar6z
---
addons/web_graph/controllers/graph.py | 82 +------------
addons/web_graph/static/src/js/graph.js | 154 ++++++++++++++++++++++--
2 files changed, 146 insertions(+), 90 deletions(-)
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
index 21ec7d6e973..bae535a9137 100644
--- a/addons/web_graph/controllers/graph.py
+++ b/addons/web_graph/controllers/graph.py
@@ -8,85 +8,5 @@ class GraphView(openerp.addons.web.controllers.main.View):
@openerp.addons.web.http.jsonrequest
def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- obj = req.session.model(model)
-
- res = obj.fields_view_get(view_id, 'graph')
- fields = res['fields']
- toload = filter(lambda x: x not in fields, group_by)
- if toload:
- fields.update( obj.fields_get(toload, context) )
-
- tree = etree.fromstring(res['arch'])
-
- pos = 0
- xaxis = group_by or []
- yaxis = []
- for field in tree.iter(tag='field'):
- if (field.tag != 'field') or (not field.get('name')):
- continue
- assert field.get('name'), "This tag must have a 'name' attribute."
- if (not group_by) and ((not pos) or field.get('group')):
- xaxis.append(field.get('name'))
- if pos and not field.get('group'):
- yaxis.append(field.get('name'))
- pos += 1
-
- assert len(xaxis), "No field for the X axis!"
- assert len(yaxis), "No field for the Y axis!"
-
- # Convert a field's data into a displayable string
-
- ticks = {}
- def _convert_key(field, data):
- if fields[field]['type']=='many2one':
- data = data and data[0]
- return data
-
- def _convert(field, data, tick=True):
- if fields[field]['type']=='many2one':
- data = data and data[1]
- elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
- d = dict(fields[field]['selection'])
- data = d[data]
- if tick:
- return ticks.setdefault(data, len(ticks))
- return data or 0
-
- def _orientation(x, y):
- if not orientation:
- return (x,y)
- return (y,x)
-
- result = []
- if mode=="pie":
- res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
- for record in res:
- result.append( {
- 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
- 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
- })
-
- elif (not stacked) or (len(xaxis)<2):
- for x in xaxis:
- res = obj.read_group(domain, yaxis+[x], [x], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
- 'label': fields[x]['string']
- })
- else:
- xaxis.reverse()
- axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
- for x in axis:
- key = x[xaxis[0]]
- res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
- 'label': _convert(xaxis[0], key, tick=False)
- })
-
- res = {
- 'data': result,
- 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
- }
- return res
+ pass
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 788ec3bcb3f..0295020dd92 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -228,15 +228,151 @@ instance.web_graph.GraphView = instance.web.View.extend({
},
graph_get_data: function () {
- return this.rpc('/web_graph/graph/data_get', {
- model: this.dataset.model,
- domain: this.domain,
- context: this.context,
- group_by: this.group_by,
- view_id: this.view_id,
- mode: this.mode,
- orientation: this.orientation,
- stacked: this.stacked
+ var model = this.dataset.model,
+ domain = new instance.web.CompoundDomain(this.domain),
+ context = new instance.web.CompoundContext(this.context),
+ group_by = this.group_by,
+ view_id = this.view_id,
+ mode = this.mode,
+ orientation = this.orientation,
+ stacked = this.stacked;
+
+ var obj = new instance.web.Model(model);
+ var view_get;
+ var fields;
+ var result = [];
+ var ticks = {};
+
+ return obj.call("fields_view_get", [view_id, 'graph']).pipe(function(tmp) {
+ view_get = tmp;
+ fields = view_get['fields'];
+ var toload = _.select(group_by, function(x) { return fields[x] === undefined });
+ if (toload.length >= 1)
+ return obj.call("fields_get", [toload, context]);
+ else
+ return $.when([]);
+ }).pipe(function (fields_to_add) {
+ _.extend(fields, fields_to_add);
+
+ var tree = $($.parseXML(view_get['arch']));
+
+ var pos = 0;
+ var xaxis = group_by || [];
+ var yaxis = [];
+ debugger;
+ tree.find("field").each(function() {
+ var field = $(this);
+ if (! field.attr("name"))
+ return;
+ if ((! group_by) && ((! pos) || field.attr('group'))) {
+ xaxis.push(field.attr('name'));
+ }
+ if (pos && ! field.attr('group')) {
+ yaxis.push(field.attr('name'));
+ }
+ pos += 1;
+ });
+
+ if (xaxis.length === 0)
+ throw new Error("No field for the X axis!");
+ if (yaxis.length === 0)
+ throw new Error("No field for the Y axis!");
+
+ // Convert a field's data into a displayable string
+
+ function _convert_key(field, data) {
+ if (fields[field]['type'] === 'many2one')
+ data = data && data[0];
+ return data;
+ }
+
+ function _convert(field, data, tick) {
+ tick = tick === undefined ? true : false;
+ if (fields[field]['type'] === 'many2one') {
+ data = data && data[1];
+ } else if ((fields[field]['type'] === 'selection') && (fields[field]['selection'] instanceof Array)) {
+ var d = {};
+ _.each(fields[field]['selection'], function(el) {
+ d[el[0]] = el[1];
+ });
+ data = d[data];
+ }
+ if (tick) {
+ if (ticks[data] === undefined)
+ ticks[data] = _.size(ticks);
+ return ticks[data];
+ }
+ return data || 0;
+ }
+
+ function _orientation(x, y) {
+ if (! orientation)
+ return [x, y]
+ return [y, x]
+ }
+
+ if (mode === "pie") {
+ return obj.call("read_group", [domain, yaxis+[xaxis[0]], [xaxis[0]]], {context: context}).pipe(function(res) {
+ _.each(res, function(record) {
+ result.push({
+ 'data': [[_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]]]],
+ 'label': _convert(xaxis[0], record[xaxis[0]], false)
+ });
+ });
+ });
+ } else if ((! stacked) || (xaxis.length < 2)) {
+ var defs = [];
+ _.each(xaxis, function(x) {
+ defs.push(obj.call("read_group", [domain, yaxis+[x], [x]], {context: context}).pipe(function(res) {
+ return [x, res];
+ }));
+ });
+ return $.when.apply($, defs).pipe(function() {
+ _.each(_.toArray(arguments), function(res) {
+ // TODO: must convert res
+ debugger;
+ var x = res[0];
+ res = res[1];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(x, record[x]), record[yaxis[0]] || 0);
+ }),
+ 'label': fields[x]['string']
+ });
+ });
+ });
+ } else {
+ xaxis.reverse();
+ return obj.call("read_group", [domain, yaxis + xaxis.slice(0, 1), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
+ var defs = [];
+ _.each(axis, function(x) {
+ var key = x[xaxis[0]]
+ defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis + xaxis.slice(1, 2), xaxis.slice(1, 2)],
+ {context: context}).pipe(function(res) {
+ return [x, key, res];
+ }));
+ });
+ return $.when.apply($, defs).pipe(function(res) {
+ // TODO: must convert res
+ debugger;
+ var x = res[0];
+ var key = res[1];
+ res = res[2];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0);
+ }),
+ 'label': _convert(xaxis[0], key, false)
+ })
+ });
+ });
+ }
+ }).pipe(function() {
+ var res = {
+ 'data': result,
+ 'ticks': _.map(ticks, function(el, key) { return [el, key] })
+ };
+ return res;
});
},
From 796958fa7c214eaba2c8379cd79a5d86059530f5 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:11:23 +0200
Subject: [PATCH 085/154] Currently working for bar charts
bzr revid: nicolas.vanhoren@openerp.com-20121023151123-ebo1edkp65c3dk94
---
addons/web_graph/controllers/graph.py | 82 ++++++++++++++++++++++++-
addons/web_graph/static/src/js/graph.js | 31 ++++------
2 files changed, 94 insertions(+), 19 deletions(-)
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
index bae535a9137..21ec7d6e973 100644
--- a/addons/web_graph/controllers/graph.py
+++ b/addons/web_graph/controllers/graph.py
@@ -8,5 +8,85 @@ class GraphView(openerp.addons.web.controllers.main.View):
@openerp.addons.web.http.jsonrequest
def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- pass
+ obj = req.session.model(model)
+
+ res = obj.fields_view_get(view_id, 'graph')
+ fields = res['fields']
+ toload = filter(lambda x: x not in fields, group_by)
+ if toload:
+ fields.update( obj.fields_get(toload, context) )
+
+ tree = etree.fromstring(res['arch'])
+
+ pos = 0
+ xaxis = group_by or []
+ yaxis = []
+ for field in tree.iter(tag='field'):
+ if (field.tag != 'field') or (not field.get('name')):
+ continue
+ assert field.get('name'), "This tag must have a 'name' attribute."
+ if (not group_by) and ((not pos) or field.get('group')):
+ xaxis.append(field.get('name'))
+ if pos and not field.get('group'):
+ yaxis.append(field.get('name'))
+ pos += 1
+
+ assert len(xaxis), "No field for the X axis!"
+ assert len(yaxis), "No field for the Y axis!"
+
+ # Convert a field's data into a displayable string
+
+ ticks = {}
+ def _convert_key(field, data):
+ if fields[field]['type']=='many2one':
+ data = data and data[0]
+ return data
+
+ def _convert(field, data, tick=True):
+ if fields[field]['type']=='many2one':
+ data = data and data[1]
+ elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
+ d = dict(fields[field]['selection'])
+ data = d[data]
+ if tick:
+ return ticks.setdefault(data, len(ticks))
+ return data or 0
+
+ def _orientation(x, y):
+ if not orientation:
+ return (x,y)
+ return (y,x)
+
+ result = []
+ if mode=="pie":
+ res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
+ for record in res:
+ result.append( {
+ 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
+ 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
+ })
+
+ elif (not stacked) or (len(xaxis)<2):
+ for x in xaxis:
+ res = obj.read_group(domain, yaxis+[x], [x], context=context)
+ result.append( {
+ 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
+ 'label': fields[x]['string']
+ })
+ else:
+ xaxis.reverse()
+ axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
+ for x in axis:
+ key = x[xaxis[0]]
+ res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
+ result.append( {
+ 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
+ 'label': _convert(xaxis[0], key, tick=False)
+ })
+
+ res = {
+ 'data': result,
+ 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
+ }
+ return res
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 0295020dd92..3b4a29bc55a 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -229,13 +229,13 @@ instance.web_graph.GraphView = instance.web.View.extend({
graph_get_data: function () {
var model = this.dataset.model,
- domain = new instance.web.CompoundDomain(this.domain),
- context = new instance.web.CompoundContext(this.context),
- group_by = this.group_by,
- view_id = this.view_id,
- mode = this.mode,
- orientation = this.orientation,
- stacked = this.stacked;
+ domain = new instance.web.CompoundDomain(this.domain || []),
+ context = new instance.web.CompoundContext(this.context || {}),
+ group_by = this.group_by || [],
+ view_id = this.view_id || false,
+ mode = this.mode || 'bar',
+ orientation = this.orientation || false,
+ stacked = this.stacked || false;
var obj = new instance.web.Model(model);
var view_get;
@@ -259,12 +259,11 @@ instance.web_graph.GraphView = instance.web.View.extend({
var pos = 0;
var xaxis = group_by || [];
var yaxis = [];
- debugger;
tree.find("field").each(function() {
var field = $(this);
if (! field.attr("name"))
return;
- if ((! group_by) && ((! pos) || field.attr('group'))) {
+ if ((group_by.length == 0) && ((! pos) || field.attr('group'))) {
xaxis.push(field.attr('name'));
}
if (pos && ! field.attr('group')) {
@@ -312,7 +311,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
}
if (mode === "pie") {
- return obj.call("read_group", [domain, yaxis+[xaxis[0]], [xaxis[0]]], {context: context}).pipe(function(res) {
+ return obj.call("read_group", [domain, yaxis.concat([xaxis[0]]), [xaxis[0]]], {context: context}).pipe(function(res) {
_.each(res, function(record) {
result.push({
'data': [[_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]]]],
@@ -323,14 +322,12 @@ instance.web_graph.GraphView = instance.web.View.extend({
} else if ((! stacked) || (xaxis.length < 2)) {
var defs = [];
_.each(xaxis, function(x) {
- defs.push(obj.call("read_group", [domain, yaxis+[x], [x]], {context: context}).pipe(function(res) {
+ defs.push(obj.call("read_group", [domain, yaxis.concat([x]), [x]], {context: context}).pipe(function(res) {
return [x, res];
}));
});
return $.when.apply($, defs).pipe(function() {
_.each(_.toArray(arguments), function(res) {
- // TODO: must convert res
- debugger;
var x = res[0];
res = res[1];
result.push({
@@ -343,24 +340,22 @@ instance.web_graph.GraphView = instance.web.View.extend({
});
} else {
xaxis.reverse();
- return obj.call("read_group", [domain, yaxis + xaxis.slice(0, 1), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
+ return obj.call("read_group", [domain, yaxis.concat(xaxis.slice(0, 1)), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) {
var defs = [];
_.each(axis, function(x) {
var key = x[xaxis[0]]
- defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis + xaxis.slice(1, 2), xaxis.slice(1, 2)],
+ defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)],
{context: context}).pipe(function(res) {
return [x, key, res];
}));
});
return $.when.apply($, defs).pipe(function(res) {
- // TODO: must convert res
- debugger;
var x = res[0];
var key = res[1];
res = res[2];
result.push({
'data': _.map(res, function(record) {
- return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0);
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
}),
'label': _convert(xaxis[0], key, false)
})
From f1e8ad572e31d78376976aab1a9a48526715fec0 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:16:15 +0200
Subject: [PATCH 086/154] fixed problem with some other bar chart
bzr revid: nicolas.vanhoren@openerp.com-20121023151615-ptv4was339w13li6
---
addons/web_graph/static/src/js/graph.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 3b4a29bc55a..aceb02cdc61 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -344,8 +344,8 @@ instance.web_graph.GraphView = instance.web.View.extend({
var defs = [];
_.each(axis, function(x) {
var key = x[xaxis[0]]
- defs.push(obj.call("read_group", [domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)],
- {context: context}).pipe(function(res) {
+ defs.push(obj.call("read_group", [new instance.web.CompoundDomain(domain, [[xaxis[0], '=' ,_convert_key(xaxis[0], key)]]),
+ yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).pipe(function(res) {
return [x, key, res];
}));
});
From 4014421326ddd6935a598c1e62505ff5c6708761 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:17:40 +0200
Subject: [PATCH 087/154] Regression with bar charts
bzr revid: nicolas.vanhoren@openerp.com-20121023151740-20xaros930r9806p
---
addons/web_graph/static/src/js/graph.js | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index aceb02cdc61..4e4dd98be9b 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -349,16 +349,18 @@ instance.web_graph.GraphView = instance.web.View.extend({
return [x, key, res];
}));
});
- return $.when.apply($, defs).pipe(function(res) {
- var x = res[0];
- var key = res[1];
- res = res[2];
- result.push({
- 'data': _.map(res, function(record) {
- return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
- }),
- 'label': _convert(xaxis[0], key, false)
- })
+ return $.when.apply($, defs).pipe(function() {
+ _.each(_.toArray(arguments), function(res) {
+ var x = res[0];
+ var key = res[1];
+ res = res[2];
+ result.push({
+ 'data': _.map(res, function(record) {
+ return _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] || 0);
+ }),
+ 'label': _convert(xaxis[0], key, false)
+ })
+ });
});
});
}
From a94b8b432f5e044f155d2ef0a68911b739084595 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 17:17:40 +0200
Subject: [PATCH 088/154] [FIX] survey: syntax error
bzr revid: qdp-launchpad@openerp.com-20121023151740-wjft48qjgffasaug
---
addons/survey/wizard/survey_send_invitation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index dd0d6157caf..a75cae2f893 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -68,7 +68,7 @@ class survey_send_invitation(osv.osv_memory):
if sur.state != 'open':
msg += sur.title + "\n"
data['mail_subject'] = _("Invitation for %s") % (sur.title)
- data['mail_subject_existing'] = "_(Invitation for %s") % (sur.title)
+ data['mail_subject_existing'] = _("Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
From fa11c31eaea1168dbbb79c2646eb75c7458846f4 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:26:46 +0200
Subject: [PATCH 089/154] Removed server-side implementation
bzr revid: nicolas.vanhoren@openerp.com-20121023152646-ju42b5dzmckfzi5a
---
addons/web_graph/__init__.py | 1 -
addons/web_graph/controllers/__init__.py | 1 -
addons/web_graph/controllers/graph.py | 92 ------------------------
3 files changed, 94 deletions(-)
delete mode 100644 addons/web_graph/controllers/__init__.py
delete mode 100644 addons/web_graph/controllers/graph.py
diff --git a/addons/web_graph/__init__.py b/addons/web_graph/__init__.py
index ee5959455ad..e69de29bb2d 100644
--- a/addons/web_graph/__init__.py
+++ b/addons/web_graph/__init__.py
@@ -1 +0,0 @@
-import controllers
diff --git a/addons/web_graph/controllers/__init__.py b/addons/web_graph/controllers/__init__.py
deleted file mode 100644
index 7f317cca530..00000000000
--- a/addons/web_graph/controllers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-import graph
diff --git a/addons/web_graph/controllers/graph.py b/addons/web_graph/controllers/graph.py
deleted file mode 100644
index 21ec7d6e973..00000000000
--- a/addons/web_graph/controllers/graph.py
+++ /dev/null
@@ -1,92 +0,0 @@
-# -*- coding: utf-8 -*-
-import openerp
-
-from lxml import etree
-
-class GraphView(openerp.addons.web.controllers.main.View):
- _cp_path = '/web_graph/graph'
-
- @openerp.addons.web.http.jsonrequest
- def data_get(self, req, model=None, domain=[], context={}, group_by=[], view_id=False, orientation=False, stacked=False, mode="bar", **kwargs):
- obj = req.session.model(model)
-
- res = obj.fields_view_get(view_id, 'graph')
- fields = res['fields']
- toload = filter(lambda x: x not in fields, group_by)
- if toload:
- fields.update( obj.fields_get(toload, context) )
-
- tree = etree.fromstring(res['arch'])
-
- pos = 0
- xaxis = group_by or []
- yaxis = []
- for field in tree.iter(tag='field'):
- if (field.tag != 'field') or (not field.get('name')):
- continue
- assert field.get('name'), "This tag must have a 'name' attribute."
- if (not group_by) and ((not pos) or field.get('group')):
- xaxis.append(field.get('name'))
- if pos and not field.get('group'):
- yaxis.append(field.get('name'))
- pos += 1
-
- assert len(xaxis), "No field for the X axis!"
- assert len(yaxis), "No field for the Y axis!"
-
- # Convert a field's data into a displayable string
-
- ticks = {}
- def _convert_key(field, data):
- if fields[field]['type']=='many2one':
- data = data and data[0]
- return data
-
- def _convert(field, data, tick=True):
- if fields[field]['type']=='many2one':
- data = data and data[1]
- elif (fields[field]['type']=='selection') and (type(fields[field]['selection']) in (list, tuple)):
- d = dict(fields[field]['selection'])
- data = d[data]
- if tick:
- return ticks.setdefault(data, len(ticks))
- return data or 0
-
- def _orientation(x, y):
- if not orientation:
- return (x,y)
- return (y,x)
-
- result = []
- if mode=="pie":
- res = obj.read_group(domain, yaxis+[xaxis[0]], [xaxis[0]], context=context)
- for record in res:
- result.append( {
- 'data': [(_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]])],
- 'label': _convert(xaxis[0], record[xaxis[0]], tick=False)
- })
-
- elif (not stacked) or (len(xaxis)<2):
- for x in xaxis:
- res = obj.read_group(domain, yaxis+[x], [x], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(x, record[x]), record[yaxis[0]] or 0), res),
- 'label': fields[x]['string']
- })
- else:
- xaxis.reverse()
- axis = obj.read_group(domain, yaxis+xaxis[0:1], xaxis[0:1], context=context)
- for x in axis:
- key = x[xaxis[0]]
- res = obj.read_group(domain+[(xaxis[0],'=',_convert_key(xaxis[0], key))], yaxis+xaxis[1:2], xaxis[1:2], context=context)
- result.append( {
- 'data': map(lambda record: _orientation(_convert(xaxis[1], record[xaxis[1]]), record[yaxis[0]] or 0), res),
- 'label': _convert(xaxis[0], key, tick=False)
- })
-
- res = {
- 'data': result,
- 'ticks': map(lambda x: (x[1], x[0]), ticks.items())
- }
- return res
-
From 1480c7508a9353c7f77b843c39f5a17efa8bf27f Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Tue, 23 Oct 2012 17:38:01 +0200
Subject: [PATCH 090/154] Now uses official formatting method
bzr revid: nicolas.vanhoren@openerp.com-20121023153801-l98x0dtpyh6l8vjm
---
addons/web_graph/static/src/js/graph.js | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index 4e4dd98be9b..df26e6fc123 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -287,15 +287,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
function _convert(field, data, tick) {
tick = tick === undefined ? true : false;
- if (fields[field]['type'] === 'many2one') {
- data = data && data[1];
- } else if ((fields[field]['type'] === 'selection') && (fields[field]['selection'] instanceof Array)) {
- var d = {};
- _.each(fields[field]['selection'], function(el) {
- d[el[0]] = el[1];
- });
- data = d[data];
- }
+ data = instance.web.format_value(data, fields[field]);
if (tick) {
if (ticks[data] === undefined)
ticks[data] = _.size(ticks);
From b8756e66062d5c1c209861ccc8dee9ab8e8c1f7c Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Tue, 23 Oct 2012 20:32:57 +0200
Subject: [PATCH 091/154] [FIX] survey: 'format requires mapping' error fixed
bzr revid: qdp-launchpad@openerp.com-20121023183257-hzl1ed9nhkci7348
---
addons/survey/wizard/survey_send_invitation.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index a75cae2f893..51b652a2d13 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -71,13 +71,13 @@ class survey_send_invitation(osv.osv_memory):
data['mail_subject_existing'] = _("Invitation for %s") % (sur.title)
data['mail_from'] = sur.responsible_id.email
if msg:
- raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
+ raise osv.except_osv(_('Warning!'), _('The following surveys are not in open state: %s') % msg)
data['mail'] = _('''
-Hello %(name)s, \n\n
+Hello %%(name)s, \n\n
Please find hereby a survey that we would like you to fill: %s\n
You can access this survey with the following parameters:
- Your login ID: %(login)s,\n
- Your password: %(passwd)s\n
+ Your login ID: %%(login)s,\n
+ Your password: %%(passwd)s\n
%s\n\n
Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
From d78b7a28150f996dd5417377c79bc5282c592aa3 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Tue, 23 Oct 2012 23:13:47 +0200
Subject: [PATCH 092/154] [IMP] accounting
bzr revid: fp@openerp.com-20121023211347-kdodwhdir7p1skgb
---
addons/account/account_view.xml | 26 --------------------------
addons/l10n_be/l10n_be_wizard.yml | 6 +-----
2 files changed, 1 insertion(+), 31 deletions(-)
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 1b614a1ee85..745795452d3 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -2414,32 +2414,6 @@
form
new
-
- ir.actions.server
- True
- code
-
-
-
-# check for unconfigured companies
-account_installer_obj = self.pool.get('account.installer')
-account_installer_obj.check_unconfigured_cmp(cr, uid, context=context)
-action_ids = []
-# fetch the act_window actions related to chart of account configuration
-# we use ir.actions.todo to enable the possibility for other modules to insert their own
-# wizards during the configuration process
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_wizard_multi_chart')
-if ref:
- action_ids += [ref[1]]
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer')
-if ref:
- action_ids += [ref[1]]
-todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', action_ids)], context=context)
-pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context)
-action = pool.get('res.config').next(cr, uid, [], context)
-
- New Company Financial Setting
-
account.account.graph
diff --git a/addons/l10n_be/l10n_be_wizard.yml b/addons/l10n_be/l10n_be_wizard.yml
index 178009be7ff..0b16827225f 100644
--- a/addons/l10n_be/l10n_be_wizard.yml
+++ b/addons/l10n_be/l10n_be_wizard.yml
@@ -1,10 +1,6 @@
--
- !record {model: ir.actions.todo, id: config_call_account_template}:
- action_id: account.action_wizard_multi_chart
- type: automatic
-
!python {model: ir.actions.todo}: |
- install_todo = self.browse(cr, uid, ref('l10n_be.config_call_account_template'))
+ install_todo = self.browse(cr, uid, ref('account.action_wizard_multi_chart_todo'))
if install_todo.state == 'open':
wiz = self.pool.get('wizard.multi.charts.accounts')
values = {
From 9c712d53365c5d1e4885b33ff2eb7ac2156ca691 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Wed, 24 Oct 2012 00:33:58 +0200
Subject: [PATCH 093/154] [IMP] survey: code review
bzr revid: qdp-launchpad@openerp.com-20121023223358-vqey57o52eyi6fhf
---
addons/survey/survey.py | 2 +-
addons/survey/wizard/survey_send_invitation.py | 9 +++++----
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 3b406484d43..b57f778a5cc 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -77,7 +77,7 @@ class survey(osv.osv):
'tot_comp_survey': lambda * a: 0,
'send_response': lambda * a: 1,
'response_user': lambda * a:1,
- 'date_open': strftime("%Y-%m-%d %H:%M:%S"),
+ 'date_open': fields.datetime.now,
}
def survey_open(self, cr, uid, ids, arg):
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 51b652a2d13..936e3363bde 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -64,7 +64,7 @@ class survey_send_invitation(osv.osv_memory):
msg = ""
name = ""
for sur in survey_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- name += "\t --> " + sur.title + "\n"
+ name += "\n --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
data['mail_subject'] = _("Invitation for %s") % (sur.title)
@@ -74,11 +74,12 @@ class survey_send_invitation(osv.osv_memory):
raise osv.except_osv(_('Warning!'), _('The following surveys are not in open state: %s') % msg)
data['mail'] = _('''
Hello %%(name)s, \n\n
-Please find hereby a survey that we would like you to fill: %s\n
+Would you please spent some of your time to fill-in our survey: \n%s\n
You can access this survey with the following parameters:
- Your login ID: %%(login)s,\n
+ URL: %s
+ Your login ID: %%(login)s\n
Your password: %%(passwd)s\n
-%s\n\n
+\n\n
Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
From b7feab731b1d0e56c22bf338ef476a45eb40debe Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Wed, 24 Oct 2012 05:20:44 +0000
Subject: [PATCH 094/154] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024045536-py0ehkq8nazb5en1
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024045556-v4pmdh85f6qnn1f6
bzr revid: launchpad_translations_on_behalf_of_openerp-20121024052044-ajcrxdgxe6plx868
---
addons/crm_claim/i18n/ru.po | 28 +--
addons/l10n_mx/i18n/es_MX.po | 2 +-
addons/resource/i18n/ru.po | 10 +-
addons/sale/i18n/ru.po | 52 ++---
addons/web/i18n/ru.po | 122 +++++-----
addons/web_calendar/i18n/ru.po | 52 ++---
addons/web_graph/i18n/ru.po | 38 ++--
openerp/addons/base/i18n/ru.po | 394 +++++++++++++++++----------------
8 files changed, 351 insertions(+), 347 deletions(-)
diff --git a/addons/crm_claim/i18n/ru.po b/addons/crm_claim/i18n/ru.po
index 88435961627..cea6d33e47d 100644
--- a/addons/crm_claim/i18n/ru.po
+++ b/addons/crm_claim/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2011-03-16 00:04+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2012-10-24 04:51+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:33+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_claim
#: field:crm.claim.report,nbr:0
@@ -85,12 +85,12 @@ msgstr ""
#: code:addons/crm_claim/crm_claim.py:132
#, python-format
msgid "The claim '%s' has been opened."
-msgstr ""
+msgstr "Претензия '%s' была открыта"
#. module: crm_claim
#: view:crm.claim:0
msgid "Date Closed"
-msgstr ""
+msgstr "Дата закрытия"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -151,12 +151,12 @@ msgstr "Ссылка"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Date of claim"
-msgstr ""
+msgstr "Дата претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "All pending Claims"
-msgstr ""
+msgstr "Все ожидающие претензии"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -187,7 +187,7 @@ msgstr "Контрагент"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month of claim"
-msgstr ""
+msgstr "Месяц претензии"
#. module: crm_claim
#: selection:crm.claim,type_action:0
@@ -227,7 +227,7 @@ msgstr "Отправить новое эл. письмо"
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_claim
#: view:crm.claim:0
@@ -254,7 +254,7 @@ msgstr "Следующее действие"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim3
@@ -321,7 +321,7 @@ msgstr "Контакт"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
@@ -380,7 +380,7 @@ msgstr "Дата изменения"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Year of claim"
-msgstr ""
+msgstr "Год претензи"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -402,7 +402,7 @@ msgstr "Значение претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_claim
#: help:crm.claim,email_cc:0
diff --git a/addons/l10n_mx/i18n/es_MX.po b/addons/l10n_mx/i18n/es_MX.po
index eec525b5f53..305ec408af2 100644
--- a/addons/l10n_mx/i18n/es_MX.po
+++ b/addons/l10n_mx/i18n/es_MX.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
"X-Generator: Launchpad (build 16179)\n"
#. module: l10n_mx
diff --git a/addons/resource/i18n/ru.po b/addons/resource/i18n/ru.po
index 7a7f5e82dbd..a5192a83647 100644
--- a/addons/resource/i18n/ru.po
+++ b/addons/resource/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-05-10 18:26+0000\n"
+"PO-Revision-Date: 2012-10-23 18:55+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:30+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: resource
#: help:resource.calendar.leaves,resource_id:0
@@ -107,7 +107,7 @@ msgstr "Рабочее время начнется с"
#. module: resource
#: constraint:resource.calendar.leaves:0
msgid "Error! leave start-date must be lower then leave end-date."
-msgstr ""
+msgstr "Ошибка! Дата начала отгула должна быть раньше даты завершения."
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar
@@ -324,7 +324,7 @@ msgstr "(отпуск)"
#: code:addons/resource/resource.py:392
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: resource
#: selection:resource.resource,resource_type:0
diff --git a/addons/sale/i18n/ru.po b/addons/sale/i18n/ru.po
index b689b1b1946..a67f7c78b4c 100644
--- a/addons/sale/i18n/ru.po
+++ b/addons/sale/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
-"PO-Revision-Date: 2012-09-10 14:56+0000\n"
+"PO-Revision-Date: 2012-10-23 18:53+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:12+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -235,7 +235,7 @@ msgstr "В счет"
#: view:sale.order.line:0
#: field:sale.report,product_uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "Единицы измерения"
#. module: sale
#: help:sale.order,date_confirm:0
@@ -264,7 +264,7 @@ msgstr ""
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sale order"
-msgstr ""
+msgstr "Выставить счет на весь заказ продажи"
#. module: sale
#: field:sale.order,project_id:0
@@ -304,12 +304,12 @@ msgstr "Исключение счета"
#. module: sale
#: view:account.config.settings:0
msgid "0"
-msgstr ""
+msgstr "0"
#. module: sale
#: selection:sale.order,state:0
msgid "Draft Quotation"
-msgstr ""
+msgstr "Черновик предложения"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:124
@@ -359,23 +359,23 @@ msgstr "Вес"
#. module: sale
#: view:sale.config.settings:0
msgid "Warehouse Features"
-msgstr ""
+msgstr "Особенности склада"
#. module: sale
#: view:sale.order:0
msgid "Quotation "
-msgstr ""
+msgstr "Предложение "
#. module: sale
#: field:sale.order.line,product_uom:0
msgid "Unit of Measure "
-msgstr ""
+msgstr "Единица измерения "
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:148
#, python-format
msgid "Incorrect Data"
-msgstr ""
+msgstr "Неверные данные"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:149
@@ -401,7 +401,7 @@ msgstr "Заказ"
#. module: sale
#: field:sale.order,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "Сообщения"
#. module: sale
#: selection:sale.report,month:0
@@ -422,7 +422,7 @@ msgstr "Сумма до налогов"
#. module: sale
#: field:sale.config.settings,module_project:0
msgid "Project"
-msgstr ""
+msgstr "Проект"
#. module: sale
#: code:addons/sale/sale.py:319
@@ -433,7 +433,7 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:123
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Ошибка!"
#. module: sale
#: report:sale.order:0
@@ -467,7 +467,7 @@ msgstr "Позиции заказа продаж относящиеся к мо
#. module: sale
#: selection:sale.order,state:0
msgid "Quotation Sent"
-msgstr ""
+msgstr "Предложение отправлено"
#. module: sale
#: help:sale.order,message_unread:0
@@ -528,12 +528,12 @@ msgstr "Налог"
#: code:addons/sale/sale.py:986
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Неверное действие!"
#. module: sale
#: view:sale.report:0
msgid "Reference Unit of Measure"
-msgstr ""
+msgstr "Базовая единица измерения"
#. module: sale
#: field:sale.report,date_confirm:0
@@ -572,7 +572,7 @@ msgstr "Факс :"
#. module: sale
#: view:sale.order:0
msgid "(update)"
-msgstr ""
+msgstr "(обновление)"
#. module: sale
#: help:sale.config.settings,group_discount_per_so_line:0
@@ -635,7 +635,7 @@ msgstr "Подтвердить"
#. module: sale
#: view:sale.order:0
msgid "Unread messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: field:sale.order,partner_shipping_id:0
@@ -673,12 +673,12 @@ msgstr "Заказы продаж, которые еще не были подт
#. module: sale
#: field:sale.order,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: view:sale.order:0
msgid "Print"
-msgstr ""
+msgstr "Печать"
#. module: sale
#: report:sale.order:0
@@ -793,12 +793,12 @@ msgstr "Год заказа в заказе продаж"
#. module: sale
#: field:sale.config.settings,module_sale_stock:0
msgid "Sale and Warehouse Management"
-msgstr ""
+msgstr "Управление продажами и складом"
#. module: sale
#: model:ir.model,name:sale.model_sale_config_settings
msgid "sale.config.settings"
-msgstr ""
+msgstr "sale.config.settings"
#. module: sale
#: field:sale.advance.payment.inv,qtty:0
@@ -842,7 +842,7 @@ msgstr ""
#. module: sale
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr ""
+msgstr "Параметры по умолчанию"
#. module: sale
#: code:addons/sale/sale.py:963
@@ -850,12 +850,12 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:142
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: sale
#: field:account.config.settings,group_analytic_account_for_sales:0
msgid "Analytic accounting for sales"
-msgstr ""
+msgstr "Аналитический учет для продаж"
#. module: sale
#: view:sale.order:0
diff --git a/addons/web/i18n/ru.po b/addons/web/i18n/ru.po
index d310793240d..fa80053a306 100644
--- a/addons/web/i18n/ru.po
+++ b/addons/web/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-02-20 07:27+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:30+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:02+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@@ -129,62 +129,62 @@ msgstr "OpenERP - Не поддерживаемая/Community Версия"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:619
msgid "less than a minute ago"
-msgstr ""
+msgstr "меньше минуты назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:620
msgid "about a minute ago"
-msgstr ""
+msgstr "примерно минуту назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "%d minutes ago"
-msgstr ""
+msgstr "%d минут назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:622
msgid "about an hour ago"
-msgstr ""
+msgstr "примерно час назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:623
#, python-format
msgid "%d hours ago"
-msgstr ""
+msgstr "%d часов назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:624
msgid "a day ago"
-msgstr ""
+msgstr "день назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:625
#, python-format
msgid "%d days ago"
-msgstr ""
+msgstr "%d дней назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:626
msgid "about a month ago"
-msgstr ""
+msgstr "примерно месяц назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:627
#, python-format
msgid "%d months ago"
-msgstr ""
+msgstr "%d месяцев/месяца назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:628
msgid "about a year ago"
-msgstr ""
+msgstr "примерно год назад"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:629
#, python-format
msgid "%d years ago"
-msgstr ""
+msgstr "%d лет назад"
#. openerp-web
#: addons/web/static/src/js/data_export.js:6
@@ -290,18 +290,18 @@ msgstr ""
#: addons/web/static/src/js/search.js:948
#, python-format
msgid "Filter on: %s"
-msgstr ""
+msgstr "Фильтр по: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:999
msgid "Filter"
-msgstr ""
+msgstr "Фильтр"
#. openerp-web
#: addons/web/static/src/js/search.js:1108
#, python-format
msgid "Group by: %s"
-msgstr ""
+msgstr "Группировать по: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:1132
@@ -312,7 +312,7 @@ msgstr ""
#: addons/web/static/src/js/search.js:1267
#, python-format
msgid "Search %(field)s for: %(value)s"
-msgstr ""
+msgstr "Искать %(field)s для: %(value)s"
#. openerp-web
#: addons/web/static/src/js/search.js:869
@@ -339,7 +339,7 @@ msgstr "Нет"
#: addons/web/static/src/js/search.js:1416
#, python-format
msgid "Search %(field)s at: %(value)s"
-msgstr ""
+msgstr "Искать %(field)s в: %(value)s"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1286
@@ -349,13 +349,13 @@ msgstr "Фильтры"
#. openerp-web
#: addons/web/static/src/js/search.js:1762
msgid "Advanced"
-msgstr ""
+msgstr "Расширенный"
#. openerp-web
#: addons/web/static/src/js/search.js:1853
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
-msgstr ""
+msgstr "%(field)s %(operator)s \"%(value)s\""
#. openerp-web
#: addons/web/static/src/js/search.js:1341
@@ -633,12 +633,12 @@ msgstr "Добавить: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
msgid "Save As..."
-msgstr ""
+msgstr "Сохранить как..."
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
msgid "The field is empty, there's nothing to save !"
-msgstr ""
+msgstr "Поле пусто, нечего сохранять !"
#. openerp-web
#: addons/web/static/src/js/view_list.js:8
@@ -680,7 +680,7 @@ msgstr "Внимание"
#. openerp-web
#: addons/web/static/src/js/view_list.js:716
msgid "You must select at least one record."
-msgstr ""
+msgstr "Вы должны выбрать хотя бы одну запись ."
#. openerp-web
#: addons/web/static/src/js/view_list.js:1243
@@ -728,17 +728,17 @@ msgstr "Не удалось найти определение текущего
#. openerp-web
#: addons/web/static/src/js/views.js:716
msgid "Print"
-msgstr ""
+msgstr "Печать"
#. openerp-web
#: addons/web/static/src/js/views.js:717
msgid "Attachment"
-msgstr ""
+msgstr "Вложение"
#. openerp-web
#: addons/web/static/src/js/views.js:718 addons/web/static/src/xml/base.xml:276
msgid "More"
-msgstr ""
+msgstr "Еще"
#. openerp-web
#: addons/web/static/src/js/views.js:810
@@ -758,12 +758,12 @@ msgstr "Вы должны выбрать хотя бы одну запись."
#. openerp-web
#: addons/web/static/src/js/views.js:875
msgid "Uploading..."
-msgstr ""
+msgstr "Загрузка..."
#. openerp-web
#: addons/web/static/src/js/views.js:885
msgid "Do you really want to delete this attachment ?"
-msgstr ""
+msgstr "Вы действительно хотите удалить это вложение?"
#. openerp-web
#: addons/web/static/src/js/views.js:962
@@ -913,7 +913,7 @@ msgstr "Пароль Администратора:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:95
msgid "Confirm password:"
-msgstr "Подтверждение пароля:"
+msgstr "Подтвердите пароль:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:109
@@ -960,17 +960,17 @@ msgstr "Подтвердить мастер-пароль:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:325
msgid "About OpenERP"
-msgstr ""
+msgstr "Об OpenERP"
#. openerp-web
#: addons/web/static/src/xml/base.xml:327
msgid "Log out"
-msgstr ""
+msgstr "Выход"
#. openerp-web
#: addons/web/static/src/xml/base.xml:333
msgid "Activate the developer mode"
-msgstr ""
+msgstr "Включить режим разработчика"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1820
@@ -1030,12 +1030,12 @@ msgstr "Пароль ещё раз:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
msgid "Open"
-msgstr ""
+msgstr "Открыть"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
msgid "ERP"
-msgstr ""
+msgstr "ERP"
#. openerp-web
#: addons/web/static/src/xml/base.xml:477
@@ -1050,7 +1050,7 @@ msgstr "Просмотр Лога (доступ на чтение)"
#. openerp-web
#: addons/web/static/src/xml/base.xml:450
msgid "Toggle Form Layout Outline"
-msgstr ""
+msgstr "Переключить структуры макета формы"
#. openerp-web
#: addons/web/static/src/xml/base.xml:479
@@ -1115,28 +1115,28 @@ msgstr "Дата изменения:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:518
msgid "Delete this attachment"
-msgstr ""
+msgstr "Удалить вложение"
#. openerp-web
#: addons/web/static/src/xml/base.xml:523
msgid "/web/binary/upload_attachment"
-msgstr ""
+msgstr "/web/binary/upload_attachment"
#. openerp-web
#: addons/web/static/src/xml/base.xml:527
msgid "Add..."
-msgstr ""
+msgstr "Добавить..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:622
#: addons/web/static/src/xml/base.xml:687
msgid "or"
-msgstr ""
+msgstr "или"
#. openerp-web
#: addons/web/static/src/xml/base.xml:687
msgid "Discard"
-msgstr ""
+msgstr "Отменить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:806
@@ -1242,13 +1242,13 @@ msgstr "Выбрать дату"
#. openerp-web
#: addons/web/static/src/xml/base.xml:948
msgid "Open Resource"
-msgstr ""
+msgstr "Открыть ресурс"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1162
#: addons/web/static/src/xml/base.xml:1205
msgid "Set Image"
-msgstr "Назначить изображение"
+msgstr "Установить изображение"
#. openerp-web
#: addons/web/static/src/js/view_form.js:1623
@@ -1263,12 +1263,12 @@ msgstr "Очистить"
#: addons/web/static/src/xml/base.xml:1179
#: addons/web/static/src/xml/base.xml:1230
msgid "Uploading ..."
-msgstr "Загружаю ..."
+msgstr "Загружается ..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1066
msgid "width: 83px;"
-msgstr ""
+msgstr "ширина: 83px ;"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1207
@@ -1320,7 +1320,7 @@ msgstr "Поле"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1205
msgid "Advanced Search..."
-msgstr ""
+msgstr "Расширенный поиск..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1287
@@ -1355,22 +1355,22 @@ msgstr "(Имеющийся фильтр с таким же имененем б
#. openerp-web
#: addons/web/static/src/xml/base.xml:1376
msgid "Custom Filters"
-msgstr ""
+msgstr "Настраиваемые фильтры"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1379
msgid "Save current filter"
-msgstr ""
+msgstr "Сохранить текущий фильтр"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1381
msgid "Filter name"
-msgstr ""
+msgstr "Название фильтра"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1383
msgid "Share with all users"
-msgstr ""
+msgstr "Совместно со всеми пользователями"
#. openerp-web
#: addons/web/static/src/js/search.js:298
@@ -1381,32 +1381,32 @@ msgstr "Добавить на Панель"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1394
msgid "Title of new Dashboard item"
-msgstr ""
+msgstr "Название нового элемента панели"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1395
msgid "save"
-msgstr ""
+msgstr "сохранить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1399
msgid "Select Dashboard to add this filter to"
-msgstr ""
+msgstr "Выберите панель, чтобы добавить этот фильтр"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1406
msgid "Advanced Search"
-msgstr ""
+msgstr "Расширенный поиск"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1411
msgid "Add a condition"
-msgstr ""
+msgstr "Добавить условие"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1412
msgid "Apply"
-msgstr ""
+msgstr "Применить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1509
@@ -1426,9 +1426,9 @@ msgid ""
" You can export all data or only the fields that can be "
"reimported after modification."
msgstr ""
-"Этот мастер экспортирует все найденные данные в CSV файл.\n"
-" Вы можете экспортровать все данные либо только те поля которые "
-"могут быть в последствии импортированны."
+"Этот мастер экспортирует все найденные данные в CSV-файл.\n"
+" Вы можете экспортировать все данные, либо только те поля которые "
+"должны быть в последствии импортированы после изменений."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1624
@@ -1562,7 +1562,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1713
msgid "--- Don't Import ---"
-msgstr ""
+msgstr "--- Не импортировать ---"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1809
diff --git a/addons/web_calendar/i18n/ru.po b/addons/web_calendar/i18n/ru.po
index aee0856a51d..c286c58bf1a 100644
--- a/addons/web_calendar/i18n/ru.po
+++ b/addons/web_calendar/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-01-13 11:40+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:08+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
@@ -25,114 +25,114 @@ msgstr "Календарь"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:70
msgid "Filter"
-msgstr ""
+msgstr "Фильтр"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:144
msgid "Today"
-msgstr ""
+msgstr "Сегодня"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:145
msgid "Day"
-msgstr ""
+msgstr "День"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:146
msgid "Week"
-msgstr ""
+msgstr "Неделя"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:147
msgid "Month"
-msgstr ""
+msgstr "Месяц"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:148
msgid "New event"
-msgstr ""
+msgstr "Новое событие"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:149
msgid "Save"
-msgstr ""
+msgstr "Сохранить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:150
msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:151
msgid "Details"
-msgstr ""
+msgstr "Подробности"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:152
msgid "Edit"
-msgstr ""
+msgstr "Изменить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:153
msgid "Delete"
-msgstr ""
+msgstr "Удалить"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:155
msgid "Event will be deleted permanently, are you sure?"
-msgstr ""
+msgstr "Событие будет удалено навсегда, вы уверены?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:156
#: addons/web_calendar/static/src/js/calendar.js:169
msgid "Description"
-msgstr ""
+msgstr "Описание"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:157
msgid "Time period"
-msgstr ""
+msgstr "Промежуток времени"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:158
msgid "Full day"
-msgstr ""
+msgstr "Полный день"
#. 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 "Вы хотите, изменить все повторяющиеся события?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:162
msgid "Repeat event"
-msgstr ""
+msgstr "Повтор события"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:163
msgid "Disabled"
-msgstr ""
+msgstr "Отключено"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:164
msgid "Enabled"
-msgstr ""
+msgstr "Включено"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:167
#: addons/web_calendar/static/src/js/calendar.js:175
msgid "Agenda"
-msgstr ""
+msgstr "Повестка дня"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:168
msgid "Date"
-msgstr ""
+msgstr "Дата"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:172
msgid "Year"
-msgstr ""
+msgstr "Год"
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
diff --git a/addons/web_graph/i18n/ru.po b/addons/web_graph/i18n/ru.po
index 7e3316451b2..fcb97444257 100644
--- a/addons/web_graph/i18n/ru.po
+++ b/addons/web_graph/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-01-13 11:41+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-23 14:06+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 05:20+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. openerp-web
#: addons/web_graph/static/src/js/graph.js:19
@@ -25,74 +25,74 @@ msgstr "График"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:5
msgid "Graph Options"
-msgstr ""
+msgstr "Параметры графика"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:7
msgid "Graph Mode"
-msgstr ""
+msgstr "Графический вид"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:11
msgid "Pie"
-msgstr ""
+msgstr "Круговая диаграмма"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:12
msgid "Bars"
-msgstr ""
+msgstr "Линейчатая"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:14
msgid "Lines"
-msgstr ""
+msgstr "Строчная"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:15
msgid "Areas"
-msgstr ""
+msgstr "Области"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:18
msgid "Radar"
-msgstr ""
+msgstr "Радар"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:20
msgid "Legend"
-msgstr ""
+msgstr "Обозначения"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:24
msgid "Hidden"
-msgstr ""
+msgstr "Скрытый"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:25
msgid "Inside"
-msgstr ""
+msgstr "Внутри"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:26
msgid "Top"
-msgstr ""
+msgstr "Сверху"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:28
msgid "Actions"
-msgstr ""
+msgstr "Действия"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:32
msgid "Switch Axis"
-msgstr ""
+msgstr "Переключение осей"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:33
msgid "Show Data"
-msgstr ""
+msgstr "Показать данные"
#. openerp-web
#: addons/web_graph/static/src/xml/web_graph.xml:34
msgid "Download as PNG"
-msgstr ""
+msgstr "Скачать как PNG"
diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po
index 3f1dbfa9389..0e97644b80e 100644
--- a/openerp/addons/base/i18n/ru.po
+++ b/openerp/addons/base/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
-"PO-Revision-Date: 2012-09-24 14:20+0000\n"
+"PO-Revision-Date: 2012-10-23 18:39+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-20 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -76,7 +76,7 @@ msgstr ""
"Модуль ведения проектов отслеживает многоуровневые проекты, задачи, "
"проделанную работу над задачами, и т. д. \n"
"============================================================================="
-"=========\n"
+"===============================\n"
"\n"
"Позволяет выполнять планирование, определять порядок задач и т. д.\n"
"\n"
@@ -163,7 +163,7 @@ msgid ""
msgstr ""
"\n"
"Организация и управление мероприятиями.\n"
-"======================================\n"
+"=======================================\n"
"\n"
"Этот модуль позволяет вам создавать ретро планирование для управления вашими "
"мероприятиями.\n"
@@ -660,7 +660,8 @@ msgstr ""
"\n"
"Модуль для автоматизации отсылки писем по неоплаченным счетам, с "
"многоуровневыми напоминаниями.\n"
-"==========================================================================\n"
+"============================================================================="
+"==================\n"
"\n"
"Вы можете определить ваши многоуровневые напоминания через меню:\n"
" Бухгалтерия/Настройка/Разное/Напоминания\n"
@@ -978,7 +979,7 @@ msgstr ""
"Этот модуль дает администратору возможность отслеживать каждое действие "
"пользователя над всеми объектами системы.\n"
"============================================================================="
-"=================\n"
+"====================================\n"
"\n"
"Администратор может подписаться на правила чтения, записи и\n"
"удаления над объектами и проверять журнал.\n"
@@ -1249,7 +1250,7 @@ msgid ""
msgstr ""
"Отслеживание вашего планирования\n"
"Этот модуль помогает вам управлять вашим планированием.\n"
-"===============================================\n"
+"=======================================================\n"
"\n"
"Этот модуль основан на аналитическом учёте и тотально интегрирован с\n"
"* вводом данных табелей\n"
@@ -1484,7 +1485,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет дополнительные даты к заказам.\n"
-"====================================================\n"
+"========================================\n"
"\n"
"Вы можете добавить следующие дополнительные даты:\n"
" * Дата запроса\n"
@@ -1533,7 +1534,7 @@ msgid ""
msgstr ""
"\n"
"Это полная система управления документами.\n"
-"==============================================\n"
+"==========================================\n"
"\n"
" * Авторизация пользователя\n"
" * Индексация документа: - файлы .pptx и .docx не поддержаны в платформе "
@@ -1623,7 +1624,7 @@ msgstr ""
"Это тестовый модуль, который показывает поддержку HTML тегов в обычном виде "
"XML формы.\n"
"============================================================================="
-"\n"
+"=========\n"
"\n"
"Создаёт пример вида формы используя HTML теги. Это видно только в OpenERP "
"веб.\n"
@@ -1724,7 +1725,7 @@ msgid ""
msgstr ""
"\n"
"Организация и управление мероприятиями.\n"
-"======================================\n"
+"=======================================\n"
"\n"
"Этот модуль позволяет вам\n"
" * управлять вашими мероприятиями и их регистрацией\n"
@@ -1841,7 +1842,8 @@ msgstr ""
"\n"
"Этот модуль добавляет общий инструмент совместного доступа для текущей базы "
"данных OpenERP.\n"
-"========================================================================\n"
+"============================================================================="
+"==============\n"
"\n"
"Он добавляет кнопку 'Совместный доступ', которая доступна в веб-клиенте для\n"
"совместного использования данных OpenERP любого сорта с сотрудниками, "
@@ -1954,7 +1956,7 @@ msgstr ""
" всегда доступна,но допускает номера, которые представлены возможно не "
"верно,\n"
" или более того не допустимы.\n"
-" * Когда параметр \\\"Проверка НДС VIES\\\" разрешён (в настройке "
+" * Когда параметр \"Проверка НДС VIES\" разрешён (в настройке "
"пользовательской\n"
" компании), номера НДС будут отправлены на онлайновую VIES\n"
" базу данных ЕС, которая тщательно проверит, что номер допустим и\n"
@@ -2013,7 +2015,7 @@ msgstr ""
"Этот модуль позволяет вашему пользователю легко и эффективно участвовать в "
"инновациях на предприятии.\n"
"============================================================================="
-"===============\n"
+"========================\n"
"\n"
"Он позволяет каждому выразить идеи относительно различных предметов.\n"
"Далее, другие пользователи могут комментировать эти идеи и голосовать за "
@@ -2378,7 +2380,7 @@ msgstr ""
"Модули журнала продаж позволяют вам распределять ваши продажи и поставки "
"(комплектовочные списки) между различными журналами.\n"
"============================================================================="
-"===========================================\n"
+"================================================\n"
"\n"
"Этот модуль весьма полезен для больших компаний, которые\n"
"работают через подразделения.\n"
@@ -2438,7 +2440,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль нацелен на управление расходами сотрудника.\n"
-"===============================================\n"
+"=======================================================\n"
"\n"
"Реализован весь рабочий процесс:\n"
" * черновой расход\n"
@@ -2578,12 +2580,12 @@ msgid ""
msgstr ""
"\n"
"Управляет рабочими местами и процессом найма.\n"
-"==================================================\n"
+"=============================================\n"
"\n"
"Он интегрирован с модулем опроса для позволения вам определить интервью для "
"различных работ.\n"
"\n"
-"Этот модуль интегрирован с почтовым шлюзом для автоматического отслуживания "
+"Этот модуль интегрирован с почтовым шлюзом для автоматического обслуживания "
"e-mail\n"
"отправленных на jobs@YOURCOMPANY.com. Он также интегрирован с системой "
"управления\n"
@@ -2667,9 +2669,8 @@ msgid ""
" "
msgstr ""
"\n"
-"\\n\n"
-"Управление помощью.\\n\n"
-"====================\\n\n"
+"Управление помощью.\n"
+"===================\n"
"\n"
"Подобно записи и обработке претензий, помощь и поддержка являются хорошими "
"инструментами\n"
@@ -2701,7 +2702,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для управления ресурсами.\n"
-"===============================\n"
+"================================\n"
"\n"
"Ресурс представляет что-то, что может быть запланировано\n"
"(разработчик по задаче или рабочий центр по производственным заказам).\n"
@@ -2809,7 +2810,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления разнесением аналитики и заказами продаж.\n"
-"=================================================================\n"
+"=======================================================================\n"
"\n"
"Использование этого модуля позволит вам связать аналитические счета с "
"заказами продаж.\n"
@@ -2933,8 +2934,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль реализует все концепции методологии дела-в-порядке\n"
-"============================================================================="
-"======\n"
+"==============================================================\n"
"\n"
"Этот модуль реализует простой персональный список дел основанный на задачах. "
"Он добавляет в\n"
@@ -3127,7 +3127,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль добавляет планшет во все канбан виды проекта\n"
-"==================================================\n"
+"========================================================\n"
" "
#. module: base
@@ -3208,7 +3208,7 @@ msgstr ""
"Настройте нужную вам точность цены для различных видов использования: "
"бухгалтерия, продажи, закупки, и т.д.\n"
"============================================================================="
-"=========================\n"
+"==============================\n"
"\n"
"Десятичная точность настроена по компании.\n"
@@ -3230,8 +3230,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль обслуживает в OpenERP план счетов и налогов для Польши.\n"
-"============================================================================="
-"=====\n"
+"===================================================================\n"
"\n"
"To jest moduł do tworzenia wzorcowego planu kont i podstawowych ustawień do "
"podatków\n"
@@ -3276,7 +3275,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет пользователям выполнять сегментацию партнёров.\n"
-"=================================================================\n"
+"====================================================================\n"
"\n"
"Он использует критерии профилей из прежнего модуля сегментации и улучшает "
"их. Благодаря новой концепции опросника. Теперь вы можете перегруппировывать "
@@ -3545,7 +3544,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает шаблон Wiki ЧаВо.\n"
-"=========================================\n"
+"=============================================\n"
"\n"
"Он предусматривает демо данные, для создания Wiki группы и Wiki страниц\n"
"для Wiki ЧаВо.\n"
@@ -3725,27 +3724,27 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления предложениями цен и заказами на продажу.\n"
-"======================================================\n"
+"=======================================================================\n"
"\n"
"Рабочий процесс с шагами подтверждения:\n"
-"-------------------------------\n"
+"---------------------------------------\n"
" * предложение цен -> заказ продаж -> выставление счёта\n"
"\n"
"Способы выставления счёта:\n"
-"------------------\n"
+"--------------------------\n"
" * счёт по заказу (до или после перевозки)\n"
" * счёт по доставке\n"
" * счёт по табелям\n"
" * авансовый счёт\n"
"\n"
"Предпочтения партнёров:\n"
-"---------------------\n"
+"-----------------------\n"
" * перевозка\n"
" * выставление счёта\n"
" * инкотерм\n"
"\n"
"Остатки ТМЦ и цены\n"
-"--------------------------\n"
+"------------------\n"
"\n"
"Способы доставки:\n"
"-----------------\n"
@@ -3754,7 +3753,7 @@ msgstr ""
" * стоимость доставки\n"
"\n"
"Панель руководителя продаж, которая включает:\n"
-"------------------------------------------\n"
+"---------------------------------------------\n"
" * заявки\n"
" * продажи по месяцу\n"
" * график продаж по продавцу за последние 90 дней\n"
@@ -3966,10 +3965,10 @@ msgid ""
msgstr ""
"\n"
"Модуль управления оплатой по счётам.\n"
-"=================================\n"
+"====================================\n"
"\n"
"Этот модуль предоставляет:\n"
-"----------------------\n"
+"--------------------------\n"
"* более эффективный путь для управления оплатой счёта.\n"
"* основной механизм для легкого подключения различных автоматизированных "
"платежей.\n"
@@ -4003,10 +4002,11 @@ msgstr ""
"\n"
"Этот модуль предоставляет некоторые возможности для улучшения макета "
"счетов.\n"
-"=========================================================================\n"
+"============================================================================="
+"\n"
"\n"
"Он даёт вам возможность:\n"
-"--------------------------------\n"
+"------------------------\n"
" * упорядочения всех позиций счёта\n"
" * добавки заголовков, строк комментариев, строк подитога\n"
" * черчения горизонтальных линий и помещения разрывов страниц\n"
@@ -4429,11 +4429,11 @@ msgid ""
msgstr ""
"\n"
"Права бухгалтерского доступа.\n"
-"=========================\n"
+"=============================\n"
"\n"
"Этот модуль даёт пользователю администратору доступ ко всем бухгалтерским "
"возможностям\n"
-"типа записей журналов и планов счетов.\\n\n"
+"типа записей журналов и планов счетов.\n"
"\n"
"Он назначает права доступа руководителя и пользователя администратору, и "
"только\n"
@@ -4494,7 +4494,7 @@ msgstr ""
"Модуль счёта ваучера включает все основные требования записей ваучера для "
"банка, наличных, продаж, закупки, расхода, контра и т.п.\n"
"============================================================================="
-"=======================================================\n"
+"=====================================================\n"
"\n"
" * Запись ваучера\n"
" * Расписка ваучера\n"
@@ -4578,11 +4578,11 @@ msgstr ""
"Что здесь было сделано:\n"
"\n"
" * приспособлен владелец позиции аналитики (= для компании, которая владеет "
-"общим учётом связанным с позицией аналитики)\\n\n"
+"общим учётом связанным с позицией аналитики)\n"
" * добавлена мульти-валютность по позициям аналитики (подобно финансовому "
"учёту)\n"
-" * коррекция всех индикаторов \\\"затраты\\\" в счёт аналитики для их "
-"основы на подходящей валюте (компании владельца)\n"
+" * коррекция всех индикаторов \"затраты\" в счёт аналитики для их основы на "
+"подходящей валюте (компании владельца)\n"
" * по умолчанию, ничего не меняется для представления одиночной компании.\n"
"\n"
"В результате, теперь мы можем реально разделять один и тот же счёт аналитики "
@@ -4649,7 +4649,7 @@ msgstr ""
"Эти модули позволяют вам отследить претензии и жалобы ваших "
"покупателей/поставщиков.\n"
"============================================================================="
-"===\n"
+"=======\n"
"\n"
"Они полностью интегрированы со шлюзом e-mail, так что вы можете создать\n"
"автоматически новые претензии основанные на приходящих e-mail.\n"
@@ -4738,7 +4738,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам анонимизировать базу данных.\n"
-"===============================================\n"
+"======================================================\n"
"\n"
"Этот модуль позволяет вам для данной базы данных секретно хранить ваши "
"данные.\n"
@@ -4780,8 +4780,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль помогает настроить систему при установке новой базы данных.\n"
-"============================================================================="
-"===\n"
+"=======================================================================\n"
"\n"
"Показывает вам список приложений для установки.\n"
"\n"
@@ -4830,7 +4829,7 @@ msgstr ""
"Модуль закупки для создания заказа закупки для приобретения товаров у "
"поставщика.\n"
"============================================================================="
-"============\n"
+"====\n"
"\n"
"Создаётся счёт поставщика для отдельного заказа закупки.\n"
"\n"
@@ -4909,7 +4908,7 @@ msgstr ""
"Этот модуль используемый OpenERP SA для перенаправления покупателей к своим "
"партнёрам, основан на гео-позиционировании.\n"
"============================================================================="
-"=========================\\n\n"
+"==========================================\n"
"\n"
"Вы можете гео-позиционировать ваши предложения используя этот модуль.\n"
"\n"
@@ -5074,7 +5073,7 @@ msgid ""
msgstr ""
"\n"
"Создание повторяющихся документов.\n"
-"===========================\n"
+"==================================\n"
"\n"
"Этот модуль позволяет создавать новые документы и добавлять подписки на эти "
"документы.\n"
@@ -5278,7 +5277,8 @@ msgstr ""
"\n"
"Установщик скрытых дополнений типа 2-го завтрака, опроса, идеи, совместного "
"использования и т.п.\n"
-"===============================================================\n"
+"============================================================================="
+"===================\n"
"\n"
"Делает настройку скрытых дополнений доступной, из которой вы можете "
"установить\n"
@@ -5393,7 +5393,7 @@ msgid ""
msgstr ""
"\n"
"С этим модулем активируется WebDAV сервер для документов.\n"
-"===============================================================\n"
+"=========================================================\n"
"\n"
"Вы можете использовать любой совместимый браузер для удалённого просмотра "
"вложений OpenObject.\n"
@@ -5406,12 +5406,11 @@ msgstr ""
" ; enable = True ; обслуживать webdav через http(s) серверы\n"
" ; vdir = webdav ; каталог, который будет обслуживаться webdav, по\n"
" ; умолчанию это значение означает, что этот webdav будет\n"
-" ; на \\\"http://localhost:8069/webdav/\n"
+" ; на \"http://localhost:8069/webdav/\n"
" ; verbose = True ; включает подробные сообщения webdav\n"
" ; debug = True ; включает отладочные сообщения webdav\n"
" ; Поскольку сообщения маршрутизируются в журналирование python-а с\n"
-" ; уровнями \\\"debug\\\" и \\\"debug_rpc\\\" соответственно, вы можете "
-"оставить\n"
+" ; уровнями \"debug\" и \"debug_rpc\" соответственно, вы можете оставить\n"
" ; эти параметры включёнными\n"
"\n"
"Также реализован IETF RFC 5785 для открытия сервисов на сервере http,\n"
@@ -5440,7 +5439,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль используется для опроса.\n"
-"==================================\n"
+"====================================\n"
"\n"
"Он зависит от ответов или обзоров некоторых вопросов различных "
"пользователей.\n"
@@ -5622,7 +5621,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять вашими требованиями закупки.\n"
-"===========================================================\n"
+"================================================================\n"
"\n"
"Когда создан заказ закупки, вы получаете предложение для сохранения "
"связанного требования.\n"
@@ -5723,7 +5722,7 @@ msgstr ""
"Этот модуль предусматривает возможность одновременной установки "
"пользователем модулей производства и продаж.\n"
"============================================================================="
-"=======\n"
+"===============================\n"
"\n"
"Он обычно используется когда вы хотите отслеживать заказы\n"
"производства созданные из заказа продаж.\n"
@@ -5771,8 +5770,8 @@ msgstr ""
"Создавайте ваши счета из затрат, записей табеля...\n"
"Модуль для создания счетов основанных на затратах (трудовые ресурсы, "
"расходы...).\n"
-"============================================================================"
-"\n"
+"============================================================================="
+"====\n"
"\n"
"Вы можете определить прайс-листы в счёте аналитики, сделав некоторые "
"теоретические отчёты о\n"
@@ -6113,7 +6112,7 @@ msgstr ""
"Модуль управления инвентаризацией OpenERP может обслуживать несколько "
"складов, множественные и структурированные расположения запасов.\n"
"============================================================================="
-"=========================\n"
+"=========================================================\n"
"\n"
"Благодаря управлению двойной записью, управление инвентаризацией мощное и "
"гибкое:\n"
@@ -6210,7 +6209,8 @@ msgstr ""
"\n"
"Этот модуль позволяет бухгалтерам управлять аналитическими и перекрёстными "
"бюджетами.\n"
-"==========================================================================\n"
+"============================================================================="
+"========\n"
"\n"
"Как только главные бюджеты и бюджеты определены (в Бухгалтерия/Бюджеты/),\n"
"руководители проекта могут установить плановую сумму по каждому счёту "
@@ -6468,7 +6468,7 @@ msgstr ""
"Этот модуль позволяет использовать несколько аналитических планов согласно "
"общему журналу.\n"
"============================================================================="
-"======\n"
+"=============\n"
"\n"
"Здесь создаются несколько позиций аналитики, когда счёт или проводки\n"
"подтверждены.\n"
@@ -6560,7 +6560,7 @@ msgstr ""
"Это модуль для изменения вида счёта аналитики для показа важных данных "
"руководителю проекта сервисных компаний.\n"
"============================================================================="
-"======================================\n"
+"==================================\n"
"\n"
"Добавляет меню для показа относящейся к каждому руководителю информации.\n"
"Вы также можете видеть суммарный отчёт по счёту аналитики\n"
@@ -6784,7 +6784,7 @@ msgid ""
msgstr ""
"\n"
"Общая система выплат.\n"
-"=======================\n"
+"=====================\n"
"\n"
" * Подробности о сотруднике\n"
" * Договора сотрудника\n"
@@ -6869,7 +6869,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет пользователю создать свой вариант панели.\n"
-"========================================\n"
+"===================================================\n"
"\n"
"Этот модуль также создаёт административную панель.\n"
"\n"
@@ -6966,7 +6966,7 @@ msgid ""
msgstr ""
"\n"
"Общая подсистема электронной почты с хранением сообщений и очередей.\n"
-"==========================================================\n"
+"====================================================================\n"
"\n"
"Эта подсистема e-mail не предназначена для использования как автономное\n"
"приложение, но предусматривает унифицированное представление e-mail, "
@@ -7032,7 +7032,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять вашими контактами\n"
-"==============================================\n"
+"=====================================================\n"
"\n"
"Он позволяет вам определить:\n"
" * контакты не связанные с партнёром,\n"
@@ -7214,7 +7214,7 @@ msgid ""
msgstr ""
"\n"
"Это поддержка интерфейса FTP к системе управления документами.\n"
-"================================================================\n"
+"==============================================================\n"
"\n"
"С этим модулем у вас будет возможность доступа к документам не только через "
"OpenERP,\n"
@@ -7249,7 +7249,7 @@ msgstr ""
"Этот модуль позволяет вам определить какова функция по умолчанию "
"определённого пользователя на данной учётной записи.\n"
"============================================================================="
-"=======================\n"
+"========================================\n"
"\n"
"Это очень полезно, когда пользователь вводит данные своего табеля: значения "
"извлечены и поля авто-заполнены. Но возможность смены этих значений остаётся "
@@ -7788,7 +7788,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для определения объекта аналитического учёта.\n"
-"===============================================\n"
+"====================================================\n"
"\n"
"В OpenERP счета аналитики связаны с общим учётом, но трактуются\n"
"полностью независимо. Так вы можете ввести различные аналитические "
@@ -7994,9 +7994,8 @@ msgid ""
" "
msgstr ""
"\n"
-"\\n\n"
"Модуль для управления трудовыми ресурсами.\n"
-"=====================================\n"
+"==========================================\n"
"\n"
"Вы можете управлять:\n"
" * Сотрудниками и иерархией: вы можете определить вашего сотрудника как "
@@ -8113,7 +8112,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет всю информацию в форму сотрудника для управления договорами.\n"
-"=============================================================\n"
+"======================================================================\n"
"\n"
" * Семейное положение,\n"
" * Номер соцзащиты,\n"
@@ -8148,7 +8147,8 @@ msgstr ""
"\n"
"Этот модуль добавляет сокращение по одному или нескольким предложениям в "
"CRM.\n"
-"===========================================================================\n"
+"============================================================================="
+"=\n"
"\n"
"Это сокращение позволяет вам создать заказ продаж основанный на выбранном "
"вопросе.\n"
@@ -8279,7 +8279,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет вам добавить способы доставки в заказы продаж и комплектование.\n"
-"==============================================================\n"
+"=========================================================================\n"
"\n"
"Вы можете определить для цен вашу собственную перевозку и сетки доставки.\n"
"При создании счетов из комплектования, OpenERP способен добавить и "
@@ -8330,7 +8330,7 @@ msgstr ""
"Этот модуль поддерживает англо-саксонскую бухгалтерскую методологию путём "
"смены бухгалтерской логики складских операций.\n"
"============================================================================="
-"========================================\n"
+"===========================================\n"
"\n"
"Различие бухгалтерий между англо-саксонскими странами\n"
"и рейнскими, или также называемыми континентальными странами, заключается в "
@@ -8391,7 +8391,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет кнопку \"Отзыв\" в заголовок.\n"
-"==============================\n"
+"=====================================\n"
"\n"
"Предлагает отзыв пользователя OpenERP, через uservoice.\n"
" "
@@ -8464,7 +8464,7 @@ msgid ""
msgstr ""
"\n"
"Двойное подтверждение для закупок превысивших минимум суммы.\n"
-"=========================================================\n"
+"============================================================\n"
"\n"
"Этот модуль изменяет процесс закупки в порядке подтверждения закупок,\n"
"которые превышают минимум суммы заданный мастером настройки.\n"
@@ -8558,7 +8558,7 @@ msgid ""
msgstr ""
"\n"
"Изменяет даты соответственно смене конечной даты в проекте.\n"
-"======================================================\n"
+"===========================================================\n"
"\n"
"Если конечная дата проекта изменена, то дата конечного срока и дата начала "
"будут соответственно изменены для всех задач.\n"
@@ -8703,7 +8703,7 @@ msgstr ""
"Этот модуль дополняет приложение склада эффективной реализацией нисходящих и "
"восходящих потоков инвентаризации.\n"
"============================================================================="
-"===============================\n"
+"==================================\n"
"\n"
"Обычно он используется для:\n"
" * Управления цепочками изготовления товаров\n"
@@ -8723,7 +8723,7 @@ msgstr ""
"Демонстрационные данные товара ЦП1:\n"
"\n"
"Нисходящие потоки\n"
-"----------\n"
+"-----------------\n"
"Нисходящие потоки применимы, когда прибытие определённых товаров в данное "
"место хранения должно всегда\n"
"сопровождаться соответствующим перемещением в другое место хранения, не "
@@ -8744,7 +8744,7 @@ msgstr ""
"параметров.\n"
"\n"
"Восходящие потоки\n"
-"----------\n"
+"-----------------\n"
"Восходящие потоки несколько отличны от нисходящих потоков, в том, что они "
"относятся не к\n"
"обработке перемещений товара, а скорее к обработке заказов снабжения.\n"
@@ -8775,7 +8775,7 @@ msgstr ""
"товаре (т.е. конечное место хранения этого заказа снабжения).\n"
"\n"
"Пример использования\n"
-"--------\n"
+"--------------------\n"
"\n"
"Вы можете использовать следующие демонстрационные данные:\n"
" ЦП1: продажа ЦП1 из магазина 1 и запуск планировщика\n"
@@ -8799,7 +8799,7 @@ msgid ""
msgstr ""
"\n"
"Меню для маркетинга.\n"
-"===================\n"
+"====================\n"
"\n"
"Содержит установщик для модулей относящихся к маркетингу.\n"
" "
@@ -8852,7 +8852,7 @@ msgid ""
msgstr ""
"\n"
"Автоматически создаёт задачи проекта из позиций снабжения\n"
-"==========================================================\n"
+"=========================================================\n"
"\n"
"Этот модуль автоматически создаст новую задачу для каждой позиции заказа\n"
"снабжения (например, для позиций заказа продажи), если соответствующий "
@@ -8934,7 +8934,8 @@ msgstr ""
"\n"
"Этот модуль может автоматически создать задачи проекта основанные на "
"входящих письмах\n"
-"===========================================================================\n"
+"============================================================================="
+"========\n"
"\n"
"Позволяет создавать задачи основанные на новых письмах приходящих на данный "
"почтовый ящик,\n"
@@ -8973,7 +8974,8 @@ msgstr ""
"\n"
"Этот модуль позволяет вам управлять всеми операциями для управления "
"участием.\n"
-"=========================================================================\n"
+"============================================================================="
+"\n"
"\n"
"Он поддерживает различные виды участников:\n"
"* Свободный участник\n"
@@ -8999,7 +9001,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предназначен для управления посещаемости работников.\n"
-"==================================================\n"
+"================================================================\n"
"\n"
"Поддерживает учёт посещаемости работников на основе\n"
"действий (приход/уход) выполненных ими.\n"
@@ -9074,10 +9076,10 @@ msgid ""
" "
msgstr ""
"\n"
-"Этот модуль поддерживает внутреннюю нумерацию бухгалтерских записей.\n"
-"======================================================================\n"
+"Этот модуль поддерживает внутреннюю нумерацию бухгалтерских проводок.\n"
+"====================================================================\n"
"\n"
-"Позволяет вам настроить нумерацию бухгалтерских записей.\n"
+"Позволяет вам настроить нумерацию бухгалтерских проводок.\n"
"\n"
"Вы можете подстроить следующие атрибуты нумерации:\n"
" * Префикс\n"
@@ -9295,7 +9297,7 @@ msgid ""
msgstr ""
"\n"
"Возможности Caldav во встрече.\n"
-"===========================\n"
+"==============================\n"
"\n"
" * Совместное использование встречи с другими клиентами календаря типа "
"Sunbird\n"
@@ -9483,7 +9485,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам управлять отпусками и запросами отпусков.\n"
-"=============================================================\n"
+"===================================================================\n"
"\n"
"Реализует панель для управления трудовыми ресурсами, которая включает:\n"
" * Отпуска\n"
@@ -9586,7 +9588,7 @@ msgid ""
msgstr ""
"\n"
"Шаблон руководства по качеству.\n"
-"========================\n"
+"===============================\n"
"\n"
"Он предусматривает демо-данные, включая Wiki группу и Wiki страницу\n"
"для Wiki руководства по качеству.\n"
@@ -9636,7 +9638,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для настройки модулей относящихся к объединению.\n"
-"==============================================================\n"
+"===========================================================\n"
"\n"
"Он устанавливает профиль для объединений для обслуживания событий, "
"регистраций, членства, продуктов членства (проекты) и т.п.\n"
@@ -9724,7 +9726,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для вычисления снабжения.\n"
-"==============================================\n"
+"====================================\n"
"\n"
"В процессе MRP, заказы снабжения создаются для вызова заказов\n"
"производства, заказов закупки, распределений запаса и т.д. Заказы снабжения\n"
@@ -9843,7 +9845,7 @@ msgstr ""
"Этот модуль добавляет новый движок отчёта основанный на библиотеке WebKit "
"(wkhtmltopdf) для поддержки очётов разработанных в HTML + CSS.\n"
"============================================================================="
-"========================================\n"
+"===========================================================\n"
"\n"
"Структура модуля и некоторый код заимствованы из модуля отчёта OpenOffice.\n"
"\n"
@@ -9869,7 +9871,7 @@ msgstr ""
" http://files.me.com/nbessi/06n92k.mov\n"
"\n"
"Требования и установка\n"
-"-----------------------------\n"
+"----------------------\n"
"Этот модуль требует библиотеку ``wkthtmltopdf`` для перевода документов HTML "
"в\n"
"PDF. Необходима версия 0.9.9 или новее, и может быть найдена на "
@@ -9886,7 +9888,7 @@ msgstr ""
"\n"
"\n"
"СДЕЛАТЬ\n"
-"----\n"
+"-------\n"
"\n"
" * Поддержку активации деактивации JavaScript\n"
" * Поддержку разобранного по листам и книжного формата\n"
@@ -9990,7 +9992,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль содержит основную функциональность для системы Caldav.\n"
-"===========================================================\n"
+"==================================================================\n"
"\n"
" - Webdav сервер, который предусматривает удалённый доступ к календарю\n"
" - Синхронизация календаря используя WebDAV\n"
@@ -10132,7 +10134,7 @@ msgid ""
msgstr ""
"Устанавливает значения по умолчанию для ваших аналитических счетов\n"
"Позволяет автоматический выбор аналитических счетов на основе критериев:\n"
-"=====================================================================\n"
+"========================================================================\n"
"\n"
"* Товар\n"
"* Партнёр\n"
@@ -10202,7 +10204,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления документами (Wiki).\n"
-"==========================================\n"
+"==================================================\n"
"\n"
"Отслеживает группы, страницы и историю Wiki.\n"
" "
@@ -10484,7 +10486,7 @@ msgstr ""
"============================================================\n"
"\n"
"Краткий словарь\n"
-"--------------\n"
+"---------------\n"
"- Период запаса - границы времени (между датой начала и конечной датой) для "
"планирования ваших продаж и прогнозов запаса\n"
"- Прогноз продаж - количество товаров, которое вы планируете продать в "
@@ -10498,7 +10500,7 @@ msgstr ""
"подчёркивания, что мы используем количественные значения.\n"
"\n"
"Для начала\n"
-"--------------\n"
+"----------\n"
"Использование этого модуля производится в три шага:\n"
"\n"
" * Создание периодов запаса через меню Склад>Настройки>Периоды запаса "
@@ -10511,7 +10513,7 @@ msgstr ""
"запаса.\n"
"\n"
"Настройки периода запаса\n"
-"--------------------------\n"
+"------------------------\n"
"У вас есть два пункта меню для периодов в \"Склад > Настройки > Периоды "
"запаса\". Это:\n"
"\n"
@@ -10546,7 +10548,7 @@ msgstr ""
"промежутки между периодами, результаты могут быть не предсказуемыми.\n"
"\n"
"Настройки прогнозов продаж\n"
-"-----------------------------\n"
+"--------------------------\n"
"У вас есть несколько меню для прогноза продаж в \"Продажи > Прогнозы "
"продаж\":\n"
"\n"
@@ -10597,7 +10599,7 @@ msgstr ""
"\n"
"\n"
"МПС или планирование снабжения\n"
-"---------------------------\n"
+"------------------------------\n"
"Планирование МПС заключающееся в строках планирования запаса, используется "
"для анализа и возможности ведения снабжения\n"
"товарами для каждого относящегося периода запаса и склада.\n"
@@ -10672,7 +10674,7 @@ msgstr ""
"планирование\".\n"
"\n"
"Подсчёт количеств моделирования запаса\n"
-"------------------------------------------\n"
+"--------------------------------------\n"
"Значение моделирования запаса - ожидаемое количество запаса в конце "
"периода.\n"
"Подсчёт всегда начинается с реального имеющегося запаса на начало текущего "
@@ -10800,7 +10802,7 @@ msgstr ""
"Этот модуль создаёт техническое описание выбранных модулей в "
"реструктурированном текстовом формате (RST).\n"
"============================================================================="
-"====================\n"
+"============================\n"
"\n"
" * Он использует Sphinx (http://sphinx.pocoo.org) представление RST\n"
" * Он создаёт архив (суффикс файла .tgz) содержащий индекс файла и один "
@@ -10944,7 +10946,7 @@ msgstr ""
"Этот модуль помогает вам легко ввести данные и подтвердить табель и "
"посещаемость в одном и том же виде.\n"
"============================================================================="
-"======================\n"
+"==========================\n"
"\n"
"Верхняя часть вида - для посещаемости и отслеживает события (приход/уход).\n"
"Нижняя часть - для табеля.\n"
@@ -10960,7 +10962,7 @@ msgstr ""
"* Подтверждение руководителем проекта\n"
"\n"
"Подтверждение в компании может быть настроено по:\n"
-"* Размеру периода (день, неделя, месяц, год)\\n\n"
+"* Размеру периода (день, неделя, месяц, год)\n"
"* Максимальной разнице между табелем и посещаемостью\n"
" "
@@ -11056,10 +11058,10 @@ msgid ""
msgstr ""
"\n"
"Это основной модуль для управления процессом производства в OpenERP.\n"
-"=======================================================================\n"
+"====================================================================\n"
"\n"
"Возможности:\n"
-"---------\n"
+"------------\n"
" * Сделать в запас/сделать на заказ (по строке)\n"
" * Многоуровневые ВМ, нет ограничения\n"
" * Многоуровневая маршрутизация, нет ограничения\n"
@@ -11080,14 +11082,14 @@ msgstr ""
"в ВМ для автоматической закупки по заказу сборки вашего производства.\n"
"\n"
"Отчёты предусмотренные этим модулем:\n"
-"--------------------------------\n"
+"------------------------------------\n"
" * Структура и компоненты ведомости материалов\n"
" * Прогноз загрузки по рабочим центрам\n"
" * Печать производственного заказа\n"
" * Прогнозы запаса\n"
"\n"
"Панель предусмотренная этим модулем:\n"
-"----------------------------------\n"
+"------------------------------------\n"
" * Список следующих производственных заказов\n"
" * Список проблем снабжений\n"
" * График загрузки рабочего центра\n"
@@ -11235,7 +11237,7 @@ msgid ""
msgstr ""
"\n"
"Общий интерфейс для плагина.\n"
-"=====================================================\n"
+"============================\n"
"\n"
#. module: base
@@ -11411,7 +11413,7 @@ msgid ""
msgstr ""
"\n"
"Это модуль для управления окружением мульти-компаний.\n"
-"=======================================================\n"
+"=====================================================\n"
"\n"
"Это основной модуль для других модулей мульти-компаний.\n"
" "
@@ -11464,7 +11466,7 @@ msgid ""
msgstr ""
"\n"
"Берет входящую эл.почту с серверов POP / IMAP\n"
-"=============================================\n"
+"==============================================\n"
"\n"
"Введите параметры ваших учётных записей POP/IMAP, и любые входящие\n"
"e-mail-ы на этих адресах будут автоматически загружены в вашу систему\n"
@@ -11565,10 +11567,10 @@ msgid ""
msgstr ""
"\n"
"Бухгалтерия и управление финансами.\n"
-"====================================\n"
+"===================================\n"
"\n"
"Финансовый и бухгалтерский модуль, который покрывает:\n"
-"--------------------------------------------\n"
+"-----------------------------------------------------\n"
"Общий учет\n"
"Стоимостной/аналитический учёт\n"
"Бухгалтерия третьей стороны\n"
@@ -11579,7 +11581,7 @@ msgstr ""
"Обработка сверки по партнёрам\n"
"\n"
"Создаёт панель для бухгалтеров, которая включает:\n"
-"--------------------------------------------------\n"
+"-------------------------------------------------\n"
"* Список счетов заказчикам для одобрения\n"
"* Анализ компании\n"
"* График задолженностей\n"
@@ -11689,7 +11691,7 @@ msgid ""
msgstr ""
"\n"
"Установщик для скрытой отчётности.\n"
-"==============================\n"
+"==================================\n"
"\n"
"Делает доступной настройку скрытой отчётности из которой вы можете "
"установить\n"
@@ -11741,7 +11743,7 @@ msgid ""
" "
msgstr ""
"\n"
-"Список дел для кандидатов и предложений в CRM.\\n\n"
+"Список дел для кандидатов и предложений в CRM.\n"
" "
#. module: base
@@ -11803,7 +11805,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет синхронизировать календари с другими приложениями.\n"
-"=========================================================\n"
+"============================================================\n"
"\n"
"Позволит синхронизировать ваши календари OpenERP с вашим телефоном, Outlook, "
"Sunbird, Ical, ...\n"
@@ -12287,7 +12289,7 @@ msgid ""
msgstr ""
"\n"
"Позволяет отмену бухгалтерских проводок.\n"
-"=====================================\n"
+"========================================\n"
"\n"
"Этот модуль добавляет поле 'Разрешить отмену проводок' в вид формы журнала "
"учета. Если оно помечено, то это позволяет пользователю отменить проводки и "
@@ -12327,7 +12329,7 @@ msgid ""
msgstr ""
"\n"
"Создание претензии из заказа доставки.\n"
-"=====================================\n"
+"======================================\n"
"\n"
"Добавляет ссылку претензии к заказу доставки.\n"
@@ -12409,7 +12411,7 @@ msgid ""
msgstr ""
"\n"
"Общий план счетов\n"
-"=========================\n"
+"=================\n"
"\n"
"Предоставляется шаблон плана счетов, налогов для Уругвая\n"
"\n"
@@ -12512,7 +12514,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль добавляет поле карты Google в адрес партнёра.\n"
-"====================================================\n"
+"=========================================================\n"
"\n"
"Используя это вы можете непосредственно открывать карту Google Map из поля "
"URL."
@@ -12547,7 +12549,7 @@ msgstr ""
"\n"
"Вы можете создать кнопки печати вызвав мастер. Для дополнительных "
"подробностей смотрите:\n"
-" http://files.me.com/nbessi/06n92k.mov\\n\n"
+" http://files.me.com/nbessi/06n92k.mov\n"
" "
#. module: base
@@ -12631,7 +12633,7 @@ msgid ""
msgstr ""
"\n"
"Модуль добавляющий изготовителей и свойства в форму ввода товара.\n"
-"====================================================================\n"
+"=================================================================\n"
"\n"
"Теперь вы можете определить следующее для товара:\n"
" * Изготовитель\n"
@@ -12684,7 +12686,7 @@ msgstr ""
"Этот модуль устанавливает основу для банковских счетов IBAN (международных "
"номеров банковских счетов) и проверяет их правильность.\n"
"============================================================================="
-"========================================\n"
+"=====================================================\n"
"\n"
"Возможность извлечь правильно представленные локальные счета из счетов IBAN "
"одним действием.\n"
@@ -12780,7 +12782,7 @@ msgid ""
msgstr ""
"\n"
"Общая система выплат интегрированная с бухгалтерией.\n"
-"===================================================\n"
+"====================================================\n"
"\n"
" * Запись данных зарплаты\n"
" * Запись данных выплаты\n"
@@ -12819,10 +12821,10 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает быструю и лёгкую обработку продаж.\n"
-"===================================================\n"
+"==============================================================\n"
"\n"
"Основные возможности :\n"
-"---------------\n"
+"----------------------\n"
" * Быстрый ввод данных продаж.\n"
" * Возможность выбора одного способа оплаты (быстрый путь) или разбиение "
"платежа между несколькими способами оплаты.\n"
@@ -12915,7 +12917,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предусматривает шаблон Wiki ЧаВо продаж.\n"
-"===============================================\n"
+"====================================================\n"
"\n"
"Он предусматривает демо данные, включая создание Wiki группы и Wiki "
"страницы\n"
@@ -12945,7 +12947,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет реализовать правила действия для любого объекта.\n"
-"============================================================\n"
+"======================================================================\n"
"\n"
"Использование автоматизированных действий для запуска действий для различных "
"экранов.\n"
@@ -13001,7 +13003,7 @@ msgstr ""
"Добавляет меню отчётности в товары, которое подсчитывает продажи, закупки, "
"маржи и другие интересные показатели основанные на счетах.\n"
"============================================================================="
-"================================================\n"
+"========================================================\n"
"\n"
"Мастер для запуска отчёта имеет различные параметры, чтобы помочь вам "
"получить нужные вам данные.\n"
@@ -13372,7 +13374,7 @@ msgstr ""
"Этот модуль добавляет поддержку табеля для управления проблемами/ошибками в "
"проекте.\n"
"============================================================================="
-"====\n"
+"=======\n"
"\n"
"Могут быть поддержаны рабочие журналы для выражения числа часов затраченных "
"пользователями на решение проблемы.\n"
@@ -13561,7 +13563,7 @@ msgid ""
msgstr ""
"\n"
"Модуль для запуска предупреждений в объектах OpenERP.\n"
-"==============================================\n"
+"=====================================================\n"
"\n"
"Предупреждающие сообщения могут быть показаны для объектов типа заказа "
"продаж, заказа снабжения,\n"
@@ -13630,7 +13632,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет функцию посылки сообщений в рамках проекта.\n"
-"=========================================================================\n"
+"=====================================================================\n"
"\n"
"Пользователь может посылать индивидуальные сообщения другому пользователю. "
"Он может даже посылать\n"
@@ -13676,7 +13678,7 @@ msgid ""
msgstr ""
"\n"
"Модуль, который добавляет отчёты intrastat.\n"
-"=====================================\n"
+"===========================================\n"
"\n"
"Этот модуль даёт подробности торговли товарами между странами Европейского "
"союза "
@@ -13694,7 +13696,7 @@ msgid ""
msgstr ""
"\n"
"Мастер выставления счёта на доставку.\n"
-"============================\n"
+"=====================================\n"
"\n"
"Когда вы отправляете или получаете товары, этот модуль автоматически "
"вызывает\n"
@@ -13766,7 +13768,7 @@ msgstr ""
"Этот модуль позволяет вам подсчитать скидки по позициям заказа продажи и "
"позициям счёта по прайс-листу партнёра.\n"
"============================================================================="
-"==================================\n"
+"===================================\n"
"\n"
"В конце в форму прайс-листа добавлен новый флажок названный \"Видимая "
"скидка\".\n"
@@ -13909,9 +13911,9 @@ msgid ""
msgstr ""
"\n"
"Этот модуль требуется для правильной работы плагина Thuderbird.\n"
-"====================================================================\n"
+"===============================================================\n"
"\n"
-"Плагин позволяет вам архивировать e-mail и её вложения в выбранные\n"
+"Плагин позволяет вам архивировать e-mail c вложениями в выбранные\n"
"объекты OpenERP. Вы можете выбрать партнёра, задачу, проект, счёт\n"
"аналитики или иной объект и прикрепить выбранное письмо как .eml файл во\n"
"вложение выбранной записи. Вы можете создать документы для кандидатов CRM,\n"
@@ -13967,7 +13969,7 @@ msgstr ""
"Цель в наличии завершённого модуля для управления всеми ремонтами товаров. "
"Этим модулем покрыты следующие темы:\n"
"============================================================================="
-"==============================================\n"
+"==================================\n"
"\n"
" * Добавление/удаление товаров в ремонт\n"
" * Влияние на запасы\n"
@@ -14002,7 +14004,7 @@ msgid ""
msgstr ""
"\n"
"Установщик для основанного на знаниях скрытия.\n"
-"====================================\n"
+"==============================================\n"
"\n"
"Делает доступной настройки приложения знаний, откуда вы можете установить\n"
"документ и основанное на Wiki скрытие.\n"
@@ -14080,7 +14082,7 @@ msgid ""
msgstr ""
"\n"
"Синхронизация записей работ по проекту и записей табеля.\n"
-"====================================================================\n"
+"========================================================\n"
"\n"
"Этот модуль позволяет вам перенос записей по задачам определённым для "
"управления проектом в\n"
@@ -14194,7 +14196,7 @@ msgstr ""
"Этот модуль реализует все концепции определённые методологией управления "
"проектом Scrum для ИТ компаний.\n"
"============================================================================="
-"============================\n"
+"===========================\n"
"\n"
" * Проект со спринтами, владелец продукта, мастер Scrum\n"
" * Спринты с обзорами, дневные встречи, обратные связи\n"
@@ -14498,7 +14500,7 @@ msgstr ""
"Этот модуль добавляет в строки операций заказа производства состояние, дату "
"начала, дату завершения (во вкладке \"Рабочие центры\").\n"
"============================================================================="
-"================================\\n\n"
+"=====================================================\n"
"\n"
"Состояния: черновик, подтвердить, сделан, отмена\n"
"При завершении/подтверждении, отмене производственных заказов устанавливает "
@@ -14554,7 +14556,7 @@ msgstr ""
"Этот модуль управляет записями артистов, предметами аукциона, покупателями и "
"продавцами.\n"
"============================================================================="
-"====\n"
+"===========\n"
"\n"
"Он полностью управляет аукционом так, как обслуживает ставки,\n"
"отслеживает проданные предметы вместе с оплаченными\n"
@@ -14564,7 +14566,7 @@ msgstr ""
" * последние объекты (список)\n"
" * последние депозиты (список)\n"
" * статистики объектов (список)\n"
-" * итоговые результаты (график)\\n\n"
+" * итоговые результаты (график)\n"
" * мин./рез./макс. (график)\n"
" * объекты по дню (график)\n"
" "
@@ -14606,7 +14608,7 @@ msgid ""
msgstr ""
"\n"
"Заменяет простые текстовые пароли в базе данных на защищённые хэши\n"
-"===============================================================\n"
+"==================================================================\n"
"Для существующей базы пользователей, удаление простых текстовых\n"
"паролей осуществляется немедленно, когда вы устанавите base_crypt.\n"
"\n"
@@ -14619,7 +14621,7 @@ msgstr ""
"администратор может задать новый пароль.\n"
"\n"
"Предупреждение защиты\n"
-"++++++++++++++++\n"
+"+++++++++++++++++++++\n"
"Установка этого модуля не означает, что вы можете игнорировать другие "
"настройки защиты,\n"
"поскольку пароль остаётся не зашифрованным при передаче по сети, если вы\n"
@@ -14633,7 +14635,7 @@ msgstr ""
"к серверу, и т.д.\n"
"\n"
"Взаимодействие с аутентификацией LDAP\n"
-"+++++++++++++++++++++++++++++++++++\n"
+"+++++++++++++++++++++++++++++++++++++\n"
"Этот модуль сейчас не совместим с модулем ``user_ldap`` и\n"
"будет полностью лишать возможности LDAP аутентификации, если установлен "
"одновременно.\n"
@@ -14818,7 +14820,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль используется совместно с OpenERP плагином OpenOffice.\n"
-"=========================================================\n"
+"=================================================================\n"
"\n"
"Этот модуль добавляет мастер для импорта/экспорта .sxw отчёта, который\n"
"вы можете изменить в OpenOffice. После того как вы измените его, вы можете\n"
@@ -14862,11 +14864,11 @@ msgid ""
msgstr ""
"\n"
"Это полнофункциональная календарная система.\n"
-"========================================\n"
+"============================================\n"
"\n"
"Она поддерживает:\n"
" - Календарь событий\n"
-" - Тревоги (создание запросов)\n"
+" - Оповещения (создание запросов)\n"
" - Повторные события\n"
" - Приглашения людям\n"
"\n"
@@ -14967,9 +14969,10 @@ msgid ""
" "
msgstr ""
"\n"
-"Предоставляет общую платформу , которую могут использовать другие "
+"Предоставляет общую платформу ОЭД(EDI), которую могут использовать другие "
"приложения\n"
-"==============================================================\n"
+"============================================================================="
+"=======\n"
"\n"
"ОЭД(EDI) - обмен электронными документами\n"
"OpenERP определяет общий формат ОЭД для обмена деловыми\n"
@@ -15271,7 +15274,7 @@ msgid ""
msgstr ""
"\n"
"Добавляет поддержку авторизации через LDAP сервер.\n"
-"===============================================\n"
+"==================================================\n"
"Этот модуль позволяет пользователям входить с их именем пользователя и "
"паролём LDAP,\n"
"и автоматически создаст на лету пользователей для OpenERP.\n"
@@ -15281,7 +15284,7 @@ msgstr ""
"``ldap`` Python-а.\n"
"\n"
"Настройка\n"
-"+++++++++++++\n"
+"+++++++++\n"
"После установки этого модуля, вам нужно настроить параметры\n"
"LDAP во вкладке настройки подробностей компании.\n"
"Различные компании могут иметь отличающиеся серверы LDAP, поскольку\n"
@@ -15305,7 +15308,7 @@ msgstr ""
"руководства ldap.conf: manpage:`ldap.conf(5)`.\n"
"\n"
"Соображения защиты\n"
-"+++++++++++++++++++++++\n"
+"++++++++++++++++++\n"
"Пароли пользователей LDAP никогда не сохраняются в базе данных OpenERP,\n"
"LDAP сервер запрашивается всякий раз, когда пользователю нужно быть\n"
"авторизованным. Не происходит дублирования паролей, и\n"
@@ -15336,7 +15339,7 @@ msgstr ""
"серверу LDAP зашифрован.\n"
"\n"
"Шаблон пользователя\n"
-"+++++++++++++\n"
+"+++++++++++++++++++\n"
"В настройках LDAP в форме компании, возможно\n"
"выбрать *Шаблон пользователя*. Если задан, этот пользователь будет "
"использован как\n"
@@ -15359,7 +15362,7 @@ msgstr ""
"группы по вашему желанию.\n"
"\n"
"Взаимодействие с шифрацией базы\n"
-"+++++++++++++++++++++++++++\n"
+"+++++++++++++++++++++++++++++++\n"
"Модуль base_crypt не совместим с этим модулем, и\n"
"отключит аутентификацию LDAP, если установлен одновременно.\n"
"\n"
@@ -15538,7 +15541,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вовремя вычислять заказы снабжения.\n"
-"==================================================================\n"
+"=========================================================\n"
"\n"
"Если вы установили этот модуль, вам больше не понадобится регулярное "
"выполнение\n"
@@ -15624,7 +15627,7 @@ msgid ""
msgstr ""
"\n"
"Демо данные для модуля marketing_campaign.\n"
-"============================================\n"
+"==========================================\n"
"\n"
"Создаёт демо данные типа возможностей, кампаний и сегментов для модуля "
"marketing_campaign.\n"
@@ -15904,7 +15907,7 @@ msgid ""
msgstr ""
"\n"
"Назначение этого модуля - проверка качества других модулей.\n"
-"================================================================\n"
+"===========================================================\n"
"\n"
"Он определяет мастер по списку модулей в OpenERP, который позволяет вам\n"
"оценить их по различным критериям, таким как: соответствие стандартам\n"
@@ -15960,7 +15963,7 @@ msgstr ""
"Этот модуль промежуточного процесса комплектования для обеспечения сырьем "
"производственных заказов.\n"
"============================================================================="
-"====================\n"
+"======================\n"
"\n"
"Один пример использования этого модуля - управление производством сделанным "
"вашими\n"
@@ -16056,7 +16059,7 @@ msgid ""
msgstr ""
"\n"
"Основной модуль для управления разнесением аналитики и заказами закупки.\n"
-"====================================================================\n"
+"========================================================================\n"
"\n"
"Позволяет пользователю поддерживать различные аналитические планы. Позволяет "
"вам разбить\n"
@@ -16182,10 +16185,10 @@ msgstr ""
"Модуль управления долгосрочным проектом, который отслеживает планирование, "
"планировщики, назначение ресурсов.\n"
"============================================================================="
-"==============\n"
+"================================\n"
"\n"
"Возможности\n"
-"--------\n"
+"-----------\n"
" * Управление большим проектом.\n"
" * Определение различных этапов проекта.\n"
" * Подсчёт планирования этапа: подсчёт даты начала и конечной даты этапов "
@@ -16321,7 +16324,7 @@ msgid ""
msgstr ""
"\n"
"Отслеживает различные даты по товарам и партиям производства.\n"
-"======================================================\n"
+"=============================================================\n"
"\n"
"Могут быть отслежены следующие даты:\n"
" - конец жизни\n"
@@ -16374,7 +16377,7 @@ msgid ""
msgstr ""
"\n"
"Удаление минимального плана счетов.\n"
-"=============================\n"
+"===================================\n"
"\n"
"Деактивирует минимальный план счетов.\n"
@@ -16442,7 +16445,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет возможности улучшения макета заказа продаж.\n"
-"=======================================================================\n"
+"=====================================================================\n"
"\n"
"Он даёт вам возможность\n"
" * упорядочить все позиции заказа продаж\n"
@@ -16596,7 +16599,7 @@ msgstr ""
"Этот модуль показывает основные процессы существующие в выбранных модулях и "
"их последовательность.\n"
"============================================================================="
-"=========================\n"
+"=====================\n"
"\n"
"Примечание: это применимо к модулям содержащим modulename_process_xml\n"
"например: product/process/product_process_xml\n"
@@ -16874,7 +16877,8 @@ msgstr ""
"\n"
"Этот модуль позволяет вам создать любой статистический отчёт по различным "
"объектам.\n"
-"=========================================================================\n"
+"============================================================================="
+"======\n"
"\n"
"Это конструктор SQL запроса и просмотрщик\n"
"для конечных пользователей.\n"
@@ -17092,7 +17096,7 @@ msgid ""
msgstr ""
"\n"
"Это основной модуль для управления товарами и прайс-листами в OpenERP.\n"
-"========================================================================\n"
+"======================================================================\n"
"\n"
"Товары поддерживают варианты, различные методы ценообразования, информацию\n"
"поставщиков, изготовление в запас/по заказу, различные единицы измерения,\n"
@@ -17205,7 +17209,7 @@ msgid ""
msgstr ""
"\n"
"Обеспечивает поддержку живого чата для тех, укого есть договор поддержки.\n"
-"===================================================================\n"
+"=========================================================================\n"
"\n"
"Добавляет кнопку \"Поддержка\" button в заголовке формы доступа к поддержке "
"OpenERP.\n"
@@ -17287,7 +17291,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль предоставляет управление проблемами/ошибками в проекте.\n"
-"=======================================================\n"
+"===================================================================\n"
"\n"
"OpenERP позволяет вам управлять проблемами, которые вы можете встретить в "
"проекте\n"
@@ -17555,8 +17559,7 @@ msgid ""
msgstr ""
"\n"
"Шаблоны e-mail (упрощённая версия оригинальной Power Email от Openlabs)\n"
-"============================================================================="
-"\n"
+"=======================================================================\n"
"\n"
"Позволяет вам разработать полные шаблоны e-mail связанные с любым документом "
"OpenERP (заказами\n"
@@ -17645,7 +17648,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль реализует табельную систему.\n"
-"==========================================\n"
+"========================================\n"
"\n"
"Каждый работник может ввести и отследить время затраченное на различные "
"проекты.\n"
@@ -17731,7 +17734,7 @@ msgid ""
msgstr ""
"\n"
"Это общее управление взаимоотношениями с покупателями (CRM) в OpenERP.\n"
-"=====================================================\\n\n"
+"======================================================================\n"
"\n"
"Эта система позволяет группировать людей для разумного и эффективного "
"управления\n"
@@ -17753,7 +17756,7 @@ msgstr ""
"поблагодарит\n"
"их за сообщение, автоматически направив его соответствующему начальнику, и "
"убедится в том,\n"
-" что вся будущая переписка отправится в правильное место.\n"
+"что вся будущая переписка отправится в правильное место.\n"
"\n"
"Модуль CRM имеет почтовый шлюз для синхронизации интерфейса\n"
"сообщений и OpenERP.\n"
@@ -17924,7 +17927,8 @@ msgstr ""
"(кампании фактически могут быть определены по любому ресурсу, не только по "
"кандидатам CRM).\n"
"============================================================================="
-"============================================================\n"
+"============================================================================="
+"==============\n"
"\n"
"Кампании являются динамическими и много-канальными. Процесс следующий:\n"
" * Разработка маркетинговых кампаний типа рабочих процессов, включая "
@@ -18283,7 +18287,7 @@ msgid ""
msgstr ""
"\n"
"Общая основа для модулей инструментов.\n"
-"==============================\n"
+"======================================\n"
"\n"
"Создаёт пункт меню для инструментов откуда доступны инструменты типа опрос, "
"2-й завтрак, идея, и т.п., если установлены.\n"
@@ -18340,7 +18344,7 @@ msgstr ""
"Этот модуль позволяет вам производить несколько продуктов по одному заказу "
"производства.\n"
"============================================================================="
-"\n"
+"===========\n"
"\n"
"Вы можете настроить суб-продукты в спецификации материала.\n"
"\n"
@@ -18384,7 +18388,7 @@ msgid ""
msgstr ""
"\n"
"Этот модуль позволяет вам создавать новые модули без разработки.\n"
-"======================================================================\n"
+"================================================================\n"
"\n"
"Он записывает все операции над объектами в течении сессии записи и\n"
"производит .ZIP модуль. Итак вы можете создать свой собственный модуль прямо "
From e80f34e9cd571d36322ca9b815f0689cb7fbfe87 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 09:47:01 +0200
Subject: [PATCH 095/154] [IMP] config wizards at install, l10n_*
bzr revid: fp@tinyerp.com-20121024074701-nxwormzwyhduls21
---
addons/l10n_ar/l10n_ar_wizard.xml | 10 ++----
addons/l10n_at/l10n_chart_at_wizard.xml | 8 ++---
addons/l10n_ca/l10n_ca_wizard.xml | 10 ++----
addons/l10n_ch/wizard.xml | 10 ++----
addons/l10n_cl/l10n_cl_wizard.xml | 11 ++----
addons/l10n_cn/l10n_chart_cn_wizard.xml | 9 ++---
addons/l10n_cr/l10n_wizard.xml | 8 ++---
addons/l10n_de/l10n_de_wizard.xml | 9 ++---
addons/l10n_ec/l10n_chart_ec_wizard.xml | 11 ++----
addons/l10n_es/l10n_es_wizard.xml | 6 ++--
addons/l10n_fr/l10n_fr_wizard.xml | 9 ++---
addons/l10n_gr/l10n_gr_wizard.xml | 9 ++---
addons/l10n_gt/l10n_gt_base.xml | 10 ++----
addons/l10n_hn/l10n_hn_base.xml | 8 +----
addons/l10n_in/l10n_in_wizard.xml | 9 ++---
addons/l10n_it/l10n_chart_it_generic.xml | 9 ++---
addons/l10n_lu/l10n_lu_wizard.xml | 8 ++---
addons/l10n_ma/l10n_ma_wizard.xml | 8 ++---
addons/l10n_mx/l10n_chart_mx_wizard.xml | 9 ++---
addons/l10n_nl/l10n_nl_wizard.xml | 17 ++-------
addons/l10n_pe/l10n_pe_wizard.xml | 8 ++---
addons/l10n_pl/l10n_chart_pl_wizard.xml | 9 ++---
addons/l10n_ro/l10n_chart_ro_wizard.xml | 9 ++---
.../l10n_syscohada/l10n_syscohada_wizard.xml | 10 ++----
addons/l10n_th/account_data.xml | 11 ++----
addons/l10n_tr/l10n_tr_wizard.xml | 12 ++-----
addons/l10n_uk/l10n_uk_wizard.xml | 36 +------------------
addons/l10n_us/l10n_us_wizard.xml | 9 ++---
addons/l10n_uy/l10n_uy_wizard.xml | 5 ++-
addons/l10n_ve/l10n_chart_ve_wizard.xml | 12 ++-----
30 files changed, 70 insertions(+), 239 deletions(-)
diff --git a/addons/l10n_ar/l10n_ar_wizard.xml b/addons/l10n_ar/l10n_ar_wizard.xml
index 9a2fa377155..3c94d3db7a8 100644
--- a/addons/l10n_ar/l10n_ar_wizard.xml
+++ b/addons/l10n_ar/l10n_ar_wizard.xml
@@ -2,13 +2,9 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_at/l10n_chart_at_wizard.xml b/addons/l10n_at/l10n_chart_at_wizard.xml
index b23d9be6cb5..efc68ce13e9 100644
--- a/addons/l10n_at/l10n_chart_at_wizard.xml
+++ b/addons/l10n_at/l10n_chart_at_wizard.xml
@@ -1,12 +1,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_ca/l10n_ca_wizard.xml b/addons/l10n_ca/l10n_ca_wizard.xml
index 3bdc380325d..efc68ce13e9 100644
--- a/addons/l10n_ca/l10n_ca_wizard.xml
+++ b/addons/l10n_ca/l10n_ca_wizard.xml
@@ -1,13 +1,9 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ch/wizard.xml b/addons/l10n_ch/wizard.xml
index 084159aa36d..792bd21a2fc 100644
--- a/addons/l10n_ch/wizard.xml
+++ b/addons/l10n_ch/wizard.xml
@@ -1,13 +1,7 @@
-
- Generate Chart of Accounts for l10n_ch
- Generate Chart of Accounts from a Chart Template. Please let the nuber to 0 for Swiss charts.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial
- Accounts/Generate Chart of Accounts from a Chart Template.
-
- 4
- automatic
+
+ open
diff --git a/addons/l10n_cl/l10n_cl_wizard.xml b/addons/l10n_cl/l10n_cl_wizard.xml
index fd0d29f1edb..bcbd9a43f27 100644
--- a/addons/l10n_cl/l10n_cl_wizard.xml
+++ b/addons/l10n_cl/l10n_cl_wizard.xml
@@ -1,14 +1,9 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_cn/l10n_chart_cn_wizard.xml b/addons/l10n_cn/l10n_chart_cn_wizard.xml
index 0a098120682..6919eb199b6 100644
--- a/addons/l10n_cn/l10n_chart_cn_wizard.xml
+++ b/addons/l10n_cn/l10n_chart_cn_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_cr/l10n_wizard.xml b/addons/l10n_cr/l10n_wizard.xml
index ef37667b318..6919eb199b6 100644
--- a/addons/l10n_cr/l10n_wizard.xml
+++ b/addons/l10n_cr/l10n_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_de/l10n_de_wizard.xml b/addons/l10n_de/l10n_de_wizard.xml
index 3a0dcd34bd3..efc68ce13e9 100644
--- a/addons/l10n_de/l10n_de_wizard.xml
+++ b/addons/l10n_de/l10n_de_wizard.xml
@@ -1,12 +1,9 @@
-
- Generiert Kontenplan aus Vorlage
- Der Assistent generiert einen Kontenplan auf Basis eines Templates (Vorlage). Sie werden aufgefordert den Namen der Firma einzugeben, sowie die entsprechende Kontenvorlage zu wählen. Ausserdem können Sie für die Initialisierung der Journale die gewünschte Stellenanzahl der Konten, sowie die Hauptwährung Ihres Betriebes auswählen. Dieser Assistent ist identisch mit dem Open ERP Menü Finanzen/Konfiguration/Finanzkonten/Erzeuge Konten aus Vorlage.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ec/l10n_chart_ec_wizard.xml b/addons/l10n_ec/l10n_chart_ec_wizard.xml
index 9906cf9828c..6919eb199b6 100644
--- a/addons/l10n_ec/l10n_chart_ec_wizard.xml
+++ b/addons/l10n_ec/l10n_chart_ec_wizard.xml
@@ -1,13 +1,8 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_es/l10n_es_wizard.xml b/addons/l10n_es/l10n_es_wizard.xml
index ec30f9e9e25..52aaa88fdab 100644
--- a/addons/l10n_es/l10n_es_wizard.xml
+++ b/addons/l10n_es/l10n_es_wizard.xml
@@ -1,9 +1,7 @@
-
-
-
- automatic
+
+ open
diff --git a/addons/l10n_fr/l10n_fr_wizard.xml b/addons/l10n_fr/l10n_fr_wizard.xml
index 897da1d5414..bcbd9a43f27 100644
--- a/addons/l10n_fr/l10n_fr_wizard.xml
+++ b/addons/l10n_fr/l10n_fr_wizard.xml
@@ -1,12 +1,9 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_gr/l10n_gr_wizard.xml b/addons/l10n_gr/l10n_gr_wizard.xml
index 4fa564e2155..6919eb199b6 100644
--- a/addons/l10n_gr/l10n_gr_wizard.xml
+++ b/addons/l10n_gr/l10n_gr_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_gt/l10n_gt_base.xml b/addons/l10n_gt/l10n_gt_base.xml
index 4ba27d6a5c4..8caf6ebe48c 100644
--- a/addons/l10n_gt/l10n_gt_base.xml
+++ b/addons/l10n_gt/l10n_gt_base.xml
@@ -1,14 +1,8 @@
-
- Generar la nomenclatura contable a partir de un modelo
- Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.
-
-
- automatic
+
+ open
diff --git a/addons/l10n_hn/l10n_hn_base.xml b/addons/l10n_hn/l10n_hn_base.xml
index a12d93db034..b8b85c3f2a7 100644
--- a/addons/l10n_hn/l10n_hn_base.xml
+++ b/addons/l10n_hn/l10n_hn_base.xml
@@ -2,13 +2,7 @@
-
- Generar la nomenclatura contable a partir de un modelo
- Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.
-
-
+
open
diff --git a/addons/l10n_in/l10n_in_wizard.xml b/addons/l10n_in/l10n_in_wizard.xml
index 20d35aa09a2..bcbd9a43f27 100644
--- a/addons/l10n_in/l10n_in_wizard.xml
+++ b/addons/l10n_in/l10n_in_wizard.xml
@@ -1,13 +1,8 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_it/l10n_chart_it_generic.xml b/addons/l10n_it/l10n_chart_it_generic.xml
index 52269c71962..792bd21a2fc 100644
--- a/addons/l10n_it/l10n_chart_it_generic.xml
+++ b/addons/l10n_it/l10n_chart_it_generic.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_lu/l10n_lu_wizard.xml b/addons/l10n_lu/l10n_lu_wizard.xml
index 32351428bb6..6919eb199b6 100644
--- a/addons/l10n_lu/l10n_lu_wizard.xml
+++ b/addons/l10n_lu/l10n_lu_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_ma/l10n_ma_wizard.xml b/addons/l10n_ma/l10n_ma_wizard.xml
index 428a17e081a..6919eb199b6 100644
--- a/addons/l10n_ma/l10n_ma_wizard.xml
+++ b/addons/l10n_ma/l10n_ma_wizard.xml
@@ -1,10 +1,8 @@
-
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_mx/l10n_chart_mx_wizard.xml b/addons/l10n_mx/l10n_chart_mx_wizard.xml
index aeea1f3cd69..6919eb199b6 100644
--- a/addons/l10n_mx/l10n_chart_mx_wizard.xml
+++ b/addons/l10n_mx/l10n_chart_mx_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_nl/l10n_nl_wizard.xml b/addons/l10n_nl/l10n_nl_wizard.xml
index bcdd183b12c..6919eb199b6 100644
--- a/addons/l10n_nl/l10n_nl_wizard.xml
+++ b/addons/l10n_nl/l10n_nl_wizard.xml
@@ -1,19 +1,8 @@
-
-
- Genereer Grootboekrekingschema vanuit het Nederlandse Grootboek Template
- Na installatie van deze module word de configuratie wizard voor "Accounting" aangeroepen.
-* U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het Nederlandse grootboekschema bevind.
-* Als de configuratie wizard start, wordt u gevraagd om de naam van uw bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en de currency om Journalen te creeren.
-
-Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult met "nullen"
-
-* Dit is dezelfe configuratie wizard welke aangeroepen kan worden via Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_pe/l10n_pe_wizard.xml b/addons/l10n_pe/l10n_pe_wizard.xml
index e1189fbcc2d..3c94d3db7a8 100644
--- a/addons/l10n_pe/l10n_pe_wizard.xml
+++ b/addons/l10n_pe/l10n_pe_wizard.xml
@@ -2,12 +2,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_pl/l10n_chart_pl_wizard.xml b/addons/l10n_pl/l10n_chart_pl_wizard.xml
index aded9e3b2a3..6919eb199b6 100644
--- a/addons/l10n_pl/l10n_chart_pl_wizard.xml
+++ b/addons/l10n_pl/l10n_chart_pl_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_ro/l10n_chart_ro_wizard.xml b/addons/l10n_ro/l10n_chart_ro_wizard.xml
index bafb7b26f82..6919eb199b6 100644
--- a/addons/l10n_ro/l10n_chart_ro_wizard.xml
+++ b/addons/l10n_ro/l10n_chart_ro_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_syscohada/l10n_syscohada_wizard.xml b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
index 7174ef438b7..792bd21a2fc 100644
--- a/addons/l10n_syscohada/l10n_syscohada_wizard.xml
+++ b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
@@ -1,11 +1,7 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_th/account_data.xml b/addons/l10n_th/account_data.xml
index d5885d4b92b..d730caa8404 100644
--- a/addons/l10n_th/account_data.xml
+++ b/addons/l10n_th/account_data.xml
@@ -643,14 +643,9 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
-
+
+ open
+
diff --git a/addons/l10n_tr/l10n_tr_wizard.xml b/addons/l10n_tr/l10n_tr_wizard.xml
index e7ae8dc2d82..59668347bed 100644
--- a/addons/l10n_tr/l10n_tr_wizard.xml
+++ b/addons/l10n_tr/l10n_tr_wizard.xml
@@ -1,16 +1,8 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be
-asked to pass the name of the company, the chart template to follow, the no. of digits to generate
-the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of
-chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial
-Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_uk/l10n_uk_wizard.xml b/addons/l10n_uk/l10n_uk_wizard.xml
index cb947163ab3..1b8d528c0e8 100644
--- a/addons/l10n_uk/l10n_uk_wizard.xml
+++ b/addons/l10n_uk/l10n_uk_wizard.xml
@@ -1,41 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- wizard.multi.charts.accounts
-
-
-
-
-
-
-
-
-
- Generate UK Chart of Accounts from a Chart Template
- ir.actions.act_window
- wizard.multi.charts.accounts
-
- form
- form
- new
-
-
-
-
- 10
- once
+
open
diff --git a/addons/l10n_us/l10n_us_wizard.xml b/addons/l10n_us/l10n_us_wizard.xml
index 8c306f155fe..6919eb199b6 100644
--- a/addons/l10n_us/l10n_us_wizard.xml
+++ b/addons/l10n_us/l10n_us_wizard.xml
@@ -1,12 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ open
diff --git a/addons/l10n_uy/l10n_uy_wizard.xml b/addons/l10n_uy/l10n_uy_wizard.xml
index 6543664b2b6..49cbeca89f9 100644
--- a/addons/l10n_uy/l10n_uy_wizard.xml
+++ b/addons/l10n_uy/l10n_uy_wizard.xml
@@ -1,9 +1,8 @@
-
-
- automatic
+
+ open
diff --git a/addons/l10n_ve/l10n_chart_ve_wizard.xml b/addons/l10n_ve/l10n_chart_ve_wizard.xml
index 823fa833313..6919eb199b6 100644
--- a/addons/l10n_ve/l10n_chart_ve_wizard.xml
+++ b/addons/l10n_ve/l10n_chart_ve_wizard.xml
@@ -1,15 +1,7 @@
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el nombre de la compania, la plantilla de carta para seguir, el no. de digitos para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear Diarios. Asi, la copia pura de la carta la Plantilla es generada.
-Esto es el mismo wizard que corre de la Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
-
- automatic
+
+ open
From 2067192d37bf2c0aed78cc9576a2961e964b2139 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 10:44:09 +0200
Subject: [PATCH 096/154] [IMP] rename columns for importation
bzr revid: fp@tinyerp.com-20121024084409-ad4kuccw6bki3zdg
---
openerp/addons/base/module/module.py | 3 +--
openerp/addons/base/res/res_partner.py | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index 5fbb28d36db..3484b40cee9 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -418,13 +418,12 @@ class module(osv.osv):
_, pool = pooler.restart_pool(cr.dbname, update_module=True)
config = pool.get('res.config').next(cr, uid, [], context=context) or {}
- if config.get('type') not in ('ir.actions.reload', 'ir.actions.act_window_close'):
+ if config.get('type') not in ('ir.actions.act_window_close',):
return config
# reload the client; open the first available root menu
menu_obj = self.pool.get('ir.ui.menu')
menu_ids = menu_obj.search(cr, uid, [('parent_id', '=', False)], context=context)
-
return {
'type' : 'ir.actions.client',
'tag' : 'reload',
diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py
index 0c0e3398f88..9ed2333a23b 100644
--- a/openerp/addons/base/res/res_partner.py
+++ b/openerp/addons/base/res/res_partner.py
@@ -186,7 +186,7 @@ class res_partner(osv.osv, format_address):
'name': fields.char('Name', size=128, required=True, select=True),
'date': fields.date('Date', select=1),
'title': fields.many2one('res.partner.title', 'Title'),
- 'parent_id': fields.many2one('res.partner', 'Company'),
+ 'parent_id': fields.many2one('res.partner', 'Related Company'),
'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts'),
'ref': fields.char('Reference', size=64, select=1),
'lang': fields.selection(_lang_get, 'Language',
@@ -229,7 +229,7 @@ class res_partner(osv.osv, format_address):
'fax': fields.char('Fax', size=64),
'mobile': fields.char('Mobile', size=64),
'birthdate': fields.char('Birthdate', size=64),
- 'is_company': fields.boolean('Company', help="Check if the contact is a company, otherwise it is a person"),
+ 'is_company': fields.boolean('Is a Company', help="Check if the contact is a company, otherwise it is a person"),
'use_parent_address': fields.boolean('Use Company Address', help="Select this if you want to set company's address information for this contact"),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
From 0445d740a7495afc594cf952822a88df06db84a8 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 12:29:15 +0200
Subject: [PATCH 097/154] [IMP] CSS import wizard
bzr revid: fp@tinyerp.com-20121024102915-dtfy3dc4ll0ewf90
---
addons/base_import/static/src/css/import.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/addons/base_import/static/src/css/import.css b/addons/base_import/static/src/css/import.css
index 07b193c3dc4..47b5506a10f 100644
--- a/addons/base_import/static/src/css/import.css
+++ b/addons/base_import/static/src/css/import.css
@@ -156,5 +156,11 @@
border-right: 1px solid #D0D0D0;
}
+.oe_import .oe_import_error_report > p {
+ background: #efc9cb;
+}
+.oe_import .select2-results {
+ font-size: 12px;
+}
From aebe743964575c9d9a90b8e6dbcd2d7efd4b4db8 Mon Sep 17 00:00:00 2001
From: Antony Lesuisse
Date: Wed, 24 Oct 2012 13:17:46 +0200
Subject: [PATCH 098/154] [FIX] revert remove password fp merge Overriding the
reset password meachnism should be done in auth signup/reset password addons.
bzr revid: al@openerp.com-20121024111746-r94n1uqyb01a4x0m
---
openerp/addons/base/res/res_users.py | 7 +++++++
openerp/addons/base/res/res_users_view.xml | 3 ++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py
index 6b93a6e1e42..27fb7603c7e 100644
--- a/openerp/addons/base/res/res_users.py
+++ b/openerp/addons/base/res/res_users.py
@@ -486,6 +486,13 @@ class res_users(osv.osv):
'tag': 'reload',
}
+ def preference_change_password(self, cr, uid, ids, context=None):
+ return {
+ 'type': 'ir.actions.client',
+ 'tag': 'change_password',
+ 'target': 'new',
+ }
+
def has_group(self, cr, uid, group_ext_id):
"""Checks whether user belongs to given group.
diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml
index 7c4988bd1f0..78579fc66df 100644
--- a/openerp/addons/base/res/res_users_view.xml
+++ b/openerp/addons/base/res/res_users_view.xml
@@ -213,7 +213,8 @@
From 11c0784d710502447fd86c9aed227c93402d2196 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 13:37:28 +0200
Subject: [PATCH 099/154] [IMP] hr_timesheet_sheet form view
bzr revid: fp@tinyerp.com-20121024113728-r3nx6p8c8q0mh64q
---
.../hr_timesheet_sheet_view.xml | 34 +++++++++----------
.../static/src/xml/timesheet.xml | 8 ++---
2 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index fc35a17377f..f5438432927 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -54,18 +54,18 @@
-
+
- to
+ to
-
+
-
+
@@ -76,8 +76,8 @@
-
-
+
+
@@ -85,21 +85,19 @@
-
-
-
+
+
+
+
-
-
-
-
+
-
+
@@ -123,13 +121,13 @@
-
-
+
+
-
+
-
+
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 0c4ad857d3b..a5b2f779bd0 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -12,7 +12,7 @@
- TOTAL
+ Total
@@ -36,8 +36,8 @@
-
Add Row
-
TOTAL
+
Add a Project
+
Total
@@ -53,4 +53,4 @@
-
\ No newline at end of file
+
From 4c591fa6062cf28d9593e009d5a9ff0c53ab3411 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 24 Oct 2012 14:47:09 +0200
Subject: [PATCH 100/154] [FIX] ir_attachment: fix regression when counting
attachments (OPW 576295)
Cherry-pick forward-port of rev-id odo@openerp.com-20120816154020-5s6wbwfb5l2xsnyv
from 6.1. Fixes regression introduced by r.4069.
bzr revid: odo@openerp.com-20121024124709-28w8rh8xnelvuhwg
---
openerp/addons/base/ir/ir_attachment.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py
index 4978378f22a..730df212b4c 100644
--- a/openerp/addons/base/ir/ir_attachment.py
+++ b/openerp/addons/base/ir/ir_attachment.py
@@ -57,7 +57,7 @@ class ir_attachment(osv.osv):
def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None):
ids = super(ir_attachment, self)._search(cr, uid, args, offset=offset,
limit=limit, order=order,
- context=context, count=count,
+ context=context, count=False,
access_rights_uid=access_rights_uid)
if not ids:
if count:
From 93056efe991e4113c6094bba0a381547ed700524 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 24 Oct 2012 15:15:18 +0200
Subject: [PATCH 101/154] [FIX] misc useability fixes
bzr revid: fp@tinyerp.com-20121024131518-jdyd4stnwozzkr8f
---
addons/base_calendar/crm_meeting_view.xml | 7 +------
addons/crm/crm_phonecall_view.xml | 2 +-
addons/mrp/mrp_view.xml | 6 +++---
addons/purchase/purchase.py | 9 +++++----
addons/purchase/purchase_view.xml | 4 ++--
5 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml
index 9dd37afa3d6..e468460e8e3 100644
--- a/addons/base_calendar/crm_meeting_view.xml
+++ b/addons/base_calendar/crm_meeting_view.xml
@@ -170,12 +170,7 @@
-
-
+
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index b6e2f09de68..21b0d295476 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -125,7 +125,7 @@
-
+
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 9e35377986a..1e8cf56b96c 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -620,10 +620,10 @@
-
-
-
+
+
+
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index db6ed8b80be..c0e6458377a 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -152,9 +152,10 @@ class purchase_order(osv.osv):
_columns = {
'name': fields.char('Order Reference', size=64, required=True, select=True, help="Unique number of the purchase order, computed automatically when the purchase order is created."),
'origin': fields.char('Source Document', size=64,
- help="Reference of the document that generated this purchase order request."
+ help="Reference of the document that generated this purchase order request; a sale order or an internal procurement request."
),
- 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64),
+ 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64,
+ help="Reference of the sale order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."),
'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."),
'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"),
'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True),
@@ -889,10 +890,10 @@ class purchase_order_line(osv.osv):
account_tax = self.pool.get('account.tax')
# - check for the presence of partner_id and pricelist_id
- if not pricelist_id:
- raise osv.except_osv(_('No Pricelist !'), _('Select a price list for a supplier in the purchase form to choose a product.'))
if not partner_id:
raise osv.except_osv(_('No Partner!'), _('Select a partner in purchase order to choose a product.'))
+ if not pricelist_id:
+ raise osv.except_osv(_('No Pricelist !'), _('Select a price list in the purchase order form before choosing a product.'))
# - determine name and notes based on product in partner lang.
lang = res_partner.browse(cr, uid, partner_id).lang
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 1ec1cd452c9..a1341f66c50 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -198,7 +198,7 @@
-
+
@@ -262,7 +262,7 @@
-
+
From 9582a8bc825891ff65eb387aa96a2b61201c69ab Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 24 Oct 2012 18:15:27 +0200
Subject: [PATCH 102/154] [FIX] res.lang: ar_AR does not exist (Arabic in
Argentina?!) -> replaced with ar_SY
ar_SY is the default locale alias for the `ar`
code in babel, so we can use that until a
translation team asks for a regional
variation of Arabic.
This should also fix an issue in the web
client, where ar_AR was not working, because
silently replaced with ar_SY.
This will only work for new databases,
old ones should be manually fixed.
bzr revid: odo@openerp.com-20121024161527-vec2r46a4o5lk47x
---
openerp/tools/misc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index ba6ea1137d1..caf28e54481 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -597,7 +597,7 @@ def get_iso_codes(lang):
ALL_LANGUAGES = {
'ab_RU': u'Abkhazian / аҧсуа',
- 'ar_AR': u'Arabic / الْعَرَبيّة',
+ 'ar_SY': u'Arabic / الْعَرَبيّة',
'bg_BG': u'Bulgarian / български език',
'bs_BS': u'Bosnian / bosanski jezik',
'ca_ES': u'Catalan / Català',
From 013f14931bdc13c63fa6e169cf7fff364d5dda5a Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Thu, 25 Oct 2012 05:35:47 +0000
Subject: [PATCH 103/154] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121025053547-u65gilonqbpjbgzy
---
addons/crm_claim/i18n/ru.po | 26 +++++++++---------
addons/crm_helpdesk/i18n/ru.po | 46 ++++++++++++++++----------------
addons/document_page/i18n/ru.po | 14 +++++-----
addons/procurement/i18n/ru.po | 11 ++++----
addons/product_expiry/i18n/ru.po | 8 +++---
5 files changed, 52 insertions(+), 53 deletions(-)
diff --git a/addons/crm_claim/i18n/ru.po b/addons/crm_claim/i18n/ru.po
index cea6d33e47d..d92bca12fa9 100644
--- a/addons/crm_claim/i18n/ru.po
+++ b/addons/crm_claim/i18n/ru.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-10-24 04:51+0000\n"
+"PO-Revision-Date: 2012-10-24 05:01+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
"X-Generator: Launchpad (build 16179)\n"
#. module: crm_claim
@@ -474,7 +474,7 @@ msgstr "Июнь"
#. module: crm_claim
#: view:res.partner:0
msgid "Partners Claim"
-msgstr ""
+msgstr "Претензии партнера"
#. module: crm_claim
#: field:crm.claim,partner_phone:0
@@ -489,7 +489,7 @@ msgstr "Пользователь"
#. module: crm_claim
#: field:crm.claim,active:0
msgid "Active"
-msgstr ""
+msgstr "Активен"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -621,13 +621,13 @@ msgstr "Открыть"
#. module: crm_claim
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Новые претензии"
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
msgid "In Progress"
-msgstr "Выполняется"
+msgstr "В работе"
#. module: crm_claim
#: view:crm.claim:0
@@ -638,17 +638,17 @@ msgstr "Ответственный"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current year"
-msgstr ""
+msgstr "Претензии созданные в текущем году"
#. module: crm_claim
#: view:crm.claim:0
msgid "Unassigned Claims"
-msgstr ""
+msgstr "Не назначенные претензии"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current month"
-msgstr ""
+msgstr "Претензии созданные в текущем месяце"
#. module: crm_claim
#: field:crm.claim.report,delay_expected:0
@@ -718,7 +718,7 @@ msgstr "Выполненные действия"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in last month"
-msgstr ""
+msgstr "Претензии созданные в прошлом месяце"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim5
@@ -760,7 +760,7 @@ msgstr "Год"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -780,7 +780,7 @@ msgstr "Идентификатор"
#. module: crm_claim
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
-msgstr ""
+msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: crm_claim
#: view:crm.claim:0
@@ -810,7 +810,7 @@ msgstr "Дата создания"
#. module: crm_claim
#: view:crm.claim:0
msgid "In Progress Claims"
-msgstr ""
+msgstr "Претензии \"В работе\""
#~ msgid "Probability"
#~ msgstr "Вероятность"
diff --git a/addons/crm_helpdesk/i18n/ru.po b/addons/crm_helpdesk/i18n/ru.po
index c0338447d34..452bdda501b 100644
--- a/addons/crm_helpdesk/i18n/ru.po
+++ b/addons/crm_helpdesk/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2010-12-20 08:54+0000\n"
+"PO-Revision-Date: 2012-10-24 05:08+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:34+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_helpdesk
#: field:crm.helpdesk.report,delay_close:0
@@ -46,7 +46,7 @@ msgstr "Март"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current year"
-msgstr ""
+msgstr "Запросы на техподдержку в текущем году"
#. module: crm_helpdesk
#: field:crm.helpdesk,company_id:0
@@ -80,7 +80,7 @@ msgstr "Добавить внутреннею заметку"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Date of helpdesk requests"
-msgstr ""
+msgstr "Дата запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -95,7 +95,7 @@ msgstr "Сообщения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
@@ -156,7 +156,7 @@ msgstr "Раздел"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in last month"
-msgstr ""
+msgstr "последний месяц"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -166,14 +166,14 @@ msgstr "Отправить новое эл. письмо"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk requests during last 7 days"
-msgstr ""
+msgstr "Запросы на техподдержку за последние 7 дней"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: selection:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_helpdesk
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
@@ -207,7 +207,7 @@ msgstr "# Писем"
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_helpdesk
#: field:crm.helpdesk,create_date:0
@@ -252,7 +252,7 @@ msgstr "Категории"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "New Helpdesk Request"
-msgstr ""
+msgstr "Новый запрос техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -267,13 +267,13 @@ msgstr "Даты"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month of helpdesk requests"
-msgstr ""
+msgstr "Месяц запросов техподдержки"
#. module: crm_helpdesk
#: code:addons/crm_helpdesk/crm_helpdesk.py:101
#, python-format
msgid "No Subject"
-msgstr ""
+msgstr "Без темы"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -283,12 +283,12 @@ msgstr "№ техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "All pending Helpdesk Request"
-msgstr ""
+msgstr "Все ожидающие запросы техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Year of helpdesk requests"
-msgstr ""
+msgstr "Год запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -324,7 +324,7 @@ msgstr "Дата изменения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current month"
-msgstr ""
+msgstr "Запросы техподдержки в текущем месяце"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -345,7 +345,7 @@ msgstr "Категория"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -361,7 +361,7 @@ msgstr "Планируемые затраты"
#. module: crm_helpdesk
#: help:crm.helpdesk,channel_id:0
msgid "Communication channel."
-msgstr ""
+msgstr "Канал общения"
#. module: crm_helpdesk
#: help:crm.helpdesk,email_cc:0
@@ -575,7 +575,7 @@ msgstr "Дерево поддержи"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
msgid "In Progress"
-msgstr ""
+msgstr "В работе"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -660,7 +660,7 @@ msgstr "Название"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
@@ -699,17 +699,17 @@ msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Todays's Helpdesk Requests"
-msgstr ""
+msgstr "Запросы техподдержки за сегодня"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Request Date"
-msgstr ""
+msgstr "Дата запроса"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Open Helpdesk Request"
-msgstr ""
+msgstr "Открыть запрос техподдержки"
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
diff --git a/addons/document_page/i18n/ru.po b/addons/document_page/i18n/ru.po
index 52b81a58fc2..6b0f0f158fb 100644
--- a/addons/document_page/i18n/ru.po
+++ b/addons/document_page/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-08-13 12:11+0000\n"
+"PO-Revision-Date: 2012-10-24 05:09+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:39+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: document_page
#: field:document.page.type,template:0
@@ -270,7 +270,7 @@ msgstr "История всех страниц"
#. module: document_page
#: model:ir.model,name:document_page.model_wiki_wiki
msgid "document.page"
-msgstr ""
+msgstr "document.page"
#. module: document_page
#: help:document.page.type,method:0
@@ -285,7 +285,7 @@ msgstr "Закрыть"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_wiki_history_show_diff
msgid "wizard.document.page.history.show_diff"
-msgstr ""
+msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,wiki_id:0
@@ -357,7 +357,7 @@ msgstr "Это существенные изменения ?"
#: model:ir.model,name:document_page.model_wiki_groups
#: model:ir.ui.menu,name:document_page.menu_action_wiki_groups view:document.page.type:0
msgid "Document Types"
-msgstr ""
+msgstr "Типы документов"
#. module: document_page
#: view:document.page:0
@@ -374,7 +374,7 @@ msgstr "Изменено"
#: field:document.page,type:0
#, python-format
msgid "Type"
-msgstr ""
+msgstr "Тип"
#. module: document_page
#: view:document.page.type:0 view:document.page.page.open:0
diff --git a/addons/procurement/i18n/ru.po b/addons/procurement/i18n/ru.po
index b4541872669..be374ec29cd 100644
--- a/addons/procurement/i18n/ru.po
+++ b/addons/procurement/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-08-30 18:15+0000\n"
+"PO-Revision-Date: 2012-10-24 16:47+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:32+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: procurement
#: view:make.procurement:0
@@ -51,7 +51,7 @@ msgstr "Группировать по ..."
#. module: procurement
#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
msgid "Draft procurement of the product and location of that orderpoint"
-msgstr "Черновик закупки ТМЦ и положение точки заказа"
+msgstr "Черновик снабжения ТМЦ и положение точки заказа"
#. module: procurement
#: code:addons/procurement/procurement.py:291
@@ -380,8 +380,7 @@ msgstr "Количество"
#: code:addons/procurement/procurement.py:379
#, python-format
msgid "Not enough stock and no minimum orderpoint rule defined."
-msgstr ""
-"Не достаточный запас и не определено правило минимальной точки заказа."
+msgstr "Не достаточен запас и нет правила минимума точки заказа."
#. module: procurement
#: code:addons/procurement/procurement.py:137
diff --git a/addons/product_expiry/i18n/ru.po b/addons/product_expiry/i18n/ru.po
index 86ccf672713..186124080e5 100644
--- a/addons/product_expiry/i18n/ru.po
+++ b/addons/product_expiry/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2010-11-22 07:21+0000\n"
+"PO-Revision-Date: 2012-10-24 05:12+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:28+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: product_expiry
#: model:ir.model,name:product_expiry.model_stock_production_lot
@@ -162,7 +162,7 @@ msgstr ""
#. module: product_expiry
#: field:product.product,alert_time:0
msgid "Product Alert Time"
-msgstr ""
+msgstr "Время оповещения товара"
#~ msgid ""
#~ "Error: The default UOM and the purchase UOM must be in the same category."
From 3fb6204e5f0799159d793e86636adec1b1ce4a90 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 09:49:35 +0200
Subject: [PATCH 104/154] [IMP] remove unused code in form view
bzr revid: nicolas.vanhoren@openerp.com-20121025074935-6expqc0stsvbo1ft
---
addons/web/static/src/js/view_form.js | 31 ---------------------------
1 file changed, 31 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 72d9725e105..37814b10842 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1590,37 +1590,6 @@ instance.web.form.DefaultFieldManager = instance.web.Widget.extend({
},
});
-instance.web.form.FormDialog = instance.web.Dialog.extend({
- init: function(parent, options, view_id, dataset) {
- this._super(parent, options);
- this.dataset = dataset;
- this.view_id = view_id;
- return this;
- },
- start: function() {
- var self = this;
- this._super();
- this.form = new instance.web.FormView(this, this.dataset, this.view_id, {
- pager: false
- });
- this.form.appendTo(this.$el);
- this.form.on('record_created', self, this.on_form_dialog_saved);
- this.form.on('record_saved', this, this.on_form_dialog_saved);
- return this;
- },
- select_id: function(id) {
- if (this.form.dataset.select_id(id)) {
- return this.form.do_show();
- } else {
- this.do_warn("Could not find id in dataset");
- return $.Deferred().reject();
- }
- },
- on_form_dialog_saved: function(r) {
- this.close();
- }
-});
-
instance.web.form.compute_domain = function(expr, fields) {
if (! (expr instanceof Array))
return !! expr;
From 1daf7706046b1cdabc688a5b46b9f64bda691ddd Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 10:35:09 +0200
Subject: [PATCH 105/154] [IMP] Added a way to create something in a m2m
bzr revid: nicolas.vanhoren@openerp.com-20121025083509-7b0vybaa4qgyg0g2
---
addons/web/static/src/js/view_form.js | 4 ++++
addons/web/static/src/xml/base.xml | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 37814b10842..67c5fa0292e 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -4536,6 +4536,10 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
self.select_elements(self.selected_ids);
self.destroy();
});
+ var $cbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-create");
+ $cbutton.click(function() {
+ self.new_object();
+ });
});
});
this.searchview.appendTo($(".oe_popup_search", self.$el));
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 899bd614f76..9880abd20f7 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -1236,9 +1236,9 @@
- or
-
+
+ or
From d41219749a2147d2a7007dd75a47b3a6b4d6d1a6 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 11:11:32 +0200
Subject: [PATCH 106/154] [FIX] pager in m2m does not behave correctly
bzr revid: nicolas.vanhoren@openerp.com-20121025091132-zbja03rszs6jiavg
---
addons/web/static/src/js/view_list.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 75bf6c2f586..5546105e901 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -374,7 +374,10 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
var total = dataset.size();
var limit = this.limit() || total;
- this.$pager.toggle(total !== 0);
+ if (total == 0)
+ this.$pager.hide();
+ else
+ this.$pager.css("display", "");
this.$pager.toggleClass('oe_list_pager_single_page', (total <= limit));
var spager = '-';
if (total) {
From 098b23d76b06672a988abbdf10ef6f81951a6fd8 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 11:28:14 +0200
Subject: [PATCH 107/154] [FIX] wrong refactoring about do_switch_view
bzr revid: nicolas.vanhoren@openerp.com-20121025092814-d3tpt9lfkn6b9w80
---
addons/web/static/src/js/views.js | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index c6b150a4d77..ebc7c326724 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -1281,11 +1281,9 @@ instance.web.View = instance.web.Widget.extend({
},
/**
* Switches to a specific view type
- *
- * @param {String} view view type to switch to
*/
- do_switch_view: function(view) {
- this.trigger('switch_mode',view);
+ do_switch_view: function() {
+ this.trigger.apply(this, ['switch_mode'].concat(_.toArray(arguments)));
},
/**
* Cancels the switch to the current view, switches to the previous one
From d6fc9033e2c47a2e969148ef14bf0a1d81020db5 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 11:28:33 +0200
Subject: [PATCH 108/154] [FIX] edit button in kanban view does not open the
record in edit mode
bzr revid: nicolas.vanhoren@openerp.com-20121025092833-4pvl2v0u8kmqapyy
---
addons/web_kanban/static/src/js/kanban.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js
index 7a179990f6a..39df8123aed 100644
--- a/addons/web_kanban/static/src/js/kanban.js
+++ b/addons/web_kanban/static/src/js/kanban.js
@@ -826,7 +826,7 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({
type = $action.data('type') || 'button',
method = 'do_action_' + (type === 'action' ? 'object' : type);
if ((type === 'edit' || type === 'delete') && ! self.view.is_action_enabled(type)) {
- self.view.open_record(self.id);
+ self.view.open_record(self.id, true);
} else if (_.str.startsWith(type, 'switch_')) {
self.view.do_switch_view(type.substr(7));
} else if (typeof self[method] === 'function') {
From 3749817975e99ae47db11a55eb3ef1fd6ff870e3 Mon Sep 17 00:00:00 2001
From: "Bhumi Thakkar (Open ERP)"
Date: Thu, 25 Oct 2012 15:56:58 +0530
Subject: [PATCH 109/154] [IMP] remove shadow from kanban title.
bzr revid: bth@tinyerp.com-20121025102658-w2ikl6aqtgfllsdr
---
addons/web_kanban/static/src/css/kanban.css | 4 ++++
addons/web_kanban/static/src/css/kanban.sass | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index fbd55dcb0da..3a79c613a92 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -617,4 +617,8 @@
.oe_kanban_groups a[data-type=object], .oe_kanban_groups a[data-type=delete] {
visibility: hidden;
}
+
+ .openerp .oe_kanban_view .oe_kanban_group_title {
+ text-shadow: none !important;
+ }
}
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index 1b749731111..eee4989f46a 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -509,6 +509,7 @@
a
&[data-type=object], &[data-type=delete]
visibility: hidden
-
+ .openerp .oe_kanban_view .oe_kanban_group_title
+ text-shadow: none !important
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:
From 9de8965ebb7a61f6f9b2c90486a7c83ef9025054 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Thu, 25 Oct 2012 14:25:06 +0200
Subject: [PATCH 110/154] [FIX] make the graph tolerant about formatting in
group bys
bzr revid: nicolas.vanhoren@openerp.com-20121025122506-2a0xo9nfeeg6dlw4
---
addons/web_graph/static/src/js/graph.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js
index df26e6fc123..b0106bc8f01 100644
--- a/addons/web_graph/static/src/js/graph.js
+++ b/addons/web_graph/static/src/js/graph.js
@@ -287,7 +287,11 @@ instance.web_graph.GraphView = instance.web.View.extend({
function _convert(field, data, tick) {
tick = tick === undefined ? true : false;
- data = instance.web.format_value(data, fields[field]);
+ try {
+ data = instance.web.format_value(data, fields[field]);
+ } catch(e) {
+ data = "" + data;
+ }
if (tick) {
if (ticks[data] === undefined)
ticks[data] = _.size(ticks);
From 9a016b46447029dc103a12c3b5755fb729206d41 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Thu, 25 Oct 2012 17:10:13 +0200
Subject: [PATCH 111/154] [FIX] useability
bzr revid: fp@tinyerp.com-20121025151013-cd0gvro61h8224tv
---
addons/account_voucher/voucher_sales_purchase_view.xml | 4 ++--
addons/hr/hr.py | 2 +-
addons/hr/hr_view.xml | 4 ++--
addons/hr_expense/hr_expense.py | 10 +++++-----
addons/hr_expense/hr_expense_view.xml | 6 +++---
addons/hr_recruitment/hr_recruitment_view.xml | 2 +-
6 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index a362c553ccd..0441424cc33 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -64,7 +64,7 @@
-
+
@@ -209,7 +209,7 @@
-
+
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index d2214f5e14f..fdf1e1419ed 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -112,7 +112,7 @@ class hr_job(osv.osv):
'requirements': fields.text('Requirements'),
'department_id': fields.many2one('hr.department', 'Department'),
'company_id': fields.many2one('res.company', 'Company'),
- 'state': fields.selection([('open', 'In Position'), ('recruit', 'In Recruitement')], 'Status', readonly=True, required=True,
+ 'state': fields.selection([('open', 'No Recruitment'), ('recruit', 'Recruitement in Progress')], 'Status', readonly=True, required=True,
help="By default 'In position', set it to 'In Recruitment' if recruitment process is going on for this job position."),
}
_defaults = {
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index cab93c6c14a..b4e2df3965e 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -330,8 +330,8 @@
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index ca2c689c512..439cf683d1b 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -64,15 +64,15 @@ class hr_expense_expense(osv.osv):
_description = "Expense"
_order = "id desc"
_columns = {
- 'name': fields.char('Description', size=128, required=True),
+ 'name': fields.char('Description', size=128),
'id': fields.integer('Sheet ID', readonly=True),
'date': fields.date('Date', select=True),
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."),
'employee_id': fields.many2one('hr.employee', "Employee", required=True),
'user_id': fields.many2one('res.users', 'User', required=True),
- 'date_confirm': fields.date('Confirmation Date', select=True, help = "Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
- 'date_valid': fields.date('Validation Date', select=True, help = "Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
- 'user_valid': fields.many2one('res.users', 'Validation User'),
+ 'date_confirm': fields.date('Confirmation Date', select=True, help="Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
+ 'date_valid': fields.date('Validation Date', select=True, help="Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
+ 'user_valid': fields.many2one('res.users', 'Validation By'),
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
'note': fields.text('Note'),
@@ -189,7 +189,7 @@ class hr_expense_expense(osv.osv):
raise osv.except_osv(_('Error!'), _('The employee must have a home address.'))
acc = exp.employee_id.address_home_id.property_account_payable.id
voucher = {
- 'name': exp.name,
+ 'name': exp.name or '/',
'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'),
'account_id': acc,
'type': 'purchase',
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 76393d9e030..1b8fd17dece 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -79,7 +79,7 @@
-
+
@@ -128,9 +128,9 @@
-
+
-
+
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 12c552e7a6d..08484889cf1 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -107,7 +107,7 @@
+ states="draft,open,pending,done" class="oe_highlight"/>
From 93be12ab1e1bd607b3a4f04f69a310622a4205ed Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Fri, 26 Oct 2012 05:19:21 +0000
Subject: [PATCH 112/154] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121026045553-t4k1bgsmirz090jr
bzr revid: launchpad_translations_on_behalf_of_openerp-20121026045641-3opz9ueu2crfb479
bzr revid: launchpad_translations_on_behalf_of_openerp-20121026051921-6vyyfhq3fpp22atu
---
addons/account/i18n/zh_CN.po | 468 ++++++++++--------
addons/account_analytic_plans/i18n/ru.po | 19 +-
addons/account_check_writing/i18n/pl.po | 199 ++++++++
addons/auth_openid/i18n/pl.po | 112 +++++
addons/base_action_rule/i18n/zh_CN.po | 10 +-
addons/crm/i18n/zh_CN.po | 22 +-
addons/decimal_precision/i18n/pl.po | 49 ++
addons/hr/i18n/zh_CN.po | 12 +-
addons/hr_evaluation/i18n/zh_CN.po | 10 +-
addons/hr_timesheet/i18n/zh_CN.po | 10 +-
addons/mrp/i18n/zh_CN.po | 16 +-
addons/mrp_repair/i18n/zh_CN.po | 10 +-
addons/purchase/i18n/zh_CN.po | 10 +-
.../purchase_double_validation/i18n/zh_CN.po | 14 +-
addons/purchase_requisition/i18n/zh_CN.po | 18 +-
addons/sale/i18n/zh_CN.po | 16 +-
addons/sale_stock/i18n/zh_CN.po | 44 +-
addons/web_diagram/i18n/ru.po | 17 +-
openerp/addons/base/i18n/ru.po | 8 +-
19 files changed, 755 insertions(+), 309 deletions(-)
create mode 100644 addons/account_check_writing/i18n/pl.po
create mode 100644 addons/auth_openid/i18n/pl.po
create mode 100644 addons/decimal_precision/i18n/pl.po
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index a51b7c7930a..49c2d2b8c1e 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-07-11 03:05+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2012-10-25 16:26+0000\n"
+"Last-Translator: AllanWong <18895563@qq.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: account
#: view:account.invoice.report:0
@@ -37,7 +37,7 @@ msgstr "其它设置"
msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
-msgstr "确定以下报表的显示顺序:”会计-报表-通用报表-税-税报表“"
+msgstr "确定以下报表的显示顺序:”会计-报表-通用报表-税务-税务报表“"
#. module: account
#: view:account.move.reconcile:0
@@ -91,7 +91,7 @@ msgstr "应收账款账龄"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
msgid "Import from invoice or payment"
-msgstr "从发票或支付款导入"
+msgstr "从发票或付款单导入"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@@ -139,6 +139,7 @@ msgstr "核销"
#: field:account.move,ref:0
#: field:account.move.line,ref:0
#: field:account.subscription,ref:0
+#: xsl:account.transfer:0
msgid "Reference"
msgstr "关联"
@@ -155,13 +156,13 @@ msgid ""
msgstr "如果设置为false,该付款条款将会被隐藏。"
#. module: account
-#: code:addons/account/account_invoice.py:1428
+#: code:addons/account/account_invoice.py:1430
#, python-format
msgid "Warning!"
msgstr "警告!"
#. module: account
-#: code:addons/account/account.py:3112
+#: code:addons/account/account.py:3129
#, python-format
msgid "Miscellaneous Journal"
msgstr "其它凭证簿"
@@ -218,10 +219,10 @@ msgstr "选择凭证行核销"
msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
-msgstr "勾选此项使发票上不显示增值税"
+msgstr "勾选此项隐藏发票上与此税号相关的增值税信息"
#. module: account
-#: code:addons/account/account_invoice.py:1241
+#: code:addons/account/account_invoice.py:1254
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr "发票'%s'已部分支付了%s%s ,总金额为:%s%s, 尚余%s%s未付"
@@ -237,7 +238,7 @@ msgid "Belgian Reports"
msgstr "比利时报表"
#. module: account
-#: code:addons/account/account_move_line.py:1200
+#: code:addons/account/account_move_line.py:1215
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "不能在已关闭的账簿添加或修改分录"
@@ -283,7 +284,7 @@ msgid "St."
msgstr "St."
#. module: account
-#: code:addons/account/account_invoice.py:551
+#: code:addons/account/account_invoice.py:560
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr "发票明细的科目公司与发票头的公司不匹配。"
@@ -560,8 +561,10 @@ msgid "The accountant confirms the statement."
msgstr "财务人员确认的报表"
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
@@ -617,7 +620,7 @@ msgid "Main Sequence must be different from current !"
msgstr "序列号必须唯一"
#. module: account
-#: code:addons/account/account_move_line.py:1251
+#: code:addons/account/account_move_line.py:1266
#, python-format
msgid "No period found or more than one period found for the given date."
msgstr "根据输入的凭证日期没有找到期间或找到了多个期间"
@@ -628,7 +631,7 @@ msgid "Tax Code Amount"
msgstr "税金额"
#. module: account
-#: code:addons/account/account.py:3116
+#: code:addons/account/account.py:3133
#, python-format
msgid "SAJ"
msgstr "SAJ"
@@ -655,8 +658,8 @@ msgid "Journal Period"
msgstr "账簿的会计期间"
#. module: account
-#: code:addons/account/account_move_line.py:750
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:766
+#: code:addons/account/account_move_line.py:819
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr "要核销这些凭证,这些凭证所属公司必须一致"
@@ -733,6 +736,7 @@ msgid "You can only change currency for Draft Invoice !"
msgstr "你只能对发票草稿修改币种"
#. module: account
+#: model:ir.actions.report.xml,name:account.account_financial_report
#: model:ir.ui.menu,name:account.menu_account_report
msgid "Financial Report"
msgstr "财务报表"
@@ -748,12 +752,13 @@ msgstr "财务报表"
#: view:account.journal:0
#: field:account.journal,type:0
#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
#: field:report.invoice.created,type:0
msgid "Type"
msgstr "类型"
#. module: account
-#: code:addons/account/account_invoice.py:738
+#: code:addons/account/account_invoice.py:747
#, python-format
msgid ""
"Taxes are missing!\n"
@@ -880,12 +885,13 @@ msgid "Create 3 Months Periods"
msgstr "创建季度"
#. module: account
+#: report:account.aged_trial_balance:0
#: report:account.overdue:0
msgid "Due"
msgstr "到期"
#. module: account
-#: code:addons/account/account.py:1345
+#: code:addons/account/account.py:1353
#, python-format
msgid ""
"You cannot validate this journal entry because account \"%s\" does not "
@@ -963,7 +969,7 @@ msgid ""
msgstr "如果这税科目是一个税编码科目,这字段金额要征税。如果这税科目是一个税基编码,这字段的金额不用征税。"
#. module: account
-#: code:addons/account/account.py:2596
+#: code:addons/account/account.py:2613
#, python-format
msgid "I can not locate a parent code for the template account!"
msgstr "无法为该科目模板定位其父科目"
@@ -996,10 +1002,10 @@ msgid "Code"
msgstr "编码"
#. module: account
-#: code:addons/account/account.py:2268
+#: code:addons/account/account.py:2285
#: code:addons/account/account_bank_statement.py:357
#: code:addons/account/account_invoice.py:73
-#: code:addons/account/account_invoice.py:688
+#: code:addons/account/account_invoice.py:697
#: code:addons/account/account_move_line.py:173
#, python-format
msgid "No Analytic Journal !"
@@ -1061,7 +1067,7 @@ msgid ""
msgstr "根据您国家定义这些类型,该类型包含有关科目及其具体的信息。"
#. module: account
-#: code:addons/account/account_move_line.py:842
+#: code:addons/account/account_move_line.py:856
#, python-format
msgid ""
"You have to provide an account for the write off/exchange difference entry !"
@@ -1109,7 +1115,7 @@ msgstr "未平财务凭证"
#. module: account
#: model:account.account.type,name:account.data_account_type_bank
#: selection:account.bank.accounts.wizard,account_type:0
-#: code:addons/account/account.py:3003
+#: code:addons/account/account.py:3020
#, python-format
msgid "Bank"
msgstr "银行"
@@ -1201,7 +1207,7 @@ msgid "The move of this entry line."
msgstr "分录明细的变动"
#. module: account
-#: code:addons/account/account_move_line.py:1302
+#: code:addons/account/account_move_line.py:1317
#, python-format
msgid ""
"You can not use this general account in this journal, check the tab 'Entry "
@@ -1222,7 +1228,7 @@ msgid "Entry Label"
msgstr "分录标签"
#. module: account
-#: code:addons/account/account.py:1129
+#: code:addons/account/account.py:1136
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr "您不能修改/删除这账簿和在此会计期间的分录!"
@@ -1307,14 +1313,15 @@ msgid "Taxes"
msgstr "税"
#. module: account
-#: code:addons/account/wizard/account_financial_report.py:69
-#: code:addons/account/wizard/account_report_common.py:144
+#: code:addons/account/wizard/account_financial_report.py:70
+#: code:addons/account/wizard/account_report_common.py:145
#, python-format
msgid "Select a starting and an ending period"
msgstr "选择会计期间的开始和结束时间"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
+#: model:ir.actions.act_window,name:account.action_account_report_pl
msgid "Profit and Loss"
msgstr "损益类"
@@ -1369,6 +1376,7 @@ msgid "Journal Items Analysis"
msgstr "账簿明细分析"
#. module: account
+#: report:account.aged_trial_balance:0
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "业务伙伴"
@@ -1393,8 +1401,10 @@ msgid "Central Journal"
msgstr "汇总账簿"
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.partner.balance,display_partner:0
#: selection:account.report.general.ledger,display_account:0
msgid "With balance is not equal to 0"
@@ -1508,7 +1518,7 @@ msgstr "已核销处理"
#. module: account
#: field:account.journal.view,columns_id:0
msgid "Columns"
-msgstr "列"
+msgstr "栏目"
#. module: account
#: report:account.overdue:0
@@ -1619,6 +1629,7 @@ msgid "Separated Journal Sequences"
msgstr "分散的账簿序列"
#. module: account
+#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "负责人"
@@ -1647,7 +1658,7 @@ msgid "Year Sum"
msgstr "年合计"
#. module: account
-#: code:addons/account/account_invoice.py:1429
+#: code:addons/account/account_invoice.py:1431
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
@@ -1720,7 +1731,7 @@ msgid "Customer Ref:"
msgstr "客户关联:"
#. module: account
-#: code:addons/account/account_cash_statement.py:292
+#: code:addons/account/account_cash_statement.py:293
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr "用户 %s 没有权限访问 %s!"
@@ -2039,7 +2050,7 @@ msgid "Pro-forma"
msgstr "形式发票"
#. module: account
-#: code:addons/account/account.py:1461
+#: code:addons/account/account.py:1478
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2063,7 +2074,7 @@ msgid "Search Chart of Account Templates"
msgstr "搜索科目一览表模板"
#. module: account
-#: code:addons/account/account_move_line.py:1277
+#: code:addons/account/account_move_line.py:1292
#, python-format
msgid ""
"Can not create an automatic sequence for this piece!\n"
@@ -2114,7 +2125,7 @@ msgid "Description"
msgstr "说明"
#. module: account
-#: code:addons/account/account.py:3119
+#: code:addons/account/account.py:3136
#, python-format
msgid "ECNJ"
msgstr "ECNJ"
@@ -2133,7 +2144,7 @@ msgid "Income Account"
msgstr "收益科目"
#. module: account
-#: code:addons/account/account_invoice.py:370
+#: code:addons/account/account_invoice.py:379
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr "没定义销售/采购 的账簿!"
@@ -2173,6 +2184,7 @@ msgstr "产品模板"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,fiscalyear_id:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,fiscalyear_id:0
#: report:account.central.journal:0
#: field:account.central.journal,fiscalyear_id:0
@@ -2182,6 +2194,7 @@ msgstr "产品模板"
#: field:account.common.report,fiscalyear_id:0
#: view:account.entries.report:0
#: field:account.entries.report,fiscalyear_id:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: field:account.general.journal,fiscalyear_id:0
@@ -2232,7 +2245,7 @@ msgid "Account Line"
msgstr "发票明细"
#. module: account
-#: code:addons/account/account.py:1468
+#: code:addons/account/account.py:1485
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -2263,7 +2276,7 @@ msgid "Main Sequence"
msgstr "主序列"
#. module: account
-#: code:addons/account/account_bank_statement.py:402
+#: code:addons/account/account_bank_statement.py:403
#, python-format
msgid ""
"In order to delete a bank statement, you must first cancel it to delete "
@@ -2337,7 +2350,7 @@ msgid "Account Tax Code"
msgstr "税编码"
#. module: account
-#: code:addons/account/account_invoice.py:572
+#: code:addons/account/account_invoice.py:581
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2423,7 +2436,7 @@ msgid "Account Model Entries"
msgstr "凭证模板"
#. module: account
-#: code:addons/account/account.py:3117
+#: code:addons/account/account.py:3134
#, python-format
msgid "EXJ"
msgstr "EXJ"
@@ -2484,7 +2497,6 @@ msgid "Account move line reconcile (writeoff)"
msgstr "凭证行核销(注销)"
#. module: account
-#: model:account.account.type,name:account.account_type_tax
#: report:account.invoice:0
#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
@@ -2516,7 +2528,7 @@ msgid "Accounts"
msgstr "科目"
#. module: account
-#: code:addons/account/account_invoice.py:369
+#: code:addons/account/account_invoice.py:378
#, python-format
msgid "Configuration Error!"
msgstr "设置错误!"
@@ -2636,6 +2648,7 @@ msgstr "系统在指定日期前自动生成分录。"
#. module: account
#: view:account.aged.trial.balance:0
#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
+#: model:ir.actions.report.xml,name:account.account_aged_partner_balance
#: model:ir.ui.menu,name:account.menu_aged_trial_balance
msgid "Aged Partner Balance"
msgstr "业务伙伴以前的余额表"
@@ -2685,14 +2698,14 @@ msgid "This wizard will create recurring accounting entries"
msgstr "该向导将创建一个定期分录"
#. module: account
-#: code:addons/account/account.py:1321
+#: code:addons/account/account.py:1329
#, python-format
msgid "No sequence defined on the journal !"
msgstr "没定义账簿的序列!"
#. module: account
-#: code:addons/account/account.py:2268
-#: code:addons/account/account_invoice.py:688
+#: code:addons/account/account.py:2285
+#: code:addons/account/account_invoice.py:697
#: code:addons/account/account_move_line.py:173
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2795,7 +2808,7 @@ msgid "Base Code Amount"
msgstr "税基金额"
#. module: account
-#: code:addons/account/account_invoice.py:392
+#: code:addons/account/account_invoice.py:401
#, python-format
msgid ""
"You can not delete an invoice which is open or paid. We suggest you to "
@@ -2808,7 +2821,7 @@ msgid "Default Sale Tax"
msgstr "默认销售税"
#. module: account
-#: code:addons/account/account_invoice.py:1013
+#: code:addons/account/account_invoice.py:1025
#, python-format
msgid "Invoice '%s' is validated."
msgstr "发票 '%s' 已审核"
@@ -2846,7 +2859,7 @@ msgid "Fiscal Position"
msgstr "财务结构"
#. module: account
-#: code:addons/account/account_invoice.py:735
+#: code:addons/account/account_invoice.py:744
#, python-format
msgid ""
"Tax base different!\n"
@@ -2996,7 +3009,7 @@ msgid "View"
msgstr "视图"
#. module: account
-#: code:addons/account/account.py:3363
+#: code:addons/account/account.py:3380
#: code:addons/account/account_bank.py:90
#, python-format
msgid "BNK"
@@ -3040,7 +3053,7 @@ msgstr "业务伙伴会计帐本(往来帐)"
#. module: account
#: help:account.journal.column,sequence:0
msgid "Gives the sequence order to journal column."
-msgstr "指定账簿的序列"
+msgstr "指定账簿栏目的序列"
#. module: account
#: help:account.account,currency_id:0
@@ -3065,7 +3078,7 @@ msgstr "科目一览表模板"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
-msgstr ""
+msgstr "设置您的会计选项"
#. module: account
#: view:report.account.sales:0
@@ -3193,7 +3206,7 @@ msgid "Starting Balance"
msgstr "期初余额"
#. module: account
-#: code:addons/account/account_invoice.py:1332
+#: code:addons/account/account_invoice.py:1345
#, python-format
msgid "No Partner Defined !"
msgstr "未定义业务伙伴!"
@@ -3247,7 +3260,7 @@ msgid "Chart of Tax"
msgstr "税一览表"
#. module: account
-#: code:addons/account/account_cash_statement.py:314
+#: code:addons/account/account_cash_statement.py:315
#, python-format
msgid "The closing balance should be the same than the computed balance!"
msgstr "期末余额与计算出来的余额不平衡."
@@ -3328,6 +3341,7 @@ msgstr "数量"
#. module: account
#: field:account.aged.trial.balance,period_length:0
+#: report:account.aged_trial_balance:0
msgid "Period Length (days)"
msgstr "期间(天数)"
@@ -3374,7 +3388,7 @@ msgid "Detail"
msgstr "详情"
#. module: account
-#: code:addons/account/account_invoice.py:839
+#: code:addons/account/account_invoice.py:850
#, python-format
msgid ""
"Can not create the invoice !\n"
@@ -3391,9 +3405,16 @@ msgid "VAT :"
msgstr "增值税 :"
#. module: account
+#: report:account.account.balance:0
+#: report:account.aged_trial_balance:0
#: report:account.central.journal:0
+#: report:account.financial.report:0
+#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,charts:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -3414,7 +3435,7 @@ msgid "Centralised counterpart"
msgstr "汇总副本"
#. module: account
-#: code:addons/account/account_move_line.py:584
+#: code:addons/account/account_move_line.py:575
#, python-format
msgid "You can not create journal items on a \"view\" account %s %s"
msgstr "凭证中不能使用 “视图” 类型的会计科目 %s %s"
@@ -3439,6 +3460,7 @@ msgstr "如果您不选择会计年度将使用所有开启的会计年度"
#: report:account.analytic.account.journal:0
#: selection:account.balance.report,filter:0
#: field:account.bank.statement,date:0
+#: field:account.bank.statement.line,date:0
#: selection:account.central.journal,filter:0
#: selection:account.common.account.report,filter:0
#: selection:account.common.journal.report,filter:0
@@ -3466,10 +3488,17 @@ msgstr "如果您不选择会计年度将使用所有开启的会计年度"
#: field:account.subscription.line,date:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
+#: xsl:account.transfer:0
#: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/account_general_ledger.py:305
+#: code:addons/account/report/account_general_ledger.py:308
+#: code:addons/account/report/account_journal.py:195
+#: code:addons/account/report/account_journal.py:198
+#: code:addons/account/report/common_report_header.py:97
#: field:analytic.entries.report,date:0
+#, python-format
msgid "Date"
msgstr "日期"
@@ -3486,7 +3515,6 @@ msgstr "反核销"
#. module: account
#: view:account.analytic.line:0
-#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -3500,7 +3528,7 @@ msgid "Chart of Accounts Template"
msgstr "科目一览表模板"
#. module: account
-#: code:addons/account/account.py:2280
+#: code:addons/account/account.py:2297
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3511,7 +3539,7 @@ msgstr ""
"请在业务伙伴里定义它"
#. module: account
-#: code:addons/account/account_move_line.py:837
+#: code:addons/account/account_move_line.py:846
#, python-format
msgid "Some entries are already reconciled !"
msgstr "部分分录已核销!"
@@ -3542,6 +3570,8 @@ msgstr "预算"
#: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/common_report_header.py:100
+#, python-format
msgid "No Filters"
msgstr "无筛选"
@@ -3623,7 +3653,7 @@ msgid "Analytic Items"
msgstr "分析明细"
#. module: account
-#: code:addons/account/account_move_line.py:1153
+#: code:addons/account/account_move_line.py:1168
#, python-format
msgid "Unable to change tax !"
msgstr "无法更改税目!"
@@ -3654,7 +3684,7 @@ msgid "Mapping"
msgstr "图表"
#. module: account
-#: code:addons/account/account_invoice.py:921
+#: code:addons/account/account_invoice.py:932
#, python-format
msgid ""
"You cannot create an invoice on a centralised journal. Uncheck the "
@@ -3668,6 +3698,7 @@ msgstr "无法在合并(centralised)凭证簿上创建发票,请在凭证
#: report:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.chart.template,name:0
+#: report:account.financial.report:0
#: field:account.model.line,name:0
#: field:account.move.line,name:0
#: field:account.move.reconcile,name:0
@@ -3681,7 +3712,7 @@ msgid "Account Aged Trial balance Report"
msgstr "过期的试算表"
#. module: account
-#: code:addons/account/account_move_line.py:591
+#: code:addons/account/account_move_line.py:582
#, python-format
msgid "You can not create journal items on a closed account %s %s"
msgstr "凭证中不能使用关闭的会计科目 %s %s"
@@ -4001,7 +4032,7 @@ msgid "Month"
msgstr "月份"
#. module: account
-#: code:addons/account/account_move_line.py:1216
+#: code:addons/account/account_move_line.py:1231
#, python-format
msgid ""
"You can not do this modification on a confirmed entry! You can just change "
@@ -4060,7 +4091,7 @@ msgid "Account Base Code"
msgstr "税基编码"
#. module: account
-#: code:addons/account/account_analytic_line.py:93
+#: code:addons/account/account_analytic_line.py:91
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr "未定义此产品“%s“ (id:%d)的费用科目"
@@ -4269,7 +4300,7 @@ msgid "Allow Reconciliation"
msgstr "允许核销"
#. module: account
-#: code:addons/account/account.py:1077
+#: code:addons/account/account.py:1082
#, python-format
msgid ""
"You can not modify company of this period as some journal items exists."
@@ -4303,7 +4334,7 @@ msgid "Recurring Models"
msgstr "定期模型"
#. module: account
-#: code:addons/account/account_move_line.py:1251
+#: code:addons/account/account_move_line.py:1266
#, python-format
msgid "Encoding error"
msgstr "输入错误"
@@ -4315,6 +4346,7 @@ msgstr "4"
#. module: account
#: view:account.invoice:0
+#: xsl:account.transfer:0
msgid "Change"
msgstr "改变"
@@ -4359,7 +4391,7 @@ msgid "Example"
msgstr "例子"
#. module: account
-#: code:addons/account/account_invoice.py:828
+#: code:addons/account/account_invoice.py:839
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4373,7 +4405,7 @@ msgid "Keep empty to use the income account"
msgstr "留空为使用利润科目"
#. module: account
-#: code:addons/account/account.py:3299
+#: code:addons/account/account.py:3316
#, python-format
msgid "Purchase Tax %.2f%%"
msgstr "采购税 %.2f%%"
@@ -4401,7 +4433,7 @@ msgstr "科目一览表"
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:337
+#: code:addons/account/account_invoice.py:346
#, python-format
msgid "Customer"
msgstr "客户"
@@ -4417,7 +4449,7 @@ msgid "Cancelled Invoice"
msgstr "已取消的发票"
#. module: account
-#: code:addons/account/account.py:1567
+#: code:addons/account/account.py:1584
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4469,7 +4501,7 @@ msgid "Income Account on Product Template"
msgstr "产品模板的收入科目"
#. module: account
-#: code:addons/account/account.py:3120
+#: code:addons/account/account.py:3137
#, python-format
msgid "MISC"
msgstr "杂项"
@@ -4494,11 +4526,13 @@ msgstr "新的会计年度"
#: view:account.invoice:0
#: view:account.tax.template:0
#: selection:account.vat.declaration,based_on:0
+#: code:addons/account/report/account_tax_report.py:68
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
#: model:ir.actions.report.xml,name:account.account_invoices
#: view:report.invoice.created:0
#: field:res.partner,invoice_ids:0
+#, python-format
msgid "Invoices"
msgstr "发票列表"
@@ -4637,26 +4671,24 @@ msgid "Journal Items"
msgstr "会计凭证行"
#. module: account
-#: code:addons/account/account.py:1088
-#: code:addons/account/account.py:1090
-#: code:addons/account/account.py:1321
-#: code:addons/account/account.py:1563
-#: code:addons/account/account.py:1567
-#: code:addons/account/account.py:3368
-#: code:addons/account/account_move_line.py:807
-#: code:addons/account/account_move_line.py:830
-#: code:addons/account/account_move_line.py:832
-#: code:addons/account/account_move_line.py:835
-#: code:addons/account/account_move_line.py:837
+#: code:addons/account/account.py:1095
+#: code:addons/account/account.py:1097
+#: code:addons/account/account.py:1329
+#: code:addons/account/account.py:1580
+#: code:addons/account/account.py:1584
+#: code:addons/account/account.py:3385
+#: code:addons/account/account_move_line.py:823
+#: code:addons/account/account_move_line.py:843
+#: code:addons/account/account_move_line.py:846
#: code:addons/account/report/common_report_header.py:92
#: code:addons/account/wizard/account_change_currency.py:38
#: code:addons/account/wizard/account_change_currency.py:59
#: code:addons/account/wizard/account_change_currency.py:64
#: code:addons/account/wizard/account_change_currency.py:70
-#: code:addons/account/wizard/account_financial_report.py:69
+#: code:addons/account/wizard/account_financial_report.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_report_common.py:144
-#: code:addons/account/wizard/account_report_common.py:150
+#: code:addons/account/wizard/account_report_common.py:145
+#: code:addons/account/wizard/account_report_common.py:151
#, python-format
msgid "Error"
msgstr "错误"
@@ -4759,7 +4791,7 @@ msgid "Beginning of Period Date"
msgstr "期间开始日期"
#. module: account
-#: code:addons/account/account.py:1351
+#: code:addons/account/account.py:1361
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4785,7 +4817,7 @@ msgid "Child Tax Accounts"
msgstr "子税科目"
#. module: account
-#: code:addons/account/account.py:1090
+#: code:addons/account/account.py:1097
#, python-format
msgid "Start period should be smaller then End period"
msgstr "开始日期应小于会计期间的结束日期"
@@ -4806,6 +4838,7 @@ msgstr "辅助核算余额 -"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,target_move:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,target_move:0
#: report:account.central.journal:0
#: field:account.central.journal,target_move:0
@@ -4849,6 +4882,8 @@ msgstr "会计期间类型"
#: view:account.invoice:0
#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,based_on:0
+#: code:addons/account/report/account_tax_report.py:70
+#, python-format
msgid "Payments"
msgstr "付款"
@@ -4892,7 +4927,7 @@ msgstr "科目报表"
#. module: account
#: field:account.journal.column,name:0
msgid "Column Name"
-msgstr "列名称"
+msgstr "栏目名称"
#. module: account
#: view:account.general.journal:0
@@ -4922,7 +4957,7 @@ msgid "Line 1:"
msgstr "第一行"
#. module: account
-#: code:addons/account/account.py:1307
+#: code:addons/account/account.py:1315
#, python-format
msgid "Integrity Error !"
msgstr "完整性错误!"
@@ -4955,6 +4990,7 @@ msgstr "核销结果"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_balancesheet0
+#: model:ir.actions.act_window,name:account.action_account_report_bs
#: model:ir.ui.menu,name:account.menu_account_report_bs
msgid "Balance Sheet"
msgstr "资产负债表"
@@ -5031,6 +5067,7 @@ msgstr "报表"
#: view:account.move.line:0
#: field:account.tax,amount:0
#: field:account.tax.template,amount:0
+#: xsl:account.transfer:0
#: view:analytic.entries.report:0
#: field:analytic.entries.report,amount:0
msgid "Amount"
@@ -5158,7 +5195,6 @@ msgstr "科目合并的科目报表"
#. module: account
#: field:account.bank.statement.line,name:0
-#: field:account.invoice,reference:0
msgid "Communication"
msgstr "沟通"
@@ -5210,13 +5246,13 @@ msgid "End of Year Entries Journal"
msgstr "账簿的结账分录"
#. module: account
-#: code:addons/account/account.py:3446
+#: code:addons/account/account.py:3463
#: code:addons/account/account_bank_statement.py:338
-#: code:addons/account/account_invoice.py:427
-#: code:addons/account/account_invoice.py:527
-#: code:addons/account/account_invoice.py:542
-#: code:addons/account/account_invoice.py:550
-#: code:addons/account/account_invoice.py:572
+#: code:addons/account/account_invoice.py:436
+#: code:addons/account/account_invoice.py:536
+#: code:addons/account/account_invoice.py:551
+#: code:addons/account/account_invoice.py:559
+#: code:addons/account/account_invoice.py:581
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -5290,7 +5326,6 @@ msgid "Customer Invoices And Refunds"
msgstr "客户发票和退款"
#. module: account
-#: field:account.analytic.line,amount_currency:0
#: field:account.entries.report,amount_currency:0
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
@@ -5456,7 +5491,7 @@ msgid "Generate Opening Entries"
msgstr "产生开启分录"
#. module: account
-#: code:addons/account/account_move_line.py:759
+#: code:addons/account/account_move_line.py:775
#, python-format
msgid "Already Reconciled!"
msgstr "已核销!"
@@ -5489,14 +5524,14 @@ msgid "Child Accounts"
msgstr "子科目"
#. module: account
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1229
#, python-format
msgid "Move name (id): %s (%s)"
msgstr "会计凭证号 (id): %s (%s)"
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:857
+#: code:addons/account/account_move_line.py:871
#, python-format
msgid "Write-Off"
msgstr "补差额"
@@ -5516,7 +5551,7 @@ msgstr "收入"
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:339
+#: code:addons/account/account_invoice.py:348
#, python-format
msgid "Supplier"
msgstr "供应商"
@@ -5546,7 +5581,7 @@ msgid "Account n°"
msgstr "科目编码"
#. module: account
-#: code:addons/account/account_invoice.py:88
+#: code:addons/account/account_invoice.py:91
#, python-format
msgid "Free Reference"
msgstr "无限制的单号"
@@ -5561,7 +5596,9 @@ msgstr "定价"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:376
#: code:addons/account/report/account_partner_balance.py:301
+#: code:addons/account/report/account_partner_ledger.py:399
#, python-format
msgid "Receivable and Payable Accounts"
msgstr "应收款与应付款科目"
@@ -5657,7 +5694,7 @@ msgid "Filter by"
msgstr "筛选"
#. module: account
-#: code:addons/account/account.py:2256
+#: code:addons/account/account.py:2273
#, python-format
msgid "You have a wrong expression \"%(...)s\" in your model !"
msgstr "模型中存在错误的表达式 \"%(...)s\""
@@ -5668,8 +5705,8 @@ msgid "Entry Date"
msgstr "分录日期"
#. module: account
-#: code:addons/account/account_move_line.py:1155
-#: code:addons/account/account_move_line.py:1238
+#: code:addons/account/account_move_line.py:1170
+#: code:addons/account/account_move_line.py:1253
#, python-format
msgid "You can not use an inactive account!"
msgstr "您不能使用一个停用的科目!"
@@ -5710,8 +5747,8 @@ msgid "Number of Days"
msgstr "天数"
#. module: account
-#: code:addons/account/account_bank_statement.py:402
-#: code:addons/account/account_invoice.py:392
+#: code:addons/account/account_bank_statement.py:403
+#: code:addons/account/account_invoice.py:401
#: code:addons/account/wizard/account_period_close.py:51
#, python-format
msgid "Invalid action !"
@@ -5773,7 +5810,7 @@ msgid "Multipication factor for Base code"
msgstr "税率"
#. module: account
-#: code:addons/account/wizard/account_report_common.py:150
+#: code:addons/account/wizard/account_report_common.py:151
#, python-format
msgid "not implemented"
msgstr "尚未实现"
@@ -5810,6 +5847,8 @@ msgstr "辅助核算分析"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:381
+#, python-format
msgid "Past"
msgstr "过去"
@@ -6083,6 +6122,8 @@ msgstr "百分比"
#. module: account
#: selection:account.report.general.ledger,sortby:0
+#: code:addons/account/report/account_general_ledger.py:307
+#, python-format
msgid "Journal & Partner"
msgstr "账簿 & 业务伙伴"
@@ -6092,7 +6133,7 @@ msgid "Power"
msgstr "强制"
#. module: account
-#: code:addons/account/account.py:3368
+#: code:addons/account/account.py:3385
#, python-format
msgid "Cannot generate an unused journal code."
msgstr "不能生成一个未使用的凭证代码。"
@@ -6132,6 +6173,7 @@ msgid "Applicable Type"
msgstr "适用类型"
#. module: account
+#: field:account.invoice,reference:0
#: field:account.invoice.line,invoice_id:0
msgid "Invoice Reference"
msgstr "发票"
@@ -6350,8 +6392,8 @@ msgid "You can not remove an account containing journal items."
msgstr "您不能删除已经存在凭证的账户。"
#. module: account
-#: code:addons/account/account_analytic_line.py:145
-#: code:addons/account/account_move_line.py:933
+#: code:addons/account/account_analytic_line.py:143
+#: code:addons/account/account_move_line.py:947
#, python-format
msgid "Entries: "
msgstr "凭证: "
@@ -6367,7 +6409,7 @@ msgid "Currency of the related account journal."
msgstr "货币的关联账户凭证。"
#. module: account
-#: code:addons/account/account.py:1563
+#: code:addons/account/account.py:1580
#, python-format
msgid "Couldn't create move between different companies"
msgstr "无法创建公司之间的过帐"
@@ -6407,13 +6449,13 @@ msgstr "草稿状态"
#. module: account
#: view:account.move.line:0
-#: code:addons/account/account_move_line.py:1043
+#: code:addons/account/account_move_line.py:1058
#, python-format
msgid "Total debit"
msgstr "借方合计"
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:824
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "凭证\"%s\"无效!"
@@ -6481,25 +6523,26 @@ msgstr "损益(费用账户)"
#: code:addons/account/account.py:622
#: code:addons/account/account.py:624
#: code:addons/account/account.py:963
-#: code:addons/account/account.py:1052
-#: code:addons/account/account.py:1129
-#: code:addons/account/account.py:1344
-#: code:addons/account/account.py:1351
-#: code:addons/account/account.py:2280
-#: code:addons/account/account.py:2596
-#: code:addons/account/account_analytic_line.py:92
-#: code:addons/account/account_analytic_line.py:101
+#: code:addons/account/account.py:1057
+#: code:addons/account/account.py:1136
+#: code:addons/account/account.py:1352
+#: code:addons/account/account.py:1359
+#: code:addons/account/account.py:1361
+#: code:addons/account/account.py:2297
+#: code:addons/account/account.py:2613
+#: code:addons/account/account_analytic_line.py:90
+#: code:addons/account/account_analytic_line.py:99
#: code:addons/account/account_bank_statement.py:301
#: code:addons/account/account_bank_statement.py:314
#: code:addons/account/account_bank_statement.py:352
-#: code:addons/account/account_cash_statement.py:292
-#: code:addons/account/account_cash_statement.py:314
-#: code:addons/account/account_invoice.py:808
-#: code:addons/account/account_invoice.py:839
-#: code:addons/account/account_invoice.py:1030
-#: code:addons/account/account_move_line.py:1200
-#: code:addons/account/account_move_line.py:1216
-#: code:addons/account/account_move_line.py:1218
+#: code:addons/account/account_cash_statement.py:293
+#: code:addons/account/account_cash_statement.py:315
+#: code:addons/account/account_invoice.py:819
+#: code:addons/account/account_invoice.py:850
+#: code:addons/account/account_invoice.py:1042
+#: code:addons/account/account_move_line.py:1215
+#: code:addons/account/account_move_line.py:1231
+#: code:addons/account/account_move_line.py:1233
#: code:addons/account/wizard/account_invoice_refund.py:108
#: code:addons/account/wizard/account_invoice_refund.py:110
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
@@ -6531,8 +6574,8 @@ msgid "Printed"
msgstr "已打印"
#. module: account
-#: code:addons/account/account_move_line.py:584
-#: code:addons/account/account_move_line.py:591
+#: code:addons/account/account_move_line.py:575
+#: code:addons/account/account_move_line.py:582
#, python-format
msgid "Error :"
msgstr "错误:"
@@ -6588,7 +6631,7 @@ msgid "Display Ledger Report with One partner per page"
msgstr "一页一个业务伙伴的分类帐"
#. module: account
-#: code:addons/account/account_move_line.py:1218
+#: code:addons/account/account_move_line.py:1233
#, python-format
msgid ""
"You can not do this modification on a reconciled entry! You can just change "
@@ -6743,7 +6786,7 @@ msgid "Total:"
msgstr "合计:"
#. module: account
-#: code:addons/account/account.py:2229
+#: code:addons/account/account.py:2246
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6780,7 +6823,7 @@ msgid "Taxes used in Sales"
msgstr "销售中用到的税"
#. module: account
-#: code:addons/account/account_invoice.py:495
+#: code:addons/account/account_invoice.py:504
#: code:addons/account/wizard/account_invoice_refund.py:145
#, python-format
msgid "Data Insufficient !"
@@ -6806,7 +6849,7 @@ msgstr "销售"
#: view:account.journal.column:0
#: model:ir.model,name:account.model_account_journal_column
msgid "Journal Column"
-msgstr "账簿列"
+msgstr "账簿栏目"
#. module: account
#: selection:account.invoice.report,state:0
@@ -6852,14 +6895,14 @@ msgid "Source Document"
msgstr "源单据"
#. module: account
-#: code:addons/account/account.py:1432
+#: code:addons/account/account.py:1449
#, python-format
msgid "You can not delete a posted journal entry \"%s\"!"
msgstr "你不能删除一个已复核的会计凭证“%s” !"
#. module: account
#: selection:account.partner.ledger,filter:0
-#: code:addons/account/report/account_partner_ledger.py:59
+#: code:addons/account/report/account_partner_ledger.py:60
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
#, python-format
msgid "Unreconciled Entries"
@@ -6955,8 +6998,8 @@ msgid "Are you sure you want to open this invoice ?"
msgstr "你确定要打开这发票?"
#. module: account
-#: code:addons/account/account_invoice.py:528
-#: code:addons/account/account_invoice.py:543
+#: code:addons/account/account_invoice.py:537
+#: code:addons/account/account_invoice.py:552
#, python-format
msgid ""
"Can not find a chart of account, you should create one from the "
@@ -6969,7 +7012,7 @@ msgid "Opening Entries Expense Account"
msgstr "未分配利润科目"
#. module: account
-#: code:addons/account/account_move_line.py:999
+#: code:addons/account/account_move_line.py:1014
#, python-format
msgid "Accounting Entries"
msgstr "会计分录"
@@ -7100,7 +7143,7 @@ msgid ""
msgstr "这字段只用于,如果您开发自己的模块允许开发者在自定义域创建特定的税"
#. module: account
-#: code:addons/account/account.py:1088
+#: code:addons/account/account.py:1095
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr "同一家公司你应该选择一个会计期间"
@@ -7131,8 +7174,8 @@ msgid "Reporting"
msgstr "报表"
#. module: account
-#: code:addons/account/account_move_line.py:759
-#: code:addons/account/account_move_line.py:842
+#: code:addons/account/account_move_line.py:775
+#: code:addons/account/account_move_line.py:856
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_state_open.py:37
@@ -7221,7 +7264,7 @@ msgid "Sign on Reports"
msgstr "报表上的符号"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:73
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
#, python-format
msgid "The periods to generate opening entries were not found"
msgstr "用于生成期初余额会计凭证的期间不存在"
@@ -7232,7 +7275,7 @@ msgid "Root/View"
msgstr "根/视图"
#. module: account
-#: code:addons/account/account.py:3121
+#: code:addons/account/account.py:3138
#, python-format
msgid "OPEJ"
msgstr "OPEJ"
@@ -7267,13 +7310,14 @@ msgid "Optional Information"
msgstr "可选信息"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:84
+#: code:addons/account/wizard/account_fiscalyear_close.py:100
#, python-format
msgid "The journal must have default credit and debit account"
msgstr "这账簿必须要有默认贷方和借方科目"
#. module: account
#: report:account.general.journal:0
+#: xsl:account.transfer:0
msgid ":"
msgstr ":"
@@ -7300,13 +7344,13 @@ msgid "Maturity Date"
msgstr "到期日期"
#. module: account
-#: code:addons/account/account_move_line.py:1302
+#: code:addons/account/account_move_line.py:1317
#, python-format
msgid "Bad account !"
msgstr "无效科目!"
#. module: account
-#: code:addons/account/account.py:3108
+#: code:addons/account/account.py:3125
#, python-format
msgid "Sales Journal"
msgstr "销售账簿"
@@ -7323,7 +7367,7 @@ msgid "Invoice Tax"
msgstr "发票税"
#. module: account
-#: code:addons/account/account_move_line.py:1277
+#: code:addons/account/account_move_line.py:1292
#, python-format
msgid "No piece number !"
msgstr "没会计期间!"
@@ -7375,7 +7419,7 @@ msgstr "到"
#. module: account
#: selection:account.move.line,centralisation:0
-#: code:addons/account/account.py:1518
+#: code:addons/account/account.py:1535
#, python-format
msgid "Currency Adjustment"
msgstr "汇兑损益调整"
@@ -7423,13 +7467,15 @@ msgstr "5"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:374
#: code:addons/account/report/account_partner_balance.py:299
+#: code:addons/account/report/account_partner_ledger.py:397
#, python-format
msgid "Payable Accounts"
msgstr "应付款科目"
#. module: account
-#: code:addons/account/account_invoice.py:732
+#: code:addons/account/account_invoice.py:741
#, python-format
msgid "Global taxes defined, but they are not in invoice lines !"
msgstr "定义了全局税,但发票行中没有!"
@@ -7473,7 +7519,7 @@ msgstr "报表名称"
#: selection:account.bank.accounts.wizard,account_type:0
#: selection:account.entries.report,type:0
#: selection:account.journal,type:0
-#: code:addons/account/account.py:3003
+#: code:addons/account/account.py:3020
#, python-format
msgid "Cash"
msgstr "现金"
@@ -7485,15 +7531,15 @@ msgid "Account Destination"
msgstr "目标科目"
#. module: account
-#: code:addons/account/account.py:1431
-#: code:addons/account/account.py:1460
-#: code:addons/account/account.py:1467
-#: code:addons/account/account_invoice.py:920
-#: code:addons/account/account_move_line.py:1104
-#: code:addons/account/wizard/account_automatic_reconcile.py:152
-#: code:addons/account/wizard/account_fiscalyear_close.py:73
-#: code:addons/account/wizard/account_fiscalyear_close.py:83
-#: code:addons/account/wizard/account_fiscalyear_close.py:86
+#: code:addons/account/account.py:1448
+#: code:addons/account/account.py:1477
+#: code:addons/account/account.py:1484
+#: code:addons/account/account_invoice.py:931
+#: code:addons/account/account_move_line.py:1119
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#: code:addons/account/wizard/account_fiscalyear_close.py:99
+#: code:addons/account/wizard/account_fiscalyear_close.py:102
#: code:addons/account/wizard/account_move_journal.py:165
#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
@@ -7640,13 +7686,14 @@ msgstr "固定"
#: code:addons/account/account.py:645
#: code:addons/account/account.py:664
#: code:addons/account/account.py:787
-#: code:addons/account/account.py:1077
-#: code:addons/account/account_invoice.py:732
-#: code:addons/account/account_invoice.py:735
-#: code:addons/account/account_invoice.py:738
+#: code:addons/account/account.py:1082
+#: code:addons/account/account_invoice.py:741
+#: code:addons/account/account_invoice.py:744
+#: code:addons/account/account_invoice.py:747
#: code:addons/account/account_move_line.py:97
-#: code:addons/account/account_move_line.py:750
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:766
+#: code:addons/account/account_move_line.py:819
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
#, python-format
msgid "Warning !"
msgstr "警告 !"
@@ -7698,7 +7745,7 @@ msgid "Select a currency to apply on the invoice"
msgstr "在发票上选择合适的币别"
#. module: account
-#: code:addons/account/account.py:3446
+#: code:addons/account/account.py:3463
#, python-format
msgid ""
"The bank account defined on the selected chart of accounts hasn't a code."
@@ -7711,7 +7758,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "不能注销 %s 草稿/形式/取消的发票"
#. module: account
-#: code:addons/account/account_invoice.py:810
+#: code:addons/account/account_invoice.py:821
#, python-format
msgid "No Invoice Lines !"
msgstr "没有发票明细"
@@ -7789,7 +7836,7 @@ msgid "Deferral Method"
msgstr "递延方法"
#. module: account
-#: code:addons/account/account_invoice.py:379
+#: code:addons/account/account_invoice.py:388
#, python-format
msgid "Invoice '%s' is paid."
msgstr "发票 '%s' 已支付。"
@@ -7851,7 +7898,7 @@ msgid "Associated Partner"
msgstr "相关业务伙伴"
#. module: account
-#: code:addons/account/account_invoice.py:1332
+#: code:addons/account/account_invoice.py:1345
#, python-format
msgid "You must first select a partner !"
msgstr "你必须首先选择一个业务伙伴!"
@@ -7902,7 +7949,7 @@ msgid ""
msgstr "税目一览表是用来生成您定期的税单。请您按照贵国的税法设置。"
#. module: account
-#: code:addons/account/account_invoice.py:428
+#: code:addons/account/account_invoice.py:437
#, python-format
msgid ""
"Can not find a chart of accounts for this company, you should create one."
@@ -7924,7 +7971,7 @@ msgid "Choose Fiscal Year"
msgstr "选择会计年度"
#. module: account
-#: code:addons/account/account.py:3111
+#: code:addons/account/account.py:3128
#, python-format
msgid "Purchase Refund Journal"
msgstr "采购红字发票账簿"
@@ -8011,7 +8058,7 @@ msgid "Compute Code for Taxes Included Prices"
msgstr "含税价格计算代码"
#. module: account
-#: code:addons/account/account_invoice.py:1030
+#: code:addons/account/account_invoice.py:1042
#, python-format
msgid ""
"You can not cancel an invoice which is partially paid! You need to "
@@ -8139,7 +8186,7 @@ msgid "current month"
msgstr "本月"
#. module: account
-#: code:addons/account/account.py:1052
+#: code:addons/account/account.py:1057
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -8222,10 +8269,12 @@ msgstr "红字发票账簿"
#. module: account
#: report:account.account.balance:0
#: report:account.central.journal:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
msgid "Filter By"
msgstr "筛选"
@@ -8258,7 +8307,7 @@ msgid "The partner account used for this invoice."
msgstr "这发票用这业务伙伴科目"
#. module: account
-#: code:addons/account/account.py:3296
+#: code:addons/account/account.py:3313
#, python-format
msgid "Tax %.2f%%"
msgstr "税 %.2f%%"
@@ -8281,7 +8330,7 @@ msgid "Payment Term Line"
msgstr "付款条款明细"
#. module: account
-#: code:addons/account/account.py:3109
+#: code:addons/account/account.py:3126
#, python-format
msgid "Purchase Journal"
msgstr "采购账簿"
@@ -8366,7 +8415,7 @@ msgid "Unpaid Invoices"
msgstr "未支付的发票"
#. module: account
-#: code:addons/account/account_invoice.py:495
+#: code:addons/account/account_invoice.py:504
#, python-format
msgid "The payment term of supplier does not have a payment term line!"
msgstr "这个供应商的付款条件没有付款条件行!"
@@ -8472,7 +8521,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "保留空为打开所有的会计年度"
#. module: account
-#: code:addons/account/account_move_line.py:1105
+#: code:addons/account/account_move_line.py:1120
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr "合并的凭证 (%s) 已确认!"
@@ -8485,7 +8534,7 @@ msgid ""
msgstr "如果它是一个多货币凭证,这金额表示一个可选的其它货币金额."
#. module: account
-#: code:addons/account/account.py:1307
+#: code:addons/account/account.py:1315
#, python-format
msgid ""
"You can not validate a non-balanced entry !\n"
@@ -8561,7 +8610,7 @@ msgid "Contact Address"
msgstr "联系地址"
#. module: account
-#: code:addons/account/account.py:2256
+#: code:addons/account/account.py:2273
#, python-format
msgid "Wrong model !"
msgstr "模型有误!"
@@ -8598,12 +8647,14 @@ msgstr "合同列表"
#: field:account.cashbox.line,starting_id:0
#: field:account.entries.report,reconcile_id:0
#: field:account.financial.report,balance:0
+#: field:account.financial.report,credit:0
+#: field:account.financial.report,debit:0
msgid "unknown"
msgstr "未知的"
#. module: account
#: field:account.fiscalyear.close,journal_id:0
-#: code:addons/account/account.py:3113
+#: code:addons/account/account.py:3130
#, python-format
msgid "Opening Entries Journal"
msgstr "账簿的开账分录"
@@ -8622,7 +8673,7 @@ msgid ""
msgstr "这科目用于损益(如果是利润:金额就加,损失:金额就减)用作计算损益报表"
#. module: account
-#: code:addons/account/account_invoice.py:808
+#: code:addons/account/account_invoice.py:819
#, python-format
msgid "Please define sequence on the journal related to this invoice."
msgstr "请为这张发票对应的凭证簿选择编号规则"
@@ -8708,7 +8759,7 @@ msgid "Period from"
msgstr "会计期间从"
#. module: account
-#: code:addons/account/account.py:3110
+#: code:addons/account/account.py:3127
#, python-format
msgid "Sales Refund Journal"
msgstr "销售红字发票账簿"
@@ -8755,7 +8806,7 @@ msgid "Purchase Tax(%)"
msgstr "进项税(%)"
#. module: account
-#: code:addons/account/account_invoice.py:810
+#: code:addons/account/account_invoice.py:821
#, python-format
msgid "Please create some invoice lines."
msgstr "请创建发票明细。"
@@ -8771,7 +8822,7 @@ msgid "Display Detail"
msgstr "显示明细"
#. module: account
-#: code:addons/account/account.py:3118
+#: code:addons/account/account.py:3135
#, python-format
msgid "SCNJ"
msgstr "SCNJ"
@@ -8805,8 +8856,6 @@ msgstr "结束会计期间"
#: field:account.account.template,financial_report_ids:0
#: model:ir.actions.act_window,name:account.action_account_financial_report_tree
#: model:ir.actions.act_window,name:account.action_account_report
-#: model:ir.actions.act_window,name:account.action_account_report_bs
-#: model:ir.actions.act_window,name:account.action_account_report_pl
#: model:ir.ui.menu,name:account.menu_account_reports
msgid "Financial Reports"
msgstr "会计报表"
@@ -8821,6 +8870,7 @@ msgstr "会计报表"
#: field:account.common.journal.report,period_from:0
#: field:account.common.partner.report,period_from:0
#: field:account.common.report,period_from:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: field:account.general.journal,period_from:0
#: report:account.general.ledger:0
@@ -8841,6 +8891,7 @@ msgstr "开始会计期间"
#. module: account
#: field:account.aged.trial.balance,direction_selection:0
+#: report:account.aged_trial_balance:0
msgid "Analysis Direction"
msgstr "分析趋势"
@@ -8860,7 +8911,7 @@ msgstr "账簿视图"
#. module: account
#: view:account.move.line:0
-#: code:addons/account/account_move_line.py:1046
+#: code:addons/account/account_move_line.py:1061
#, python-format
msgid "Total credit"
msgstr "贷方合计"
@@ -8926,6 +8977,7 @@ msgstr "银行对账单"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,balance:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -9002,7 +9054,7 @@ msgstr ""
"此界面用于会计输入正式的单据。如果需要输入一张客户发票,首先选择好账簿和会计期间,然后首先输入利润科目的分录,系统会自动处理相关的税和应收款。"
#. module: account
-#: code:addons/account/wizard/account_automatic_reconcile.py:152
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
#, python-format
msgid "You must select accounts to reconcile"
msgstr "您必须选择核销科目"
@@ -9026,7 +9078,6 @@ msgstr ""
"定时间段内是否允许过账"
#. module: account
-#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Filters By"
msgstr "筛选"
@@ -9048,7 +9099,7 @@ msgid "Move"
msgstr "凭证"
#. module: account
-#: code:addons/account/account_move_line.py:1153
+#: code:addons/account/account_move_line.py:1168
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr "您不能更改此税目,请移除并重新创建凭证!"
@@ -9104,7 +9155,7 @@ msgid "Consolidated Children"
msgstr "合并子科目"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:87
+#: code:addons/account/wizard/account_fiscalyear_close.py:103
#, python-format
msgid ""
"The journal must have centralised counterpart without the Skipping draft "
@@ -9165,6 +9216,7 @@ msgstr "没有定期开账/关账期间,请创建一个再设置期初余额
#: field:account.common.journal.report,period_to:0
#: field:account.common.partner.report,period_to:0
#: field:account.common.report,period_to:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: field:account.general.journal,period_to:0
#: report:account.general.ledger:0
@@ -9223,6 +9275,7 @@ msgstr "周期性凭证"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,date_from:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,date_from:0
#: report:account.central.journal:0
#: field:account.central.journal,date_from:0
@@ -9230,6 +9283,7 @@ msgstr "周期性凭证"
#: field:account.common.journal.report,date_from:0
#: field:account.common.partner.report,date_from:0
#: field:account.common.report,date_from:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,date_start:0
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
@@ -9272,7 +9326,7 @@ msgid "Unreconciled"
msgstr "反核销"
#. module: account
-#: code:addons/account/account_invoice.py:828
+#: code:addons/account/account_invoice.py:839
#, python-format
msgid "Bad total !"
msgstr "坏的合计!"
@@ -9333,7 +9387,7 @@ msgid "Comparison"
msgstr "比较"
#. module: account
-#: code:addons/account/account_invoice.py:372
+#: code:addons/account/account_invoice.py:381
#, python-format
msgid "Unknown Error"
msgstr "未知错误"
@@ -9370,6 +9424,7 @@ msgstr "使凭证生效"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,credit:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -9470,9 +9525,11 @@ msgstr "过去30天的成本凭证"
#: view:accounting.report:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/common_report_header.py:99
#: model:ir.actions.act_window,name:account.action_account_period_form
#: model:ir.ui.menu,name:account.menu_action_account_period_form
#: model:ir.ui.menu,name:account.next_id_23
+#, python-format
msgid "Periods"
msgstr "会计期间"
@@ -9636,6 +9693,7 @@ msgstr "已登账"
#: field:account.common.journal.report,date_to:0
#: field:account.common.partner.report,date_to:0
#: field:account.common.report,date_to:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,date_stop:0
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
@@ -9683,7 +9741,7 @@ msgid "No detail"
msgstr "不详"
#. module: account
-#: code:addons/account/account_analytic_line.py:102
+#: code:addons/account/account_analytic_line.py:100
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr "没有为此产品 \"%s\" (id:%d):定义利润科目"
@@ -9719,6 +9777,7 @@ msgid "Verification Total"
msgstr "检查合计数"
#. module: account
+#: report:account.aged_trial_balance:0
#: report:account.analytic.account.balance:0
#: report:account.analytic.account.inverted.balance:0
#: report:account.analytic.account.quantity_cost_ledger:0
@@ -9739,6 +9798,7 @@ msgstr "所有账簿"
#. module: account
#: field:account.account,company_id:0
+#: report:account.account.balance:0
#: field:account.aged.trial.balance,company_id:0
#: field:account.analytic.journal,company_id:0
#: field:account.balance.report,company_id:0
@@ -9753,7 +9813,9 @@ msgstr "所有账簿"
#: field:account.entries.report,company_id:0
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
+#: report:account.general.journal:0
#: field:account.general.journal,company_id:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,company_id:0
#: field:account.invoice,company_id:0
#: field:account.invoice.line,company_id:0
@@ -9763,6 +9825,8 @@ msgstr "所有账簿"
#: view:account.journal:0
#: field:account.journal,company_id:0
#: field:account.journal.period,company_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
#: field:account.model,company_id:0
#: field:account.move,company_id:0
#: field:account.move.line,company_id:0
@@ -9916,6 +9980,7 @@ msgstr "供应商发票"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,debit:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -9949,6 +10014,8 @@ msgstr "错误!您不能创建递归的科目模板。"
#. module: account
#: selection:account.print.journal,sort_selection:0
+#: code:addons/account/report/account_journal.py:197
+#, python-format
msgid "Journal Entry Number"
msgstr "会计凭证编号"
@@ -9966,7 +10033,7 @@ msgid ""
msgstr "如果会计科目已经有过会计凭证,且现在是‘关闭’类型,不能改为其他类型。"
#. module: account
-#: code:addons/account/account_move_line.py:832
+#: code:addons/account/account_move_line.py:843
#, python-format
msgid "Entry is already reconciled"
msgstr "分录已核销"
@@ -10003,8 +10070,10 @@ msgstr ""
"内部类型用于对不同类型的科目进行控制:视图科目不能做凭证,合并科目用于在多公司合并中指定子科目,应收应付科目用于业务伙伴,关闭科目用于不再使用的科目。"
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
msgid "With movements"
msgstr "进展"
@@ -10122,8 +10191,8 @@ msgid "Statistic Reports"
msgstr "统计报表"
#. module: account
-#: code:addons/account/account_move_line.py:1155
-#: code:addons/account/account_move_line.py:1238
+#: code:addons/account/account_move_line.py:1170
+#: code:addons/account/account_move_line.py:1253
#, python-format
msgid "Bad account!"
msgstr "无效科目!"
@@ -10151,7 +10220,7 @@ msgid "Accounts Mapping"
msgstr "科目一览"
#. module: account
-#: code:addons/account/account_invoice.py:364
+#: code:addons/account/account_invoice.py:373
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr "发票'%s'是等待复核。"
@@ -10406,6 +10475,7 @@ msgstr "account.addtmpl.wizard"
#. module: account
#: field:account.aged.trial.balance,result_selection:0
+#: report:account.aged_trial_balance:0
#: field:account.common.partner.report,result_selection:0
#: report:account.partner.balance:0
#: field:account.partner.balance,result_selection:0
@@ -10479,6 +10549,8 @@ msgstr "到期日期"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:383
+#, python-format
msgid "Future"
msgstr "前景"
diff --git a/addons/account_analytic_plans/i18n/ru.po b/addons/account_analytic_plans/i18n/ru.po
index 37d01818a6f..71b557f0169 100644
--- a/addons/account_analytic_plans/i18n/ru.po
+++ b/addons/account_analytic_plans/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-04-15 19:38+0000\n"
+"PO-Revision-Date: 2012-10-25 12:32+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:15+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
@@ -136,7 +136,7 @@ msgstr "Определить аналитический план счетов"
#. module: account_analytic_plans
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
-msgstr ""
+msgstr "Неверна структурная связь BBA!"
#. module: account_analytic_plans
#: constraint:account.bank.statement:0
@@ -149,6 +149,8 @@ msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
+"Дата проводки в журнале не в определённом периоде! Вы должны сменить дату "
+"или удалить это ограничение из журнала."
#. module: account_analytic_plans
#: sql_constraint:account.journal:0
@@ -251,6 +253,8 @@ msgid ""
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
+"Выбранный счёт проводки в журнале нуждается во вторичной валюте. Вы должны "
+"удалить вторичную валюту по счёту или выбрать мульти-валютный вид по журналу."
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
@@ -429,7 +433,7 @@ msgstr "Счет 4 уровня"
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "Company must be the same for its related account and period."
-msgstr ""
+msgstr "Для счета и периода должна быть одна компания."
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
@@ -515,11 +519,14 @@ msgid ""
"analytic accounts for each plan set. Then, you must attach a plan set to "
"your account journals."
msgstr ""
+"Для настройки нескольких планов счетов аналитики, вы должны определить "
+"корневые счета аналитики для каждого набора плана. Затем вы можете "
+"прикрепить набор плана к вашим учётным журналам."
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
-msgstr ""
+msgstr "Нельзя создать элемент журнала по закрытому счету ."
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
diff --git a/addons/account_check_writing/i18n/pl.po b/addons/account_check_writing/i18n/pl.po
new file mode 100644
index 00000000000..c95da4456ca
--- /dev/null
+++ b/addons/account_check_writing/i18n/pl.po
@@ -0,0 +1,199 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 00:35+0000\n"
+"PO-Revision-Date: 2012-10-25 16:56+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check on Top"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.actions.act_window,help:account_check_writing.action_write_check
+msgid ""
+"The check payment form allows you to track the payment you do to your "
+"suppliers specially by check. When you select a supplier, the payment method "
+"and an amount for the payment, OpenERP will propose to reconcile your "
+"payment with the open supplier invoices or bills.You can print the check"
+msgstr ""
+
+#. module: account_check_writing
+#: view:account.voucher:0
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
+msgid "Print Check"
+msgstr ""
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check in middle"
+msgstr ""
+
+#. module: account_check_writing
+#: help:res.company,check_layout:0
+msgid ""
+"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
+"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
+"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
+msgstr ""
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check on bottom"
+msgstr ""
+
+#. module: account_check_writing
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr ""
+
+#. module: account_check_writing
+#: help:account.journal,allow_check_writing:0
+msgid "Check this if the journal is to be used for writing checks."
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.journal,allow_check_writing:0
+msgid "Allow Check writing"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_account_journal
+msgid "Journal"
+msgstr "Dziennik"
+
+#. module: account_check_writing
+#: model:ir.actions.act_window,name:account_check_writing.action_write_check
+#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
+msgid "Write Checks"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Discount"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Original Amount"
+msgstr ""
+
+#. module: account_check_writing
+#: view:res.company:0
+msgid "Configuration"
+msgstr "Konfiguracja"
+
+#. module: account_check_writing
+#: field:account.voucher,allow_check:0
+msgid "Allow Check Writing"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Payment"
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.journal,use_preprint_check:0
+msgid "Use Preprinted Check"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account_check_writing
+#: view:res.company:0
+msgid "Default Check Layout"
+msgstr ""
+
+#. module: account_check_writing
+#: constraint:account.journal:0
+msgid ""
+"Configuration error! The currency chosen should be shared by the default "
+"accounts too."
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+msgid "Balance Due"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Check Amount"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_account_voucher
+msgid "Accounting Voucher"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.voucher,amount_in_word:0
+msgid "Amount in Word"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.top:0
+msgid "Open Balance"
+msgstr ""
+
+#. module: account_check_writing
+#: field:res.company,check_layout:0
+msgid "Choose Check layout"
+msgstr ""
diff --git a/addons/auth_openid/i18n/pl.po b/addons/auth_openid/i18n/pl.po
new file mode 100644
index 00000000000..ffaba43d98a
--- /dev/null
+++ b/addons/auth_openid/i18n/pl.po
@@ -0,0 +1,112 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 01:37+0100\n"
+"PO-Revision-Date: 2012-10-25 17:11+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
+#. module: auth_openid
+#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
+#. openerp-web
+#: view:res.users:0
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12
+msgid "OpenID"
+msgstr ""
+
+#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
+#. module: auth_openid
+#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
+#. openerp-web
+#: field:res.users,openid_url:0
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47
+msgid "OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#: help:res.users,openid_email:0
+msgid "Used for disambiguation in case of a shared OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#: sql_constraint:res.users:0
+msgid "You can not have two users with the same login !"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_email:0
+msgid "OpenID Email"
+msgstr ""
+
+#. module: auth_openid
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_key:0
+msgid "OpenID Key"
+msgstr ""
+
+#. module: auth_openid
+#: model:ir.model,name:auth_openid.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8
+msgid "Password"
+msgstr "Hasło"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
+msgid "Google"
+msgstr "Google"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
+msgid "Google Apps"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11
+msgid "Launchpad"
+msgstr "Launchpad"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20
+msgid "Google Apps Domain:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24
+msgid "Username:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28
+msgid "OpenID URL:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35
+msgid "Google Apps Domain"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41
+msgid "Username"
+msgstr ""
diff --git a/addons/base_action_rule/i18n/zh_CN.po b/addons/base_action_rule/i18n/zh_CN.po
index 77ee498555e..676f1f18a1f 100644
--- a/addons/base_action_rule/i18n/zh_CN.po
+++ b/addons/base_action_rule/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-05-10 17:50+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2012-10-25 16:32+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:35+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: base_action_rule
#: help:base.action.rule,act_mail_to_user:0
@@ -315,7 +315,7 @@ msgstr "激活"
#: code:addons/base_action_rule/base_action_rule.py:329
#, python-format
msgid "No Email ID Found for your Company address!"
-msgstr ""
+msgstr "公司地址中没有设置Email !"
#. module: base_action_rule
#: field:base.action.rule,act_remind_user:0
diff --git a/addons/crm/i18n/zh_CN.po b/addons/crm/i18n/zh_CN.po
index 94c5df29046..4a5bda0e170 100644
--- a/addons/crm/i18n/zh_CN.po
+++ b/addons/crm/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-03-22 16:17+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2012-10-25 16:22+0000\n"
+"Last-Translator: fenshuajiang \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:06+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -172,7 +172,7 @@ msgstr "预计结束月份"
#. module: crm
#: view:crm.lead2opportunity.partner.mass:0
msgid "Assigned Opportunities to"
-msgstr ""
+msgstr "分配商机给"
#. module: crm
#: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0
@@ -583,7 +583,7 @@ msgstr "结束日期"
#. module: crm
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
msgid "Schedule/Log a Call"
-msgstr ""
+msgstr "计划/记录一个电话"
#. module: crm
#: constraint:base.action.rule:0
@@ -763,7 +763,7 @@ msgstr "继续"
#. module: crm
#: field:crm.segmentation,som_interval:0
msgid "Days per Period"
-msgstr ""
+msgstr "每阶段的天数"
#. module: crm
#: field:crm.meeting,byday:0
@@ -926,7 +926,7 @@ msgstr "开启天数"
#. module: crm
#: view:crm.meeting:0
msgid "Show Time as"
-msgstr ""
+msgstr "显示时间为"
#. module: crm
#: view:crm.phonecall2partner:0
@@ -1299,7 +1299,7 @@ msgstr "写日期"
#. module: crm
#: view:crm.meeting:0
msgid "End of Recurrency"
-msgstr ""
+msgstr "结束循环"
#. module: crm
#: view:crm.meeting:0
@@ -1835,7 +1835,7 @@ msgstr "回复到"
#. module: crm
#: view:crm.case.section:0
msgid "Select Stages for this Sales Team"
-msgstr ""
+msgstr "为这个销售团队选择阶段"
#. module: crm
#: view:board.board:0
@@ -2683,7 +2683,7 @@ msgstr "这联系的邮件地址"
#. module: crm
#: field:crm.lead,referred:0
msgid "Referred by"
-msgstr ""
+msgstr "推荐人"
#. module: crm
#: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note
diff --git a/addons/decimal_precision/i18n/pl.po b/addons/decimal_precision/i18n/pl.po
new file mode 100644
index 00000000000..cac15509742
--- /dev/null
+++ b/addons/decimal_precision/i18n/pl.po
@@ -0,0 +1,49 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 00:36+0000\n"
+"PO-Revision-Date: 2012-10-25 16:50+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. module: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr "Cyfry"
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy"
+msgstr ""
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr "Użycie"
+
+#. module: decimal_precision
+#: sql_constraint:decimal.precision:0
+msgid "Only one value can be defined for each given usage!"
+msgstr ""
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
diff --git a/addons/hr/i18n/zh_CN.po b/addons/hr/i18n/zh_CN.po
index ee3dcae7ff7..e418f9ad1c3 100644
--- a/addons/hr/i18n/zh_CN.po
+++ b/addons/hr/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-08-18 17:32+0000\n"
-"Last-Translator: Heling Yao \n"
+"PO-Revision-Date: 2012-10-25 16:29+0000\n"
+"Last-Translator: fenshuajiang \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:21+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -181,7 +181,7 @@ msgstr "女性"
#: help:hr.job,expected_employees:0
msgid ""
"Expected number of employees for this job position after new recruitment."
-msgstr ""
+msgstr "新的招聘后这个工作岗位上期望的员工人数"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
@@ -685,7 +685,7 @@ msgstr "下属"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Number of employees currently occupying this job position."
-msgstr ""
+msgstr "这个工作岗位上现有的员工人数"
#. module: hr
#: field:hr.job,no_of_recruitment:0
diff --git a/addons/hr_evaluation/i18n/zh_CN.po b/addons/hr_evaluation/i18n/zh_CN.po
index 67d661fef2c..6ae57a6002f 100644
--- a/addons/hr_evaluation/i18n/zh_CN.po
+++ b/addons/hr_evaluation/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-05-10 17:47+0000\n"
-"Last-Translator: Jeff Wang \n"
+"PO-Revision-Date: 2012-10-25 17:16+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:27+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
@@ -304,7 +304,7 @@ msgstr "上个月完成的评估"
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_mail_compose_message
msgid "Email composition wizard"
-msgstr ""
+msgstr "电子邮件撰写向导"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
diff --git a/addons/hr_timesheet/i18n/zh_CN.po b/addons/hr_timesheet/i18n/zh_CN.po
index 909fe0f6c8c..8a575f31ea1 100644
--- a/addons/hr_timesheet/i18n/zh_CN.po
+++ b/addons/hr_timesheet/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-05-10 18:19+0000\n"
-"Last-Translator: Jeff Wang \n"
+"PO-Revision-Date: 2012-10-25 17:20+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:15+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:43
@@ -468,7 +468,7 @@ msgstr "一般信息"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my
msgid "My Current Timesheet"
-msgstr ""
+msgstr "我当前的时间表"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:40
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index 6ef704ac2b9..74bed25d597 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:49+0000\n"
-"PO-Revision-Date: 2012-02-13 09:52+0000\n"
-"Last-Translator: Jeff Wang \n"
+"PO-Revision-Date: 2012-10-25 17:08+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:06+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mrp
#: view:mrp.routing.workcenter:0
@@ -89,7 +89,7 @@ msgstr "单位成本"
#. module: mrp
#: view:mrp.production:0
msgid "Scrap Products"
-msgstr "原料消耗"
+msgstr "报废原料"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
@@ -135,7 +135,7 @@ msgstr "生产订单编号"
#. module: mrp
#: view:mrp.production:0
msgid "Finished Products"
-msgstr "已完工数量"
+msgstr "产成品"
#. module: mrp
#: view:mrp.production:0
@@ -209,7 +209,7 @@ msgstr "输入一个费用产品用于跟踪辅助核算会计中的成本"
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "For purchased material"
-msgstr "用于采购原料"
+msgstr "用于外购的物料"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.product_form_config_action
@@ -1288,7 +1288,7 @@ msgstr "如果产品的供应方法是外购,系统创建采购订单。"
#. module: mrp
#: model:ir.model,name:mrp.model_procurement_order
msgid "Procurement"
-msgstr "需求单"
+msgstr "需求"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard
diff --git a/addons/mrp_repair/i18n/zh_CN.po b/addons/mrp_repair/i18n/zh_CN.po
index 916150fa11d..c3dec3709ee 100644
--- a/addons/mrp_repair/i18n/zh_CN.po
+++ b/addons/mrp_repair/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-05-10 17:43+0000\n"
-"Last-Translator: Jeff Wang \n"
+"PO-Revision-Date: 2012-10-25 16:34+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:25+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -178,7 +178,7 @@ msgstr "警告!"
#. module: mrp_repair
#: report:repair.order:0
msgid "Tax"
-msgstr ""
+msgstr "税"
#. module: mrp_repair
#: view:mrp.repair:0
diff --git a/addons/purchase/i18n/zh_CN.po b/addons/purchase/i18n/zh_CN.po
index 17427c72144..a596393772d 100644
--- a/addons/purchase/i18n/zh_CN.po
+++ b/addons/purchase/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-08-27 16:58+0000\n"
+"PO-Revision-Date: 2012-10-25 17:44+0000\n"
"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:08+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
@@ -746,7 +746,7 @@ msgstr "询价单"
#: code:addons/purchase/edi/purchase_order.py:139
#, python-format
msgid "EDI Pricelist (%s)"
-msgstr ""
+msgstr "EDI 价格表 (%s)"
#. module: purchase
#: selection:purchase.order,state:0
@@ -1141,7 +1141,7 @@ msgstr "计算"
#. module: purchase
#: view:stock.picking:0
msgid "Incoming Shipments Available"
-msgstr ""
+msgstr "可用的入库"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_partner_cat
diff --git a/addons/purchase_double_validation/i18n/zh_CN.po b/addons/purchase_double_validation/i18n/zh_CN.po
index 340fb940653..a02d02468ca 100644
--- a/addons/purchase_double_validation/i18n/zh_CN.po
+++ b/addons/purchase_double_validation/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2011-07-12 17:47+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2012-10-25 17:31+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:37+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
@@ -30,7 +30,7 @@ msgstr "定义限定金额后采购需要审核"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
msgid "title"
-msgstr "标题"
+msgstr "职位"
#. module: purchase_double_validation
#: field:purchase.double.validation.installer,config_logo:0
@@ -47,7 +47,7 @@ msgstr "设置采购的限定金额"
#: view:board.board:0
#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting
msgid "Purchase Order Waiting Approval"
-msgstr ""
+msgstr "等待审批的采购订单"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
@@ -67,7 +67,7 @@ msgstr "purchase.double.validation.installer"
#. module: purchase_double_validation
#: field:purchase.double.validation.installer,limit_amount:0
msgid "Maximum Purchase Amount"
-msgstr "限定的采购金额"
+msgstr "最大的采购金额"
#~ msgid "purchase_double_validation"
#~ msgstr "purchase_double_validation"
diff --git a/addons/purchase_requisition/i18n/zh_CN.po b/addons/purchase_requisition/i18n/zh_CN.po
index 338403bf5c2..b9f0e5a6bcd 100644
--- a/addons/purchase_requisition/i18n/zh_CN.po
+++ b/addons/purchase_requisition/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-02-15 13:20+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2012-10-25 17:29+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: Chinese (Simplified) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:36+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase_requisition
#: sql_constraint:purchase.order:0
@@ -139,7 +139,7 @@ msgstr "勾选选项,请购生成采购申请而不是直接生成询价单"
#: code:addons/purchase_requisition/purchase_requisition.py:136
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "警告"
#. module: purchase_requisition
#: report:purchase.requisition:0
@@ -181,7 +181,7 @@ msgstr "重置为草稿"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "Current Purchase Requisition"
-msgstr ""
+msgstr "当前的采购请求"
#. module: purchase_requisition
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_user
@@ -218,7 +218,7 @@ msgstr "数量"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "Unassigned Requisition"
-msgstr ""
+msgstr "未指派的请购单"
#. module: purchase_requisition
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
@@ -307,7 +307,7 @@ msgstr "请购类型"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "New Purchase Requisition"
-msgstr ""
+msgstr "新的采购申请"
#. module: purchase_requisition
#: view:purchase.requisition:0
@@ -399,7 +399,7 @@ msgstr "采购申请(排它的)"
#. module: purchase_requisition
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager
msgid "Manager"
-msgstr ""
+msgstr "主管"
#. module: purchase_requisition
#: constraint:product.product:0
diff --git a/addons/sale/i18n/zh_CN.po b/addons/sale/i18n/zh_CN.po
index 80bce011aaf..4f999fd79fa 100644
--- a/addons/sale/i18n/zh_CN.po
+++ b/addons/sale/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
-"PO-Revision-Date: 2012-06-11 07:32+0000\n"
-"Last-Translator: openerp-china.black-jack \n"
+"PO-Revision-Date: 2012-10-25 17:36+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:13+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -203,7 +203,7 @@ msgstr ""
#. module: sale
#: view:sale.config.settings:0
msgid "Contract Feature"
-msgstr ""
+msgstr "合同特性"
#. module: sale
#: field:sale.report,state:0
@@ -233,7 +233,7 @@ msgstr "待开票"
#: view:sale.order.line:0
#: field:sale.report,product_uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "计量单位"
#. module: sale
#: help:sale.order,date_confirm:0
@@ -257,12 +257,12 @@ msgstr "3月"
#: code:addons/sale/sale.py:558
#, python-format
msgid "First cancel all invoices attached to this sales order."
-msgstr ""
+msgstr "首先取消所有关联这个销售订单的发票。"
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sale order"
-msgstr ""
+msgstr "为整个销售单开票"
#. module: sale
#: field:sale.order,project_id:0
diff --git a/addons/sale_stock/i18n/zh_CN.po b/addons/sale_stock/i18n/zh_CN.po
index 74cf53c8814..79b64da8499 100644
--- a/addons/sale_stock/i18n/zh_CN.po
+++ b/addons/sale_stock/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:32+0000\n"
-"PO-Revision-Date: 2012-09-21 14:19+0000\n"
-"Last-Translator: openerp-china.black-jack \n"
+"PO-Revision-Date: 2012-10-25 17:47+0000\n"
+"Last-Translator: ccdos \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:39+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: sale_stock
#: help:sale.config.settings,group_invoice_deli_orders:0
@@ -118,7 +118,7 @@ msgstr "对每个销售订单明细,将会创建对应的采购订单来供应
#: code:addons/sale_stock/sale_stock.py:678
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "错误!"
#. module: sale_stock
#: field:sale.order,picking_policy:0
@@ -146,12 +146,12 @@ msgstr "库存调拨"
#: code:addons/sale_stock/sale_stock.py:164
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "非法的动作"
#. module: sale_stock
#: field:sale.config.settings,module_project_timesheet:0
msgid "Project Timesheet"
-msgstr ""
+msgstr "项目时间表"
#. module: sale_stock
#: help:sale.config.settings,module_delivery:0
@@ -166,7 +166,7 @@ msgstr ""
#: code:addons/sale_stock/sale_stock.py:647
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "设置错误!"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleprocurement0
@@ -188,7 +188,7 @@ msgstr "销售订单"
#: model:ir.model,name:sale_stock.model_stock_picking_out
#: view:sale.order:0
msgid "Delivery Orders"
-msgstr ""
+msgstr "送货单"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_order_line
@@ -218,7 +218,7 @@ msgstr "错误!您不能创建递归公司."
#. module: sale_stock
#: field:sale.config.settings,group_invoice_so_lines:0
msgid "Generate invoices based on the sale order"
-msgstr ""
+msgstr "基于销售单生成发票"
#. module: sale_stock
#: help:res.company,security_lead:0
@@ -244,7 +244,7 @@ msgstr "强制指定"
#. module: sale_stock
#: field:sale.config.settings,default_order_policy:0
msgid "The default invoicing method is"
-msgstr ""
+msgstr "默认的开票方法"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:233
@@ -265,7 +265,7 @@ msgstr "转移给客户的单据"
#. module: sale_stock
#: view:sale.order:0
msgid "View Delivery Order"
-msgstr ""
+msgstr "发运单视图"
#. module: sale_stock
#: field:sale.order.line,move_ids:0
@@ -275,7 +275,7 @@ msgstr "库存调拨"
#. module: sale_stock
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr ""
+msgstr "默认选项"
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
@@ -334,7 +334,7 @@ msgstr "需求会在销售订单确认或发票付款后自动生成。它是采
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
msgid "Generate invoices after and based on delivery orders"
-msgstr ""
+msgstr "基于发运单生产发票"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:499
@@ -345,7 +345,7 @@ msgstr ""
#. module: sale_stock
#: field:sale.config.settings,module_delivery:0
msgid "Allow adding shipping costs"
-msgstr ""
+msgstr "允许追加运输成本"
#. module: sale_stock
#: view:sale.order:0
@@ -360,12 +360,12 @@ msgstr "打包装"
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
msgid "Deliver all at once when all products are available."
-msgstr ""
+msgstr "当所有商品可用后一次性发运"
#. module: sale_stock
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
msgid "Enable Invoicing Delivery orders"
-msgstr ""
+msgstr "允许开发运单"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:689
@@ -409,12 +409,12 @@ msgstr "属性"
#. module: sale_stock
#: constraint:stock.move:0
msgid "You must assign a serial number for this product."
-msgstr ""
+msgstr "你必须为这个产品指定序列号"
#. module: sale_stock
#: field:sale.config.settings,group_mrp_properties:0
msgid "Product properties on order lines"
-msgstr ""
+msgstr "订单行上面的产品属性"
#. module: sale_stock
#: help:sale.config.settings,default_order_policy:0
@@ -425,7 +425,7 @@ msgstr "你可以根据销售订单或送货单生成发票。"
#. module: sale_stock
#: constraint:stock.move:0
msgid "You cannot move products from or to a location of the type view."
-msgstr ""
+msgstr "你能移动从(到)这种类型视图的库位"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_report
@@ -452,7 +452,7 @@ msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "View Invoice"
-msgstr ""
+msgstr "查看发票"
#. module: sale_stock
#: sql_constraint:stock.picking:0
@@ -508,7 +508,7 @@ msgstr ""
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on sales orders"
-msgstr ""
+msgstr "基于销售单的发票"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
diff --git a/addons/web_diagram/i18n/ru.po b/addons/web_diagram/i18n/ru.po
index b65d79005a2..14062840b2f 100644
--- a/addons/web_diagram/i18n/ru.po
+++ b/addons/web_diagram/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-02-08 07:13+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-25 06:42+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 05:19+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:11
@@ -25,7 +25,7 @@ msgstr "Диаграмма"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:165
msgid "Are you sure?"
-msgstr ""
+msgstr "Вы уверены?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:195
@@ -35,6 +35,10 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
+"Удаление этого узла не может быть отменено.\n"
+"Будут удалены все связанные переходы.\n"
+"\n"
+"Вы уверены ?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:213
@@ -43,6 +47,9 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
+"Удаление этого перехода не может быть отменено.\n"
+"\n"
+"Вы уверены ?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:224
diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po
index 0e97644b80e..7969b36fc35 100644
--- a/openerp/addons/base/i18n/ru.po
+++ b/openerp/addons/base/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
-"PO-Revision-Date: 2012-10-23 18:39+0000\n"
+"PO-Revision-Date: 2012-10-25 07:14+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
-"X-Generator: Launchpad (build 16179)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:55+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -4520,7 +4520,7 @@ msgstr "Португалия"
#. module: base
#: model:ir.module.module,shortdesc:base.module_share
msgid "Share any Document"
-msgstr "Совместный доступ r любым документам"
+msgstr "Совместный доступ к любым документам"
#. module: base
#: field:ir.module.module,certificate:0
From 2776f5b7e691da63f0a373ebdf8305fd60b73bb6 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 08:51:43 +0200
Subject: [PATCH 113/154] [[FIX] country code not required
bzr revid: fp@tinyerp.com-20121026065143-bnwzfum1zp8p3wrv
---
openerp/addons/base/res/res_country.py | 2 +-
openerp/addons/base/res/res_country_view.xml | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/openerp/addons/base/res/res_country.py b/openerp/addons/base/res/res_country.py
index 35fb2a29ea7..98a3b769a11 100644
--- a/openerp/addons/base/res/res_country.py
+++ b/openerp/addons/base/res/res_country.py
@@ -47,7 +47,7 @@ class Country(osv.osv):
help='The full name of the country.', required=True, translate=True),
'code': fields.char('Country Code', size=2,
help='The ISO country code in two chars.\n'
- 'You can use this field for quick search.', required=True),
+ 'You can use this field for quick search.'),
'address_format': fields.text('Address Format', help="""You can state here the usual format to use for the \
addresses belonging to this country.\n\nYou can use the python-style string patern with all the field of the address \
(for example, use '%(street)s' to display the field 'street') plus
diff --git a/openerp/addons/base/res/res_country_view.xml b/openerp/addons/base/res/res_country_view.xml
index 47b665426f9..8f64d330440 100644
--- a/openerp/addons/base/res/res_country_view.xml
+++ b/openerp/addons/base/res/res_country_view.xml
@@ -31,8 +31,7 @@
-
-
+
From 8eb7e8ab6c17a20aef85594cac337329df43ae1e Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 09:59:51 +0200
Subject: [PATCH 114/154] [MERGE] + improve hr_timesheet
bzr revid: fp@tinyerp.com-20121026075951-2hmaydu7skwhs5k2
---
addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 2 +-
.../hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index f3e3af5f610..ac24cbcdc0c 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -324,7 +324,7 @@
-
+
diff --git a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml
index c982a9bbd39..dfe89c87f70 100644
--- a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml
+++ b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml
@@ -5,7 +5,7 @@
hr_timesheet_current_open.form
hr.timesheet.current.open
-
+
@@ -19,7 +19,7 @@
- My Current Timesheet
+ My Timesheet
hr.timesheet.current.open
form
tree,form
@@ -28,7 +28,7 @@
My Timesheet opens your timesheet so that you can book your activities into the system. From the same form, you can register your attendances (Sign In/Out) and describe the working hours made on the different projects. At the end of the period defined in the company, the timesheet is confirmed by the user and can be validated by his manager. If required, as defined on the project, you can generate the invoices based on the timesheet.
-
+
From 619390d23cd337721bbe67a316052e77ee843335 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 10:01:37 +0200
Subject: [PATCH 115/154] [IMP] timesheets
bzr revid: fp@tinyerp.com-20121026080137-bluybqibtsjgb25n
---
addons/hr/res_config.py | 2 +-
addons/hr_attendance/res_config.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr/res_config.py b/addons/hr/res_config.py
index 7ae28348045..96bb42d1d8a 100644
--- a/addons/hr/res_config.py
+++ b/addons/hr/res_config.py
@@ -28,7 +28,7 @@ class hr_config_settings(osv.osv_memory):
_columns = {
'module_hr_timesheet_sheet': fields.boolean('Allow timesheets validation by managers',
help ="""This installs the module hr_timesheet_sheet."""),
- 'module_hr_attendance': fields.boolean('Track attendances',
+ 'module_hr_attendance': fields.boolean('Install attendances feature',
help ="""This installs the module hr_attendance."""),
'module_hr_timesheet': fields.boolean('Manage timesheets',
help ="""This installs the module hr_timesheet."""),
diff --git a/addons/hr_attendance/res_config.py b/addons/hr_attendance/res_config.py
index 0da2d183409..61e2f784a5a 100644
--- a/addons/hr_attendance/res_config.py
+++ b/addons/hr_attendance/res_config.py
@@ -25,7 +25,7 @@ class hr_attendance_config_settings(osv.osv_memory):
_inherit = 'hr.config.settings'
_columns = {
- 'group_hr_attendance': fields.boolean('Track attendances',
+ 'group_hr_attendance': fields.boolean('Track attendances for all employees',
implied_group='base.group_hr_attendance',
help="Allocates attendance group to all users."),
}
From f1c4b00a2926300f792a5229a591edc6dddc0d1f Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 10:33:52 +0200
Subject: [PATCH 116/154] [IMP] add option in hr settings
bzr revid: fp@tinyerp.com-20121026083352-fkni5niw3a7t2m5s
---
addons/hr/res_config.py | 2 ++
addons/hr/res_config_view.xml | 4 ++++
2 files changed, 6 insertions(+)
diff --git a/addons/hr/res_config.py b/addons/hr/res_config.py
index 96bb42d1d8a..148499190fd 100644
--- a/addons/hr/res_config.py
+++ b/addons/hr/res_config.py
@@ -42,6 +42,8 @@ class hr_config_settings(osv.osv_memory):
help ="""This installs the module hr_contract."""),
'module_hr_evaluation': fields.boolean('Organize employees periodic evaluation',
help ="""This installs the module hr_evaluation."""),
+ 'module_account_analytic_analysis': fields.boolean('Allow invoicing based on timesheets (will install the sale application)',
+ help ="""This installs the module account_analytic_analysis, which will install sales management too."""),
'module_hr_payroll': fields.boolean('Manage payroll',
help ="""This installs the module hr_payroll."""),
}
diff --git a/addons/hr/res_config_view.xml b/addons/hr/res_config_view.xml
index f370b26139d..632ceb56918 100644
--- a/addons/hr/res_config_view.xml
+++ b/addons/hr/res_config_view.xml
@@ -69,6 +69,10 @@
+
+
+
+
From 052dedaf2c7c8f5ac804714ba73abc74b6934a47 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 11:37:04 +0200
Subject: [PATCH 117/154] [IMP] restyled timesheets
bzr revid: fp@tinyerp.com-20121026093704-b5q54rwtrkx73igg
---
.../static/src/css/Makefile | 3 +
.../static/src/css/timesheet.css | 91 ++++++++-----------
.../static/src/css/timesheet.sass | 49 ++++++++++
.../static/src/xml/timesheet.xml | 12 +--
4 files changed, 95 insertions(+), 60 deletions(-)
create mode 100644 addons/hr_timesheet_sheet/static/src/css/Makefile
create mode 100644 addons/hr_timesheet_sheet/static/src/css/timesheet.sass
diff --git a/addons/hr_timesheet_sheet/static/src/css/Makefile b/addons/hr_timesheet_sheet/static/src/css/Makefile
new file mode 100644
index 00000000000..e60087d9b33
--- /dev/null
+++ b/addons/hr_timesheet_sheet/static/src/css/Makefile
@@ -0,0 +1,3 @@
+timesheet.css: timesheet.sass
+ sass -t expanded timesheet.sass timesheet.css
+
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.css b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
index b486f76694d..f504a0f4f10 100644
--- a/addons/hr_timesheet_sheet/static/src/css/timesheet.css
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
@@ -1,79 +1,62 @@
-
+@charset "utf-8";
+.openerp .oe_form_readonly .oe_timesheet_button_add {
+ display: none;
+}
.openerp .oe_timesheet_weekly {
- overflow-x: auto;
+ overflow-x: auto;
}
-
.openerp .oe_timesheet_weekly table {
- width: 100%;
+ width: 100%;
}
-
.openerp .oe_timesheet_weekly td {
- padding-top: 15px;
+ padding: 3px;
+ text-align: right;
}
-
.openerp .oe_timesheet_weekly th {
- text-align: right;
- color: #069;
- font-family: 'Helvetica Neue', Arial, Verdana, 'Nimbus Sans L', sans-serif;
- font-size: 10px;
+ text-align: center;
+ color: #006699;
+ font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
+ font-size: 10px;
+ background: #eeeeee;
+ min-width: 47px;
}
-
-.openerp .oe_timesheet_weekly th.oe_timesheet_weekly_date_head {
- width: 60px;
+.openerp .oe_timesheet_weekly .oe_timesheet_total {
+ background: #eeeeee;
}
-
-.openerp .oe_timesheet_weekly td {
- text-align: right;
- vertical-align: middle;
-}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_account {
- text-align: left;
- padding-right: 30px;
+ text-align: left;
+}
+.openerp .oe_timesheet_weekly .oe_timesheet_first_col {
+ min-width: 130px;
}
-
.openerp .oe_timesheet_weekly td input.oe_timesheet_weekly_input {
- border: 1px solid #CCC;
- padding: 5px 2px !important;
- color: #666 !important;
- font-size: 14px;
- font-weight: bold;
- width: 38px;
- text-align: right;
- min-width: 0 !important;
+ padding: 5px 2px !important;
+ width: 40px;
+ text-align: right;
+ min-width: 0 !important;
}
-
-.openerp .oe_timesheet_weekly td .oe_timesheet_weekly_box {
- padding: 5px 2px !important;
- color: #666 !important;
- font-size: 14px;
- font-weight: bold;
- width: 38px;
- display: inline-block;
+.openerp .oe_timesheet_weekly td.oe_timesheet_total {
+ font-weight: bold;
+ padding: 5px 3px !important;
}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_adding_tot {
- display: table;
- width: 100%;
+ display: table;
+ width: 100%;
}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_adding {
- display: table-cell;
- text-align: left;
+ display: table-cell;
+ text-align: left;
}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_tottot {
- display: table-cell;
+ display: table-cell;
}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_add_row td {
- text-align: left;
+ text-align: left;
}
-
.openerp .oe_timesheet_weekly .oe_timesheet_weekly_add_row .oe_form_field_many2one {
- display: inline-block;
- width: 200px;
+ display: inline-block;
+ width: 200px;
}
-
-.openerp .oe_timesheet_weekly_today {
+.openerp .oe_timesheet_weekly .oe_timesheet_weekly_today {
+ background: #ffddee;
}
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.sass b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
new file mode 100644
index 00000000000..9c986517508
--- /dev/null
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
@@ -0,0 +1,49 @@
+@charset "utf-8"
+
+.openerp
+ .oe_form_readonly
+ .oe_timesheet_button_add
+ display: none
+ .oe_timesheet_weekly
+ overflow-x: auto
+ table
+ width: 100%
+ td
+ padding: 3px
+ text-align: right
+ th
+ text-align: center
+ color: #069
+ font-family: 'Helvetica Neue', Arial, Verdana, 'Nimbus Sans L', sans-serif
+ font-size: 10px
+ background: #eee
+ min-width: 47px
+ .oe_timesheet_total
+ background: #eee
+ .oe_timesheet_weekly_account
+ text-align: left
+ .oe_timesheet_first_col
+ min-width: 130px
+ td input.oe_timesheet_weekly_input
+ padding: 5px 2px !important
+ width: 40px
+ text-align: right
+ min-width: 0 !important
+ td.oe_timesheet_total
+ font-weight: bold
+ padding: 5px 3px !important
+ .oe_timesheet_weekly_adding_tot
+ display: table
+ width: 100%
+ .oe_timesheet_weekly_adding
+ display: table-cell
+ text-align: left
+ .oe_timesheet_weekly_tottot
+ display: table-cell
+ .oe_timesheet_weekly_add_row td
+ text-align: left
+ .oe_timesheet_weekly_add_row .oe_form_field_many2one
+ display: inline-block
+ width: 200px
+ .oe_timesheet_weekly_today
+ background: #fde
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 43c23951514..3bfca4c4aa2 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -5,7 +5,7 @@
-
+
@@ -26,29 +26,29 @@
-
+
Add
-
+
-
Add a Project
+
Add a Line
Total
-
+
-
+
From a76446b8c9f6a98a3d1aa985d9c0bc90ae092ac1 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 11:43:38 +0200
Subject: [PATCH 118/154] [IMP] Timesheets renamed tabs
bzr revid: fp@tinyerp.com-20121026094338-dezvb3a11hqigch0
---
addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index ac24cbcdc0c..a7e7bb6d097 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -98,11 +98,11 @@
-
+
-
+
From d87a8c05fd377e62ab5babaa61985845316efbcc Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Fri, 26 Oct 2012 11:54:36 +0200
Subject: [PATCH 119/154] [IMP] added some utils to qweb context
bzr revid: nicolas.vanhoren@openerp.com-20121026095436-3jyci78mgew9uz35
---
addons/web/static/src/js/coresetup.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js
index 1f1112df2f2..220b9b63d5c 100644
--- a/addons/web/static/src/js/coresetup.js
+++ b/addons/web/static/src/js/coresetup.js
@@ -530,7 +530,8 @@ instance.web.qweb.default_dict['__debug__'] = instance.session.debug; // Which o
instance.web.qweb.debug = instance.session.debug;
instance.web.qweb.default_dict = {
'_' : _,
- '_t' : instance.web._t
+ '_t' : instance.web._t,
+ 'JSON': JSON,
};
instance.web.qweb.preprocess_node = function() {
// Note that 'this' is the Qweb Node
From dbc1176d18e0b633c83312c39777984a97eb743c Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Fri, 26 Oct 2012 11:55:11 +0200
Subject: [PATCH 120/154] [IMP] hr_timesheet_sheet: in web part, made the
analytic account clickable
bzr revid: nicolas.vanhoren@openerp.com-20121026095511-d811qw4t6fognkep
---
.../hr_timesheet_sheet/static/src/js/timesheet.js | 13 +++++++++++++
.../hr_timesheet_sheet/static/src/xml/timesheet.xml | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index 7de235ec190..e64c4d602e8 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -4,6 +4,9 @@ openerp.hr_timesheet_sheet = function(instance) {
var _t = instance.web._t;
instance.hr_timesheet_sheet.WeeklyTimesheet = instance.web.form.FormWidget.extend(instance.web.form.ReinitializeWidgetMixin, {
+ events: {
+ "click .oe_timesheet_weekly_account a": "go_to",
+ },
init: function() {
this._super.apply(this, arguments);
this.set({
@@ -26,6 +29,16 @@ openerp.hr_timesheet_sheet = function(instance) {
this.render_drop = new instance.web.DropMisordered();
this.description_line = _t("/");
},
+ go_to: function(event) {
+ var id = JSON.parse($(event.target).data("id"));
+ this.do_action({
+ type: 'ir.actions.act_window',
+ res_model: "account.analytic.account",
+ res_id: id,
+ views: [[false, 'form']],
+ target: 'current'
+ });
+ },
query_sheets: function() {
var self = this;
if (self.updating)
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 3bfca4c4aa2..f75342c958e 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -15,7 +15,7 @@
Total
-
+
From f2c5b7f599a42983d77ffe3b072906720778a594 Mon Sep 17 00:00:00 2001
From: niv-openerp
Date: Fri, 26 Oct 2012 12:00:11 +0200
Subject: [PATCH 121/154] [IMP] avoid propagation of context when clicking on a
readonly m2o (could cause problems)
bzr revid: nicolas.vanhoren@openerp.com-20121026100011-inuk0tzz5cxw7dtr
---
addons/web/static/src/js/view_form.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 67c5fa0292e..896ace2c683 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3110,7 +3110,6 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
type: 'ir.actions.act_window',
res_model: self.field.relation,
res_id: self.get("value"),
- context: self.build_context(),
views: [[false, 'form']],
target: 'current'
});
From 030ff3fd739c830924564ae6fb2788eab14c8a4a Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 12:02:07 +0200
Subject: [PATCH 122/154] [IMP] timesheets imrpvoements
bzr revid: fp@tinyerp.com-20121026100207-yxbl87kx35to6blo
---
.../hr_timesheet_sheet/static/src/css/timesheet.css | 5 ++++-
.../hr_timesheet_sheet/static/src/css/timesheet.sass | 7 +++++--
.../hr_timesheet_sheet/static/src/xml/timesheet.xml | 12 ++++++++++++
.../wizard/hr_timesheet_current.py | 2 +-
4 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.css b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
index f504a0f4f10..36ea9a34db9 100644
--- a/addons/hr_timesheet_sheet/static/src/css/timesheet.css
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.css
@@ -1,5 +1,8 @@
@charset "utf-8";
-.openerp .oe_form_readonly .oe_timesheet_button_add {
+.openerp .oe_form_readonly .oe_timesheet_weekly .oe_timesheet_button_add {
+ display: none;
+}
+.openerp .oe_form_readonly .oe_timesheet_weekly div.oe_view_nocontent {
display: none;
}
.openerp .oe_timesheet_weekly {
diff --git a/addons/hr_timesheet_sheet/static/src/css/timesheet.sass b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
index 9c986517508..5e04271037c 100644
--- a/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
+++ b/addons/hr_timesheet_sheet/static/src/css/timesheet.sass
@@ -2,8 +2,11 @@
.openerp
.oe_form_readonly
- .oe_timesheet_button_add
- display: none
+ .oe_timesheet_weekly
+ .oe_timesheet_button_add
+ display: none
+ div.oe_view_nocontent
+ display: none
.oe_timesheet_weekly
overflow-x: auto
table
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index f75342c958e..667c7af23be 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -51,6 +51,18 @@
+
+
+
+ Click to add a project you worked on.
+
+ You will be able to register your working hours and
+ activities on these projects. You can also click on a
+ selected project/analytic account to setup the
+ invoicing options.
+
+
+
diff --git a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py
index 2af8792472e..652d5139288 100644
--- a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py
+++ b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py
@@ -36,7 +36,7 @@ class hr_timesheet_current_open(osv.osv_memory):
user_ids = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)], context=context)
if not len(user_ids):
raise osv.except_osv(_('Error!'), _('Please create an employee and associate it with this user.'))
- ids = ts.search(cr, uid, [('user_id','=',uid),('state','=','draft'),('date_from','<=',time.strftime('%Y-%m-%d')), ('date_to','>=',time.strftime('%Y-%m-%d'))], context=context)
+ ids = ts.search(cr, uid, [('user_id','=',uid),('state','in',('draft','new')),('date_from','<=',time.strftime('%Y-%m-%d')), ('date_to','>=',time.strftime('%Y-%m-%d'))], context=context)
if len(ids) > 1:
view_type = 'tree,form'
From 0537147d95a1f7b795e6043c7dbdc774dd8dd1b2 Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Fri, 26 Oct 2012 12:08:19 +0200
Subject: [PATCH 123/154] [IMP] expression.py: added tests for the in/not in
operators involving a many2many.
bzr revid: vmt@openerp.com-20121026100819-b2o4q9a082um6p2m
---
openerp/addons/base/tests/__init__.py | 6 +-
openerp/addons/base/tests/test_expression.py | 58 ++++++++++++++++++++
2 files changed, 62 insertions(+), 2 deletions(-)
create mode 100644 openerp/addons/base/tests/test_expression.py
diff --git a/openerp/addons/base/tests/__init__.py b/openerp/addons/base/tests/__init__.py
index 42fef2eb39d..409f9928c6f 100644
--- a/openerp/addons/base/tests/__init__.py
+++ b/openerp/addons/base/tests/__init__.py
@@ -1,5 +1,7 @@
-import test_ir_values, test_base
+import test_base, test_expression, test_ir_values
checks = [
- test_ir_values, test_base
+ test_base,
+ test_expression,
+ test_ir_values,
]
diff --git a/openerp/addons/base/tests/test_expression.py b/openerp/addons/base/tests/test_expression.py
new file mode 100644
index 00000000000..0bdd4180c0b
--- /dev/null
+++ b/openerp/addons/base/tests/test_expression.py
@@ -0,0 +1,58 @@
+import unittest2
+
+import openerp.tests.common as common
+
+class test_expression(common.TransactionCase):
+
+ def test_00(self):
+
+ registry, cr, uid = self.registry, self.cr, self.uid
+
+ categories = registry('res.partner.category')
+ cat_a = categories.create(cr, uid, {'name': 'test_expression_category_A'})
+ cat_b = categories.create(cr, uid, {'name': 'test_expression_category_B'})
+
+ partners = registry('res.partner')
+ a = partners.create(cr, uid, {'name': 'test_expression_partner_A', 'category_id': [(6, 0, [cat_a])]})
+ b = partners.create(cr, uid, {'name': 'test_expression_partner_B', 'category_id': [(6, 0, [cat_b])]})
+ ab = partners.create(cr, uid, {'name': 'test_expression_partner_AB', 'category_id': [(6, 0, [cat_a, cat_b])]})
+ c = partners.create(cr, uid, {'name': 'test_expression_partner_C'})
+
+ with_a = partners.search(cr, uid, [('category_id', 'in', [cat_a])])
+ self.assertEqual(set([a, ab]), set(with_a), "Search for category_id in cat_a failed.")
+
+ with_b = partners.search(cr, uid, [('category_id', 'in', [cat_b])])
+ self.assertEqual(set([ab, b]), set(with_b), "Search for category_id in cat_b failed.")
+
+ with_a_or_b = partners.search(cr, uid, [('category_id', 'in', [cat_a, cat_b])])
+ self.assertEqual(set([ab, a, b]), set(with_a_or_b), "Search for category_id contains cat_a or cat_b failed.")
+
+ with_a_and_b = partners.search(cr, uid, [('category_id', 'in', [cat_a]), ('category_id', 'in', [cat_b])])
+ self.assertEqual(set([ab]), set(with_a_and_b), "Search for category_id contains cat_a and cat_b failed.")
+
+ # Note it is the same as with_a_or_b above.
+ with_a_or_with_b = partners.search(cr, uid, ['|', ('category_id', 'in', [cat_a]), ('category_id', 'in', [cat_b])])
+ self.assertEqual(set([ab, a, b]), set(with_a_or_with_b), "Search for category_id contains cat_a or contains cat_b failed.")
+
+ without_a_or_b = partners.search(cr, uid, [('category_id', 'not in', [cat_a, cat_b])])
+ self.assertTrue(all(i not in without_a_or_b for i in [a, b, ab]), "Search for category_id doesn't contain cat_a or cat_b failed (1).")
+ self.assertTrue(c in without_a_or_b, "Search for category_id doesn't contain cat_a or cat_b failed (2).")
+
+ without_a_and_without_b = partners.search(cr, uid, [('category_id', 'not in', [cat_a]), ('category_id', 'not in', [cat_b])])
+ self.assertTrue(all(i not in without_a_and_without_b for i in [a, b, ab]), "Search for category_id doesn't contain cat_a and cat_b failed (1).")
+ self.assertTrue(c in without_a_and_without_b, "Search for category_id doesn't contain cat_a and cat_b failed (2).")
+
+ without_a = partners.search(cr, uid, [('category_id', 'not in', [cat_a])])
+ self.assertTrue(a not in without_a, "Search for category_id doesn't contain cat_a failed (1).")
+ self.assertTrue(ab not in without_a, "Search for category_id doesn't contain cat_a failed (2).")
+ self.assertTrue(set([b, c]).issubset(set(without_a)), "Search for category_id doesn't contain cat_a failed (3).")
+
+ without_b = partners.search(cr, uid, [('category_id', 'not in', [cat_b])])
+ self.assertTrue(b not in without_b, "Search for category_id doesn't contain cat_b failed (1).")
+ self.assertTrue(ab not in without_b, "Search for category_id doesn't contain cat_b failed (2).")
+ self.assertTrue(set([a, c]).issubset(set(without_b)), "Search for category_id doesn't contain cat_b failed (3).")
+
+ # We can't express the following.
+ # with_any_other_than_a = ...
+ # self.assertTrue(ab in with_any_other_than_a, "Search for category_id with any other than cat_a failed.")
+
From 458f6de18480d7af72700752aea54f29da39b312 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 12:12:41 +0200
Subject: [PATCH 124/154] [IMP] typo
bzr revid: fp@tinyerp.com-20121026101241-d7j0vaujc73go3bf
---
.../hr_timesheet_sheet/static/src/xml/timesheet.xml | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 667c7af23be..4390c7c6ed1 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -54,12 +54,16 @@
- Click to add a project you worked on.
+ Click to add projects/analytic accounts you worked on.
You will be able to register your working hours and
- activities on these projects. You can also click on a
- selected project/analytic account to setup the
- invoicing options.
+ activities.
+
+ By default, you record timesheets on analytic accounts.
+ But if an analytic account represents a customer
+ contract, you can change the type of the analytic
+ account to 'Contract or Project' to setup the invoicing
+ options.
From 56c1a398a08cb74b8bf4e02e4f2894777a313516 Mon Sep 17 00:00:00 2001
From: Vo Minh Thu
Date: Fri, 26 Oct 2012 13:01:09 +0200
Subject: [PATCH 125/154] [IMP] expression.py: added comments to the in/not in
many2many tests.
bzr revid: vmt@openerp.com-20121026110109-l212flw0p5cklc6p
---
openerp/addons/base/tests/test_expression.py | 28 +++++++++++++++-----
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/openerp/addons/base/tests/test_expression.py b/openerp/addons/base/tests/test_expression.py
index 0bdd4180c0b..5690cff443a 100644
--- a/openerp/addons/base/tests/test_expression.py
+++ b/openerp/addons/base/tests/test_expression.py
@@ -4,10 +4,12 @@ import openerp.tests.common as common
class test_expression(common.TransactionCase):
- def test_00(self):
+ def test_in_not_in_m2m(self):
registry, cr, uid = self.registry, self.cr, self.uid
+ # Create 4 partners with no category, or one or two categories (out of two categories).
+
categories = registry('res.partner.category')
cat_a = categories.create(cr, uid, {'name': 'test_expression_category_A'})
cat_b = categories.create(cr, uid, {'name': 'test_expression_category_B'})
@@ -18,41 +20,53 @@ class test_expression(common.TransactionCase):
ab = partners.create(cr, uid, {'name': 'test_expression_partner_AB', 'category_id': [(6, 0, [cat_a, cat_b])]})
c = partners.create(cr, uid, {'name': 'test_expression_partner_C'})
+ # The tests.
+
+ # On a one2many or many2many field, `in` should be read `contains` (and
+ # `not in` should be read `doesn't contain`.
+
with_a = partners.search(cr, uid, [('category_id', 'in', [cat_a])])
self.assertEqual(set([a, ab]), set(with_a), "Search for category_id in cat_a failed.")
with_b = partners.search(cr, uid, [('category_id', 'in', [cat_b])])
self.assertEqual(set([ab, b]), set(with_b), "Search for category_id in cat_b failed.")
+ # Partners with the category A or the category B.
with_a_or_b = partners.search(cr, uid, [('category_id', 'in', [cat_a, cat_b])])
self.assertEqual(set([ab, a, b]), set(with_a_or_b), "Search for category_id contains cat_a or cat_b failed.")
- with_a_and_b = partners.search(cr, uid, [('category_id', 'in', [cat_a]), ('category_id', 'in', [cat_b])])
- self.assertEqual(set([ab]), set(with_a_and_b), "Search for category_id contains cat_a and cat_b failed.")
-
- # Note it is the same as with_a_or_b above.
+ # Show that `contains list` is really `contains element or contains element`.
with_a_or_with_b = partners.search(cr, uid, ['|', ('category_id', 'in', [cat_a]), ('category_id', 'in', [cat_b])])
self.assertEqual(set([ab, a, b]), set(with_a_or_with_b), "Search for category_id contains cat_a or contains cat_b failed.")
+ # If we change the OR in AND...
+ with_a_and_b = partners.search(cr, uid, [('category_id', 'in', [cat_a]), ('category_id', 'in', [cat_b])])
+ self.assertEqual(set([ab]), set(with_a_and_b), "Search for category_id contains cat_a and cat_b failed.")
+
+ # Partners without category A and without category B.
without_a_or_b = partners.search(cr, uid, [('category_id', 'not in', [cat_a, cat_b])])
self.assertTrue(all(i not in without_a_or_b for i in [a, b, ab]), "Search for category_id doesn't contain cat_a or cat_b failed (1).")
self.assertTrue(c in without_a_or_b, "Search for category_id doesn't contain cat_a or cat_b failed (2).")
+ # Show that `doesn't contain list` is really `doesn't contain element and doesn't contain element`.
without_a_and_without_b = partners.search(cr, uid, [('category_id', 'not in', [cat_a]), ('category_id', 'not in', [cat_b])])
self.assertTrue(all(i not in without_a_and_without_b for i in [a, b, ab]), "Search for category_id doesn't contain cat_a and cat_b failed (1).")
self.assertTrue(c in without_a_and_without_b, "Search for category_id doesn't contain cat_a and cat_b failed (2).")
+ # We can exclude any partner containing the category A.
without_a = partners.search(cr, uid, [('category_id', 'not in', [cat_a])])
self.assertTrue(a not in without_a, "Search for category_id doesn't contain cat_a failed (1).")
self.assertTrue(ab not in without_a, "Search for category_id doesn't contain cat_a failed (2).")
self.assertTrue(set([b, c]).issubset(set(without_a)), "Search for category_id doesn't contain cat_a failed (3).")
+ # (Obviously we can do the same for cateory B.)
without_b = partners.search(cr, uid, [('category_id', 'not in', [cat_b])])
self.assertTrue(b not in without_b, "Search for category_id doesn't contain cat_b failed (1).")
self.assertTrue(ab not in without_b, "Search for category_id doesn't contain cat_b failed (2).")
self.assertTrue(set([a, c]).issubset(set(without_b)), "Search for category_id doesn't contain cat_b failed (3).")
- # We can't express the following.
+ # We can't express the following: Partners with a category different than A.
# with_any_other_than_a = ...
- # self.assertTrue(ab in with_any_other_than_a, "Search for category_id with any other than cat_a failed.")
+ # self.assertTrue(a not in with_any_other_than_a, "Search for category_id with any other than cat_a failed (1).")
+ # self.assertTrue(ab in with_any_other_than_a, "Search for category_id with any other than cat_a failed (2).")
From 08db8bbf0f015fd710e1ce79a55fb8faf143f6d5 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 15:05:05 +0200
Subject: [PATCH 126/154] [IMP] useability
bzr revid: fp@tinyerp.com-20121026130505-7pdeq2bq3nne7h01
---
addons/web/static/src/css/base.css | 3 +++
addons/web/static/src/css/base.sass | 2 ++
2 files changed, 5 insertions(+)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index c3aac6089f0..c18c4d89581 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1326,6 +1326,9 @@
.openerp .oe_view_manager .oe_view_manager_body {
height: inherit;
}
+.openerp .oe_view_manager .oe_view_manager_body .oe_view_manager_view_list {
+ min-height: 132px;
+}
.openerp .oe_view_manager .oe_view_manager_view_kanban {
height: inherit;
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index cf1cd38aad2..8b24e6112ae 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -1070,6 +1070,8 @@ $sheet-max-width: 860px
.oe_view_manager
.oe_view_manager_body
height: inherit
+ .oe_view_manager_view_list
+ min-height: 132px
.oe_view_manager_view_kanban
height: inherit
From a414040f8058ccc0c61312decfff12a19fc7ce56 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 16:37:41 +0200
Subject: [PATCH 127/154] [FIX] account visible when required
bzr revid: fp@tinyerp.com-20121026143741-8e46e34v2ngej39w
---
addons/account_voucher/voucher_sales_purchase_view.xml | 4 ++--
addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index 0441424cc33..bda9b9c2532 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -89,7 +89,7 @@
-
+
@@ -243,7 +243,7 @@
-
+
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index a7e7bb6d097..c41aae4c21f 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -108,7 +108,7 @@
-
+
@@ -153,9 +153,9 @@
-
-
-
+
+
+
From 0e3f06bf4e51d304e7b40cd92d353ac9a9d03ba3 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 16:52:22 +0200
Subject: [PATCH 128/154] fix
bzr revid: fp@tinyerp.com-20121026145222-q3k000saytdg9u2s
---
addons/web/static/src/css/base.css | 3 ---
addons/web/static/src/css/base.sass | 2 --
2 files changed, 5 deletions(-)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index c18c4d89581..c3aac6089f0 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1326,9 +1326,6 @@
.openerp .oe_view_manager .oe_view_manager_body {
height: inherit;
}
-.openerp .oe_view_manager .oe_view_manager_body .oe_view_manager_view_list {
- min-height: 132px;
-}
.openerp .oe_view_manager .oe_view_manager_view_kanban {
height: inherit;
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 8b24e6112ae..cf1cd38aad2 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -1070,8 +1070,6 @@ $sheet-max-width: 860px
.oe_view_manager
.oe_view_manager_body
height: inherit
- .oe_view_manager_view_list
- min-height: 132px
.oe_view_manager_view_kanban
height: inherit
From 00caf72c6c1d679935f4f1359eca83762f40adc4 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 17:28:50 +0200
Subject: [PATCH 129/154] [IMP] CSS
bzr revid: fp@tinyerp.com-20121026152850-bevh0selibxvsixm
---
addons/web/static/src/css/base.css | 3 +++
addons/web/static/src/css/base.sass | 3 +++
2 files changed, 6 insertions(+)
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index c3aac6089f0..cbbd8e37f6c 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -2519,6 +2519,9 @@
.openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
display: none !important;
}
+.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_view_list, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_view_list {
+ min-height: 132px;
+}
.openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
font-weight: bold;
}
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index cf1cd38aad2..2ef9a8a451d 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -1983,6 +1983,9 @@ $sheet-max-width: 860px
> .oe_view_manager
.oe_list_pager_single_page
display: none !important
+ .oe_view_manager_view_list
+ min-height: 132px
+
.oe_form_field_one2many_list_row_add
font-weight: bold
.oe_list_content
From e6159de18f912832acffb3b5cf50537766e7df1c Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 17:34:36 +0200
Subject: [PATCH 130/154] [IMP] useability
bzr revid: fp@tinyerp.com-20121026153436-v3y2i49iarpoknok
---
addons/sale/sale.py | 2 +-
addons/sale/sale_view.xml | 5 +----
addons/sale_margin/sale_margin_view.xml | 9 +++------
3 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 9c7f07edb25..7c77e239abb 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -202,7 +202,7 @@ class sale_order(osv.osv):
- With 'Before Delivery', a draft invoice is created, and it must be paid before delivery."""),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Pricelist for current sales order."),
'currency_id': fields.related('pricelist_id', 'currency_id', type="many2one", relation="res.currency", readonly=True, required=True),
- 'project_id': fields.many2one('account.analytic.account', 'Contract/Analytic Account', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="The analytic account related to a sales order."),
+ 'project_id': fields.many2one('account.analytic.account', 'Contract / Analytic', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="The analytic account related to a sales order."),
'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}),
'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoices', readonly=True, help="This is the list of invoices that have been generated for this sales order. The same sales order may have been invoiced in several times (by line for example)."),
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index a5d7b9d3af2..bdc687f6e87 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -286,11 +286,8 @@
-
-
-
-
+
diff --git a/addons/sale_margin/sale_margin_view.xml b/addons/sale_margin/sale_margin_view.xml
index 6aa34bae26c..88647ea3c46 100644
--- a/addons/sale_margin/sale_margin_view.xml
+++ b/addons/sale_margin/sale_margin_view.xml
@@ -7,12 +7,9 @@
sale.order
-
-
-
-
-
-
+
+
+
From 2aea3eae850f4f2cc1bf79df9318c78838bdbed0 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:26:40 +0200
Subject: [PATCH 131/154] [IMP] notes
bzr revid: fp@tinyerp.com-20121026162640-0aury3pwyc5bo5nl
---
addons/note/note_view.xml | 2 +-
addons/note/static/src/css/note.css | 10 ++++++++++
addons/note/static/src/css/note.sass | 24 ++++++++++++++++--------
3 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml
index 2f85e832b7d..f99a028c4ab 100644
--- a/addons/note/note_view.xml
+++ b/addons/note/note_view.xml
@@ -117,7 +117,7 @@
-
+
diff --git a/addons/note/static/src/css/note.css b/addons/note/static/src/css/note.css
index d4b5f3d8d64..43bc455e04a 100644
--- a/addons/note/static/src/css/note.css
+++ b/addons/note/static/src/css/note.css
@@ -3,6 +3,16 @@
text-decoration: line-through;
}
+.openerp .oe_form .oe_form_field.oe_memo {
+ margin: 0 -16px 0 -16px;
+ padding: 0px;
+ width: 100%;
+ min-height: 200px;
+}
+.openerp .oe_form .oe_form_field.oe_memo .cleditorMain {
+ border: none;
+ padding: 0px;
+}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_0 {
box-shadow: 0px 4px 9px rgba(48, 48, 48, 0.15);
}
diff --git a/addons/note/static/src/css/note.sass b/addons/note/static/src/css/note.sass
index cc4e44f6765..ff39ce8708c 100644
--- a/addons/note/static/src/css/note.sass
+++ b/addons/note/static/src/css/note.sass
@@ -1,9 +1,5 @@
@charset "utf-8"
-.oe_kanban_column
- .note_text_line_through
- text-decoration: line-through
-
@mixin rotate($a)
-webkit-transform: rotate($a)
-o-transform: rotate($a)
@@ -15,8 +11,20 @@
-ms-transition: $what $duration cubic-bezier(0.5,0,0.5,1)
transition: $what $duration cubic-bezier(0.5,0,0.5,1)
+.oe_kanban_column
+ .note_text_line_through
+ text-decoration: line-through
.openerp
+ .oe_form
+ .oe_form_field.oe_memo
+ margin: 0 -16px 0 -16px
+ padding: 0px
+ width: 100%
+ min-height: 200px
+ .cleditorMain
+ border: none
+ padding: 0px
.oe_kanban_view.oe_notes
.oe_kanban_card_fancy.oe_kanban_color_0
box-shadow: 0px 4px 9px rgba(48,48,48,0.15)
@@ -39,7 +47,7 @@
.oe_kanban_card_fancy.oe_kanban_color_9
box-shadow: 0px 4px 9px rgba(102,0,116,0.15)
.oe_kanban_record
- .oe_kanban_card_fancy
+ .oe_kanban_card_fancy
text-shadow: none
border-radius: 2px
padding: 12px
@@ -48,9 +56,9 @@
padding-bottom: 16px
margin-bottom: 16px
@include rotate(-2deg)
- @include transition($what:all, $duration:300ms)
+ @include transition(all, 300ms)
.oe_kanban_record:nth-of-type(even)
- .oe_kanban_card_fancy
+ .oe_kanban_card_fancy
@include rotate(1deg)
.oe_kanban_record:nth-of-type(3n)
.oe_kanban_card_fancy
@@ -87,7 +95,7 @@
position: relative
z-index: 5
border-color: rgba(0,0,0,0.4)
- @include transition($what:all, $duration:150ms)
+ @include transition(all, 150ms)
-webkit-transform: rotate(0) !important
-o-transform: rotate(0) !important
-moz-transform: rotate(0) !important
From 71db67ef583595dd7fc891210afb0273cad4682d Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:37:34 +0200
Subject: [PATCH 132/154] [IMP] notes
bzr revid: fp@tinyerp.com-20121026163734-ior9n3hz2dolabdx
---
addons/base_calendar/crm_meeting_view.xml | 3 ---
addons/note/note_view.xml | 14 ++++++++++++++
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml
index 659145e7c16..5292ef3c3ed 100644
--- a/addons/base_calendar/crm_meeting_view.xml
+++ b/addons/base_calendar/crm_meeting_view.xml
@@ -328,9 +328,6 @@
-
-
diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml
index f99a028c4ab..68fd36669cc 100644
--- a/addons/note/note_view.xml
+++ b/addons/note/note_view.xml
@@ -176,6 +176,20 @@
kanban,tree,form
{'search_default_open_true':True}
+
+
+ Click to add a personnal note.
+
+ Use notes to organize personnal tasks or notes. All
+ notes are private; no one else will be able to see them. But
+ you can share some notes to other people by inviting followers
+ on the note. (very usefull for meeting minutes, especially if
+ you activate the pad feature for collaborative writings).
+
+ You can customize how you process your notes/tasks by adding,
+ removing or modifying columns.
+
+
From 88110c04b22e0f9240db753e0a5917f29b8a21ee Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:43:11 +0200
Subject: [PATCH 133/154] [ADD] makefile
bzr revid: fp@tinyerp.com-20121026164311-ecvh9lqmjapzp6qw
---
addons/note/static/src/css/Makefile | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 addons/note/static/src/css/Makefile
diff --git a/addons/note/static/src/css/Makefile b/addons/note/static/src/css/Makefile
new file mode 100644
index 00000000000..17bf009479e
--- /dev/null
+++ b/addons/note/static/src/css/Makefile
@@ -0,0 +1,3 @@
+note.css: note.sass
+ sass --trace -t expanded note.sass note.css
+
From 11a8170b560a91ff7de78b06405894ccf1f383b4 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:43:27 +0200
Subject: [PATCH 134/154] [IMP] html fields with 100%
bzr revid: fp@tinyerp.com-20121026164327-xh3gwp96lpysq9hm
---
addons/web/static/src/js/view_form.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 896ace2c683..92e636b2216 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -2539,7 +2539,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc
if (! this.get("effective_readonly")) {
self._updating_editor = false;
this.$textarea = this.$el.find('textarea');
- var width = ((this.node.attrs || {}).editor_width || 468);
+ var width = ((this.node.attrs || {}).editor_width || '100%');
var height = ((this.node.attrs || {}).editor_height || 250);
this.$textarea.cleditor({
width: width, // width not including margins, borders or padding
From 7744f311709bcb4056ce2198842e3b3a41946e23 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:53:10 +0200
Subject: [PATCH 135/154] [IMP] project kanban view
bzr revid: fp@tinyerp.com-20121026165310-bigia18opgsdd0lx
---
addons/project/project_view.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 0de5e1773b1..08ea2881d4d 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -518,13 +518,13 @@
-
+
oe_kanban_text_red
-
-
+
+
7
7
From b93a8573042cd7a00f22c0882c0683a1d40a9039 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:57:37 +0200
Subject: [PATCH 136/154] [FIX]
bzr revid: fp@tinyerp.com-20121026165737-ndqb9qzrur1szt2j
---
addons/project_timesheet/project_timesheet_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index a4e2a38a3cc..1cb2a4b8702 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -15,7 +15,7 @@
Timesheets
+ name="open_timesheets" type="object"> Hours
From 4ec467ff29e5fb5a6632aadf039f078b382d3513 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 18:58:39 +0200
Subject: [PATCH 137/154] [IMP] css
bzr revid: fp@tinyerp.com-20121026165839-79xay4e5rycdu6zp
---
addons/web_kanban/static/src/css/kanban.css | 1 +
addons/web_kanban/static/src/css/kanban.sass | 1 +
2 files changed, 2 insertions(+)
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css
index 837d11949bc..669a5881e6e 100644
--- a/addons/web_kanban/static/src/css/kanban.css
+++ b/addons/web_kanban/static/src/css/kanban.css
@@ -284,6 +284,7 @@
}
.openerp .oe_kanban_view .oe_kanban_action_a {
text-decoration: none;
+ margin-right: 10px;
}
.openerp .oe_kanban_view .oe_kanban_action_a:hover {
text-decoration: none;
diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass
index aea5d6bc8c0..143e31ee480 100644
--- a/addons/web_kanban/static/src/css/kanban.sass
+++ b/addons/web_kanban/static/src/css/kanban.sass
@@ -271,6 +271,7 @@
margin: 0
.oe_kanban_action_a
text-decoration: none
+ margin-right: 10px
&:hover
text-decoration: none
.oe_kanban_table
From baac47b4730d3452b1dd2fb3ee83e344f9513925 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 19:09:04 +0200
Subject: [PATCH 138/154] fix
bzr revid: fp@tinyerp.com-20121026170904-uqvird49cqdykd2w
---
addons/crm/__openerp__.py | 1 -
addons/crm/crm_meeting_shortcut_data.xml | 13 -------------
2 files changed, 14 deletions(-)
delete mode 100644 addons/crm/crm_meeting_shortcut_data.xml
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index 9a90a8022b6..03885f541d0 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -86,7 +86,6 @@ Dashboard for CRM will include:
'crm_lead_menu.xml',
'crm_meeting_menu.xml',
- 'crm_meeting_shortcut_data.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
diff --git a/addons/crm/crm_meeting_shortcut_data.xml b/addons/crm/crm_meeting_shortcut_data.xml
deleted file mode 100644
index 45488da8a82..00000000000
--- a/addons/crm/crm_meeting_shortcut_data.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- Meetings
- ir.ui.menu
-
-
-
-
-
-
From f201ee21c5a461cbd93bee192952c89b561baf71 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Fri, 26 Oct 2012 19:17:01 +0200
Subject: [PATCH 139/154] [FIX] notes: spellchecking
bzr revid: odo@openerp.com-20121026171701-j5r9xc8kk6xwb1ad
---
addons/note/note_view.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml
index 68fd36669cc..5c3a77b7626 100644
--- a/addons/note/note_view.xml
+++ b/addons/note/note_view.xml
@@ -178,12 +178,12 @@
{'search_default_open_true':True}
- Click to add a personnal note.
+ Click to add a personal note.
- Use notes to organize personnal tasks or notes. All
- notes are private; no one else will be able to see them. But
- you can share some notes to other people by inviting followers
- on the note. (very usefull for meeting minutes, especially if
+ Use notes to organize personal tasks or notes. All
+ notes are private; no one else will be able to see them. However
+ you can share some notes with other people by inviting followers
+ on the note. (Useful for meeting minutes, especially if
you activate the pad feature for collaborative writings).
You can customize how you process your notes/tasks by adding,
From ff918d5b2f9a6cf6fecf48523e24b67ceecc1d6b Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Fri, 26 Oct 2012 22:13:32 +0200
Subject: [PATCH 140/154] fix
bzr revid: fp@openerp.com-20121026201332-jiujrnnxkomm58zs
---
addons/crm/crm_demo.xml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/addons/crm/crm_demo.xml b/addons/crm/crm_demo.xml
index dde3e63cc4a..203193dc3bc 100644
--- a/addons/crm/crm_demo.xml
+++ b/addons/crm/crm_demo.xml
@@ -6,13 +6,6 @@
-
- Meetings
- ir.ui.menu
-
-
-
-
Sales Marketing Department
SMD
From 80fb0f7f8174493bcdad627f2449bbbde46c4781 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Sat, 27 Oct 2012 05:15:46 +0000
Subject: [PATCH 141/154] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121027045930-uze98btnynog2b5r
bzr revid: launchpad_translations_on_behalf_of_openerp-20121027051546-nvi5ltrk3o8s6j4z
---
addons/account/i18n/ru.po | 478 ++++++++++++++++++++---------------
addons/board/i18n/ru.po | 14 +-
addons/mail/i18n/hu.po | 63 +++--
addons/mail/i18n/ru.po | 154 ++++++-----
addons/web/i18n/hu.po | 8 +-
addons/web_kanban/i18n/ru.po | 16 +-
6 files changed, 422 insertions(+), 311 deletions(-)
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index c194906a978..82c89ea48a1 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-08-17 11:07+0000\n"
+"PO-Revision-Date: 2012-10-26 09:03+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-27 04:59+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: account
#: view:account.invoice.report:0
@@ -38,6 +38,8 @@ msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
msgstr ""
+"Определяет порядок вывода в отчёте 'Учет \\ Отчётность \\ Общая отчётность \\"
+" Налоги \\ Отчёт по налогам'"
#. module: account
#: view:account.move.reconcile:0
@@ -81,7 +83,7 @@ msgstr "Определение наследников"
#: code:addons/account/account_bank_statement.py:302
#, python-format
msgid "Journal item \"%s\" is not valid."
-msgstr ""
+msgstr "Недопустимый элемент журнала \"%s\""
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
@@ -118,6 +120,8 @@ msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
+"Ошибка настройки! Выбранная валюта должна соответствовать валюте счетов по "
+"умолчанию."
#. module: account
#: report:account.invoice:0
@@ -141,6 +145,7 @@ msgstr "Сверить"
#: field:account.move,ref:0
#: field:account.move.line,ref:0
#: field:account.subscription,ref:0
+#: xsl:account.transfer:0
msgid "Reference"
msgstr "Ссылка"
@@ -159,16 +164,16 @@ msgstr ""
"не удаляя его."
#. module: account
-#: code:addons/account/account_invoice.py:1428
+#: code:addons/account/account_invoice.py:1430
#, python-format
msgid "Warning!"
msgstr "Предупреждение!"
#. module: account
-#: code:addons/account/account.py:3112
+#: code:addons/account/account.py:3129
#, python-format
msgid "Miscellaneous Journal"
-msgstr ""
+msgstr "Смешанный журнал"
#. module: account
#: field:account.fiscal.position.account,account_src_id:0
@@ -229,7 +234,7 @@ msgstr ""
"налога появился в счетах-фактурах"
#. module: account
-#: code:addons/account/account_invoice.py:1241
+#: code:addons/account/account_invoice.py:1254
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr "Счет '%s' оплачивается частично: %s%s из %s%s (%s%s остаток)"
@@ -245,7 +250,7 @@ msgid "Belgian Reports"
msgstr "Бельгийские отчеты"
#. module: account
-#: code:addons/account/account_move_line.py:1200
+#: code:addons/account/account_move_line.py:1215
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "В не можете добавить/исправить проводки в закрытом журнале"
@@ -293,10 +298,11 @@ msgid "St."
msgstr "ул."
#. module: account
-#: code:addons/account/account_invoice.py:551
+#: code:addons/account/account_invoice.py:560
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
+"Позиция счёта-фактуры счёта компании не соответствует компании счёта-фактуры."
#. module: account
#: field:account.journal.column,field:0
@@ -344,6 +350,9 @@ msgid ""
"leave the automatic formatting, it will be computed based on the financial "
"reports hierarchy (auto-computed field 'level')."
msgstr ""
+"Здесь вы можете задать формат для вывода этой записи. Если вы оставите "
+"автоформатирование, оно будет вычислено на основе иерархии финансовых "
+"отчётов (автоподсчитанное поле 'уровень')."
#. module: account
#: view:account.installer:0
@@ -373,7 +382,7 @@ msgstr ""
#. module: account
#: constraint:account.move.line:0
msgid "You can not create journal items on an account of type view."
-msgstr ""
+msgstr "Нельзя создать элемент журнала по счету с типом вид."
#. module: account
#: model:ir.model,name:account.model_account_tax_template
@@ -547,7 +556,7 @@ msgstr "Название компании должно быть уникальн
#. module: account
#: model:ir.model,name:account.model_account_invoice_refund
msgid "Invoice Refund"
-msgstr ""
+msgstr "Возмещение по счёту-фактуре"
#. module: account
#: report:account.overdue:0
@@ -584,8 +593,10 @@ msgid "The accountant confirms the statement."
msgstr "Бухгалтер подтверждает документ."
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
@@ -625,7 +636,7 @@ msgstr "Последовательности"
#: field:account.financial.report,account_report_id:0
#: selection:account.financial.report,type:0
msgid "Report Value"
-msgstr ""
+msgstr "Значение отчёта"
#. module: account
#: view:account.fiscal.position.template:0
@@ -643,10 +654,10 @@ msgid "Main Sequence must be different from current !"
msgstr "Основная нумерация должна отличаться от текущей!"
#. module: account
-#: code:addons/account/account_move_line.py:1251
+#: code:addons/account/account_move_line.py:1266
#, python-format
msgid "No period found or more than one period found for the given date."
-msgstr ""
+msgstr "Для заданной даты период не найден или найдено более одного периода."
#. module: account
#: field:account.invoice.tax,tax_amount:0
@@ -654,7 +665,7 @@ msgid "Tax Code Amount"
msgstr "Объем по коду налога"
#. module: account
-#: code:addons/account/account.py:3116
+#: code:addons/account/account.py:3133
#, python-format
msgid "SAJ"
msgstr "КнП"
@@ -681,8 +692,8 @@ msgid "Journal Period"
msgstr "Период журнала"
#. module: account
-#: code:addons/account/account_move_line.py:750
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:766
+#: code:addons/account/account_move_line.py:819
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -694,6 +705,8 @@ msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
+"Дата проводки в журнале не в определённом периоде! Вы должны сменить дату "
+"или удалить это ограничение из журнала."
#. module: account
#: model:ir.model,name:account.model_account_report_general_ledger
@@ -728,7 +741,7 @@ msgstr "Журнал продаж в этом году"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "Display children with hierarchy"
-msgstr ""
+msgstr "Показ подчинённость с иерархией"
#. module: account
#: selection:account.payment.term.line,value:0
@@ -751,7 +764,7 @@ msgstr "Аналитические проводки по строкам"
#. module: account
#: field:account.invoice.refund,filter_refund:0
msgid "Refund Method"
-msgstr ""
+msgstr "Способ возмещения"
#. module: account
#: code:addons/account/wizard/account_change_currency.py:38
@@ -760,6 +773,7 @@ msgid "You can only change currency for Draft Invoice !"
msgstr "Вы можете изменить валюту только в черновике счета !"
#. module: account
+#: model:ir.actions.report.xml,name:account.account_financial_report
#: model:ir.ui.menu,name:account.menu_account_report
msgid "Financial Report"
msgstr "Финансовый отчет"
@@ -775,12 +789,13 @@ msgstr "Финансовый отчет"
#: view:account.journal:0
#: field:account.journal,type:0
#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
#: field:report.invoice.created,type:0
msgid "Type"
msgstr "Тип"
#. module: account
-#: code:addons/account/account_invoice.py:738
+#: code:addons/account/account_invoice.py:747
#, python-format
msgid ""
"Taxes are missing!\n"
@@ -908,12 +923,13 @@ msgid "Create 3 Months Periods"
msgstr "Создать квартальные периоды"
#. module: account
+#: report:account.aged_trial_balance:0
#: report:account.overdue:0
msgid "Due"
msgstr "Срок"
#. module: account
-#: code:addons/account/account.py:1345
+#: code:addons/account/account.py:1353
#, python-format
msgid ""
"You cannot validate this journal entry because account \"%s\" does not "
@@ -994,7 +1010,7 @@ msgstr ""
"содержать базовую сумму (без налога)"
#. module: account
-#: code:addons/account/account.py:2596
+#: code:addons/account/account.py:2613
#, python-format
msgid "I can not locate a parent code for the template account!"
msgstr ""
@@ -1027,10 +1043,10 @@ msgid "Code"
msgstr "Код"
#. module: account
-#: code:addons/account/account.py:2268
+#: code:addons/account/account.py:2285
#: code:addons/account/account_bank_statement.py:357
#: code:addons/account/account_invoice.py:73
-#: code:addons/account/account_invoice.py:688
+#: code:addons/account/account_invoice.py:697
#: code:addons/account/account_move_line.py:173
#, python-format
msgid "No Analytic Journal !"
@@ -1094,7 +1110,7 @@ msgstr ""
"информации о счете и его особенностях."
#. module: account
-#: code:addons/account/account_move_line.py:842
+#: code:addons/account/account_move_line.py:856
#, python-format
msgid ""
"You have to provide an account for the write off/exchange difference entry !"
@@ -1142,7 +1158,7 @@ msgstr ""
#. module: account
#: model:account.account.type,name:account.data_account_type_bank
#: selection:account.bank.accounts.wizard,account_type:0
-#: code:addons/account/account.py:3003
+#: code:addons/account/account.py:3020
#, python-format
msgid "Bank"
msgstr "Банковский"
@@ -1239,7 +1255,7 @@ msgid "The move of this entry line."
msgstr "Операция этой проводки"
#. module: account
-#: code:addons/account/account_move_line.py:1302
+#: code:addons/account/account_move_line.py:1317
#, python-format
msgid ""
"You can not use this general account in this journal, check the tab 'Entry "
@@ -1260,7 +1276,7 @@ msgid "Entry Label"
msgstr "Метка проводки"
#. module: account
-#: code:addons/account/account.py:1129
+#: code:addons/account/account.py:1136
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr "Вы не можете изменить/удалить журнал с записями за этот период !"
@@ -1345,14 +1361,15 @@ msgid "Taxes"
msgstr "Налоги"
#. module: account
-#: code:addons/account/wizard/account_financial_report.py:69
-#: code:addons/account/wizard/account_report_common.py:144
+#: code:addons/account/wizard/account_financial_report.py:70
+#: code:addons/account/wizard/account_report_common.py:145
#, python-format
msgid "Select a starting and an ending period"
msgstr "Выберите начало и окончание периода"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
+#: model:ir.actions.act_window,name:account.action_account_report_pl
msgid "Profit and Loss"
msgstr "Прибыли и убытки"
@@ -1407,6 +1424,7 @@ msgid "Journal Items Analysis"
msgstr "Анализ элементов журнала"
#. module: account
+#: report:account.aged_trial_balance:0
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "Контрагенты"
@@ -1431,8 +1449,10 @@ msgid "Central Journal"
msgstr "Центральный журнал"
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.partner.balance,display_partner:0
#: selection:account.report.general.ledger,display_account:0
msgid "With balance is not equal to 0"
@@ -1666,6 +1686,7 @@ msgid "Separated Journal Sequences"
msgstr "Раздельные нумерации журнала"
#. module: account
+#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "Ответственный"
@@ -1696,7 +1717,7 @@ msgid "Year Sum"
msgstr "Годовая сумма"
#. module: account
-#: code:addons/account/account_invoice.py:1429
+#: code:addons/account/account_invoice.py:1431
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
@@ -1774,7 +1795,7 @@ msgid "Customer Ref:"
msgstr "Ссылка на клиента:"
#. module: account
-#: code:addons/account/account_cash_statement.py:292
+#: code:addons/account/account_cash_statement.py:293
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr "Пользователь %s не имеет прав доступа к журналу %s !"
@@ -1998,7 +2019,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Journal Items related to a sale journal."
-msgstr ""
+msgstr "Элементы журнала аналитика связанные с журналом продаж"
#. module: account
#: selection:account.financial.report,style_overwrite:0
@@ -2103,7 +2124,7 @@ msgid "Pro-forma"
msgstr "Проформа"
#. module: account
-#: code:addons/account/account.py:1461
+#: code:addons/account/account.py:1478
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2133,7 +2154,7 @@ msgid "Search Chart of Account Templates"
msgstr "Искать шаблоны планов счетов"
#. module: account
-#: code:addons/account/account_move_line.py:1277
+#: code:addons/account/account_move_line.py:1292
#, python-format
msgid ""
"Can not create an automatic sequence for this piece!\n"
@@ -2185,7 +2206,7 @@ msgid "Description"
msgstr "Описание"
#. module: account
-#: code:addons/account/account.py:3119
+#: code:addons/account/account.py:3136
#, python-format
msgid "ECNJ"
msgstr ""
@@ -2204,7 +2225,7 @@ msgid "Income Account"
msgstr "Cчёт доходов и расходов"
#. module: account
-#: code:addons/account/account_invoice.py:370
+#: code:addons/account/account_invoice.py:379
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr "Не определен журнал покупок / продаж."
@@ -2244,6 +2265,7 @@ msgstr "Шаблон продукта"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,fiscalyear_id:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,fiscalyear_id:0
#: report:account.central.journal:0
#: field:account.central.journal,fiscalyear_id:0
@@ -2253,6 +2275,7 @@ msgstr "Шаблон продукта"
#: field:account.common.report,fiscalyear_id:0
#: view:account.entries.report:0
#: field:account.entries.report,fiscalyear_id:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: field:account.general.journal,fiscalyear_id:0
@@ -2303,7 +2326,7 @@ msgid "Account Line"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1468
+#: code:addons/account/account.py:1485
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -2336,7 +2359,7 @@ msgid "Main Sequence"
msgstr "Основная Последовательность"
#. module: account
-#: code:addons/account/account_bank_statement.py:402
+#: code:addons/account/account_bank_statement.py:403
#, python-format
msgid ""
"In order to delete a bank statement, you must first cancel it to delete "
@@ -2410,7 +2433,7 @@ msgid "Account Tax Code"
msgstr "Код налогового счёта"
#. module: account
-#: code:addons/account/account_invoice.py:572
+#: code:addons/account/account_invoice.py:581
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2502,7 +2525,7 @@ msgid "Account Model Entries"
msgstr "Проводки модели счета"
#. module: account
-#: code:addons/account/account.py:3117
+#: code:addons/account/account.py:3134
#, python-format
msgid "EXJ"
msgstr "ЖР"
@@ -2567,7 +2590,6 @@ msgid "Account move line reconcile (writeoff)"
msgstr ""
#. module: account
-#: model:account.account.type,name:account.account_type_tax
#: report:account.invoice:0
#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
@@ -2599,7 +2621,7 @@ msgid "Accounts"
msgstr "Счета"
#. module: account
-#: code:addons/account/account_invoice.py:369
+#: code:addons/account/account_invoice.py:378
#, python-format
msgid "Configuration Error!"
msgstr "Ошибка конфигурации!"
@@ -2721,6 +2743,7 @@ msgstr ""
#. module: account
#: view:account.aged.trial.balance:0
#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
+#: model:ir.actions.report.xml,name:account.account_aged_partner_balance
#: model:ir.ui.menu,name:account.menu_aged_trial_balance
msgid "Aged Partner Balance"
msgstr "Баланс партнера по периодам"
@@ -2772,14 +2795,14 @@ msgid "This wizard will create recurring accounting entries"
msgstr "Этот мастер создаст повторяющиеся бухгалтерские проводки"
#. module: account
-#: code:addons/account/account.py:1321
+#: code:addons/account/account.py:1329
#, python-format
msgid "No sequence defined on the journal !"
msgstr "Нумерация в журнале не определена !"
#. module: account
-#: code:addons/account/account.py:2268
-#: code:addons/account/account_invoice.py:688
+#: code:addons/account/account.py:2285
+#: code:addons/account/account_invoice.py:697
#: code:addons/account/account_move_line.py:173
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2886,7 +2909,7 @@ msgid "Base Code Amount"
msgstr "Сумма по основному коду"
#. module: account
-#: code:addons/account/account_invoice.py:392
+#: code:addons/account/account_invoice.py:401
#, python-format
msgid ""
"You can not delete an invoice which is open or paid. We suggest you to "
@@ -2899,7 +2922,7 @@ msgid "Default Sale Tax"
msgstr "Налог с продаж по умолчанию"
#. module: account
-#: code:addons/account/account_invoice.py:1013
+#: code:addons/account/account_invoice.py:1025
#, python-format
msgid "Invoice '%s' is validated."
msgstr "Счет '%s' утвержден."
@@ -2939,7 +2962,7 @@ msgid "Fiscal Position"
msgstr "Система налогообложения"
#. module: account
-#: code:addons/account/account_invoice.py:735
+#: code:addons/account/account_invoice.py:744
#, python-format
msgid ""
"Tax base different!\n"
@@ -3093,7 +3116,7 @@ msgid "View"
msgstr "Вид"
#. module: account
-#: code:addons/account/account.py:3363
+#: code:addons/account/account.py:3380
#: code:addons/account/account_bank.py:90
#, python-format
msgid "BNK"
@@ -3287,7 +3310,7 @@ msgid "Starting Balance"
msgstr "Начальный баланс"
#. module: account
-#: code:addons/account/account_invoice.py:1332
+#: code:addons/account/account_invoice.py:1345
#, python-format
msgid "No Partner Defined !"
msgstr "Партнер не определен!"
@@ -3342,7 +3365,7 @@ msgid "Chart of Tax"
msgstr "Диаграмма налогов"
#. module: account
-#: code:addons/account/account_cash_statement.py:314
+#: code:addons/account/account_cash_statement.py:315
#, python-format
msgid "The closing balance should be the same than the computed balance!"
msgstr ""
@@ -3427,6 +3450,7 @@ msgstr ""
#. module: account
#: field:account.aged.trial.balance,period_length:0
+#: report:account.aged_trial_balance:0
msgid "Period Length (days)"
msgstr ""
@@ -3473,7 +3497,7 @@ msgid "Detail"
msgstr "Подробности"
#. module: account
-#: code:addons/account/account_invoice.py:839
+#: code:addons/account/account_invoice.py:850
#, python-format
msgid ""
"Can not create the invoice !\n"
@@ -3488,9 +3512,16 @@ msgid "VAT :"
msgstr "НДС:"
#. module: account
+#: report:account.account.balance:0
+#: report:account.aged_trial_balance:0
#: report:account.central.journal:0
+#: report:account.financial.report:0
+#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,charts:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -3512,7 +3543,7 @@ msgid "Centralised counterpart"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:584
+#: code:addons/account/account_move_line.py:575
#, python-format
msgid "You can not create journal items on a \"view\" account %s %s"
msgstr ""
@@ -3539,6 +3570,7 @@ msgstr ""
#: report:account.analytic.account.journal:0
#: selection:account.balance.report,filter:0
#: field:account.bank.statement,date:0
+#: field:account.bank.statement.line,date:0
#: selection:account.central.journal,filter:0
#: selection:account.common.account.report,filter:0
#: selection:account.common.journal.report,filter:0
@@ -3566,10 +3598,17 @@ msgstr ""
#: field:account.subscription.line,date:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
+#: xsl:account.transfer:0
#: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/account_general_ledger.py:305
+#: code:addons/account/report/account_general_ledger.py:308
+#: code:addons/account/report/account_journal.py:195
+#: code:addons/account/report/account_journal.py:198
+#: code:addons/account/report/common_report_header.py:97
#: field:analytic.entries.report,date:0
+#, python-format
msgid "Date"
msgstr "Дата"
@@ -3586,7 +3625,6 @@ msgstr "Не сверено"
#. module: account
#: view:account.analytic.line:0
-#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -3600,7 +3638,7 @@ msgid "Chart of Accounts Template"
msgstr "Шаблон плана счетов"
#. module: account
-#: code:addons/account/account.py:2280
+#: code:addons/account/account.py:2297
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3611,7 +3649,7 @@ msgstr ""
"условии оплаты контрагента."
#. module: account
-#: code:addons/account/account_move_line.py:837
+#: code:addons/account/account_move_line.py:846
#, python-format
msgid "Some entries are already reconciled !"
msgstr "Некоторые записи уже сверены!"
@@ -3642,6 +3680,8 @@ msgstr "Бюджеты"
#: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/common_report_header.py:100
+#, python-format
msgid "No Filters"
msgstr "Нет фильтров"
@@ -3725,7 +3765,7 @@ msgid "Analytic Items"
msgstr "Элементы аналитики"
#. module: account
-#: code:addons/account/account_move_line.py:1153
+#: code:addons/account/account_move_line.py:1168
#, python-format
msgid "Unable to change tax !"
msgstr "Невозможно изменить налог !"
@@ -3756,7 +3796,7 @@ msgid "Mapping"
msgstr "Соответствие"
#. module: account
-#: code:addons/account/account_invoice.py:921
+#: code:addons/account/account_invoice.py:932
#, python-format
msgid ""
"You cannot create an invoice on a centralised journal. Uncheck the "
@@ -3770,6 +3810,7 @@ msgstr ""
#: report:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.chart.template,name:0
+#: report:account.financial.report:0
#: field:account.model.line,name:0
#: field:account.move.line,name:0
#: field:account.move.reconcile,name:0
@@ -3783,7 +3824,7 @@ msgid "Account Aged Trial balance Report"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:591
+#: code:addons/account/account_move_line.py:582
#, python-format
msgid "You can not create journal items on a closed account %s %s"
msgstr ""
@@ -4110,7 +4151,7 @@ msgid "Month"
msgstr "Месяц"
#. module: account
-#: code:addons/account/account_move_line.py:1216
+#: code:addons/account/account_move_line.py:1231
#, python-format
msgid ""
"You can not do this modification on a confirmed entry! You can just change "
@@ -4167,7 +4208,7 @@ msgid "Account Base Code"
msgstr "Основной код счёта"
#. module: account
-#: code:addons/account/account_analytic_line.py:93
+#: code:addons/account/account_analytic_line.py:91
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr "Счет расходов не определен для этого товара: \"%s\" (id:%d)"
@@ -4376,7 +4417,7 @@ msgid "Allow Reconciliation"
msgstr "Разрешить сверку"
#. module: account
-#: code:addons/account/account.py:1077
+#: code:addons/account/account.py:1082
#, python-format
msgid ""
"You can not modify company of this period as some journal items exists."
@@ -4410,7 +4451,7 @@ msgid "Recurring Models"
msgstr "Повторяющиеся модели"
#. module: account
-#: code:addons/account/account_move_line.py:1251
+#: code:addons/account/account_move_line.py:1266
#, python-format
msgid "Encoding error"
msgstr ""
@@ -4422,6 +4463,7 @@ msgstr "4"
#. module: account
#: view:account.invoice:0
+#: xsl:account.transfer:0
msgid "Change"
msgstr "Изменить"
@@ -4466,7 +4508,7 @@ msgid "Example"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:828
+#: code:addons/account/account_invoice.py:839
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4482,7 +4524,7 @@ msgid "Keep empty to use the income account"
msgstr "Оставьте пустым для использования доходного счета"
#. module: account
-#: code:addons/account/account.py:3299
+#: code:addons/account/account.py:3316
#, python-format
msgid "Purchase Tax %.2f%%"
msgstr ""
@@ -4510,7 +4552,7 @@ msgstr "Отображение счета"
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:337
+#: code:addons/account/account_invoice.py:346
#, python-format
msgid "Customer"
msgstr "Заказчик"
@@ -4526,7 +4568,7 @@ msgid "Cancelled Invoice"
msgstr "Отмененный счет"
#. module: account
-#: code:addons/account/account.py:1567
+#: code:addons/account/account.py:1584
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4583,7 +4625,7 @@ msgid "Income Account on Product Template"
msgstr "Счет доходов и расходов из шаблона ТМЦ"
#. module: account
-#: code:addons/account/account.py:3120
+#: code:addons/account/account.py:3137
#, python-format
msgid "MISC"
msgstr ""
@@ -4608,11 +4650,13 @@ msgstr "Новый учетный год"
#: view:account.invoice:0
#: view:account.tax.template:0
#: selection:account.vat.declaration,based_on:0
+#: code:addons/account/report/account_tax_report.py:68
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
#: model:ir.actions.report.xml,name:account.account_invoices
#: view:report.invoice.created:0
#: field:res.partner,invoice_ids:0
+#, python-format
msgid "Invoices"
msgstr "Счета"
@@ -4749,26 +4793,24 @@ msgid "Journal Items"
msgstr "Элементы журнала"
#. module: account
-#: code:addons/account/account.py:1088
-#: code:addons/account/account.py:1090
-#: code:addons/account/account.py:1321
-#: code:addons/account/account.py:1563
-#: code:addons/account/account.py:1567
-#: code:addons/account/account.py:3368
-#: code:addons/account/account_move_line.py:807
-#: code:addons/account/account_move_line.py:830
-#: code:addons/account/account_move_line.py:832
-#: code:addons/account/account_move_line.py:835
-#: code:addons/account/account_move_line.py:837
+#: code:addons/account/account.py:1095
+#: code:addons/account/account.py:1097
+#: code:addons/account/account.py:1329
+#: code:addons/account/account.py:1580
+#: code:addons/account/account.py:1584
+#: code:addons/account/account.py:3385
+#: code:addons/account/account_move_line.py:823
+#: code:addons/account/account_move_line.py:843
+#: code:addons/account/account_move_line.py:846
#: code:addons/account/report/common_report_header.py:92
#: code:addons/account/wizard/account_change_currency.py:38
#: code:addons/account/wizard/account_change_currency.py:59
#: code:addons/account/wizard/account_change_currency.py:64
#: code:addons/account/wizard/account_change_currency.py:70
-#: code:addons/account/wizard/account_financial_report.py:69
+#: code:addons/account/wizard/account_financial_report.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_report_common.py:144
-#: code:addons/account/wizard/account_report_common.py:150
+#: code:addons/account/wizard/account_report_common.py:145
+#: code:addons/account/wizard/account_report_common.py:151
#, python-format
msgid "Error"
msgstr "Error"
@@ -4873,7 +4915,7 @@ msgid "Beginning of Period Date"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1351
+#: code:addons/account/account.py:1361
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4900,7 +4942,7 @@ msgid "Child Tax Accounts"
msgstr "Счета субналогов"
#. module: account
-#: code:addons/account/account.py:1090
+#: code:addons/account/account.py:1097
#, python-format
msgid "Start period should be smaller then End period"
msgstr "Начало периода должно быть меньше, чем конец периода"
@@ -4921,6 +4963,7 @@ msgstr "Остаток по аналитике"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,target_move:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,target_move:0
#: report:account.central.journal:0
#: field:account.central.journal,target_move:0
@@ -4964,6 +5007,8 @@ msgstr "Тип периода"
#: view:account.invoice:0
#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,based_on:0
+#: code:addons/account/report/account_tax_report.py:70
+#, python-format
msgid "Payments"
msgstr "Платежи"
@@ -5037,7 +5082,7 @@ msgid "Line 1:"
msgstr "Строка 1:"
#. module: account
-#: code:addons/account/account.py:1307
+#: code:addons/account/account.py:1315
#, python-format
msgid "Integrity Error !"
msgstr "Ошибка целостности!"
@@ -5070,6 +5115,7 @@ msgstr "Результат сверки"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_balancesheet0
+#: model:ir.actions.act_window,name:account.action_account_report_bs
#: model:ir.ui.menu,name:account.menu_account_report_bs
msgid "Balance Sheet"
msgstr "Балансовая ведомость"
@@ -5146,6 +5192,7 @@ msgstr ""
#: view:account.move.line:0
#: field:account.tax,amount:0
#: field:account.tax.template,amount:0
+#: xsl:account.transfer:0
#: view:analytic.entries.report:0
#: field:analytic.entries.report,amount:0
msgid "Amount"
@@ -5275,7 +5322,6 @@ msgstr ""
#. module: account
#: field:account.bank.statement.line,name:0
-#: field:account.invoice,reference:0
msgid "Communication"
msgstr "Назначение"
@@ -5327,13 +5373,13 @@ msgid "End of Year Entries Journal"
msgstr "Журнал проводок конца года"
#. module: account
-#: code:addons/account/account.py:3446
+#: code:addons/account/account.py:3463
#: code:addons/account/account_bank_statement.py:338
-#: code:addons/account/account_invoice.py:427
-#: code:addons/account/account_invoice.py:527
-#: code:addons/account/account_invoice.py:542
-#: code:addons/account/account_invoice.py:550
-#: code:addons/account/account_invoice.py:572
+#: code:addons/account/account_invoice.py:436
+#: code:addons/account/account_invoice.py:536
+#: code:addons/account/account_invoice.py:551
+#: code:addons/account/account_invoice.py:559
+#: code:addons/account/account_invoice.py:581
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -5407,7 +5453,6 @@ msgid "Customer Invoices And Refunds"
msgstr ""
#. module: account
-#: field:account.analytic.line,amount_currency:0
#: field:account.entries.report,amount_currency:0
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
@@ -5575,7 +5620,7 @@ msgid "Generate Opening Entries"
msgstr "Генерировать открывающие проводки"
#. module: account
-#: code:addons/account/account_move_line.py:759
+#: code:addons/account/account_move_line.py:775
#, python-format
msgid "Already Reconciled!"
msgstr "Уже сверено !"
@@ -5608,14 +5653,14 @@ msgid "Child Accounts"
msgstr "Субсчета"
#. module: account
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1229
#, python-format
msgid "Move name (id): %s (%s)"
msgstr ""
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:857
+#: code:addons/account/account_move_line.py:871
#, python-format
msgid "Write-Off"
msgstr "Списание"
@@ -5635,7 +5680,7 @@ msgstr "Доход"
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:339
+#: code:addons/account/account_invoice.py:348
#, python-format
msgid "Supplier"
msgstr "Поставщик"
@@ -5665,7 +5710,7 @@ msgid "Account n°"
msgstr "№ счета"
#. module: account
-#: code:addons/account/account_invoice.py:88
+#: code:addons/account/account_invoice.py:91
#, python-format
msgid "Free Reference"
msgstr "Свободная Ссылка"
@@ -5680,7 +5725,9 @@ msgstr "Оценка"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:376
#: code:addons/account/report/account_partner_balance.py:301
+#: code:addons/account/report/account_partner_ledger.py:399
#, python-format
msgid "Receivable and Payable Accounts"
msgstr "Счета дебиторской и кредиторской задолженности"
@@ -5784,7 +5831,7 @@ msgid "Filter by"
msgstr "Фильтровать по"
#. module: account
-#: code:addons/account/account.py:2256
+#: code:addons/account/account.py:2273
#, python-format
msgid "You have a wrong expression \"%(...)s\" in your model !"
msgstr ""
@@ -5795,8 +5842,8 @@ msgid "Entry Date"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1155
-#: code:addons/account/account_move_line.py:1238
+#: code:addons/account/account_move_line.py:1170
+#: code:addons/account/account_move_line.py:1253
#, python-format
msgid "You can not use an inactive account!"
msgstr "Нельзя использовать неактивный счет !"
@@ -5837,8 +5884,8 @@ msgid "Number of Days"
msgstr "Кол-во дней"
#. module: account
-#: code:addons/account/account_bank_statement.py:402
-#: code:addons/account/account_invoice.py:392
+#: code:addons/account/account_bank_statement.py:403
+#: code:addons/account/account_invoice.py:401
#: code:addons/account/wizard/account_period_close.py:51
#, python-format
msgid "Invalid action !"
@@ -5900,7 +5947,7 @@ msgid "Multipication factor for Base code"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_report_common.py:150
+#: code:addons/account/wizard/account_report_common.py:151
#, python-format
msgid "not implemented"
msgstr "не реализовано"
@@ -5939,6 +5986,8 @@ msgstr "Анализ проводок аналитики"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:381
+#, python-format
msgid "Past"
msgstr "Прошлые"
@@ -6218,6 +6267,8 @@ msgstr "Процент"
#. module: account
#: selection:account.report.general.ledger,sortby:0
+#: code:addons/account/report/account_general_ledger.py:307
+#, python-format
msgid "Journal & Partner"
msgstr "Журнал и партнер"
@@ -6227,7 +6278,7 @@ msgid "Power"
msgstr "Мощность"
#. module: account
-#: code:addons/account/account.py:3368
+#: code:addons/account/account.py:3385
#, python-format
msgid "Cannot generate an unused journal code."
msgstr ""
@@ -6267,6 +6318,7 @@ msgid "Applicable Type"
msgstr "Применимый тип"
#. module: account
+#: field:account.invoice,reference:0
#: field:account.invoice.line,invoice_id:0
msgid "Invoice Reference"
msgstr "Ссылка на счет"
@@ -6498,8 +6550,8 @@ msgid "You can not remove an account containing journal items."
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:145
-#: code:addons/account/account_move_line.py:933
+#: code:addons/account/account_analytic_line.py:143
+#: code:addons/account/account_move_line.py:947
#, python-format
msgid "Entries: "
msgstr "Проводки: "
@@ -6515,7 +6567,7 @@ msgid "Currency of the related account journal."
msgstr ""
#. module: account
-#: code:addons/account/account.py:1563
+#: code:addons/account/account.py:1580
#, python-format
msgid "Couldn't create move between different companies"
msgstr "Нельзя создать перемещение между разными организациями"
@@ -6556,13 +6608,13 @@ msgstr "Состояние \"Черновик\""
#. module: account
#: view:account.move.line:0
-#: code:addons/account/account_move_line.py:1043
+#: code:addons/account/account_move_line.py:1058
#, python-format
msgid "Total debit"
msgstr "Всего по дебету"
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:824
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "Проводка \"%s\" не верна !"
@@ -6636,25 +6688,26 @@ msgstr ""
#: code:addons/account/account.py:622
#: code:addons/account/account.py:624
#: code:addons/account/account.py:963
-#: code:addons/account/account.py:1052
-#: code:addons/account/account.py:1129
-#: code:addons/account/account.py:1344
-#: code:addons/account/account.py:1351
-#: code:addons/account/account.py:2280
-#: code:addons/account/account.py:2596
-#: code:addons/account/account_analytic_line.py:92
-#: code:addons/account/account_analytic_line.py:101
+#: code:addons/account/account.py:1057
+#: code:addons/account/account.py:1136
+#: code:addons/account/account.py:1352
+#: code:addons/account/account.py:1359
+#: code:addons/account/account.py:1361
+#: code:addons/account/account.py:2297
+#: code:addons/account/account.py:2613
+#: code:addons/account/account_analytic_line.py:90
+#: code:addons/account/account_analytic_line.py:99
#: code:addons/account/account_bank_statement.py:301
#: code:addons/account/account_bank_statement.py:314
#: code:addons/account/account_bank_statement.py:352
-#: code:addons/account/account_cash_statement.py:292
-#: code:addons/account/account_cash_statement.py:314
-#: code:addons/account/account_invoice.py:808
-#: code:addons/account/account_invoice.py:839
-#: code:addons/account/account_invoice.py:1030
-#: code:addons/account/account_move_line.py:1200
-#: code:addons/account/account_move_line.py:1216
-#: code:addons/account/account_move_line.py:1218
+#: code:addons/account/account_cash_statement.py:293
+#: code:addons/account/account_cash_statement.py:315
+#: code:addons/account/account_invoice.py:819
+#: code:addons/account/account_invoice.py:850
+#: code:addons/account/account_invoice.py:1042
+#: code:addons/account/account_move_line.py:1215
+#: code:addons/account/account_move_line.py:1231
+#: code:addons/account/account_move_line.py:1233
#: code:addons/account/wizard/account_invoice_refund.py:108
#: code:addons/account/wizard/account_invoice_refund.py:110
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
@@ -6686,8 +6739,8 @@ msgid "Printed"
msgstr "Напечатан"
#. module: account
-#: code:addons/account/account_move_line.py:584
-#: code:addons/account/account_move_line.py:591
+#: code:addons/account/account_move_line.py:575
+#: code:addons/account/account_move_line.py:582
#, python-format
msgid "Error :"
msgstr ""
@@ -6746,7 +6799,7 @@ msgid "Display Ledger Report with One partner per page"
msgstr "Вывести отчет по регистру с одним партнером на странице"
#. module: account
-#: code:addons/account/account_move_line.py:1218
+#: code:addons/account/account_move_line.py:1233
#, python-format
msgid ""
"You can not do this modification on a reconciled entry! You can just change "
@@ -6906,7 +6959,7 @@ msgid "Total:"
msgstr "Всего:"
#. module: account
-#: code:addons/account/account.py:2229
+#: code:addons/account/account.py:2246
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6944,7 +6997,7 @@ msgid "Taxes used in Sales"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:495
+#: code:addons/account/account_invoice.py:504
#: code:addons/account/wizard/account_invoice_refund.py:145
#, python-format
msgid "Data Insufficient !"
@@ -7012,14 +7065,14 @@ msgid "Source Document"
msgstr "Документ-источник"
#. module: account
-#: code:addons/account/account.py:1432
+#: code:addons/account/account.py:1449
#, python-format
msgid "You can not delete a posted journal entry \"%s\"!"
msgstr ""
#. module: account
#: selection:account.partner.ledger,filter:0
-#: code:addons/account/report/account_partner_ledger.py:59
+#: code:addons/account/report/account_partner_ledger.py:60
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
#, python-format
msgid "Unreconciled Entries"
@@ -7119,8 +7172,8 @@ msgid "Are you sure you want to open this invoice ?"
msgstr "Вы уверены, что хотите открыть данный счет?"
#. module: account
-#: code:addons/account/account_invoice.py:528
-#: code:addons/account/account_invoice.py:543
+#: code:addons/account/account_invoice.py:537
+#: code:addons/account/account_invoice.py:552
#, python-format
msgid ""
"Can not find a chart of account, you should create one from the "
@@ -7133,7 +7186,7 @@ msgid "Opening Entries Expense Account"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:999
+#: code:addons/account/account_move_line.py:1014
#, python-format
msgid "Accounting Entries"
msgstr "Бухгалтерские проводки"
@@ -7270,7 +7323,7 @@ msgstr ""
"домена."
#. module: account
-#: code:addons/account/account.py:1088
+#: code:addons/account/account.py:1095
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr "Вы должны выбрать периоды принадлежащие одной компании."
@@ -7301,8 +7354,8 @@ msgid "Reporting"
msgstr "Отчетность"
#. module: account
-#: code:addons/account/account_move_line.py:759
-#: code:addons/account/account_move_line.py:842
+#: code:addons/account/account_move_line.py:775
+#: code:addons/account/account_move_line.py:856
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_state_open.py:37
@@ -7393,7 +7446,7 @@ msgid "Sign on Reports"
msgstr "Знак в отчётах"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:73
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
#, python-format
msgid "The periods to generate opening entries were not found"
msgstr ""
@@ -7404,7 +7457,7 @@ msgid "Root/View"
msgstr ""
#. module: account
-#: code:addons/account/account.py:3121
+#: code:addons/account/account.py:3138
#, python-format
msgid "OPEJ"
msgstr ""
@@ -7439,13 +7492,14 @@ msgid "Optional Information"
msgstr "Доп. информация"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:84
+#: code:addons/account/wizard/account_fiscalyear_close.py:100
#, python-format
msgid "The journal must have default credit and debit account"
msgstr "Журнал должен иметь дебитовый и кредитовый счет по умолчанию"
#. module: account
#: report:account.general.journal:0
+#: xsl:account.transfer:0
msgid ":"
msgstr ":"
@@ -7474,13 +7528,13 @@ msgid "Maturity Date"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1302
+#: code:addons/account/account_move_line.py:1317
#, python-format
msgid "Bad account !"
msgstr "Неверный счет !"
#. module: account
-#: code:addons/account/account.py:3108
+#: code:addons/account/account.py:3125
#, python-format
msgid "Sales Journal"
msgstr "Журнал продаж"
@@ -7497,7 +7551,7 @@ msgid "Invoice Tax"
msgstr "Налог по счету"
#. module: account
-#: code:addons/account/account_move_line.py:1277
+#: code:addons/account/account_move_line.py:1292
#, python-format
msgid "No piece number !"
msgstr "Нет номера части !"
@@ -7547,7 +7601,7 @@ msgstr "По"
#. module: account
#: selection:account.move.line,centralisation:0
-#: code:addons/account/account.py:1518
+#: code:addons/account/account.py:1535
#, python-format
msgid "Currency Adjustment"
msgstr ""
@@ -7595,13 +7649,15 @@ msgstr "Май"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:374
#: code:addons/account/report/account_partner_balance.py:299
+#: code:addons/account/report/account_partner_ledger.py:397
#, python-format
msgid "Payable Accounts"
msgstr "Кредиторская задолженность"
#. module: account
-#: code:addons/account/account_invoice.py:732
+#: code:addons/account/account_invoice.py:741
#, python-format
msgid "Global taxes defined, but they are not in invoice lines !"
msgstr ""
@@ -7645,7 +7701,7 @@ msgstr ""
#: selection:account.bank.accounts.wizard,account_type:0
#: selection:account.entries.report,type:0
#: selection:account.journal,type:0
-#: code:addons/account/account.py:3003
+#: code:addons/account/account.py:3020
#, python-format
msgid "Cash"
msgstr "Наличные"
@@ -7657,15 +7713,15 @@ msgid "Account Destination"
msgstr "Счет назначения"
#. module: account
-#: code:addons/account/account.py:1431
-#: code:addons/account/account.py:1460
-#: code:addons/account/account.py:1467
-#: code:addons/account/account_invoice.py:920
-#: code:addons/account/account_move_line.py:1104
-#: code:addons/account/wizard/account_automatic_reconcile.py:152
-#: code:addons/account/wizard/account_fiscalyear_close.py:73
-#: code:addons/account/wizard/account_fiscalyear_close.py:83
-#: code:addons/account/wizard/account_fiscalyear_close.py:86
+#: code:addons/account/account.py:1448
+#: code:addons/account/account.py:1477
+#: code:addons/account/account.py:1484
+#: code:addons/account/account_invoice.py:931
+#: code:addons/account/account_move_line.py:1119
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
+#: code:addons/account/wizard/account_fiscalyear_close.py:88
+#: code:addons/account/wizard/account_fiscalyear_close.py:99
+#: code:addons/account/wizard/account_fiscalyear_close.py:102
#: code:addons/account/wizard/account_move_journal.py:165
#: code:addons/account/wizard/account_report_aged_partner_balance.py:56
#: code:addons/account/wizard/account_report_aged_partner_balance.py:58
@@ -7820,13 +7876,14 @@ msgstr "Фиксированный"
#: code:addons/account/account.py:645
#: code:addons/account/account.py:664
#: code:addons/account/account.py:787
-#: code:addons/account/account.py:1077
-#: code:addons/account/account_invoice.py:732
-#: code:addons/account/account_invoice.py:735
-#: code:addons/account/account_invoice.py:738
+#: code:addons/account/account.py:1082
+#: code:addons/account/account_invoice.py:741
+#: code:addons/account/account_invoice.py:744
+#: code:addons/account/account_invoice.py:747
#: code:addons/account/account_move_line.py:97
-#: code:addons/account/account_move_line.py:750
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:766
+#: code:addons/account/account_move_line.py:819
+#: code:addons/account/wizard/account_fiscalyear_close.py:62
#, python-format
msgid "Warning !"
msgstr "Warning !"
@@ -7878,7 +7935,7 @@ msgid "Select a currency to apply on the invoice"
msgstr "Выбрать валюту применяемую в счете"
#. module: account
-#: code:addons/account/account.py:3446
+#: code:addons/account/account.py:3463
#, python-format
msgid ""
"The bank account defined on the selected chart of accounts hasn't a code."
@@ -7891,7 +7948,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "Нельзя %s черновик/проформу/отмененный счет."
#. module: account
-#: code:addons/account/account_invoice.py:810
+#: code:addons/account/account_invoice.py:821
#, python-format
msgid "No Invoice Lines !"
msgstr "Нет позиций в счете !"
@@ -7966,7 +8023,7 @@ msgid "Deferral Method"
msgstr "Метод отсрочки"
#. module: account
-#: code:addons/account/account_invoice.py:379
+#: code:addons/account/account_invoice.py:388
#, python-format
msgid "Invoice '%s' is paid."
msgstr "Счет '%s' оплачен."
@@ -8032,7 +8089,7 @@ msgid "Associated Partner"
msgstr "Связанный контрагент"
#. module: account
-#: code:addons/account/account_invoice.py:1332
+#: code:addons/account/account_invoice.py:1345
#, python-format
msgid "You must first select a partner !"
msgstr "Сначала вы должны выбрать партнера !"
@@ -8078,7 +8135,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:428
+#: code:addons/account/account_invoice.py:437
#, python-format
msgid ""
"Can not find a chart of accounts for this company, you should create one."
@@ -8100,7 +8157,7 @@ msgid "Choose Fiscal Year"
msgstr "Закрыть отчетный год"
#. module: account
-#: code:addons/account/account.py:3111
+#: code:addons/account/account.py:3128
#, python-format
msgid "Purchase Refund Journal"
msgstr "Журнал возврата покупок"
@@ -8190,7 +8247,7 @@ msgid "Compute Code for Taxes Included Prices"
msgstr "Код расчета для цен с налогами"
#. module: account
-#: code:addons/account/account_invoice.py:1030
+#: code:addons/account/account_invoice.py:1042
#, python-format
msgid ""
"You can not cancel an invoice which is partially paid! You need to "
@@ -8320,7 +8377,7 @@ msgid "current month"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1052
+#: code:addons/account/account.py:1057
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -8399,10 +8456,12 @@ msgstr "Журнал возвратов"
#. module: account
#: report:account.account.balance:0
#: report:account.central.journal:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
msgid "Filter By"
msgstr "Фильтровать по"
@@ -8439,7 +8498,7 @@ msgid "The partner account used for this invoice."
msgstr "Бух. счет партнера будет использоваться для этого счета."
#. module: account
-#: code:addons/account/account.py:3296
+#: code:addons/account/account.py:3313
#, python-format
msgid "Tax %.2f%%"
msgstr ""
@@ -8462,7 +8521,7 @@ msgid "Payment Term Line"
msgstr "Позиция условий оплаты"
#. module: account
-#: code:addons/account/account.py:3109
+#: code:addons/account/account.py:3126
#, python-format
msgid "Purchase Journal"
msgstr "Журнал покупок"
@@ -8548,7 +8607,7 @@ msgid "Unpaid Invoices"
msgstr "Неоплаченные счета"
#. module: account
-#: code:addons/account/account_invoice.py:495
+#: code:addons/account/account_invoice.py:504
#, python-format
msgid "The payment term of supplier does not have a payment term line!"
msgstr ""
@@ -8654,7 +8713,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "Оставьте пустым для всех открытых финансовых лет"
#. module: account
-#: code:addons/account/account_move_line.py:1105
+#: code:addons/account/account_move_line.py:1120
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -8668,7 +8727,7 @@ msgstr ""
"Сумма выражается в дополнительный валюте, если эта проводка мульти-валютная."
#. module: account
-#: code:addons/account/account.py:1307
+#: code:addons/account/account.py:1315
#, python-format
msgid ""
"You can not validate a non-balanced entry !\n"
@@ -8742,7 +8801,7 @@ msgid "Contact Address"
msgstr "Адрес контакта"
#. module: account
-#: code:addons/account/account.py:2256
+#: code:addons/account/account.py:2273
#, python-format
msgid "Wrong model !"
msgstr ""
@@ -8777,12 +8836,14 @@ msgstr "Договоры"
#: field:account.cashbox.line,starting_id:0
#: field:account.entries.report,reconcile_id:0
#: field:account.financial.report,balance:0
+#: field:account.financial.report,credit:0
+#: field:account.financial.report,debit:0
msgid "unknown"
msgstr "неизвестен"
#. module: account
#: field:account.fiscalyear.close,journal_id:0
-#: code:addons/account/account.py:3113
+#: code:addons/account/account.py:3130
#, python-format
msgid "Opening Entries Journal"
msgstr "Журнал проводок открытия"
@@ -8804,7 +8865,7 @@ msgstr ""
"прибылям и убыткам."
#. module: account
-#: code:addons/account/account_invoice.py:808
+#: code:addons/account/account_invoice.py:819
#, python-format
msgid "Please define sequence on the journal related to this invoice."
msgstr ""
@@ -8892,7 +8953,7 @@ msgid "Period from"
msgstr "Период с"
#. module: account
-#: code:addons/account/account.py:3110
+#: code:addons/account/account.py:3127
#, python-format
msgid "Sales Refund Journal"
msgstr "Журнал возврата продаж"
@@ -8939,7 +9000,7 @@ msgid "Purchase Tax(%)"
msgstr "Налог на покупку(%)"
#. module: account
-#: code:addons/account/account_invoice.py:810
+#: code:addons/account/account_invoice.py:821
#, python-format
msgid "Please create some invoice lines."
msgstr "Пожалуйста, создайте позиции счета"
@@ -8955,7 +9016,7 @@ msgid "Display Detail"
msgstr ""
#. module: account
-#: code:addons/account/account.py:3118
+#: code:addons/account/account.py:3135
#, python-format
msgid "SCNJ"
msgstr ""
@@ -8987,8 +9048,6 @@ msgstr "Конец периода"
#: field:account.account.template,financial_report_ids:0
#: model:ir.actions.act_window,name:account.action_account_financial_report_tree
#: model:ir.actions.act_window,name:account.action_account_report
-#: model:ir.actions.act_window,name:account.action_account_report_bs
-#: model:ir.actions.act_window,name:account.action_account_report_pl
#: model:ir.ui.menu,name:account.menu_account_reports
msgid "Financial Reports"
msgstr ""
@@ -9003,6 +9062,7 @@ msgstr ""
#: field:account.common.journal.report,period_from:0
#: field:account.common.partner.report,period_from:0
#: field:account.common.report,period_from:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: field:account.general.journal,period_from:0
#: report:account.general.ledger:0
@@ -9023,6 +9083,7 @@ msgstr "Начало периода"
#. module: account
#: field:account.aged.trial.balance,direction_selection:0
+#: report:account.aged_trial_balance:0
msgid "Analysis Direction"
msgstr "Направление анализа"
@@ -9042,7 +9103,7 @@ msgstr "Вид журнала"
#. module: account
#: view:account.move.line:0
-#: code:addons/account/account_move_line.py:1046
+#: code:addons/account/account_move_line.py:1061
#, python-format
msgid "Total credit"
msgstr "Всего кредит"
@@ -9107,6 +9168,7 @@ msgstr "Банковские выписки"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,balance:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -9182,7 +9244,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_automatic_reconcile.py:152
+#: code:addons/account/wizard/account_automatic_reconcile.py:148
#, python-format
msgid "You must select accounts to reconcile"
msgstr "Вы должны выбрать счета для сверки"
@@ -9204,7 +9266,6 @@ msgid ""
msgstr ""
#. module: account
-#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Filters By"
msgstr ""
@@ -9226,7 +9287,7 @@ msgid "Move"
msgstr "Операция"
#. module: account
-#: code:addons/account/account_move_line.py:1153
+#: code:addons/account/account_move_line.py:1168
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -9285,7 +9346,7 @@ msgid "Consolidated Children"
msgstr "Субсчета"
#. module: account
-#: code:addons/account/wizard/account_fiscalyear_close.py:87
+#: code:addons/account/wizard/account_fiscalyear_close.py:103
#, python-format
msgid ""
"The journal must have centralised counterpart without the Skipping draft "
@@ -9346,6 +9407,7 @@ msgstr ""
#: field:account.common.journal.report,period_to:0
#: field:account.common.partner.report,period_to:0
#: field:account.common.report,period_to:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: field:account.general.journal,period_to:0
#: report:account.general.ledger:0
@@ -9402,6 +9464,7 @@ msgstr "Проводка подписки"
#. module: account
#: report:account.account.balance:0
#: field:account.aged.trial.balance,date_from:0
+#: report:account.aged_trial_balance:0
#: field:account.balance.report,date_from:0
#: report:account.central.journal:0
#: field:account.central.journal,date_from:0
@@ -9409,6 +9472,7 @@ msgstr "Проводка подписки"
#: field:account.common.journal.report,date_from:0
#: field:account.common.partner.report,date_from:0
#: field:account.common.report,date_from:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,date_start:0
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
@@ -9451,7 +9515,7 @@ msgid "Unreconciled"
msgstr "Не сверенные"
#. module: account
-#: code:addons/account/account_invoice.py:828
+#: code:addons/account/account_invoice.py:839
#, python-format
msgid "Bad total !"
msgstr "Плохой итог !"
@@ -9510,7 +9574,7 @@ msgid "Comparison"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:372
+#: code:addons/account/account_invoice.py:381
#, python-format
msgid "Unknown Error"
msgstr "Неизвестная ошибка"
@@ -9549,6 +9613,7 @@ msgstr "Утвердить операцию по счету"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,credit:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -9650,9 +9715,11 @@ msgstr ""
#: view:accounting.report:0
#: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0
+#: code:addons/account/report/common_report_header.py:99
#: model:ir.actions.act_window,name:account.action_account_period_form
#: model:ir.ui.menu,name:account.menu_action_account_period_form
#: model:ir.ui.menu,name:account.next_id_23
+#, python-format
msgid "Periods"
msgstr "Периоды"
@@ -9817,6 +9884,7 @@ msgstr "Проведено"
#: field:account.common.journal.report,date_to:0
#: field:account.common.partner.report,date_to:0
#: field:account.common.report,date_to:0
+#: report:account.financial.report:0
#: field:account.fiscalyear,date_stop:0
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
@@ -9864,7 +9932,7 @@ msgid "No detail"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:102
+#: code:addons/account/account_analytic_line.py:100
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr "Не определен счет доходов для ТМЦ: \"%s\" (id:%d)"
@@ -9900,6 +9968,7 @@ msgid "Verification Total"
msgstr ""
#. module: account
+#: report:account.aged_trial_balance:0
#: report:account.analytic.account.balance:0
#: report:account.analytic.account.inverted.balance:0
#: report:account.analytic.account.quantity_cost_ledger:0
@@ -9920,6 +9989,7 @@ msgstr "Журнал: Все"
#. module: account
#: field:account.account,company_id:0
+#: report:account.account.balance:0
#: field:account.aged.trial.balance,company_id:0
#: field:account.analytic.journal,company_id:0
#: field:account.balance.report,company_id:0
@@ -9934,7 +10004,9 @@ msgstr "Журнал: Все"
#: field:account.entries.report,company_id:0
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
+#: report:account.general.journal:0
#: field:account.general.journal,company_id:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,company_id:0
#: field:account.invoice,company_id:0
#: field:account.invoice.line,company_id:0
@@ -9944,6 +10016,8 @@ msgstr "Журнал: Все"
#: view:account.journal:0
#: field:account.journal,company_id:0
#: field:account.journal.period,company_id:0
+#: report:account.journal.period.print:0
+#: report:account.journal.period.print.sale.purchase:0
#: field:account.model,company_id:0
#: field:account.move,company_id:0
#: field:account.move.line,company_id:0
@@ -10103,6 +10177,7 @@ msgstr "Счет поставщика"
#: report:account.analytic.account.inverted.balance:0
#: report:account.central.journal:0
#: field:account.entries.report,debit:0
+#: report:account.financial.report:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0
@@ -10136,6 +10211,8 @@ msgstr "Ошибка ! Нельзя создать рекурсивные шаб
#. module: account
#: selection:account.print.journal,sort_selection:0
+#: code:addons/account/report/account_journal.py:197
+#, python-format
msgid "Journal Entry Number"
msgstr ""
@@ -10153,7 +10230,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:832
+#: code:addons/account/account_move_line.py:843
#, python-format
msgid "Entry is already reconciled"
msgstr "Проводка уже сверена"
@@ -10189,8 +10266,10 @@ msgid ""
msgstr ""
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
msgid "With movements"
msgstr "С движением"
@@ -10313,8 +10392,8 @@ msgid "Statistic Reports"
msgstr "Статистические отчеты"
#. module: account
-#: code:addons/account/account_move_line.py:1155
-#: code:addons/account/account_move_line.py:1238
+#: code:addons/account/account_move_line.py:1170
+#: code:addons/account/account_move_line.py:1253
#, python-format
msgid "Bad account!"
msgstr "Плохой счет!"
@@ -10340,7 +10419,7 @@ msgid "Accounts Mapping"
msgstr "Отображение счетов"
#. module: account
-#: code:addons/account/account_invoice.py:364
+#: code:addons/account/account_invoice.py:373
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr "Счет '%s' ожидает утверждения."
@@ -10530,6 +10609,7 @@ msgstr "account.addtmpl.wizard"
#. module: account
#: field:account.aged.trial.balance,result_selection:0
+#: report:account.aged_trial_balance:0
#: field:account.common.partner.report,result_selection:0
#: report:account.partner.balance:0
#: field:account.partner.balance,result_selection:0
@@ -10608,6 +10688,8 @@ msgstr "Срок платежа"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
+#: code:addons/account/report/account_aged_partner_balance.py:383
+#, python-format
msgid "Future"
msgstr "Будущие"
diff --git a/addons/board/i18n/ru.po b/addons/board/i18n/ru.po
index 4b10359bca5..5734590526c 100644
--- a/addons/board/i18n/ru.po
+++ b/addons/board/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2010-10-30 10:01+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2012-10-26 09:05+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:20+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-27 04:59+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: board
#: view:res.log.report:0
@@ -103,7 +103,7 @@ msgstr "Месячная активность на документ"
#. module: board
#: view:board.board:0
msgid "Configuration Overview"
-msgstr ""
+msgstr "Обзор конфигурации"
#. module: board
#: model:ir.actions.act_window,name:board.action_view_board_list_form
@@ -211,7 +211,7 @@ msgstr "Январь"
#. module: board
#: view:board.board:0
msgid "Users"
-msgstr ""
+msgstr "Пользователи"
#. module: board
#: selection:res.log.report,month:0
@@ -262,7 +262,7 @@ msgstr "Модель"
#. module: board
#: model:ir.actions.act_window,name:board.board_homepage_action
msgid "Home Page"
-msgstr ""
+msgstr "Домашняя страница"
#. module: board
#: model:ir.actions.act_window,name:board.action_latest_activities_tree
diff --git a/addons/mail/i18n/hu.po b/addons/mail/i18n/hu.po
index 467485a589d..86e15e751b3 100644
--- a/addons/mail/i18n/hu.po
+++ b/addons/mail/i18n/hu.po
@@ -7,21 +7,20 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
-"PO-Revision-Date: 2011-01-21 12:01+0000\n"
-"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
-"\n"
+"PO-Revision-Date: 2012-10-26 12:29+0000\n"
+"Last-Translator: Herczeg Péter \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:36+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-27 04:59+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mail
#: field:mail.compose.message,subtype:0 field:mail.message,subtype:0
#: field:mail.message.common,subtype:0
msgid "Message Type"
-msgstr ""
+msgstr "Üzenettípus"
#. module: mail
#: help:mail.compose.message,auto_delete:0
@@ -31,7 +30,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0
msgid "Open Related Document"
-msgstr ""
+msgstr "Kapcsolódó dokumentum megnyitása"
#. module: mail
#: view:mail.message:0
@@ -57,7 +56,7 @@ msgstr "Csoportosítás..."
#: model:ir.actions.act_window,name:mail.action_email_compose_message_wizard
#: view:mail.compose.message:0
msgid "Compose Email"
-msgstr ""
+msgstr "Email írás"
#. module: mail
#: help:mail.compose.message,body_text:0 help:mail.message,body_text:0
@@ -68,7 +67,7 @@ msgstr ""
#. module: mail
#: view:mail.compose.message:0
msgid "Body"
-msgstr ""
+msgstr "Levéltörzs"
#. module: mail
#: help:mail.compose.message,email_to:0 help:mail.message,email_to:0
@@ -85,7 +84,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Received"
-msgstr ""
+msgstr "Fogadott"
#. module: mail
#: view:mail.message:0
@@ -95,18 +94,18 @@ msgstr ""
#. module: mail
#: field:mail.message,mail_server_id:0
msgid "Outgoing mail server"
-msgstr ""
+msgstr "Kimenő levelező szerver"
#. module: mail
#: selection:mail.message,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Megszakítva"
#. module: mail
#: field:mail.compose.message,reply_to:0 field:mail.message,reply_to:0
#: field:mail.message.common,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Válaszcím"
#. module: mail
#: help:mail.compose.message,body_html:0 help:mail.message,body_html:0
@@ -117,7 +116,7 @@ msgstr ""
#. module: mail
#: field:mail.compose.message,auto_delete:0 field:mail.message,auto_delete:0
msgid "Auto Delete"
-msgstr ""
+msgstr "Automatikus törlés"
#. module: mail
#: help:mail.compose.message,email_bcc:0 help:mail.message,email_bcc:0
@@ -146,37 +145,37 @@ msgstr ""
#: field:mail.compose.message,email_from:0 field:mail.message,email_from:0
#: field:mail.message.common,email_from:0
msgid "From"
-msgstr ""
+msgstr "Feladó"
#. module: mail
#: view:mail.message:0
msgid "Email message"
-msgstr ""
+msgstr "Email üzenet"
#. module: mail
#: view:mail.compose.message:0
msgid "Send"
-msgstr ""
+msgstr "Küldés"
#. module: mail
#: view:mail.message:0
msgid "Failed"
-msgstr ""
+msgstr "Sikertelen"
#. module: mail
#: view:mail.message:0 field:mail.message,state:0
msgid "State"
-msgstr ""
+msgstr "Állapot"
#. module: mail
#: view:mail.message:0
msgid "Reply"
-msgstr ""
+msgstr "Válasz"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Sent"
-msgstr ""
+msgstr "Elküldött"
#. module: mail
#: help:mail.compose.message,subtype:0 help:mail.message,subtype:0
@@ -189,7 +188,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0
msgid "Recipients"
-msgstr ""
+msgstr "Címzettek"
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
@@ -205,7 +204,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0
msgid "Advanced"
-msgstr ""
+msgstr "Speciális"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:157
@@ -242,17 +241,17 @@ msgstr "Partner neve"
#. module: mail
#: view:mail.message:0
msgid "Retry"
-msgstr ""
+msgstr "Újra"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Outgoing"
-msgstr ""
+msgstr "Kimenő"
#. module: mail
#: view:mail.message:0
msgid "Send Now"
-msgstr ""
+msgstr "Küldés most"
#. module: mail
#: field:mail.message,partner_id:0
@@ -262,7 +261,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0
msgid "User"
-msgstr ""
+msgstr "Felhasználó"
#. module: mail
#: field:mail.compose.message,date:0 field:mail.message,date:0
@@ -273,7 +272,7 @@ msgstr "Dátum"
#. module: mail
#: view:mail.message:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Kiterjesztett szűrők…"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:153
@@ -290,7 +289,7 @@ msgstr ""
#. module: mail
#: field:mail.message,original:0
msgid "Original"
-msgstr ""
+msgstr "Eredeti"
#. module: mail
#: code:addons/mail/mail_thread.py:247 view:res.partner:0
@@ -341,12 +340,12 @@ msgstr ""
#. module: mail
#: view:mail.compose.message:0 view:mail.message:0
msgid "Cancel"
-msgstr ""
+msgstr "Mégsem"
#. module: mail
#: view:mail.message:0
msgid "Open"
-msgstr ""
+msgstr "Megnyitás"
#. module: mail
#: code:addons/mail/mail_thread.py:434
@@ -357,7 +356,7 @@ msgstr ""
#. module: mail
#: field:mail.message,user_id:0
msgid "Related User"
-msgstr ""
+msgstr "Kapcsolódó felhasználó"
#. module: mail
#: help:mail.compose.message,headers:0 help:mail.message,headers:0
diff --git a/addons/mail/i18n/ru.po b/addons/mail/i18n/ru.po
index d85c3660ed3..61b01489c39 100644
--- a/addons/mail/i18n/ru.po
+++ b/addons/mail/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
-"PO-Revision-Date: 2011-01-25 08:25+0000\n"
-"Last-Translator: Alexey Y. Fedotov \n"
+"PO-Revision-Date: 2012-10-26 17:02+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:36+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-27 04:59+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mail
#: field:mail.compose.message,subtype:0 field:mail.message,subtype:0
@@ -26,12 +26,12 @@ msgstr ""
#. module: mail
#: help:mail.compose.message,auto_delete:0
msgid "Permanently delete emails after sending"
-msgstr ""
+msgstr "Не сохранять сообщения после отправки"
#. module: mail
#: view:mail.message:0
msgid "Open Related Document"
-msgstr ""
+msgstr "Открыть связанный документ"
#. module: mail
#: view:mail.message:0
@@ -46,7 +46,7 @@ msgstr "Подробности сообщения"
#. module: mail
#: view:mail.thread:0
msgid "Communication History"
-msgstr ""
+msgstr "История общения"
#. module: mail
#: view:mail.message:0
@@ -57,24 +57,24 @@ msgstr "Объеденить по..."
#: model:ir.actions.act_window,name:mail.action_email_compose_message_wizard
#: view:mail.compose.message:0
msgid "Compose Email"
-msgstr ""
+msgstr "Написать письмо"
#. module: mail
#: help:mail.compose.message,body_text:0 help:mail.message,body_text:0
#: help:mail.message.common,body_text:0
msgid "Plain-text version of the message"
-msgstr ""
+msgstr "Простая текстовая версия сообщения"
#. module: mail
#: view:mail.compose.message:0
msgid "Body"
-msgstr ""
+msgstr "Содержимое"
#. module: mail
#: help:mail.compose.message,email_to:0 help:mail.message,email_to:0
#: help:mail.message.common,email_to:0
msgid "Message recipients"
-msgstr ""
+msgstr "Получатели сообщения"
#. module: mail
#: field:mail.compose.message,body_text:0 field:mail.message,body_text:0
@@ -85,7 +85,7 @@ msgstr ""
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Received"
-msgstr ""
+msgstr "Получено"
#. module: mail
#: view:mail.message:0
@@ -95,40 +95,40 @@ msgstr "Цепочка"
#. module: mail
#: field:mail.message,mail_server_id:0
msgid "Outgoing mail server"
-msgstr ""
+msgstr "Сервер исходящей почты"
#. module: mail
#: selection:mail.message,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Отменено"
#. module: mail
#: field:mail.compose.message,reply_to:0 field:mail.message,reply_to:0
#: field:mail.message.common,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Адрес ответа"
#. module: mail
#: help:mail.compose.message,body_html:0 help:mail.message,body_html:0
#: help:mail.message.common,body_html:0
msgid "Rich-text/HTML version of the message"
-msgstr ""
+msgstr "Форматный текст/HTML версия сообщения"
#. module: mail
#: field:mail.compose.message,auto_delete:0 field:mail.message,auto_delete:0
msgid "Auto Delete"
-msgstr ""
+msgstr "Авто удаление"
#. module: mail
#: help:mail.compose.message,email_bcc:0 help:mail.message,email_bcc:0
#: help:mail.message.common,email_bcc:0
msgid "Blind carbon copy message recipients"
-msgstr ""
+msgstr "Получатели скрытой копии сообщения"
#. module: mail
#: model:ir.model,name:mail.model_res_partner view:mail.message:0
msgid "Partner"
-msgstr "Контрагент"
+msgstr "Партнёр"
#. module: mail
#: field:mail.compose.message,subject:0 field:mail.message,subject:0
@@ -140,7 +140,7 @@ msgstr "Тема"
#: code:addons/mail/wizard/mail_compose_message.py:152
#, python-format
msgid "On %(date)s, "
-msgstr ""
+msgstr "За %(date)s, "
#. module: mail
#: field:mail.compose.message,email_from:0 field:mail.message,email_from:0
@@ -151,32 +151,32 @@ msgstr "От"
#. module: mail
#: view:mail.message:0
msgid "Email message"
-msgstr ""
+msgstr "Сообщение эл. почты"
#. module: mail
#: view:mail.compose.message:0
msgid "Send"
-msgstr ""
+msgstr "Отправить"
#. module: mail
#: view:mail.message:0
msgid "Failed"
-msgstr ""
+msgstr "Ошибка"
#. module: mail
#: view:mail.message:0 field:mail.message,state:0
msgid "State"
-msgstr ""
+msgstr "Состояние"
#. module: mail
#: view:mail.message:0
msgid "Reply"
-msgstr ""
+msgstr "Ответить"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Sent"
-msgstr ""
+msgstr "Отправлено"
#. module: mail
#: help:mail.compose.message,subtype:0 help:mail.message,subtype:0
@@ -185,11 +185,13 @@ msgid ""
"Type of message, usually 'html' or 'plain', used to select plaintext or rich "
"text contents accordingly"
msgstr ""
+"Тип сообщения, обычно 'html' или 'простой', используемый для выбора "
+"содержимого соответственно простого текста или форматного текста"
#. module: mail
#: view:mail.message:0
msgid "Recipients"
-msgstr ""
+msgstr "Получатели"
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
@@ -200,18 +202,18 @@ msgstr ""
#: field:mail.compose.message,res_id:0 field:mail.message,res_id:0
#: field:mail.message.common,res_id:0
msgid "Related Document ID"
-msgstr ""
+msgstr "ID связанного документа"
#. module: mail
#: view:mail.message:0
msgid "Advanced"
-msgstr ""
+msgstr "Дополнительно"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:157
#, python-format
msgid "Re:"
-msgstr ""
+msgstr "Ответ:"
#. module: mail
#: field:mail.compose.message,model:0 field:mail.message,model:0
@@ -232,37 +234,37 @@ msgstr "Искать эл. почту"
#. module: mail
#: help:mail.message,original:0
msgid "Original version of the message, as it was sent on the network"
-msgstr ""
+msgstr "Оригинальная версия сообщения, как было отправлено в сеть"
#. module: mail
#: view:mail.message:0
msgid "Partner Name"
-msgstr "Имя партнера"
+msgstr "Название партнера"
#. module: mail
#: view:mail.message:0
msgid "Retry"
-msgstr ""
+msgstr "Повторить"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Outgoing"
-msgstr ""
+msgstr "Исходящее"
#. module: mail
#: view:mail.message:0
msgid "Send Now"
-msgstr ""
+msgstr "Отправить сейчас"
#. module: mail
#: field:mail.message,partner_id:0
msgid "Related partner"
-msgstr ""
+msgstr "Связанный партнер"
#. module: mail
#: view:mail.message:0
msgid "User"
-msgstr ""
+msgstr "Пользователь"
#. module: mail
#: field:mail.compose.message,date:0 field:mail.message,date:0
@@ -273,13 +275,13 @@ msgstr "Дата"
#. module: mail
#: view:mail.message:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Расширенные фильтры..."
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:153
#, python-format
msgid "%(sender_name)s wrote:"
-msgstr ""
+msgstr "%(sender_name)s написал:"
#. module: mail
#: field:mail.compose.message,body_html:0 field:mail.message,body_html:0
@@ -290,7 +292,7 @@ msgstr ""
#. module: mail
#: field:mail.message,original:0
msgid "Original"
-msgstr ""
+msgstr "Оригинал"
#. module: mail
#: code:addons/mail/mail_thread.py:247 view:res.partner:0
@@ -302,13 +304,13 @@ msgstr "История"
#: field:mail.compose.message,message_id:0 field:mail.message,message_id:0
#: field:mail.message.common,message_id:0
msgid "Message-Id"
-msgstr ""
+msgstr "ID сообщения"
#. module: mail
#: view:mail.compose.message:0 field:mail.compose.message,attachment_ids:0
#: view:mail.message:0 field:mail.message,attachment_ids:0
msgid "Attachments"
-msgstr "Прикрепленные файлы"
+msgstr "Вложения"
#. module: mail
#: field:mail.compose.message,email_cc:0 field:mail.message,email_cc:0
@@ -325,7 +327,7 @@ msgstr " на "
#. module: mail
#: help:mail.message,auto_delete:0
msgid "Permanently delete this email after sending it, to save space"
-msgstr ""
+msgstr "Навсегда удалить это письмо после отправки, для экономии места"
#. module: mail
#: field:mail.compose.message,references:0 field:mail.message,references:0
@@ -341,18 +343,18 @@ msgstr "Вывести текст"
#. module: mail
#: view:mail.compose.message:0 view:mail.message:0
msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
#. module: mail
#: view:mail.message:0
msgid "Open"
-msgstr ""
+msgstr "Открыть"
#. module: mail
#: code:addons/mail/mail_thread.py:434
#, python-format
msgid "[OpenERP-Forward-Failed] %s"
-msgstr ""
+msgstr "[OpenERP-Forward-Failed] %s"
#. module: mail
#: field:mail.message,user_id:0
@@ -366,11 +368,13 @@ msgid ""
"Full message headers, e.g. SMTP session headers (usually available on "
"inbound messages only)"
msgstr ""
+"Полные заголовки сообщения, т.е. заголовки сессии SMTP (обычно доступные "
+"только во входящих сообщениях)"
#. module: mail
#: view:mail.message:0
msgid "Creation Month"
-msgstr ""
+msgstr "Месяц создания"
#. module: mail
#: field:mail.compose.message,email_to:0 field:mail.message,email_to:0
@@ -387,7 +391,7 @@ msgstr "Подробности"
#: model:ir.actions.act_window,name:mail.action_view_mailgate_thread
#: view:mail.thread:0
msgid "Email Threads"
-msgstr ""
+msgstr "Цепочки эл.писем"
#. module: mail
#: help:mail.compose.message,email_from:0 help:mail.message,email_from:0
@@ -396,28 +400,30 @@ msgid ""
"Message sender, taken from user preferences. If empty, this is not a mail "
"but a message."
msgstr ""
+"Отправитель сообщения, взятый из параметров пользователя. Если пусто, то это "
+"не почта, а сообщение."
#. module: mail
#: view:mail.message:0
msgid "Body (Plain)"
-msgstr ""
+msgstr "Текст (простой)"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:153
#, python-format
msgid "You"
-msgstr ""
+msgstr "Вы"
#. module: mail
#: help:mail.compose.message,message_id:0 help:mail.message,message_id:0
#: help:mail.message.common,message_id:0
msgid "Message unique identifier"
-msgstr ""
+msgstr "Уникальный идентификатор сообщения"
#. module: mail
#: view:mail.message:0
msgid "Body (Rich)"
-msgstr ""
+msgstr "Текст (форматный)"
#. module: mail
#: code:addons/mail/mail_message.py:155
@@ -427,6 +433,9 @@ msgid ""
" Subject: %s \n"
"\t"
msgstr ""
+"%s написал на %s: \n"
+" Тема: %s \n"
+"\t"
#. module: mail
#: model:ir.actions.act_window,name:mail.act_res_partner_emails
@@ -456,53 +465,74 @@ msgstr "Скрытая копия"
#. module: mail
#: model:ir.model,name:mail.model_mail_message_common
msgid "mail.message.common"
-msgstr ""
+msgstr "mail.message.common"
#. module: mail
#: help:mail.compose.message,references:0 help:mail.message,references:0
#: help:mail.message.common,references:0
msgid "Message references, such as identifiers of previous messages"
-msgstr ""
+msgstr "Ссылки сообщения, такие как идентификаторы предыдущих сообщений"
#. module: mail
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
-msgstr ""
+msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: mail
#: help:mail.compose.message,email_cc:0 help:mail.message,email_cc:0
#: help:mail.message.common,email_cc:0
msgid "Carbon copy message recipients"
-msgstr ""
+msgstr "Получатели скрытой копии сообщения"
#. module: mail
#: selection:mail.message,state:0
msgid "Delivery Failed"
-msgstr ""
+msgstr "Доставка не удалась"
#. module: mail
#: model:ir.model,name:mail.model_mail_message
msgid "Email Message"
-msgstr ""
+msgstr "Сообщение эл.почты"
#. module: mail
#: model:ir.model,name:mail.model_mail_thread view:mail.thread:0
msgid "Email Thread"
-msgstr ""
+msgstr "Цепочка эл.почты"
#. module: mail
#: field:mail.compose.message,filter_id:0
msgid "Filters"
-msgstr ""
+msgstr "Фильтры"
#. module: mail
#: code:addons/mail/mail_thread.py:220
#, python-format
msgid "Mail attachment"
-msgstr ""
+msgstr "Почтовое вложение"
#. module: mail
#: help:mail.compose.message,reply_to:0 help:mail.message,reply_to:0
#: help:mail.message.common,reply_to:0
msgid "Preferred response address for the message"
-msgstr ""
+msgstr "Предпочтительный адрес ответа для сообщения"
+
+#~ msgid "Message type"
+#~ msgstr "Тип сообщения"
+
+#~ msgid "Text contents"
+#~ msgstr "Текстовое содержимое"
+
+#~ msgid "Related Document model"
+#~ msgstr "Модель связанного документа"
+
+#~ msgid "E-mail composition wizard"
+#~ msgstr "Мастер создания электронной почты"
+
+#~ msgid "Rich-text contents"
+#~ msgstr "Форматное текстовое сообщение"
+
+#~ msgid "Related user"
+#~ msgstr "Связанный пользователь"
+
+#~ msgid "Message headers"
+#~ msgstr "Заголовки сообщения"
diff --git a/addons/web/i18n/hu.po b/addons/web/i18n/hu.po
index 2e6f36cb2cf..cea5493c029 100644
--- a/addons/web/i18n/hu.po
+++ b/addons/web/i18n/hu.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-08-24 09:16+0000\n"
+"PO-Revision-Date: 2012-10-26 12:17+0000\n"
"Last-Translator: Herczeg Péter \n"
"Language-Team: Hungarian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:02+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-27 05:15+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@@ -755,7 +755,7 @@ msgstr "Választani kell legalább egy rekordot!"
#. openerp-web
#: addons/web/static/src/js/views.js:875
msgid "Uploading..."
-msgstr ""
+msgstr "Feltöltés"
#. openerp-web
#: addons/web/static/src/js/views.js:885
diff --git a/addons/web_kanban/i18n/ru.po b/addons/web_kanban/i18n/ru.po
index f8e2f6454d6..a30f7c53997 100644
--- a/addons/web_kanban/i18n/ru.po
+++ b/addons/web_kanban/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
-"PO-Revision-Date: 2012-02-17 07:42+0000\n"
-"Last-Translator: Aleksei Motsik \n"
+"PO-Revision-Date: 2012-10-26 09:02+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-21 05:03+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-27 05:15+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web_kanban/static/src/js/kanban.js:10
@@ -35,7 +35,7 @@ msgstr "Вы действительно хотите удалить эту за
#. openerp-web
#: addons/web_kanban/static/src/js/kanban.js:839
msgid "Create: "
-msgstr ""
+msgstr "Создать: "
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:41
@@ -50,17 +50,17 @@ msgstr "осталось)"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:71
msgid "Add"
-msgstr ""
+msgstr "Добавить"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:71
msgid "or"
-msgstr ""
+msgstr "или"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:72
msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
#~ msgid "Create"
#~ msgstr "Создать"
From 59dec931a2dbfb76279699f9a2488b9470598ccb Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 09:28:29 +0100
Subject: [PATCH 142/154] [IMP] useability of project and contracts
bzr revid: fp@openerp.com-20121028082829-ito7d71piwc4iael
---
.../account_analytic_analysis_view.xml | 72 ++++++++++---------
.../static/src/css/analytic.css | 6 +-
.../static/src/css/analytic.sass | 5 +-
addons/analytic/analytic_view.xml | 2 +-
.../analytic_contract_hr_expense_view.xml | 25 ++++---
addons/project/project_view.xml | 4 +-
6 files changed, 68 insertions(+), 46 deletions(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index b1ef852f12f..7678dc59f75 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -30,18 +30,18 @@
-
-
+
+ When invoicing on timesheet, OpenERP uses the
+ pricelist of the contract which uses the price
+ defined on the product related to each employee to
+ define the customer invoice price rate.
+
+
+
+
+
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 5ea8c59b848..369dbc829c2 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -156,7 +156,7 @@ class account_analytic_account(osv.osv):
'debit': fields.function(_debit_credit_bal_qtty, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
- 'quantity_max': fields.float('Prepaid Units', help='Sets the higher limit of time to work on the contract.'),
+ 'quantity_max': fields.float('Prepaid Units', help='Sets the higher limit of time to work on the contract, based on the timesheet.'),
'partner_id': fields.many2one('res.partner', 'Customer'),
'user_id': fields.many2one('res.users', 'Project Manager'),
'manager_id': fields.many2one('res.users', 'Account Manager'),
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index 9233845f7eb..c3338cd3c84 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.py
@@ -21,39 +21,51 @@
from osv import fields,osv
from tools.translate import _
+import decimal_precision as dp
class analytic_user_funct_grid(osv.osv):
-
_name="analytic.user.funct.grid"
- _description= "Relation table between users and products on a analytic account"
+ _description= "Price per User"
_columns={
'user_id': fields.many2one("res.users", "User", required=True,),
- 'product_id': fields.many2one("product.product", "Product", required=True,),
+ 'product_id': fields.many2one("product.product", "Service", required=True,),
'account_id': fields.many2one("account.analytic.account", "Analytic Account", required=True,),
- }
+ 'uom_id': fields.related("product_id", "uom_id", relation="product.uom", string="Unit of Measure", type="many2one", readonly=True),
+ 'price': fields.float('Price', digits_compute=dp.get_precision('Product Price'), help="Price per hour for this user.", required=True),
+ }
+ def onchange_user_product_id(self, cr, uid, ids, user_id, product_id, context=None):
+ if not user_id:
+ return {}
+ emp_obj = self.pool.get('hr.employee')
+ emp_id = emp_obj.search(cr, uid, [('user_id', '=', user_id)], context=context)
+ if not emp_id:
+ return {}
-analytic_user_funct_grid()
+ value = {}
+ emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
+ if emp.product_id and not product_id:
+ value['product_id'] = emp.product_id.id
+ prod = emp.product_id
+ if product_id:
+ prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
+ if prod:
+ value['price'] = prod.list_price
+ value['uom_id'] = prod.uom_id.id
+ return {'value': value}
class account_analytic_account(osv.osv):
-
_inherit = "account.analytic.account"
_columns = {
'user_product_ids': fields.one2many('analytic.user.funct.grid', 'account_id', 'Users/Products Rel.'),
}
-account_analytic_account()
-
class hr_analytic_timesheet(osv.osv):
-
_inherit = "hr.analytic.timesheet"
-
-
# Look in account, if no value for the user => look in parent until there is no more parent to look
# Take the first found... if nothing found => return False
def _get_related_user_account_recursiv(self, cr, uid, user_id, account_id):
-
temp=self.pool.get('analytic.user.funct.grid').search(cr, uid, [('user_id', '=', user_id),('account_id', '=', account_id) ])
account=self.pool.get('account.analytic.account').browse(cr, uid, account_id)
if temp:
@@ -64,7 +76,6 @@ class hr_analytic_timesheet(osv.osv):
else:
return False
-
def on_change_account_id(self, cr, uid, ids, account_id, user_id=False, unit_amount=0):
res = {}
if not (account_id):
@@ -106,12 +117,6 @@ class hr_analytic_timesheet(osv.osv):
return res
def on_change_user_id(self, cr, uid, ids, user_id, account_id, unit_amount=0):
- res = {}
- if not (user_id):
- #avoid a useless call to super
- return res
-
- #get the old values from super
res = super(hr_analytic_timesheet, self).on_change_user_id(cr, uid, ids, user_id)
if account_id:
@@ -143,5 +148,3 @@ class hr_analytic_timesheet(osv.osv):
hr_analytic_timesheet()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_user_function/analytic_user_function_view.xml b/addons/analytic_user_function/analytic_user_function_view.xml
index 6fa141f480d..490b3026d7f 100644
--- a/addons/analytic_user_function/analytic_user_function_view.xml
+++ b/addons/analytic_user_function/analytic_user_function_view.xml
@@ -7,9 +7,11 @@
analytic_user_funct_grid.tree
analytic.user.funct.grid
-
-
-
+
+
+
+
+
@@ -18,9 +20,13 @@
analytic_user_funct_grid.form
analytic.user.funct.grid
-
-
-
+
+
+
+
+
+
+
@@ -29,13 +35,26 @@
account.analytic.account.form
account.analytic.account
+
-
-
-
-
-
+
+
+
+
+ Define a specific service (e.g. Senior Consultant)
+ and price for some users to use these data instead
+ of the default values when invoicing the customer.
+
+
+ OpenERP will recursively search on parent accounts
+ to check if specific conditions are defined for a
+ specific user. This allows to set invoicing
+ conditions for a group of contracts.
+
+
+
+
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 67fcb100468..88094b4a0e0 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -70,8 +70,7 @@ class account_analytic_account(osv.osv):
'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount',
help="Total invoiced"),
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Timesheet Invoicing Ratio',
- help="This field allows you to define the rate in case you plan to reinvoice " \
- "the costs in this analytic account: timesheets, expenses, ..."),
+ help="You usually invoice 100% of the timesheets. But if you mix fixed price and timesheet invoicing, you may use another ratio. For instance, if you do a 20% advance invoice (fixed price, based on a sale order), you should invoice the rest on timesheet with a 80% ratio."),
}
_defaults = {
'pricelist_id': lambda self, cr, uid, ctx: ctx.get('pricelist_id', False),
From af4b056f242219127fee061e7a1e007c31d83ca5 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 12:05:06 +0100
Subject: [PATCH 145/154] [IMP] cleaned timesheets and contracts useability
bzr revid: fp@openerp.com-20121028110506-v53w8oh42xzrm9ff
---
.../account_analytic_analysis_view.xml | 2 +-
addons/analytic/analytic.py | 2 +-
addons/analytic/analytic_view.xml | 6 ++++--
addons/hr_timesheet/hr_timesheet.py | 2 +-
4 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index e1708cdd018..513eb4c0ee2 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -91,7 +91,7 @@
or view
- No hours to invoice, create
+ Nothing to invoice, create
Once the end date of the contract is
passed or the maximum number of service
- units is reached, the account manager
- is warned by email to renew the contract.
+ units (e.g. support contract) is
+ reached, the account manager is warned
+ by email to renew the contract with the
+ customer.
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index 3248f31a082..9e5337492d9 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -154,7 +154,7 @@ class hr_analytic_timesheet(osv.osv):
'date': lambda self, cr, uid, ctx: ctx.get('date', fields.date.context_today(self,cr,uid,context=ctx)),
'user_id': lambda obj, cr, uid, ctx: ctx.get('user_id', uid),
}
- def on_change_account_id(self, cr, uid, ids, account_id):
+ def on_change_account_id(self, cr, uid, ids, account_id, context=None):
return {'value':{}}
def on_change_date(self, cr, uid, ids, date):
From eff45f038d0398fd72e761eb445258a58d99a188 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 13:17:30 +0100
Subject: [PATCH 146/154] [IMP] invoice on timesheet using user price
bzr revid: fp@openerp.com-20121028121730-1sbhsoyxa220oktn
---
.../account_analytic_analysis.py | 42 ++++++-------------
.../analytic_user_function.py | 10 ++++-
.../wizard/hr_timesheet_invoice_create.py | 23 ++++++----
3 files changed, 35 insertions(+), 40 deletions(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 70beb41ac13..0fffde30719 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -74,36 +74,18 @@ class account_analytic_account(osv.osv):
for id in ids:
res[id][f] = 0.0
res2 = {}
- if parent_ids:
- # Amount uninvoiced hours to invoice at sale price
- # Warning
- # This computation doesn't take care of pricelist !
- # Just consider list_price
- cr.execute("""SELECT account_analytic_account.id, \
- COALESCE(SUM (product_template.list_price * \
- account_analytic_line.unit_amount * \
- ((100-hr_timesheet_invoice_factor.factor)/100)), 0.0) \
- AS ca_to_invoice \
- FROM product_template \
- JOIN product_product \
- ON product_template.id = product_product.product_tmpl_id \
- JOIN account_analytic_line \
- ON account_analytic_line.product_id = product_product.id \
- JOIN account_analytic_journal \
- ON account_analytic_line.journal_id = account_analytic_journal.id \
- JOIN account_analytic_account \
- ON account_analytic_account.id = account_analytic_line.account_id \
- JOIN hr_timesheet_invoice_factor \
- ON hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \
- WHERE account_analytic_account.id IN %s \
- AND account_analytic_line.invoice_id IS NULL \
- AND account_analytic_line.to_invoice IS NOT NULL \
- AND account_analytic_journal.type = 'general' \
- GROUP BY account_analytic_account.id;""", (parent_ids,))
- for account_id, sum in cr.fetchall():
- if account_id not in res:
- res[account_id] = {}
- res[account_id][f] = round(sum, dp)
+ for account in accounts:
+ cr.execute("SELECT product_id, user_id, to_invoice, sum(unit_amount), product_uom_id, name " \
+ "FROM account_analytic_line as line " \
+ "WHERE account_id = %s " \
+ "AND invoice_id is NULL AND to_invoice IS NOT NULL " \
+ "GROUP BY product_id, user_id, to_invoice, product_uom_id, name", (account.id,))
+
+ res[account.id][f] = 0.0
+ for product_id, user_id, factor_id, qty, uom, line_name in cr.fetchall():
+ price = self.pool.get('account.analytic.line')._get_invoice_price(cr, uid, account, product_id, user_id, qty, context)
+ factor = self.pool.get('hr_timesheet_invoice.factor').browse(cr, uid, factor_id, context=context)
+ res[account.id][f] += price * qty * (100-factor.factor or 0.0) / 100.0
# sum both result on account_id
for id in ids:
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index c3338cd3c84..e5902ca56c2 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.py
@@ -146,5 +146,13 @@ class hr_analytic_timesheet(osv.osv):
res ['value']['general_account_id']= a
return res
-hr_analytic_timesheet()
+class account_analytic_line(osv.osv):
+ _inherit = "account.analytic.line"
+ def _get_invoice_price(self, cr, uid, account, product_id, user_id, qty, context = {}):
+ print 'Call'
+ for grid in account.user_product_ids:
+ if grid.user_id.id==user_id:
+ print '***', grid.price
+ return grid.price
+ return super(account_analytic_line, self)._get_invoice_price(cr, uid, account, product_id, user_id, qty, context)
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
index 2e220a9397b..5ec60c1ef52 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
@@ -29,6 +29,15 @@ from tools.translate import _
class account_analytic_line(osv.osv):
_inherit = "account.analytic.line"
+ def _get_invoice_price(self, cr, uid, account, product_id, user_id, qty, context = {}):
+ pro_price_obj = self.pool.get('product.pricelist')
+ if account.pricelist_id:
+ pl = account.pricelist_id.id
+ price = pro_price_obj.price_get(cr,uid,[pl], product_id, qty or 1.0, account.partner_id.id, context=context)[pl]
+ else:
+ price = 0.0
+ return price
+
#
# data = {
@@ -45,7 +54,6 @@ class account_analytic_line(osv.osv):
invoice_obj = self.pool.get('account.invoice')
product_obj = self.pool.get('product.product')
invoice_factor_obj = self.pool.get('hr_timesheet_invoice.factor')
- pro_price_obj = self.pool.get('product.pricelist')
fiscal_pos_obj = self.pool.get('account.fiscal.position')
product_uom_obj = self.pool.get('product.uom')
invoice_line_obj = self.pool.get('account.invoice.line')
@@ -99,13 +107,13 @@ class account_analytic_line(osv.osv):
last_invoice = invoice_obj.create(cr, uid, curr_invoice, context=context2)
invoices.append(last_invoice)
- cr.execute("SELECT product_id, to_invoice, sum(unit_amount), product_uom_id, name " \
+ cr.execute("SELECT product_id, user_id, to_invoice, sum(unit_amount), product_uom_id, name " \
"FROM account_analytic_line as line " \
"WHERE account_id = %s " \
"AND id IN %s AND to_invoice IS NOT NULL " \
- "GROUP BY product_id, to_invoice, product_uom_id, name", (account.id, tuple(ids),))
+ "GROUP BY product_id, user_id, to_invoice, product_uom_id, name", (account.id, tuple(ids),))
- for product_id, factor_id, qty, uom, line_name in cr.fetchall():
+ for product_id, user_id, factor_id, qty, uom, line_name in cr.fetchall():
if data.get('product'):
product_id = data['product'][0]
product = product_obj.browse(cr, uid, product_id, context=context2)
@@ -118,11 +126,8 @@ class account_analytic_line(osv.osv):
ctx = context.copy()
ctx.update({'uom':uom})
- if account.pricelist_id:
- pl = account.pricelist_id.id
- price = pro_price_obj.price_get(cr,uid,[pl], product_id, qty or 1.0, account.partner_id.id, context=ctx)[pl]
- else:
- price = 0.0
+
+ price = self._get_invoice_price(cr, uid, account, product_id, user_id, qty, ctx)
general_account = product.product_tmpl_id.property_account_income or product.categ_id.property_account_income_categ
if not general_account:
From 06f1c8ddfe1059761a39c7327cac59a179370994 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 13:19:43 +0100
Subject: [PATCH 147/154] [IMP] remove print statement
bzr revid: fp@openerp.com-20121028121943-0ipufxo9omjoalm3
---
addons/analytic_user_function/analytic_user_function.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index e5902ca56c2..c2a7ae8f05a 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.py
@@ -149,10 +149,8 @@ class hr_analytic_timesheet(osv.osv):
class account_analytic_line(osv.osv):
_inherit = "account.analytic.line"
def _get_invoice_price(self, cr, uid, account, product_id, user_id, qty, context = {}):
- print 'Call'
for grid in account.user_product_ids:
if grid.user_id.id==user_id:
- print '***', grid.price
return grid.price
return super(account_analytic_line, self)._get_invoice_price(cr, uid, account, product_id, user_id, qty, context)
From f721ff1d14e267d04e2d8aa24a95e5b190b9e943 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 13:32:16 +0100
Subject: [PATCH 148/154] [FIX] launch config wizards after changing settings
bzr revid: fp@openerp.com-20121028123216-sj9ds9xa9wtiuzyy
---
openerp/addons/base/res/res_config.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py
index c24fc11a377..1aa108c14d2 100644
--- a/openerp/addons/base/res/res_config.py
+++ b/openerp/addons/base/res/res_config.py
@@ -361,6 +361,7 @@ class res_config_installer(osv.osv_memory):
'to install', ['uninstalled'], context=context)
cr.commit() #TOFIX: after remove this statement, installation wizard is fail
new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)
+
res_config_installer()
DEPRECATION_MESSAGE = 'You are using an addon using old-style configuration '\
@@ -538,6 +539,10 @@ class res_config_settings(osv.osv_memory):
ir_module.button_uninstall(cr, uid, to_uninstall_ids, context=context)
ir_module.button_immediate_install(cr, uid, to_install_ids, context=context)
+ config = self.pool.get('res.config').next(cr, uid, [], context=context) or {}
+ if config.get('type') not in ('ir.actions.act_window_close',):
+ return config
+
# force client-side reload (update user menu and current view)
return {
'type': 'ir.actions.client',
From 4f0c5bf19c04442a41d81d1f0045093858967b80 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 16:15:37 +0100
Subject: [PATCH 149/154] [IMP] contract useability and invoicing
bzr revid: fp@openerp.com-20121028151537-98wz6qiosmumbqvg
---
.../account_analytic_analysis_view.xml | 4 ++--
addons/analytic/analytic.py | 4 ++--
addons/hr_timesheet/hr_timesheet.py | 2 +-
addons/hr_timesheet/hr_timesheet_view.xml | 17 ++++++++++++++++
.../hr_timesheet_invoice_data.xml | 5 +++++
.../hr_timesheet_invoice_view.xml | 4 ++--
.../hr_timesheet_final_invoice_create.py | 7 +++++--
.../wizard/hr_timesheet_invoice_create.py | 3 ++-
...hr_timesheet_invoice_create_final_view.xml | 20 ++++++++++++-------
addons/sale/sale_view.xml | 15 +-------------
10 files changed, 50 insertions(+), 31 deletions(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 513eb4c0ee2..2e89f85821d 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -61,7 +61,7 @@
- No order to invoice, view
+ No order to invoice, create
-
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index f4c77177d0c..3cb98d81f43 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -141,11 +141,11 @@ class account_analytic_account(osv.osv):
'name': fields.char('Account/Contract Name', size=128, required=True),
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
'code': fields.char('Reference', size=24, select=True),
- 'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
+ 'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Contract')], 'Type of Account', required=True,
help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"\
"If you select Contract or Project, it offers you the possibility to manage the validity and the invoicing options for this account.\n"\
- "The special type 'Template of Project' allows you to define a template with default data that you can reuse easily."),
+ "The special type 'Template of Contract' allows you to define a template with default data that you can reuse easily."),
'template_id': fields.many2one('account.analytic.account', 'Template of Contract'),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index 9e5337492d9..216541501b1 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -195,7 +195,7 @@ class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
_columns = {
- 'use_timesheets': fields.boolean('Timesheets', help="Check this field if this project manages timesheets"),
+ 'use_timesheets': fields.boolean('Use Timesheets', help="Check this field if this project manages timesheets"),
}
def on_change_template(self, cr, uid, ids, template_id, context=None):
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 55c4680b6a1..ebdd05ed59c 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -85,6 +85,23 @@
account.analytic.account
tree,form
form
+
+
+ No activity yet on this contract.
+
+ In OpenERP, contracts and projects are implemented using
+ analytic account. So, you can track costs and revenues to analyse
+ your margins easily.
+
+ Costs will be created automatically when you register supplier
+ invoices, expenses or timesheets.
+
+ Revenues will be created automatically when you create customer
+ invoices. Customer invoices can be created based on sale orders
+ (fixed price invoices), on timesheets (based on the work done) or
+ on expenses (e.g. reinvoicing of travel costs).
+
+
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml
index 462888e0b39..5c0bc6d702f 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml
@@ -16,5 +16,10 @@
50%
50.0
+
+ 80%
+ 80%
+ 20.0
+
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
index 95fa39a6eda..e58b33634f8 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py
index 4b98f7ec23f..2671cd1ab90 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py
@@ -36,14 +36,17 @@ class final_invoice_create(osv.osv_memory):
_description = 'Create invoice from timesheet final'
_columns = {
'date': fields.boolean('Date', help='Display date in the history of works'),
- 'time': fields.boolean('Time spent', help='Display time in the history of works'),
- 'name': fields.boolean('Name of entry', help='Display detail of work in the invoice line.'),
+ 'time': fields.boolean('Time Spent', help='Display time in the history of works'),
+ 'name': fields.boolean('Log of Activity', help='Display detail of work in the invoice line.'),
'price': fields.boolean('Cost', help='Display cost of the item you reinvoice'),
'product': fields.many2one('product.product', 'Product', help='The product that will be used to invoice the remaining amount'),
}
def do_create(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids, [], context=context)[0]
+ # hack for fixing small issue (context should not propagate implicitly between actions)
+ if 'default_type' in context:
+ del context['default_type']
ids = self.pool.get('account.analytic.line').search(cr, uid, [('invoice_id','=',False),('to_invoice','<>', False), ('account_id', 'in', context['active_ids'])], context=context)
invs = self.pool.get('account.analytic.line').invoice_cost_create(cr, uid, ids, data, context=context)
mod_obj = self.pool.get('ir.model.data')
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
index 5ec60c1ef52..1201cc7d4e5 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
@@ -169,7 +169,8 @@ class account_analytic_line(osv.osv):
details.append(line['name'])
note.append(u' - '.join(map(lambda x: unicode(x) or '',details)))
- curr_line['name'] += "\n".join(map(lambda x: unicode(x) or '',note))
+ if note:
+ curr_line['name'] += "\n" + ("\n".join(map(lambda x: unicode(x) or '',note)))
invoice_line_obj.create(cr, uid, curr_line, context=context)
cr.execute("update account_analytic_line set invoice_id=%s WHERE account_id = %s and id IN %s", (last_invoice, account.id, tuple(ids)))
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
index a0a0ceea2ac..d1c95212139 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml
@@ -26,13 +26,19 @@
hr.timesheet.invoice.create.final
-
-
-
-
-
-
-
+ Do you want to show details of each activity to your customer?
+
+
+
+
+
+
+
+
+
+
+
+
or
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index bdc687f6e87..3d1c84659a3 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -306,20 +306,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -360,6 +346,7 @@
+
From 75e76aef95c46c394e7e78df9c6421eacb244fbf Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 16:24:19 +0100
Subject: [PATCH 150/154] [IMP] filter timesheets to invoice
bzr revid: fp@openerp.com-20121028152419-sufllvbm16q1nuw5
---
.../hr_timesheet_invoice_view.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
index e58b33634f8..f4536309d70 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
@@ -91,6 +91,20 @@
+
+ hr.analytic.timesheet.search.to_invoice
+ hr.analytic.timesheet
+
+
+
+
+
+
+
+
+
+
+
account.analytic.line.tree.to_invoice
account.analytic.line
From 892c44f2974a666dafd070d48373ad4fb199ef6d Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 16:37:55 +0100
Subject: [PATCH 151/154] [FIX]
bzr revid: fp@openerp.com-20121028153755-thiih4im6dzaxn28
---
addons/sale_stock/sale_stock_view.xml | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index a033e3e6d33..328581bf77c 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -68,18 +68,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
From c645cff9528152d2967f0ed19c8f316a212080a0 Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Sun, 28 Oct 2012 17:45:05 +0100
Subject: [PATCH 152/154] [FIX]
bzr revid: fp@openerp.com-20121028164505-n339qqi3nws4951b
---
.../account_analytic_analysis_view.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 2e89f85821d..fd32edba0a1 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -90,9 +90,9 @@
string="⇒ Invoice"/>
or view
-
+
Nothing to invoice, create
-
+
Date: Sun, 28 Oct 2012 17:49:09 +0100
Subject: [PATCH 153/154] [fIX] typo
bzr revid: fp@openerp.com-20121028164909-a20voaqf4swbe4r8
---
.../analytic_contract_hr_expense_view.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml
index bef0321a7c1..5628846a6a0 100644
--- a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml
+++ b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml
@@ -28,15 +28,15 @@
class="oe_link"
string="⇒ Invoice" type="object"
/>
- of view
+ or view
- None to invoice, create
+ Nothing to invoice, create
+ string="expenses" type="object"/>
From bcf7db1651bef48b0495d6234c18dcc4dee506ce Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Mon, 29 Oct 2012 05:00:21 +0000
Subject: [PATCH 154/154] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20121029050021-3df666wg6wqeormq
---
addons/mail/i18n/hr.po | 147 ++++++++++++++++++++++-------------------
1 file changed, 78 insertions(+), 69 deletions(-)
diff --git a/addons/mail/i18n/hr.po b/addons/mail/i18n/hr.po
index 36de7acc0b1..4535063726e 100644
--- a/addons/mail/i18n/hr.po
+++ b/addons/mail/i18n/hr.po
@@ -8,45 +8,45 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
-"PO-Revision-Date: 2011-12-22 17:13+0000\n"
-"Last-Translator: Tomislav Bosnjakovic \n"
+"PO-Revision-Date: 2012-10-28 19:42+0000\n"
+"Last-Translator: Marijan Rajic \n"
"Language-Team: Croatian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:36+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-29 05:00+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mail
#: field:mail.compose.message,subtype:0 field:mail.message,subtype:0
#: field:mail.message.common,subtype:0
msgid "Message Type"
-msgstr ""
+msgstr "Tip poruke"
#. module: mail
#: help:mail.compose.message,auto_delete:0
msgid "Permanently delete emails after sending"
-msgstr ""
+msgstr "Trajno obrisati e-poštu nakon slanja"
#. module: mail
#: view:mail.message:0
msgid "Open Related Document"
-msgstr ""
+msgstr "Otvori povezani dokument"
#. module: mail
#: view:mail.message:0
msgid "Open Attachments"
-msgstr "Otvori privitke"
+msgstr "Otvori priloge"
#. module: mail
#: view:mail.message:0
msgid "Message Details"
-msgstr "Detalji poruke"
+msgstr "Detalji porukue"
#. module: mail
#: view:mail.thread:0
msgid "Communication History"
-msgstr ""
+msgstr "Povijest komunikacije"
#. module: mail
#: view:mail.message:0
@@ -57,73 +57,73 @@ msgstr "Grupiraj po..."
#: model:ir.actions.act_window,name:mail.action_email_compose_message_wizard
#: view:mail.compose.message:0
msgid "Compose Email"
-msgstr ""
+msgstr "Sastavi e-poštu"
#. module: mail
#: help:mail.compose.message,body_text:0 help:mail.message,body_text:0
#: help:mail.message.common,body_text:0
msgid "Plain-text version of the message"
-msgstr ""
+msgstr "Verzija poruke u običnom tekstu"
#. module: mail
#: view:mail.compose.message:0
msgid "Body"
-msgstr ""
+msgstr "Sadržaj"
#. module: mail
#: help:mail.compose.message,email_to:0 help:mail.message,email_to:0
#: help:mail.message.common,email_to:0
msgid "Message recipients"
-msgstr ""
+msgstr "Primatelji poruke"
#. module: mail
#: field:mail.compose.message,body_text:0 field:mail.message,body_text:0
#: field:mail.message.common,body_text:0
msgid "Text Contents"
-msgstr ""
+msgstr "Sadržaj"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Received"
-msgstr ""
+msgstr "Primljeno"
#. module: mail
#: view:mail.message:0
msgid "Thread"
-msgstr ""
+msgstr "Nit"
#. module: mail
#: field:mail.message,mail_server_id:0
msgid "Outgoing mail server"
-msgstr ""
+msgstr "Izlazni poslužitelj e-pošte"
#. module: mail
#: selection:mail.message,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazano"
#. module: mail
#: field:mail.compose.message,reply_to:0 field:mail.message,reply_to:0
#: field:mail.message.common,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Odgovori na"
#. module: mail
#: help:mail.compose.message,body_html:0 help:mail.message,body_html:0
#: help:mail.message.common,body_html:0
msgid "Rich-text/HTML version of the message"
-msgstr ""
+msgstr "Verzija poruke u Rich-text/HTML formatu"
#. module: mail
#: field:mail.compose.message,auto_delete:0 field:mail.message,auto_delete:0
msgid "Auto Delete"
-msgstr ""
+msgstr "Auto brisanje"
#. module: mail
#: help:mail.compose.message,email_bcc:0 help:mail.message,email_bcc:0
#: help:mail.message.common,email_bcc:0
msgid "Blind carbon copy message recipients"
-msgstr ""
+msgstr "Primatelji skrivene kopije poruke"
#. module: mail
#: model:ir.model,name:mail.model_res_partner view:mail.message:0
@@ -134,13 +134,13 @@ msgstr "Partner"
#: field:mail.compose.message,subject:0 field:mail.message,subject:0
#: field:mail.message.common,subject:0
msgid "Subject"
-msgstr ""
+msgstr "Naslov"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:152
#, python-format
msgid "On %(date)s, "
-msgstr ""
+msgstr "Na %(date)s, "
#. module: mail
#: field:mail.compose.message,email_from:0 field:mail.message,email_from:0
@@ -151,32 +151,32 @@ msgstr "Od"
#. module: mail
#: view:mail.message:0
msgid "Email message"
-msgstr ""
+msgstr "Poruka e-pošte"
#. module: mail
#: view:mail.compose.message:0
msgid "Send"
-msgstr ""
+msgstr "Pošalji"
#. module: mail
#: view:mail.message:0
msgid "Failed"
-msgstr ""
+msgstr "Neuspjelo"
#. module: mail
#: view:mail.message:0 field:mail.message,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: mail
#: view:mail.message:0
msgid "Reply"
-msgstr ""
+msgstr "Odgovor"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Sent"
-msgstr ""
+msgstr "Poslano"
#. module: mail
#: help:mail.compose.message,subtype:0 help:mail.message,subtype:0
@@ -185,39 +185,41 @@ msgid ""
"Type of message, usually 'html' or 'plain', used to select plaintext or rich "
"text contents accordingly"
msgstr ""
+"Tip poruke, obično 'html' ili 'običan tekst', koristi se za odabir običnog "
+"ili bogatije formatiranog teksta"
#. module: mail
#: view:mail.message:0
msgid "Recipients"
-msgstr ""
+msgstr "Primatelji"
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
msgid "Email composition wizard"
-msgstr ""
+msgstr "Čarobnjak za sastavljanje e-pošte"
#. module: mail
#: field:mail.compose.message,res_id:0 field:mail.message,res_id:0
#: field:mail.message.common,res_id:0
msgid "Related Document ID"
-msgstr ""
+msgstr "Povezani ID dokumenta"
#. module: mail
#: view:mail.message:0
msgid "Advanced"
-msgstr ""
+msgstr "Napredno"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:157
#, python-format
msgid "Re:"
-msgstr ""
+msgstr "Re:"
#. module: mail
#: field:mail.compose.message,model:0 field:mail.message,model:0
#: field:mail.message.common,model:0
msgid "Related Document Model"
-msgstr ""
+msgstr "Povezani model dokumenta"
#. module: mail
#: view:mail.message:0
@@ -227,42 +229,42 @@ msgstr "Mjesec"
#. module: mail
#: view:mail.message:0
msgid "Email Search"
-msgstr "Pretraživanje e-mailova"
+msgstr "Pretraga e-pošte"
#. module: mail
#: help:mail.message,original:0
msgid "Original version of the message, as it was sent on the network"
-msgstr ""
+msgstr "Originalna varijanta poruke, kakva je poslana na mrežu"
#. module: mail
#: view:mail.message:0
msgid "Partner Name"
-msgstr "Naziv partnera"
+msgstr "Ime partnera"
#. module: mail
#: view:mail.message:0
msgid "Retry"
-msgstr ""
+msgstr "Pokušaj ponovo"
#. module: mail
#: view:mail.message:0 selection:mail.message,state:0
msgid "Outgoing"
-msgstr ""
+msgstr "Odlazno"
#. module: mail
#: view:mail.message:0
msgid "Send Now"
-msgstr ""
+msgstr "Pošalji odmah"
#. module: mail
#: field:mail.message,partner_id:0
msgid "Related partner"
-msgstr ""
+msgstr "Povezani partner"
#. module: mail
#: view:mail.message:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: mail
#: field:mail.compose.message,date:0 field:mail.message,date:0
@@ -273,19 +275,19 @@ msgstr "Datum"
#. module: mail
#: view:mail.message:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "Prošireni filteri..."
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:153
#, python-format
msgid "%(sender_name)s wrote:"
-msgstr ""
+msgstr "%(sender_name)s je napisao:"
#. module: mail
#: field:mail.compose.message,body_html:0 field:mail.message,body_html:0
#: field:mail.message.common,body_html:0
msgid "Rich-text Contents"
-msgstr ""
+msgstr "Formatirani tekst"
#. module: mail
#: field:mail.message,original:0
@@ -346,18 +348,18 @@ msgstr ""
#. module: mail
#: view:mail.message:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: mail
#: code:addons/mail/mail_thread.py:434
#, python-format
msgid "[OpenERP-Forward-Failed] %s"
-msgstr ""
+msgstr "[OpenERP-Forward-Failed] %s"
#. module: mail
#: field:mail.message,user_id:0
msgid "Related User"
-msgstr ""
+msgstr "Povezani korisnik"
#. module: mail
#: help:mail.compose.message,headers:0 help:mail.message,headers:0
@@ -366,11 +368,13 @@ msgid ""
"Full message headers, e.g. SMTP session headers (usually available on "
"inbound messages only)"
msgstr ""
+"Cjelovito zaglavlje poruke, npr. zaglavlje SMTP sesije (obično dostupno samo "
+"kod dolaznih poruka)"
#. module: mail
#: view:mail.message:0
msgid "Creation Month"
-msgstr ""
+msgstr "Mjesec kreiranja"
#. module: mail
#: field:mail.compose.message,email_to:0 field:mail.message,email_to:0
@@ -387,7 +391,7 @@ msgstr "Detalji"
#: model:ir.actions.act_window,name:mail.action_view_mailgate_thread
#: view:mail.thread:0
msgid "Email Threads"
-msgstr ""
+msgstr "Niti e-pošte"
#. module: mail
#: help:mail.compose.message,email_from:0 help:mail.message,email_from:0
@@ -396,28 +400,30 @@ msgid ""
"Message sender, taken from user preferences. If empty, this is not a mail "
"but a message."
msgstr ""
+"Pošiljatelj poruke, preuzet iz korisničkih preferenci. Ukoliko je prazno, "
+"biti će poruka a ne e-pošta."
#. module: mail
#: view:mail.message:0
msgid "Body (Plain)"
-msgstr ""
+msgstr "Tijelo (obično)"
#. module: mail
#: code:addons/mail/wizard/mail_compose_message.py:153
#, python-format
msgid "You"
-msgstr ""
+msgstr "Vi"
#. module: mail
#: help:mail.compose.message,message_id:0 help:mail.message,message_id:0
#: help:mail.message.common,message_id:0
msgid "Message unique identifier"
-msgstr ""
+msgstr "Jedinstveni identifikator poruke"
#. module: mail
#: view:mail.message:0
msgid "Body (Rich)"
-msgstr ""
+msgstr "Tijelo (formatirano)"
#. module: mail
#: code:addons/mail/mail_message.py:155
@@ -427,6 +433,9 @@ msgid ""
" Subject: %s \n"
"\t"
msgstr ""
+"%s napisano %s: \n"
+" Predmet: %s \n"
+"\t"
#. module: mail
#: model:ir.actions.act_window,name:mail.act_res_partner_emails
@@ -445,64 +454,64 @@ msgstr "Poruke"
#: field:mail.compose.message,headers:0 field:mail.message,headers:0
#: field:mail.message.common,headers:0
msgid "Message Headers"
-msgstr ""
+msgstr "Zaglavlja poruke"
#. module: mail
#: field:mail.compose.message,email_bcc:0 field:mail.message,email_bcc:0
#: field:mail.message.common,email_bcc:0
msgid "Bcc"
-msgstr "Bcc"
+msgstr "Skrivena kopija"
#. module: mail
#: model:ir.model,name:mail.model_mail_message_common
msgid "mail.message.common"
-msgstr ""
+msgstr "mail.message.common"
#. module: mail
#: help:mail.compose.message,references:0 help:mail.message,references:0
#: help:mail.message.common,references:0
msgid "Message references, such as identifiers of previous messages"
-msgstr ""
+msgstr "Reference poruke, poput identifikatora prethodnih poruka"
#. module: mail
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
-msgstr ""
+msgstr "Greška! Nije moguće kreirati pridružene članove rekurzivno."
#. module: mail
#: help:mail.compose.message,email_cc:0 help:mail.message,email_cc:0
#: help:mail.message.common,email_cc:0
msgid "Carbon copy message recipients"
-msgstr ""
+msgstr "Primatelji skrivene kopije"
#. module: mail
#: selection:mail.message,state:0
msgid "Delivery Failed"
-msgstr ""
+msgstr "Isporuka nije uspjela"
#. module: mail
#: model:ir.model,name:mail.model_mail_message
msgid "Email Message"
-msgstr ""
+msgstr "Poruka e-pošte"
#. module: mail
#: model:ir.model,name:mail.model_mail_thread view:mail.thread:0
msgid "Email Thread"
-msgstr ""
+msgstr "Nit e-pošte"
#. module: mail
#: field:mail.compose.message,filter_id:0
msgid "Filters"
-msgstr ""
+msgstr "Filteri"
#. module: mail
#: code:addons/mail/mail_thread.py:220
#, python-format
msgid "Mail attachment"
-msgstr ""
+msgstr "Prilog e-pošte"
#. module: mail
#: help:mail.compose.message,reply_to:0 help:mail.message,reply_to:0
#: help:mail.message.common,reply_to:0
msgid "Preferred response address for the message"
-msgstr ""
+msgstr "Željena povratna adresa za poruku"