Vidhin Mehta
2013-05-23 10:44:07 +05:30
342 changed files with 2769 additions and 1879 deletions
+2
View File
@@ -13,6 +13,7 @@ This module provides the core of the OpenERP Web Client.
'auto_install': True,
'post_load': 'wsgi_postload',
'js' : [
"static/src/fixbind.js",
"static/lib/datejs/globalization/en-US.js",
"static/lib/datejs/core.js",
"static/lib/datejs/parser.js",
@@ -76,6 +77,7 @@ This module provides the core of the OpenERP Web Client.
"static/test/class.js",
"static/test/registry.js",
"static/test/form.js",
"static/test/data.js",
"static/test/list-utils.js",
"static/test/formats.js",
"static/test/rpc.js",
+36 -13
View File
@@ -643,6 +643,18 @@ class WebClient(openerpweb.Controller):
content, checksum = concat_files((f[0] for f in files), reader)
# move up all @import and @charset rules to the top
matches = []
def push(matchobj):
matches.append(matchobj.group(0))
return ''
content = re.sub(re.compile("(@charset.+;$)", re.M), push, content)
content = re.sub(re.compile("(@import.+;$)", re.M), push, content)
matches.append(content)
content = '\n'.join(matches)
return make_conditional(
req, req.make_response(content, [('Content-Type', 'text/css')]),
last_modified, checksum)
@@ -1363,19 +1375,30 @@ class Binary(openerpweb.Controller):
elif dbname is None:
dbname = db_monodb(req)
if uid is None:
if not uid:
uid = openerp.SUPERUSER_ID
if not dbname:
image_data = self.placeholder(req, 'logo.png')
else:
registry = openerp.modules.registry.RegistryManager.get(dbname)
with registry.cursor() as cr:
user = registry.get('res.users').browse(cr, uid, uid)
if user.company_id.logo_web:
image_data = user.company_id.logo_web.decode('base64')
else:
image_data = self.placeholder(req, 'nologo.png')
try:
# create an empty registry
registry = openerp.modules.registry.Registry(dbname.lower())
with registry.cursor() as cr:
cr.execute("""SELECT c.logo_web
FROM res_users u
LEFT JOIN res_company c
ON c.id = u.company_id
WHERE u.id = %s
""", (uid,))
row = cr.fetchone()
if row and row[0]:
image_data = str(row[0]).decode('base64')
else:
image_data = self.placeholder(req, 'nologo.png')
except Exception:
image_data = self.placeholder(req, 'logo.png')
headers = [
('Content-Type', 'image/png'),
('Content-Length', len(image_data)),
@@ -1420,7 +1443,7 @@ class Action(openerpweb.Controller):
else:
return False
class Export(View):
class Export(openerpweb.Controller):
_cp_path = "/web/export"
@openerpweb.jsonrequest
@@ -1561,7 +1584,7 @@ class Export(View):
(prefix + '/' + k, prefix_string + '/' + v)
for k, v in self.fields_info(req, model, export_fields).iteritems())
#noinspection PyPropertyDefinition
class ExportFormat(object):
@property
def content_type(self):
""" Provides the format's content type """
@@ -1609,7 +1632,7 @@ class Export(View):
('Content-Type', self.content_type)],
cookies={'fileToken': int(token)})
class CSVExport(Export):
class CSVExport(ExportFormat, http.Controller):
_cp_path = '/web/export/csv'
fmt = {'tag': 'csv', 'label': 'CSV'}
@@ -1644,7 +1667,7 @@ class CSVExport(Export):
fp.close()
return data
class ExcelExport(Export):
class ExcelExport(ExportFormat, http.Controller):
_cp_path = '/web/export/xls'
fmt = {
'tag': 'xls',
@@ -1683,7 +1706,7 @@ class ExcelExport(Export):
fp.close()
return data
class Reports(View):
class Reports(openerpweb.Controller):
_cp_path = "/web/report"
POLLING_DELAY = 0.25
TYPES_MAPPING = {
+34 -8
View File
@@ -19,6 +19,7 @@ import time
import traceback
import urlparse
import uuid
import errno
import babel.core
import simplejson
@@ -200,7 +201,7 @@ class JsonRequest(WebRequest):
_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(self, **self.params)
except session.AuthenticationError:
except session.AuthenticationError, e:
se = serialize_exception(e)
error = {
'code': 100,
@@ -354,17 +355,31 @@ def httprequest(f):
addons_module = {}
addons_manifest = {}
controllers_class = []
controllers_class_path = {}
controllers_object = {}
controllers_object_path = {}
controllers_path = {}
class ControllerType(type):
def __init__(cls, name, bases, attrs):
super(ControllerType, cls).__init__(name, bases, attrs)
controllers_class.append(("%s.%s" % (cls.__module__, cls.__name__), cls))
name_class = ("%s.%s" % (cls.__module__, cls.__name__), cls)
controllers_class.append(name_class)
path = attrs.get('_cp_path')
if path not in controllers_class_path:
controllers_class_path[path] = name_class
class Controller(object):
__metaclass__ = ControllerType
def __new__(cls, *args, **kwargs):
subclasses = [c for c in cls.__subclasses__() if c._cp_path == cls._cp_path]
if subclasses:
name = "%s (extended by %s)" % (cls.__name__, ', '.join(sub.__name__ for sub in subclasses))
cls = type(name, tuple(reversed(subclasses)), {})
return object.__new__(cls)
#----------------------------------------------------------
# Session context manager
#----------------------------------------------------------
@@ -476,8 +491,15 @@ def session_path():
except Exception:
username = "unknown"
path = os.path.join(tempfile.gettempdir(), "oe-sessions-" + username)
if not os.path.exists(path):
try:
os.mkdir(path, 0700)
except OSError as exc:
if exc.errno == errno.EEXIST:
# directory exists: ensure it has the correct permissions
# this will fail if the directory is not owned by the current user
os.chmod(path, 0700)
else:
raise
return path
class Root(object):
@@ -541,7 +563,7 @@ class Root(object):
controllers and configure them. """
for addons_path in openerp.modules.module.ad_paths:
for module in sorted(os.listdir(addons_path)):
for module in sorted(os.listdir(str(addons_path))):
if module not in addons_module:
manifest_path = os.path.join(addons_path, module, '__openerp__.py')
path_static = os.path.join(addons_path, module, 'static')
@@ -557,10 +579,11 @@ class Root(object):
addons_manifest[module] = manifest
self.statics['/%s/static' % module] = path_static
for k, v in controllers_class:
if k not in controllers_object:
o = v()
controllers_object[k] = o
for k, v in controllers_class_path.items():
if k not in controllers_object_path and hasattr(v[1], '_cp_path'):
o = v[1]()
controllers_object[v[0]] = o
controllers_object_path[k] = o
if hasattr(o, '_cp_path'):
controllers_path[o._cp_path] = o
@@ -591,6 +614,9 @@ class Root(object):
elif exposed == 'http':
_logger.debug("Dispatch http to %s %s %s", ps, c, method_name)
return lambda request: HttpRequest(request).dispatch(method)
if method_name != "index":
method_name = "index"
continue
ps, _slash, method_name = ps.rpartition('/')
if not ps and method_name:
ps = '/'
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
"X-Poedit-Language: Czech\n"
#. module: web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
"Language: es\n"
#. module: web
+3 -3
View File
@@ -9,13 +9,13 @@ msgstr ""
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-11-29 19:48+0000\n"
"Last-Translator: Jose Ernesto Mendez <tecnologia@obsdr.com>\n"
"Last-Translator: Open Business Solutions, SRL. <tecnologia@obsdr.com>\n"
"Language-Team: Spanish (Dominican Republic) <es_DO@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+21 -21
View File
@@ -14,22 +14,22 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:133
#, python-format
msgid "Default language:"
msgstr "Vaikimisi keel"
msgstr "Vaikimisi keel:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:588
#, python-format
msgid "%d minutes ago"
msgstr "%d minuti eest"
msgstr "%d minutit tagasi"
#. module: web
#. openerp-web
@@ -75,7 +75,7 @@ msgstr "Ülemsalasõna"
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "Change Master Password"
msgstr "Ülemsalasõna Muutmine"
msgstr "Muuda ülemsalasõna"
#. module: web
#. openerp-web
@@ -126,7 +126,7 @@ msgstr "Andmebaasi Varundamine"
#: code:addons/web/static/src/js/views.js:507
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "%(view_type)s vaade"
#. module: web
#. openerp-web
@@ -141,7 +141,7 @@ msgstr "%s ei ole kehtiv kuupäev"
#: code:addons/web/static/src/xml/base.xml:1835
#, python-format
msgid "Here is a preview of the file we could not import:"
msgstr ""
msgstr "Siin on ülevaade failist mida me ei saa importida:"
#. module: web
#. openerp-web
@@ -213,14 +213,14 @@ msgstr "Viimase muudatuse kuupäev:"
#: code:addons/web/static/src/js/search.js:1558
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr ""
msgstr "M2O otsing väljad ei saa hetkel hakkama mitme vaikeväärtused"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1227
#, python-format
msgid "Widget type '%s' is not implemented"
msgstr ""
msgstr "Vidina tüüp '% s' ei ole rakendatud"
#. module: web
#. openerp-web
@@ -249,7 +249,7 @@ msgstr ""
#: code:addons/web/static/src/js/formats.js:286
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'% s' ei ole õige aeg"
#. module: web
#. openerp-web
@@ -277,7 +277,7 @@ msgstr "Manus:"
#: code:addons/web/static/src/xml/base.xml:1689
#, python-format
msgid "Fields to export"
msgstr ""
msgstr "Väljad eksportimiseks"
#. module: web
#. openerp-web
@@ -305,7 +305,7 @@ msgstr "umbes kuu eest"
#: code:addons/web/static/src/xml/base.xml:1598
#, python-format
msgid "Custom Filters"
msgstr ""
msgstr "Kohandatud Filtrid"
#. module: web
#. openerp-web
@@ -355,7 +355,7 @@ msgstr "Muuda Salasõna"
#: code:addons/web/static/src/js/view_form.js:3445
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "Vaate tüüp '% s' ei ole toetatud One2Manys."
#. module: web
#. openerp-web
@@ -363,7 +363,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_list.js:2209
#, python-format
msgid "Download"
msgstr ""
msgstr "Lae alla"
#. module: web
#. openerp-web
@@ -384,7 +384,7 @@ msgstr "Grupp"
#: code:addons/web/static/src/xml/base.xml:930
#, python-format
msgid "Unhandled widget"
msgstr ""
msgstr "Töötlemata vidin"
#. module: web
#. openerp-web
@@ -418,7 +418,7 @@ msgstr "...Toimub üleslaadimine..."
#: code:addons/web/static/src/xml/base.xml:1766
#, python-format
msgid "Import"
msgstr "Import"
msgstr "Impordi"
#. module: web
#. openerp-web
@@ -439,7 +439,7 @@ msgstr "Faili üleslaadimine"
#: code:addons/web/static/src/js/view_form.js:3838
#, python-format
msgid "Action Button"
msgstr ""
msgstr "Tegevus Nupp"
#. module: web
#. openerp-web
@@ -503,7 +503,7 @@ msgstr "Vaata Logi (perm_read)"
#: code:addons/web/static/src/js/view_form.js:1057
#, python-format
msgid "Set Default"
msgstr ""
msgstr "Määra vaikimisi"
#. module: web
#. openerp-web
@@ -573,7 +573,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:2359
#, python-format
msgid "Resource error"
msgstr ""
msgstr "Ressurss vigane"
#. module: web
#. openerp-web
@@ -587,7 +587,7 @@ msgstr "ei ole"
#: code:addons/web/static/src/xml/base.xml:553
#, python-format
msgid "Print Workflow"
msgstr ""
msgstr "Trüki Töövoog"
#. module: web
#. openerp-web
@@ -835,7 +835,7 @@ msgstr "Filtri nimi"
#: code:addons/web/static/src/xml/base.xml:1471
#, python-format
msgid "-- Actions --"
msgstr ""
msgstr "-- Toimingud --"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+5 -4
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -2052,7 +2052,7 @@ msgstr "Nopea lisäys"
#: code:addons/web/static/src/xml/base.xml:1803
#, python-format
msgid "Latin 1"
msgstr ""
msgstr "Latin 1-merkistö"
#. module: web
#. openerp-web
@@ -2368,6 +2368,7 @@ msgstr "Virheellinen arvo kentälle %(fieldname)s: [%(value)s] is %(message)s"
#, python-format
msgid "The o2m record must be saved before an action can be used"
msgstr ""
"One to many yksikkö pitää tallentaa ennen kuin toimenpide voidaan suorittaa"
#. module: web
#. openerp-web
@@ -2596,7 +2597,7 @@ msgstr "Luo tietokanta"
#: code:addons/web/static/src/xml/base.xml:423
#, python-format
msgid "GNU Affero General Public License"
msgstr ""
msgstr "GNU Affero General Public Licence"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+13 -12
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -291,7 +291,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4908
#, python-format
msgid "File Upload"
msgstr ""
msgstr "Téléversement de fichier"
#. module: web
#. openerp-web
@@ -319,7 +319,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:422
#, python-format
msgid "OpenERP SA Company"
msgstr ""
msgstr "la compagnie OpenERP SA"
#. module: web
#. openerp-web
@@ -411,7 +411,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1279
#, python-format
msgid "...Upload in progress..."
msgstr ""
msgstr "…Téléversement en cours…"
#. module: web
#. openerp-web
@@ -432,7 +432,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4888
#, python-format
msgid "File upload"
msgstr ""
msgstr "Téléversement de fichier"
#. module: web
#. openerp-web
@@ -587,7 +587,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:553
#, python-format
msgid "Print Workflow"
msgstr ""
msgstr "Imprimer le flux de travail"
#. module: web
#. openerp-web
@@ -864,6 +864,7 @@ msgstr ""
#, python-format
msgid "Can't send email to invalid e-mail address"
msgstr ""
"Impossible d'envoyer un courriel à une adresse electronique incorrecte"
#. module: web
#. openerp-web
@@ -1352,7 +1353,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:444
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Modifier les données de la compagnie"
#. module: web
#. openerp-web
@@ -1611,7 +1612,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4908
#, python-format
msgid "There was a problem while uploading your file"
msgstr ""
msgstr "Il y a eu un problème lors du téléversement du fichier"
#. module: web
#. openerp-web
@@ -1865,7 +1866,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1249
#, python-format
msgid "Uploading ..."
msgstr ""
msgstr "Téléversement…"
#. module: web
#. openerp-web
@@ -2053,7 +2054,7 @@ msgstr ""
#: code:addons/web/static/src/js/views.js:1217
#, python-format
msgid "Uploading..."
msgstr ""
msgstr "Téléversement en cours..."
#. module: web
#. openerp-web
@@ -2418,7 +2419,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:552
#, python-format
msgid "Edit Workflow"
msgstr ""
msgstr "Modifier le flux de travail"
#. module: web
#. openerp-web
+5 -5
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -2765,9 +2765,6 @@ msgstr "Filtros"
#~ msgid "Could not find current view declaration"
#~ msgstr "Non se pudo atopar a declaración da vista actual"
#~ msgid "Customize"
#~ msgstr "Persoalizar"
#~ msgid "Reports"
#~ msgstr "Informes"
@@ -2858,3 +2855,6 @@ msgstr "Filtros"
#~ msgid "Activate the developper mode"
#~ msgstr "Activar modo de desenvolvedor"
#~ msgid "Customize"
#~ msgstr "Personalizar"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+196 -184
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+17 -17
View File
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-11-26 12:19+0000\n"
"PO-Revision-Date: 2013-04-23 12:42+0000\n"
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -59,7 +59,7 @@ msgstr "is kleiner dan of gelijk aan"
#: code:addons/web/static/src/js/chrome.js:408
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "Geef uw vorige wachtwoord in"
#. module: web
#. openerp-web
@@ -82,7 +82,7 @@ msgstr "Hoofdwachtwoord wijzigen"
#: code:addons/web/static/src/js/chrome.js:507
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr ""
msgstr "Weet u zeker dat u de database %s wilt verwijderen?"
#. module: web
#. openerp-web
@@ -96,7 +96,7 @@ msgstr "%(field)s zoeken op: %(value)s"
#: code:addons/web/static/src/js/chrome.js:553
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Geen toegang"
#. module: web
#. openerp-web
@@ -249,7 +249,7 @@ msgstr "(geen string)"
#: code:addons/web/static/src/js/formats.js:286
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'%s' is geen geldige tijd"
#. module: web
#. openerp-web
@@ -355,7 +355,7 @@ msgstr "Wachtwoord wijzigen"
#: code:addons/web/static/src/js/view_form.js:3445
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "Weergavetype '%s' wordt niet ondersteund in One2Many."
#. module: web
#. openerp-web
@@ -370,7 +370,7 @@ msgstr "Downloaden"
#: code:addons/web/static/src/js/formats.js:270
#, python-format
msgid "'%s' is not a correct datetime"
msgstr ""
msgstr "'%s' is geen geldige datum/tijd"
#. module: web
#. openerp-web
@@ -398,7 +398,7 @@ msgstr "Selectie:"
#: code:addons/web/static/src/js/view_form.js:867
#, python-format
msgid "The following fields are invalid:"
msgstr ""
msgstr "De volgende velden zijn ongeldig:"
#. module: web
#: code:addons/web/controllers/main.py:843
@@ -425,7 +425,7 @@ msgstr "Importeren"
#: code:addons/web/static/src/js/chrome.js:559
#, python-format
msgid "Could not restore the database"
msgstr ""
msgstr "Kan de database niet herstellen"
#. module: web
#. openerp-web
@@ -539,7 +539,7 @@ msgstr "Niet ondersteunde operator %s in domein %s"
#: code:addons/web/static/src/js/formats.js:246
#, python-format
msgid "'%s' is not a correct float"
msgstr ""
msgstr "'%s' is geen correcte float"
#. module: web
#. openerp-web
@@ -567,7 +567,7 @@ msgstr "Maken en bewerken..."
#: code:addons/web/static/src/js/pyeval.js:730
#, python-format
msgid "Unknown nonliteral type "
msgstr ""
msgstr "Onbekend nonliteral type "
#. module: web
#. openerp-web
@@ -595,7 +595,7 @@ msgstr "Workflow afdrukken"
#: code:addons/web/static/src/js/chrome.js:411
#, python-format
msgid "Please confirm your new password"
msgstr ""
msgstr "Bevestig uw nieuwe wachtwoord"
#. module: web
#. openerp-web
@@ -616,7 +616,7 @@ msgstr "Bezoek voor meer informatie"
#: code:addons/web/static/src/xml/base.xml:1857
#, python-format
msgid "Add All Info..."
msgstr ""
msgstr "Alle info toevoegen"
#. module: web
#. openerp-web
@@ -637,14 +637,14 @@ msgstr "Bij wijzigen:"
#: code:addons/web/static/src/js/views.js:919
#, python-format
msgid "Model %s fields"
msgstr ""
msgstr "Model %s velden"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:908
#, python-format
msgid "Setting 'id' attribute on existing record %s"
msgstr ""
msgstr "'id'-attribuut instellen voor bestaand record %s"
#. module: web
#. openerp-web
+32 -32
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -43,7 +43,7 @@ msgstr "Trwa pobieranie...<br />Bądź cierpliwy."
#: code:addons/web/static/src/js/search.js:1991
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
msgstr ""
msgstr "%(field)s %(operator)s \"%(value)s\""
#. module: web
#. openerp-web
@@ -126,7 +126,7 @@ msgstr "Kopia zapasowa bazy danych"
#: code:addons/web/static/src/js/views.js:507
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "Widok %(view_type)s"
#. module: web
#. openerp-web
@@ -243,7 +243,7 @@ msgstr "Formularz"
#: code:addons/web/static/src/xml/base.xml:1333
#, python-format
msgid "(no string)"
msgstr ""
msgstr "(no string)"
#. module: web
#. openerp-web
@@ -320,7 +320,7 @@ msgstr "Typ przycisku:"
#: code:addons/web/static/src/xml/base.xml:422
#, python-format
msgid "OpenERP SA Company"
msgstr ""
msgstr "OpenERP SA Company"
#. module: web
#. openerp-web
@@ -497,7 +497,7 @@ msgstr "Musisz wybrać co najmniej jeden rekord."
#: code:addons/web/static/src/xml/base.xml:538
#, python-format
msgid "View Log (perm_read)"
msgstr ""
msgstr "Widok Log (perm_read)"
#. module: web
#. openerp-web
@@ -553,7 +553,7 @@ msgstr "Odtworzone"
#: code:addons/web/static/src/js/view_list.js:409
#, python-format
msgid "%d-%d of %d"
msgstr ""
msgstr "%d-%d of %d"
#. module: web
#. openerp-web
@@ -718,7 +718,7 @@ msgstr "Poprzednie hasło:"
#: code:addons/web/static/src/js/formats.js:113
#, python-format
msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
msgstr ""
msgstr "Bajty,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#. module: web
#. openerp-web
@@ -861,7 +861,7 @@ msgstr "Przełącz układ formularza"
#: code:addons/web/static/src/xml/base.xml:424
#, python-format
msgid "OpenERP.com"
msgstr ""
msgstr "OpenERP.com"
#. module: web
#. openerp-web
@@ -971,7 +971,7 @@ msgstr "Dane formularza nie mogą być usunięte"
#: code:addons/web/static/src/xml/base.xml:536
#, python-format
msgid "Debug View#"
msgstr ""
msgstr "Widok debugowania#"
#. module: web
#. openerp-web
@@ -1019,14 +1019,14 @@ msgstr "Zapisz listę pól"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Start"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:877
#, python-format
msgid "View Log (%s)"
msgstr ""
msgstr "Widok Log (%s)"
#. module: web
#. openerp-web
@@ -1054,7 +1054,7 @@ msgstr "Wybrany plik przekracza maksymalny rozmiar %s."
#: code:addons/web/static/src/xml/base.xml:635
#, python-format
msgid "/web/binary/upload_attachment"
msgstr ""
msgstr "/web/binary/upload_attachment"
#. module: web
#. openerp-web
@@ -1109,7 +1109,7 @@ msgstr "'%s' nie jest poprawną datą"
#: code:addons/web/static/src/xml/base.xml:936
#, python-format
msgid "(nolabel)"
msgstr ""
msgstr "(nolabel)"
#. module: web
#. openerp-web
@@ -1170,7 +1170,7 @@ msgstr "Nieznany operator %s w domenie %s"
#: code:addons/web/static/src/js/view_form.js:426
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web
#. openerp-web
@@ -1246,7 +1246,7 @@ msgstr "Logowanie"
#: code:addons/web/static/src/xml/base.xml:423
#, python-format
msgid "Licenced under the terms of"
msgstr ""
msgstr "Licencjonowane na zasadach"
#. module: web
#. openerp-web
@@ -1346,7 +1346,7 @@ msgstr "Metoda:"
#: code:addons/web/static/src/js/view_list.js:1454
#, python-format
msgid "%(page)d/%(page_count)d"
msgstr ""
msgstr "%(page)d/%(page_count)d"
#. module: web
#. openerp-web
@@ -1399,7 +1399,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:396
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web
#. openerp-web
@@ -1606,7 +1606,7 @@ msgstr "Usuwanie bazy"
#: code:addons/web/static/src/xml/base.xml:448
#, python-format
msgid "Powered by"
msgstr ""
msgstr "Zasilane przez"
#. module: web
#. openerp-web
@@ -1628,7 +1628,7 @@ msgstr "Pojawił się problem przy wysyłaniu pliku"
#: code:addons/web/static/src/xml/base.xml:561
#, python-format
msgid "XML ID:"
msgstr ""
msgstr "XML ID:"
#. module: web
#. openerp-web
@@ -1721,7 +1721,7 @@ msgstr "Linie do pominięcia"
#: code:addons/web/static/src/js/view_form.js:2883
#, python-format
msgid "Create \"<strong>%s</strong>\""
msgstr ""
msgstr "Utwórz \"<strong>%s</strong>\""
#. module: web
#. openerp-web
@@ -1735,7 +1735,7 @@ msgstr "Wprowadź pola do zapisu w pliku eksportu..."
#: code:addons/web/static/src/xml/base.xml:421
#, python-format
msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved."
msgstr ""
msgstr "Copyright © 2004-DZISIAJ OpenERP SA. All Rights Reserved."
#. module: web
#. openerp-web
@@ -1764,7 +1764,7 @@ msgstr "Import się nie udał z powodu:"
#: code:addons/web/static/src/xml/base.xml:542
#, python-format
msgid "JS Tests"
msgstr ""
msgstr "Testy JS"
#. module: web
#. openerp-web
@@ -2049,7 +2049,7 @@ msgstr "Szybkie dodawanie"
#: code:addons/web/static/src/xml/base.xml:1803
#, python-format
msgid "Latin 1"
msgstr ""
msgstr "Latin 1"
#. module: web
#. openerp-web
@@ -2083,7 +2083,7 @@ msgstr "Pobierz dane demonstracyjne:"
#: code:addons/web/static/src/xml/base.xml:618
#, python-format
msgid "Created by :"
msgstr ""
msgstr "Utworzone przez:"
#. module: web
#. openerp-web
@@ -2216,7 +2216,7 @@ msgstr "Przycisk"
#: code:addons/web/static/src/xml/base.xml:421
#, python-format
msgid "OpenERP is a trademark of the"
msgstr ""
msgstr "OpenERP jest znakiem handlowym"
#. module: web
#. openerp-web
@@ -2385,7 +2385,7 @@ msgstr "Stosuj domyślnie"
#: code:addons/web/static/src/js/view_list.js:1363
#, python-format
msgid "%s (%d)"
msgstr ""
msgstr "%s (%d)"
#. module: web
#. openerp-web
@@ -2420,7 +2420,7 @@ msgstr "Edytuj czynność"
#: code:addons/web/static/src/xml/base.xml:558
#, python-format
msgid "ID:"
msgstr ""
msgstr "ID:"
#. module: web
#. openerp-web
@@ -2448,7 +2448,7 @@ msgstr "Na pewno chcesz usunąć ten załącznik?"
#: code:addons/web/static/src/js/views.js:894
#, python-format
msgid "Technical Translation"
msgstr ""
msgstr "Tłumaczenie techniczne"
#. module: web
#. openerp-web
@@ -2462,7 +2462,7 @@ msgstr "Pole:"
#: code:addons/web/static/src/xml/base.xml:623
#, python-format
msgid "Modified by :"
msgstr ""
msgstr "Zmodyfikowane przez:"
#. module: web
#. openerp-web
@@ -2594,7 +2594,7 @@ msgstr "Utwórz bazę danych"
#: code:addons/web/static/src/xml/base.xml:423
#, python-format
msgid "GNU Affero General Public License"
msgstr ""
msgstr "GNU Affero General Public License"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+3 -3
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
@@ -469,7 +469,7 @@ msgstr "Faceți o pauză de cafea,<br /> pentru că se încarcă..."
#: code:addons/web/static/src/xml/base.xml:416
#, python-format
msgid "Activate the developer mode"
msgstr "Activeaza modulul programare"
msgstr "Activează modulul programare"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:06+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:37+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web
#. openerp-web
+88 -50
View File
@@ -544,6 +544,29 @@
background: #7c7bad;
color: #eeeeee;
}
.openerp .oe_form_field_radio.oe_horizontal {
white-space: nowrap;
}
.openerp .oe_form_field_radio.oe_horizontal label {
display: inline-block;
text-align: center;
height: 16px;
}
.openerp .oe_form_field_radio.oe_vertical label {
margin-left: 4px;
}
.openerp .oe_form_field_radio.oe_form_required .oe_radio_input {
border: 2px solid transparent;
display: inline-block;
height: 12px;
width: 12px;
vertical-align: bottom;
border-radius: 10px;
margin: 1px 0;
}
.openerp .oe_form_field_radio.oe_form_required.oe_form_invalid .oe_radio_input {
border-color: red;
}
.openerp .oe_tags {
margin-bottom: 1px;
}
@@ -1269,7 +1292,7 @@
color: white;
padding: 2px 4px;
margin: 1px 6px 0 0;
border: 1px solid lightGray;
border: 1px solid lightgrey;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
@@ -1301,7 +1324,7 @@
transform: scale(1.1);
}
.openerp .oe_secondary_submenu .oe_active {
border-top: 1px solid lightGray;
border-top: 1px solid lightgrey;
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);
@@ -1706,6 +1729,7 @@
font-size: 1px;
letter-spacing: -1px;
color: transparent;
text-shadow: none;
font-weight: normal;
-moz-box-shadow: none;
-webkit-box-shadow: none;
@@ -1841,12 +1865,12 @@
margin: 0;
}
.openerp .oe_searchview .oe_searchview_drawer h3 {
margin: 8px 4px 4px 12px;
margin: 8px 4px 4px 0px;
color: #7c7bad;
font-size: 13px;
}
.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * {
margin: 0;
margin: 0 0 0 2px;
cursor: pointer;
font-weight: normal;
display: inline-block;
@@ -1923,6 +1947,12 @@
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom {
padding: 0 8px 8px 8px;
}
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div {
padding: 0;
}
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom div h4 {
margin: 0;
}
.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form {
display: none;
}
@@ -2164,6 +2194,7 @@
}
.openerp .oe_form header {
position: relative;
z-index: 1;
border-bottom: 1px solid #cacaca;
padding-left: 2px;
background-color: #ededed;
@@ -2289,7 +2320,7 @@
}
.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
font-size: 80%;
color: darkGreen;
color: darkgreen;
vertical-align: top;
position: relative;
top: -4px;
@@ -2315,30 +2346,6 @@
display: inline-block;
min-width: 70px;
}
.openerp .oe_form_field_radio.oe_horizontal {
white-space: nowrap;
}
.openerp .oe_form_field_radio.oe_form_required .oe_radio_input {
border: 1px solid transparent;
display: inline-block;
height: 12px;
width: 12px;
vertical-align: bottom;
border-radius: 10px;
margin: 1px 0;
}
.openerp .oe_form_field_radio.oe_form_required.oe_form_invalid .oe_radio_input {
border-color: red;
}
.openerp .oe_form_field_radio.oe_horizontal label,
.openerp .oe_form_field_radio.oe_horizontal div {
display: inline-block;
text-align: center;
height: 16px;
}
.openerp .oe_form_field_radio.oe_vertical label {
margin-left: 4px;
}
.openerp .oe_form_field_progressbar.ui-progressbar {
height: 22px;
font-size: 10px;
@@ -2499,10 +2506,10 @@
width: 7em;
}
.openerp .oe_form_editable .oe_form .oe_form_field_date input {
width: 7.5em;
width: 100px;
}
.openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
width: 11.5em;
width: 150px;
}
.openerp .oe_hidden_input_file {
position: relative;
@@ -2662,20 +2669,20 @@
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 {
.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 {
.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 {
.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 {
.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;
@@ -2684,14 +2691,14 @@
margin: 0;
position: relative;
}
.openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow {
.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 {
.openerp ul.oe_form_status li > .arrow span, .openerp ul.oe_form_status_clickable li > .arrow span {
position: relative;
width: 24px;
height: 24px;
@@ -2713,6 +2720,32 @@
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.openerp ul.oe_form_status .oe_folded .label, .openerp ul.oe_form_status_clickable .oe_folded .label {
padding-bottom: 8px;
}
.openerp ul.oe_form_status .oe_folded ul, .openerp ul.oe_form_status_clickable .oe_folded ul {
position: absolute;
border-top: 1px solid #cacaca;
float: none;
top: 30px;
right: 0;
display: none;
}
.openerp ul.oe_form_status .oe_folded ul li, .openerp ul.oe_form_status_clickable .oe_folded ul li {
margin: 0;
border-left: 1px solid #cacaca;
display: block;
}
.openerp ul.oe_form_status .oe_folded ul li.label, .openerp ul.oe_form_status_clickable .oe_folded ul li.label {
border: 0;
padding-left: 24px;
}
.openerp ul.oe_form_status .oe_folded ul li:last-child, .openerp ul.oe_form_status_clickable .oe_folded ul li:last-child {
border-bottom: 1px solid #cacaca;
}
.openerp ul.oe_form_status .oe_folded:hover ul, .openerp ul.oe_form_status_clickable .oe_folded:hover ul {
display: block;
}
.openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active {
background-color: #5382b9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
@@ -2722,14 +2755,14 @@
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 {
.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));
background: -ms-linear-gradient(top, #729fcf, #3465a4);
}
.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label {
.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;
}
@@ -2745,10 +2778,10 @@
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 {
.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 {
.openerp ul.oe_form_status_clickable li:hover > .arrow span {
background-color: #d9d9d9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
@@ -2757,7 +2790,7 @@
background-image: -o-linear-gradient(top, #e8e8e8, #cacaca);
background-image: linear-gradient(to bottom, #e8e8e8, #cacaca);
}
.openerp ul.oe_form_status_clickable li .label {
.openerp ul.oe_form_status_clickable li > .label {
color: #7c7bad;
}
.openerp ul.oe_form_status_clickable li.oe_active:hover {
@@ -2769,10 +2802,10 @@
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 {
.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 {
.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);
@@ -3049,6 +3082,7 @@
font-size: 1px;
letter-spacing: -1px;
color: transparent;
text-shadow: none;
font-weight: normal;
margin-right: 7px;
}
@@ -3184,6 +3218,7 @@
.kitten-mode-activated > * {
opacity: 0.7;
}
.loading-kitten {
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
@@ -3246,6 +3281,9 @@ div.ui-widget-overlay {
color: #afafb6 !important;
font-style: italic !important;
}
.openerp_ie .oe_form_binary_file {
width: 80px;
}
.openerp_ie .oe_form_field_boolean input {
background: white;
}
@@ -3346,11 +3384,11 @@ div.ui-widget-overlay {
overflow: hidden;
border-right: 1px solid #cacaca;
}
.openerp_ie ul.oe_form_status li:last-child .label, .openerp_ie ul.oe_form_status_clickable li:last-child .label {
.openerp_ie ul.oe_form_status li:last-child > .label, .openerp_ie ul.oe_form_status_clickable li:last-child > .label {
padding-right: 14px;
border-right: none;
}
.openerp_ie ul.oe_form_status li:last-child .arrow, .openerp_ie ul.oe_form_status_clickable li:last-child .arrow {
.openerp_ie ul.oe_form_status li:last-child > .arrow, .openerp_ie ul.oe_form_status_clickable li:last-child > .arrow {
display: inline-block;
opacity: 0;
filter: alpha(opacity=0);
@@ -3358,17 +3396,17 @@ div.ui-widget-overlay {
width: 0;
border-right: none;
}
.openerp_ie ul.oe_form_status .label, .openerp_ie ul.oe_form_status_clickable .label {
.openerp_ie ul.oe_form_status li > .label, .openerp_ie ul.oe_form_status_clickable li > .label {
border-bottom: 1px solid #cacaca;
background: transparent;
}
.openerp_ie ul.oe_form_status .arrow span, .openerp_ie ul.oe_form_status_clickable .arrow span {
.openerp_ie ul.oe_form_status li > .arrow span, .openerp_ie ul.oe_form_status_clickable li > .arrow span {
background-color: #fefefe !important;
}
.openerp_ie ul.oe_form_status li.oe_active .label, .openerp_ie ul.oe_form_status_clickable li.oe_active .label {
.openerp_ie ul.oe_form_status li.oe_active > .label, .openerp_ie ul.oe_form_status_clickable li.oe_active > .label {
border-bottom: 1px solid #729fcf;
}
.openerp_ie ul.oe_form_status li.oe_active .arrow span, .openerp_ie ul.oe_form_status_clickable li.oe_active .arrow span {
.openerp_ie ul.oe_form_status li.oe_active > .arrow span, .openerp_ie ul.oe_form_status_clickable li.oe_active > .arrow span {
background-color: #729fcf !important;
}
.openerp_ie .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
+56 -26
View File
@@ -123,6 +123,7 @@ $sheet-padding: 16px
font-size: 1px
letter-spacing: -1px
color: transparent
text-shadow: none
font-weight: normal
&:before
font: 21px "mnmliconsRegular"
@@ -133,6 +134,7 @@ $sheet-padding: 16px
font-size: 1px
letter-spacing: -1px
color: transparent
text-shadow: none
font-weight: normal
&:before
font: $size "entypoRegular"
@@ -1483,11 +1485,11 @@ $sheet-padding: 16px
border-top: none
margin: 0
h3
margin: 8px 4px 4px 12px
margin: 8px 4px 4px 0px
color: $section-title-color
font-size: 13px
h4, h4 *
margin: 0
margin: 0 0 0 2px
cursor: pointer
font-weight: normal
display: inline-block
@@ -1543,6 +1545,10 @@ $sheet-padding: 16px
margin: 0 0 8px 0
.oe_searchview_custom
padding: 0 8px 8px 8px
div
padding: 0
h4
margin: 0
form
display: none
li
@@ -1733,6 +1739,7 @@ $sheet-padding: 16px
// FormView.header {{{
.oe_form header
position: relative
z-index: 1
border-bottom: 1px solid #cacaca
padding-left: 2px
@include vertical-gradient(#fcfcfc, #dedede)
@@ -1981,9 +1988,9 @@ $sheet-padding: 16px
.oe_form_field_float input
width: 7em
.oe_form_field_date input
width: 7.5em
width: 100px
.oe_form_field_datetime input
width: 11.5em
width: 150px
// }}}
// FormView.fields_binary {{{
/* http://www.quirksmode.org/dom/inputfile.html
@@ -2120,16 +2127,16 @@ $sheet-padding: 16px
margin: 0 -18px 0 0
padding: 0
@include vertical-gradient(#fcfcfc, #dedede)
&:first-child .label
&:first-child > .label
border-left: 1px solid #cacaca
padding-left: 14px
&:last-child
border-right: 1px solid #cacaca
.label
> .label
padding-right: 14px
.arrow
> .arrow
display: none
.label
> .label
color: #4c4c4c
text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede
padding: 7px
@@ -2137,7 +2144,7 @@ $sheet-padding: 16px
padding-left: 24px
margin: 0
position: relative
.arrow
> .arrow
width: 17px
display: inline-block
vertical-align: top
@@ -2154,11 +2161,32 @@ $sheet-padding: 16px
@include skew-gradient(#fcfcfc, #dedede)
@include radius(3px)
@include transform(rotate(45deg))
.oe_folded
.label
padding-bottom: 8px
ul
position: absolute
border-top: 1px solid #cacaca
float: none
top: 30px
right: 0
display: none
li
margin: 0
border-left: 1px solid #cacaca
display: block
li.label
border: 0
padding-left: 24px
li:last-child
border-bottom: 1px solid #cacaca
&:hover ul
display: block
li.oe_active
@include vertical-gradient(#729fcf, #3465a4)
.arrow span
> .arrow span
@include skew-gradient(#729fcf, #3465a4)
.label
> .label
color: white
text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4
ul.oe_form_status_clickable
@@ -2166,18 +2194,18 @@ $sheet-padding: 16px
cursor: pointer
&:hover
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
.label
> .label
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede
.arrow span
> .arrow span
@include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%))
.label
> .label
color: $link-color
li.oe_active
&:hover
@include vertical-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
.label
> .label
text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4
.arrow span
> .arrow span
@include skew-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%))
// }}}
// FormView.one2many {{{
@@ -2560,6 +2588,8 @@ div.ui-widget-overlay
.placeholder
color: $tag-border !important
font-style: italic !important
.oe_form_binary_file
width: 80px
.oe_form_field_boolean input
background: #fff
.db_option_table .oe_form_field_selection
@@ -2640,26 +2670,26 @@ div.ui-widget-overlay
&:last-child
overflow: hidden
border-right: 1px solid #cacaca
.label
> .label
padding-right: 14px
border-right: none
.arrow
> .arrow
display: inline-block
opacity: 0
filter: alpha(opacity = 0)
border: none
width: 0
border-right: none
.label
border-bottom: 1px solid #cacaca
background: transparent
.arrow
span
background-color: #fefefe !important
> .label
border-bottom: 1px solid #cacaca
background: transparent
> .arrow
span
background-color: #fefefe !important
li.oe_active
.label
> .label
border-bottom: 1px solid #729fcf
.arrow span
> .arrow span
background-color: #729fcf !important
// jquery ui for ie
+28
View File
@@ -0,0 +1,28 @@
// Fix old versions of Webkit (such as ones used on iOS < 6 or PhantomJS <= 1.7)
// which does not have Function.prototype.bind function
// Use moz polyfill:
// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility
if (!Function.prototype.bind) {
Function.prototype.bind = function (oThis) {
if (typeof this !== "function") {
// closest thing possible to the ECMAScript 5 internal IsCallable function
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
}
var aArgs = Array.prototype.slice.call(arguments, 1),
fToBind = this,
fNOP = function () {},
fBound = function () {
return fToBind.apply(this instanceof fNOP && oThis
? this
: oThis,
aArgs.concat(Array.prototype.slice.call(arguments)));
};
fNOP.prototype = this.prototype;
fBound.prototype = new fNOP();
return fBound;
};
}
+7 -12
View File
@@ -251,9 +251,9 @@ instance.web.CrashManager = instance.web.Class.extend({
if (handler) {
new (handler)(this, error).display();
return;
};
}
if (error.data.name === "openerp.addons.web.session SessionExpiredException") {
this.show_warning({type: "Session Expired", data: { message: "Your OpenERP session expired. Please refresh the current web page." }});
this.show_warning({type: "Session Expired", data: { message: _t("Your OpenERP session expired. Please refresh the current web page.") }});
return;
}
if (error.data.exception_type === "except_osv" || error.data.exception_type === "warning"
@@ -530,16 +530,11 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
'login': 'admin',
'password': form_obj['create_admin_pwd'],
'login_successful': function() {
var action = {
type: "ir.actions.client",
tag: 'reload',
params: {
url_search : {
db: form_obj['db_name'],
},
}
};
self.do_action(action);
var url = '/?db=' + form_obj['db_name'];
if (self.session.debug) {
url += '&debug';
}
instance.web.redirect(url);
},
},
_push_me: false,
+30 -18
View File
@@ -112,24 +112,27 @@ instance.web.Query = instance.web.Class.extend({
* @returns {jQuery.Deferred<Array<openerp.web.QueryGroup>> | null}
*/
group_by: function (grouping) {
if (grouping === undefined) {
return null;
var ctx = instance.web.pyeval.eval(
'context', this._model.context(this._context));
// undefined passed in explicitly (!)
if (_.isUndefined(grouping)) {
grouping = [];
}
if (!(grouping instanceof Array)) {
grouping = _.toArray(arguments);
}
if (_.isEmpty(grouping)) { return null; }
if (_.isEmpty(grouping) && !ctx['group_by_no_leaf']) {
return null;
}
var self = this;
var ctx = instance.web.pyeval.eval(
'context', this._model.context(this._context));
return this._model.call('read_group', {
groupby: grouping,
fields: _.uniq(grouping.concat(this._fields || [])),
domain: this._model.domain(this._filter),
context: this._model.context(this._context),
context: ctx,
offset: this._offset,
limit: this._limit,
orderby: instance.web.serialize_sort(this._order_by) || false
@@ -325,7 +328,7 @@ instance.web.Model = instance.web.Class.extend({
* Fetches the model's domain, combined with the provided domain if any
*
* @param {Array} [domain] to combine with the model's internal domain
* @returns The model's internal domain, or the AND-ed union of the model's internal domain and the provided domain
* @returns {instance.web.CompoundDomain} The model's internal domain, or the AND-ed union of the model's internal domain and the provided domain
*/
domain: function (domain) {
if (!domain) { return this._domain; }
@@ -337,7 +340,7 @@ instance.web.Model = instance.web.Class.extend({
* combined with the provided context if any
*
* @param {Object} [context] to combine with the model's internal context
* @returns The union of the user's context and the model's internal context, as well as the provided context if any. In that order.
* @returns {instance.web.CompoundContext} The union of the user's context and the model's internal context, as well as the provided context if any. In that order.
*/
context: function (context) {
return new instance.web.CompoundContext(
@@ -604,6 +607,9 @@ instance.web.DataSet = instance.web.Class.extend(instance.web.PropertiesMixin,
alter_ids: function(n_ids) {
this.ids = n_ids;
},
remove_ids: function (ids) {
this.alter_ids(_(this.ids).difference(ids));
},
/**
* Resequence records.
*
@@ -701,22 +707,28 @@ instance.web.DataSetSearch = instance.web.DataSet.extend({
get_domain: function (other_domain) {
this._model.domain(other_domain);
},
alter_ids: function (ids) {
this._super(ids);
if (this.index !== null && this.index >= this.ids.length) {
this.index = this.ids.length > 0 ? this.ids.length - 1 : 0;
}
},
remove_ids: function (ids) {
var before = this.ids.length;
this._super(ids);
if (this._length) {
this._length -= (before - this.ids.length);
}
},
unlink: function(ids, callback, error_callback) {
var self = this;
return this._super(ids).done(function(result) {
self.ids = _(self.ids).difference(ids);
if (self._length) {
self._length -= 1;
}
if (self.index !== null) {
self.index = self.index <= self.ids.length - 1 ?
self.index : (self.ids.length > 0 ? self.ids.length -1 : 0);
}
self.remove_ids( ids);
self.trigger("dataset_changed", ids, callback, error_callback);
});
},
size: function () {
if (this._length !== undefined) {
if (this._length != null) {
return this._length;
}
return this._super();
+30
View File
@@ -314,4 +314,34 @@ instance.web.auto_date_to_str = function(value, type) {
}
};
/**
* performs a half up rounding with arbitrary precision, correcting for float loss of precision
* See the corresponding float_round() in server/tools/float_utils.py for more info
* @param {Number} the value to be rounded
* @param {Number} a non zero precision parameter. eg: 0.01 rounds to two digits.
*/
instance.web.round_precision = function(value, precision){
if(!value){
return 0;
}else if(!precision){
throw new Error('round_precision(...): Cannot round value: '+value+' with a precision of zero (or undefined)');
}
var normalized_value = value / precision;
var epsilon_magnitude = Math.log(Math.abs(normalized_value))/Math.log(2);
var epsilon = Math.pow(2, epsilon_magnitude - 53);
normalized_value += normalized_value >= 0 ? epsilon : -epsilon;
var rounded_value = Math.round(normalized_value);
return rounded_value * precision;
};
/**
* performs a half up rounding with a fixed amount of decimals, correcting for float loss of precision
* See the corresponding float_round() in server/tools/float_utils.py for more info
* @param {Number} the value to be rounded
* @param {Number} the number of decimals. eg: round_decimals(3.141592,2) -> 3.14
*/
instance.web.round_decimals = function(value, decimals){
return instance.web.round_precision(value, Math.pow(10,-decimals));
};
};
+21 -17
View File
@@ -326,7 +326,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
}
},
'autocompleteopen': function () {
this.$el.autocomplete('widget').css('z-index', 3);
this.$el.autocomplete('widget').css('z-index', 1004);
},
},
/**
@@ -1039,7 +1039,9 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
facet.values.each(function (v) {
var i = _(self.filters).indexOf(v.get('value'));
if (i === -1) { return; }
$filters.eq(i).addClass('oe_selected');
$filters.filter(function () {
return Number($(this).data('index')) === i;
}).addClass('oe_selected');
});
},
/**
@@ -1129,7 +1131,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
});
},
toggle_filter: function (e) {
this.toggle(this.filters[$(e.target).index()]);
this.toggle(this.filters[Number($(e.target).data('index'))]);
},
toggle: function (filter) {
this.view.query.toggle(this.make_facet([this.make_value(filter)]));
@@ -1337,20 +1339,22 @@ instance.web.search.CharField = instance.web.search.Field.extend( /** @lends ins
}
});
instance.web.search.NumberField = instance.web.search.Field.extend(/** @lends instance.web.search.NumberField# */{
value_from: function () {
if (!this.$el.val()) {
return null;
}
var val = this.parse(this.$el.val()),
check = Number(this.$el.val());
if (isNaN(val) || val !== check) {
this.$el.addClass('error');
throw new instance.web.search.Invalid(
this.attrs.name, this.$el.val(), this.error_message);
}
this.$el.removeClass('error');
return val;
}
complete: function (value) {
var val = this.parse(value);
if (isNaN(val)) { return $.when(); }
var label = _.str.sprintf(
_t("Search %(field)s for: %(value)s"), {
field: '<em>' + this.attrs.string + '</em>',
value: '<strong>' + _.str.escapeHTML(value) + '</strong>'});
return $.when([{
label: label,
facet: {
category: this.attrs.string,
field: this,
values: [{label: value, value: val}]
}
}]);
},
});
/**
* @class
+2 -2
View File
@@ -176,9 +176,9 @@ openerp.testing = {};
});
QUnit.module(testing.current_module + '.' + name, {_oe: options});
body(testing.case);
body(testing['case']);
};
testing.case = function (name, options, callback) {
testing['case'] = function (name, options, callback) {
if (_.isFunction(options)) {
callback = options;
options = {};
+109 -38
View File
@@ -765,7 +765,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
this.has_been_loaded.done(function() {
if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) {
self.dataset.unlink([self.datarecord.id]).done(function() {
self.execute_pager_action('next');
if (self.dataset.size()) {
self.execute_pager_action('next');
} else {
self.do_action('history_back');
}
def.resolve();
});
} else {
@@ -802,6 +806,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
if (save_obj.error)
return $.Deferred().reject();
return $.when.apply($, save_obj.ret);
}).done(function() {
self.$el.removeClass('oe_form_dirty');
});
},
_process_save: function(save_obj) {
@@ -1021,7 +1027,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
return value;
}
var fields = _.chain(this.fields)
.map(function (field, name) {
.map(function (field) {
var value = field.get_value();
// ignore fields which are empty, invisible, readonly, o2m
// or m2m
@@ -1036,7 +1042,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
}
return {
name: name,
name: field.name,
string: field.string,
value: value,
displayed: display(field, value),
@@ -1047,10 +1053,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
.value();
var conditions = _.chain(self.fields)
.filter(function (field) { return field.field.change_default; })
.map(function (field, name) {
.map(function (field) {
var value = field.get_value();
return {
name: name,
name: field.name,
string: field.string,
value: value,
displayed: display(field, value),
@@ -1444,6 +1450,9 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
$(this).children().each(function() {
var $td = $(this),
$child = $td.children(':first');
if ($child.attr('cell-class')) {
$td.addClass($child.attr('cell-class'));
}
switch ($child[0].tagName.toLowerCase()) {
case 'separator':
break;
@@ -1520,7 +1529,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
if (! page.__ic)
return;
page.__ic.on("change:effective_invisible", null, function() {
if (!page.__ic.get('effective_invisible')) {
if (!page.__ic.get('effective_invisible') && page.autofocus) {
$new_notebook.tabs('select', i);
return;
}
@@ -2126,7 +2135,7 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w
value without triggering a re-rendering.
*/
internal_set_value: function(value_) {
var tmp = this.no_render;
var tmp = this.no_rerender;
this.no_rerender = true;
this.set({'value': value_});
this.no_rerender = tmp;
@@ -2296,7 +2305,8 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(instance.we
return this.get('value') === '' || this._super();
},
focus: function() {
this.$('input:first')[0].focus();
var input = this.$('input:first')[0];
return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2393,7 +2403,8 @@ instance.web.form.FieldFloat = instance.web.form.FieldChar.extend({
this._super.apply(this, [value_]);
},
focus: function () {
this.$('input:first').select();
var $input = this.$('input:first');
return $input.length ? $input.select() : false;
}
});
@@ -2413,6 +2424,42 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({
this.$input = this.$el.find('input.oe_datepicker_master');
this.$input_picker = this.$el.find('input.oe_datepicker_container');
$.datepicker.setDefaults({
clearText: _t('Clear'),
clearStatus: _t('Erase the current date'),
closeText: _t('Done'),
closeStatus: _t('Close without change'),
prevText: _t('<Prev'),
prevStatus: _t('Show the previous month'),
nextText: _t('Next>'),
nextStatus: _t('Show the next month'),
currentText: _t('Today'),
currentStatus: _t('Show the current month'),
monthNames: Date.CultureInfo.monthNames,
monthNamesShort: Date.CultureInfo.abbreviatedMonthNames,
monthStatus: _t('Show a different month'),
yearStatus: _t('Show a different year'),
weekHeader: _t('Wk'),
weekStatus: _t('Week of the year'),
dayNames: Date.CultureInfo.dayNames,
dayNamesShort: Date.CultureInfo.abbreviatedDayNames,
dayNamesMin: Date.CultureInfo.shortestDayNames,
dayStatus: _t('Set DD as first week day'),
dateStatus: _t('Select D, M d'),
firstDay: Date.CultureInfo.firstDayOfWeek,
initStatus: _t('Select a date'),
isRTL: false
});
$.timepicker.setDefaults({
timeOnlyTitle: _t('Choose Time'),
timeText: _t('Time'),
hourText: _t('Hour'),
minuteText: _t('Minute'),
secondText: _t('Second'),
currentText: _t('Now'),
closeText: _t('Done')
});
this.picker({
onClose: this.on_picker_select,
onSelect: this.on_picker_select,
@@ -2539,9 +2586,8 @@ instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(instanc
return this.get('value') === '' || this._super();
},
focus: function() {
if (this.datewidget && this.datewidget.$input) {
this.datewidget.$input[0].focus();
}
var input = this.datewidget && this.datewidget.$input[0];
return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2622,9 +2668,8 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(instance.we
return this.get('value') === '' || this._super();
},
focus: function($el) {
if (!this.get("effective_readonly") && this.$textarea) {
this.$textarea[0].focus();
}
var input = !this.get("effective_readonly") && this.$textarea && this.$textarea[0];
return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2707,7 +2752,8 @@ instance.web.form.FieldBoolean = instance.web.form.AbstractField.extend({
this.$checkbox[0].checked = this.get('value');
},
focus: function() {
this.$checkbox[0].focus();
var input = this.$checkbox && this.$checkbox[0];
return input ? input.focus() : false;
}
});
@@ -2793,7 +2839,8 @@ instance.web.form.FieldSelection = instance.web.form.AbstractField.extend(instan
}
},
focus: function() {
this.$('select:first')[0].focus();
var input = this.$('select:first')[0];
return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -3336,7 +3383,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
}
if (! no_recurse) {
var dataset = new instance.web.DataSetStatic(this, this.field.relation, self.build_context());
dataset.name_get([self.get("value")]).done(function(data) {
this.alive(dataset.name_get([self.get("value")])).done(function(data) {
self.display_value["" + self.get("value")] = data[0][1];
self.render_value(true);
});
@@ -3401,9 +3448,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
return ! this.get("value");
},
focus: function () {
if (!this.get('effective_readonly')) {
this.$input && this.$input[0].focus();
}
var input = !this.get('effective_readonly') && this.$input && this.$input[0];
return input ? input.focus() : false;
},
_quick_create: function() {
this.no_ed = true;
@@ -4263,7 +4309,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
this.set({'value': _.uniq(this.get('value').concat([id]))});
},
focus: function () {
this.$text[0].focus();
var input = this.$text && this.$text[0];
return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -5356,14 +5403,14 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
this.options.clickable = this.options.clickable || (this.node.attrs || {}).clickable || false;
this.options.visible = this.options.visible || (this.node.attrs || {}).statusbar_visible || false;
this.set({value: false});
this.selection = [];
this.set("selection", []);
this.selection = {'unfolded': [], 'folded': []};
this.set("selection", {'unfolded': [], 'folded': []});
this.selection_dm = new instance.web.DropMisordered();
this.dataset = new instance.web.DataSetStatic(this, this.field.relation, this.build_context());
},
start: function() {
this.field_manager.on("view_content_has_changed", this, this.calc_domain);
this.calc_domain();
this.on("change:value", this, this.get_selection);
this.on("change:evaluated_selection_domain", this, this.get_selection);
this.on("change:selection", this, function() {
this.selection = this.get("selection");
@@ -5371,7 +5418,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
});
this.get_selection();
if (this.options.clickable) {
this.$el.on('click','li',this.on_click_stage);
this.$el.on('click','li:not(.oe_folded)',this.on_click_stage);
}
if (this.$el.parent().is('header')) {
this.$el.after('<div class="oe_clear"/>');
@@ -5386,17 +5433,20 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
},
render_value: function() {
var self = this;
var content = QWeb.render("FieldStatus.content", {widget: self});
var content = QWeb.render("FieldStatus.content", {
'widget': self,
'value_folded': _.find(self.selection.folded, function(i){return i[0] === self.get('value')})
});
self.$el.html(content);
},
calc_domain: function() {
var d = instance.web.pyeval.eval('domain', this.build_domain());
var domain = []; //if there is no domain defined, fetch all the records
if (d.length) {
domain = ['|',['id', '=', this.get('value')]].concat(d);
}
if (! _.isEqual(domain, this.get("evaluated_selection_domain"))) {
this.set("evaluated_selection_domain", domain);
}
@@ -5408,17 +5458,27 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
*/
get_selection: function() {
var self = this;
var selection = [];
var selection_unfolded = [];
var selection_folded = [];
var calculation = _.bind(function() {
if (this.field.type == "many2one") {
var domain = [];
var ds = new instance.web.DataSetSearch(this, this.field.relation,
self.build_context(), this.get("evaluated_selection_domain"));
return ds.read_slice(['name'], {}).then(function (records) {
for(var i = 0; i < records.length; i++) {
selection.push([records[i].id, records[i].name]);
}
return self.get_distant_fields().then(function(fields) {
return new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), self.get("evaluated_selection_domain"))
.read_slice(fields.fold ? ['fold'] : ['id'], {}).then(function (records) {
var ids = _.map(records, function (val) {return val.id});
return self.dataset.name_get(ids).then(function (records_name) {
_.each(records, function (record) {
var name = _.find(records_name, function (val) {return val[0] == record.id;})[1];
if (record.fold && record.id != self.get('value')) {
selection_folded.push([record.id, name]);
} else {
selection_unfolded.push([record.id, name]);
}
});
})
});
});
} else {
// For field type selection filter values according to
@@ -5428,18 +5488,29 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
for(var i=0; i < select.length; i++) {
var key = select[i][0];
if(key == this.get('value') || !this.options.visible || this.options.visible.indexOf(key) != -1) {
selection.push(select[i]);
selection_unfolded.push(select[i]);
}
}
return $.when();
}
}, this);
this.selection_dm.add(calculation()).then(function () {
var selection = {'unfolded': selection_unfolded, 'folded': selection_folded};
if (! _.isEqual(selection, self.get("selection"))) {
self.set("selection", selection);
}
});
},
get_distant_fields: function() {
var self = this;
if (this.distant_fields) {
return $.when(this.distant_fields);
}
return new instance.web.Model(self.field.relation).call("fields_get", [["fold"]]).then(function(fields) {
self.distant_fields = fields;
return fields;
})
},
on_click_stage: function (ev) {
var self = this;
var $li = $(ev.currentTarget);
+4 -3
View File
@@ -578,7 +578,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.no_leaf = !!context['group_by_no_leaf'];
this.grouped = !!group_by;
return this.load_view(context).then(
return this.alive(this.load_view(context)).then(
this.proxy('reload_content'));
},
/**
@@ -895,8 +895,9 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.
this.record_callbacks = {
'remove': function (event, record) {
var $row = self.$current.children(
'[data-id=' + record.get('id') + ']');
var id = record.get('id');
self.dataset.remove_ids([id])
var $row = self.$current.children('[data-id=' + id + ']');
var index = $row.data('index');
$row.remove();
},
+2 -1
View File
@@ -241,6 +241,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
} else if (state.active_id) {
add_context.active_ids = [state.active_id];
}
add_context.params = state;
this.null_action();
action_loaded = this.do_action(state.action, { additional_context: add_context });
$.when(action_loaded || null).done(function() {
@@ -1004,7 +1005,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
switch_mode: function (view_type, no_store, options) {
var self = this;
return $.when(this._super.apply(this, arguments)).done(function () {
return this.alive($.when(this._super.apply(this, arguments))).done(function () {
var controller = self.views[self.active_view].controller;
self.$el.find('.oe_debug_view').html(QWeb.render('ViewManagerDebug', {
view: controller,
+17 -4
View File
@@ -650,7 +650,7 @@
<li t-if="section.name == 'files'" class="oe_sidebar_add_attachment">
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action">/web/binary/upload_attachment</t>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/>
<input type="hidden" name="id" t-att-value="widget.model_id"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
@@ -1218,13 +1218,25 @@
<ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_status_clickable' : 'oe_form_status')" t-att-style="widget.node.attrs.style"/>
</t>
<t t-name="FieldStatus.content">
<t t-foreach="widget.selection" t-as="i">
<t t-foreach="widget.selection.unfolded" t-as="i">
<li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
<span class="label"><t t-esc="i[1]"/></span>
<!-- are you mit ? -->
<span class="arrow"><span></span></span>
</li>
</t>
<t t-if="widget.selection.folded.length">
<li t-att-class="value_folded ? 'oe_active oe_folded' : 'oe_folded'">
<span class="label"> ... </span>
<ul>
<t t-foreach="widget.selection.folded" t-as="i">
<li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
<span class="label"><t t-esc="i[1]"/></span>
</li>
</t>
</ul>
</li>
</t>
</t>
<t t-name="FieldBinaryImage">
<span class="oe_form_field oe_form_field_image" t-att-style="widget.node.attrs.style">
@@ -1552,8 +1564,9 @@
<t t-esc="attrs.string"/>
</button>
<ul t-name="SearchView.filters">
<li t-foreach="widget.filters" t-as="filter" t-if="filter.visible()"
t-att-title="filter.attrs.string ? filter.attrs.help : undefined">
<li t-foreach="widget.filters" t-as="filter" t-if="!filter.visible || filter.visible()"
t-att-title="filter.attrs.string ? filter.attrs.help : undefined"
t-att-data-index="filter_index">
<t t-esc="filter.attrs.string or filter.attrs.help or filter.attrs.name or 'Ω'"/>
</li>
</ul>
+76
View File
@@ -0,0 +1,76 @@
openerp.testing.section('data.model.group_by', {
rpc: 'mock',
dependencies: ['web.data'],
}, function (test) {
var group_result = [{
bar: 3, bar_count: 5, __context: {}, __domain: [['bar', '=', 3]],
}, {
bar: 5, bar_count: 3, __context: {}, __domain: [['bar', '=', 5]],
}, {
bar: 8, bar_count: 0, __context: {}, __domain: [['bar', '=', 8]],
}];
test('basic', {asserts: 7}, function (instance, $fix, mock) {
var m = new instance.web.Model('foo');
mock('foo:read_group', function (args, kwargs) {
deepEqual(kwargs.fields, ['bar'],
"should read grouping field");
deepEqual(kwargs.groupby, ['bar'],
"should have single grouping field");
return group_result;
});
mock('/web/dataset/search_read', function (args) {
deepEqual(args.params.domain, [['bar', '=', 3]],
"should have domain matching that of group_by result");
return {records: [
{bar: 3, id: 1},
{bar: 3, id: 2},
{bar: 3, id: 4},
{bar: 3, id: 8},
{bar: 3, id: 16}
], length: 5};
});
return m.query().group_by('bar')
.then(function (groups) {
ok(groups, "should have data");
equal(groups.length, 3, "should have three results");
var first = groups[0];
ok(first.attributes.has_children, "should have children");
return first.query().all();
}).done(function (first) {
equal(first.length, 5, "should have 5 records")
});
});
test('noleaf', {asserts: 5}, function (instance, $fix, mock) {
var m = new instance.web.Model('foo', {group_by_no_leaf: true});
mock('foo:read_group', function (args, kwargs) {
deepEqual(kwargs.fields, ['bar'],
"should read grouping field");
deepEqual(kwargs.groupby, ['bar'],
"should have single grouping field");
return group_result;
});
return m.query().group_by('bar')
.then(function (groups) {
ok(groups, "should have data");
equal(groups.length, 3, "should have three results");
ok(!groups[0].attributes.has_children,
"should not have children because no_leaf");
})
});
test('nogroup', {rpc: false}, function (instance, $f, mock) {
var m = new instance.web.Model('foo');
strictEqual(m.query().group_by(), null, "should not group");
});
test('empty.noleaf', {asserts: 1}, function (instance, $f, mock) {
var m = new instance.web.Model('foo', {group_by_no_leaf: true});
mock('foo:read_group', function (args, kwargs) {
return [{__context: [], __domain: []}];
});
return m.query().group_by().done(function (groups) {
strictEqual(groups.length, 1,
"should generate a single fake-ish group");
});
});
});
+75 -2
View File
@@ -614,6 +614,59 @@ openerp.testing.section('search.completions', {
{relation: 'dummy.model'}, view);
return f.complete("bob");
});
test('Integer: invalid', {asserts: 1}, function (instance) {
var view = {inputs: []};
var f = new instance.web.search.IntegerField(
{attrs: {string: "Dummy"}}, {}, view);
return f.complete("qux")
.done(function (completions) {
ok(!completions, "non-number => no completion");
});
});
test('Integer: non-zero', {asserts: 5}, function (instance) {
var view = {inputs: []};
var f = new instance.web.search.IntegerField(
{attrs: {string: "Dummy"}}, {}, view);
return f.complete("-2")
.done(function (completions) {
equal(completions.length, 1, "number fields provide 1 completion only");
var facet = new instance.web.search.Facet(completions[0].facet);
equal(facet.get('category'), f.attrs.string);
equal(facet.get('field'), f);
var value = facet.values.at(0);
equal(value.get('label'), "-2");
equal(value.get('value'), -2);
});
});
test('Integer: zero', {asserts: 3}, function (instance) {
var view = {inputs: []};
var f = new instance.web.search.IntegerField(
{attrs: {string: "Dummy"}}, {}, view);
return f.complete("0")
.done(function (completions) {
equal(completions.length, 1, "number fields provide 1 completion only");
var facet = new instance.web.search.Facet(completions[0].facet);
var value = facet.values.at(0);
equal(value.get('label'), "0");
equal(value.get('value'), 0);
});
});
test('Float: non-zero', {asserts: 5}, function (instance) {
var view = {inputs: []};
var f = new instance.web.search.FloatField(
{attrs: {string: "Dummy"}}, {}, view);
return f.complete("42.37")
.done(function (completions) {
equal(completions.length, 1, "float fields provide 1 completion only");
var facet = new instance.web.search.Facet(completions[0].facet);
equal(facet.get('category'), f.attrs.string);
equal(facet.get('field'), f);
var value = facet.values.at(0);
equal(value.get('label'), "42.37");
equal(value.get('value'), 42.37);
});
});
});
openerp.testing.section('search.serialization', {
dependencies: ['web.search'],
@@ -1361,7 +1414,7 @@ openerp.testing.section('search.invisible', {
}, ['<search>',
'<field name="field0"/>',
'<field name="field1" modifiers="{&quot;invisible&quot;: true}"/>',
'</search>'].join());
'</search>'].join(''));
return view.appendTo($fix)
.then(function () {
var done = $.Deferred();
@@ -1380,7 +1433,7 @@ openerp.testing.section('search.invisible', {
'<search>',
'<filter string="filter 0"/>',
'<filter string="filter 1" modifiers="{&quot;invisible&quot;: true}"/>',
'</search>'].join());
'</search>'].join(''));
return view.appendTo($fix)
.then(function () {
var $fs = $fix.find('.oe_searchview_filters ul');
@@ -1400,6 +1453,26 @@ openerp.testing.section('search.invisible', {
return done;
});
});
test('invisible-previous-sibling', {asserts: 3}, function (instance, $fix, mock) {
var view = makeView(instance, mock, {}, [
'<search>',
'<filter string="filter 0" context="{&quot;test&quot;: 0}"/>',
'<filter string="filter 1" modifiers="{&quot;invisible&quot;: true}" context="{&quot;test&quot;: 1}"/>',
'<filter string="filter 2" modifiers="{&quot;invisible&quot;: true}" context="{&quot;test&quot;: 2}"/>',
'<filter string="filter 3" context="{&quot;test&quot;: 3}"/>',
'</search>'].join(''));
return view.appendTo($fix)
.done(function () {
// Select filter 3
$fix.find('.oe_searchview_filters ul li:contains("filter 3")').click();
equal(view.query.length, 1, "should have selected a filter");
var facet = view.query.at(0);
strictEqual(facet.values.at(0).get('label'), "filter 3",
"should have correctly labelled the facet");
deepEqual(view.build_search_data().contexts, [{test: 3}],
"should have built correct context");
});
});
// Invisible filter groups should not appear in the drawer
// Group invisibility should be inherited by children
test('group-invisibility', {asserts: 6}, function (instance, $fix, mock) {
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
"X-Poedit-Language: Czech\n"
#. module: web_calendar
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
"Language: es\n"
#. module: web_calendar
+3 -3
View File
@@ -9,13 +9,13 @@ msgstr ""
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-11-29 20:00+0000\n"
"Last-Translator: Jose Ernesto Mendez <tecnologia@obsdr.com>\n"
"Last-Translator: Open Business Solutions, SRL. <tecnologia@obsdr.com>\n"
"Language-Team: Spanish (Dominican Republic) <es_DO@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+9 -9
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
@@ -43,7 +43,7 @@ msgstr "Tallenna"
#: code:addons/web_calendar/static/src/js/calendar.js:101
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr ""
msgstr "Kalenterinäkymässä 'date_delay' tyyppi pitää olla liukuluku"
#. module: web_calendar
#. openerp-web
@@ -165,21 +165,21 @@ msgstr "Aikajakso"
#: code:addons/web_calendar/static/src/js/calendar.js:158
#, python-format
msgid "Delete"
msgstr ""
msgstr "Poista"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:152
#, python-format
msgid "Month"
msgstr ""
msgstr "Kuukausi"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:168
#, python-format
msgid "Disabled"
msgstr ""
msgstr "Ei käytössä"
#. module: web_calendar
#. openerp-web
@@ -193,14 +193,14 @@ msgstr ""
#: code:addons/web_calendar/static/src/js/calendar.js:177
#, python-format
msgid "Year"
msgstr ""
msgstr "Vuosi"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:155
#, python-format
msgid "Cancel"
msgstr ""
msgstr "Peruuta"
#. module: web_calendar
#. openerp-web
@@ -214,7 +214,7 @@ msgstr "kalenteri"
#: code:addons/web_calendar/static/src/js/calendar.js:93
#, python-format
msgid "Calendar view has not defined 'date_start' attribute."
msgstr ""
msgstr "Kalenterinäkymään ei ole määritelty aloituspäivää 'date_start'."
#~ msgid "Navigator"
#~ msgstr "Navigaattori"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-13 05:38+0000\n"
"X-Generator: Launchpad (build 16564)\n"
"X-Launchpad-Export-Date: 2013-05-10 06:07+0000\n"
"X-Generator: Launchpad (build 16598)\n"
#. module: web_calendar
#. openerp-web

Some files were not shown because too many files have changed in this diff Show More