[MERGE] from trunk

bzr revid: chm@openerp.com-20121210095444-zyxz07o93t14ziun
This commit is contained in:
Christophe Matthieu
2012-12-10 10:54:44 +01:00
33 changed files with 786 additions and 255 deletions
+1
View File
@@ -1,4 +1,5 @@
import http
import controllers
import cli
wsgi_postload = http.wsgi_postload
+1
View File
@@ -0,0 +1 @@
import test_js
+35
View File
@@ -0,0 +1,35 @@
import logging
import optparse
import sys
import unittest2
import openerp
import openerp.addons.web.tests
_logger = logging.getLogger(__name__)
class TestJs(openerp.cli.Command):
def run(self, args):
self.parser = parser = optparse.OptionParser()
parser.add_option("-d", "--database", dest="db_name", default=False, help="specify the database name")
parser.add_option("--xmlrpc-port", dest="xmlrpc_port", default=8069, help="specify the TCP port for the XML-RPC protocol", type="int")
# proably need to add both --superadmin-password and --database-admin-password
self.parser.parse_args(args)
# test ony uses db_name xmlrpc_port admin_passwd, so use the server one for the actual parsing
config = openerp.tools.config
config.parse_config(args)
# needed until runbot is fixed
config['db_password'] = config['admin_passwd']
# run js tests
openerp.netsvc.init_alternative_logger()
suite = unittest2.TestSuite()
suite.addTests(unittest2.TestLoader().loadTestsFromModule(openerp.addons.web.tests.test_js))
r = unittest2.TextTestRunner(verbosity=2).run(suite)
if r.errors or r.failures:
sys.exit(1)
# vim:et:ts=4:sw=4:
+4 -3
View File
@@ -12,17 +12,18 @@ Contents:
:maxdepth: 1
module
testing
widget
async
rpc
qweb
client_action
form_view
testing
search_view
list_view
form_view
changelog-7.0
+5
View File
@@ -16,6 +16,11 @@ XML-based templating language, similar to `Genshi
OpenERP Web (and it's possible to use :class:`~instance.web.Widget`
without relying on the QWeb integration).
The rationale behind using QWeb instead of a more popular template syntax is
that its extension mechanism is very similar to the openerp view inheritance
mechanism. Like openerp views a QWeb template is an xml tree and therefore
xpath or dom manipulations are easy to performs on it.
Here's an example demonstrating most of the basic QWeb features:
.. code-block:: xml
+3 -3
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-06 19:10+0000\n"
"PO-Revision-Date: 2012-12-07 19:11+0000\n"
"Last-Translator: Eduardo Alberto Calvo <Unknown>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-07 04:47+0000\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
@@ -2373,7 +2373,7 @@ msgstr "Disparador activado desde la vista de búsqueda"
#: code:addons/web/static/src/js/search.js:980
#, python-format
msgid "Filter"
msgstr ""
msgstr "Filtro"
#. module: web
#. openerp-web
+8 -8
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-06 15:39+0000\n"
"PO-Revision-Date: 2012-12-07 13:23+0000\n"
"Last-Translator: fshahy <fshahy@gmail.com>\n"
"Language-Team: Persian <fa@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-07 04:47+0000\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
@@ -36,7 +36,7 @@ msgstr "%d دقیقه پیش"
#: code:addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "Still loading...<br />Please be patient."
msgstr ""
msgstr "در حال بارگذاری...</ br> لطفا صبر کنید."
#. module: web
#. openerp-web
@@ -59,7 +59,7 @@ msgstr "کوچکتر یا مساوی"
#: code:addons/web/static/src/js/chrome.js:393
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "لطفا کلمه عبور قبلی خود را وارد کنید."
#. module: web
#. openerp-web
@@ -82,7 +82,7 @@ msgstr "تغییر کلمه عبور اصلی"
#: code:addons/web/static/src/js/chrome.js:491
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr ""
msgstr "آیا پایگاه داده حذف شود: %s ؟"
#. module: web
#. openerp-web
@@ -120,7 +120,7 @@ msgstr "تهیه کپی پشتیبان از پایگاه داده"
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "'%s' یک تاریخ معتبر نیست"
#. module: web
#. openerp-web
@@ -134,7 +134,7 @@ msgstr ""
#: code:addons/web/static/src/js/coresetup.js:592
#, python-format
msgid "about a minute ago"
msgstr ""
msgstr "حدود یک دقیقه قبل"
#. module: web
#. openerp-web
@@ -154,7 +154,7 @@ msgstr "هیچ یک از فیلد های کلمه عبور نباید خالی
#: code:addons/web/static/src/js/chrome.js:681
#, python-format
msgid "Invalid username or password"
msgstr "نام کاربر یا گذرواژهٔ نامعتبر"
msgstr "نام کاربری یا کلمه عبور معتبر نیست"
#. module: web
#. openerp-web
+77 -69
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-06 17:55+0000\n"
"PO-Revision-Date: 2012-12-09 18:47+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-07 04:47+0000\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
@@ -59,7 +59,7 @@ msgstr "manje ili jednako od"
#: code:addons/web/static/src/js/chrome.js:393
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "Upišite trenutno važeću lozinku"
#. module: web
#. openerp-web
@@ -82,7 +82,7 @@ msgstr "Promijeni glavnu lozinku"
#: code:addons/web/static/src/js/chrome.js:491
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr ""
msgstr "Zaista želite obrisati bazu podataka: %s ?"
#. module: web
#. openerp-web
@@ -96,7 +96,7 @@ msgstr "Traži %(field)s at: %(value)s"
#: code:addons/web/static/src/js/chrome.js:537
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Pristup odbijen / zabranjen"
#. module: web
#. openerp-web
@@ -120,7 +120,7 @@ msgstr "Backup baze podataka"
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "'%s' nije ispravan datum"
#. module: web
#. openerp-web
@@ -147,7 +147,7 @@ msgstr "Datoteka"
#: code:addons/web/controllers/main.py:842
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "Popunite sva polja."
#. module: web
#. openerp-web
@@ -207,7 +207,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:1242
#, python-format
msgid "Widget type '%s' is not implemented"
msgstr ""
msgstr "Widget tipa '%s' nije implementiran"
#. module: web
#. openerp-web
@@ -236,7 +236,7 @@ msgstr "(prazno)"
#: code:addons/web/static/src/js/formats.js:282
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'%s' nije ispravno vrijeme"
#. module: web
#. openerp-web
@@ -271,7 +271,7 @@ msgstr "Nedefiniran"
#: code:addons/web/static/src/js/view_form.js:4831
#, python-format
msgid "File Upload"
msgstr ""
msgstr "Slanje datoteke"
#. module: web
#. openerp-web
@@ -335,7 +335,7 @@ msgstr "Promijeni lozinku"
#: code:addons/web/static/src/js/view_form.js:3382
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "Pogled tipa '%s' nije podržan za JedanNaViše (One2Many) polja."
#. module: web
#. openerp-web
@@ -350,7 +350,7 @@ msgstr "Preuzimanje"
#: code:addons/web/static/src/js/formats.js:266
#, python-format
msgid "'%s' is not a correct datetime"
msgstr ""
msgstr "'%s' nije ispravno vrijeme"
#. module: web
#. openerp-web
@@ -378,13 +378,13 @@ msgstr "Odabir:"
#: code:addons/web/static/src/js/view_form.js:869
#, python-format
msgid "The following fields are invalid:"
msgstr ""
msgstr "Popis neispravnih polja:"
#. module: web
#: code:addons/web/controllers/main.py:863
#, python-format
msgid "Languages"
msgstr ""
msgstr "Jezici"
#. module: web
#. openerp-web
@@ -405,7 +405,7 @@ msgstr "Uvoz"
#: code:addons/web/static/src/js/chrome.js:543
#, python-format
msgid "Could not restore the database"
msgstr ""
msgstr "Oporavak baze podataka nije uspješno dovršen"
#. module: web
#. openerp-web
@@ -518,7 +518,7 @@ msgstr "Operator %s nije podržan unutar domene %s"
#: code:addons/web/static/src/js/formats.js:242
#, python-format
msgid "'%s' is not a correct float"
msgstr ""
msgstr "'%s' nije ispravna decimalna vrijednost"
#. module: web
#. openerp-web
@@ -532,7 +532,7 @@ msgstr "Oporavljeno"
#: code:addons/web/static/src/js/view_list.js:392
#, python-format
msgid "%d-%d of %d"
msgstr ""
msgstr "%d-%d od %d"
#. module: web
#. openerp-web
@@ -546,14 +546,14 @@ msgstr "Kreiraj i uredi"
#: code:addons/web/static/src/js/pyeval.js:731
#, python-format
msgid "Unknown nonliteral type "
msgstr ""
msgstr "Nepoznat tip podatka "
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2345
#, python-format
msgid "Resource error"
msgstr ""
msgstr "Greška resursa"
#. module: web
#. openerp-web
@@ -574,7 +574,7 @@ msgstr "Ispiši tijek rada"
#: code:addons/web/static/src/js/chrome.js:396
#, python-format
msgid "Please confirm your new password"
msgstr ""
msgstr "Potvrdite Vašu novu zaporku"
#. module: web
#. openerp-web
@@ -623,7 +623,7 @@ msgstr "Polja %s modela"
#: code:addons/web/static/src/js/view_list.js:890
#, python-format
msgid "Setting 'id' attribute on existing record %s"
msgstr ""
msgstr "Postavljanje 'id' atributa na postojećem zapisu %s"
#. module: web
#. openerp-web
@@ -668,13 +668,15 @@ msgstr "Action ID:"
#, python-format
msgid "Your user's preference timezone does not match your browser timezone:"
msgstr ""
"Pojasno vrijeme u Vašim korisničkim podacima ne odgovara pojasnom vremenu "
"zadanom u Vašem Internet pretraživaču"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1238
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Ne postoji polje '%s', a navedeno je u definiciji pogleda."
#. module: web
#. openerp-web
@@ -702,7 +704,7 @@ msgstr "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "The database has been duplicated."
msgstr ""
msgstr "Baza podataka je duplicirana."
#. module: web
#. openerp-web
@@ -731,7 +733,7 @@ msgstr "Spremi kao"
#: code:addons/web/static/src/js/view_form.js:2316
#, python-format
msgid "E-mail error"
msgstr ""
msgstr "E-mail greška"
#. module: web
#. openerp-web
@@ -793,7 +795,7 @@ msgstr "Graničnik:"
#: code:addons/web/static/src/xml/base.xml:458
#, python-format
msgid "Browser's timezone"
msgstr ""
msgstr "Pojasno vrijeme internet preglednika"
#. module: web
#. openerp-web
@@ -838,7 +840,7 @@ msgstr "OpenERP.com"
#: code:addons/web/static/src/js/view_form.js:2316
#, python-format
msgid "Can't send email to invalid e-mail address"
msgstr ""
msgstr "Nije moguće poslati email na neispravne e-mail adrese"
#. module: web
#. openerp-web
@@ -859,7 +861,7 @@ msgstr "Postavke"
#: code:addons/web/static/src/js/view_form.js:434
#, python-format
msgid "Wrong on change format: %s"
msgstr ""
msgstr "Greška u promjeni formata: %s"
#. module: web
#. openerp-web
@@ -874,7 +876,7 @@ msgstr "Obriši bazu podataka"
#: code:addons/web/static/src/xml/base.xml:462
#, python-format
msgid "Click here to change your user's timezone."
msgstr ""
msgstr "Kliknite ovdje za promjenu korisničkog pojasnog vremena"
#. module: web
#. openerp-web
@@ -920,21 +922,21 @@ msgstr "Korisničko ime"
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "Duplicating database"
msgstr ""
msgstr "Dupliciram bazu podataka"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Password has been changed successfully"
msgstr ""
msgstr "Lozinka uspješno promjenjena"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list_editable.js:781
#, python-format
msgid "The form's data can not be discarded"
msgstr ""
msgstr "Podaci (form's data) se ne mogu odbaciti"
#. module: web
#. openerp-web
@@ -969,6 +971,10 @@ msgid ""
"\n"
"%s"
msgstr ""
"Greška lokalne evaluacije\n"
"%s\n"
"\n"
"%s"
#. module: web
#. openerp-web
@@ -1003,7 +1009,7 @@ msgstr "Kreirano:"
#: code:addons/web/controllers/main.py:851
#, python-format
msgid "Error, password not changed !"
msgstr ""
msgstr "Greška, lozika nije promjenjena!"
#. module: web
#. openerp-web
@@ -1025,7 +1031,7 @@ msgstr "/web/binary/upload_attachment"
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Changed Password"
msgstr ""
msgstr "Promjenjena lozinka"
#. module: web
#. openerp-web
@@ -1059,14 +1065,14 @@ msgstr "Arhiviranje/Backup"
#: code:addons/web/static/src/js/dates.js:80
#, python-format
msgid "'%s' is not a valid time"
msgstr ""
msgstr "'%s' nije ispravno vrijeme"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:274
#, python-format
msgid "'%s' is not a correct date"
msgstr ""
msgstr "'%s' nije ispravan datum"
#. module: web
#. openerp-web
@@ -1120,7 +1126,7 @@ msgstr "Zadnju promjenu napravio:"
#: code:addons/web/static/src/xml/base.xml:466
#, python-format
msgid "Timezone mismatch"
msgstr ""
msgstr "Neslaganje vremenskih pojasa"
#. module: web
#. openerp-web
@@ -1189,7 +1195,7 @@ msgstr "Dodaj napredni filter"
#: code:addons/web/controllers/main.py:844
#, python-format
msgid "The new password and its confirmation must be identical."
msgstr ""
msgstr "Nova lozinka i potvrda lozinke moraju biti identične."
#. module: web
#. openerp-web
@@ -1204,7 +1210,7 @@ msgstr "Povrati bazu podataka"
#: code:addons/web/static/src/js/chrome.js:645
#, python-format
msgid "Login"
msgstr ""
msgstr "Prijava"
#. module: web
#. openerp-web
@@ -1247,7 +1253,7 @@ msgstr "Grupiraj po: %s"
#: code:addons/web/static/src/js/view_form.js:151
#, python-format
msgid "No data provided."
msgstr ""
msgstr "Nema podataka."
#. module: web
#. openerp-web
@@ -1290,7 +1296,7 @@ msgstr "Neispravna pretraga"
#: code:addons/web/static/src/js/view_list.js:959
#, python-format
msgid "Could not find id in dataset"
msgstr ""
msgstr "Id nije pronađen u podacima"
#. module: web
#. openerp-web
@@ -1318,7 +1324,7 @@ msgstr "%(page)d/%(page_count)d"
#: code:addons/web/static/src/js/chrome.js:397
#, python-format
msgid "The confirmation does not match the password"
msgstr ""
msgstr "Nova lozinka i potvrda su različite"
#. module: web
#. openerp-web
@@ -1357,7 +1363,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:393
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web
#. openerp-web
@@ -1371,7 +1377,7 @@ msgstr "1. Uvezi .CSV datoteku"
#: code:addons/web/static/src/js/chrome.js:645
#, python-format
msgid "No database selected !"
msgstr ""
msgstr "Nije odabrana baza podataka"
#. module: web
#. openerp-web
@@ -1409,7 +1415,7 @@ msgstr "je jednako"
#: code:addons/web/static/src/js/views.js:1455
#, python-format
msgid "Could not serialize XML"
msgstr ""
msgstr "Could not serialize XML"
#. module: web
#. openerp-web
@@ -1513,14 +1519,14 @@ msgstr "Stablo"
#: code:addons/web/controllers/main.py:766
#, python-format
msgid "Could not drop database !"
msgstr ""
msgstr "Brisanje baze podataka nije uspjelo!"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:227
#, python-format
msgid "'%s' is not a correct integer"
msgstr ""
msgstr "'%s' nije ispravna cjelobrojna vrijednost"
#. module: web
#. openerp-web
@@ -1541,7 +1547,7 @@ msgstr "Nepoznato polje %s unutar domene %s"
#: code:addons/web/static/src/js/views.js:1421
#, python-format
msgid "Node [%s] is not a JSONified XML node"
msgstr ""
msgstr "Node [%s] nije JSONified XML node"
#. module: web
#. openerp-web
@@ -1555,7 +1561,7 @@ msgstr "Napredno pretraživanje"
#: code:addons/web/static/src/js/chrome.js:499
#, python-format
msgid "Dropping database"
msgstr ""
msgstr "Brisanje baze podataka"
#. module: web
#. openerp-web
@@ -1578,7 +1584,7 @@ msgstr "Da"
#: code:addons/web/static/src/js/view_form.js:4831
#, python-format
msgid "There was a problem while uploading your file"
msgstr ""
msgstr "Pojavio se problem kod učitavanja vaše datoteke"
#. module: web
#. openerp-web
@@ -1620,7 +1626,7 @@ msgstr "%d godina prije"
#: code:addons/web/static/src/js/view_list.js:1019
#, python-format
msgid "Unknown m2m command %s"
msgstr ""
msgstr "Napoznata m2m naredba %s"
#. module: web
#. openerp-web
@@ -1643,14 +1649,14 @@ msgstr "Naziv nove baze podataka:"
#: code:addons/web/static/src/js/chrome.js:394
#, python-format
msgid "Please enter your new password"
msgstr ""
msgstr "Molim, unesite novu lozinku"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1463
#, python-format
msgid "Could not parse string to xml"
msgstr ""
msgstr "Could not parse string to xml"
#. module: web
#. openerp-web
@@ -1699,7 +1705,7 @@ msgstr "Copyright © 2004-TODAY OpenERP SA. Sva prava pridržana."
#: code:addons/web/static/src/js/view_form.js:2345
#, python-format
msgid "This resource is empty"
msgstr ""
msgstr "Ovaj resurs je prazan"
#. module: web
#. openerp-web
@@ -1757,7 +1763,7 @@ msgstr "Polja pogleda"
#: code:addons/web/static/src/xml/base.xml:330
#, python-format
msgid "Confirm New Password:"
msgstr ""
msgstr "Potvrda nove zaporke:"
#. module: web
#. openerp-web
@@ -1908,7 +1914,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:319
#, python-format
msgid "The record could not be found in the database."
msgstr ""
msgstr "Zapis nije pronađen u bazi podataka."
#. module: web
#. openerp-web
@@ -1929,7 +1935,7 @@ msgstr "Tip:"
#: code:addons/web/static/src/js/chrome.js:538
#, python-format
msgid "Incorrect super-administrator password"
msgstr ""
msgstr "Neispravna lozinka super-administratora"
#. module: web
#. openerp-web
@@ -1971,6 +1977,8 @@ msgid ""
"The type of the field '%s' must be a many2many field with a relation to "
"'ir.attachment' model."
msgstr ""
"Tip polja '%s' mora biti VišeNaViše (many2many) polje u relaciji sa "
"'ir.attachment' (privici) modelom."
#. module: web
#. openerp-web
@@ -2035,14 +2043,14 @@ msgstr "Učitaj demonstracijske podatke:"
#: code:addons/web/static/src/js/dates.js:26
#, python-format
msgid "'%s' is not a valid datetime"
msgstr ""
msgstr "'%s' nije ispravno vrijeme"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:1471
#, python-format
msgid "Could not find a DOM Parser: %s"
msgstr ""
msgstr "Could not find a DOM Parser: %s"
#. module: web
#. openerp-web
@@ -2122,14 +2130,14 @@ msgstr "Preuzimanje \"%s\""
#: code:addons/web/static/src/js/view_form.js:324
#, python-format
msgid "New"
msgstr ""
msgstr "Nova(i)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1746
#, python-format
msgid "Can't convert value %s to context"
msgstr ""
msgstr "Vrijednost %s ne odgovara za context"
#. module: web
#. openerp-web
@@ -2202,13 +2210,13 @@ msgstr "O OpenERP-u"
#: code:addons/web/static/src/js/formats.js:297
#, python-format
msgid "'%s' is not a correct date, datetime nor time"
msgstr ""
msgstr "'%s' nije ispravno vrijeme ili datum"
#. module: web
#: code:addons/web/controllers/main.py:1306
#, python-format
msgid "No content found for field '%s' on '%s:%s'"
msgstr ""
msgstr "Nedostaje kontekst za polje '%s' na '%s:%s'"
#. module: web
#. openerp-web
@@ -2236,7 +2244,7 @@ msgstr "Upravljanje bazama podataka"
#: code:addons/web/static/src/js/pyeval.js:765
#, python-format
msgid "Evaluation Error"
msgstr ""
msgstr "Greška evaluacije"
#. module: web
#. openerp-web
@@ -2269,7 +2277,7 @@ msgstr "Ne"
#: code:addons/web/static/src/js/formats.js:309
#, python-format
msgid "'%s' is not convertible to date, datetime nor time"
msgstr ""
msgstr "Interpretacija '%s' ne reultira datumom ili vremenom"
#. module: web
#. openerp-web
@@ -2344,7 +2352,7 @@ msgstr "Polje je prazno. Ništa za snimanje !"
#: code:addons/web/static/src/js/view_list.js:1327
#, python-format
msgid "%s (%d)"
msgstr ""
msgstr "%s (%d)"
#. module: web
#. openerp-web
@@ -2407,7 +2415,7 @@ msgstr "Obrisati privitak?"
#: code:addons/web/static/src/js/views.js:838
#, python-format
msgid "Technical Translation"
msgstr ""
msgstr "tehnički prijevod"
#. module: web
#. openerp-web
@@ -2421,14 +2429,14 @@ msgstr "Polje:"
#: code:addons/web/static/src/js/chrome.js:499
#, python-format
msgid "The database %s has been dropped"
msgstr ""
msgstr "Baza podataka %s je obrisana"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:456
#, python-format
msgid "User's timezone"
msgstr ""
msgstr "Korisnikov vremenski pojas"
#. module: web
#. openerp-web
@@ -2457,7 +2465,7 @@ msgstr "Posebno:"
#, python-format
msgid ""
"The old password you provided is incorrect, your password was not changed."
msgstr ""
msgstr "Trenutna lozinka nije točno upisana. Lozinka nije promijenjena."
#. module: web
#. openerp-web
+27 -27
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-02-07 20:51+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"PO-Revision-Date: 2012-12-09 20:29+0000\n"
"Last-Translator: Rafał Perczyński <rafal@pery.com.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:20+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
#. openerp-web
@@ -29,14 +29,14 @@ msgstr "Domyślny język:"
#: code:addons/web/static/src/js/coresetup.js:593
#, python-format
msgid "%d minutes ago"
msgstr ""
msgstr "%d minut temu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "Still loading...<br />Please be patient."
msgstr ""
msgstr "Trwa ładowanie...<br />Bądź cierpliwy."
#. module: web
#. openerp-web
@@ -59,7 +59,7 @@ msgstr "równe lub mniejsze niż"
#: code:addons/web/static/src/js/chrome.js:393
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "Wpisz twoje poprzednie hasło"
#. module: web
#. openerp-web
@@ -68,21 +68,21 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:282
#, python-format
msgid "Master password:"
msgstr "Hasło madrzędne:"
msgstr "Hasło nadrzędne"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "Change Master Password"
msgstr ""
msgstr "Zmień Hasło Główne"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:491
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr ""
msgstr "Jesteś pewny że chcesz usunąć bazę danych: %s ?"
#. module: web
#. openerp-web
@@ -96,14 +96,14 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:537
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Odmowa dostępu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:594
#, python-format
msgid "about an hour ago"
msgstr ""
msgstr "około godziny temu"
#. module: web
#. openerp-web
@@ -112,7 +112,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:216
#, python-format
msgid "Backup Database"
msgstr ""
msgstr "Kopia zapasowa bazy danych"
#. module: web
#. openerp-web
@@ -120,7 +120,7 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "'%s' nie jest poprawną datą"
#. module: web
#. openerp-web
@@ -134,20 +134,20 @@ msgstr "Oto podgląd pliku, którego nie można zaimportować:"
#: code:addons/web/static/src/js/coresetup.js:592
#, python-format
msgid "about a minute ago"
msgstr ""
msgstr "około minuty temu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1272
#, python-format
msgid "File"
msgstr ""
msgstr "Plik"
#. module: web
#: code:addons/web/controllers/main.py:842
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "hasło nie może być puste"
#. module: web
#. openerp-web
@@ -235,7 +235,7 @@ msgstr ""
#: code:addons/web/static/src/js/formats.js:282
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'%s' nie jest poprawnym czasem"
#. module: web
#. openerp-web
@@ -270,21 +270,21 @@ msgstr "Niezdefiniowany"
#: code:addons/web/static/src/js/view_form.js:4831
#, python-format
msgid "File Upload"
msgstr ""
msgstr "Wyślij plik"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:598
#, python-format
msgid "about a month ago"
msgstr ""
msgstr "około miesiąca temu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1575
#, python-format
msgid "Custom Filters"
msgstr ""
msgstr "Własne filtry"
#. module: web
#. openerp-web
@@ -305,14 +305,14 @@ msgstr ""
#: code:addons/web/static/src/js/search.js:1555
#, python-format
msgid "Custom Filter"
msgstr ""
msgstr "Własny filtr"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:159
#, python-format
msgid "Duplicate Database"
msgstr ""
msgstr "Duplikuj bazę danych"
#. module: web
#. openerp-web
@@ -349,14 +349,14 @@ msgstr "Pobierz"
#: code:addons/web/static/src/js/formats.js:266
#, python-format
msgid "'%s' is not a correct datetime"
msgstr ""
msgstr "'%s' nie jest poprawną datą"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:415
#, python-format
msgid "Group"
msgstr ""
msgstr "Grupa"
#. module: web
#. openerp-web
@@ -383,7 +383,7 @@ msgstr ""
#: code:addons/web/controllers/main.py:863
#, python-format
msgid "Languages"
msgstr ""
msgstr "Języki"
#. module: web
#. openerp-web
@@ -411,7 +411,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:4811
#, python-format
msgid "File upload"
msgstr ""
msgstr "Wysyłanie pliku"
#. module: web
#. openerp-web
+38 -34
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-05 10:11+0000\n"
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
"PO-Revision-Date: 2012-12-07 11:24+0000\n"
"Last-Translator: Virgílio Oliveira <virgilio.oliveira@multibase.pt>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-06 04:54+0000\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
@@ -519,7 +519,7 @@ msgstr "Operador não suportado %s no domínio %s"
#: code:addons/web/static/src/js/formats.js:242
#, python-format
msgid "'%s' is not a correct float"
msgstr ""
msgstr "'%s' não é um número fracional correto"
#. module: web
#. openerp-web
@@ -547,14 +547,14 @@ msgstr "Criar e editar"
#: code:addons/web/static/src/js/pyeval.js:731
#, python-format
msgid "Unknown nonliteral type "
msgstr ""
msgstr "Tipo não literal desconhecido "
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2345
#, python-format
msgid "Resource error"
msgstr ""
msgstr "Erro de recurso"
#. module: web
#. openerp-web
@@ -596,7 +596,7 @@ msgstr "Para mais informações visite"
#: code:addons/web/static/src/xml/base.xml:1834
#, python-format
msgid "Add All Info..."
msgstr ""
msgstr "Adicionar toda a informação..."
#. module: web
#. openerp-web
@@ -624,7 +624,7 @@ msgstr "Campos %s modelo"
#: code:addons/web/static/src/js/view_list.js:890
#, python-format
msgid "Setting 'id' attribute on existing record %s"
msgstr ""
msgstr "Atribuição do atributo 'id' no registo %s já existente"
#. module: web
#. openerp-web
@@ -676,7 +676,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:1238
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Campo '%s' especificado na vista não foi encontrado."
#. module: web
#. openerp-web
@@ -718,7 +718,7 @@ msgstr "Aplicar"
#: code:addons/web/static/src/xml/base.xml:1361
#, python-format
msgid "Save & New"
msgstr ""
msgstr "Gravar & criar"
#. module: web
#. openerp-web
@@ -733,7 +733,7 @@ msgstr "Guardar como"
#: code:addons/web/static/src/js/view_form.js:2316
#, python-format
msgid "E-mail error"
msgstr ""
msgstr "Erro de e-mail"
#. module: web
#. openerp-web
@@ -861,7 +861,7 @@ msgstr "Preferências"
#: code:addons/web/static/src/js/view_form.js:434
#, python-format
msgid "Wrong on change format: %s"
msgstr ""
msgstr "Erro na alteração de formato: %s"
#. module: web
#. openerp-web
@@ -890,7 +890,7 @@ msgstr "Modificadores:"
#: code:addons/web/static/src/xml/base.xml:605
#, python-format
msgid "Delete this attachment"
msgstr ""
msgstr "Apagar este anexo"
#. module: web
#. openerp-web
@@ -922,7 +922,7 @@ msgstr "Nome de utilizador"
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "Duplicating database"
msgstr ""
msgstr "Duplicando a base de dados"
#. module: web
#. openerp-web
@@ -936,7 +936,7 @@ msgstr "A senha foi alterada com êxito"
#: code:addons/web/static/src/js/view_list_editable.js:781
#, python-format
msgid "The form's data can not be discarded"
msgstr ""
msgstr "A informação no formulário não pode ser descartada"
#. module: web
#. openerp-web
@@ -971,6 +971,10 @@ msgid ""
"\n"
"%s"
msgstr ""
"Falha na avaliação local\n"
"%s\n"
"\n"
"%s"
#. module: web
#. openerp-web
@@ -1012,7 +1016,7 @@ msgstr "Erro, a senha não foi alterada!"
#: code:addons/web/static/src/js/view_form.js:4810
#, python-format
msgid "The selected file exceed the maximum file size of %s."
msgstr ""
msgstr "O ficheiro selecionado excede o tamanho máximo de %s."
#. module: web
#. openerp-web
@@ -1061,7 +1065,7 @@ msgstr "Cópia de segurança"
#: code:addons/web/static/src/js/dates.js:80
#, python-format
msgid "'%s' is not a valid time"
msgstr ""
msgstr "'%s' não é uma hora válida"
#. module: web
#. openerp-web
@@ -1249,7 +1253,7 @@ msgstr "Agrupar por: %s"
#: code:addons/web/static/src/js/view_form.js:151
#, python-format
msgid "No data provided."
msgstr ""
msgstr "Ausência de dados"
#. module: web
#. openerp-web
@@ -1278,7 +1282,7 @@ msgstr "Deve escolher pelo menos um registo."
#: code:addons/web/static/src/js/coresetup.js:622
#, python-format
msgid "Don't leave yet,<br />it's still loading..."
msgstr ""
msgstr "Não se vá embora já<br />porque ainda está carregando..."
#. module: web
#. openerp-web
@@ -1292,7 +1296,7 @@ msgstr "Pesquisa inválida"
#: code:addons/web/static/src/js/view_list.js:959
#, python-format
msgid "Could not find id in dataset"
msgstr ""
msgstr "O ID não foi encontrado"
#. module: web
#. openerp-web
@@ -1320,7 +1324,7 @@ msgstr "%(page)d/%(page_count)d"
#: code:addons/web/static/src/js/chrome.js:397
#, python-format
msgid "The confirmation does not match the password"
msgstr ""
msgstr "A confirmação não coincide com a senha"
#. module: web
#. openerp-web
@@ -1411,7 +1415,7 @@ msgstr "é igual a"
#: code:addons/web/static/src/js/views.js:1455
#, python-format
msgid "Could not serialize XML"
msgstr ""
msgstr "Não foi possível serializar o XML"
#. module: web
#. openerp-web
@@ -1432,7 +1436,7 @@ msgstr "Confirme a nova senha de administração:"
#: code:addons/web/static/src/js/coresetup.js:625
#, python-format
msgid "Maybe you should consider reloading the application by pressing F5..."
msgstr ""
msgstr "Talvez deva pensar em recarregar a aplicação carregando em F5..."
#. module: web
#. openerp-web
@@ -1522,7 +1526,7 @@ msgstr "Não foi possível eliminar a base de dados!"
#: code:addons/web/static/src/js/formats.js:227
#, python-format
msgid "'%s' is not a correct integer"
msgstr ""
msgstr "'%s' não é um número inteiro correto"
#. module: web
#. openerp-web
@@ -1543,7 +1547,7 @@ msgstr "Campo desconhecido %s no domínio %s"
#: code:addons/web/static/src/js/views.js:1421
#, python-format
msgid "Node [%s] is not a JSONified XML node"
msgstr ""
msgstr "O nó [%s] não é do tipo JSONified XML"
#. module: web
#. openerp-web
@@ -1608,7 +1612,7 @@ msgstr "--- Não importar ---"
#: code:addons/web/static/src/xml/base.xml:1654
#, python-format
msgid "Import-Compatible Export"
msgstr ""
msgstr "Exportação compatível com importação"
#. module: web
#. openerp-web
@@ -1622,7 +1626,7 @@ msgstr "%d anos atrás"
#: code:addons/web/static/src/js/view_list.js:1019
#, python-format
msgid "Unknown m2m command %s"
msgstr ""
msgstr "Comando m2m %s desconhecio"
#. module: web
#. openerp-web
@@ -1652,7 +1656,7 @@ msgstr "Por favor introduza a sua nova senha"
#: code:addons/web/static/src/js/views.js:1463
#, python-format
msgid "Could not parse string to xml"
msgstr ""
msgstr "Não foi possível passar o texto para XML"
#. module: web
#. openerp-web
@@ -1724,7 +1728,7 @@ msgstr "A importação falhou devido a:"
#: code:addons/web/static/src/xml/base.xml:533
#, python-format
msgid "JS Tests"
msgstr ""
msgstr "Testes JS"
#. module: web
#. openerp-web
@@ -1930,7 +1934,7 @@ msgstr "Tipo:"
#: code:addons/web/static/src/js/chrome.js:538
#, python-format
msgid "Incorrect super-administrator password"
msgstr ""
msgstr "Senha de super-administrador incorreta"
#. module: web
#. openerp-web
@@ -2043,7 +2047,7 @@ msgstr "'%s' não é uma data/hora correta"
#: code:addons/web/static/src/js/views.js:1471
#, python-format
msgid "Could not find a DOM Parser: %s"
msgstr ""
msgstr "Não foi encontrado o interpretador de DOM: %s"
#. module: web
#. openerp-web
@@ -2403,7 +2407,7 @@ msgstr "Editar fluxo de trabalho"
#: code:addons/web/static/src/js/views.js:1172
#, python-format
msgid "Do you really want to delete this attachment ?"
msgstr ""
msgstr "Quer mesmo apagar este anexo?"
#. module: web
#. openerp-web
@@ -2469,7 +2473,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:555
#, python-format
msgid "Creation User:"
msgstr ""
msgstr "Utilizador de criação:"
#. module: web
#. openerp-web
@@ -2535,7 +2539,7 @@ msgstr "Pesquisar %(field)s por: %(value)s"
#: code:addons/web/static/src/xml/base.xml:1252
#, python-format
msgid "Delete this file"
msgstr ""
msgstr "Apagar este ficheiro"
#. module: web
#. openerp-web
+5 -5
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-03 19:25+0000\n"
"Last-Translator: Cristiano Korndörfer <codigo.aberto@dorfer.com.br>\n"
"PO-Revision-Date: 2012-12-07 21:03+0000\n"
"Last-Translator: Luiz Fernando M.França (Sig Informática) <Unknown>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-04 05:59+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
#. openerp-web
@@ -860,7 +860,7 @@ msgstr "Preferências"
#: code:addons/web/static/src/js/view_form.js:434
#, python-format
msgid "Wrong on change format: %s"
msgstr ""
msgstr "Formato invalido para on change: %s"
#. module: web
#. openerp-web
+6 -6
View File
@@ -8,28 +8,28 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-03-15 08:11+0000\n"
"Last-Translator: angelescu <Unknown>\n"
"PO-Revision-Date: 2012-12-09 17:26+0000\n"
"Last-Translator: Fekete Mihai <mihai@erpsystems.ro>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:20+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:133
#, python-format
msgid "Default language:"
msgstr "Limba implicita:"
msgstr "Limba implicită:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:593
#, python-format
msgid "%d minutes ago"
msgstr ""
msgstr "acum %d minute"
#. module: web
#. openerp-web
+6
View File
@@ -952,12 +952,18 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.
field = $target.closest('td').data('field'),
$row = $target.closest('tr'),
record_id = self.row_id($row);
if ($target.attr('disabled')) {
return;
}
$target.attr('disabled', 'disabled');
// note: $.data converts data to number if it's composed only
// of digits, nice when storing actual numbers, not nice when
// storing strings composed only of digits. Force the action
// name to be a string
$(self).trigger('action', [field.toString(), record_id, function (id) {
$target.removeAttr('disabled');
return self.reload_record(self.records.get(id));
}]);
})
+116
View File
@@ -0,0 +1,116 @@
QUnitSuite is a ``unittest.TestSuite`` able to run QUnit_ test suites
within the normal unittest process, through PhantomJS_.
QUnitSuite is built upon `Ben Alman`_'s work of for the interfacing
between PhantomJS_ and the host/reporting code: the shims and the
PhantomJS_ configuration files are those of grunt_'s ``qunit`` task.
Why
---
You're a Python shop or developer, you have tools and tests built
around unittest (or compatible with unittests) and your testing
pipeline is predicated upon that, you're doing web development of some
sort these days (as so many are) and you'd like to do some testing of
your web stuff.
But you don't really want to redo your whole testing stack just for
that.
QUnitSuite simply grafts QUnit_-based tests, run in PhantomJS_, in
your existing ``unittest``-based architecture.
What
----
QUnitSuite currently provides a single object as part of its API:
``qunitsuite.QUnitSuite(testfile[, timeout])``.
This produces a ``unittest.TestSuite`` suitable for all the usual
stuff (running it, and giving it to an other test suite which will run
it, that is).
``testfile`` is the HTML file bootstrapping your qunit tests, as would
usually be accessed via a browser. It can be either a local
(``file:``) url, or an HTTP one. As long as a regular browser can open
and execute it, PhantomJS_ will manage.
``timeout`` is a check passed to the PhantomJS_ runner: if the runner
produces no information for longer than ``timeout`` milliseconds, the
run will be cancelled and a test error will be generated. This
situation usually means either your ``testfile`` is not a qunit test
file, qunit is not running or qunit's runner was stopped (for an async
test) and never restarted.
The default value is very conservative, most tests should run
correctly with lower timeouts (especially if all tests are
synchronous).
How
---
``unittest``'s autodiscovery protocol does not directly work with test
suites (it looks for test cases). If you want autodiscovery to work
correctly, you will have to use the ``load_tests`` protocol::
# in a testing module
def load_tests(loader, tests, pattern):
tests.addTest(QUnitSuite(qunit_test_path.html))
return tests
outside of that specific case, you can use a ``QUnitSuite`` as a
standard ``TestSuite`` instance, running it, adding it to an other
suite or passing it to a ``TestRunner``
Complaints and Grievances
-------------------------
Speed
~~~~~
Starting up a phantomjs instance and running a suite turns out to have
a rather high overhead, on the order of a second on this machine
(2.4GHz, 8GB RAM and an SSD).
As each ``QUnitSuite`` currently creates its own phantomjs instance,
it's probably a good idea to create bigger suites (put many modules &
tests in the same QUnit html file, which doesn't preclude splitting
them across multiple js files).
Hacks
~~~~~
QUnitSuite contains a pretty big hack which may or may not cause
problem depending on your exact setup: in case of case failure or
error, ``unittest.TestResult`` formats the error traceback provided
alongside the test object. This goes through Python's
traceback-formatting code and there are no hooks there.
One could expect to use a custom ``TestResult``, but for test suites
the ``TestResult`` instance must be provided by the caller, so there
is no direct hook onto it.
This leaves three options:
* Create a custom ``TestResult`` class and require that it be the one
provided to the test suite. This requires altered work flows,
customization of the test runner and (as far as I know) isn't
available through Python 2.7's autodiscovery. It's the cleanest
option but completely fails on practicality.
* Create a custom ``TestResult`` which directly alters the original
result's ``errors`` and ``failures`` attributes as they're part of
the testrunner API. This would work but may put custom results in a
strange state and break e.g. unittest2's ``@failfast``.
* Lastly, monkeypatch the undocumented and implementation detail
``_exc_info_to_string`` on the provided ``result``. This is the
route taken, at least for now.
.. _QUnit: http://qunitjs.com/
.. _PhantomJS: http://phantomjs.org/
.. _Ben Alman: http://benalman.com/
.. _grunt: http://gruntjs.com/
+95
View File
@@ -0,0 +1,95 @@
/*
* grunt
* http://gruntjs.com/
*
* Copyright (c) 2012 "Cowboy" Ben Alman
* Licensed under the MIT license.
* http://benalman.com/about/license/
*/
/*global phantom:true*/
'use strict';
var fs = require('fs');
// The page .html file to load.
var url = phantom.args[0];
// Extra, optionally overridable stuff.
var options = JSON.parse(phantom.args[1] || {});
// Default options.
if (!options.timeout) { options.timeout = 5000; }
// Keep track of the last time a client message was sent.
var last = new Date();
// Messages are sent to the parent by appending them to the tempfile.
var sendMessage = function(arg) {
var args = Array.isArray(arg) ? arg : [].slice.call(arguments);
last = new Date();
console.log(JSON.stringify(args));
};
// This allows grunt to abort if the PhantomJS version isn't adequate.
sendMessage('private', 'version', phantom.version);
// Abort if the page doesn't send any messages for a while.
setInterval(function() {
if (new Date() - last > options.timeout) {
sendMessage('fail.timeout');
phantom.exit();
}
}, 100);
// Create a new page.
var page = require('webpage').create();
// The client page must send its messages via alert(jsonstring).
page.onAlert = function(args) {
sendMessage(JSON.parse(args));
};
// Keep track if the client-side helper script already has been injected.
var injected;
page.onUrlChanged = function(newUrl) {
injected = false;
sendMessage('onUrlChanged', newUrl);
};
// Relay console logging messages.
page.onConsoleMessage = function(message) {
sendMessage('console', message);
};
// For debugging.
page.onResourceRequested = function(request) {
sendMessage('onResourceRequested', request.url);
};
page.onResourceReceived = function(request) {
if (request.stage === 'end') {
sendMessage('onResourceReceived', request.url);
}
};
// Run when the page has finished loading.
page.onLoadFinished = function(status) {
// The window has loaded.
sendMessage('onLoadFinished', status);
if (status === 'success') {
if (options.inject && !injected) {
// Inject client-side helper script, but only if it has not yet been
// injected.
sendMessage('inject', options.inject);
page.injectJs(options.inject);
}
} else {
// File loading failure.
sendMessage('fail.load', url);
phantom.exit();
}
};
// Actually load url.
page.open(url);
+22
View File
@@ -0,0 +1,22 @@
Copyright (c) 2012 "Cowboy" Ben Alman
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1 @@
{}
@@ -0,0 +1,88 @@
/*
* grunt
* http://gruntjs.com/
*
* Copyright (c) 2012 "Cowboy" Ben Alman
* Licensed under the MIT license.
* http://benalman.com/about/license/
*/
/*global QUnit:true, alert:true*/
'use strict';
// Don't re-order tests.
QUnit.config.reorder = false;
// Run tests serially, not in parallel.
QUnit.config.autorun = false;
// Send messages to the parent PhantomJS process via alert! Good times!!
function sendMessage() {
var args = [].slice.call(arguments);
alert(JSON.stringify(args));
}
// These methods connect QUnit to PhantomJS.
QUnit.log(function(obj) {
// What is this I don’t even
if (obj.message === '[object Object], undefined:undefined') { return; }
// Parse some stuff before sending it.
var actual = QUnit.jsDump.parse(obj.actual);
var expected = QUnit.jsDump.parse(obj.expected);
// Send it.
sendMessage('qunit.log', obj.result, actual, expected, obj.message, obj.source);
});
QUnit.testStart(function(obj) {
sendMessage('qunit.testStart', obj.name);
});
QUnit.testDone(function(obj) {
sendMessage('qunit.testDone', obj.name, obj.failed, obj.passed, obj.total);
});
QUnit.moduleStart(function(obj) {
sendMessage('qunit.moduleStart', obj.name);
});
QUnit.moduleDone(function(obj) {
sendMessage('qunit.moduleDone', obj.name, obj.failed, obj.passed, obj.total);
});
QUnit.begin(function() {
sendMessage('qunit.begin');
});
QUnit.done(function(obj) {
sendMessage('qunit.done', obj.failed, obj.passed, obj.total, obj.runtime);
});
// PhantomJS (up to and including 1.7) uses a version of webkit so old
// it does not have Function.prototype.bind:
// http://code.google.com/p/phantomjs/issues/detail?id=522
// 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;
};
}
+131
View File
@@ -0,0 +1,131 @@
import json
import subprocess
import unittest
import os
import time
ROOT = os.path.join(os.path.dirname(__file__), 'grunt')
__all__ = ['QUnitSuite']
def _exc_info_to_string(err, test):
return err
class QUnitTest(unittest.TestCase):
def __init__(self, module, name):
self.module = module
self.name = name
self.failed = False
def shortDescription(self):
return None
def __repr__(self):
return '<QUnitTest %s:%s>' % (self.module, self.name)
def __str__(self):
return '%s: %s' % (self.module, self.name)
class QUnitSuite(unittest.TestSuite):
def __init__(self, qunitfile, timeout=5000):
self.testfile = qunitfile
self.timeout = timeout
self._module = None
self._test = None
def __iter__(self):
return iter([self])
def run(self, result):
try:
subprocess.call(['phantomjs', '-v'],
stdout=open(os.devnull, 'w'),
stderr=subprocess.STDOUT)
except OSError:
test = QUnitTest('phantomjs', 'javascript tests')
result.startTest(test)
result.startTest(test)
result.addSkip(test , "phantomjs command not found")
result.stopTest(test)
return
result._exc_info_to_string = _exc_info_to_string
try:
self._run(result)
finally:
del result._exc_info_to_string
def _run(self, result):
phantom = subprocess.Popen([
'phantomjs',
'--config=%s' % os.path.join(ROOT, 'phantomjs.json'),
os.path.join(ROOT, 'bootstrap.js'), self.testfile,
json.dumps({
'timeout': self.timeout,
'inject': os.path.join(ROOT, 'qunit-phantomjs-bridge.js')
})
], stdout=subprocess.PIPE)
try:
while True:
line = phantom.stdout.readline()
if line:
if self.process(line, result):
break
else:
time.sleep(0.1)
finally:
# If the phantomjs process hasn't quit, kill it
if phantom.poll() is None:
phantom.terminate()
def process(self, line, result):
args = json.loads(line)
event_name = args[0]
if event_name == 'qunit.done':
return True
elif event_name == 'fail.load':
self.add_error(result, "PhantomJS unable to load %s" % args[1])
return True
elif event_name == 'fail.timeout':
self.add_error(result, "PhantomJS timed out, possibly due to a"
" missing QUnit start() call")
return True
elif event_name == 'qunit.moduleStart':
self._module = args[1].encode('utf-8')
elif event_name == 'qunit.moduleStop':
self._test = None
self._module = None
elif event_name == 'qunit.testStart':
self._test = QUnitTest(self._module, args[1].encode('utf-8'))
result.startTest(self._test)
elif event_name == 'qunit.testDone':
if not self._test.failed:
result.addSuccess(self._test)
result.stopTest(self._test)
self._test = None
elif event_name == 'qunit.log':
if args[1]:
return False
self._test.failed = True
result.addFailure(
self._test, self.failure_to_str(*args[2:]))
return False
def add_error(self, result, s):
test = QUnitTest('phantomjs', 'startup')
result.startTest(test)
result.addError(test, s)
result.stopTest(test)
def failure_to_str(self, actual, expected, message, source):
if message or actual == expected:
formatted = str(message or '')
else:
formatted = "%s != %s" % (actual, expected)
if source:
formatted += '\n\n' + source
return formatted
+6
View File
@@ -10,6 +10,12 @@ class WebSuite(QUnitSuite):
'/web/tests',
'mod=*&source={db}&supadmin={supadmin}&password={password}'.format(
db=tools.config['db_name'],
# al: i dont understand why both are needed, db_password is the
# password for postgres and should not appear here of that i'm
# sure
#
# But runbot provides it with this wrong key so i let it here
# until it's fixed
supadmin=tools.config['db_password'] or 'admin',
password=tools.config['admin_passwd'] or 'admin'),
''
+5 -4
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-11-24 18:16+0000\n"
"PO-Revision-Date: 2012-12-09 18:06+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_calendar
#. openerp-web
@@ -43,7 +43,7 @@ msgstr "Snimi"
#: code:addons/web_calendar/static/src/js/calendar.js:99
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr ""
msgstr "U pogledu tipa kalendar polje 'date_delay' tip != float"
#. module: web_calendar
#. openerp-web
@@ -215,6 +215,7 @@ msgstr "Kalendar"
#, python-format
msgid "Calendar view has not defined 'date_start' attribute."
msgstr ""
"U pogledu tipa kalendar obavezno je polje 'date_start' - početno vrijeme."
#~ msgid "Navigator"
#~ msgstr "Navigator"
+8 -8
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-04 12:40+0000\n"
"Last-Translator: Andrei Talpa (multibase.pt) <andrei.talpa@multibase.pt>\n"
"PO-Revision-Date: 2012-12-07 10:00+0000\n"
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-05 05:43+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_calendar
#. openerp-web
@@ -64,7 +64,7 @@ msgstr "Semana"
#: code:addons/web_calendar/static/src/js/calendar.js:161
#, python-format
msgid "Full day"
msgstr ""
msgstr "Dia inteiro"
#. module: web_calendar
#. openerp-web
@@ -79,7 +79,7 @@ msgstr "Descrição"
#: code:addons/web_calendar/static/src/js/calendar.js:158
#, python-format
msgid "Event will be deleted permanently, are you sure?"
msgstr ""
msgstr "O evento será eliminado. Confirma?"
#. module: web_calendar
#. openerp-web
@@ -136,7 +136,7 @@ msgstr ""
#: code:addons/web_calendar/static/src/js/calendar.js:80
#, python-format
msgid "Filter"
msgstr ""
msgstr "Filtro"
#. module: web_calendar
#. openerp-web
@@ -179,7 +179,7 @@ msgstr "Mês"
#: code:addons/web_calendar/static/src/js/calendar.js:166
#, python-format
msgid "Disabled"
msgstr ""
msgstr "Inativo"
#. module: web_calendar
#. openerp-web
+13 -6
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-11-24 01:23+0000\n"
"PO-Revision-Date: 2012-02-16 21:55+0000\n"
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
"PO-Revision-Date: 2012-12-09 22:40+0000\n"
"Last-Translator: Sergio Corato <Unknown>\n"
"Language-Team: Italian <it@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-11-25 06:41+0000\n"
"X-Generator: Launchpad (build 16293)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_diagram
#. openerp-web
@@ -35,6 +35,10 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
"La cancellazione di questo nodo è irreversibile. \n"
"Saranno cancellate anche tutte le transizioni ad esso correlate.\n"
"\n"
"Sei sicuro ?"
#. module: web_diagram
#. openerp-web
@@ -71,7 +75,7 @@ msgstr "Attività"
#: code:addons/web_diagram/static/src/js/diagram.js:422
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web_diagram
#. openerp-web
@@ -86,7 +90,7 @@ msgstr "Crea:"
#: code:addons/web_diagram/static/src/js/diagram.js:187
#, python-format
msgid "Are you sure?"
msgstr ""
msgstr "Sei sicuro?"
#. module: web_diagram
#. openerp-web
@@ -97,3 +101,6 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
"La cancellazione di questa transizione è irreversibile.\n"
"\n"
"Sei sicuro?"
+5 -5
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-11-24 01:23+0000\n"
"PO-Revision-Date: 2012-06-05 19:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2012-12-07 09:55+0000\n"
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-11-25 06:41+0000\n"
"X-Generator: Launchpad (build 16293)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_diagram
#. openerp-web
@@ -75,7 +75,7 @@ msgstr "Atividade"
#: code:addons/web_diagram/static/src/js/diagram.js:422
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web_diagram
#. openerp-web
+20 -20
View File
@@ -8,28 +8,28 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-02-16 21:56+0000\n"
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
"PO-Revision-Date: 2012-12-09 23:09+0000\n"
"Last-Translator: Sergio Corato <Unknown>\n"
"Language-Team: Italian <it@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:12
#, python-format
msgid "Bars"
msgstr ""
msgstr "Barre"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:33
#, python-format
msgid "Show Data"
msgstr ""
msgstr "Visualizza Dati"
#. module: web_graph
#. openerp-web
@@ -43,95 +43,95 @@ msgstr "Grafico"
#: code:addons/web_graph/static/src/xml/web_graph.xml:25
#, python-format
msgid "Inside"
msgstr ""
msgstr "Interno"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:3
#, python-format
msgid "&iacute;"
msgstr ""
msgstr "&iacute;"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Pie"
msgstr ""
msgstr "Torta"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:28
#, python-format
msgid "Actions"
msgstr ""
msgstr "Azioni"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:7
#, python-format
msgid "Graph Mode"
msgstr ""
msgstr "Modalità Grafico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:18
#, python-format
msgid "Radar"
msgstr ""
msgstr "Rete"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:34
#, python-format
msgid "Download as PNG"
msgstr ""
msgstr "Download come PNG"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Top"
msgstr ""
msgstr "In alto"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:24
#, python-format
msgid "Hidden"
msgstr ""
msgstr "Nascosto"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:3
#, python-format
msgid "Graph Options"
msgstr ""
msgstr "Opzioni Grafico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Lines"
msgstr ""
msgstr "Righe"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:20
#, python-format
msgid "Legend"
msgstr ""
msgstr "Legenda"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:32
#, python-format
msgid "Switch Axis"
msgstr ""
msgstr "Inverti Asse"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:15
#, python-format
msgid "Areas"
msgstr ""
msgstr "Aree"
+5 -5
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-11-29 19:33+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"PO-Revision-Date: 2012-12-07 15:34+0000\n"
"Last-Translator: ccdos <ccdos@163.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_graph
#. openerp-web
@@ -50,7 +50,7 @@ msgstr "内部"
#: code:addons/web_graph/static/src/xml/web_graph.xml:3
#, python-format
msgid "&iacute;"
msgstr ""
msgstr "&iacute;"
#. module: web_graph
#. openerp-web
+9 -7
View File
@@ -42,7 +42,7 @@
position: relative;
display: block;
padding: 2px 4px 2px 20px;
line-height: 14px;
line-height: 12px;
color: #4c4c4c;
text-decoration: none;
}
@@ -59,10 +59,12 @@
.openerp .open .graph-dropdown {
display: block;
}
.graph-menu {
padding: 3px;
.openerp .graph-menu {
padding: 0;
margin: 0;
}
.graph-menu .active:before {
.openerp .graph-menu .active:before {
content: "W";
font-family: "entypoRegular" !important;
font-size: 24px;
@@ -72,7 +74,7 @@
left: 4px;
top: -2px;
}
.graph-menu li {
padding: 2px;
margin-left: 10px;
.openerp .graph-menu li {
padding: 0;
list-style-type: none;
}
+5 -5
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-11-24 18:09+0000\n"
"PO-Revision-Date: 2012-12-09 17:58+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_kanban
#. openerp-web
@@ -29,7 +29,7 @@ msgstr "Uredi stupac"
#: code:addons/web_kanban/static/src/js/kanban.js:413
#, python-format
msgid "An error has occured while moving the record to this group."
msgstr ""
msgstr "Greška kod promjene grupe"
#. module: web_kanban
#. openerp-web
@@ -150,7 +150,7 @@ msgstr "ili"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:51
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web_kanban
#. openerp-web
+19 -18
View File
@@ -8,21 +8,21 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-02-16 21:57+0000\n"
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
"PO-Revision-Date: 2012-12-09 22:52+0000\n"
"Last-Translator: Sergio Corato <Unknown>\n"
"Language-Team: Italian <it@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:698
#, python-format
msgid "Edit column"
msgstr ""
msgstr "Modifica colonna"
#. module: web_kanban
#. openerp-web
@@ -30,6 +30,7 @@ msgstr ""
#, python-format
msgid "An error has occured while moving the record to this group."
msgstr ""
"E' avvenuto un errore durante lo spostamento del record a questo gruppo."
#. module: web_kanban
#. openerp-web
@@ -50,35 +51,35 @@ msgstr "Non definito"
#: code:addons/web_kanban/static/src/js/kanban.js:717
#, python-format
msgid "Are you sure to remove this column ?"
msgstr ""
msgstr "Sei sicuro di rimuovere questa colonna ?"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:42
#, python-format
msgid "Edit"
msgstr ""
msgstr "Modifica"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:188
#, python-format
msgid "Add column"
msgstr ""
msgstr "Aggiungi colonna"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:1093
#, python-format
msgid "Create: "
msgstr ""
msgstr "Crea: "
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:24
#, python-format
msgid "Add a new column"
msgstr ""
msgstr "Aggiungi una nuova colonna"
#. module: web_kanban
#. openerp-web
@@ -86,21 +87,21 @@ msgstr ""
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40
#, python-format
msgid "Fold"
msgstr ""
msgstr "Arrotola"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:90
#, python-format
msgid "Add"
msgstr ""
msgstr "Aggiungi"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:35
#, python-format
msgid "Quick create"
msgstr ""
msgstr "Creazione rapida"
#. module: web_kanban
#. openerp-web
@@ -114,7 +115,7 @@ msgstr "Sicuro di voler eliminare questo record?"
#: code:addons/web_kanban/static/src/js/kanban.js:688
#, python-format
msgid "Unfold"
msgstr ""
msgstr "Allarga"
#. module: web_kanban
#. openerp-web
@@ -128,7 +129,7 @@ msgstr "Mostra altro... ("
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:91
#, python-format
msgid "Cancel"
msgstr ""
msgstr "Annulla"
#. module: web_kanban
#. openerp-web
@@ -143,21 +144,21 @@ msgstr "rimanenti)"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:90
#, python-format
msgid "or"
msgstr ""
msgstr "o"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:51
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:43
#, python-format
msgid "Delete"
msgstr ""
msgstr "Elimina"
#~ msgid "Create"
#~ msgstr "Crea"
+7 -7
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-04 12:44+0000\n"
"PO-Revision-Date: 2012-12-07 09:57+0000\n"
"Last-Translator: Andrei Talpa (multibase.pt) <andrei.talpa@multibase.pt>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-05 05:43+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_kanban
#. openerp-web
@@ -29,7 +29,7 @@ msgstr "Editar coluna"
#: code:addons/web_kanban/static/src/js/kanban.js:413
#, python-format
msgid "An error has occured while moving the record to this group."
msgstr ""
msgstr "Ocorreu um erro ao mover o registo para este grupo."
#. module: web_kanban
#. openerp-web
@@ -86,7 +86,7 @@ msgstr "Adicionar uma nova coluna"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40
#, python-format
msgid "Fold"
msgstr ""
msgstr "Dobrar"
#. module: web_kanban
#. openerp-web
@@ -100,7 +100,7 @@ msgstr "Adicionar"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:35
#, python-format
msgid "Quick create"
msgstr ""
msgstr "Criação rápida"
#. module: web_kanban
#. openerp-web
@@ -114,7 +114,7 @@ msgstr "Tem certeza que quer remover este registo?"
#: code:addons/web_kanban/static/src/js/kanban.js:688
#, python-format
msgid "Unfold"
msgstr ""
msgstr "Desdobrar"
#. module: web_kanban
#. openerp-web
+8 -8
View File
@@ -8,21 +8,21 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-11-24 18:01+0000\n"
"PO-Revision-Date: 2012-12-09 17:57+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-01 05:21+0000\n"
"X-Generator: Launchpad (build 16319)\n"
"X-Launchpad-Export-Date: 2012-12-10 04:44+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:164
#, python-format
msgid "The following fields are invalid :"
msgstr ""
msgstr "Popis neispravnih polja:"
#. module: web_view_editor
#. openerp-web
@@ -36,7 +36,7 @@ msgstr "Kreiraj"
#: code:addons/web_view_editor/static/src/js/view_editor.js:986
#, python-format
msgid "New Field"
msgstr ""
msgstr "Novo polje"
#. module: web_view_editor
#. openerp-web
@@ -71,7 +71,7 @@ msgstr "Snimi"
#: code:addons/web_view_editor/static/src/js/view_editor.js:393
#, python-format
msgid "Select an element"
msgstr ""
msgstr "Odaberite element"
#. module: web_view_editor
#. openerp-web
@@ -86,7 +86,7 @@ msgstr "Ažuriraj"
#: code:addons/web_view_editor/static/src/js/view_editor.js:263
#, python-format
msgid "Please select view in list :"
msgstr ""
msgstr "Odaberite pogled iz popisa:"
#. module: web_view_editor
#. openerp-web
@@ -150,7 +150,7 @@ msgstr "Da li zaista želite obrisati ovaj čvor?"
#: code:addons/web_view_editor/static/src/js/view_editor.js:390
#, python-format
msgid "Can't Update View"
msgstr ""
msgstr "Ažuriranje pogleda nije moguće"
#. module: web_view_editor
#. openerp-web
+7 -7
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-11-30 18:13+0000\n"
"PO-Revision-Date: 2012-12-04 12:42+0000\n"
"Last-Translator: Andrei Talpa (multibase.pt) <andrei.talpa@multibase.pt>\n"
"PO-Revision-Date: 2012-12-07 09:56+0000\n"
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-05 05:43+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
"X-Generator: Launchpad (build 16341)\n"
#. module: web_view_editor
#. openerp-web
@@ -71,7 +71,7 @@ msgstr "Guardar"
#: code:addons/web_view_editor/static/src/js/view_editor.js:393
#, python-format
msgid "Select an element"
msgstr ""
msgstr "Selecione um elemento"
#. module: web_view_editor
#. openerp-web
@@ -86,7 +86,7 @@ msgstr "Atualizar"
#: code:addons/web_view_editor/static/src/js/view_editor.js:263
#, python-format
msgid "Please select view in list :"
msgstr ""
msgstr "Por favor, selecione uma vista da lista"
#. module: web_view_editor
#. openerp-web
@@ -150,7 +150,7 @@ msgstr "Quer mesmo remover este nó?"
#: code:addons/web_view_editor/static/src/js/view_editor.js:390
#, python-format
msgid "Can't Update View"
msgstr ""
msgstr "Não é possível atualizar a vista"
#. module: web_view_editor
#. openerp-web