merge trunk

bzr revid: nicolas.vanhoren@openerp.com-20130301143341-xa55351zb166bl2w
This commit is contained in:
niv-openerp 2013-03-01 15:33:41 +01:00
commit 77088d339b
74 changed files with 5560 additions and 1184 deletions

View File

@ -86,5 +86,4 @@ This module provides the core of the OpenERP Web Client.
"static/test/mutex.js"
],
'bootstrap': True,
'twitter': False,
}

View File

@ -13,6 +13,7 @@ import os
import re
import simplejson
import time
import urllib
import urllib2
import xmlrpclib
import zlib
@ -294,9 +295,9 @@ def manifest_list(req, extension, mods=None, db=None):
if not req.debug:
path = '/web/webclient/' + extension
if mods is not None:
path += '?mods=' + mods
path += '?' + urllib.urlencode({'mods': mods})
elif db:
path += '?db=' + db
path += '?' + urllib.urlencode({'db': db})
return [path]
files = manifest_glob(req, extension, addons=mods, db=db)
i_am_diabetic = req.httprequest.environ["QUERY_STRING"].count("no_sugar") >= 1 or \
@ -877,7 +878,7 @@ class Session(openerpweb.Controller):
"""
saved_actions = req.httpsession.get('saved_actions')
if not saved_actions:
saved_actions = {"next":0, "actions":{}}
saved_actions = {"next":1, "actions":{}}
req.httpsession['saved_actions'] = saved_actions
# we don't allow more than 10 stored actions
if len(saved_actions["actions"]) >= 10:

View File

@ -32,12 +32,12 @@ NOMODULE_TEMPLATE = Template(u"""<!DOCTYPE html>
</form>
</body>
</html>
""")
""", default_filters=['h'])
NOTFOUND = Template(u"""
<p>Unable to find the module [${module}], please check that the module
name is correct and the module is on OpenERP's path.</p>
<a href="/web/tests">&lt;&lt; Back to tests</a>
""")
""", default_filters=['h'])
TESTING = Template(u"""<!DOCTYPE html>
<html style="height: 100%">
<%def name="to_path(module, p)">/${module}/${p}</%def>
@ -51,9 +51,9 @@ TESTING = Template(u"""<!DOCTYPE html>
<script src="/web/static/lib/qunit/qunit.js"></script>
<script type="text/javascript">
var oe_db_info = ${db_info};
var oe_db_info = ${db_info | n};
// List of modules, each module is preceded by its dependencies
var oe_all_dependencies = ${dependencies};
var oe_all_dependencies = ${dependencies | n};
QUnit.config.testTimeout = 5 * 60 * 1000;
</script>
</head>
@ -83,7 +83,7 @@ TESTING = Template(u"""<!DOCTYPE html>
% endif
% endfor
</html>
""")
""", default_filters=['h'])
class TestRunnerController(http.Controller):
_cp_path = '/web/tests'

View File

@ -253,6 +253,5 @@ todo_include_todos = True
intersphinx_mapping = {
'python': ('http://docs.python.org/', None),
'openerpserver': ('http://doc.openerp.com/trunk/developers/server', None),
'openerpdev': ('http://doc.openerp.com/trunk/developers', None),
'openerpcommand': ('http://doc.openerp.com/trunk/developers/command', None),
}

View File

@ -1,3 +1,5 @@
.. _module:
Building an OpenERP Web module
==============================

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2013-01-17 19:26+0000\n"
"Last-Translator: tuxar <Unknown>\n"
"Language-Team: Bulgarian <bg@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-22 07:37+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-18 07:11+0000\n"
"X-Generator: Launchpad (build 16430)\n"
#. module: web
#. openerp-web
@ -29,14 +29,14 @@ msgstr "Език по подразбиране:"
#: code:addons/web/static/src/js/coresetup.js:602
#, python-format
msgid "%d minutes ago"
msgstr ""
msgstr "Преди %d минути"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:630
#, 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
@ -75,14 +75,14 @@ msgstr "Главна парола:"
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "Change Master Password"
msgstr ""
msgstr "Промяна на главната парола"
#. 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 "Сигурни ли сте, че искате да изтриете база от данни: %s ?"
#. module: web
#. openerp-web
@ -96,21 +96,21 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:537
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Достъпът е отказан"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Грешка при изпращане на данни."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:603
#, python-format
msgid "about an hour ago"
msgstr ""
msgstr "преди около час"
#. module: web
#. openerp-web
@ -119,7 +119,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:216
#, python-format
msgid "Backup Database"
msgstr ""
msgstr "Резервно копие на базата от данни"
#. module: web
#. openerp-web
@ -134,7 +134,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
@ -148,20 +148,20 @@ msgstr "Преглед на файла, който не се импортира:
#: code:addons/web/static/src/js/coresetup.js:601
#, python-format
msgid "about a minute ago"
msgstr ""
msgstr "преди около минута"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1297
#, python-format
msgid "File"
msgstr ""
msgstr "Файл"
#. module: web
#: code:addons/web/controllers/main.py:826
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "Не може да оставите полето за парола празно."
#. module: web
#. openerp-web

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-26 22:10+0000\n"
"PO-Revision-Date: 2012-12-28 11:54+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: openerp-i18n-czech <openerp-i18n-czech@lists.launchpad.net>\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-27 05:53+0000\n"
"X-Launchpad-Export-Date: 2012-12-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Poedit-Language: Czech\n"
@ -44,7 +44,7 @@ msgstr "Načítání stále probíhá...<br />Prosím čekejte."
#: code:addons/web/static/src/js/search.js:1832
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
msgstr ""
msgstr "%(field)s %(operator)s \"%(value)s\""
#. module: web
#. openerp-web
@ -90,7 +90,7 @@ msgstr "Opravdu chcete smazat databázi: %s?"
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr ""
msgstr "Vyhledat %(field)s v: %(value)s"
#. module: web
#. openerp-web
@ -127,7 +127,7 @@ msgstr "Záloha databáze"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "pohledy %(view_type)s"
#. module: web
#. openerp-web
@ -215,6 +215,7 @@ msgstr "Naposledy změneno:"
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr ""
"Vyhledávací pole M2O momentálně nepodporují vícenásobné výchozí hodnoty"
#. module: web
#. openerp-web
@ -356,7 +357,7 @@ msgstr "Změnit heslo"
#: code:addons/web/static/src/js/view_form.js:3411
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "Typ pohledu '%s' není podporován v One2Many"
#. module: web
#. openerp-web
@ -440,7 +441,7 @@ msgstr "Nahrát soubor"
#: code:addons/web/static/src/js/view_form.js:3804
#, python-format
msgid "Action Button"
msgstr ""
msgstr "Tlačítko akce"
#. module: web
#. openerp-web
@ -483,7 +484,7 @@ msgstr "Načítání (%d)"
#: code:addons/web/static/src/js/search.js:1114
#, python-format
msgid "GroupBy"
msgstr ""
msgstr "GroupBy"
#. module: web
#. openerp-web
@ -567,7 +568,7 @@ msgstr "Vytvořit a upravit..."
#: code:addons/web/static/src/js/pyeval.js:731
#, python-format
msgid "Unknown nonliteral type "
msgstr ""
msgstr "Neznámý typ nonliterálu "
#. module: web
#. openerp-web
@ -697,7 +698,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:1223
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Pole '%s' specifikované v pohledu nelze nalézt."
#. module: web
#. openerp-web
@ -854,7 +855,7 @@ msgstr "Přidat"
#: code:addons/web/static/src/xml/base.xml:536
#, python-format
msgid "Toggle Form Layout Outline"
msgstr ""
msgstr "Přepnout náčrt rozložení formuláře"
#. module: web
#. openerp-web
@ -889,7 +890,7 @@ msgstr "Předvolby"
#: code:addons/web/static/src/js/view_form.js:436
#, python-format
msgid "Wrong on change format: %s"
msgstr ""
msgstr "Neplatný při změně formátu: %s"
#. module: web
#. openerp-web
@ -1066,7 +1067,7 @@ msgstr "/web/binary/upload_attachment"
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Changed Password"
msgstr ""
msgstr "Změněné heslo"
#. module: web
#. openerp-web
@ -1279,7 +1280,7 @@ msgstr "Odhlásit se"
#: code:addons/web/static/src/js/search.js:1090
#, python-format
msgid "Group by: %s"
msgstr ""
msgstr "Seskupit podle: %s"
#. module: web
#. openerp-web
@ -1782,7 +1783,7 @@ msgstr "Uložit jako:"
#: code:addons/web/static/src/js/search.js:927
#, python-format
msgid "Filter on: %s"
msgstr ""
msgstr "Filtrovat: %s"
#. module: web
#. openerp-web
@ -1932,6 +1933,8 @@ msgid ""
"Grouping on field '%s' is not possible because that field does not appear in "
"the list view."
msgstr ""
"Seskupení podle pole '%s' není možné protože toto pole není zobrazeno v "
"seznamu."
#. module: web
#. openerp-web
@ -2022,7 +2025,7 @@ msgstr "nerovná se"
msgid ""
"The type of the field '%s' must be a many2many field with a relation to "
"'ir.attachment' model."
msgstr ""
msgstr "Typ pole '%s' musí být many2many s relací k modelu 'ir.attachment'."
#. module: web
#. openerp-web
@ -2259,7 +2262,7 @@ msgstr "'%s' není platné datum, datum/čas ani čas"
#: code:addons/web/controllers/main.py:1264
#, python-format
msgid "No content found for field '%s' on '%s:%s'"
msgstr ""
msgstr "Žádný obsah pole '%s' nebyl nalezen v '%s:%s'"
#. module: web
#. openerp-web
@ -2366,7 +2369,7 @@ msgstr "Neplatná hodnata pro pole %(fieldname)s: [%(value)s] je %(message)s"
#: code:addons/web/static/src/js/view_form.js:3805
#, python-format
msgid "The o2m record must be saved before an action can be used"
msgstr ""
msgstr "Záznam o2m musí být uložen před tím, než je akce použita"
#. module: web
#. openerp-web
@ -2450,7 +2453,7 @@ msgstr "Opravdu chcete smazat tuto přílohu?"
#: code:addons/web/static/src/js/views.js:840
#, python-format
msgid "Technical Translation"
msgstr ""
msgstr "Technický překlad"
#. module: web
#. openerp-web
@ -2471,7 +2474,7 @@ msgstr "Změněno:"
#: code:addons/web/static/src/js/chrome.js:499
#, python-format
msgid "The database %s has been dropped"
msgstr ""
msgstr "Databáze %s byla smazána"
#. module: web
#. openerp-web
@ -2536,7 +2539,7 @@ msgstr "Uložit & Zavřít"
#: code:addons/web/static/src/js/view_form.js:2845
#, python-format
msgid "Search More..."
msgstr ""
msgstr "Vyhledat více..."
#. module: web
#. openerp-web
@ -2574,7 +2577,7 @@ msgstr "Vybrat datum"
#: code:addons/web/static/src/js/search.js:1249
#, python-format
msgid "Search %(field)s for: %(value)s"
msgstr ""
msgstr "Prohledat %(field)s na výskyt: %(value)s"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2013-01-22 03:23+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@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-22 07:38+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-23 06:03+0000\n"
"X-Generator: Launchpad (build 16441)\n"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr "Acceso denegado"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Error cargando datos"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Base de datos de respaldo"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "Vista %(view_type)s"
#. module: web
#. openerp-web
@ -270,7 +270,7 @@ msgstr "Nueva Password:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Adjunto:"
#. module: web
#. openerp-web
@ -754,7 +754,7 @@ msgstr "Guardar Como"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
@ -1023,7 +1023,7 @@ msgstr "Guardar lista de campos"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Start"
#. module: web
#. openerp-web
@ -1366,7 +1366,7 @@ msgstr "La confirmación no coincide con la contraseña"
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Editar datos de la compañía"
#. module: web
#. openerp-web
@ -1867,7 +1867,7 @@ msgstr "OpenERP"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
msgstr ""
msgstr "Stop"
#. module: web
#. openerp-web
@ -2094,7 +2094,7 @@ msgstr "Cargar datos de demostración"
#: code:addons/web/static/src/xml/base.xml:615
#, python-format
msgid "Created by :"
msgstr ""
msgstr "Creado por:"
#. module: web
#. openerp-web
@ -2475,7 +2475,7 @@ msgstr "Campo:"
#: code:addons/web/static/src/xml/base.xml:620
#, python-format
msgid "Modified by :"
msgstr ""
msgstr "Modificado por:"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-26 14:49+0000\n"
"PO-Revision-Date: 2013-01-06 20:00+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\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: 2012-12-27 05:53+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-07 05:45+0000\n"
"X-Generator: Launchpad (build 16402)\n"
#. module: web
#. openerp-web
@ -2359,7 +2359,7 @@ msgstr ""
#: code:addons/web/static/src/js/chrome.js:509
#, python-format
msgid "Backed"
msgstr ""
msgstr "Varundatud"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Juha Kotamäki <Unknown>\n"
"PO-Revision-Date: 2013-02-06 08:55+0000\n"
"Last-Translator: Sligo Oy <info@sligo-oy.com>\n"
"Language-Team: Finnish <fi@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-22 07:37+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-07 05:42+0000\n"
"X-Generator: Launchpad (build 16477)\n"
#. module: web
#. openerp-web
@ -29,21 +29,21 @@ msgstr "Oletuskieli:"
#: code:addons/web/static/src/js/coresetup.js:602
#, python-format
msgid "%d minutes ago"
msgstr ""
msgstr "%d minuuttia sitten"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:630
#, python-format
msgid "Still loading...<br />Please be patient."
msgstr ""
msgstr "Ladataan...<br />Olkaa hyvä ja odottakaa."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1832
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
msgstr ""
msgstr "%(field)s %(operator)s \"%(value)s\""
#. module: web
#. openerp-web
@ -59,7 +59,7 @@ msgstr "pienempi tai yhtäsuuri kuin"
#: code:addons/web/static/src/js/chrome.js:393
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "Syötä edellinen salasanasi"
#. module: web
#. openerp-web
@ -75,42 +75,42 @@ msgstr "Pääsalasana:"
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "Change Master Password"
msgstr ""
msgstr "Vaihda pääsalasana"
#. 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 "Oletko varma, että haluat poistaa tietokannan: %s ?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr ""
msgstr "Hae %(field)s arvoista: %(value)s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:537
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Pääsy evätty"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Lähetysvirhe"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:603
#, python-format
msgid "about an hour ago"
msgstr ""
msgstr "noin tunti sitten"
#. module: web
#. openerp-web
@ -119,14 +119,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:216
#, python-format
msgid "Backup Database"
msgstr ""
msgstr "Varmuuskopioi tietokanta"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "%(view_type)s näkymä"
#. module: web
#. openerp-web
@ -134,7 +134,7 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "\"%s\" ei ole kelvollinen päivämäärä"
#. module: web
#. openerp-web
@ -148,20 +148,20 @@ msgstr "Tässä on näyte tiedostosta jota ei voitu tuoda:"
#: code:addons/web/static/src/js/coresetup.js:601
#, python-format
msgid "about a minute ago"
msgstr ""
msgstr "noin minuutti sitten"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1297
#, python-format
msgid "File"
msgstr ""
msgstr "Tiedosto"
#. module: web
#: code:addons/web/controllers/main.py:826
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "Et voi jättää salasanaa tyhjäksi."
#. module: web
#. openerp-web
@ -192,7 +192,7 @@ msgstr "Valitse"
#: code:addons/web/static/src/js/chrome.js:549
#, python-format
msgid "Database restored successfully"
msgstr "Tietokanta palautettu onnistuneesti"
msgstr "Tietokanta palautettu"
#. module: web
#. openerp-web
@ -213,21 +213,21 @@ msgstr "Viimeisin muutospäivämäärä:"
#: code:addons/web/static/src/js/search.js:1459
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr ""
msgstr "Monesta yhteen hakukentät eivät salli useita oletusarvoja."
#. 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 "Pienohjelman tyyppiä '%s' ei ole asennettu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1608
#, python-format
msgid "Share with all users"
msgstr ""
msgstr "Jaa kaikkien käyttäjien kanssa"
#. module: web
#. openerp-web
@ -242,14 +242,14 @@ msgstr "Lomake"
#: code:addons/web/static/src/xml/base.xml:1324
#, python-format
msgid "(no string)"
msgstr ""
msgstr "(ei merkkijonoa)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:282
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'%s' on virheellinen aika"
#. module: web
#. openerp-web
@ -270,7 +270,7 @@ msgstr "Uusi salasana:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Liite:"
#. module: web
#. openerp-web
@ -291,49 +291,49 @@ msgstr "Määrittämätön"
#: code:addons/web/static/src/js/view_form.js:4871
#, python-format
msgid "File Upload"
msgstr ""
msgstr "Tiedoston lähetys"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:607
#, python-format
msgid "about a month ago"
msgstr ""
msgstr "noin kuukausi sitten"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1600
#, python-format
msgid "Custom Filters"
msgstr ""
msgstr "Muokattavat suodattimet"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1336
#, python-format
msgid "Button Type:"
msgstr "Napin tyyppi:"
msgstr "Painiketyyppi:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:419
#, python-format
msgid "OpenERP SA Company"
msgstr ""
msgstr "OpenERP SA yritys"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1553
#, python-format
msgid "Custom Filter"
msgstr ""
msgstr "Mukautettu suodatin"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:159
#, python-format
msgid "Duplicate Database"
msgstr ""
msgstr "Kopioi tietokanta"
#. module: web
#. openerp-web
@ -355,7 +355,7 @@ msgstr "Vaihda salasana"
#: code:addons/web/static/src/js/view_form.js:3411
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "Näkymätyyppiä '%s' ei tueta yhdestä moneen kentissä."
#. module: web
#. openerp-web
@ -370,7 +370,7 @@ msgstr "Lataa"
#: code:addons/web/static/src/js/formats.js:266
#, python-format
msgid "'%s' is not a correct datetime"
msgstr ""
msgstr "'%s' on virheellinen päivämäärä"
#. module: web
#. openerp-web
@ -398,20 +398,20 @@ msgstr "Valinta:"
#: code:addons/web/static/src/js/view_form.js:871
#, python-format
msgid "The following fields are invalid:"
msgstr ""
msgstr "Seuraavat kentät ovat virheellisiä:"
#. module: web
#: code:addons/web/controllers/main.py:847
#, python-format
msgid "Languages"
msgstr ""
msgstr "Kielet"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1270
#, python-format
msgid "...Upload in progress..."
msgstr ""
msgstr "...lähetys käynnissä..."
#. module: web
#. openerp-web
@ -425,21 +425,21 @@ msgstr "Tuo"
#: code:addons/web/static/src/js/chrome.js:543
#, python-format
msgid "Could not restore the database"
msgstr ""
msgstr "Tietokantaa ei voitu palauttaa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4851
#, python-format
msgid "File upload"
msgstr ""
msgstr "Tiedoston lähetys"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:3804
#, python-format
msgid "Action Button"
msgstr ""
msgstr "Toimintopainike"
#. module: web
#. openerp-web
@ -447,7 +447,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1467
#, python-format
msgid "Manage Filters"
msgstr "Hallitse Suotimia"
msgstr "Hallitse suodattimia"
#. module: web
#. openerp-web
@ -461,14 +461,14 @@ msgstr "sisältää"
#: code:addons/web/static/src/js/coresetup.js:633
#, python-format
msgid "Take a minute to get a coffee,<br />because it's loading..."
msgstr ""
msgstr "Käy vaikka kahvilla,<br />koska tämä lataus kestää hetken..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:413
#, python-format
msgid "Activate the developer mode"
msgstr ""
msgstr "Aktivoi kehittäjätila"
#. module: web
#. openerp-web
@ -482,14 +482,14 @@ msgstr "Ladataan (%d)"
#: code:addons/web/static/src/js/search.js:1114
#, python-format
msgid "GroupBy"
msgstr ""
msgstr "Järjestä"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:687
#, python-format
msgid "You must select at least one record."
msgstr ""
msgstr "Sinun täytyy valita vähintään yksi tietue."
#. module: web
#. openerp-web
@ -503,7 +503,7 @@ msgstr "Näytä loki (perm_read)"
#: code:addons/web/static/src/js/view_form.js:1061
#, python-format
msgid "Set Default"
msgstr "Aseta Oletukseksi"
msgstr "Aseta oletukseksi"
#. module: web
#. openerp-web
@ -517,7 +517,7 @@ msgstr "Suhde:"
#: code:addons/web/static/src/js/coresetup.js:600
#, python-format
msgid "less than a minute ago"
msgstr ""
msgstr "alle minuutti sitten"
#. module: web
#. openerp-web
@ -552,14 +552,14 @@ msgstr "Palautettu"
#: code:addons/web/static/src/js/view_list.js:394
#, python-format
msgid "%d-%d of %d"
msgstr ""
msgstr "%d-%d %d :sta"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2868
#, python-format
msgid "Create and Edit..."
msgstr ""
msgstr "Luo ja muokkaa..."
#. module: web
#. openerp-web
@ -573,7 +573,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:2346
#, python-format
msgid "Resource error"
msgstr ""
msgstr "Resurssivirhe"
#. module: web
#. openerp-web
@ -587,21 +587,21 @@ msgstr "ei ole"
#: code:addons/web/static/src/xml/base.xml:550
#, python-format
msgid "Print Workflow"
msgstr ""
msgstr "Tulosta työnkulku"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:396
#, python-format
msgid "Please confirm your new password"
msgstr ""
msgstr "Vahvista uusi salasanasi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1804
#, python-format
msgid "UTF-8"
msgstr ""
msgstr "UTF-8"
#. module: web
#. openerp-web
@ -674,7 +674,7 @@ msgstr "Näkymä"
#: code:addons/web/static/src/xml/base.xml:1466
#, python-format
msgid "Save Filter"
msgstr "Tallenna suodin"
msgstr "Tallenna suodatin"
#. module: web
#. openerp-web
@ -689,13 +689,14 @@ msgstr "Toiminnon ID:"
#, python-format
msgid "Your user's preference timezone does not match your browser timezone:"
msgstr ""
"Käyttäjätietojesi aikavyöhyke ei täsmää selaimesi aikavyöhykkeen kanssa:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1223
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Näkymässä määriteltyä kenttää '%s' ei löytynyt."
#. module: web
#. openerp-web
@ -716,21 +717,21 @@ msgstr "Vanha salasana:"
#: code:addons/web/static/src/js/formats.js:113
#, python-format
msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
msgstr ""
msgstr "bittiä,kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "The database has been duplicated."
msgstr ""
msgstr "Tietokanta on kopioitu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1625
#, python-format
msgid "Apply"
msgstr ""
msgstr "Käytä"
#. module: web
#. openerp-web
@ -752,21 +753,21 @@ msgstr "Tallenna nimellä"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2317
#, python-format
msgid "E-mail error"
msgstr ""
msgstr "Sähköpostivirhe"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/coresetup.js:605
#, python-format
msgid "a day ago"
msgstr ""
msgstr "päivä sitten"
#. module: web
#. openerp-web
@ -780,7 +781,7 @@ msgstr "Onko tiedostossasi otsikot?"
#: code:addons/web/static/src/js/view_list.js:327
#, python-format
msgid "Unlimited"
msgstr "Ei rajoitettu"
msgstr "Rajoittamaton"
#. module: web
#. openerp-web
@ -791,6 +792,9 @@ msgid ""
"\n"
"Are you sure you want to leave this page ?"
msgstr ""
"Varoitus, tietuetta on muokattu ja tekemäsi muutokset hylätään.\n"
"\n"
"Haluatko varmasti poistua tältä sivulta ?"
#. module: web
#. openerp-web
@ -818,14 +822,14 @@ msgstr "Rajoitin:"
#: code:addons/web/static/src/xml/base.xml:462
#, python-format
msgid "Browser's timezone"
msgstr ""
msgstr "Selaimen aikavyhöhyke"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1605
#, python-format
msgid "Filter name"
msgstr ""
msgstr "Suodattimen nimi"
#. module: web
#. openerp-web
@ -856,7 +860,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:421
#, python-format
msgid "OpenERP.com"
msgstr ""
msgstr "OpenERP.com"
#. module: web
#. openerp-web
@ -870,7 +874,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:636
#, python-format
msgid "Add..."
msgstr ""
msgstr "Lisää..."
#. module: web
#. openerp-web
@ -945,14 +949,14 @@ msgstr "Käyttäjänimi"
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "Duplicating database"
msgstr ""
msgstr "Tietokantaa kopioidaan"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Password has been changed successfully"
msgstr ""
msgstr "Salasana vaihdettu"
#. module: web
#. openerp-web
@ -966,7 +970,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:533
#, python-format
msgid "Debug View#"
msgstr ""
msgstr "Kehitysnäkymä#"
#. module: web
#. openerp-web
@ -1014,7 +1018,7 @@ msgstr "Tallenna kenttäluettelo"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Aloita"
#. module: web
#. openerp-web
@ -1035,14 +1039,14 @@ msgstr "Luontipäivämäärä:"
#: code:addons/web/controllers/main.py:835
#, python-format
msgid "Error, password not changed !"
msgstr ""
msgstr "Virhe, salasanaa ei muutettu"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4850
#, python-format
msgid "The selected file exceed the maximum file size of %s."
msgstr ""
msgstr "Tiedoston suurin sallittu koko %s ylitetty."
#. module: web
#. openerp-web
@ -1050,14 +1054,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1300
#, python-format
msgid "/web/binary/upload_attachment"
msgstr ""
msgstr "/web/binary/upload_attachment"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Changed Password"
msgstr ""
msgstr "Salasana vaihdettu"
#. module: web
#. openerp-web
@ -1091,14 +1095,14 @@ msgstr "Varmuuskopioi"
#: code:addons/web/static/src/js/dates.js:80
#, python-format
msgid "'%s' is not a valid time"
msgstr ""
msgstr "\"%s\" ei ole kelvollinen aika"
#. 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' ei ole kelvollinen päivämäärä"
#. module: web
#. openerp-web
@ -1112,14 +1116,14 @@ msgstr ""
#: code:addons/web/static/src/js/coresetup.js:606
#, python-format
msgid "%d days ago"
msgstr ""
msgstr "%d päivää sitten"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1474
#, python-format
msgid "(Any existing filter with the same name will be replaced)"
msgstr "(jo olemassaoleva samanniminen suodin korvataan)"
msgstr ""
#. module: web
#. openerp-web
@ -1166,7 +1170,7 @@ msgstr "Tuntematon operaattori %s toimialueella %s"
#: code:addons/web/static/src/js/view_form.js:428
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web
#. openerp-web
@ -1196,7 +1200,7 @@ msgstr ""
#: code:addons/web/static/src/js/coresetup.js:608
#, python-format
msgid "%d months ago"
msgstr ""
msgstr "%d kuukautta sitten"
#. module: web
#. openerp-web
@ -1217,7 +1221,7 @@ msgstr "Lisää kehittynyt suodin"
#: code:addons/web/controllers/main.py:828
#, python-format
msgid "The new password and its confirmation must be identical."
msgstr ""
msgstr "Uusi salasana sekä vahvistus tulee olla samat."
#. module: web
#. openerp-web
@ -1225,14 +1229,14 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:248
#, python-format
msgid "Restore Database"
msgstr ""
msgstr "Palauta tietokanta"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:644
#, python-format
msgid "Login"
msgstr ""
msgstr "Kirjaudu"
#. module: web
#. openerp-web
@ -1346,28 +1350,28 @@ 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 "Salasanan vahvistus ei täsmää salasanan kanssa"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Muokkaa yrityksen tietoja"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:4886
#, python-format
msgid "Save As..."
msgstr ""
msgstr "Tallenna nimellä..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5007
#, python-format
msgid "Could not display the selected image."
msgstr ""
msgstr "Valittua kuvaa ei voitu näyttää."
#. module: web
#. openerp-web
@ -1390,7 +1394,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:394
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web
#. openerp-web
@ -1404,14 +1408,14 @@ msgstr "1. Tuo .CSV tiedosto"
#: code:addons/web/static/src/js/chrome.js:644
#, python-format
msgid "No database selected !"
msgstr ""
msgstr "Tietokantaa ei valittu !"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/formats.js:180
#, python-format
msgid "(%d records)"
msgstr ""
msgstr "(%d tietuetta)"
#. module: web
#. openerp-web
@ -1425,7 +1429,7 @@ msgstr "Vaihda oletusarvo:"
#: code:addons/web/static/src/xml/base.xml:171
#, python-format
msgid "Original database name:"
msgstr ""
msgstr "Alkuperäinen tietokannan nimi:"
#. module: web
#. openerp-web
@ -1449,7 +1453,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1619
#, python-format
msgid "Advanced Search"
msgstr ""
msgstr "Tarkennettu haku"
#. module: web
#. openerp-web
@ -1496,7 +1500,7 @@ msgstr "Tuonnin valinnat"
#: code:addons/web/static/src/js/view_form.js:2936
#, python-format
msgid "Add %s"
msgstr ""
msgstr "Lisää %s"
#. module: web
#. openerp-web
@ -1534,7 +1538,7 @@ msgstr "CSV tiedosto:"
#: code:addons/web/static/src/js/search.js:1741
#, python-format
msgid "Advanced"
msgstr ""
msgstr "Lisäasetukset"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 07:02+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2013-01-09 15:30+0000\n"
"Last-Translator: Numérigraphe <Unknown>\n"
"Language-Team: French <fr@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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-10 05:36+0000\n"
"X-Generator: Launchpad (build 16412)\n"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr "Accès refusé"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Erreur de transmission"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Sauvegarde de la base de données"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "vue %(view_type)s"
#. module: web
#. openerp-web
@ -272,7 +272,7 @@ msgstr "Nouveau mot de passe :"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Pièce jointe :"
#. module: web
#. openerp-web
@ -757,7 +757,7 @@ msgstr "Enregistrer sous"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
@ -941,7 +941,7 @@ msgstr "Enregistrer"
#: code:addons/web/static/src/xml/base.xml:352
#, python-format
msgid "More"
msgstr "Plus"
msgstr "Autres options"
#. module: web
#. openerp-web
@ -1028,7 +1028,7 @@ msgstr "Enregistrer la liste des champs"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Démarrer"
#. module: web
#. openerp-web
@ -1372,7 +1372,7 @@ msgstr "La confirmation ne correspond pas au mot de passe"
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Modifier les données de la société"
#. module: web
#. openerp-web
@ -1621,7 +1621,7 @@ msgstr "Suppression de la base de données"
#: code:addons/web/static/src/xml/base.xml:445
#, python-format
msgid "Powered by"
msgstr "Propulsé par"
msgstr "Fourni par"
#. module: web
#. openerp-web
@ -1873,7 +1873,7 @@ msgstr "OpenERP"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
msgstr ""
msgstr "Arrêter"
#. module: web
#. openerp-web
@ -2100,7 +2100,7 @@ msgstr "Charger les données de démonstration:"
#: code:addons/web/static/src/xml/base.xml:615
#, python-format
msgid "Created by :"
msgstr ""
msgstr "Créé par :"
#. module: web
#. openerp-web
@ -2482,7 +2482,7 @@ msgstr "Champ :"
#: code:addons/web/static/src/xml/base.xml:620
#, python-format
msgid "Modified by :"
msgstr ""
msgstr "Modifié par :"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-27 09:12+0000\n"
"PO-Revision-Date: 2013-02-12 13:23+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: Hungarian <hu@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-28 05:37+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-13 05:22+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr "Hozzáférés megtagadva"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr "Feltültési hiba"
msgstr "Feltöltési hiba"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-23 23:17+0000\n"
"PO-Revision-Date: 2013-01-02 23:44+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-25 05:16+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-04 05:28+0000\n"
"X-Generator: Launchpad (build 16393)\n"
#. module: web
#. openerp-web
@ -75,7 +75,7 @@ msgstr "Password principale"
#: code:addons/web/static/src/xml/base.xml:274
#, python-format
msgid "Change Master Password"
msgstr "Cambia Master Password"
msgstr "Cambia la Password principale"
#. module: web
#. openerp-web

2612
addons/web/i18n/ko.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-25 02:31+0000\n"
"Last-Translator: gobi <Unknown>\n"
"PO-Revision-Date: 2013-02-07 09:58+0000\n"
"Last-Translator: Tenuun Khangaitan <tenuun.khangaitan@gmail.com>\n"
"Language-Team: Mongolian <mn@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-26 05:18+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-08 05:24+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: web
#. openerp-web
@ -477,7 +477,7 @@ msgstr "Хөгжүүлэгч горимыг идэвхжүүлэх"
#: code:addons/web/static/src/js/chrome.js:324
#, python-format
msgid "Loading (%d)"
msgstr "Ачаалж байна (%d)"
msgstr "Ачааллаж байна (%d)"
#. module: web
#. openerp-web
@ -1146,7 +1146,7 @@ msgstr "Цуцлах"
#: code:addons/web/static/src/xml/base.xml:9
#, python-format
msgid "Loading..."
msgstr "Ачаалж байна..."
msgstr "Ачааллаж байна..."
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 07:31+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2013-02-23 17:55+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
"Language-Team: Dutch <nl@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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-24 05:13+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web
#. openerp-web
@ -68,7 +68,7 @@ msgstr "Geef uw vorige wachtwoord in"
#: code:addons/web/static/src/xml/base.xml:282
#, python-format
msgid "Master password:"
msgstr "Master wachtwoord:"
msgstr "Hoofdwachtwoord:"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr "Toegang geweigerd"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr "Uploading fottmelding"
msgstr "Fout bij uploaden"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Back-up database"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr "%(view_type)s were gave"
msgstr "%(view_type)s weergave"
#. module: web
#. openerp-web
@ -177,7 +177,7 @@ msgstr "Ongeldige gebruikersnaam of wachtwoord"
#: code:addons/web/static/src/xml/base.xml:260
#, python-format
msgid "Master Password:"
msgstr "Master wachtwoord:"
msgstr "Hoofdwachtwoord"
#. module: web
#. openerp-web
@ -185,7 +185,7 @@ msgstr "Master wachtwoord:"
#: code:addons/web/static/src/xml/base.xml:1374
#, python-format
msgid "Select"
msgstr "Selecteren"
msgstr "Kies"
#. module: web
#. openerp-web
@ -333,7 +333,7 @@ msgstr "Aangepaste Filter"
#: code:addons/web/static/src/xml/base.xml:159
#, python-format
msgid "Duplicate Database"
msgstr "Dupliceer Database"
msgstr "Dupliceer database"
#. module: web
#. openerp-web
@ -348,7 +348,7 @@ msgstr "Dupliceer Database"
#: code:addons/web/static/src/xml/base.xml:336
#, python-format
msgid "Change Password"
msgstr "Wachtwoord wijzigen"
msgstr "Wijzig wachtwoord"
#. module: web
#. openerp-web
@ -629,7 +629,7 @@ msgstr "Export Formaten"
#: code:addons/web/static/src/xml/base.xml:974
#, python-format
msgid "On change:"
msgstr "On change:"
msgstr "Bij wijziging"
#. module: web
#. openerp-web
@ -794,10 +794,9 @@ msgid ""
"\n"
"Are you sure you want to leave this page ?"
msgstr ""
"Opgelet, het record werd aangepast, uw wijzigingen willen verloren gaan.<br "
"/>\n"
"<br />\n"
"Bent u zeker dat u deze pagina wenst te verlaten?"
"Opgelet, het record is aangepast, uw wijzigingen zullen verloren gaan.\n"
"\n"
"Weet u zeker dat u deze pagina wilt verlaten?"
#. module: web
#. openerp-web
@ -899,7 +898,7 @@ msgstr "Fout bij het wijzigen van het formaat: %s"
#: code:addons/web/static/src/xml/base.xml:185
#, python-format
msgid "Drop Database"
msgstr "Verwijder Database"
msgstr "Verwijder database"
#. module: web
#. openerp-web
@ -1095,7 +1094,7 @@ msgstr "Open: "
#: code:addons/web/static/src/xml/base.xml:309
#, python-format
msgid "Backup"
msgstr "Backup"
msgstr "Back-up"
#. module: web
#. openerp-web
@ -1319,7 +1318,7 @@ msgstr "U moet tenminste één record kiezen."
#: code:addons/web/static/src/js/coresetup.js:631
#, python-format
msgid "Don't leave yet,<br />it's still loading..."
msgstr "Nog niet weggaan,<br />het is nog steeds aan het laden..."
msgstr "Nog niet weggaan,<br />het systeem is nog steeds aan het laden..."
#. module: web
#. openerp-web
@ -1389,7 +1388,7 @@ msgstr "Kan de geselecteerde afbeelding niet tonen."
#: code:addons/web/static/src/js/chrome.js:509
#, python-format
msgid "Database backed up successfully"
msgstr "Database succesvol gebackupped"
msgstr "Database back-up succesvol"
#. module: web
#. openerp-web
@ -1442,7 +1441,7 @@ msgstr "Wijzig standaard"
#: code:addons/web/static/src/xml/base.xml:171
#, python-format
msgid "Original database name:"
msgstr "Originele Database naam:"
msgstr "Originele database naam:"
#. module: web
#. openerp-web
@ -1473,7 +1472,7 @@ msgstr "Geavanceerd zoeken"
#: code:addons/web/static/src/xml/base.xml:290
#, python-format
msgid "Confirm new master password:"
msgstr "Bevestig nieuw master wachtwoord:"
msgstr "Bevestig nieuw hoofdwachtwoord:"
#. module: web
#. openerp-web
@ -1811,7 +1810,7 @@ msgstr "Weergeven velden"
#: code:addons/web/static/src/xml/base.xml:330
#, python-format
msgid "Confirm New Password:"
msgstr "Bevestig nieuw wachtwoord"
msgstr "Bevestig nieuw wachtwoord:"
#. module: web
#. openerp-web
@ -2243,7 +2242,7 @@ msgstr "Selecteer velden voor export"
#: code:addons/web/static/src/xml/base.xml:286
#, python-format
msgid "New master password:"
msgstr "Nieuw master wachtwoord:"
msgstr "Nieuw hoofdwachtwoord:"
#. module: web
#. openerp-web
@ -2277,7 +2276,7 @@ msgstr "Geen inhoud gevonden voor veld '%s' bij '%s:%s'"
#: code:addons/web/static/src/xml/base.xml:304
#, python-format
msgid "Database Management"
msgstr "Database Beheer"
msgstr "Database beheer"
#. module: web
#. openerp-web
@ -2291,7 +2290,7 @@ msgstr "Afbeelding"
#: code:addons/web/static/src/xml/base.xml:81
#, python-format
msgid "Manage Databases"
msgstr "Beheer administraties"
msgstr "Beheer databases"
#. module: web
#. openerp-web
@ -2623,7 +2622,7 @@ msgstr "Scheidingsteken:"
#: code:addons/web/static/src/xml/base.xml:300
#, python-format
msgid "Back to Login"
msgstr "Terug naar aanmelding"
msgstr "Terug naar login"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2013-01-07 15:44+0000\n"
"Last-Translator: Niels Huylebroeck <Unknown>\n"
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-12-22 07:38+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-08 06:06+0000\n"
"X-Generator: Launchpad (build 16402)\n"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Fout bij het uploaden"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Database back-uppen"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "%(view_type)s weergave"
#. module: web
#. openerp-web
@ -134,7 +134,7 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "'%s' is geen geldige datum"
#. module: web
#. openerp-web
@ -155,20 +155,20 @@ msgstr "ongeveer 1 minuut geleden"
#: code:addons/web/static/src/xml/base.xml:1297
#, python-format
msgid "File"
msgstr ""
msgstr "Bestand"
#. module: web
#: code:addons/web/controllers/main.py:826
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "U moet beide wachtwoord velden verplicht invullen."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:680
#, python-format
msgid "Invalid username or password"
msgstr ""
msgstr "Ongeldige gebruikersnaam of wachtwoord"
#. module: web
#. openerp-web
@ -220,7 +220,7 @@ msgstr "M2O-zoekvelden kunnen meerdere standaardwaarden momenteel niet aan"
#: code:addons/web/static/src/js/view_form.js:1227
#, python-format
msgid "Widget type '%s' is not implemented"
msgstr ""
msgstr "Widget type '%s' is niet geïmplementeerd"
#. module: web
#. openerp-web
@ -270,7 +270,7 @@ msgstr "Nieuw wachtwoord:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Bijlage:"
#. module: web
#. openerp-web
@ -291,7 +291,7 @@ msgstr "Onbepaald"
#: code:addons/web/static/src/js/view_form.js:4871
#, python-format
msgid "File Upload"
msgstr ""
msgstr "Bestand upload"
#. module: web
#. openerp-web
@ -404,7 +404,7 @@ msgstr ""
#: code:addons/web/controllers/main.py:847
#, python-format
msgid "Languages"
msgstr ""
msgstr "Talen"
#. module: web
#. openerp-web
@ -553,7 +553,7 @@ msgstr "Teruggezet"
#: code:addons/web/static/src/js/view_list.js:394
#, python-format
msgid "%d-%d of %d"
msgstr ""
msgstr "%d-%d van %d"
#. module: web
#. openerp-web
@ -651,7 +651,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_list.js:8
#, python-format
msgid "List"
msgstr ""
msgstr "Lijst"
#. module: web
#. openerp-web
@ -696,7 +696,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:1223
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Veld '%s' in weergave kon niet worden gevonden."
#. module: web
#. openerp-web
@ -717,21 +717,21 @@ msgstr "Huidig wachtwoord:"
#: code:addons/web/static/src/js/formats.js:113
#, python-format
msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
msgstr ""
msgstr "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "The database has been duplicated."
msgstr ""
msgstr "De database is gekopieërd."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1625
#, python-format
msgid "Apply"
msgstr ""
msgstr "Toepassen"
#. module: web
#. openerp-web
@ -753,14 +753,14 @@ msgstr "Opslaan als"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2317
#, python-format
msgid "E-mail error"
msgstr ""
msgstr "E-mail fout"
#. module: web
#. openerp-web

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"PO-Revision-Date: 2012-12-30 20:11+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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2012-12-31 05:16+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web
@ -103,7 +103,7 @@ msgstr "Odmowa dostępu"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Błąd uploadu"
#. module: web
#. openerp-web
@ -271,7 +271,7 @@ msgstr "Nowe hasło:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Załącznik:"
#. module: web
#. openerp-web
@ -602,7 +602,7 @@ msgstr "Potwierdź nowe hasło"
#: code:addons/web/static/src/xml/base.xml:1804
#, python-format
msgid "UTF-8"
msgstr ""
msgstr "UTF-8"
#. module: web
#. openerp-web
@ -754,7 +754,7 @@ msgstr "Zapisz jako"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
@ -1361,7 +1361,7 @@ msgstr "Hasła się nie zgadzają"
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Zmień dane Firmy"
#. module: web
#. openerp-web
@ -1564,7 +1564,7 @@ msgstr "Nie mozna usunąć bazy !"
#: code:addons/web/static/src/js/formats.js:227
#, python-format
msgid "'%s' is not a correct integer"
msgstr ""
msgstr "'%s' nie jest poprawną wartością \"integer\""
#. module: web
#. openerp-web
@ -1852,14 +1852,14 @@ msgstr "Domyślne:"
#: code:addons/web/static/src/xml/base.xml:446
#, python-format
msgid "OpenERP"
msgstr ""
msgstr "OpenERP"
#. module: web
#. openerp-web
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
msgstr ""
msgstr "Zatrzymaj"
#. module: web
#. openerp-web
@ -2063,7 +2063,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:1752
#, python-format
msgid "Ok"
msgstr ""
msgstr "OK"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 07:29+0000\n"
"Last-Translator: Virgílio Oliveira <virgilio.oliveira@multibase.pt>\n"
"PO-Revision-Date: 2013-01-15 10:10+0000\n"
"Last-Translator: António Sequeira <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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-16 05:53+0000\n"
"X-Generator: Launchpad (build 16420)\n"
#. module: web
#. openerp-web
@ -43,7 +43,7 @@ msgstr "Carregando...<br />Por favor, aguarde."
#: code:addons/web/static/src/js/search.js:1832
#, python-format
msgid "%(field)s %(operator)s \"%(value)s\""
msgstr ""
msgstr "%(field)s %(operator)s \"%(value)s\""
#. module: web
#. openerp-web
@ -89,7 +89,7 @@ msgstr "Quer mesmo apagar a base de dados: %s?"
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr ""
msgstr "Procurar %(field)s em: %(value)s"
#. module: web
#. openerp-web
@ -103,7 +103,7 @@ msgstr "Acesso negado"
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Erro de carregamento"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Fazer cópia de segurança da base de dados"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "Vista de %(view_type)s"
#. module: web
#. openerp-web
@ -192,7 +192,7 @@ msgstr "Selecionar"
#: code:addons/web/static/src/js/chrome.js:549
#, python-format
msgid "Database restored successfully"
msgstr ""
msgstr "Base de dados restaurada com êxito"
#. module: web
#. openerp-web
@ -214,6 +214,8 @@ msgstr "Data da modificação mais recente:"
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr ""
"Os campos de pesquisa do tipo \"muitos para vários\" não permitem - por "
"enquanto -, lidar com diversos valores predefinidos."
#. module: web
#. openerp-web
@ -270,7 +272,7 @@ msgstr "Nova senha:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Anexo:"
#. module: web
#. openerp-web
@ -719,7 +721,7 @@ msgstr "Senha antiga"
#: code:addons/web/static/src/js/formats.js:113
#, python-format
msgid "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
msgstr ""
msgstr "Bytes,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb"
#. module: web
#. openerp-web
@ -755,7 +757,7 @@ msgstr "Guardar como"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
@ -855,7 +857,7 @@ msgstr "Acrescentar"
#: code:addons/web/static/src/xml/base.xml:536
#, python-format
msgid "Toggle Form Layout Outline"
msgstr ""
msgstr "Alternar aspeto do formulário"
#. module: web
#. openerp-web
@ -1024,7 +1026,7 @@ msgstr "Gravar lista de campos"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Iniciar"
#. module: web
#. openerp-web
@ -1367,7 +1369,7 @@ msgstr "A confirmação não coincide com a senha"
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Editar dados da empresa"
#. module: web
#. openerp-web
@ -1866,7 +1868,7 @@ msgstr "OpenERP"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
msgstr ""
msgstr "Parar"
#. module: web
#. openerp-web
@ -1936,6 +1938,8 @@ msgid ""
"Grouping on field '%s' is not possible because that field does not appear in "
"the list view."
msgstr ""
"Não é possível usar o campo '%s' para agrupamento porque este não aparece na "
"vista de listagem."
#. module: web
#. openerp-web
@ -2027,6 +2031,8 @@ msgid ""
"The type of the field '%s' must be a many2many field with a relation to "
"'ir.attachment' model."
msgstr ""
"O campo '%s' precisa de ser do tipo muitos para muitos com uma relação com o "
"modelo 'ir.attachment'."
#. module: web
#. openerp-web
@ -2089,7 +2095,7 @@ msgstr "Carregar dados de demonstração"
#: code:addons/web/static/src/xml/base.xml:615
#, python-format
msgid "Created by :"
msgstr ""
msgstr "Criado por:"
#. module: web
#. openerp-web
@ -2184,7 +2190,7 @@ msgstr "Novo"
#: code:addons/web/static/src/js/view_list.js:1767
#, python-format
msgid "Can't convert value %s to context"
msgstr ""
msgstr "Não é possível converter o valor %s dentro para contexto"
#. module: web
#. openerp-web
@ -2265,7 +2271,7 @@ msgstr ""
#: code:addons/web/controllers/main.py:1264
#, python-format
msgid "No content found for field '%s' on '%s:%s'"
msgstr ""
msgstr "Nenhum conteúdo encontrado para o campo '%s' em '%s:%s'"
#. module: web
#. openerp-web
@ -2373,7 +2379,7 @@ msgstr ""
#: code:addons/web/static/src/js/view_form.js:3805
#, python-format
msgid "The o2m record must be saved before an action can be used"
msgstr ""
msgstr "O registo o2m precisa ser gravado antes de ser usado por uma ação"
#. module: web
#. openerp-web
@ -2415,7 +2421,7 @@ msgstr "Filtro"
#: code:addons/web/static/src/xml/base.xml:950
#, python-format
msgid "Widget:"
msgstr ""
msgstr "Componente:"
#. module: web
#. openerp-web
@ -2471,7 +2477,7 @@ msgstr "Campo:"
#: code:addons/web/static/src/xml/base.xml:620
#, python-format
msgid "Modified by :"
msgstr ""
msgstr "Modificado por:"
#. module: web
#. openerp-web

View File

@ -8,15 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 07:29+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\n"
"PO-Revision-Date: 2013-02-26 09:39+0000\n"
"Last-Translator: Rui Andrada <shingonoide@gmail.com>\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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web
#. openerp-web
@ -83,14 +82,14 @@ msgstr "Alterar Senha Super Admin"
#: code:addons/web/static/src/js/chrome.js:491
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr "Você realmente deseja excluir a base de dados: %s ?"
msgstr "Você realmente que remover o banco de dados: %s ?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr "Procurar %(field)s em: %(value)s"
msgstr "Buscar %(field)s por: %(value)s"
#. module: web
#. openerp-web
@ -120,14 +119,14 @@ msgstr "por volta de uma hora atrás"
#: code:addons/web/static/src/xml/base.xml:216
#, python-format
msgid "Backup Database"
msgstr "Cópia de segurança da base de dados"
msgstr "Cópia de Segurança do Banco de Dados"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr "%(view_type)s view"
msgstr "Visualização %(view_type)s"
#. module: web
#. openerp-web
@ -214,7 +213,7 @@ msgstr "Data da Última Modificação:"
#: code:addons/web/static/src/js/search.js:1459
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr "Campos de pesquisa M2O não aceitão múltiplos valores default"
msgstr "Campos de pesquisa M2O não aceitão múltiplos valores padrão"
#. module: web
#. openerp-web
@ -433,7 +432,7 @@ msgstr "Não foi possível restaurar a base de dados"
#: code:addons/web/static/src/js/view_form.js:4851
#, python-format
msgid "File upload"
msgstr "Arquivo carregado"
msgstr "Upload de arquivos"
#. module: web
#. openerp-web
@ -532,7 +531,7 @@ msgstr "Condição:"
#: code:addons/web/static/src/js/view_form.js:1692
#, python-format
msgid "Unsupported operator %s in domain %s"
msgstr "Operador não suportado %s no domínio %s"
msgstr "Operador %s não suportado no domínio %s"
#. module: web
#. openerp-web
@ -560,7 +559,7 @@ msgstr "%d-%d de %d"
#: code:addons/web/static/src/js/view_form.js:2868
#, python-format
msgid "Create and Edit..."
msgstr "Criar e editar..."
msgstr "Criar e Editar..."
#. module: web
#. openerp-web
@ -1169,7 +1168,7 @@ msgstr "Fuso horário diferentes"
#: code:addons/web/static/src/js/view_form.js:1646
#, python-format
msgid "Unknown operator %s in domain %s"
msgstr "Operador desconhecido %s no domínio %s"
msgstr "Operador %s desconhecido no domínio %s"
#. module: web
#. openerp-web
@ -1183,7 +1182,7 @@ msgstr "%d / %d"
#: code:addons/web/static/src/xml/base.xml:1782
#, python-format
msgid "2. Check your file format"
msgstr "2. Verifique seu formato de arquivo"
msgstr "2. Verifique o formato de seu arquivo"
#. module: web
#. openerp-web
@ -1318,7 +1317,7 @@ msgstr "Você deve escolher pelo menos um registro."
#: code:addons/web/static/src/js/coresetup.js:631
#, python-format
msgid "Don't leave yet,<br />it's still loading..."
msgstr "Não deixe ainda, <br /> que ainda está carregando ..."
msgstr "Não saia dai, <br /> que ainda está carregando ..."
#. module: web
#. openerp-web
@ -1332,7 +1331,7 @@ msgstr "Pesquisa Inválida"
#: code:addons/web/static/src/js/view_list.js:980
#, python-format
msgid "Could not find id in dataset"
msgstr "Não foi possível encontrar ID no conjunto de dados"
msgstr "Não foi possível encontrar o ID no conjunto de dados"
#. module: web
#. openerp-web
@ -1479,7 +1478,7 @@ msgstr "Confirme a Senha do Super Admin:"
#: code:addons/web/static/src/js/coresetup.js:634
#, python-format
msgid "Maybe you should consider reloading the application by pressing F5..."
msgstr "Considere recarregar a a aplicação pressionado F5 ..."
msgstr "Tente recarregar a aplicação pressionado F5 ..."
#. module: web
#. openerp-web
@ -1585,7 +1584,7 @@ msgstr "Todos os usuários"
#: code:addons/web/static/src/js/view_form.js:1654
#, python-format
msgid "Unknown field %s in domain %s"
msgstr "Campo desconhecido %s no domínio %s"
msgstr "Campo %s desconhecido no domínio %s"
#. module: web
#. openerp-web
@ -1936,8 +1935,8 @@ msgid ""
"Grouping on field '%s' is not possible because that field does not appear in "
"the list view."
msgstr ""
"Agrupamento em campo '% s' não é possível porque o campo não aparece na "
"visão de lista."
"Agrupar por em campo '% s' não é possível porque o campo não aparece na "
"visualização lista."
#. module: web
#. openerp-web
@ -1987,7 +1986,7 @@ msgstr "Tipo:"
#: code:addons/web/static/src/js/chrome.js:538
#, python-format
msgid "Incorrect super-administrator password"
msgstr "Senha de Super-administrator incorreta"
msgstr "Senha de Super Admin incorreta"
#. module: web
#. openerp-web
@ -2274,7 +2273,7 @@ msgstr "Nenhum conteúdo encontrado para o campo '%s' em '%s:%s'"
#: code:addons/web/static/src/xml/base.xml:304
#, python-format
msgid "Database Management"
msgstr "Gerenciamento de base de dados"
msgstr "Gerenciamento do banco de dados"
#. module: web
#. openerp-web
@ -2346,7 +2345,7 @@ msgstr "Duplicar"
#: code:addons/web/static/src/xml/base.xml:1391
#, python-format
msgid "Discard"
msgstr "Descartar"
msgstr "Cancelar"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 07:29+0000\n"
"Last-Translator: Fekete Mihai <mihai@erpsystems.ro>\n"
"PO-Revision-Date: 2013-02-02 14:33+0000\n"
"Last-Translator: Dorin <dhongu@gmail.com>\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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-03 05:29+0000\n"
"X-Generator: Launchpad (build 16462)\n"
#. module: web
#. openerp-web
@ -2349,7 +2349,7 @@ msgstr "Copiaza"
#: code:addons/web/static/src/xml/base.xml:1391
#, python-format
msgid "Discard"
msgstr "Elimina"
msgstr "Renunță"
#. module: web
#. openerp-web

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 15:38+0000\n"
"Last-Translator: Dusan Laznik <laznik@mentis.si>\n"
"PO-Revision-Date: 2012-12-31 13:50+0000\n"
"Last-Translator: Dusan Laznik (Mentis) <laznik@mentis.si>\n"
"Language-Team: Slovenian <sl@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-23 05:09+0000\n"
"X-Launchpad-Export-Date: 2013-01-01 05:19+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web
@ -52,7 +52,7 @@ msgstr "%(field)s %(operator)s \"%(value)s\""
#: code:addons/web/static/src/js/search.js:1943
#, python-format
msgid "less or equal than"
msgstr "Manjše ali enako"
msgstr "manjše ali enako"
#. module: web
#. openerp-web
@ -89,7 +89,7 @@ msgstr "Res želite brisati podatkovno zbirko: %s ?"
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr "Iskanje %(field)s at: %(value)s"
msgstr "Iskanje %(field)s v: %(value)s"
#. module: web
#. openerp-web
@ -141,7 +141,7 @@ msgstr "'%s' ni veljaven datum"
#: code:addons/web/static/src/xml/base.xml:1837
#, python-format
msgid "Here is a preview of the file we could not import:"
msgstr "Tukaj je predogled datoteke, ki je nismo mogli uvozit"
msgstr "Tukaj je predogled datoteke, ki je nismo mogli uvoziti"
#. module: web
#. openerp-web
@ -155,7 +155,7 @@ msgstr "približno pred minuto"
#: code:addons/web/static/src/xml/base.xml:1297
#, python-format
msgid "File"
msgstr "Datoteke"
msgstr "Datoteka"
#. module: web
#: code:addons/web/controllers/main.py:826
@ -213,7 +213,7 @@ msgstr "Zadnji datum spremembe:"
#: code:addons/web/static/src/js/search.js:1459
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr "M2O iskalna polja trenutno ne podpirajo večih prevzetih vrednosti"
msgstr "M2O iskalna polja trenutno ne podpirajo večih privzetih vrednosti"
#. module: web
#. openerp-web
@ -235,7 +235,7 @@ msgstr "Skupna raba z vsemi uporabniki"
#: code:addons/web/static/src/js/view_form.js:321
#, python-format
msgid "Form"
msgstr "Forma"
msgstr "Obrazec"
#. module: web
#. openerp-web
@ -256,7 +256,7 @@ msgstr "'%s' ni pravilen čas"
#: code:addons/web/static/src/js/search.js:1297
#, python-format
msgid "not a valid number"
msgstr "ni prava številka"
msgstr "ni pravilna številka"
#. module: web
#. openerp-web
@ -319,7 +319,7 @@ msgstr "Vrsta tipke:"
#: code:addons/web/static/src/xml/base.xml:419
#, python-format
msgid "OpenERP SA Company"
msgstr "podjetja OpenERP SA"
msgstr "Podjetje OpenERP SA"
#. module: web
#. openerp-web
@ -418,7 +418,7 @@ msgstr "...Nalaganje v teku..."
#: code:addons/web/static/src/xml/base.xml:1768
#, python-format
msgid "Import"
msgstr "Uvozi"
msgstr "Uvoz"
#. module: web
#. openerp-web
@ -482,7 +482,7 @@ msgstr "Nalaganje (%d)"
#: code:addons/web/static/src/js/search.js:1114
#, python-format
msgid "GroupBy"
msgstr "Združi po"
msgstr "Združeno po"
#. module: web
#. openerp-web
@ -587,7 +587,7 @@ msgstr "ni"
#: code:addons/web/static/src/xml/base.xml:550
#, python-format
msgid "Print Workflow"
msgstr "Natisni delovni proces!"
msgstr "Izpis delovnega procesa"
#. module: web
#. openerp-web
@ -759,7 +759,7 @@ msgstr "00:00:00"
#: code:addons/web/static/src/js/view_form.js:2317
#, python-format
msgid "E-mail error"
msgstr "Napaka e-mail"
msgstr "Napaka e-pošte"
#. module: web
#. openerp-web
@ -814,7 +814,7 @@ msgstr "Tehnični prevod"
#: code:addons/web/static/src/xml/base.xml:1797
#, python-format
msgid "Delimiter:"
msgstr "Razmejitelj:"
msgstr "Ločilo:"
#. module: web
#. openerp-web
@ -934,7 +934,7 @@ msgstr "Shrani"
#: code:addons/web/static/src/xml/base.xml:352
#, python-format
msgid "More"
msgstr "Dodatno"
msgstr "Več"
#. module: web
#. openerp-web
@ -1180,7 +1180,7 @@ msgstr "%d / %d"
#: code:addons/web/static/src/xml/base.xml:1782
#, python-format
msgid "2. Check your file format"
msgstr "2. Preveri format datoteke"
msgstr "2. Preverite format datoteke"
#. module: web
#. openerp-web
@ -1197,8 +1197,8 @@ msgid ""
"Select a .CSV file to import. If you need a sample of file to import,\n"
" you should use the export tool with the \"Import Compatible\" option."
msgstr ""
"Izberi datoteko .CSV za uvoz. Če potrebujete vzorec daoteke za uvoz,\n"
" uporabite orodje izvoza z možnostjo \"Uvozi kompatibilno\"."
"Izberite datoteko .CSV za uvoz. Če potrebujete vzorec daoteke za uvoz,\n"
" uporabite orodje izvoza z možnostjo \"Prilagojeno za uvoz\"."
#. module: web
#. openerp-web
@ -1263,7 +1263,7 @@ msgstr "Obnovi"
#: code:addons/web/static/src/xml/base.xml:1677
#, python-format
msgid "Export Type:"
msgstr "Tip izvoza:"
msgstr "Vrsta izvoza:"
#. module: web
#. openerp-web
@ -1277,7 +1277,7 @@ msgstr "Odjava"
#: code:addons/web/static/src/js/search.js:1090
#, python-format
msgid "Group by: %s"
msgstr "Združi po: %s"
msgstr "Združeno po: %s"
#. module: web
#. openerp-web
@ -1292,7 +1292,7 @@ msgstr "Ni podatkov."
#: code:addons/web/static/src/xml/base.xml:1665
#, python-format
msgid "Export"
msgstr "Izvozi"
msgstr "Izvoz"
#. module: web
#. openerp-web
@ -1421,7 +1421,7 @@ msgstr "Nobena podatkovna zbirka ni izbrana!"
#: code:addons/web/static/src/js/formats.js:180
#, python-format
msgid "(%d records)"
msgstr "(%d zapisa)"
msgstr "(%d zapisov)"
#. module: web
#. openerp-web
@ -1466,7 +1466,7 @@ msgstr "Napredno iskanje"
#: code:addons/web/static/src/xml/base.xml:290
#, python-format
msgid "Confirm new master password:"
msgstr "Potrdi novo glavno geslo:"
msgstr "Potrdite novo glavno geslo:"
#. module: web
#. openerp-web
@ -1585,7 +1585,7 @@ msgstr "Neznano polje %s v domeni %s"
#: code:addons/web/static/src/js/views.js:1466
#, python-format
msgid "Node [%s] is not a JSONified XML node"
msgstr "Node [%s] nije JSONified XML node"
msgstr "Node [%s] ni JSONified XML node"
#. module: web
#. openerp-web
@ -1607,7 +1607,7 @@ msgstr "Brisanje podatkovne zbirke"
#: code:addons/web/static/src/xml/base.xml:445
#, python-format
msgid "Powered by"
msgstr "Poganja ga"
msgstr "Powered by"
#. module: web
#. openerp-web
@ -1715,7 +1715,7 @@ msgstr "Nabor znakov:"
#: code:addons/web/static/src/xml/base.xml:1808
#, python-format
msgid "Lines to skip"
msgstr "Vrstice za preskočit"
msgstr "Preskočene vrstice"
#. module: web
#. openerp-web
@ -1779,7 +1779,7 @@ msgstr "Shrani kot:"
#: code:addons/web/static/src/js/search.js:927
#, python-format
msgid "Filter on: %s"
msgstr "Filtriraj po: %s"
msgstr "Filter : %s"
#. module: web
#. openerp-web
@ -1830,7 +1830,7 @@ msgstr "je"
#: code:addons/web/static/src/js/data_export.js:6
#, python-format
msgid "Export Data"
msgstr "Izvozi podatke"
msgstr "Izvoz podatkov"
#. module: web
#. openerp-web
@ -1868,7 +1868,7 @@ msgstr "Ustavi"
#: code:addons/web/static/src/xml/base.xml:225
#, python-format
msgid "Database:"
msgstr "Podatkovna baza"
msgstr "Podatkovna zbirka:"
#. module: web
#. openerp-web
@ -1883,7 +1883,7 @@ msgstr "Nalaganje..."
#: code:addons/web/static/src/xml/base.xml:1853
#, python-format
msgid "Name:"
msgstr "Naziv:"
msgstr "Ime:"
#. module: web
#. openerp-web
@ -2069,14 +2069,14 @@ msgstr "V redu"
#: code:addons/web/static/src/js/views.js:1162
#, python-format
msgid "Uploading..."
msgstr "Pošiljanje ..."
msgstr "Nalaganje..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:125
#, python-format
msgid "Load Demonstration data:"
msgstr "Naloži demonstracijske podatke:"
msgstr "Naloži demo podatke:"
#. module: web
#. openerp-web
@ -2122,7 +2122,7 @@ msgstr "Opozorilo"
#: code:addons/web/static/src/xml/base.xml:547
#, python-format
msgid "Edit SearchView"
msgstr "Urejanje pogleda"
msgstr "Urejanje iskalnega pogleda"
#. module: web
#. openerp-web
@ -2157,7 +2157,7 @@ msgstr "Potrdi"
#: code:addons/web/static/src/js/data_export.js:126
#, python-format
msgid "Please enter save field list name"
msgstr "Prosimo, vnesite ime datoteke za varnostno kopiranje"
msgstr "Vnesite ime seznama"
#. module: web
#. openerp-web
@ -2186,7 +2186,7 @@ msgstr "Ni možno spremeniti vrednost %s v vsebino"
#: code:addons/web/static/src/xml/base.xml:541
#, python-format
msgid "Fields View Get"
msgstr "Polja pogled - opis"
msgstr "Fields View Get"
#. module: web
#. openerp-web
@ -2216,7 +2216,7 @@ msgstr "Gumb"
#: code:addons/web/static/src/xml/base.xml:418
#, python-format
msgid "OpenERP is a trademark of the"
msgstr "OpenERP je blagovna znamka"
msgstr "OpenERP is a trademark of the"
#. module: web
#. openerp-web
@ -2244,7 +2244,7 @@ msgstr "napačno"
#: code:addons/web/static/src/xml/base.xml:404
#, python-format
msgid "About OpenERP"
msgstr "O OpenERP-u"
msgstr "About OpenERP"
#. module: web
#. openerp-web
@ -2442,7 +2442,7 @@ msgstr "Uredi delovni proces"
#: code:addons/web/static/src/js/views.js:1171
#, python-format
msgid "Do you really want to delete this attachment ?"
msgstr "Res želite brisati ti prilogo?"
msgstr "Res želite brisati to prilogo?"
#. module: web
#. openerp-web
@ -2565,14 +2565,14 @@ msgstr "Odstrani"
#: code:addons/web/static/src/xml/base.xml:1062
#, python-format
msgid "Select date"
msgstr "Izberi datum"
msgstr "Izberite datum"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1249
#, python-format
msgid "Search %(field)s for: %(value)s"
msgstr "Išči %(field)s for: %(value)s"
msgstr "Išči %(field)s v: %(value)s"
#. module: web
#. openerp-web
@ -2600,7 +2600,7 @@ msgstr "GNU Affero General Public License"
#: code:addons/web/static/src/xml/base.xml:1795
#, python-format
msgid "Separator:"
msgstr "Ločitelj:"
msgstr "Ločilo:"
#. module: web
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahmet Altınışık <Unknown>\n"
"PO-Revision-Date: 2013-02-15 20:45+0000\n"
"Last-Translator: Hasan Yılmaz <iletisim@hasanyilmaz.net>\n"
"Language-Team: Turkish <tr@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-22 07:38+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 05:40+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: web
#. openerp-web
@ -59,7 +59,7 @@ msgstr "az ya da eşittir"
#: code:addons/web/static/src/js/chrome.js:393
#, python-format
msgid "Please enter your previous password"
msgstr ""
msgstr "Lütfen önceki şifrenizi girin"
#. module: web
#. openerp-web
@ -82,28 +82,28 @@ msgstr "Ana şifreyi değiştir."
#: code:addons/web/static/src/js/chrome.js:491
#, python-format
msgid "Do you really want to delete the database: %s ?"
msgstr ""
msgstr "Gerçekten %s veritabanını SİLMEK istiyor musunuz?"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:1398
#, python-format
msgid "Search %(field)s at: %(value)s"
msgstr "Search %(field)s at: %(value)s"
msgstr "Armama %(field)s at: %(value)s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:537
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Erişim Reddedildi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:5183
#, python-format
msgid "Uploading error"
msgstr ""
msgstr "Yükleme hatası"
#. module: web
#. openerp-web
@ -126,7 +126,7 @@ msgstr "Veritabanı Yedekle"
#: code:addons/web/static/src/js/views.js:463
#, python-format
msgid "%(view_type)s view"
msgstr ""
msgstr "%(view_type)s ekranı"
#. module: web
#. openerp-web
@ -134,14 +134,14 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:53
#, python-format
msgid "'%s' is not a valid date"
msgstr ""
msgstr "'%s' geçerli bir tarih değil"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1837
#, python-format
msgid "Here is a preview of the file we could not import:"
msgstr "İçeaktaramadığımız dosyanın önizlemesi:"
msgstr "İçe-aktarılamıyan dosyanın önizlemesi:"
#. module: web
#. openerp-web
@ -161,7 +161,7 @@ msgstr "Dosya"
#: code:addons/web/controllers/main.py:826
#, python-format
msgid "You cannot leave any password empty."
msgstr ""
msgstr "Şifreleri boş bırkamazsınız."
#. module: web
#. openerp-web
@ -213,15 +213,14 @@ msgstr "Son Değiştirme tarihi:"
#: code:addons/web/static/src/js/search.js:1459
#, python-format
msgid "M2O search fields do not currently handle multiple default values"
msgstr ""
"Çoktan teke arama alanları henüz çoklu öntanımlı değerleri desteklemiyor"
msgstr "M2O arama alanları henüz çoklu öntanımlı değerleri desteklemiyor"
#. 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 "'%s' widget tipi uygulanmamış"
#. module: web
#. openerp-web
@ -250,7 +249,7 @@ msgstr "(yazı yok)"
#: code:addons/web/static/src/js/formats.js:282
#, python-format
msgid "'%s' is not a correct time"
msgstr ""
msgstr "'%s' geçersiz saat biçimi"
#. module: web
#. openerp-web
@ -271,7 +270,7 @@ msgstr "Yeni Parola:"
#: code:addons/web/static/src/xml/base.xml:610
#, python-format
msgid "Attachment :"
msgstr ""
msgstr "Ek :"
#. module: web
#. openerp-web
@ -313,7 +312,7 @@ msgstr "Özel Filtreler"
#: code:addons/web/static/src/xml/base.xml:1336
#, python-format
msgid "Button Type:"
msgstr "Buton Tipi:"
msgstr "Buton Türü:"
#. module: web
#. openerp-web
@ -327,7 +326,7 @@ msgstr "OpenERP SA Company"
#: code:addons/web/static/src/js/search.js:1553
#, python-format
msgid "Custom Filter"
msgstr "Özel Süzgeç"
msgstr "Özel Filtre"
#. module: web
#. openerp-web
@ -356,7 +355,7 @@ msgstr "Parolayı Değiştir"
#: code:addons/web/static/src/js/view_form.js:3411
#, python-format
msgid "View type '%s' is not supported in One2Many."
msgstr ""
msgstr "'%s' ekran (view) tipi one2many için desteklenmiyor."
#. module: web
#. openerp-web
@ -371,7 +370,7 @@ msgstr "İndir"
#: code:addons/web/static/src/js/formats.js:266
#, python-format
msgid "'%s' is not a correct datetime"
msgstr ""
msgstr "'%s' geçerli bir tarih saat biçimi değil"
#. module: web
#. openerp-web
@ -385,7 +384,7 @@ msgstr "Grup"
#: code:addons/web/static/src/xml/base.xml:927
#, python-format
msgid "Unhandled widget"
msgstr "işlenmemiş parçacık"
msgstr "İşlenmemiş parçacık"
#. module: web
#. openerp-web
@ -399,13 +398,13 @@ msgstr "Seçim:"
#: code:addons/web/static/src/js/view_form.js:871
#, python-format
msgid "The following fields are invalid:"
msgstr ""
msgstr "Geçersiz alanlar:"
#. module: web
#: code:addons/web/controllers/main.py:847
#, python-format
msgid "Languages"
msgstr ""
msgstr "Diller"
#. module: web
#. openerp-web
@ -426,7 +425,7 @@ msgstr "İçe aktar"
#: code:addons/web/static/src/js/chrome.js:543
#, python-format
msgid "Could not restore the database"
msgstr ""
msgstr "Veritabanı geri yüklenemedi"
#. module: web
#. openerp-web
@ -440,7 +439,7 @@ msgstr "Dosya yükle"
#: code:addons/web/static/src/js/view_form.js:3804
#, python-format
msgid "Action Button"
msgstr "Eylem Butonu"
msgstr "İşlem Butonu"
#. module: web
#. openerp-web
@ -483,7 +482,7 @@ msgstr "(%d) Yükleniyor"
#: code:addons/web/static/src/js/search.js:1114
#, python-format
msgid "GroupBy"
msgstr "Grupla"
msgstr "Gruplaİle"
#. module: web
#. openerp-web
@ -525,7 +524,7 @@ msgstr "bir dakika önce"
#: code:addons/web/static/src/xml/base.xml:851
#, python-format
msgid "Condition:"
msgstr "Durum:"
msgstr "Koşul:"
#. module: web
#. openerp-web
@ -539,7 +538,7 @@ msgstr "Desteklenmeyen operatör %s alan adında %s"
#: code:addons/web/static/src/js/formats.js:242
#, python-format
msgid "'%s' is not a correct float"
msgstr ""
msgstr "'%s' geçersiz bir float"
#. module: web
#. openerp-web
@ -553,21 +552,21 @@ msgstr "Onarıldı"
#: code:addons/web/static/src/js/view_list.js:394
#, python-format
msgid "%d-%d of %d"
msgstr ""
msgstr "%d-%d / %d"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:2868
#, python-format
msgid "Create and Edit..."
msgstr "Oluştur ve düzenle..."
msgstr "Oluştur ve Düzenle..."
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/pyeval.js:731
#, python-format
msgid "Unknown nonliteral type "
msgstr ""
msgstr "Bilinmeyen (nonliteral) tipi "
#. module: web
#. openerp-web
@ -595,7 +594,7 @@ msgstr "İş Akışı'nı Yazdır"
#: code:addons/web/static/src/js/chrome.js:396
#, python-format
msgid "Please confirm your new password"
msgstr ""
msgstr "Lütfen yeni şifrenizi onaylayın"
#. module: web
#. openerp-web
@ -616,7 +615,7 @@ msgstr "Daha ayrıntılı bilgi için burayı ziyaret edin"
#: code:addons/web/static/src/xml/base.xml:1859
#, python-format
msgid "Add All Info..."
msgstr "Bütün bilgiyi ekle..."
msgstr "Bütün Bilgisini Ekle..."
#. module: web
#. openerp-web
@ -644,7 +643,7 @@ msgstr "Model %s Alanları"
#: code:addons/web/static/src/js/view_list.js:893
#, python-format
msgid "Setting 'id' attribute on existing record %s"
msgstr ""
msgstr "Geçerli kayıt %s nin 'id' özeliği ayarlanıyor"
#. module: web
#. openerp-web
@ -682,7 +681,7 @@ msgstr "Filitreyi Kaydet"
#: code:addons/web/static/src/xml/base.xml:1344
#, python-format
msgid "Action ID:"
msgstr "Eylem ID:"
msgstr "İşelme ID:"
#. module: web
#. openerp-web
@ -690,20 +689,21 @@ msgstr "Eylem ID:"
#, python-format
msgid "Your user's preference timezone does not match your browser timezone:"
msgstr ""
"Kullanıcınızın saat dilimi seçimi tarayıcınızın saat diliminden farklı:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:1223
#, python-format
msgid "Field '%s' specified in view could not be found."
msgstr ""
msgstr "Ekranda tanımlanan '%s' alanı bulunamıyor."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1756
#, python-format
msgid "Saved exports:"
msgstr "Kaydedilmiş Dışa Aktarımlar:"
msgstr "Kaydedilmiş Dış-Aktarımlar:"
#. module: web
#. openerp-web
@ -724,7 +724,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 "Veritabanı Kopyalandı."
#. module: web
#. openerp-web
@ -753,7 +753,7 @@ msgstr "Farklı Kaydet"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:3
#, python-format
msgid "00:00:00"
msgstr ""
msgstr "00:00:00"
#. module: web
#. openerp-web
@ -781,7 +781,7 @@ msgstr "Dosyanın başlık satırı varmı ?"
#: code:addons/web/static/src/js/view_list.js:327
#, python-format
msgid "Unlimited"
msgstr "Sınırsız"
msgstr "Limitsiz"
#. module: web
#. openerp-web
@ -798,7 +798,7 @@ msgstr "Uyarı, kayıt değiştirildi, değişiklikleriniz kaybolacaklar."
#: code:addons/web/static/src/js/view_form.js:2904
#, python-format
msgid "Search: "
msgstr "Ara: "
msgstr "Arama: "
#. module: web
#. openerp-web
@ -819,7 +819,7 @@ msgstr "Sonlandırıcı:"
#: code:addons/web/static/src/xml/base.xml:462
#, python-format
msgid "Browser's timezone"
msgstr ""
msgstr "Tarayıcınızın saat dilimi"
#. module: web
#. openerp-web
@ -833,7 +833,7 @@ msgstr "Filtre adı"
#: code:addons/web/static/src/xml/base.xml:1464
#, python-format
msgid "-- Actions --"
msgstr "-- Eylemler --"
msgstr "-- İşlemler --"
#. module: web
#. openerp-web
@ -885,7 +885,7 @@ msgstr "Tercihler"
#: code:addons/web/static/src/js/view_form.js:436
#, python-format
msgid "Wrong on change format: %s"
msgstr ""
msgstr "Hatalı (on change) biçimi: %s"
#. module: web
#. openerp-web
@ -900,14 +900,14 @@ msgstr "Veritabanını Sil"
#: code:addons/web/static/src/xml/base.xml:466
#, python-format
msgid "Click here to change your user's timezone."
msgstr ""
msgstr "Saat diliminizi değiştirmek için için tıklayın."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:966
#, python-format
msgid "Modifiers:"
msgstr "Düzenleyenler"
msgstr "Değiştirenler:"
#. module: web
#. openerp-web
@ -946,21 +946,21 @@ msgstr "Kullanıcı Adı"
#: code:addons/web/static/src/js/chrome.js:481
#, python-format
msgid "Duplicating database"
msgstr ""
msgstr "Veritabanı Kopyalanıyor"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Password has been changed successfully"
msgstr ""
msgstr "Şifreniz değiştirildi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list_editable.js:788
#, python-format
msgid "The form's data can not be discarded"
msgstr ""
msgstr "Formdaki veriler iptal edilemiyor"
#. module: web
#. openerp-web
@ -974,7 +974,7 @@ msgstr "Hata Ayıklama Görünümü#"
#: code:addons/web/static/src/xml/base.xml:77
#, python-format
msgid "Log in"
msgstr "Giriş yap"
msgstr "Giriş"
#. module: web
#. openerp-web
@ -995,6 +995,10 @@ msgid ""
"\n"
"%s"
msgstr ""
"Yerel değerlendirme hatası\n"
"%s\n"
"\n"
"%s"
#. module: web
#. openerp-web
@ -1015,7 +1019,7 @@ msgstr "Alan listesini Kaydet"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:5
#, python-format
msgid "Start"
msgstr ""
msgstr "Başlat"
#. module: web
#. openerp-web
@ -1036,7 +1040,7 @@ msgstr "Oluşturma Tarihi:"
#: code:addons/web/controllers/main.py:835
#, python-format
msgid "Error, password not changed !"
msgstr ""
msgstr "Hata, şifre değiştirilemedi !"
#. module: web
#. openerp-web
@ -1058,14 +1062,14 @@ msgstr "/web/binary/upload_attachment"
#: code:addons/web/static/src/js/chrome.js:563
#, python-format
msgid "Changed Password"
msgstr ""
msgstr "Parola Değişti"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:1431
#, python-format
msgid "Search"
msgstr "Ara"
msgstr "Arama"
#. module: web
#. openerp-web
@ -1092,14 +1096,14 @@ msgstr "Yedekle"
#: code:addons/web/static/src/js/dates.js:80
#, python-format
msgid "'%s' is not a valid time"
msgstr ""
msgstr "'%s' geçerli bir zaman biçimi değil"
#. 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' geçerli bir tarih biçimi değil"
#. module: web
#. openerp-web
@ -1153,7 +1157,7 @@ msgstr "Son Değiştiren:"
#: code:addons/web/static/src/xml/base.xml:470
#, python-format
msgid "Timezone mismatch"
msgstr ""
msgstr "Saat dilimi uyumsuzluğu"
#. module: web
#. openerp-web
@ -1181,7 +1185,7 @@ msgstr "Dosya biçimini kontrol edin"
#: code:addons/web/static/src/xml/base.xml:1718
#, python-format
msgid "Name"
msgstr "İsim"
msgstr "Adı"
#. module: web
#. openerp-web
@ -1221,7 +1225,7 @@ msgstr "Gelişmiş Filtre Ekle"
#: code:addons/web/controllers/main.py:828
#, python-format
msgid "The new password and its confirmation must be identical."
msgstr ""
msgstr "Yeni şifre ve şifre tekrarı aynı olmalı"
#. module: web
#. openerp-web
@ -1236,7 +1240,7 @@ msgstr "Veritabanını Geri Yükle"
#: code:addons/web/static/src/js/chrome.js:644
#, python-format
msgid "Login"
msgstr ""
msgstr "Kullanıcı Adı:"
#. module: web
#. openerp-web
@ -1272,14 +1276,14 @@ msgstr "Çıkış Yap"
#: code:addons/web/static/src/js/search.js:1090
#, python-format
msgid "Group by: %s"
msgstr "Grupla : %s"
msgstr "Grupla ile : %s"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_form.js:153
#, python-format
msgid "No data provided."
msgstr ""
msgstr "Hiç veri sağlanmadı."
#. module: web
#. openerp-web
@ -1350,14 +1354,14 @@ 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 "Şifre ve doğrulaması uyuşmuyor."
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:441
#, python-format
msgid "Edit Company data"
msgstr ""
msgstr "Şirket Bilgilerini düzenle"
#. module: web
#. openerp-web
@ -1396,7 +1400,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:394
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web
#. openerp-web
@ -1410,7 +1414,7 @@ msgstr ".CSV Dosyasından veri al"
#: code:addons/web/static/src/js/chrome.js:644
#, python-format
msgid "No database selected !"
msgstr ""
msgstr "Veritabanı Seçilmedi !"
#. module: web
#. openerp-web
@ -1424,7 +1428,7 @@ msgstr "(%d kayıt)"
#: code:addons/web/static/src/xml/base.xml:970
#, python-format
msgid "Change default:"
msgstr "Varsayılanı değiştir:"
msgstr "Öntanılıyı değiştir:"
#. module: web
#. openerp-web
@ -1448,7 +1452,7 @@ msgstr "eşittir"
#: code:addons/web/static/src/js/views.js:1500
#, python-format
msgid "Could not serialize XML"
msgstr ""
msgstr "XML serileştirilemedi"
#. module: web
#. openerp-web
@ -1553,14 +1557,14 @@ msgstr "Ağaç"
#: code:addons/web/controllers/main.py:750
#, python-format
msgid "Could not drop database !"
msgstr ""
msgstr "Veritabanı Silinemedi !"
#. 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' geçerli bir tamsayı (interger) değil"
#. module: web
#. openerp-web
@ -1581,7 +1585,7 @@ msgstr "Bilinmeyen alan %s alan adında %s"
#: code:addons/web/static/src/js/views.js:1466
#, python-format
msgid "Node [%s] is not a JSONified XML node"
msgstr ""
msgstr "[%s] düğümü JSONlaştırılmış XML düğümü değil"
#. module: web
#. openerp-web
@ -1595,7 +1599,7 @@ msgstr "Gelişmiş Arama..."
#: code:addons/web/static/src/js/chrome.js:499
#, python-format
msgid "Dropping database"
msgstr ""
msgstr "Veritabanı Siliniyor"
#. module: web
#. openerp-web
@ -1639,7 +1643,7 @@ msgstr "Boy:"
#: code:addons/web/static/src/xml/base.xml:1824
#, python-format
msgid "--- Don't Import ---"
msgstr "--- İçeri Alma ---"
msgstr "--- İçeri Aktarma ---"
#. module: web
#. openerp-web
@ -1660,7 +1664,7 @@ msgstr "%d yıl önce"
#: code:addons/web/static/src/js/view_list.js:1040
#, python-format
msgid "Unknown m2m command %s"
msgstr ""
msgstr "Bilinmeyen m2m komutu %s"
#. module: web
#. openerp-web
@ -1683,7 +1687,7 @@ msgstr "Yeni Veritaban adı:"
#: code:addons/web/static/src/js/chrome.js:394
#, python-format
msgid "Please enter your new password"
msgstr ""
msgstr "Lütfen yeni parolanızı girin"
#. module: web
#. openerp-web
@ -1711,7 +1715,7 @@ msgstr "Kodlama:"
#: code:addons/web/static/src/xml/base.xml:1808
#, python-format
msgid "Lines to skip"
msgstr "atlanacak satırlar"
msgstr "Atlanacak satırlar"
#. module: web
#. openerp-web
@ -1768,14 +1772,14 @@ msgstr "JS Testleri"
#: code:addons/web/static/src/xml/base.xml:1750
#, python-format
msgid "Save as:"
msgstr "Save as:"
msgstr "Farklı kaydet:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/search.js:927
#, python-format
msgid "Filter on: %s"
msgstr "Filterele: %s"
msgstr "Filtrelede: %s"
#. module: web
#. openerp-web
@ -1797,7 +1801,7 @@ msgstr "Alanları Göster"
#: code:addons/web/static/src/xml/base.xml:330
#, python-format
msgid "Confirm New Password:"
msgstr ""
msgstr "Yeni Parolayı Onaylayın:"
#. module: web
#. openerp-web
@ -1833,14 +1837,14 @@ msgstr "Veri Dışaaktar"
#: code:addons/web/static/src/xml/base.xml:962
#, python-format
msgid "Domain:"
msgstr "Alan:"
msgstr "Domain:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:834
#, python-format
msgid "Default:"
msgstr "Varsayılan:"
msgstr "Öntanımlı:"
#. module: web
#. openerp-web
@ -1855,7 +1859,7 @@ msgstr "OpenERP"
#: code:addons/web/doc/module/static/src/xml/web_example.xml:8
#, python-format
msgid "Stop"
msgstr ""
msgstr "Durdur"
#. module: web
#. openerp-web
@ -1879,7 +1883,7 @@ msgstr "Yükleniyor ..."
#: code:addons/web/static/src/xml/base.xml:1853
#, python-format
msgid "Name:"
msgstr "İsim:"
msgstr "Adı:"
#. module: web
#. openerp-web
@ -1893,7 +1897,7 @@ msgstr "Hakkında"
#: code:addons/web/static/src/xml/base.xml:1431
#, python-format
msgid "Search Again"
msgstr "Yeniden Ara"
msgstr "Yeniden Arama"
#. module: web
#. openerp-web
@ -1932,7 +1936,7 @@ msgstr ""
#: code:addons/web/static/src/xml/base.xml:537
#, python-format
msgid "Set Defaults"
msgstr "Varsayılanları Ayarla"
msgstr "Öntanımlı Ayarla"
#. module: web
#. openerp-web
@ -1967,14 +1971,14 @@ msgstr "Filtre Adı:"
#: code:addons/web/static/src/xml/base.xml:946
#, python-format
msgid "Type:"
msgstr "Tip:"
msgstr "Türü:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:538
#, python-format
msgid "Incorrect super-administrator password"
msgstr ""
msgstr "Geçersiz super-yönetici şifresi"
#. module: web
#. openerp-web
@ -2016,6 +2020,7 @@ msgid ""
"The type of the field '%s' must be a many2many field with a relation to "
"'ir.attachment' model."
msgstr ""
"'%s' alanı 'ir.attachment' modeline many2many ile bağlı bir tipte olmalı"
#. module: web
#. openerp-web
@ -2037,7 +2042,7 @@ msgstr "Ekle: "
#: code:addons/web/static/src/xml/base.xml:1858
#, python-format
msgid "Quick Add"
msgstr "Hızlı ekle"
msgstr "Hızlı Ekle"
#. module: web
#. openerp-web
@ -2078,7 +2083,7 @@ msgstr "Örnek verileri yükle:"
#: code:addons/web/static/src/xml/base.xml:615
#, python-format
msgid "Created by :"
msgstr ""
msgstr "Oluşturan:"
#. module: web
#. openerp-web
@ -2086,7 +2091,7 @@ msgstr ""
#: code:addons/web/static/src/js/dates.js:26
#, python-format
msgid "'%s' is not a valid datetime"
msgstr ""
msgstr "'%s' geçersiz bir tarih saat değeri"
#. module: web
#. openerp-web
@ -2166,14 +2171,14 @@ msgstr "\"%s\" İndir"
#: code:addons/web/static/src/js/view_form.js:326
#, python-format
msgid "New"
msgstr ""
msgstr "Yeni"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1767
#, python-format
msgid "Can't convert value %s to context"
msgstr ""
msgstr "%s değeri bağlama dönüştürülemiyor"
#. module: web
#. openerp-web
@ -2246,13 +2251,13 @@ msgstr "OpenERP Hakkında"
#: code:addons/web/static/src/js/formats.js:297
#, python-format
msgid "'%s' is not a correct date, datetime nor time"
msgstr ""
msgstr "'%s' geçerli bir tarih, saat ya da tarih saat değeri değil"
#. module: web
#: code:addons/web/controllers/main.py:1264
#, python-format
msgid "No content found for field '%s' on '%s:%s'"
msgstr ""
msgstr "'%s' alanı için içerik '%s:%s' bulunamadı"
#. module: web
#. openerp-web
@ -2280,7 +2285,7 @@ msgstr "Veritabanlarını Yönet"
#: code:addons/web/static/src/js/pyeval.js:765
#, python-format
msgid "Evaluation Error"
msgstr ""
msgstr "Değerlendirme Hatası"
#. module: web
#. openerp-web
@ -2313,7 +2318,7 @@ msgstr "Hayır"
#: code:addons/web/static/src/js/formats.js:309
#, python-format
msgid "'%s' is not convertible to date, datetime nor time"
msgstr ""
msgstr "'%s' tarih, tarihsaat veya saat biçimine çevrilemiyor"
#. module: web
#. openerp-web
@ -2373,14 +2378,14 @@ msgstr "Yedeklenmiş"
#: code:addons/web/static/src/xml/base.xml:1610
#, python-format
msgid "Use by default"
msgstr "Öntanımlı değer olarak kullan"
msgstr "Öntanımlı kullan"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/view_list.js:1348
#, python-format
msgid "%s (%d)"
msgstr ""
msgstr "%s (%d)"
#. module: web
#. openerp-web
@ -2408,7 +2413,7 @@ msgstr "Parçacık:"
#: code:addons/web/static/src/xml/base.xml:548
#, python-format
msgid "Edit Action"
msgstr "Eylemi Düzenle"
msgstr "İşlemi Düzenle"
#. module: web
#. openerp-web
@ -2422,7 +2427,7 @@ msgstr "ID:"
#: code:addons/web/static/src/xml/base.xml:870
#, python-format
msgid "Only you"
msgstr "sadece sen"
msgstr "Sadece sen"
#. module: web
#. openerp-web
@ -2443,7 +2448,7 @@ msgstr "Gerçekten bu eki silmek istediğinizden emin misiniz?"
#: code:addons/web/static/src/js/views.js:840
#, python-format
msgid "Technical Translation"
msgstr ""
msgstr "Terim Çevirileri"
#. module: web
#. openerp-web
@ -2457,21 +2462,21 @@ msgstr "Alan:"
#: code:addons/web/static/src/xml/base.xml:620
#, python-format
msgid "Modified by :"
msgstr ""
msgstr "Değiştiren :"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome.js:499
#, python-format
msgid "The database %s has been dropped"
msgstr ""
msgstr "Veritabanu %s silindi"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:460
#, python-format
msgid "User's timezone"
msgstr ""
msgstr "Kullanıcı saat-dilimi"
#. module: web
#. openerp-web
@ -2500,7 +2505,7 @@ msgstr "Özel:"
#, python-format
msgid ""
"The old password you provided is incorrect, your password was not changed."
msgstr ""
msgstr "Eski şifrenizi yanlış girdiniz, şifreniz değiştirilemedi."
#. module: web
#. openerp-web
@ -2528,7 +2533,7 @@ msgstr "Kaydet & Kapat"
#: code:addons/web/static/src/js/view_form.js:2845
#, python-format
msgid "Search More..."
msgstr "Daha fazla ara..."
msgstr "Daha Fazla Ara..."
#. module: web
#. openerp-web
@ -2559,7 +2564,7 @@ msgstr "Kaldır"
#: code:addons/web/static/src/xml/base.xml:1062
#, python-format
msgid "Select date"
msgstr "Tarihi Seç"
msgstr "Tarihi seç"
#. module: web
#. openerp-web

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,9 @@ _logger = logging.getLogger(__name__)
class AuthenticationError(Exception):
pass
class SessionExpiredException(Exception):
pass
class Service(object):
def __init__(self, session, service_name):
self.session = session
@ -82,7 +85,7 @@ class OpenERPSession(object):
self.jsonp_requests = {} # FIXME use a LRU
def send(self, service_name, method, *args):
code_string = "warning -- %s\n\n%s"
code_string = u"warning -- %s\n\n%s"
try:
return openerp.netsvc.dispatch_rpc(service_name, method, args)
except openerp.osv.osv.except_osv, e:
@ -92,13 +95,13 @@ class OpenERPSession(object):
except openerp.exceptions.AccessError, e:
raise xmlrpclib.Fault(code_string % ("AccessError", e), '')
except openerp.exceptions.AccessDenied, e:
raise xmlrpclib.Fault('AccessDenied', str(e))
raise xmlrpclib.Fault('AccessDenied', openerp.tools.ustr(e))
except openerp.exceptions.DeferredException, e:
formatted_info = "".join(traceback.format_exception(*e.traceback))
raise xmlrpclib.Fault(openerp.tools.ustr(e.message), formatted_info)
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)
except Exception, e:
formatted_info = "".join(traceback.format_exception(*(sys.exc_info())))
raise xmlrpclib.Fault(openerp.tools.exception_to_unicode(e), formatted_info)
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)
def proxy(self, service):
return Service(self, service)
@ -152,6 +155,8 @@ class OpenERPSession(object):
:type model: str
:rtype: a model object
"""
if self._db == False:
raise SessionExpiredException("Session expired")
return Model(self, model)

View File

@ -894,7 +894,7 @@
var $toolbar = editor.$toolbar,
$group = $toolbar.children("div:last"),
wid = $main.width();
wid = /%/.test("" + options.width) ? options.width : $main.width();
// Resize the toolbar
var hgt = $group.offset().top + $group.outerHeight() - $toolbar.offset().top + 1;

View File

@ -0,0 +1,195 @@
Date.CultureInfo = {
/* Culture Name */
name: "am-ET",
englishName: "Amharic (Ethiopia)",
nativeName: "አምሃርኛ (ኢትዮጵያ)",
/* Day Name Strings */
dayNames: ["እሁድ", "ሰኞ", "ማክሰኞ", "ረብዑ", "ሃሙስ", "ዓርብ", "ቅዳሜ"],
abbreviatedDayNames: ["እሁድ", "ሰኞ", "ማክሰ", "ረብዑ", "ሃሙስ", "ዓርብ", "ቅዳሜ"],
shortestDayNames: ["እሁ", "ሰኞ", "ማክ", "ረብ", "ሃሙ", "ዓር", "ቅዳ"],
firstLetterDayNames: ["እ", "ሰ", "ማ", "ረ", "ሃ", "ዓ", "ቅ"],
/* Month Name Strings */
monthNames: ["ጃንዋሪ", "ፌብሩዋሪ", "ማርች", "አፕሪል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክቶበር", "ኖቬምበር", "ዲሴምበር"],
abbreviatedMonthNames: ["ጃንዋ", "ፌብሩ", "ማርች", "አፕሪ", "ሜይ", "ጁን", "ጁላይ", "ኦገስ", "ሴፕቴ", "ኦክቶ", "ኖቬም", "ዲሴም"],
/* AM/PM Designators */
amDesignator: "ከቀኑ",
pmDesignator: "ከለሊቱ",
firstDayOfWeek: 1,
twoDigitYearMax: 2029,
/**
* The dateElementOrder is based on the order of the
* format specifiers in the formatPatterns.DatePattern.
*
* Example:
<pre>
shortDatePattern dateElementOrder
------------------ ----------------
"M/d/yyyy" "mdy"
"dd/MM/yyyy" "dmy"
"yyyy-MM-dd" "ymd"
</pre>
*
* The correct dateElementOrder is required by the parser to
* determine the expected order of the date elements in the
* string being parsed.
*/
dateElementOrder: "dmy",
/* Standard date and time format patterns */
formatPatterns: {
shortDate: "dd/MM/yyyy",
longDate: "dd MMMM yyyy",
shortTime: "HH:mm",
longTime: "HH:mm:ss",
fullDateTime: "dd MMMM yyyy HH:mm:ss",
sortableDateTime: "yyyy-MM-ddTHH:mm:ss",
universalSortableDateTime: "yyyy-MM-dd HH:mm:ssZ",
rfc1123: "ddd, dd MMM yyyy HH:mm:ss GMT",
monthDay: "dd MMMM",
yearMonth: "MMMM yyyy"
},
/**
* NOTE: If a string format is not parsing correctly, but
* you would expect it parse, the problem likely lies below.
*
* The following regex patterns control most of the string matching
* within the parser.
*
* The Month name and Day name patterns were automatically generated
* and in general should be (mostly) correct.
*
* Beyond the month and day name patterns are natural language strings.
* Example: "next", "today", "months"
*
* These natural language string may NOT be correct for this culture.
* If they are not correct, please translate and edit this file
* providing the correct regular expression pattern.
*
* If you modify this file, please post your revised CultureInfo file
* to the Datejs Forum located at http://www.datejs.com/forums/.
*
* Please mark the subject of the post with [CultureInfo]. Example:
* Subject: [CultureInfo] Translated "da-DK" Danish(Denmark)
*
* We will add the modified patterns to the master source files.
*
* As well, please review the list of "Future Strings" section below.
*/
regexPatterns: {
jan: /^jan(uary)?/i,
feb: /^feb(ruary)?/i,
mar: /^mar(ch)?/i,
apr: /^apr(il)?/i,
may: /^may/i,
jun: /^jun(e)?/i,
jul: /^jul(y)?/i,
aug: /^aug(ust)?/i,
sep: /^sep(t(ember)?)?/i,
oct: /^oct(ober)?/i,
nov: /^nov(ember)?/i,
dec: /^dec(ember)?/i,
sun: /^su(n(day)?)?/i,
mon: /^mo(n(day)?)?/i,
tue: /^tu(e(s(day)?)?)?/i,
wed: /^we(d(nesday)?)?/i,
thu: /^th(u(r(s(day)?)?)?)?/i,
fri: /^fr(i(day)?)?/i,
sat: /^sa(t(urday)?)?/i,
future: /^next/i,
past: /^last|past|prev(ious)?/i,
add: /^(\+|aft(er)?|from|hence)/i,
subtract: /^(\-|bef(ore)?|ago)/i,
yesterday: /^yes(terday)?/i,
today: /^t(od(ay)?)?/i,
tomorrow: /^tom(orrow)?/i,
now: /^n(ow)?/i,
millisecond: /^ms|milli(second)?s?/i,
second: /^sec(ond)?s?/i,
minute: /^mn|min(ute)?s?/i,
hour: /^h(our)?s?/i,
week: /^w(eek)?s?/i,
month: /^m(onth)?s?/i,
day: /^d(ay)?s?/i,
year: /^y(ear)?s?/i,
shortMeridian: /^(a|p)/i,
longMeridian: /^(a\.?m?\.?|p\.?m?\.?)/i,
timezone: /^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,
ordinalSuffix: /^\s*(st|nd|rd|th)/i,
timeContext: /^\s*(\:|a(?!u|p)|p)/i
},
timezones: [{name:"UTC", offset:"-000"}, {name:"GMT", offset:"-000"}, {name:"EST", offset:"-0500"}, {name:"EDT", offset:"-0400"}, {name:"CST", offset:"-0600"}, {name:"CDT", offset:"-0500"}, {name:"MST", offset:"-0700"}, {name:"MDT", offset:"-0600"}, {name:"PST", offset:"-0800"}, {name:"PDT", offset:"-0700"}]
};
/********************
** Future Strings **
********************
*
* The following list of strings may not be currently being used, but
* may be incorporated into the Datejs library later.
*
* We would appreciate any help translating the strings below.
*
* If you modify this file, please post your revised CultureInfo file
* to the Datejs Forum located at http://www.datejs.com/forums/.
*
* Please mark the subject of the post with [CultureInfo]. Example:
* Subject: [CultureInfo] Translated "da-DK" Danish(Denmark)b
*
* English Name Translated
* ------------------ -----------------
* about about
* ago ago
* date date
* time time
* calendar calendar
* show show
* hourly hourly
* daily daily
* weekly weekly
* bi-weekly bi-weekly
* fortnight fortnight
* monthly monthly
* bi-monthly bi-monthly
* quarter quarter
* quarterly quarterly
* yearly yearly
* annual annual
* annually annually
* annum annum
* again again
* between between
* after after
* from now from now
* repeat repeat
* times times
* per per
* min (abbrev minute) min
* morning morning
* noon noon
* night night
* midnight midnight
* mid-night mid-night
* evening evening
* final final
* future future
* spring spring
* summer summer
* fall fall
* winter winter
* end of end of
* end end
* long long
* short short
*/

View File

@ -521,7 +521,7 @@ var py = {};
}
};
py.PY_getAttr = function (o, attr_name) {
return PY_ensurepy(o.__getattribute__(attr_name));
return PY_ensurepy(o.__getattribute__(attr_name),attr_name);
};
py.PY_str = function (o) {
var v = o.__str__();
@ -998,7 +998,7 @@ var py = {};
}
var t = py.PY_call(py.tuple);
for(var i=0; i<ar.length; ++i) {
t._values.push(PY_ensurepy(ar[i]));
t._values.push(PY_ensurepy(ar[i],i));
}
return t;
}
@ -1032,7 +1032,7 @@ var py = {};
if (!d.hasOwnProperty(k)) { continue; }
instance.__setitem__(
py.str.fromJSON(k),
PY_ensurepy(d[k]));
PY_ensurepy(d[k],k));
}
return instance;
},

View File

@ -81,7 +81,7 @@
}
.openerp .zebra tbody tr:nth-child(odd) td {
background-color: #f0f0fa;
background-color: #f0f0fa;
background-color: #efeff8;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
@ -90,7 +90,7 @@
background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
}
.openerp .zebra tbody tr:hover td {
background-color: #eeeeee;
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
background-image: -moz-linear-gradient(top, #eeeeee, #dedede);
@ -120,7 +120,7 @@
padding: 3px 12px;
font-size: 13px;
text-align: center;
background-color: #efefef;
background-color: #e3e3e3;
background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
@ -138,7 +138,7 @@
outline: none;
}
.openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover {
background-color: #f6f6f6;
background-color: #ececec;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
@ -151,7 +151,7 @@
.openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus {
border: 1px solid #80bfff;
background-position: 0;
background-color: #f6f6f6;
background-color: #ececec;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
@ -163,7 +163,7 @@
box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset;
}
.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active {
background-color: #e3e3e3;
background-color: #ececec;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
@ -224,7 +224,7 @@
-moz-border-radius: 2px 2px 0 0;
-webkit-border-radius: 2px 2px 0 0;
border-radius: 2px 2px 0 0;
background-color: #fcfcfc;
background-color: #ededed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
@ -307,7 +307,7 @@
right: 0;
bottom: 0;
text-shadow: 0 1px 1px #999999;
background-color: #b41616;
background-color: #8a0e0e;
background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
background-image: -webkit-linear-gradient(top, #b41616, #600606);
background-image: -moz-linear-gradient(top, #b41616, #600606);
@ -379,7 +379,7 @@
background: #dc5f59;
}
.openerp button.oe_highlight {
background-color: #df3f3f;
background-color: #c02c2c;
background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a));
background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a);
background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a);
@ -391,7 +391,7 @@
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset;
}
.openerp button.oe_highlight:hover {
background-color: #e25858;
background-color: #c63939;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b));
background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b);
background-image: -moz-linear-gradient(top, #e25858, #ab1b1b);
@ -400,7 +400,7 @@
background-image: linear-gradient(to bottom, #e25858, #ab1b1b);
}
.openerp button.oe_highlight:active {
background-color: #c52020;
background-color: #cb2121;
background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323));
background-image: -webkit-linear-gradient(top, #c52020, #d22323);
background-image: -moz-linear-gradient(top, #c52020, #d22323);
@ -417,7 +417,7 @@
font-weight: bold;
}
.openerp .oe_form_dirty button.oe_highlight_on_dirty {
background-color: #dc5f59;
background-color: #c74a44;
background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630));
background-image: -webkit-linear-gradient(top, #dc5f59, #b33630);
background-image: -moz-linear-gradient(top, #dc5f59, #b33630);
@ -694,7 +694,7 @@
padding: 2px 8px;
}
.openerp .oe_dropdown_menu > li:hover {
background-color: #f0f0fa;
background-color: #efeff8;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
@ -748,7 +748,7 @@
width: 200px;
}
.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover {
background-color: #f0f0fa;
background-color: #efeff8;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
@ -846,7 +846,7 @@
border: 1px solid #222222;
color: white;
margin: 0;
background-color: #b92020;
background-color: #8c1313;
background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606));
background-image: -webkit-linear-gradient(top, #b92020, #600606);
background-image: -moz-linear-gradient(top, #b92020, #600606);
@ -903,7 +903,7 @@
right: 0;
bottom: 0;
text-shadow: 0 1px 1px #999999;
background-color: #b41616;
background-color: #8a0e0e;
background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
background-image: -webkit-linear-gradient(top, #b41616, #600606);
background-image: -moz-linear-gradient(top, #b41616, #600606);
@ -1000,7 +1000,7 @@
width: 100%;
height: 32px;
background-color: #414141;
background-color: #646060;
background-color: #454343;
background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626));
background-image: -webkit-linear-gradient(top, #646060, #262626);
background-image: -moz-linear-gradient(top, #646060, #262626);
@ -1011,7 +1011,7 @@
.openerp .oe_topbar .oe_topbar_anonymous_login {
background-color: #dc5f59;
color: #eeeeee;
background-color: #fc8787;
background-color: #be4343;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fc8787), to(maroon));
background-image: -webkit-linear-gradient(top, #fc8787, maroon);
background-image: -moz-linear-gradient(top, #fc8787, maroon);
@ -1101,7 +1101,7 @@
color: #eeeeee;
}
.openerp .oe_topbar .oe_dropdown_menu li:hover {
background-color: #292929;
background-color: #212121;
background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919));
background-image: -webkit-linear-gradient(top, #292929, #191919);
background-image: -moz-linear-gradient(top, #292929, #191919);
@ -1242,8 +1242,6 @@
.openerp .oe_secondary_submenu {
padding: 2px 0 8px 0;
margin: 0;
width: 100%;
display: inline-block;
}
.openerp .oe_secondary_submenu li {
position: relative;
@ -1274,6 +1272,13 @@
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
}
.openerp .oe_secondary_submenu .oe_menu_text {
white-space: nowrap;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
max-width: 85%;
}
.openerp .oe_secondary_submenu .oe_menu_counter {
float: right;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
@ -1340,6 +1345,12 @@
border-right: 4px solid transparent;
border-top: 4px solid #4c4c4c;
}
.openerp .oe_secondary_submenu .oe_secondary_submenu {
margin-left: -20px;
}
.openerp .oe_secondary_submenu .oe_secondary_submenu li {
margin-left: 20px;
}
.openerp .oe_about {
background-color: white;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
@ -1366,7 +1377,7 @@
right: 0;
bottom: 0;
text-shadow: 0 1px 1px #999999;
background-color: #b41616;
background-color: #8a0e0e;
background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
background-image: -webkit-linear-gradient(top, #b41616, #600606);
background-image: -moz-linear-gradient(top, #b41616, #600606);
@ -1404,7 +1415,13 @@
display: inline-block;
overflow: hidden;
}
.openerp .oe_view_manager {
display: table;
height: inherit;
width: 100%;
}
.openerp .oe_view_manager .oe_view_manager_body {
display: table-row;
height: inherit;
}
.openerp .oe_view_manager .oe_view_manager_view_kanban {
@ -1583,7 +1600,7 @@
}
.openerp .oe_view_manager_current > .oe_view_manager_header {
border-bottom: 1px solid #cacaca;
background-color: #fcfcfc;
background-color: #ededed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
@ -2044,7 +2061,7 @@
background: none;
}
.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight {
background-color: #efefef;
background-color: #e3e3e3;
background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8);
background-image: -moz-linear-gradient(top, #efefef, #d8d8d8);
@ -2056,7 +2073,7 @@
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
}
.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active {
background-color: #e3e3e3;
background-color: #ececec;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6));
background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6);
background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6);
@ -2068,7 +2085,7 @@
box-shadow: none;
}
.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover {
background-color: #f6f6f6;
background-color: #ececec;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3));
background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3);
background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3);
@ -2137,7 +2154,7 @@
position: relative;
border-bottom: 1px solid #cacaca;
padding-left: 2px;
background-color: #fcfcfc;
background-color: #ededed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
@ -2572,7 +2589,7 @@
list-style-type: none;
margin: 0 -18px 0 0;
padding: 0;
background-color: #fcfcfc;
background-color: #ededed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
@ -2632,7 +2649,7 @@
transform: rotate(45deg);
}
.openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active {
background-color: #729fcf;
background-color: #5382b9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4));
background-image: -webkit-linear-gradient(top, #729fcf, #3465a4);
background-image: -moz-linear-gradient(top, #729fcf, #3465a4);
@ -2655,7 +2672,7 @@
cursor: pointer;
}
.openerp ul.oe_form_status_clickable li:hover {
background-color: #e8e8e8;
background-color: #d9d9d9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
@ -2667,7 +2684,7 @@
text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede;
}
.openerp ul.oe_form_status_clickable li:hover .arrow span {
background-color: #e8e8e8;
background-color: #d9d9d9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca));
background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca);
background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca);
@ -2679,7 +2696,7 @@
color: #7c7bad;
}
.openerp ul.oe_form_status_clickable li.oe_active:hover {
background-color: #4c85c2;
background-color: #3a699f;
background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d));
background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d);
background-image: -moz-linear-gradient(top, #4c85c2, #284d7d);
@ -2835,7 +2852,7 @@
padding: 1px 6px 3px;
}
.openerp .oe_list .oe_list_content .oe_group_header {
background-color: #fcfcfc;
background-color: #ededed;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede);
background-image: -moz-linear-gradient(top, #fcfcfc, #dedede);
@ -2872,8 +2889,8 @@
position: relative;
}
.openerp .oe_list_content th.oe_sortable div:after {
position: absolute;
right: 6px;
float: right;
margin-right: 6px;
content: "";
margin-top: 7px;
border-width: 0 4px 4px;
@ -2932,7 +2949,7 @@
}
.openerp .oe_list_content > tbody > tr:nth-child(odd) {
background-color: #f0f0fa;
background-color: #f0f0fa;
background-color: #efeff8;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6);
background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6);
@ -3078,7 +3095,6 @@
}
.kitten-mode-activated {
background-image: url(http://placekitten.com/g/1365/769);
background-size: cover;
background-attachment: fixed;
}
@ -3138,6 +3154,9 @@ div.ui-widget-overlay {
.openerp_ie .oe_form_field_boolean input {
background: white;
}
.openerp_ie .db_option_table .oe_form_field_selection {
width: auto;
}
.openerp_ie input[type='checkbox'] {
border: none;
background: none;
@ -3150,6 +3169,9 @@ div.ui-widget-overlay {
padding-top: 0;
padding-bottom: 0;
}
.openerp_ie .oe_view_manager_view_kanban {
display: table-cell;
}
.openerp_ie .oe_view_manager_buttons button.oe_write_full {
padding-top: 0;
padding-bottom: 0;
@ -3212,6 +3234,9 @@ div.ui-widget-overlay {
.openerp_ie .oe_topbar {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#646060', endColorstr='#262626');
}
.openerp_ie .ui-state-error, .openerp_ie .ui-widget-content .ui-state-error, .openerp_ie .ui-widget-header .ui-state-error {
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
.openerp_ie .oe_popup_form {
width: 99% !important;
}

View File

@ -42,7 +42,7 @@ $sheet-padding: 16px
@include box-shadow(none)
@mixin vertical-gradient($startColor: #555, $endColor: #333)
background-color: $startColor
background-color: mix($startColor, $endColor)
background-image: -webkit-gradient(linear, left top, left bottom, from($startColor), to($endColor)) /* Saf4+, Chrome */
background-image: -webkit-linear-gradient(top, $startColor, $endColor) /* Chrome 10+, Saf5.1+, iOS 5+ */
background-image: -moz-linear-gradient(top, $startColor, $endColor) /* FF3.6 */
@ -1009,8 +1009,6 @@ $sheet-padding: 16px
.oe_secondary_submenu
padding: 2px 0 8px 0
margin: 0
width: 100%
display: inline-block
li
position: relative
margin: 0
@ -1033,6 +1031,12 @@ $sheet-padding: 16px
text-shadow: 0 1px 1px rgba(0,0,0,0.2)
@include radius(4px)
@include box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.2))
.oe_menu_text
white-space: nowrap
overflow: hidden
display: inline-block
text-overflow: ellipsis
max-width: 85%
.oe_menu_counter
float: right
text-shadow: 0 1px 1px rgba(0,0,0,0.2)
@ -1080,6 +1084,10 @@ $sheet-padding: 16px
border-left: 4px solid transparent
border-right: 4px solid transparent
border-top: 4px solid #4c4c4c
.oe_secondary_submenu
margin-left: -20px
.oe_secondary_submenu li
margin-left: 20px
// }}}
// About openerp {{{
@ -1129,7 +1137,11 @@ $sheet-padding: 16px
// }}}
// ViewManager common {{{
.oe_view_manager
display: table
height: inherit
width: 100%
.oe_view_manager_body
display: table-row
height: inherit
.oe_view_manager_view_kanban
height: inherit
@ -2271,8 +2283,8 @@ $sheet-padding: 16px
th.oe_sortable div
position: relative
th.oe_sortable div:after
position: absolute
right: 6px
float: right
margin-right: 6px
content: ""
margin-top: 7px
border-width: 0 4px 4px
@ -2428,7 +2440,6 @@ $sheet-padding: 16px
// }}}
// Kitten Mode {{{
.kitten-mode-activated
background-image: url(http://placekitten.com/g/1365/769)
background-size: cover
background-attachment: fixed
>*
@ -2477,6 +2488,8 @@ div.ui-widget-overlay
font-style: italic !important
.oe_form_field_boolean input
background: #fff
.db_option_table .oe_form_field_selection
width: auto
input[type='checkbox']
border: none
background: none
@ -2488,6 +2501,8 @@ div.ui-widget-overlay
button.oe_highlight
padding-top: 0
padding-bottom: 0
.oe_view_manager_view_kanban
display: table-cell
.oe_view_manager_buttons
button.oe_write_full
padding-top: 0
@ -2538,6 +2553,8 @@ div.ui-widget-overlay
line-height: 1.7em
.oe_topbar
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#646060', endColorstr='#262626')
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false)
.oe_popup_form
width: 99% !important
.oe_form_label

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -42,6 +42,16 @@ instance.web.Notification = instance.web.Widget.extend({
}
});
instance.web.action_notify = function(element, action) {
element.do_notify(action.params.title, action.params.text, action.params.sticky);
};
instance.web.client_actions.add("action_notify", "instance.web.action_notify");
instance.web.action_warn = function(element, action) {
element.do_warn(action.params.title, action.params.text, action.params.sticky);
};
instance.web.client_actions.add("action_warn", "instance.web.action_warn");
/**
* The very minimal function everything should call to create a dialog
* in OpenERP Web Client.
@ -237,6 +247,11 @@ instance.web.CrashManager = instance.web.Class.extend({
if (!this.active) {
return;
}
// 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." }});
return;
}
if (error.data.fault_code) {
var split = ("" + error.data.fault_code).split('\n')[0].split(' -- ');
if (split.length > 1) {
@ -466,6 +481,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
self.do_action("reload");
},
},
_push_me: false,
};
self.do_action(client_action);
});
@ -607,6 +623,9 @@ instance.web.Login = instance.web.Widget.extend({
if ($.deparam.querystring().db) {
self.params.db = $.deparam.querystring().db;
}
if ($.param.fragment().token) {
self.params.token = $.param.fragment().token;
}
// used by dbmanager.do_create via internal client action
if (self.params.db && self.params.login && self.params.password) {
d = self.do_login(self.params.db, self.params.login, self.params.password);
@ -850,7 +869,7 @@ instance.web.Menu = instance.web.Widget.extend({
this.needaction_data = data;
_.each(this.needaction_data, function (item, menu_id) {
var $item = self.$secondary_menus.find('a[data-menu="' + menu_id + '"]');
$item.remove('oe_menu_counter');
$item.find('.oe_menu_counter').remove();
if (item.needaction_counter && item.needaction_counter > 0) {
$item.append(QWeb.render("Menu.needaction_counter", { widget : item }));
}
@ -1013,20 +1032,15 @@ instance.web.UserMenu = instance.web.Widget.extend({
if (!self.session.uid)
return;
var func = new instance.web.Model("res.users").get_func("read");
return func(self.session.uid, ["name", "company_id"]).then(function(res) {
return self.alive(func(self.session.uid, ["name", "company_id"])).then(function(res) {
var topbar_name = res.name;
if(instance.session.debug)
topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db);
if(res.company_id[0] > 1)
topbar_name = _.str.sprintf("%s (%s)", topbar_name, res.company_id[1]);
self.$el.find('.oe_topbar_name').text(topbar_name);
if(!instance.session.debug) {
self.rpc("/web/database/get_list", {}).done( function(result) {
if (result.length > 1) {
topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db);
}
self.$el.find('.oe_topbar_name').text(topbar_name);
});
if (!instance.session.debug) {
topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db);
}
var avatar_src = self.session.url('/web/binary/image', {model:'res.users', field: 'image_small', id: self.session.uid});
$avatar.attr('src', avatar_src);
@ -1034,6 +1048,9 @@ instance.web.UserMenu = instance.web.Widget.extend({
};
this.update_promise = this.update_promise.then(fct, fct);
},
on_menu_help: function() {
window.open('http://help.openerp.com', '_blank');
},
on_menu_logout: function() {
this.trigger('user_logout');
},
@ -1144,6 +1161,7 @@ instance.web.WebClient = instance.web.Client.extend({
return $.when(this._super()).then(function() {
if (jQuery.param !== undefined && jQuery.deparam(jQuery.param.querystring()).kitten !== undefined) {
$("body").addClass("kitten-mode-activated");
$("body").css("background-image", "url(" + instance.session.origin + "/web/static/src/img/back-enable.jpg" + ")");
if ($.blockUI) {
$.blockUI.defaults.message = '<img src="http://www.amigrave.com/kitten.gif">';
}
@ -1208,7 +1226,7 @@ instance.web.WebClient = instance.web.Client.extend({
},
logo_edit: function(ev) {
var self = this;
new instance.web.Model("res.users").get_func("read")(this.session.uid, ["company_id"]).then(function(res) {
new self.alive(instance.web.Model("res.users").get_func("read")(this.session.uid, ["company_id"])).then(function(res) {
self.rpc("/web/action/load", { action_id: "base.action_res_company_form" }).done(function(result) {
result.res_id = res['company_id'][0];
result.target = "new";
@ -1229,7 +1247,7 @@ instance.web.WebClient = instance.web.Client.extend({
},
check_timezone: function() {
var self = this;
return new instance.web.Model('res.users').call('read', [[this.session.uid], ['tz_offset']]).then(function(result) {
return self.alive(new instance.web.Model('res.users').call('read', [[this.session.uid], ['tz_offset']])).then(function(result) {
var user_offset = result[0]['tz_offset'];
var offset = -(new Date().getTimezoneOffset());
// _.str.sprintf()'s zero front padding is buggy with signed decimals, so doing it manually
@ -1305,8 +1323,9 @@ instance.web.WebClient = instance.web.Client.extend({
},
on_hashchange: function(event) {
var self = this;
var state = event.getState(true);
if (!_.isEqual(this._current_state, state)) {
var stringstate = event.getState(false);
if (!_.isEqual(this._current_state, stringstate)) {
var state = event.getState(true);
if(!state.action && state.menu_id) {
self.menu.has_been_loaded.done(function() {
self.menu.do_reload().done(function() {
@ -1318,13 +1337,13 @@ instance.web.WebClient = instance.web.Client.extend({
this.action_manager.do_load_state(state, !!this._current_state);
}
}
this._current_state = state;
this._current_state = stringstate;
},
do_push_state: function(state) {
this.set_title(state.title);
delete state.title;
var url = '#' + $.param(state);
this._current_state = _.clone(state);
this._current_state = $.deparam($.param(state), false); // stringify all values
$.bbq.pushState(url);
this.trigger('state_pushed', state);
},
@ -1334,9 +1353,10 @@ instance.web.WebClient = instance.web.Client.extend({
.then(function (result) {
return self.action_mutex.exec(function() {
if (options.needaction) {
result.context = new instance.web.CompoundContext(
result.context,
{search_default_message_unread: true});
result.context = new instance.web.CompoundContext(result.context, {
search_default_message_unread: true,
search_disable_custom_filters: true,
});
}
var completed = $.Deferred();
$.when(self.action_manager.do_action(result, {
@ -1357,13 +1377,9 @@ instance.web.WebClient = instance.web.Client.extend({
});
},
set_content_full_screen: function(fullscreen) {
if (fullscreen) {
$(".oe_webclient", this.$el).addClass("oe_content_full_screen");
$("body").css({'overflow-y':'hidden'});
} else {
$(".oe_webclient", this.$el).removeClass("oe_content_full_screen");
$("body").css({'overflow-y':'scroll'});
}
$(document.body).css('overflow-y', fullscreen ? 'hidden' : 'scroll');
this.$('.oe_webclient').toggleClass(
'oe_content_full_screen', fullscreen);
},
has_uncommitted_changes: function() {
var $e = $.Event('clear_uncommitted_changes');

View File

@ -228,6 +228,42 @@ instance.web.ParentedMixin = {
isDestroyed : function() {
return this.__parentedDestroyed;
},
/**
Utility method to only execute asynchronous actions if the current
object has not been destroyed.
@param {$.Deferred} promise The promise representing the asynchronous
action.
@param {bool} [reject=false] If true, the returned promise will be
rejected with no arguments if the current
object is destroyed. If false, the
returned promise will never be resolved
or rejected.
@returns {$.Deferred} A promise that will mirror the given promise if
everything goes fine but will either be rejected
with no arguments or never resolved if the
current object is destroyed.
*/
alive: function(promise, reject) {
var def = $.Deferred();
var self = this;
promise.done(function() {
if (! self.isDestroyed()) {
if (! reject)
def.resolve.apply(def, arguments);
else
def.reject();
}
}).fail(function() {
if (! self.isDestroyed()) {
if (! reject)
def.reject.apply(def, arguments);
else
def.reject();
}
});
return def.promise();
},
/**
* Inform the object it should destroy itself, releasing any
* resource it could have reserved.
@ -495,16 +531,7 @@ instance.web.Controller = instance.web.Class.extend(instance.web.PropertiesMixin
return false;
},
rpc: function(url, data, options) {
var def = $.Deferred();
var self = this;
instance.session.rpc(url, data, options).done(function() {
if (!self.isDestroyed())
def.resolve.apply(def, arguments);
}).fail(function() {
if (!self.isDestroyed())
def.reject.apply(def, arguments);
});
return def.promise();
return this.alive(instance.session.rpc(url, data, options));
}
});

View File

@ -860,8 +860,16 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({
}
return completion.promise();
},
call_button: function (method, args) {
var id = args[0][0], index;
/**
* Invalidates caching of a record in the dataset to ensure the next read
* of that record will hit the server.
*
* Of use when an action is going to remote-alter a record which will then
* need to be reloaded, e.g. action button.
*
* @param {Object} id record to remove from the BDS's cache
*/
evict_record: function (id) {
for(var i=0, len=this.cache.length; i<len; ++i) {
var record = this.cache[i];
// if record we call the button upon is in the cache
@ -871,8 +879,15 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({
break;
}
}
},
call_button: function (method, args) {
this.evict_record(args[0][0]);
return this._super(method, args);
},
exec_workflow: function (id, signal) {
this.evict_record(id);
return this._super(id, signal);
},
alter_ids: function(n_ids) {
this._super(n_ids);
this.trigger("dataset_changed", n_ids);

View File

@ -166,9 +166,13 @@ instance.web.format_value = function (value, descriptor, value_if_empty) {
value = Math.abs(value);
pattern = '-' + pattern;
}
return _.str.sprintf(pattern,
Math.floor(value),
Math.round((value % 1) * 60));
var hour = Math.floor(value);
var min = Math.round((value % 1) * 60);
if (min == 60){
min = 0;
hour = hour + 1;
}
return _.str.sprintf(pattern, hour, min);
case 'many2one':
// name_get value format
return value[1] ? value[1].split("\n")[0] : value[1];

View File

@ -689,15 +689,14 @@ openerp.web.pyeval = function (instance) {
};
instance.web.pyeval.context = function () {
return {
uid: py.float.fromJSON(instance.session.uid),
return _.extend({
datetime: datetime,
context_today: context_today,
time: time,
relativedelta: relativedelta,
current_date: py.PY_call(
time.strftime, [py.str.fromJSON('%Y-%m-%d')]),
};
}, instance.session.user_context);
};
/**

View File

@ -127,41 +127,26 @@ my.InputView = instance.web.Widget.extend({
events: {
focus: function () { this.trigger('focused', this); },
blur: function () { this.$el.text(''); this.trigger('blurred', this); },
keydown: 'onKeydown'
keydown: 'onKeydown',
paste: 'onPaste',
},
getSelection: function () {
// get Text node
var root = this.$el[0].childNodes[0];
var root = this.el.childNodes[0];
if (!root || !root.textContent) {
// if input does not have a child node, or the child node is an
// empty string, then the selection can only be (0, 0)
return {start: 0, end: 0};
}
if (window.getSelection) {
var domRange = window.getSelection().getRangeAt(0);
assert(domRange.startContainer === root,
"selection should be in the input view");
assert(domRange.endContainer === root,
"selection should be in the input view");
return {
start: domRange.startOffset,
end: domRange.endOffset
}
} else if (document.selection) {
var ieRange = document.selection.createRange();
var rangeParent = ieRange.parentElement();
assert(rangeParent === root,
"selection should be in the input view");
var offsetRange = document.body.createTextRange();
offsetRange = offsetRange.moveToElementText(rangeParent);
offsetRange.setEndPoint("EndToStart", ieRange);
var start = offsetRange.text.length;
return {
start: start,
end: start + ieRange.text.length
}
var range = window.getSelection().getRangeAt(0);
assert(range.startContainer === root,
"selection should be in the input view");
assert(range.endContainer === root,
"selection should be in the input view");
return {
start: range.startOffset,
end: range.endOffset
}
throw new Error("Could not get caret position");
},
onKeydown: function (e) {
var sel;
@ -199,6 +184,50 @@ my.InputView = instance.web.Widget.extend({
}
break;
}
},
setCursorAtEnd: function () {
var sel = window.getSelection();
sel.removeAllRanges();
var range = document.createRange();
// in theory, range.selectNodeContents should work here. In practice,
// MSIE9 has issues from time to time, instead of selecting the inner
// text node it would select the reference node instead (e.g. in demo
// data, company news, copy across the "Company News" link + the title,
// from about half the link to half the text, paste in search box then
// hit the left arrow key, getSelection would blow up).
//
// Explicitly selecting only the inner text node (only child node at
// this point, though maybe we should assert that) avoiids the issue
range.selectNode(this.el.childNodes[0]);
range.collapse(false);
sel.addRange(range);
},
onPaste: function () {
// In MSIE and Webkit, it is possible to get various representations of
// the clipboard data at this point e.g.
// window.clipboardData.getData('Text') and
// event.clipboardData.getData('text/plain') to ensure we have a plain
// text representation of the object (and probably ensure the object is
// pastable as well, so nobody puts an image in the search view)
// (nb: since it's not possible to alter the content of the clipboard
// — at least in Webkit — to ensure only textual content is available,
// using this would require 1. getting the text data; 2. manually
// inserting the text data into the content; and 3. cancelling the
// paste event)
//
// But Firefox doesn't support the clipboard API (as of FF18)
// although it correctly triggers the paste event (Opera does not even
// do that) => implement lowest-denominator system where onPaste
// triggers a followup "cleanup" pass after the data has been pasted
setTimeout(function () {
// Read text content (ignore pasted HTML)
var data = this.$el.text();
// paste raw text back in
this.$el.empty().text(data);
// Set the cursor at the end of the text, so the cursor is not lost
// in some kind of error-spawning limbo.
this.setCursorAtEnd();
}.bind(this), 0);
}
});
my.FacetView = instance.web.Widget.extend({
@ -305,9 +334,22 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
* @param dataset
* @param view_id
* @param defaults
* @param hidden
* @param {Object} [options]
* @param {Boolean} [options.hidden=false] hide the search view
* @param {Boolean} [options.disable_custom_filters=false] do not load custom filters from ir.filters
*/
init: function(parent, dataset, view_id, defaults, hidden) {
init: function(parent, dataset, view_id, defaults, options) {
// Backward compatibility - Can be removed when forward porting
if (Object(options) !== options) {
options = {
hidden: !!options
};
}
// End of Backward compatibility
this.options = _.defaults(options || {}, {
hidden: false,
disable_custom_filters: false,
});
this._super(parent);
this.dataset = dataset;
this.model = dataset.model;
@ -319,8 +361,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
this.inputs = [];
this.controls = {};
this.hidden = !!hidden;
this.headless = this.hidden && !this.has_defaults;
this.headless = this.options.hidden && !this.has_defaults;
this.input_subviews = [];
@ -335,7 +376,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
.on('add change reset remove', this.proxy('do_search'))
.on('add change reset remove', this.proxy('renderFacets'));
if (this.hidden) {
if (this.options.hidden) {
this.$el.hide();
}
if (this.headless) {
@ -650,13 +691,13 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
// CustomFilters will be ready (and CustomFilters#filters will be
// correctly filled) by the time this method executes.
var custom_filters = this.custom_filters.filters;
if (!_(custom_filters).isEmpty()) {
if (!this.options.disable_custom_filters && !_(custom_filters).isEmpty()) {
// Check for any is_default custom filter
var personal_filter = _(custom_filters).find(function (filter) {
return filter.user_id && filter.is_default;
});
if (personal_filter) {
this.custom_filters.enable_filter(personal_filter, true);
this.custom_filters.toggle_filter(personal_filter, true);
return;
}
@ -664,7 +705,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
return !filter.user_id && filter.is_default;
});
if (global_filter) {
this.custom_filters.enable_filter(global_filter, true);
this.custom_filters.toggle_filter(global_filter, true);
return;
}
}
@ -1432,12 +1473,15 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
},
complete: function (needle) {
var self = this;
// TODO: context
// FIXME: "concurrent" searches (multiple requests, mis-ordered responses)
var context = instance.web.pyeval.eval(
'contexts', [this.view.dataset.get_context()]);
return this.model.call('name_search', [], {
name: needle,
args: instance.web.pyeval.eval(
'domains', this.attrs.domain ? [this.attrs.domain] : [], context),
limit: 8,
context: {}
context: context
}).then(function (results) {
if (_.isEmpty(results)) { return null; }
return [{label: self.attrs.string}].concat(
@ -1507,6 +1551,9 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
})
.on('reset', this.proxy('clear_selection'));
this.$el.on('submit', 'form', this.proxy('save_current'));
this.$el.on('click', 'input[type=checkbox]', function() {
$(this).siblings('input[type=checkbox]').prop('checked', false);
});
this.$el.on('click', 'h4', function () {
self.$el.toggleClass('oe_opened');
});
@ -1557,6 +1604,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
get_groupby: function () { return [filter.context]; },
get_domain: function () { return filter.domain; }
},
_id: filter['id'],
is_custom_filter: true,
values: [{label: filter.name, value: null}]
};
@ -1567,6 +1615,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
append_filter: function (filter) {
var self = this;
var key = this.key_for(filter);
var warning = _t("This filter is global and will be removed for everybody if you continue.");
var $filter;
if (key in this.$filters) {
@ -1584,6 +1633,9 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
$('<a class="oe_searchview_custom_delete">x</a>')
.click(function (e) {
e.stopPropagation();
if (!(filter.user_id || confirm(warning))) {
return;
}
self.model.call('unlink', [id]).done(function () {
$filter.remove();
delete self.$filters[key];
@ -1594,10 +1646,18 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
}
$filter.unbind('click').click(function () {
self.enable_filter(filter);
self.toggle_filter(filter);
});
},
enable_filter: function (filter, preventSearch) {
toggle_filter: function (filter, preventSearch) {
var current = this.view.query.find(function (facet) {
return facet.get('_id') === filter.id;
});
if (current) {
this.view.query.remove(current);
this.$filters[this.key_for(filter)].removeClass('oe_selected');
return;
}
this.view.query.reset([this.facet_for(filter)], {
preventSearch: preventSearch || false});
this.$filters[this.key_for(filter)].addClass('oe_selected');
@ -1706,10 +1766,12 @@ instance.web.search.Advanced = instance.web.search.Input.extend({
});
return $.when(
this._super(),
new instance.web.Model(this.view.model).call('fields_get').done(function(data) {
self.fields = _.extend({
id: { string: 'ID', type: 'id' }
}, data);
new instance.web.Model(this.view.model).call('fields_get', {
context: this.view.dataset.context
}).done(function(data) {
self.fields = _.extend({
id: { string: 'ID', type: 'id' }
}, data);
})).done(function () {
self.append_proposition();
});
@ -1760,6 +1822,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
template: 'SearchView.extended_search.proposition',
events: {
'change .searchview_extended_prop_field': 'changed',
'change .searchview_extended_prop_op': 'operator_changed',
'click .searchview_extended_delete_prop': function (e) {
e.stopPropagation();
this.getParent().remove_proposition(this);
@ -1776,6 +1839,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
this._super(parent);
this.fields = _(fields).chain()
.map(function(val, key) { return _.extend({}, val, {'name': key}); })
.filter(function (field) { return !field.deprecated; })
.sortBy(function(field) {return field.string;})
.value();
this.attrs = {_: _, fields: this.fields, selected: null};
@ -1790,6 +1854,17 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
this.select_field(_.detect(this.fields, function(x) {return x.name == nval;}));
}
},
operator_changed: function (e) {
var $value = this.$('.searchview_extended_prop_value');
switch ($(e.target).val()) {
case '∃':
case '∄':
$value.hide();
break;
default:
$value.show();
}
},
/**
* Selects the provided field object
*
@ -1818,7 +1893,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
.text(String(operator.text))
.appendTo(self.$('.searchview_extended_prop_op'));
});
var $value_loc = this.$('.searchview_extended_prop_value').empty();
var $value_loc = this.$('.searchview_extended_prop_value').show().empty();
this.value.appendTo($value_loc);
},
@ -1826,19 +1901,12 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
if ( this.attrs.selected == null)
return null;
var field = this.attrs.selected;
var op = this.$('.searchview_extended_prop_op')[0];
var operator = op.options[op.selectedIndex];
var op_select = this.$('.searchview_extended_prop_op')[0];
var operator = op_select.options[op_select.selectedIndex];
return {
label: _.str.sprintf(_t('%(field)s %(operator)s "%(value)s"'), {
field: field.string,
// According to spec, HTMLOptionElement#label should return
// HTMLOptionElement#text when not defined/empty, but it does
// not in older Webkit (between Safari 5.1.5 and Chrome 17) and
// Gecko (pre Firefox 7) browsers, so we need a manual fallback
// for those
operator: operator.label || operator.text,
value: this.value}),
value: [field.name, operator.value, this.value.get_value()]
label: this.value.get_label(field, operator),
value: this.value.get_domain(field, operator),
};
}
});
@ -1848,6 +1916,37 @@ instance.web.search.ExtendedSearchProposition.Field = instance.web.Widget.extend
this._super(parent);
this.field = field;
},
get_label: function (field, operator) {
var format;
switch (operator.value) {
case '∃': case '∄': format = _t('%(field)s %(operator)s'); break;
default: format = _t('%(field)s %(operator)s "%(value)s"'); break;
}
return this.format_label(format, field, operator);
},
format_label: function (format, field, operator) {
return _.str.sprintf(format, {
field: field.string,
// According to spec, HTMLOptionElement#label should return
// HTMLOptionElement#text when not defined/empty, but it does
// not in older Webkit (between Safari 5.1.5 and Chrome 17) and
// Gecko (pre Firefox 7) browsers, so we need a manual fallback
// for those
operator: operator.label || operator.text,
value: this
});
},
get_domain: function (field, operator) {
switch (operator.value) {
case '∃': return this.make_domain(field.name, '!=', false);
case '∄': return this.make_domain(field.name, '=', false);
default: return this.make_domain(
field.name, operator.value, this.get_value());
}
},
make_domain: function (field, operator, value) {
return [field, operator, value];
},
/**
* Returns a human-readable version of the value, in case the "logical"
* and the "semantic" values of a field differ (as for selection fields,
@ -1867,7 +1966,9 @@ instance.web.search.ExtendedSearchProposition.Char = instance.web.search.Extende
{value: "ilike", text: _lt("contains")},
{value: "not ilike", text: _lt("doesn't contain")},
{value: "=", text: _lt("is equal to")},
{value: "!=", text: _lt("is not equal to")}
{value: "!=", text: _lt("is not equal to")},
{value: "∃", text: _lt("is set")},
{value: "∄", text: _lt("is not set")}
],
get_value: function() {
return this.$el.val();
@ -1881,7 +1982,9 @@ instance.web.search.ExtendedSearchProposition.DateTime = instance.web.search.Ext
{value: ">", text: _lt("greater than")},
{value: "<", text: _lt("less than")},
{value: ">=", text: _lt("greater or equal than")},
{value: "<=", text: _lt("less or equal than")}
{value: "<=", text: _lt("less or equal than")},
{value: "∃", text: _lt("is set")},
{value: "∄", text: _lt("is not set")}
],
/**
* Date widgets live in view_form which is not yet loaded when this is
@ -1915,7 +2018,9 @@ instance.web.search.ExtendedSearchProposition.Integer = instance.web.search.Exte
{value: ">", text: _lt("greater than")},
{value: "<", text: _lt("less than")},
{value: ">=", text: _lt("greater or equal than")},
{value: "<=", text: _lt("less or equal than")}
{value: "<=", text: _lt("less or equal than")},
{value: "∃", text: _lt("is set")},
{value: "∄", text: _lt("is not set")}
],
toString: function () {
return this.$el.val();
@ -1940,7 +2045,9 @@ instance.web.search.ExtendedSearchProposition.Float = instance.web.search.Extend
{value: ">", text: _lt("greater than")},
{value: "<", text: _lt("less than")},
{value: ">=", text: _lt("greater or equal than")},
{value: "<=", text: _lt("less or equal than")}
{value: "<=", text: _lt("less or equal than")},
{value: "∃", text: _lt("is set")},
{value: "∄", text: _lt("is not set")}
],
toString: function () {
return this.$el.val();
@ -1958,7 +2065,9 @@ instance.web.search.ExtendedSearchProposition.Selection = instance.web.search.Ex
template: 'SearchView.extended_search.proposition.selection',
operators: [
{value: "=", text: _lt("is")},
{value: "!=", text: _lt("is not")}
{value: "!=", text: _lt("is not")},
{value: "∃", text: _lt("is set")},
{value: "∄", text: _lt("is not set")}
],
toString: function () {
var select = this.$el[0];
@ -1975,7 +2084,10 @@ instance.web.search.ExtendedSearchProposition.Boolean = instance.web.search.Exte
{value: "=", text: _lt("is true")},
{value: "!=", text: _lt("is false")}
],
toString: function () { return ''; },
get_label: function (field, operator) {
return this.format_label(
_t('%(field)s %(operator)s'), field, operator);
},
get_value: function() {
return true;
}

View File

@ -247,13 +247,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
do_load_state: function(state, warm) {
if (state.id && this.datarecord.id != state.id) {
if (!this.dataset.get_id_index(state.id)) {
if (this.dataset.get_id_index(state.id) === null) {
this.dataset.ids.push(state.id);
}
this.dataset.select_id(state.id);
if (warm) {
this.do_show();
}
this.do_show({ reload: warm });
}
},
/**
@ -511,9 +509,13 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var on_change = widget.node.attrs.on_change;
if (on_change) {
var change_spec = self.parse_on_change(on_change, widget);
var id = [self.datarecord.id == null ? [] : [self.datarecord.id]];
def = new instance.web.Model(self.dataset.model).call(
change_spec.method, id.concat(change_spec.args));
var ids = [];
if (self.datarecord.id && !instance.web.BufferedDataSet.virtual_id_regex.test(self.datarecord.id)) {
// In case of a o2m virtual id, we should pass an empty ids list
ids.push(self.datarecord.id);
}
def = self.alive(new instance.web.Model(self.dataset.model).call(
change_spec.method, [ids].concat(change_spec.args)));
} else {
def = $.when({});
}
@ -531,9 +533,9 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var condition = fieldname + '=' + value_;
if (value_) {
return new instance.web.Model('ir.values').call(
return self.alive(new instance.web.Model('ir.values').call(
'get_defaults', [self.model, condition]
).then(function (results) {
)).then(function (results) {
if (!results.length) {
return response;
}
@ -573,19 +575,14 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
]
});
}
if (result.domain) {
function edit_domain(node) {
if (typeof node !== "object") {
return;
}
var new_domain = result.domain[node.attrs.name];
if (new_domain) {
node.attrs.domain = new_domain;
}
_(node.children).each(edit_domain);
}
edit_domain(this.fields_view.arch);
}
var fields = this.fields;
_(result.domain).each(function (domain, fieldname) {
var field = fields[fieldname];
if (!field) { return; }
field.node.attrs.domain = domain;
});
return $.Deferred().resolve();
} catch(e) {
console.error(e);
@ -842,11 +839,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
save_deferral = self.dataset.create(values).then(function(r) {
return self.record_created(r, prepend_on_create);
}, null);
} else if (_.isEmpty(values) && ! self.force_dirty) {
} else if (_.isEmpty(values)) {
// Not dirty, noop save
save_deferral = $.Deferred().resolve({}).promise();
} else {
self.force_dirty = false;
// Write save
save_deferral = self.dataset.write(self.datarecord.id, values, {}).then(function(r) {
return self.record_saved(r);
@ -1197,6 +1193,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
$('button', doc).each(function() {
$(this).attr('data-button-type', $(this).attr('type')).attr('type', 'button');
});
// IE's html parser is also a css parser. How convenient...
$('board', doc).each(function() {
$(this).attr('layout', $(this).attr('style'));
});
return $('<div class="oe_form"/>').append(instance.web.xml_to_str(doc));
},
render_to: function($target) {
@ -1916,18 +1916,20 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({
modal: true,
buttons: [
{text: _t("Cancel"), click: function() {
def.resolve();
$(this).dialog("close");
}
},
{text: _t("Ok"), click: function() {
self.on_confirmed().done(function() {
def.resolve();
var self2 = this;
self.on_confirmed().always(function() {
$(self2).dialog("close");
});
$(this).dialog("close");
}
}
]
},
],
beforeClose: function() {
def.resolve();
},
});
return def.promise();
} else {
@ -1935,7 +1937,6 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({
}
};
if (!this.node.attrs.special) {
this.view.force_dirty = true;
return this.view.recursive_save().then(exec_action);
} else {
return exec_action();
@ -2334,7 +2335,7 @@ instance.web.form.FieldUrl = instance.web.form.FieldChar.extend({
this._super();
} else {
var tmp = this.get('value');
var s = /(\w+):(.+)/.exec(tmp);
var s = /(\w+):(.+)|^\.{0,2}\//.exec(tmp);
if (!s) {
tmp = "http://" + this.get('value');
}
@ -2383,6 +2384,7 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({
type_of_date: "datetime",
events: {
'change .oe_datepicker_master': 'change_datetime',
'dragstart img.oe_datepicker_trigger': function () { return false; },
},
init: function(parent) {
this._super(parent);
@ -2402,6 +2404,11 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({
showButtonPanel: true,
firstDay: Date.CultureInfo.firstDayOfWeek
});
// Some clicks in the datepicker dialog are not stopped by the
// datepicker and "bubble through", unexpectedly triggering the bus's
// click event. Prevent that.
this.picker('widget').click(function (e) { e.stopPropagation(); });
this.$el.find('img.oe_datepicker_trigger').click(function() {
if (self.get("effective_readonly") || self.picker('widget').is(':visible')) {
self.$input.focus();
@ -2964,7 +2971,9 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
case $.ui.keyCode.DOWN:
e.stopPropagation();
}
}
},
'dragstart .oe_m2o_drop_down_button img': function () { return false; },
'dragstart .oe_m2o_cm_button': function () { return false; }
},
init: function(field_manager, node) {
this._super(field_manager, node);
@ -3065,6 +3074,15 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
}
}
});
// Autocomplete close on dialog content scroll
var close_autocomplete = _.debounce(function() {
if (self.$input.autocomplete("widget").is(":visible")) {
self.$input.autocomplete("close");
}
}, 50);
this.$input.closest(".ui-dialog .ui-dialog-content").on('scroll', this, close_autocomplete);
self.ed_def = $.Deferred();
self.uned_def = $.Deferred();
var ed_delay = 200;
@ -4457,6 +4475,7 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
* options:
* -readonly: only applicable when not in creation mode, default to false
* - alternative_form_view
* - view_id
* - write_function
* - read_function
* - create_function
@ -4523,7 +4542,7 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
_.extend(options, {
$buttons: this.$buttonpane,
});
this.view_form = new instance.web.FormView(this, this.dataset, false, options);
this.view_form = new instance.web.FormView(this, this.dataset, this.options.view_id || false, options);
if (this.options.alternative_form_view) {
this.view_form.set_embedded_view(this.options.alternative_form_view);
}
@ -4552,6 +4571,7 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
});
var $cbutton = self.$buttonpane.find(".oe_abstractformpopup-form-close");
$cbutton.click(function() {
self.view_form.trigger('on_button_cancel');
self.check_exit();
});
self.view_form.do_show();
@ -4946,7 +4966,7 @@ instance.web.form.FieldBinaryFile = instance.web.form.FieldBinary.extend({
}
this.$el.find('input').eq(0).val(show_value);
} else {
this.$el.find('a').show(!!this.get('value'));
this.$el.find('a').toggle(!!this.get('value'));
if (this.get('value')) {
var show_value = _t("Download")
if (this.view)
@ -5223,8 +5243,20 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
this.options.clickable = this.options.clickable || (this.node.attrs || {}).clickable || false;
this.options.visible = this.options.visible || (this.node.attrs || {}).statusbar_visible || false;
this.set({value: false});
this.selection = [];
this.set("selection", []);
this.selection_dm = new instance.web.DropMisordered();
},
start: function() {
this.field_manager.on("view_content_has_changed", this, this.calc_domain);
this.calc_domain();
this.on("change:value", this, this.get_selection);
this.on("change:evaluated_selection_domain", this, this.get_selection);
this.get_selection();
this.on("change:selection", this, function() {
this.selection = this.get("selection");
this.render_value();
});
if (this.options.clickable) {
this.$el.on('click','li',this.on_click_stage);
}
@ -5241,15 +5273,20 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
},
render_value: function() {
var self = this;
self.get_selection().done(function() {
var content = QWeb.render("FieldStatus.content", {widget: self});
self.$el.html(content);
var colors = JSON.parse((self.node.attrs || {}).statusbar_colors || "{}");
var color = colors[self.get('value')];
if (color) {
self.$("oe_active").css("color", color);
}
});
var content = QWeb.render("FieldStatus.content", {widget: self});
self.$el.html(content);
var colors = JSON.parse((self.node.attrs || {}).statusbar_colors || "{}");
var color = colors[self.get('value')];
if (color) {
self.$("oe_active").css("color", color);
}
},
calc_domain: function() {
var d = instance.web.pyeval.eval('domain', this.build_domain());
domain = ['|', ['id', '=', this.get('value')]].concat(d);
if (! _.isEqual(domain, this.get("evaluated_selection_domain"))) {
this.set("evaluated_selection_domain", domain);
}
},
/** Get the selection and render it
* selection: [[identifier, value_to_display], ...]
@ -5258,32 +5295,37 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
*/
get_selection: function() {
var self = this;
self.selection = [];
if (this.field.type == "many2one") {
var domain = [];
if(!_.isEmpty(this.field.domain) || !_.isEmpty(this.node.attrs.domain)) {
var d = instance.web.pyeval.eval('domain', self.build_domain());
domain = ['|', ['id', '=', self.get('value')]].concat(d);
}
var ds = new instance.web.DataSetSearch(this, this.field.relation, self.build_context(), domain);
return ds.read_slice(['name'], {}).then(function (records) {
for(var i = 0; i < records.length; i++) {
self.selection.push([records[i].id, records[i].name]);
}
});
} else {
// For field type selection filter values according to
// statusbar_visible attribute of the field. For example:
// statusbar_visible="draft,open".
var selection = this.field.selection;
for(var i=0; i < selection.length; i++) {
var key = selection[i][0];
if(key == this.get('value') || !this.options.visible || this.options.visible.indexOf(key) != -1) {
this.selection.push(selection[i]);
var selection = [];
var calculation = _.bind(function() {
if (this.field.type == "many2one") {
var domain = [];
var ds = new instance.web.DataSetSearch(this, this.field.relation,
self.build_context(), this.get("evaluated_selection_domain"));
return ds.read_slice(['name'], {}).then(function (records) {
for(var i = 0; i < records.length; i++) {
selection.push([records[i].id, records[i].name]);
}
});
} else {
// For field type selection filter values according to
// statusbar_visible attribute of the field. For example:
// statusbar_visible="draft,open".
var select = this.field.selection;
for(var i=0; i < select.length; i++) {
var key = select[i][0];
if(key == this.get('value') || !this.options.visible || this.options.visible.indexOf(key) != -1) {
selection.push(select[i]);
}
}
return $.when();
}
return $.when();
}
}, this);
this.selection_dm.add(calculation()).then(function () {
if (! _.isEqual(selection, self.get("selection"))) {
self.set("selection", selection);
}
});
},
on_click_stage: function (ev) {
var self = this;
@ -5327,16 +5369,16 @@ instance.web.form.FieldMonetary = instance.web.form.FieldFloat.extend({
this.set({"currency_info": null});
return;
}
return this.ci_dm.add(new instance.web.Model("res.currency").query(["symbol", "position"])
.filter([["id", "=", self.get("currency")]]).first()).then(function(res) {
return this.ci_dm.add(self.alive(new instance.web.Model("res.currency").query(["symbol", "position"])
.filter([["id", "=", self.get("currency")]]).first())).then(function(res) {
self.set({"currency_info": res});
});
},
parse_value: function(val, def) {
return instance.web.parse_value(val, {type: "float"}, def);
return instance.web.parse_value(val, {type: "float", digits: (this.node.attrs || {}).digits || this.field.digits}, def);
},
format_value: function(val, def) {
return instance.web.format_value(val, {type: "float"}, def);
return instance.web.format_value(val, {type: "float", digits: (this.node.attrs || {}).digits || this.field.digits}, def);
},
});

View File

@ -321,9 +321,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
.appendTo($this.empty())
.click(function (e) {e.stopPropagation();})
.append('<option value="80">80</option>' +
'<option value="100">100</option>' +
'<option value="200">200</option>' +
'<option value="500">500</option>' +
'<option value="2000">2000</option>' +
'<option value="NaN">' + _t("Unlimited") + '</option>')
.change(function () {
var val = parseInt($select.val(), 10);
@ -348,12 +348,27 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.sidebar.add_toolbar(this.fields_view.toolbar);
this.sidebar.$el.hide();
}
//Sort
if(this.dataset._sort.length){
if(this.dataset._sort[0].indexOf('-') == -1){
this.$el.find('th[data-id=' + this.dataset._sort[0] + ']').addClass("sortdown");
}else {
this.$el.find('th[data-id=' + this.dataset._sort[0].split('-')[1] + ']').addClass("sortup");
}
}
this.trigger('list_view_loaded', data, this.grouped);
},
sort_by_column: function (e) {
e.stopPropagation();
var $column = $(e.currentTarget);
this.dataset.sort($column.data('id'));
var col_name = $column.data('id')
var field = this.fields_view.fields[col_name];
// test if the field is a function field with store=false, since it's impossible
// for the server to sort those fields we desactivate the feature
if (field && field.store === false) {
return false;
}
this.dataset.sort(col_name);
if($column.hasClass("sortdown") || $column.hasClass("sortup")) {
$column.toggleClass("sortup sortdown");
} else {
@ -1171,7 +1186,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.
}
});
instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.web.ListView.Groups# */{
passtrough_events: 'action deleted row_link',
passthrough_events: 'action deleted row_link',
/**
* Grouped display for the ListView. Handles basic DOM events and interacts
* with the :js:class:`~DataGroup` bound to it.
@ -1391,7 +1406,7 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
// can have selections spanning multiple links
var selection = self.get_selection();
$this.trigger(e, [selection.ids, selection.records]);
}).bind(this.passtrough_events, function (e) {
}).bind(this.passthrough_events, function (e) {
// additional positional parameters are provided to trigger as an
// Array, following the event type or event object, but are
// provided to the .bind event handler as *args.
@ -2197,7 +2212,7 @@ instance.web.list.Binary = instance.web.list.Column.extend({
if (value && value.substr(0, 10).indexOf(' ') == -1) {
download_url = "data:application/octet-stream;base64," + value;
} else {
download_url = this.session.url('/web/binary/saveas', {model: options.model, field: this.id, id: options.id});
download_url = instance.session.url('/web/binary/saveas', {model: options.model, field: this.id, id: options.id});
if (this.filename) {
download_url += '&filename_field=' + this.filename;
}

View File

@ -132,6 +132,15 @@ openerp.web.list_editable = function (instance) {
var self = this;
// tree/@editable takes priority on everything else if present.
var result = this._super(data, grouped);
// In case current editor was started previously, also has to run
// when toggling from editable to non-editable in case form widgets
// have setup global behaviors expecting themselves to exist
// somehow.
this.editor.destroy();
// Editor is not restartable due to formview not being restartable
this.editor = this.make_editor();
if (this.editable()) {
this.$el.addClass('oe_list_editable');
// FIXME: any hook available to ensure this is only done once?
@ -143,10 +152,6 @@ openerp.web.list_editable = function (instance) {
e.preventDefault();
self.cancel_edition();
});
this.editor.destroy();
// Editor is not restartable due to formview not being
// restartable
this.editor = this.make_editor();
var editor_ready = this.editor.prependTo(this.$el)
.done(this.proxy('setup_events'));
@ -795,7 +800,7 @@ openerp.web.list_editable = function (instance) {
});
instance.web.ListView.Groups.include(/** @lends instance.web.ListView.Groups# */{
passtrough_events: instance.web.ListView.Groups.prototype.passtrough_events + " edit saved",
passthrough_events: instance.web.ListView.Groups.prototype.passthrough_events + " edit saved",
get_row_for: function (record) {
return _(this.children).chain()
.invoke('get_row_for', record)

View File

@ -190,6 +190,18 @@ instance.web.ActionManager = instance.web.Widget.extend({
});
state = _.extend(params || {}, state);
}
if (this.inner_action.context) {
var active_id = this.inner_action.context.active_id;
if (active_id) {
state["active_id"] = active_id;
}
var active_ids = this.inner_action.context.active_ids;
if (active_ids && !(active_ids.length === 1 && active_ids[0] === active_id)) {
// We don't push active_ids if it's a single element array containing the active_id
// This makes the url shorter in most cases.
state["active_ids"] = this.inner_action.context.active_ids.join(',');
}
}
}
if(!this.dialog) {
this.getParent().do_push_state(state);
@ -212,8 +224,22 @@ instance.web.ActionManager = instance.web.Widget.extend({
} else {
var run_action = (!this.inner_widget || !this.inner_widget.action) || this.inner_widget.action.id !== state.action;
if (run_action) {
var add_context = {};
if (state.active_id) {
add_context.active_id = state.active_id;
}
if (state.active_ids) {
// The jQuery BBQ plugin does some parsing on values that are valid integers.
// It means that if there's only one item, it will do parseInt() on it,
// otherwise it will keep the comma seperated list as string.
add_context.active_ids = state.active_ids.toString().split(',').map(function(id) {
return parseInt(id, 10) || id;
});
} else if (state.active_id) {
add_context.active_ids = [state.active_id];
}
this.null_action();
action_loaded = this.do_action(state.action);
action_loaded = this.do_action(state.action, { additional_context: add_context });
$.when(action_loaded || null).done(function() {
instance.webclient.menu.has_been_loaded.done(function() {
if (self.inner_action && self.inner_action.id) {
@ -249,12 +275,25 @@ instance.web.ActionManager = instance.web.Widget.extend({
}
});
},
/**
* Execute an OpenERP action
*
* @param {Number|String|Object} Can be either an action id, a client action or an action descriptor.
* @param {Object} [options]
* @param {Boolean} [options.clear_breadcrumbs=false] Clear the breadcrumbs history list
* @param {Function} [options.on_reverse_breadcrumb] Callback to be executed whenever an anterior breadcrumb item is clicked on.
* @param {Function} [options.on_close] Callback to be executed when the dialog is closed (only relevant for target=new actions)
* @param {Function} [options.action_menu_id] Manually set the menu id on the fly.
* @param {Object} [options.additional_context] Additional context to be merged with the action's context.
* @return {jQuery.Deferred} Action loaded
*/
do_action: function(action, options) {
options = _.defaults(options || {}, {
clear_breadcrumbs: false,
on_reverse_breadcrumb: function() {},
on_close: function() {},
action_menu_id: null,
additional_context: {},
});
if (action === false) {
action = { type: 'ir.actions.act_window_close' };
@ -269,9 +308,13 @@ instance.web.ActionManager = instance.web.Widget.extend({
}
// Ensure context & domain are evaluated and can be manipulated/used
if (action.context) {
action.context = instance.web.pyeval.eval(
'context', action.context);
var ncontext = new instance.web.CompoundContext(options.additional_context, action.context || {});
action.context = instance.web.pyeval.eval('context', ncontext);
if (action.context.active_id || action.context.active_ids) {
// Here we assume that when an `active_id` or `active_ids` is used
// in the context, we are in a `related` action, so we disable the
// searchview's default custom filters.
action.context.search_disable_custom_filters = true;
}
if (action.domain) {
action.domain = instance.web.pyeval.eval(
@ -285,14 +328,15 @@ instance.web.ActionManager = instance.web.Widget.extend({
var type = action.type.replace(/\./g,'_');
var popup = action.target === 'new';
var inline = action.target === 'inline' || action.target === 'inlineview';
action.flags = _.extend({
action.flags = _.defaults(action.flags || {}, {
views_switcher : !popup && !inline,
search_view : !popup && !inline,
action_buttons : !popup && !inline,
sidebar : !popup && !inline,
pager : !popup && !inline,
display_title : !popup
}, action.flags || {});
display_title : !popup,
search_disable_custom_filters: action.context && action.context.search_disable_custom_filters
});
action.menu_id = options.action_menu_id;
if (!(type in this)) {
console.error("Action manager can't handle action of type " + action.type, action);
@ -526,7 +570,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
}
if (this.searchview) {
this.searchview[(view.controller.searchable === false || this.searchview.hidden) ? 'hide' : 'show']();
this.searchview[(view.controller.searchable === false || this.searchview.options.hidden) ? 'hide' : 'show']();
}
this.$el.find('.oe_view_manager_switch a').parent().removeClass('active');
@ -538,7 +582,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
_.each(_.keys(self.views), function(view_name) {
var controller = self.views[view_name].controller;
if (controller) {
var container = self.$el.find(".oe_view_manager_view_" + view_name + ":first");
var container = self.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_name);
if (view_name === view_type) {
container.show();
controller.do_show(view_options || {});
@ -581,7 +625,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
controller.on('switch_mode', self, this.switch_mode);
controller.on('previous_view', self, this.prev_view);
var container = this.$el.find(".oe_view_manager_view_" + view_type);
var container = this.$el.find("> .oe_view_manager_body > .oe_view_manager_view_" + view_type);
var view_promise = controller.appendTo(container);
this.views[view_type].controller = controller;
this.views[view_type].deferred.resolve(view_type);
@ -596,6 +640,12 @@ instance.web.ViewManager = instance.web.Widget.extend({
self.trigger("controller_inited",view_type,controller);
});
},
/**
* @returns {Number|Boolean} the view id of the given type, false if not found
*/
get_view_id: function(view_type) {
return this.views[view_type] && this.views[view_type].view_id || false;
},
set_title: function(title) {
this.$el.find('.oe_view_title_text:first').text(title);
},
@ -684,7 +734,11 @@ instance.web.ViewManager = instance.web.Widget.extend({
if (this.searchview) {
this.searchview.destroy();
}
this.searchview = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, this.flags.search_view === false);
var options = {
hidden: this.flags.search_view === false,
disable_custom_filters: this.flags.search_disable_custom_filters,
};
this.searchview = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, options);
this.searchview.on('search_data', self, this.do_searchview_search);
return this.searchview.appendTo(this.$el.find(".oe_view_manager_view_search"));
@ -948,10 +1002,11 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
});
},
do_create_view: function(view_type) {
var r = this._super.apply(this, arguments);
var view = this.views[view_type].controller;
view.set({ 'title': this.action.name });
return r;
var self = this;
return this._super.apply(this, arguments).then(function() {
var view = self.views[view_type].controller;
view.set({ 'title': self.action.name });
});
},
get_action_manager: function() {
var cur = this;
@ -1492,13 +1547,22 @@ instance.web.json_node_to_xml = function(node, human_readable, indent) {
}
};
instance.web.xml_to_str = function(node) {
var str = "";
if (window.XMLSerializer) {
return (new XMLSerializer()).serializeToString(node);
str = (new XMLSerializer()).serializeToString(node);
} else if (window.ActiveXObject) {
return node.xml;
str = node.xml;
} else {
throw new Error(_t("Could not serialize XML"));
}
// Browsers won't deal with self closing tags except br, hr, input, ...
// http://stackoverflow.com/questions/97522/what-are-all-the-valid-self-closing-elements-in-xhtml-as-implemented-by-the-maj
//
// The following regex is a bit naive but it's ok for the xmlserializer output
str = str.replace(/<([a-z]+)([^<>]*)\s*\/\s*>/g, function(match, tag, attrs) {
return "<" + tag + attrs + "></" + tag + ">";
});
return str;
};
/**

View File

@ -119,7 +119,7 @@
</tr>
<tr>
<td><label for="db_name">New database name:</label></td>
<td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
<td><input type="text" name="db_name" class="required" matches="^[a-zA-Z0-9][a-zA-Z0-9_-]+$" autofocus="true"/></td>
</tr>
<tr>
<td><label for="demo_data">Load Demonstration data:</label></td>
@ -385,7 +385,9 @@
t-att-data-menu="menu.id"
t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''"
t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''">
<t t-esc="menu.name"/>
<span class="oe_menu_text">
<t t-esc="menu.name"/>
</span>
</a>
</t>
@ -401,8 +403,9 @@
<img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>
<span class="oe_topbar_name"/>
<ul class="oe_dropdown_menu">
<li><a href="#" data-menu="about">About OpenERP</a></li>
<li><a href="#" data-menu="settings">Preferences</a></li>
<li><a href="#" data-menu="about">About OpenERP</a></li>
<li><a href="#" data-menu="help">Help</a></li>
<li><a href="#" data-menu="logout">Log out</a></li>
</ul>
</span>
@ -1297,7 +1300,7 @@
<span class='oe_attach_label'>File</span>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action">/web/binary/upload_attachment</t>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.view.model"/>
<input type="hidden" name="id" value="0"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
@ -1412,8 +1415,6 @@
this.removeAttr('t-if');
</t>
<t t-jquery="tfoot &gt; tr:last-child" t-operation="replace"/>
<t t-jquery="td.oe-actions">
this.removeAttr('t-if');
</t>

View File

@ -282,7 +282,7 @@ openerp.testing.section('eval.edc', {
db: '3',
login: user.login,
uid: user.id,
context: {
user_context: {
uid: user.id,
lang: user.lang,
tz: user.tz

View File

@ -68,6 +68,12 @@ openerp.testing.section('web-formats', {
strictEqual(
instance.web.format_value(-0.0085, {type:'float', widget:'float_time'}),
'-00:01');
strictEqual(
instance.web.format_value(4.9999, {type:'float', widget:'float_time'}),
'05:00');
strictEqual(
instance.web.format_value(-6.9999, {type:'float', widget:'float_time'}),
'-07:00');
});
test("format_float", function (instance) {
var fl = 12.1234;

View File

@ -318,6 +318,28 @@ openerp.testing.section('defaults', {
"facet value should match provided default's selection");
});
});
test("M2O default: value array", {asserts: 2}, function (instance, $s, mock) {
var view = {inputs: []}, id = 5;
var f = new instance.web.search.ManyToOneField(
{attrs: {name: 'dummy', string: 'Dummy'}},
{relation: 'dummy.model.name'},
view);
mock('dummy.model.name:name_get', function (args) {
equal(args[0], id);
return [[id, "DumDumDum"]];
});
return f.facet_for_defaults({dummy: [id]})
.done(function (facet) {
var model = facet;
if (!(model instanceof instance.web.search.Facet)) {
model = new instance.web.search.Facet(facet);
}
deepEqual(
model.values.toJSON(),
[{label: "DumDumDum", value: id}],
"should support default as a singleton");
});
});
test("M2O default: value", {asserts: 1}, function (instance, $s, mock) {
var view = {inputs: []}, id = 4;
var f = new instance.web.search.ManyToOneField(
@ -330,6 +352,15 @@ openerp.testing.section('defaults', {
ok(!facet, "an invalid m2o default should yield a non-facet");
});
});
test("M2O default: values", {rpc: false}, function (instance) {
var view = {inputs: []};
var f = new instance.web.search.ManyToOneField(
{attrs: {name: 'dummy', string: 'Dummy'}},
{relation: 'dummy.model.name'},
view);
raises(function () { f.facet_for_defaults({dummy: [6, 7]}) },
"should not accept multiple default values");
})
});
openerp.testing.section('completions', {
dependencies: ['web.search'],
@ -526,7 +557,7 @@ openerp.testing.section('completions', {
return [[42, "choice 1"], [43, "choice @"]];
});
var view = {inputs: []};
var view = {inputs: [], dataset: {get_context: function () {}}};
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy'}}, {relation: 'dummy.model'}, view);
return f.complete("bob")
@ -555,7 +586,7 @@ openerp.testing.section('completions', {
strictEqual(kwargs.name, 'bob');
return [];
});
var view = {inputs: []};
var view = {inputs: [], dataset: {get_context: function () {}}};
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy'}}, {relation: 'dummy.model'}, view);
return f.complete("bob")
@ -563,6 +594,26 @@ openerp.testing.section('completions', {
ok(!c, "no match should yield no completion");
});
});
test("M2O filtered", {asserts: 2}, function (instance, $s, mock) {
mock('dummy.model:name_search', function (args, kwargs) {
deepEqual(args, [], "should have no positional arguments");
deepEqual(kwargs, {
name: 'bob',
limit: 8,
args: [['foo', '=', 'bar']],
context: {flag: 1},
}, "should use filtering domain");
return [[42, "Match"]];
});
var view = {
inputs: [],
dataset: {get_context: function () { return {flag: 1}; }}
};
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy', domain: '[["foo", "=", "bar"]]'}},
{relation: 'dummy.model'}, view);
return f.complete("bob");
});
});
openerp.testing.section('search-serialization', {
dependencies: ['web.search'],
@ -1038,6 +1089,44 @@ openerp.testing.section('saved_filters', {
"should not be checked anymore");
});
});
test('toggling', {asserts: 2}, function (instance, $fix, mock) {
var view = makeSearchView(instance);
mock('ir.filters:get_filters', function () {
return [{name: 'filter name', user_id: 42, id: 1}];
});
return view.appendTo($fix)
.done(function () {
var $row = $fix.find('.oe_searchview_custom li:first').click();
equal(view.query.length, 1, "should have one facet");
$row.click();
equal(view.query.length, 0, "should have removed facet");
});
});
test('replacement', {asserts: 4}, function (instance, $fix, mock) {
var view = makeSearchView(instance);
mock('ir.filters:get_filters', function () {
return [
{name: 'f', user_id: 42, id: 1, context: {'private': 1}},
{name: 'f', user_id: false, id: 2, context: {'private': 0}}
];
});
return view.appendTo($fix)
.done(function () {
$fix.find('.oe_searchview_custom li:eq(0)').click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
{'private': 1},
"should have selected first filter");
$fix.find('.oe_searchview_custom li:eq(1)').click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
{'private': 0},
"should have selected second filter");
});
});
});
openerp.testing.section('advanced', {
dependencies: ['web.search'],

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Zdeněk Havlík <linuzh@gmail.com>\n"
"PO-Revision-Date: 2012-12-28 11:43+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: openerp-i18n-czech <openerp-i18n-czech@lists.launchpad.net>\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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2012-12-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Poedit-Language: Czech\n"
@ -23,49 +23,49 @@ msgstr ""
#: code:addons/web_calendar/static/src/js/calendar.js:153
#, python-format
msgid "New event"
msgstr ""
msgstr "Nová událost"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:156
#, python-format
msgid "Details"
msgstr ""
msgstr "Podrobnosti"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:154
#, python-format
msgid "Save"
msgstr ""
msgstr "Uložit"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:101
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr ""
msgstr "Pohled kalendáře má typ položky 'date_delay' != float"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:149
#, python-format
msgid "Today"
msgstr ""
msgstr "Dnes"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:151
#, python-format
msgid "Week"
msgstr ""
msgstr "Týden"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:163
#, python-format
msgid "Full day"
msgstr ""
msgstr "Celý den"
#. module: web_calendar
#. openerp-web
@ -73,14 +73,14 @@ msgstr ""
#: code:addons/web_calendar/static/src/js/calendar.js:174
#, python-format
msgid "Description"
msgstr ""
msgstr "Popis"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:160
#, python-format
msgid "Event will be deleted permanently, are you sure?"
msgstr ""
msgstr "Událost bude trvale smazána, jste si jisti?"
#. module: web_calendar
#. openerp-web
@ -95,56 +95,56 @@ msgstr "&nbsp;"
#: code:addons/web_calendar/static/src/js/calendar.js:173
#, python-format
msgid "Date"
msgstr ""
msgstr "Datum"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:470
#, python-format
msgid "Edit: "
msgstr ""
msgstr "Upravit: "
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:150
#, python-format
msgid "Day"
msgstr ""
msgstr "Den"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:157
#, python-format
msgid "Edit"
msgstr ""
msgstr "Upravit"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:169
#, python-format
msgid "Enabled"
msgstr ""
msgstr "Povoleno"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:166
#, python-format
msgid "Do you want to edit the whole set of repeated events?"
msgstr ""
msgstr "Chcete upravit celou skupinu opakujících se událostí?"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:82
#, python-format
msgid "Filter"
msgstr ""
msgstr "Filtr"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:167
#, python-format
msgid "Repeat event"
msgstr ""
msgstr "Opakovat událost"
#. module: web_calendar
#. openerp-web
@ -152,56 +152,56 @@ msgstr ""
#: code:addons/web_calendar/static/src/js/calendar.js:180
#, python-format
msgid "Agenda"
msgstr ""
msgstr "Agenda"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:162
#, python-format
msgid "Time period"
msgstr ""
msgstr "Časový interval"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:158
#, python-format
msgid "Delete"
msgstr ""
msgstr "Smazat"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:152
#, python-format
msgid "Month"
msgstr ""
msgstr "Měsíc"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:168
#, python-format
msgid "Disabled"
msgstr ""
msgstr "Zakázáno"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:435
#, python-format
msgid "Create: "
msgstr ""
msgstr "Vytvořit: "
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:177
#, python-format
msgid "Year"
msgstr ""
msgstr "Rok"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:155
#, python-format
msgid "Cancel"
msgstr ""
msgstr "Zrušit"
#. module: web_calendar
#. openerp-web
@ -215,4 +215,4 @@ msgstr "Kalendář"
#: code:addons/web_calendar/static/src/js/calendar.js:93
#, python-format
msgid "Calendar view has not defined 'date_start' attribute."
msgstr ""
msgstr "Pohled kalendáře nemá definovaný atribut 'date_start'."

View File

@ -0,0 +1,217 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 07:11+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:153
#, python-format
msgid "New event"
msgstr "신규 이벤트"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:156
#, python-format
msgid "Details"
msgstr "상세 내용"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:154
#, python-format
msgid "Save"
msgstr "저장"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:101
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr "달력 화면에 'date_delay'유형의 != 플로트가 있습니다"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:149
#, python-format
msgid "Today"
msgstr "오늘"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:151
#, python-format
msgid "Week"
msgstr "주"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:163
#, python-format
msgid "Full day"
msgstr "하루 종일"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:161
#: code:addons/web_calendar/static/src/js/calendar.js:174
#, python-format
msgid "Description"
msgstr "설명"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:160
#, python-format
msgid "Event will be deleted permanently, are you sure?"
msgstr "이벤트가 영구 삭제될 것입니다. 확실하십니까?"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/xml/web_calendar.xml:8
#: code:addons/web_calendar/static/src/xml/web_calendar.xml:9
#, python-format
msgid "&nbsp;"
msgstr "&nbsp;"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:173
#, python-format
msgid "Date"
msgstr "날짜"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:470
#, python-format
msgid "Edit: "
msgstr "편집: "
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:150
#, python-format
msgid "Day"
msgstr "일"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:157
#, python-format
msgid "Edit"
msgstr "편집"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:169
#, python-format
msgid "Enabled"
msgstr "활성화 됨"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:166
#, python-format
msgid "Do you want to edit the whole set of repeated events?"
msgstr "반복 이벤트의 전체 세트를 편집하시겠습니까?"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:82
#, python-format
msgid "Filter"
msgstr "필터"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:167
#, python-format
msgid "Repeat event"
msgstr "이벤트 반복"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:172
#: code:addons/web_calendar/static/src/js/calendar.js:180
#, python-format
msgid "Agenda"
msgstr "의제"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:162
#, python-format
msgid "Time period"
msgstr "시한"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:158
#, python-format
msgid "Delete"
msgstr "삭제"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:152
#, python-format
msgid "Month"
msgstr "월"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:168
#, python-format
msgid "Disabled"
msgstr "비활성화 됨"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:435
#, python-format
msgid "Create: "
msgstr "생성: "
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:177
#, python-format
msgid "Year"
msgstr "년도"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:155
#, python-format
msgid "Cancel"
msgstr "취소"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:28
#, python-format
msgid "Calendar"
msgstr "달력"
#. module: web_calendar
#. openerp-web
#: code:addons/web_calendar/static/src/js/calendar.js:93
#, python-format
msgid "Calendar view has not defined 'date_start' attribute."
msgstr "달력 화면이 'date_start' 속성을 정의하지 않았습니다."

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"PO-Revision-Date: 2013-01-01 09:46+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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2013-01-02 05:26+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web_calendar
@ -44,6 +44,8 @@ msgstr "Guardar"
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr ""
"O campo 'date_delay' da vista de calendário tem um tipo diferente de um "
"número fracional"
#. module: web_calendar
#. openerp-web
@ -129,7 +131,7 @@ msgstr "Activado"
#: code:addons/web_calendar/static/src/js/calendar.js:166
#, python-format
msgid "Do you want to edit the whole set of repeated events?"
msgstr ""
msgstr "Quer editar o conjunto inteiro de eventos?"
#. module: web_calendar
#. openerp-web
@ -214,4 +216,4 @@ msgstr "Calendário"
#: code:addons/web_calendar/static/src/js/calendar.js:93
#, python-format
msgid "Calendar view has not defined 'date_start' attribute."
msgstr ""
msgstr "A vista de calendário não tem definido o atributo 'date_start'."

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Dusan Laznik <laznik@mentis.si>\n"
"PO-Revision-Date: 2012-12-31 13:56+0000\n"
"Last-Translator: Dusan Laznik (Mentis) <laznik@mentis.si>\n"
"Language-Team: Slovenian <sl@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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2013-01-01 05:19+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web_calendar
@ -43,7 +43,7 @@ msgstr "Shrani"
#: code:addons/web_calendar/static/src/js/calendar.js:101
#, python-format
msgid "Calendar view has a 'date_delay' type != float"
msgstr "Končni datum ni pravega tipa"
msgstr "Datum ni pravega tipa"
#. module: web_calendar
#. openerp-web
@ -115,7 +115,7 @@ msgstr "Dan"
#: code:addons/web_calendar/static/src/js/calendar.js:157
#, python-format
msgid "Edit"
msgstr "Uredi"
msgstr "Urejanje"
#. module: web_calendar
#. openerp-web

View File

@ -18,7 +18,7 @@
.openerp .oe_calendar .dhx_cal_select_menu .dhx_menu_icon.icon_edit {
display: none;
}
.openerp .oe_calendar .dhx_cal_navline {
.openerp .oe_calendar .dhx_cal_navline, .openerp .oe_calendar .dhx_cal_header {
z-index: auto;
}
.openerp .oe_calendar.oe_cal_month .dhx_cal_data table tr td:last-child div.dhx_month_body {

View File

@ -20,7 +20,7 @@
// Dhtmlx Scheduler css overrides
.dhx_cal_select_menu .dhx_menu_icon.icon_edit
display: none
.dhx_cal_navline
.dhx_cal_navline, .dhx_cal_header
// dhtmlx sets the index to 3 (in glossy theme)
// I didn't found the reason yet but it overlaps the
// dropdown menus and I want to avoid a z-index war.

View File

@ -414,6 +414,20 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
self.slow_create(event_id, event_obj);
});
},
get_form_popup_infos: function() {
var parent = this.getParent();
var infos = {
view_id: false,
title: this.name,
};
if (parent instanceof instance.web.ViewManager) {
infos.view_id = parent.get_view_id('form');
if (parent instanceof instance.web.ViewManagerAction && parent.action && parent.action.name) {
infos.title = parent.action.name;
}
}
return infos;
},
slow_create: function(event_id, event_obj) {
var self = this;
if (this.current_mode() === 'month') {
@ -431,9 +445,11 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
});
var something_saved = false;
var pop = new instance.web.form.FormOpenPopup(this);
var pop_infos = this.get_form_popup_infos();
pop.show_element(this.dataset.model, null, this.dataset.get_context(defaults), {
title: _t("Create: ") + ' ' + this.name,
title: _.str.sprintf(_t("Create: %s"), pop_infos.title),
disable_multiple_selection: true,
view_id: pop_infos.view_id,
});
pop.on('closed', self, function() {
if (!something_saved) {
@ -465,9 +481,11 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
});
} else {
var pop = new instance.web.form.FormOpenPopup(this);
var pop_infos = this.get_form_popup_infos();
var id_from_dataset = this.dataset.ids[index]; // dhtmlx scheduler loses id's type
pop.show_element(this.dataset.model, id_from_dataset, this.dataset.get_context(), {
title: _t("Edit: ") + this.name
title: _.str.sprintf(_t("Edit: %s"), pop_infos.title),
view_id: pop_infos.view_id,
});
pop.on('write_completed', self, function(){
self.reload_event(id_from_dataset);

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
"PO-Revision-Date: 2012-12-28 11:03+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: openerp-i18n-czech <openerp-i18n-czech@lists.launchpad.net>\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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2012-12-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Poedit-Language: Czech\n"
@ -76,7 +76,7 @@ msgstr "Činnosti"
#: code:addons/web_diagram/static/src/js/diagram.js:420
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web_diagram
#. openerp-web

View File

@ -0,0 +1,106 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 07:09+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:252
#: code:addons/web_diagram/static/src/js/diagram.js:317
#, python-format
msgid "Open: "
msgstr "열기: "
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:215
#, python-format
msgid ""
"Deleting this node cannot be undone.\n"
"It will also delete all connected transitions.\n"
"\n"
"Are you sure ?"
msgstr ""
"해당 노드를 삭제하는 작업은 복구할 수 없습니다.\n"
"또한 모든 연결된 전환을 삭제할 것입니다.\n"
"\n"
"확실하십니까?"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/xml/base_diagram.xml:13
#, python-format
msgid "New Node"
msgstr "신규 노드"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:310
#: code:addons/web_diagram/static/src/js/diagram.js:329
#, python-format
msgid "Transition"
msgstr "전환"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:11
#, python-format
msgid "Diagram"
msgstr "도표"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:244
#: code:addons/web_diagram/static/src/js/diagram.js:278
#, python-format
msgid "Activity"
msgstr "활동"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:420
#, python-format
msgid "%d / %d"
msgstr "%d / %d"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:283
#: code:addons/web_diagram/static/src/js/diagram.js:335
#, python-format
msgid "Create:"
msgstr "생성:"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:185
#, python-format
msgid "Are you sure?"
msgstr "확실하십니까?"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram.js:233
#, python-format
msgid ""
"Deleting this transition cannot be undone.\n"
"\n"
"Are you sure ?"
msgstr ""
"해당 전환을 삭제하는 작업은 복구할 수 없습니다.\n"
"\n"
"확실하십니까 ?"

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"PO-Revision-Date: 2012-12-30 20:03+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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2012-12-31 05:16+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web_diagram
@ -60,7 +60,7 @@ msgstr "Przejście"
#: code:addons/web_diagram/static/src/js/diagram.js:11
#, python-format
msgid "Diagram"
msgstr ""
msgstr "Diagram"
#. module: web_diagram
#. openerp-web
@ -75,7 +75,7 @@ msgstr "Aktywność"
#: code:addons/web_diagram/static/src/js/diagram.js:420
#, python-format
msgid "%d / %d"
msgstr ""
msgstr "%d / %d"
#. module: web_diagram
#. openerp-web

View File

@ -0,0 +1,32 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 06:02+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web_gantt
#. openerp-web
#: code:addons/web_gantt/static/src/xml/web_gantt.xml:10
#, python-format
msgid "Create"
msgstr "생성"
#. module: web_gantt
#. openerp-web
#: code:addons/web_gantt/static/src/js/gantt.js:11
#, python-format
msgid "Gantt"
msgstr "간트"

View File

@ -24,8 +24,8 @@ instance.web_gantt.GanttView = instance.web.View.extend({
var self = this;
this.fields_view = fields_view_get;
this.$el.addClass(this.fields_view.arch.attrs['class']);
return new instance.web.Model(this.dataset.model)
.call('fields_get').then(function (fields) {
return self.alive(new instance.web.Model(this.dataset.model)
.call('fields_get')).then(function (fields) {
self.fields = fields;
self.has_been_loaded.resolve();
});
@ -136,7 +136,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({
});
return group;
} else {
var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration, 100);
var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration || 1, 100);
_.each(task_infos, function(el) {
group.addChildTask(el.task_info);
});
@ -161,7 +161,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({
}
var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60);
var id = _.uniqueId("gantt_task_");
var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8), 100);
var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8) || 1, 100);
task_info.internal_task = task;
task_ids[id] = task_info;
return {task_info: task_info, task_start: task_start, task_stop: task_stop};
@ -195,6 +195,8 @@ instance.web_gantt.GanttView = instance.web.View.extend({
$(rendered).prependTo(td);
$(".oe_gantt_button_create", this.$el).click(this.on_task_create);
}
// Fix for IE to display the content of gantt view.
this.$el.find(".oe_gantt td:first > div, .oe_gantt td:eq(1) > div > div").css("overflow", "");
},
on_task_changed: function(task_obj) {
var self = this;

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Zdeněk Havlík <linuzh@gmail.com>\n"
"PO-Revision-Date: 2012-12-28 11:45+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: Czech <cs@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-22 07:38+0000\n"
"X-Launchpad-Export-Date: 2012-12-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web_graph
@ -22,14 +22,14 @@ msgstr ""
#: code:addons/web_graph/static/src/xml/web_graph.xml:12
#, python-format
msgid "Bars"
msgstr ""
msgstr "Sloupce"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:33
#, python-format
msgid "Show Data"
msgstr ""
msgstr "Zobrazit data"
#. module: web_graph
#. openerp-web
@ -43,95 +43,95 @@ msgstr "Graf"
#: code:addons/web_graph/static/src/xml/web_graph.xml:25
#, python-format
msgid "Inside"
msgstr ""
msgstr "Uvnitř"
#. 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 "Koláčový graf"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:28
#, python-format
msgid "Actions"
msgstr ""
msgstr "Akce"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:7
#, python-format
msgid "Graph Mode"
msgstr ""
msgstr "Režim grafu"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:18
#, python-format
msgid "Radar"
msgstr ""
msgstr "Radarový"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:34
#, python-format
msgid "Download as PNG"
msgstr ""
msgstr "Stáhnout jako PNG"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Top"
msgstr ""
msgstr "Nahoře"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:24
#, python-format
msgid "Hidden"
msgstr ""
msgstr "Skrytý"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:3
#, python-format
msgid "Graph Options"
msgstr ""
msgstr "Možnosti grafu"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Lines"
msgstr ""
msgstr "Čáry"
#. 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 "Prohodit osy"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:15
#, python-format
msgid "Areas"
msgstr ""
msgstr "Oblasti"

137
addons/web_graph/i18n/ko.po Normal file
View File

@ -0,0 +1,137 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 06:05+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\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 "&iacute;"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Pie"
msgstr "파이"
#. 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 "PNG 형식으로 다운로드"
#. 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,13 +8,13 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Virgílio Oliveira <virgilio.oliveira@multibase.pt>\n"
"PO-Revision-Date: 2012-12-31 09:05+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-22 07:39+0000\n"
"X-Launchpad-Export-Date: 2013-01-01 05:19+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: web_graph
@ -29,7 +29,7 @@ msgstr "Barras"
#: code:addons/web_graph/static/src/xml/web_graph.xml:33
#, python-format
msgid "Show Data"
msgstr ""
msgstr "Mostrar dados"
#. module: web_graph
#. openerp-web
@ -43,7 +43,7 @@ msgstr "Gráfico"
#: code:addons/web_graph/static/src/xml/web_graph.xml:25
#, python-format
msgid "Inside"
msgstr ""
msgstr "Interior"
#. module: web_graph
#. openerp-web
@ -99,7 +99,7 @@ msgstr "Topo"
#: code:addons/web_graph/static/src/xml/web_graph.xml:24
#, python-format
msgid "Hidden"
msgstr ""
msgstr "Escondido"
#. module: web_graph
#. openerp-web
@ -127,7 +127,7 @@ msgstr "Legenda"
#: code:addons/web_graph/static/src/xml/web_graph.xml:32
#, python-format
msgid "Switch Axis"
msgstr ""
msgstr "Mudar eixo"
#. module: web_graph
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Luiz Fernando M.França <Unknown>\n"
"PO-Revision-Date: 2013-01-26 06:21+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\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-22 07:39+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-27 05:10+0000\n"
"X-Generator: Launchpad (build 16451)\n"
#. module: web_graph
#. openerp-web
@ -85,7 +86,7 @@ msgstr "Radar"
#: code:addons/web_graph/static/src/xml/web_graph.xml:34
#, python-format
msgid "Download as PNG"
msgstr "Download um PNG"
msgstr "Download como PNG"
#. module: web_graph
#. openerp-web

View File

@ -246,7 +246,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
var result = [];
var ticks = {};
return obj.call("fields_view_get", [view_id, 'graph']).then(function(tmp) {
return this.alive(obj.call("fields_view_get", [view_id, 'graph', context]).then(function(tmp) {
view_get = tmp;
fields = view_get['fields'];
var toload = _.select(group_by, function(x) { return fields[x] === undefined });
@ -368,7 +368,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
'ticks': _.map(ticks, function(el, key) { return [el, key] })
};
return res;
});
}));
},
// Render the graph and update menu styles

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-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
"PO-Revision-Date: 2012-12-28 11:47+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: openerp-i18n-czech <openerp-i18n-czech@lists.launchpad.net>\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-22 07:39+0000\n"
"X-Launchpad-Export-Date: 2012-12-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Poedit-Language: Czech\n"
@ -23,14 +23,14 @@ msgstr ""
#: code:addons/web_kanban/static/src/js/kanban.js:704
#, python-format
msgid "Edit column"
msgstr ""
msgstr "Upravit sloupec"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:418
#, python-format
msgid "An error has occured while moving the record to this group."
msgstr ""
msgstr "Chyba při přesunu záznamu do této skupiny."
#. module: web_kanban
#. openerp-web
@ -51,35 +51,35 @@ msgstr "Neurčeno"
#: code:addons/web_kanban/static/src/js/kanban.js:723
#, python-format
msgid "Are you sure to remove this column ?"
msgstr ""
msgstr "Opravdu chcete odebrat tento sloupec?"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:42
#, python-format
msgid "Edit"
msgstr ""
msgstr "Upravit"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:190
#, python-format
msgid "Add column"
msgstr ""
msgstr "Přidat sloupec"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:1100
#, python-format
msgid "Create: "
msgstr ""
msgstr "Vytvořit: "
#. 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 "Přidat nový sloupec"
#. module: web_kanban
#. openerp-web
@ -87,21 +87,21 @@ msgstr ""
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40
#, python-format
msgid "Fold"
msgstr ""
msgstr "Sbalit"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:91
#, python-format
msgid "Add"
msgstr ""
msgstr "Přidat"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:35
#, python-format
msgid "Quick create"
msgstr ""
msgstr "Rychle vytvořit"
#. module: web_kanban
#. openerp-web
@ -115,7 +115,7 @@ msgstr "Opravdu jste si jisti, že chcete smazat tento záznam ?"
#: code:addons/web_kanban/static/src/js/kanban.js:694
#, python-format
msgid "Unfold"
msgstr ""
msgstr "Rozbalit"
#. module: web_kanban
#. openerp-web
@ -129,7 +129,7 @@ msgstr "Ukázat více... ("
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:92
#, python-format
msgid "Cancel"
msgstr ""
msgstr "Zrušit"
#. module: web_kanban
#. openerp-web
@ -144,18 +144,18 @@ msgstr "zbývajících)"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:91
#, python-format
msgid "or"
msgstr ""
msgstr "nebo"
#. 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 "Smazat"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-22 14:05+0000\n"
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
"PO-Revision-Date: 2013-01-12 00:07+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-23 05:09+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-13 05:27+0000\n"
"X-Generator: Launchpad (build 16420)\n"
#. module: web_kanban
#. openerp-web
@ -87,7 +87,7 @@ msgstr "Aggiungi una nuova colonna"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40
#, python-format
msgid "Fold"
msgstr "Chiudi"
msgstr "Restringi"
#. module: web_kanban
#. openerp-web

View File

@ -0,0 +1,160 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 06:02+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\n"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:704
#, python-format
msgid "Edit column"
msgstr "열 편집"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:418
#, 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/js/kanban.js:10
#, python-format
msgid "Kanban"
msgstr "간판"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:557
#, python-format
msgid "Undefined"
msgstr "정의되지 않음"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:723
#, 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:42
#, python-format
msgid "Edit"
msgstr "편집"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:190
#, python-format
msgid "Add column"
msgstr "열 추가"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/js/kanban.js:1100
#, 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:694
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:40
#, python-format
msgid "Fold"
msgstr "접기"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:91
#, 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:936
#, 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:694
#, python-format
msgid "Unfold"
msgstr "펼치기"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:73
#, python-format
msgid "Show more... ("
msgstr "더 보기... ("
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:92
#, python-format
msgid "Cancel"
msgstr "취소"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:73
#, python-format
msgid "remaining)"
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:91
#, python-format
msgid "or"
msgstr "또는"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:51
#, python-format
msgid "99+"
msgstr "99+"
#. module: web_kanban
#. openerp-web
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:43
#, python-format
msgid "Delete"
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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Cristiano Korndörfer <codigo.aberto@dorfer.com.br>\n"
"PO-Revision-Date: 2013-01-26 06:23+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\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-22 07:39+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-01-27 05:10+0000\n"
"X-Generator: Launchpad (build 16451)\n"
#. module: web_kanban
#. openerp-web
@ -93,7 +94,7 @@ msgstr "Dobrar"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:91
#, python-format
msgid "Add"
msgstr "Incluir"
msgstr "Adicionar"
#. module: web_kanban
#. openerp-web
@ -107,7 +108,7 @@ msgstr "Criar rapidamente"
#: code:addons/web_kanban/static/src/js/kanban.js:936
#, python-format
msgid "Are you sure you want to delete this record ?"
msgstr "Você tem certeza que quer deletar este registro ?"
msgstr "Você tem certeza que quer excluir este registro ?"
#. 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Ahmet Altınışık <Unknown>\n"
"PO-Revision-Date: 2013-02-15 20:44+0000\n"
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
"Language-Team: Turkish <tr@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-22 07:39+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 05:40+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: web_kanban
#. openerp-web
@ -29,7 +29,7 @@ msgstr "Sütunu düzenle"
#: code:addons/web_kanban/static/src/js/kanban.js:418
#, python-format
msgid "An error has occured while moving the record to this group."
msgstr ""
msgstr "Kayıt bu gruba taşınırken bir hata oluştu."
#. module: web_kanban
#. openerp-web
@ -150,7 +150,7 @@ msgstr "veya"
#: code:addons/web_kanban/static/src/xml/web_kanban.xml:51
#, python-format
msgid "99+"
msgstr ""
msgstr "99+"
#. module: web_kanban
#. openerp-web

View File

@ -5,6 +5,7 @@
}
.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_dummy_cell {
background: url(/web/static/src/img/form_sheetbg.png);
width: 100%;
}
.openerp .oe_kanban_view .ui-sortable-placeholder {
border: 1px solid rgba(0, 0, 0, 0.1);
@ -32,7 +33,7 @@
clear: both;
}
.openerp .oe_kanban_view .oe_kanban_content {
word-break: break-all;
word-wrap: break-word;
}
.openerp .oe_kanban_view .oe_kanban_content .oe_star_on, .openerp .oe_kanban_view .oe_kanban_content .oe_star_off {
color: #cccccc;
@ -77,13 +78,46 @@
font-size: 13px;
}
.openerp .oe_kanban_view .oe_kanban_group_title {
position: relative;
font-size: 16px;
font-weight: bold;
color: #333333;
text-shadow: 0 1px 0 white;
margin-right: 30px;
width: 200px;
}
.openerp .oe_kanban_view .oe_kanban_group_title > span {
.openerp .oe_kanban_view .oe_kanban_group_title .oe_kanban_group_title_text {
margin-right: 4px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.openerp .oe_kanban_view .oe_kanban_group_length {
text-align: center;
display: none;
}
.openerp .oe_kanban_view .oe_kanban_group_length .oe_tag {
position: relative;
top: +8px;
font-weight: bold;
}
.openerp .oe_kanban_view .oe_fold_column .oe_kanban_group_length {
position: absolute;
top: -1px;
right: -14px;
float: right;
display: block;
}
.openerp .oe_kanban_view .oe_kanban_header:hover .oe_kanban_group_length {
display: none;
}
.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header {
width: 185px;
min-width: 185px;
}
.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column.oe_kanban_group_folded, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header.oe_kanban_group_folded {
width: auto;
min-width: 30px;
}
.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header {
vertical-align: top;
@ -102,9 +136,6 @@
border-left: 1px solid #f0f8f8;
border-right: 1px solid #b9b9b9;
}
.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header {
width: 1%;
}
.openerp .oe_kanban_view .oe_form .oe_kanban_column {
padding: 0px;
background: white;
@ -119,7 +150,8 @@
.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add {
display: none;
}
.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical {
.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical,
.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length {
display: block;
}
.openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban {
@ -141,7 +173,7 @@
display: none;
position: relative;
opacity: 0.75;
top: 20px;
top: 26px;
}
.openerp .oe_kanban_view .oe_kanban_add, .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle {
margin-left: 4px;
@ -153,6 +185,7 @@
}
.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle {
top: -2px;
height: 14px;
}
.openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle {
cursor: pointer;
@ -165,7 +198,7 @@
margin: 4px 0;
}
.openerp .oe_kanban_view .oe_kanban_no_group .oe_kanban_quick_create {
width: 200px;
width: 185px;
padding: 10px;
}
.openerp .oe_kanban_view .oe_kanban_quick_create input {
@ -432,6 +465,14 @@
line-height: 12px;
font-size: 22px;
}
.openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags {
margin-right: 0;
}
.openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags .oe_tag {
display: inline-block;
padding: 0 2px;
line-height: 14px;
}
.openerp .oe_kanban_view .oe_kanban_footer_left .oe_kanban_mail_new {
line-height: 18px;
background-color: #8a89ba;

View File

@ -53,6 +53,14 @@
height: inherit
&.oe_kanban_grouped .oe_kanban_dummy_cell
background: url(/web/static/src/img/form_sheetbg.png)
width: 100%
.oe_kanban_group_length
text-align: center
display: none
.oe_tag
position: relative
top: +8px
font-weight: bold
.ui-sortable-placeholder
border: 1px solid rgba(0,0,0,0.1)
visibility: visible !important
@ -69,7 +77,7 @@
.oe_kanban_clear
clear: both
.oe_kanban_content
word-break: break-all
word-wrap: break-word
.oe_star_on, .oe_star_off
color: #ccc
text-shadow: 0 0 2px black
@ -105,12 +113,32 @@
font-weight: normal
font-size: 13px
.oe_kanban_group_title
position: relative
font-size: 16px
font-weight: bold
color: #333333
text-shadow: 0 1px 0 white
> span
margin-right: 30px
width: 200px
.oe_kanban_group_title_text
margin-right: 4px
white-space: nowrap
overflow: hidden
text-overflow: ellipsis
.oe_fold_column
.oe_kanban_group_length
position: absolute
top: -1px
right: -14px
float: right
display: block
&.oe_kanban_grouped
.oe_kanban_column, .oe_kanban_group_header
width: 185px
min-width: 185px
&.oe_kanban_group_folded
width: auto
min-width: 30px
.oe_kanban_column, .oe_kanban_group_header
vertical-align: top
@ -126,10 +154,6 @@
background: #f0eeee
border-left: 1px solid #f0f8f8
border-right: 1px solid #b9b9b9
&.oe_kanban_grouped
.oe_kanban_group_header
width: 1%
.oe_form
.oe_kanban_column
padding: 0px
@ -143,7 +167,7 @@
.oe_kanban_group_folded
.oe_kanban_group_title, &.oe_kanban_column *, .oe_kanban_aggregates, .oe_kanban_add
display: none
.oe_kanban_group_title_vertical
.oe_kanban_group_title_vertical, .oe_kanban_group_length
display: block
.oe_dropdown_kanban
left: -5px
@ -162,7 +186,7 @@
display: none
position: relative
opacity: 0.75
top: 20px
top: 26px
// }}}
// KanbanQuickCreate {{{
.oe_kanban_add, .oe_kanban_header .oe_dropdown_toggle
@ -173,6 +197,7 @@
top: -8px
.oe_kanban_header .oe_dropdown_toggle
top: -2px
height: 14px;
.oe_kanban_card, .oe_dropdown_toggle
cursor: pointer
display: inline-block
@ -182,7 +207,7 @@
.oe_kanban_quick_create_buttons
margin: 4px 0
.oe_kanban_no_group .oe_kanban_quick_create
width: 200px
width: 185px
padding: 10px
.oe_kanban_quick_create input
@include box-sizing(border-box)
@ -233,8 +258,9 @@
.oe_kanban_title
font-weight: bold
margin: 2px 4px
&.oe_kanban_grouped .oe_kanban_record
margin-bottom: 4px
&.oe_kanban_grouped
.oe_kanban_record
margin-bottom: 4px
.oe_kanban_avatar_smallbox
height: 40px
width: 40px
@ -381,6 +407,12 @@
.oe_e
line-height: 12px
font-size: 22px
.oe_tags
margin-right: 0
.oe_tag
display: inline-block
padding: 0 2px
line-height: 14px
.oe_kanban_mail_new
line-height: 18px
background-color: #8a89ba

View File

@ -134,7 +134,9 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
switch (node.tag) {
case 'field':
if (this.fields_view.fields[node.attrs.name].type === 'many2many') {
this.many2manys.push(node.attrs.name);
if (_.indexOf(this.many2manys, node.attrs.name) < 0) {
this.many2manys.push(node.attrs.name);
}
node.tag = 'div';
node.attrs['class'] = (node.attrs['class'] || '') + ' oe_form_field oe_tags';
} else {
@ -227,15 +229,15 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
this.search_domain = domain;
this.search_context = context;
this.search_group_by = group_by;
$.when(this.has_been_loaded).done(function() {
return $.when(this.has_been_loaded).then(function() {
self.group_by = group_by.length ? group_by[0] : self.fields_view.arch.attrs.default_group_by;
self.group_by_field = self.fields_view.fields[self.group_by] || {};
self.grouped_by_m2o = (self.group_by_field.type === 'many2one');
self.$buttons.find('.oe_alternative').toggle(self.grouped_by_m2o);
self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o);
var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(self.group_by);
$.when(grouping).done(function(groups) {
self.do_clear_groups();
var grouping_fields = self.group_by ? [self.group_by].concat(_.keys(self.aggregates)) : undefined;
var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(grouping_fields);
return self.alive($.when(grouping)).done(function(groups) {
if (groups) {
self.do_process_groups(groups);
} else {
@ -248,6 +250,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
var self = this;
this.$el.removeClass('oe_kanban_ungrouped').addClass('oe_kanban_grouped');
this.add_group_mutex.exec(function() {
self.do_clear_groups();
self.dataset.ids = [];
if (!groups.length) {
self.no_result();
@ -275,6 +278,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
this.$el.removeClass('oe_kanban_grouped').addClass('oe_kanban_ungrouped');
this.add_group_mutex.exec(function() {
var def = $.Deferred();
self.do_clear_groups();
self.dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }).done(function(records) {
var kgroup = new instance.web_kanban.KanbanGroup(self, records, null, self.dataset);
self.do_add_groups([kgroup]).done(function() {
@ -322,7 +326,6 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
},
on_groups_started: function() {
var self = this;
this.compute_groups_width();
if (this.group_by) {
// Kanban cards drag'n'drop
var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards');
@ -420,27 +423,6 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
});
}
},
compute_groups_width: function() {
var unfolded = 0;
var self = this;
_.each(this.groups, function(group) {
unfolded += group.state.folded ? 0 : 1;
group.$el.children(':first').css('width', '');
});
_.each(this.groups, function(group) {
if (!group.state.folded) {
if (182*unfolded>=self.$el.width()) {
group.$el.children(':first').css('width', "170px");
} else if (262*unfolded<self.$el.width()) {
group.$el.children(':first').css('width', "250px");
} else {
// -12 because of padding 6 between cards
// -1 because of the border of the latest dummy column
group.$el.children(':first').css('width', Math.floor((self.$el.width()-1)/unfolded)-12 + 'px');
}
}
});
},
do_show: function() {
if (this.$buttons) {
@ -653,9 +635,10 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
'limit': self.view.limit,
'offset': self.dataset_offset += self.view.limit
}).then(function(records) {
self.view.dataset.ids = ids.concat(self.view.dataset.ids);
self.view.dataset.ids = ids.concat(self.dataset.ids);
self.do_add_records(records);
self.compute_cards_auto_height();
self.view.postprocess_m2m_tags();
return records;
});
},
@ -695,7 +678,6 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
},
do_action_toggle_fold: function() {
this.do_toggle_fold();
this.view.compute_groups_width();
},
do_action_edit: function() {
var self = this;

View File

@ -34,30 +34,37 @@
<t t-if="widget.view._is_quick_create_enabled()">
<div class="oe_kanban_add oe_e" title="Quick create">]</div>
</t>
<div class="oe_dropdown_toggle oe_dropdown_kanban">
<span class="oe_e">í</span>
<ul class="oe_dropdown_menu oe_kanban_group_dropdown">
<li><a data-action="toggle_fold" href="#">Fold</a></li>
<t t-if="widget.view.grouped_by_m2o and widget.value">
<li><a data-action="edit" href="#">Edit</a></li>
<li><a data-action="delete" href="#">Delete</a></li>
</t>
</ul>
</div>
<div class="oe_fold_column">
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
<span><t t-esc="widget.title"/></span>
<span class="oe_kanban_group_length oe_tag" style="position:relative; top:-2px;">
<div class="oe_dropdown_toggle oe_dropdown_kanban">
<div class="oe_kanban_group_length">
<span class="oe_tag">
<t t-if="widget.group.get('length') &gt; 99"> 99+ </t><t t-if="widget.group.get('length') &lt;= 99"> <t t-esc="widget.group.get('length')"/> </t>
</span>
</div>
<span class="oe_e">í</span>
<ul class="oe_dropdown_menu oe_kanban_group_dropdown">
<li><a data-action="toggle_fold" href="#">Fold</a></li>
<t t-if="widget.view.grouped_by_m2o and widget.value">
<li><a data-action="edit" href="#">Edit</a></li>
<li><a data-action="delete" href="#">Delete</a></li>
</t>
</ul>
</div>
<div class="oe_fold_column">
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
<div class="oe_kanban_group_length oe_tag">
<t t-if="widget.group.get('length') &gt; 99"> 99+ </t><t t-if="widget.group.get('length') &lt;= 99"> <t t-esc="widget.group.get('length')"/> </t>
</div>
<div class="oe_kanban_group_title_text" t-att-title="widget.title"><t t-esc="widget.title"/></div>
</div>
<ul class="oe_kanban_aggregates">
<li t-foreach="widget.aggregates" t-as="aggregate">
<span><t t-esc="aggregate"/>:</span> <t t-esc="aggregate_value"/>
</li>
</ul>
</div>
<span t-if="widget.title" class="oe_kanban_group_title_vertical"><t t-esc="widget.title"/></span>
<span t-if="widget.title" class="oe_kanban_group_title_vertical">
<t t-esc="widget.title"/>
</span>
</div>
</t>
<t t-if="! widget.view.group_by &amp;&amp; widget.view._is_quick_create_enabled()">

View File

@ -0,0 +1,184 @@
# Czech translation for openerp-web
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-28 11:50+0000\n"
"Last-Translator: Jan Grmela <grmela@gmail.com>\n"
"Language-Team: Czech <cs@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-29 05:36+0000\n"
"X-Generator: Launchpad (build 16378)\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 "Následující pole jsou neplatná:"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:63
#, python-format
msgid "Create"
msgstr "Vytvořit"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:986
#, python-format
msgid "New Field"
msgstr "Nové pole"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:386
#, python-format
msgid "Do you really wants to create an inherited view here?"
msgstr "Opravdu zde chcete vytvořit zděděný pohled?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:396
#, python-format
msgid "Preview"
msgstr "Náhled"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:183
#, python-format
msgid "Do you really want to remove this view?"
msgstr "Opravdu chcete odstranit tento pohled?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:90
#, python-format
msgid "Save"
msgstr "Uložit"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:393
#, python-format
msgid "Select an element"
msgstr "Vyberte prvek"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:828
#: code:addons/web_view_editor/static/src/js/view_editor.js:954
#, python-format
msgid "Update"
msgstr "Aktualizovat"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:263
#, python-format
msgid "Please select view in list :"
msgstr "Prosím vyberte pohled ze seznamu:"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:37
#, python-format
msgid "Manage Views (%s)"
msgstr "Spravovat pohledy (%s)"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:13
#, python-format
msgid "Manage Views"
msgstr "Spravovat pohledy"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:825
#: code:addons/web_view_editor/static/src/js/view_editor.js:951
#, python-format
msgid "Properties"
msgstr "Vlastnosti"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:64
#, python-format
msgid "Edit"
msgstr "Upravit"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:14
#, python-format
msgid "Could not find current view declaration"
msgstr "Nelze nalézt definici aktuálního pohledu"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:382
#, python-format
msgid "Inherited View"
msgstr "Zděděný pohled"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:65
#, python-format
msgid "Remove"
msgstr "Odebrat"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:516
#, python-format
msgid "Do you really want to remove this node?"
msgstr "Opravdu chcete odstranit tento uzel?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:390
#, python-format
msgid "Can't Update View"
msgstr "Nepodařilo se aktualizovat pohled"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:379
#, python-format
msgid "View Editor %d - %s"
msgstr "Editor pohledů %d - %s"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:112
#: code:addons/web_view_editor/static/src/js/view_editor.js:846
#: code:addons/web_view_editor/static/src/js/view_editor.js:974
#, python-format
msgid "Cancel"
msgstr "Zrušit"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:66
#: code:addons/web_view_editor/static/src/js/view_editor.js:413
#, python-format
msgid "Close"
msgstr "Zavřít"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:88
#, python-format
msgid "Create a view (%s)"
msgstr "Vytvořit pohled (%s)"

View File

@ -0,0 +1,184 @@
# Korean 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: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-26 08:10+0000\n"
"Last-Translator: Josh Kim <joshkkim@gmail.com>\n"
"Language-Team: Korean <ko@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-02-27 05:09+0000\n"
"X-Generator: Launchpad (build 16506)\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 "다음 필드는 유효하지 않습니다 :"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:63
#, python-format
msgid "Create"
msgstr "생성"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:986
#, python-format
msgid "New Field"
msgstr "신규 필드"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:386
#, python-format
msgid "Do you really wants to create an inherited view here?"
msgstr "정말로 여기에 전승된 화면을 생성하길 원하십니까?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:396
#, python-format
msgid "Preview"
msgstr "미리보기"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:183
#, python-format
msgid "Do you really want to remove this view?"
msgstr "정말로 해당 화면을 제거하시겠습니까?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:90
#, python-format
msgid "Save"
msgstr "저장"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:393
#, python-format
msgid "Select an element"
msgstr "요소 선택"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:828
#: code:addons/web_view_editor/static/src/js/view_editor.js:954
#, python-format
msgid "Update"
msgstr "업데이트"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:263
#, python-format
msgid "Please select view in list :"
msgstr "목록에서 화면을 선택하세요 :"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:37
#, python-format
msgid "Manage Views (%s)"
msgstr "화면 관리 (%s)"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:13
#, python-format
msgid "Manage Views"
msgstr "화면 관리"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:825
#: code:addons/web_view_editor/static/src/js/view_editor.js:951
#, python-format
msgid "Properties"
msgstr "속성"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:64
#, python-format
msgid "Edit"
msgstr "편집"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:14
#, python-format
msgid "Could not find current view declaration"
msgstr "현재 화면 선언을 찾을 수 없음"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:382
#, python-format
msgid "Inherited View"
msgstr "전승 화면"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:65
#, python-format
msgid "Remove"
msgstr "제거"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:516
#, python-format
msgid "Do you really want to remove this node?"
msgstr "정말로 이 노드를 삭제하시겠습니까?"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:390
#, python-format
msgid "Can't Update View"
msgstr "화면을 업데이트 할 수 없음"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:379
#, python-format
msgid "View Editor %d - %s"
msgstr "화면 편집기 %d - %s"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:112
#: code:addons/web_view_editor/static/src/js/view_editor.js:846
#: code:addons/web_view_editor/static/src/js/view_editor.js:974
#, python-format
msgid "Cancel"
msgstr "취소"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:66
#: code:addons/web_view_editor/static/src/js/view_editor.js:413
#, python-format
msgid "Close"
msgstr "닫기"
#. module: web_view_editor
#. openerp-web
#: code:addons/web_view_editor/static/src/js/view_editor.js:88
#, python-format
msgid "Create a view (%s)"
msgstr "화면 생성 (%s)"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2012-12-21 23:00+0000\n"
"Last-Translator: Mustafa TÜRKER <Unknown>\n"
"PO-Revision-Date: 2013-02-15 20:44+0000\n"
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
"Language-Team: Turkish <tr@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-22 07:39+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 05:40+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: web_view_editor
#. openerp-web
@ -150,7 +150,7 @@ msgstr "Bu düğümü(node) silmek istediğinize emin misiniz?"
#: code:addons/web_view_editor/static/src/js/view_editor.js:390
#, python-format
msgid "Can't Update View"
msgstr ""
msgstr "Görünüm Güncellenemiyor"
#. module: web_view_editor
#. openerp-web