diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 01126694059..01624ceb1ce 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1439,7 +1439,7 @@ class Action(openerpweb.Controller): else: return False -class Export(View): +class Export(openerpweb.Controller): _cp_path = "/web/export" @openerpweb.jsonrequest @@ -1580,7 +1580,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 """ @@ -1628,7 +1628,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'} @@ -1663,7 +1663,7 @@ class CSVExport(Export): fp.close() return data -class ExcelExport(Export): +class ExcelExport(ExportFormat, http.Controller): _cp_path = '/web/export/xls' fmt = { 'tag': 'xls', @@ -1702,7 +1702,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 = { diff --git a/addons/web/http.py b/addons/web/http.py index e05d74e0873..f56778ea1ba 100644 --- a/addons/web/http.py +++ b/addons/web/http.py @@ -20,6 +20,7 @@ import traceback import urlparse import uuid import xmlrpclib +import errno import babel.core import simplejson @@ -355,17 +356,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 #---------------------------------------------------------- @@ -477,8 +492,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): @@ -558,10 +580,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 diff --git a/addons/web/i18n/et.po b/addons/web/i18n/et.po index 604ca8af8bc..34cce36cad7 100644 --- a/addons/web/i18n/et.po +++ b/addons/web/i18n/et.po @@ -8,28 +8,38 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2013-01-06 20:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 14:18+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:09+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: web +#. openerp-web +#: code:addons/web/static/src/js/view_form.js:4168 +#: code:addons/web/static/src/js/view_form.js:4329 +#: code:addons/web/static/src/xml/base.xml:1416 +#: code:addons/web/static/src/xml/base.xml:1703 +#, python-format +msgid "Add" +msgstr "Lisa" #. 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 +85,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 +136,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 +151,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 +223,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 +259,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 +287,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 +315,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 +365,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 +373,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 +394,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 +428,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 +449,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 +513,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 +583,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 +597,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 @@ -647,7 +657,7 @@ msgstr "" #: code:addons/web/static/src/js/search.js:2137 #, python-format msgid "is set" -msgstr "" +msgstr "on määratud" #. module: web #. openerp-web @@ -846,17 +856,7 @@ msgstr "Filtri nimi" #: code:addons/web/static/src/xml/base.xml:1471 #, python-format msgid "-- Actions --" -msgstr "" - -#. module: web -#. openerp-web -#: code:addons/web/static/src/js/view_form.js:4168 -#: code:addons/web/static/src/js/view_form.js:4329 -#: code:addons/web/static/src/xml/base.xml:1416 -#: code:addons/web/static/src/xml/base.xml:1703 -#, python-format -msgid "Add" -msgstr "Lisa" +msgstr "-- Toimingud --" #. module: web #. openerp-web diff --git a/addons/web/i18n/fr_CA.po b/addons/web/i18n/fr_CA.po index 4eb1620d264..2947c899185 100644 --- a/addons/web/i18n/fr_CA.po +++ b/addons/web/i18n/fr_CA.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-20 20:32+0000\n" +"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) " +"\n" "Language-Team: French (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-21 05:32+0000\n" +"X-Generator: Launchpad (build 16567)\n" #. module: web #. openerp-web @@ -291,7 +292,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 +320,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 +412,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 +433,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 +588,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 @@ -875,6 +876,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 @@ -1363,7 +1365,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 @@ -1629,7 +1631,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 @@ -1883,7 +1885,7 @@ msgstr "" #: code:addons/web/static/src/xml/base.xml:1249 #, python-format msgid "Uploading ..." -msgstr "" +msgstr "Téléversement…" #. module: web #. openerp-web @@ -2079,7 +2081,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 @@ -2463,7 +2465,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 diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index dd3ccfe2722..69c26049a2e 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -249,7 +249,9 @@ instance.web.CrashManager = instance.web.Class.extend({ } // yes, exception handling is shitty if (error.code === 300 && error.data && error.data.type == "client_exception" && error.data.debug.match("SessionExpiredException")) { - this.show_warning({type: "Session Expired", data: { fault_code: "Your OpenERP session expired. Please refresh the current web page." }}); + this.show_warning({type: "Session Expired", data: { + fault_code: _t("Your OpenERP session expired. Please refresh the current web page.") + }}); return; } if (error.data.fault_code) { diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index c1ace6b57f3..37f8bd8b3f2 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1346,20 +1346,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: '' + this.attrs.string + '', + value: '' + _.str.escapeHTML(value) + ''}); + return $.when([{ + label: label, + facet: { + category: this.attrs.string, + field: this, + values: [{label: value, value: val}] + } + }]); + }, }); /** * @class diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index 6c4b6d61d3c..73d984506b2 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -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'], diff --git a/addons/web_calendar/i18n/de.po b/addons/web_calendar/i18n/de.po index d464de70625..fe1cda84be4 100644 --- a/addons/web_calendar/i18n/de.po +++ b/addons/web_calendar/i18n/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ferdinand @ Camptocamp \n" +"PO-Revision-Date: 2013-04-21 17:10+0000\n" +"Last-Translator: Boris Skegin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_calendar #. openerp-web @@ -36,7 +36,7 @@ msgstr "Details" #: code:addons/web_calendar/static/src/js/calendar.js:487 #, python-format msgid "Edit: %s" -msgstr "" +msgstr "Editieren: %s" #. module: web_calendar #. openerp-web @@ -160,7 +160,7 @@ msgstr "Agenda" #: code:addons/web_calendar/static/src/js/calendar.js:450 #, python-format msgid "Create: %s" -msgstr "" +msgstr "Anlegen: %s" #. module: web_calendar #. openerp-web diff --git a/addons/web_calendar/i18n/et.po b/addons/web_calendar/i18n/et.po index dbf900dfc91..1dc1ceb4017 100644 --- a/addons/web_calendar/i18n/et.po +++ b/addons/web_calendar/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 12:51+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_calendar #. openerp-web @@ -36,7 +36,7 @@ msgstr "Üksikasjad" #: code:addons/web_calendar/static/src/js/calendar.js:487 #, python-format msgid "Edit: %s" -msgstr "" +msgstr "Muuda: %s" #. module: web_calendar #. openerp-web diff --git a/addons/web_diagram/controllers/main.py b/addons/web_diagram/controllers/main.py index c598a7e4652..3f3c1065504 100644 --- a/addons/web_diagram/controllers/main.py +++ b/addons/web_diagram/controllers/main.py @@ -1,6 +1,6 @@ import openerp -class DiagramView(openerp.addons.web.controllers.main.View): +class DiagramView(openerp.addons.web.http.Controller): _cp_path = "/web_diagram/diagram" @openerp.addons.web.http.jsonrequest diff --git a/addons/web_diagram/i18n/et.po b/addons/web_diagram/i18n/et.po index d025ca77d25..e6bf80357b4 100644 --- a/addons/web_diagram/i18n/et.po +++ b/addons/web_diagram/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 14:34+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_diagram #. openerp-web @@ -23,7 +23,7 @@ msgstr "" #: code:addons/web_diagram/static/src/js/diagram.js:317 #, python-format msgid "Open: " -msgstr "" +msgstr "Avatud: " #. module: web_diagram #. openerp-web @@ -49,7 +49,7 @@ msgstr "Uus sõlm" #: code:addons/web_diagram/static/src/js/diagram.js:329 #, python-format msgid "Transition" -msgstr "" +msgstr "Üleminek" #. module: web_diagram #. openerp-web @@ -64,7 +64,7 @@ msgstr "Diagramm" #: code:addons/web_diagram/static/src/js/diagram.js:278 #, python-format msgid "Activity" -msgstr "" +msgstr "Tegevus" #. module: web_diagram #. openerp-web @@ -97,3 +97,6 @@ msgid "" "\n" "Are you sure ?" msgstr "" +"Peale kustutamist ei saa seda tagasi võtta.\n" +"\n" +"Oled sa kindel?" diff --git a/addons/web_graph/i18n/et.po b/addons/web_graph/i18n/et.po index 30a7fd6c7eb..7a6dd250f5d 100644 --- a/addons/web_graph/i18n/et.po +++ b/addons/web_graph/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 14:41+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_graph #. openerp-web @@ -64,7 +64,7 @@ msgstr "Sektor" #: code:addons/web_graph/static/src/xml/web_graph.xml:28 #, python-format msgid "Actions" -msgstr "Toimingud" +msgstr "Tegevused" #. module: web_graph #. openerp-web @@ -92,7 +92,7 @@ msgstr "Lae alla PNG" #: code:addons/web_graph/static/src/xml/web_graph.xml:26 #, python-format msgid "Top" -msgstr "Üleval" +msgstr "Üles" #. module: web_graph #. openerp-web diff --git a/addons/web_graph/i18n/fr_CA.po b/addons/web_graph/i18n/fr_CA.po new file mode 100644 index 00000000000..2d9b1123b76 --- /dev/null +++ b/addons/web_graph/i18n/fr_CA.po @@ -0,0 +1,138 @@ +# French (Canada) translation for openerp-web +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-03-07 08:39+0000\n" +"PO-Revision-Date: 2013-04-20 20:40+0000\n" +"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) " +"\n" +"Language-Team: French (Canada) \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-21 05:32+0000\n" +"X-Generator: Launchpad (build 16567)\n" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:12 +#, python-format +msgid "Bars" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:33 +#, python-format +msgid "Show Data" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/js/graph.js:22 +#, python-format +msgid "Graph" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:25 +#, python-format +msgid "Inside" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:3 +#, python-format +msgid "í" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:11 +#, python-format +msgid "Pie" +msgstr "Tarte" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:28 +#, python-format +msgid "Actions" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:7 +#, python-format +msgid "Graph Mode" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:18 +#, python-format +msgid "Radar" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:34 +#, python-format +msgid "Download as PNG" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:26 +#, python-format +msgid "Top" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:24 +#, python-format +msgid "Hidden" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:3 +#, python-format +msgid "Graph Options" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:14 +#, python-format +msgid "Lines" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:20 +#, python-format +msgid "Legend" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:32 +#, python-format +msgid "Switch Axis" +msgstr "" + +#. module: web_graph +#. openerp-web +#: code:addons/web_graph/static/src/xml/web_graph.xml:15 +#, python-format +msgid "Areas" +msgstr "" diff --git a/addons/web_kanban/i18n/de.po b/addons/web_kanban/i18n/de.po index 6c3f321ede6..c442a73ffa2 100644 --- a/addons/web_kanban/i18n/de.po +++ b/addons/web_kanban/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2013-04-21 17:16+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_kanban #. openerp-web @@ -86,7 +87,7 @@ msgstr "Eine neue Spalte hinzufügen" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:45 #, python-format msgid "Fold" -msgstr "" +msgstr "Schließen" #. module: web_kanban #. openerp-web @@ -114,7 +115,7 @@ msgstr "Wollen Sie diesen Datensatz wirklich löschen?" #: code:addons/web_kanban/static/src/js/kanban.js:677 #, python-format msgid "Unfold" -msgstr "" +msgstr "Öffnen" #. module: web_kanban #. openerp-web @@ -135,7 +136,7 @@ msgstr "verbleibend)" #: code:addons/web_kanban/static/src/js/kanban.js:421 #, python-format msgid "An error has occured while moving the record to this group: " -msgstr "" +msgstr "Fehler beim Versuch den Datensatz dieser Gruppe zuzuweisen: " #. module: web_kanban #. openerp-web diff --git a/addons/web_kanban/i18n/et.po b/addons/web_kanban/i18n/et.po index 7984ff53852..f39dd6c8625 100644 --- a/addons/web_kanban/i18n/et.po +++ b/addons/web_kanban/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 14:53+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_kanban #. openerp-web @@ -29,7 +29,7 @@ msgstr "Muuda veergu" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:80 #, python-format msgid "Show more... (" -msgstr "" +msgstr "Näita rohkem ... (" #. module: web_kanban #. openerp-web @@ -50,7 +50,7 @@ msgstr "Määramata" #: code:addons/web_kanban/static/src/js/kanban.js:705 #, python-format msgid "Are you sure to remove this column ?" -msgstr "" +msgstr "Kas oled kindel, et soovid seda veergu eemaldada ?" #. module: web_kanban #. openerp-web @@ -86,7 +86,7 @@ msgstr "Lisa uus veerg" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:45 #, python-format msgid "Fold" -msgstr "" +msgstr "Voldi" #. module: web_kanban #. openerp-web @@ -100,21 +100,21 @@ msgstr "Lisa" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:35 #, python-format msgid "Quick create" -msgstr "" +msgstr "Kiirloomine" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:918 #, python-format msgid "Are you sure you want to delete this record ?" -msgstr "" +msgstr "Kas oled kindel, et soovd selle kirje kustutada?" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:677 #, python-format msgid "Unfold" -msgstr "" +msgstr "Voldi lahti" #. module: web_kanban #. openerp-web @@ -128,14 +128,14 @@ msgstr "Loobu" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:80 #, python-format msgid "remaining)" -msgstr "" +msgstr "ülejäänud)" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:421 #, python-format msgid "An error has occured while moving the record to this group: " -msgstr "" +msgstr "Tekkis viga selle kirje kolimisel sellesse gruppi: " #. module: web_kanban #. openerp-web @@ -159,3 +159,7 @@ msgstr "99+" #, python-format msgid "Delete" msgstr "Eemalda" + +#, python-format +#~ msgid "An error has occured while moving the record to this group." +#~ msgstr "Tekkis viga selle kirje kolimisel sellesse gruppi." diff --git a/addons/web_kanban/i18n/fr_CA.po b/addons/web_kanban/i18n/fr_CA.po new file mode 100644 index 00000000000..e12110d293f --- /dev/null +++ b/addons/web_kanban/i18n/fr_CA.po @@ -0,0 +1,161 @@ +# French (Canada) translation for openerp-web +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-03-07 08:39+0000\n" +"PO-Revision-Date: 2013-04-20 20:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: French (Canada) \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-21 05:32+0000\n" +"X-Generator: Launchpad (build 16567)\n" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:686 +#, python-format +msgid "Edit column" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:80 +#, python-format +msgid "Show more... (" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:10 +#, python-format +msgid "Kanban" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:539 +#, python-format +msgid "Undefined" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:705 +#, python-format +msgid "Are you sure to remove this column ?" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:47 +#, python-format +msgid "Edit" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:192 +#, python-format +msgid "Add column" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:1082 +#, python-format +msgid "Create: " +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:24 +#, python-format +msgid "Add a new column" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:677 +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:45 +#, python-format +msgid "Fold" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:98 +#, python-format +msgid "Add" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:35 +#, python-format +msgid "Quick create" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:918 +#, python-format +msgid "Are you sure you want to delete this record ?" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:677 +#, python-format +msgid "Unfold" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:99 +#, python-format +msgid "Cancel" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:80 +#, python-format +msgid "remaining)" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/js/kanban.js:421 +#, python-format +msgid "An error has occured while moving the record to this group: " +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:22 +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:98 +#, python-format +msgid "or" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40 +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:55 +#, python-format +msgid "99+" +msgstr "" + +#. module: web_kanban +#. openerp-web +#: code:addons/web_kanban/static/src/xml/web_kanban.xml:48 +#, python-format +msgid "Delete" +msgstr "" diff --git a/addons/web_view_editor/i18n/et.po b/addons/web_view_editor/i18n/et.po index 3474e7e195e..0c01a5becf5 100644 --- a/addons/web_view_editor/i18n/et.po +++ b/addons/web_view_editor/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ahti Hinnov \n" +"PO-Revision-Date: 2013-04-25 15:00+0000\n" +"Last-Translator: Illimar Saatväli \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-26 06:24+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_view_editor #. openerp-web @@ -122,7 +122,7 @@ msgstr "Muuda" #: code:addons/web_view_editor/static/src/js/view_editor.js:14 #, python-format msgid "Could not find current view declaration" -msgstr "" +msgstr "Ei leia praeguse vaate deklaratsiooni" #. module: web_view_editor #. openerp-web diff --git a/addons/web_view_editor/static/src/js/view_editor.js b/addons/web_view_editor/static/src/js/view_editor.js index 48b76e02904..524c415d34a 100644 --- a/addons/web_view_editor/static/src/js/view_editor.js +++ b/addons/web_view_editor/static/src/js/view_editor.js @@ -15,7 +15,7 @@ instance.web.ViewManagerAction.include({ } evt.currentTarget.selectedIndex = 0; }else{ - return this._super.apply(this,arguments); + return this._super.apply(this,arguments); } } }); @@ -232,10 +232,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ return main_object; }, parse_xml: function(arch, view_id) { + //First element of att_list must be element tagname. main_object = { 'level': 0, 'id': this.xml_element_id +=1, - 'att_list': [], + 'att_list': ["view"], 'name': _.str.sprintf("", view_id), 'child_id': [] }; @@ -535,15 +536,22 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null); parent_tr = self.get_object_by_id(parseInt($(parent_tr).attr('id').replace(/[^0-9]+/g, '')), this.one_object['main_object'], [])[0].att_list[0]; _.each([tr, parent_tr],function(element) { - var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; + var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; property_to_check.push(value); }); field_dataset.call( 'fields_get', []).done(function(result) { var fields = _.keys(result); fields.push(" "),fields.sort(); - self.on_add_node(property_to_check, fields); + self.on_add_node(property_to_check, fields, self.inject_position(parent_tr,tr)); }); }, + inject_position : function(parent_tag,current_tag){ + if(parent_tag == "view") + return ['Inside']; + if(current_tag == "field") + return ['After','Before']; + return ['After','Before','Inside']; + }, do_node_edit: function(side) { var self = this; var result = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object['main_object'], []); @@ -941,11 +949,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }); return def.promise(); }, - on_add_node: function(properties, fields){ + on_add_node: function(properties, fields, position){ var self = this; var render_list = [{'name': 'node_type','selection': _.keys(_CHILDREN).sort(), 'value': 'field', 'string': 'Node Type','type': 'selection'}, {'name': 'field_value','selection': fields, 'value': false, 'string': '','type': 'selection'}, - {'name': 'position','selection': ['After','Before','Inside'], 'value': false, 'string': 'Position','type': 'selection'}]; + {'name': 'position','selection': position, 'value': false, 'string': 'Position','type': 'selection'}]; this.add_widget = []; this.add_node_dialog = new instance.web.Dialog(this,{ title: _t("Properties"), @@ -1186,7 +1194,7 @@ var _CHILDREN = { //e.g.:xyz 'td' : ['field'] }; // Generic html_tag list and can be added html tag in future. It's support above _CHILDREN dict's *html_tag* by default. -// For specific child node one has to define tag above and specify children tag in list. Like above xyz example. +// For specific child node one has to define tag above and specify children tag in list. Like above xyz example. var html_tag = ['div','h1','h2','h3','h4','h5','h6','td','tr']; var _ICONS = ['','STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD',