[MERGE] Sync with 7.0

bzr revid: tde@openerp.com-20130425143838-cl9k0fpml5r0q6bi
bzr revid: tde@openerp.com-20130426074530-16h0doe2cju6xkug
This commit is contained in:
Thibault Delavallée 2013-04-26 09:45:30 +02:00
commit 5cafebd48a
18 changed files with 527 additions and 130 deletions

View File

@ -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 = {

View File

@ -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

View File

@ -8,28 +8,38 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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 <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 14:18+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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

View File

@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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 <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2013-04-20 20:32+0000\n"
"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
"<maxime.chambreuil@savoirfairelinux.com>\n"
"Language-Team: French (Canada) <fr_CA@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-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

View File

@ -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) {

View File

@ -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: '<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

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'],

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
"PO-Revision-Date: 2013-04-21 17:10+0000\n"
"Last-Translator: Boris Skegin <boris.skegin.de@gmail.com>\n"
"Language-Team: German <de@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-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

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 12:51+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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

View File

@ -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

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 14:34+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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?"

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 14:41+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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

View File

@ -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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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) "
"<maxime.chambreuil@savoirfairelinux.com>\n"
"Language-Team: French (Canada) <fr_CA@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-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 "&iacute;"
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 ""

View File

@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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 <Unknown>\n"
"PO-Revision-Date: 2013-04-21 17:16+0000\n"
"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-"
"consulting.net>\n"
"Language-Team: German <de@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-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

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 14:53+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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."

View File

@ -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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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 <EMAIL@ADDRESS>\n"
"Language-Team: French (Canada) <fr_CA@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-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 ""

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: 2013-03-07 08:39+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"PO-Revision-Date: 2013-04-25 15:00+0000\n"
"Last-Translator: Illimar Saatväli <is@hot.ee>\n"
"Language-Team: Estonian <et@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-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

View File

@ -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 view_id = %s>", 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',