diff options
| author | Jiten (OpenERP) <jra@tinyerp.com> | 2011-10-25 11:43:27 +0530 |
|---|---|---|
| committer | Jiten (OpenERP) <jra@tinyerp.com> | 2011-10-25 11:43:27 +0530 |
| commit | 417cae1645d11ee173bbb2dcebe112009b520cd7 (patch) | |
| tree | 501bb01b6d8688258155661577669d85fe887879 | |
| parent | 27598512e3e267d92a863c7df41974208ea8b554 (diff) | |
| parent | f097e140b8b51437258ae03000b37f1677f6098b (diff) | |
[Merge] Merge from openerp-web
bzr revid: bth@tinyerp.com-20111020062457-h4v2ud105ver5u5y
bzr revid: jra@tinyerp.com-20111025061327-v676oxmsx3xz66s3
41 files changed, 2461 insertions, 338 deletions
diff --git a/addons/web/common/nonliterals.py b/addons/web/common/nonliterals.py index 42dbe9cfd4f..f6e81894a4c 100644 --- a/addons/web/common/nonliterals.py +++ b/addons/web/common/nonliterals.py @@ -21,12 +21,14 @@ class NonLiteralEncoder(simplejson.encoder.JSONEncoder): if isinstance(object, Domain): return { '__ref': 'domain', - '__id': object.key + '__id': object.key, + '__debug': object.get_domain_string() } elif isinstance(object, Context): return { '__ref': 'context', - '__id': object.key + '__id': object.key, + '__debug': object.get_context_string() } elif isinstance(object, CompoundDomain): return { @@ -42,7 +44,7 @@ class NonLiteralEncoder(simplejson.encoder.JSONEncoder): } raise TypeError('Could not encode unknown non-literal %s' % object) -_ALLOWED_KEYS = frozenset(['__ref', "__id", '__domains', +_ALLOWED_KEYS = frozenset(['__ref', "__id", '__domains', '__debug', '__contexts', '__eval_context', 'own_values']) def non_literal_decoder(dct): @@ -53,8 +55,8 @@ def non_literal_decoder(dct): ``own_values`` dict key. """ if '__ref' in dct: - for x in dct.keys(): - if not x in _ALLOWED_KEYS: + for x in dct: + if x not in _ALLOWED_KEYS: raise ValueError("'%s' key not allowed in non literal domain/context" % x) if dct['__ref'] == 'domain': domain = Domain(None, key=dct['__id']) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 55e23aae979..6cc46b476a9 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -526,7 +526,7 @@ def fix_view_modes(action): if 'views' not in action: generate_views(action) - if action.pop('view_type') != 'form': + if action.pop('view_type', 'form') != 'form': return action action['views'] = [ @@ -1373,10 +1373,9 @@ class Reports(View): if 'report_type' in action: report_data['report_type'] = action['report_type'] if 'datas' in action: - if 'form' in action['datas']: - report_data['form'] = action['datas']['form'] if 'ids' in action['datas']: - report_ids = action['datas']['ids'] + report_ids = action['datas'].pop('ids') + report_data.update(action['datas']) report_id = report_srv.report( req.session._db, req.session._uid, req.session._password, @@ -1413,7 +1412,7 @@ class Import(View): return fields @openerpweb.httprequest - def detect_data(self, req, csvfile, csvsep, csvdel, csvcode, jsonp): + def detect_data(self, req, csvfile, csvsep=',', csvdel='"', csvcode='utf-8', jsonp='callback'): try: data = list(csv.reader( csvfile, quotechar=str(csvdel), delimiter=str(csvsep))) diff --git a/addons/web/po/es.po b/addons/web/po/es.po index 5302560f867..508b4e62245 100644 --- a/addons/web/po/es.po +++ b/addons/web/po/es.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:38+0200\n" -"PO-Revision-Date: 2011-10-19 01:06+0000\n" +"PO-Revision-Date: 2011-10-19 07:27+0000\n" "Last-Translator: Amós Oviedo <Unknown>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-10-19 06:05+0000\n" -"X-Generator: Launchpad (build 14157)\n" +"X-Launchpad-Export-Date: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" @@ -349,7 +349,7 @@ msgstr "Duplicar" #: addons/web/static/src/xml/base.xml:0 msgid "Readonly/Editable" -msgstr "Sólo lectura/Editable" +msgstr "Sólo Lectura/Editable" #: addons/web/static/src/xml/base.xml:0 msgid "<<" diff --git a/addons/web/po/fr.po b/addons/web/po/fr.po new file mode 100644 index 00000000000..a4287a31030 --- /dev/null +++ b/addons/web/po/fr.po @@ -0,0 +1,678 @@ +# French translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-10-23 12:20+0000\n" +"Last-Translator: Xavier (Open ERP) <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: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" + +#: addons/web/static/src/js/view_form.js:355 +msgid "" +"Warning, the record has been modified, your changes will be discarded." +msgstr "" +"Attention, l'enregistrement a été modifié, vos changements seront perdus." + +#: addons/web/static/src/js/view_form.js:1659 +msgid "<em> Search More...</em>" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1672 +#, python-format +msgid "<em> Create \"<strong>%s</strong>\"</em>" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1678 +msgid "<em> Create and Edit...</em>" +msgstr "" + +#: addons/web/static/src/js/views.js:568 +msgid "You must choose at least one record." +msgstr "Vous devez choisir au moins un enregistrement" + +#: addons/web/static/src/js/views.js:569 +msgid "Warning" +msgstr "Attention" + +#: addons/web/static/src/js/views.js:609 +msgid "Translations" +msgstr "Traductions" + +#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0 +msgid "Save" +msgstr "Enregistrer" + +#: addons/web/static/src/js/views.js:615 +msgid "Close" +msgstr "Fermer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "x" +msgstr "x" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{title}" +msgstr "#{title}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{text}" +msgstr "#{text}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Powered by" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "openerp.com" +msgstr "openerp.com" + +#: addons/web/static/src/xml/base.xml:0 +msgid "." +msgstr "." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Loading..." +msgstr "Chargement..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create" +msgstr "Créer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Drop" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Backup" +msgstr "Archiver" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Restore" +msgstr "Restaurer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password" +msgstr "Mot de passe" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Back to Login" +msgstr "Retour à la page d'authentification" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CREATE DATABASE" +msgstr "CRÉER LA BASE DE DONNÉES" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master password:" +msgstr "Mot de passe principal:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New database name:" +msgstr "Nom de la nouvelle base de données :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Load Demonstration data:" +msgstr "Charger les données de démonstration:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Default language:" +msgstr "Langue par défaut :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Admin password:" +msgstr "Mot de passe administrateur:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm password:" +msgstr "Confirmer le mot de passe:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "DROP DATABASE" +msgstr "SUPPRIMER LA BASE DE DONNÉES" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database:" +msgstr "Base de données :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master Password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "BACKUP DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "RESTORE DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "File:" +msgstr "Fichier :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CHANGE MASTER PASSWORD" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New master password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm new master password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User:" +msgstr "Utilisateur :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password:" +msgstr "Mot de passe :" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database" +msgstr "Base de données" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Login" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Bad username or password" +msgstr "Mauvais identfiant ou mot de passe" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"We think that daily job activities can be more intuitive, efficient, " +"automated, .. and even fun." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP's vision to be:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Full featured" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Today's enterprise challenges are multiple. We provide one module for each " +"need." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open Source" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"To Build a great product, we rely on the knowledge of thousands of " +"contributors." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User Friendly" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"In order to be productive, people need clean and easy to use interface." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(" +msgstr "(" + +#: addons/web/static/src/xml/base.xml:0 +msgid ")" +msgstr ")" + +#: addons/web/static/src/xml/base.xml:0 +msgid "LOGOUT" +msgstr "DÉCONNEXION" + +#: addons/web/static/src/xml/base.xml:0 +msgid "«" +msgstr "«" + +#: addons/web/static/src/xml/base.xml:0 +msgid "»" +msgstr "»" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_menu_item" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_submenu_item" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Hide this tip" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Disable all tips" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View#" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View labels" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Sidebar Relates" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Field" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid ":" +msgstr ":" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate view" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate sidebar" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delete" +msgstr "Supprimer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "First" +msgstr "Premier" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<" +msgstr "<" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">" +msgstr ">" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Last" +msgstr "Dernier" + +#: addons/web/static/src/xml/base.xml:0 +msgid "♻" +msgstr "♻" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Edit" +msgstr "Enregistrer et éditer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create & Edit" +msgstr "Créer et éditer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Duplicate" +msgstr "Dupliquer" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Readonly/Editable" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<<" +msgstr "<<" + +#: addons/web/static/src/xml/base.xml:0 +msgid "0" +msgstr "0" + +#: addons/web/static/src/xml/base.xml:0 +msgid "/" +msgstr "/" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">>" +msgstr ">>" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Unhandled widget" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "?" +msgstr "?" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Done" +msgstr "Terminé" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open..." +msgstr "Ouvrir..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create..." +msgstr "Créer..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Search..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "..." +msgstr "..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Uploading ..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Select" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save As" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Clear" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Advanced Filter" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Filters --" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Actions --" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save Filter" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Manage Filters" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Filter Name:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Any of the following conditions must match" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "All the following conditions must match" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "None of the following conditions must match" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add condition" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "and" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & New" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Close" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"This wizard will export all data that matches the current search criteria to " +"a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Type:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Compatible Export" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export all Data" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Formats" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Available fields" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields to export" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save fields list" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove All" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Name" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid " " +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save as:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Saved exports:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Old Password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New Password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm Password:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "1. Import a .CSV file" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +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 "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CSV File:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "2. Check your file format" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Options" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Does your file have titles?" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Separator:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delimiter:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Encoding:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "UTF-8" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Latin 1" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Lines to skip" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "The import failed due to:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Here is a preview of the file we could not import:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP Web" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Version" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP is a trademark of the" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP SA Company" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Licenced under the terms of" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "GNU Affero General Public License" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "About OpenERP" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"is a free enterprise-scale software system that is designed to boost\n" +" productivity and profit through data integration. It connects, " +"improves and\n" +" manages business processes in areas such as sales, finance, " +"supply chain,\n" +" project management, production, services, CRM, etc..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"The system is platform-independent, and can be installed on Windows, Mac OS " +"X,\n" +" and various Linux and other Unix-based distributions. Its " +"architecture enables\n" +" new functionality to be rapidly created, modifications to be " +"made to a\n" +" production system and migration to a new version to be " +"straightforward." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Depending on your needs, OpenERP is available through a web or application " +"client." +msgstr "" diff --git a/addons/web/po/gl.po b/addons/web/po/gl.po index a090482293e..b43664b9bee 100644 --- a/addons/web/po/gl.po +++ b/addons/web/po/gl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:38+0200\n" -"PO-Revision-Date: 2011-10-19 01:05+0000\n" +"PO-Revision-Date: 2011-10-19 07:54+0000\n" "Last-Translator: Amós Oviedo <Unknown>\n" "Language-Team: Galician <gl@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: 2011-10-19 06:05+0000\n" -"X-Generator: Launchpad (build 14157)\n" +"X-Launchpad-Export-Date: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" @@ -316,171 +316,171 @@ msgstr "Primeiro" #: addons/web/static/src/xml/base.xml:0 msgid "<" -msgstr "" +msgstr "<" #: addons/web/static/src/xml/base.xml:0 msgid ">" -msgstr "" +msgstr ">" #: addons/web/static/src/xml/base.xml:0 msgid "Last" -msgstr "" +msgstr "Último" #: addons/web/static/src/xml/base.xml:0 msgid "♻" -msgstr "" +msgstr "♻" #: addons/web/static/src/xml/base.xml:0 msgid "Save & Edit" -msgstr "" +msgstr "Gardar e Editar" #: addons/web/static/src/xml/base.xml:0 msgid "Create & Edit" -msgstr "" +msgstr "Crear e Editar" #: addons/web/static/src/xml/base.xml:0 msgid "New" -msgstr "" +msgstr "Novo" #: addons/web/static/src/xml/base.xml:0 msgid "Duplicate" -msgstr "" +msgstr "Duplicar" #: addons/web/static/src/xml/base.xml:0 msgid "Readonly/Editable" -msgstr "" +msgstr "Só Lectura/Editable" #: addons/web/static/src/xml/base.xml:0 msgid "<<" -msgstr "" +msgstr "<<" #: addons/web/static/src/xml/base.xml:0 msgid "0" -msgstr "" +msgstr "0" #: addons/web/static/src/xml/base.xml:0 msgid "/" -msgstr "" +msgstr "/" #: addons/web/static/src/xml/base.xml:0 msgid ">>" -msgstr "" +msgstr ">>" #: addons/web/static/src/xml/base.xml:0 msgid "Add" -msgstr "" +msgstr "Engadir" #: addons/web/static/src/xml/base.xml:0 msgid "Unhandled widget" -msgstr "" +msgstr "Widget non controlado" #: addons/web/static/src/xml/base.xml:0 msgid "?" -msgstr "" +msgstr "?" #: addons/web/static/src/xml/base.xml:0 msgid "#" -msgstr "" +msgstr "#" #: addons/web/static/src/xml/base.xml:0 msgid "Done" -msgstr "" +msgstr "Feito" #: addons/web/static/src/xml/base.xml:0 msgid "Open..." -msgstr "" +msgstr "Abrir..." #: addons/web/static/src/xml/base.xml:0 msgid "Create..." -msgstr "" +msgstr "Crear…" #: addons/web/static/src/xml/base.xml:0 msgid "Search..." -msgstr "" +msgstr "Buscar..." #: addons/web/static/src/xml/base.xml:0 msgid "..." -msgstr "" +msgstr "…" #: addons/web/static/src/xml/base.xml:0 msgid "Uploading ..." -msgstr "" +msgstr "Subindo ..." #: addons/web/static/src/xml/base.xml:0 msgid "Select" -msgstr "" +msgstr "Seleccionar" #: addons/web/static/src/xml/base.xml:0 msgid "Save As" -msgstr "" +msgstr "Gardar como" #: addons/web/static/src/xml/base.xml:0 msgid "Clear" -msgstr "" +msgstr "Limpar" #: addons/web/static/src/xml/base.xml:0 msgid "Advanced Filter" -msgstr "" +msgstr "Filtro Avanzado" #: addons/web/static/src/xml/base.xml:0 msgid "-- Filters --" -msgstr "" +msgstr "-- Filtros --" #: addons/web/static/src/xml/base.xml:0 msgid "-- Actions --" -msgstr "" +msgstr "-- Accións --" #: addons/web/static/src/xml/base.xml:0 msgid "Save Filter" -msgstr "" +msgstr "Gardar Filtro" #: addons/web/static/src/xml/base.xml:0 msgid "Manage Filters" -msgstr "" +msgstr "Xestionar filtros" #: addons/web/static/src/xml/base.xml:0 msgid "Filter Name:" -msgstr "" +msgstr "Nome do Filtro" #: addons/web/static/src/xml/base.xml:0 msgid "(Any existing filter with the same name will be replaced)" -msgstr "" +msgstr "(Calquer filtro existente co mesmo nome será reemplazado)" #: addons/web/static/src/xml/base.xml:0 msgid "Any of the following conditions must match" -msgstr "" +msgstr "Calquera das condicións seguintes deben coincidir" #: addons/web/static/src/xml/base.xml:0 msgid "All the following conditions must match" -msgstr "" +msgstr "Todas as condicións seguintes deben coincidir" #: addons/web/static/src/xml/base.xml:0 msgid "None of the following conditions must match" -msgstr "" +msgstr "Ningunha das seguintes condicións deben coincidir" #: addons/web/static/src/xml/base.xml:0 msgid "Add condition" -msgstr "" +msgstr "Engadir condición" #: addons/web/static/src/xml/base.xml:0 msgid "and" -msgstr "" +msgstr "e" #: addons/web/static/src/xml/base.xml:0 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: addons/web/static/src/xml/base.xml:0 msgid "Save & New" -msgstr "" +msgstr "Gardar e Novo" #: addons/web/static/src/xml/base.xml:0 msgid "Save & Close" -msgstr "" +msgstr "Gardar e Pechar" #: addons/web/static/src/xml/base.xml:0 msgid "Export" -msgstr "" +msgstr "Exportar" #: addons/web/static/src/xml/base.xml:0 msgid "" @@ -489,172 +489,180 @@ msgid "" " You can export all data or only the fields that can be " "reimported after modification." msgstr "" +"Este asistente exportaralle todos os datos que coincidan cos criterios de " +"procura actual a un arquivo CSV.\n" +" Pode exportar todos os datos ou só os campos que poden " +"importarse de novo despois da modificación." #: addons/web/static/src/xml/base.xml:0 msgid "Export Type:" -msgstr "" +msgstr "Tipo de Exportación:" #: addons/web/static/src/xml/base.xml:0 msgid "Import Compatible Export" -msgstr "" +msgstr "Exportación compatible con importación" #: addons/web/static/src/xml/base.xml:0 msgid "Export all Data" -msgstr "" +msgstr "Exportar todos os datos" #: addons/web/static/src/xml/base.xml:0 msgid "Export Formats" -msgstr "" +msgstr "Formatos de Exportación" #: addons/web/static/src/xml/base.xml:0 msgid "Available fields" -msgstr "" +msgstr "Campos dispoñibles" #: addons/web/static/src/xml/base.xml:0 msgid "Fields to export" -msgstr "" +msgstr "Campos a exportar" #: addons/web/static/src/xml/base.xml:0 msgid "Save fields list" -msgstr "" +msgstr "Gardar lista de campos" #: addons/web/static/src/xml/base.xml:0 msgid "Remove" -msgstr "" +msgstr "Eliminar" #: addons/web/static/src/xml/base.xml:0 msgid "Remove All" -msgstr "" +msgstr "Eliminar Todo" #: addons/web/static/src/xml/base.xml:0 msgid "Name" -msgstr "" +msgstr "Nome" #: addons/web/static/src/xml/base.xml:0 msgid " " -msgstr "" +msgstr " " #: addons/web/static/src/xml/base.xml:0 msgid "Save as:" -msgstr "" +msgstr "Gardar como:" #: addons/web/static/src/xml/base.xml:0 msgid "Ok" -msgstr "" +msgstr "Ok" #: addons/web/static/src/xml/base.xml:0 msgid "Saved exports:" -msgstr "" +msgstr "Exportacións gardadas:" #: addons/web/static/src/xml/base.xml:0 msgid "Old Password:" -msgstr "" +msgstr "Contrasinal anterior:" #: addons/web/static/src/xml/base.xml:0 msgid "New Password:" -msgstr "" +msgstr "Contrasinal nova:" #: addons/web/static/src/xml/base.xml:0 msgid "Confirm Password:" -msgstr "" +msgstr "Confirmar contrasinal:" #: addons/web/static/src/xml/base.xml:0 msgid "Import" -msgstr "" +msgstr "Importar" #: addons/web/static/src/xml/base.xml:0 msgid "1. Import a .CSV file" -msgstr "" +msgstr "1. Importar un arquivo .CSV" #: addons/web/static/src/xml/base.xml:0 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 "" +"Seleccione un arquivo .CSV para importar. Se necesita unha mostra de arquivo " +"para importar,\n" +" debería usar a ferramenta de exportación coa opción de \"Importación " +"Compatible\"." #: addons/web/static/src/xml/base.xml:0 msgid "CSV File:" -msgstr "" +msgstr "Arquivo CSV:" #: addons/web/static/src/xml/base.xml:0 msgid "2. Check your file format" -msgstr "" +msgstr "2. Comprobe o formato de arquivo" #: addons/web/static/src/xml/base.xml:0 msgid "Import Options" -msgstr "" +msgstr "Importar opcións" #: addons/web/static/src/xml/base.xml:0 msgid "Does your file have titles?" -msgstr "" +msgstr "¿Ten o seu arquivo títulos?" #: addons/web/static/src/xml/base.xml:0 msgid "Separator:" -msgstr "" +msgstr "Separador:" #: addons/web/static/src/xml/base.xml:0 msgid "Delimiter:" -msgstr "" +msgstr "Delimitador:" #: addons/web/static/src/xml/base.xml:0 msgid "Encoding:" -msgstr "" +msgstr "Codificación:" #: addons/web/static/src/xml/base.xml:0 msgid "UTF-8" -msgstr "" +msgstr "UTF-8" #: addons/web/static/src/xml/base.xml:0 msgid "Latin 1" -msgstr "" +msgstr "Latin 1" #: addons/web/static/src/xml/base.xml:0 msgid "Lines to skip" -msgstr "" +msgstr "Liñas a omitir" #: addons/web/static/src/xml/base.xml:0 msgid "The import failed due to:" -msgstr "" +msgstr "A importación fallou debido a:" #: addons/web/static/src/xml/base.xml:0 msgid "Here is a preview of the file we could not import:" -msgstr "" +msgstr "Esta é a vista previa do arquivo que non se pode importar:" #: addons/web/static/src/xml/base.xml:0 msgid "OpenERP Web" -msgstr "" +msgstr "OpenERP Web" #: addons/web/static/src/xml/base.xml:0 msgid "Version" -msgstr "" +msgstr "Versión" #: addons/web/static/src/xml/base.xml:0 msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved." -msgstr "" +msgstr "Copyright © 2011-HOXE OpenERP SA. Todos os Dereitos Reservados." #: addons/web/static/src/xml/base.xml:0 msgid "OpenERP is a trademark of the" -msgstr "" +msgstr "OpenERP é unha marca rexistrada da" #: addons/web/static/src/xml/base.xml:0 msgid "OpenERP SA Company" -msgstr "" +msgstr "Compañía OpenERP SA" #: addons/web/static/src/xml/base.xml:0 msgid "Licenced under the terms of" -msgstr "" +msgstr "Con licencia baixo os termos de" #: addons/web/static/src/xml/base.xml:0 msgid "GNU Affero General Public License" -msgstr "" +msgstr "GNU Affero General Public License" #: addons/web/static/src/xml/base.xml:0 msgid "About OpenERP" -msgstr "" +msgstr "Acerca de OpenERP" #: addons/web/static/src/xml/base.xml:0 msgid "OpenERP" -msgstr "" +msgstr "OpenERP" #: addons/web/static/src/xml/base.xml:0 msgid "" @@ -665,6 +673,12 @@ msgid "" "supply chain,\n" " project management, production, services, CRM, etc..." msgstr "" +"É un sistema software empresarial-escalar libre deseñado para mellorar\n" +" a productividade y beneficios a través da integración de datos. " +"Conecta, mellora e\n" +" xestiona os procesos de negocio en áreas como ventas, finanzas, " +"cadena de suministro,\n" +" xestión de proxectos, producción, servizos, CRM, etc..." #: addons/web/static/src/xml/base.xml:0 msgid "" @@ -677,9 +691,19 @@ msgid "" " production system and migration to a new version to be " "straightforward." msgstr "" +"O sistema é unha plataforma-independente, e pode ser instalada en Windows, " +"Mac OS X,\n" +" e varias distribucións Linux e outra basadas en Unix. A súa " +"arquitectura permite\n" +" crear novas funcionalidades rápidamente, as modificacións a " +"facer nun\n" +" sistema en producción e migración a unha nova versión son " +"sinxelas." #: addons/web/static/src/xml/base.xml:0 msgid "" "Depending on your needs, OpenERP is available through a web or application " "client." msgstr "" +"Segundo as súas necesidades, OpenERP está dispoñible a través dun cliente " +"web ou unha aplicación de escritorio." diff --git a/addons/web/po/sl.po b/addons/web/po/sl.po new file mode 100644 index 00000000000..bc63e7ff313 --- /dev/null +++ b/addons/web/po/sl.po @@ -0,0 +1,707 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-10-19 07:07+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web/static/src/js/view_form.js:355 +msgid "" +"Warning, the record has been modified, your changes will be discarded." +msgstr "" +"Opozorilo, zapis je bil spremenjen, zato bodo vaše spremembe zavržene." + +#: addons/web/static/src/js/view_form.js:1659 +msgid "<em> Search More...</em>" +msgstr "<em> Iskanje več...</em>" + +#: addons/web/static/src/js/view_form.js:1672 +#, python-format +msgid "<em> Create \"<strong>%s</strong>\"</em>" +msgstr "<em> Ustvari \"<strong>%s</strong>\"</em>" + +#: addons/web/static/src/js/view_form.js:1678 +msgid "<em> Create and Edit...</em>" +msgstr "<em> Ustvari in uredi...</em>" + +#: addons/web/static/src/js/views.js:568 +msgid "You must choose at least one record." +msgstr "Izbrati morate vsaj en zapis." + +#: addons/web/static/src/js/views.js:569 +msgid "Warning" +msgstr "Opozorilo" + +#: addons/web/static/src/js/views.js:609 +msgid "Translations" +msgstr "Prevodi" + +#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0 +msgid "Save" +msgstr "Shrani" + +#: addons/web/static/src/js/views.js:615 +msgid "Close" +msgstr "Zapri" + +#: addons/web/static/src/xml/base.xml:0 +msgid "x" +msgstr "x" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{title}" +msgstr "#{title}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{text}" +msgstr "#{text}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Powered by" +msgstr "Poganja ga" + +#: addons/web/static/src/xml/base.xml:0 +msgid "openerp.com" +msgstr "openerp.com" + +#: addons/web/static/src/xml/base.xml:0 +msgid "." +msgstr "." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Loading..." +msgstr "Nalaganje …" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create" +msgstr "Ustvari" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Drop" +msgstr "Izbriši" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Backup" +msgstr "Varnostna kopija" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Restore" +msgstr "Obnovi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password" +msgstr "Geslo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Back to Login" +msgstr "Nazaj na prijavo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CREATE DATABASE" +msgstr "USTVARI PODATKOVNO BAZO" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master password:" +msgstr "Glavno geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New database name:" +msgstr "Ime nove podatkovne baze" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Load Demonstration data:" +msgstr "Naloži demonstracijske podatke:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Default language:" +msgstr "Privzeti jezik:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Admin password:" +msgstr "Admin geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm password:" +msgstr "Potrdite geslo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "DROP DATABASE" +msgstr "IZBRIŠI PODATKOVNO BAZO" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database:" +msgstr "Podatkovna baza" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master Password:" +msgstr "Glavno geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "BACKUP DATABASE" +msgstr "VARNOSTNA KOPIJA PODATKOVNE BAZE" + +#: addons/web/static/src/xml/base.xml:0 +msgid "RESTORE DATABASE" +msgstr "OBNOVITEV PODATKOVNE BAZE" + +#: addons/web/static/src/xml/base.xml:0 +msgid "File:" +msgstr "Datoteka:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CHANGE MASTER PASSWORD" +msgstr "SPREMENI GLAVNO GELSO" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New master password:" +msgstr "Novo glavno geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm new master password:" +msgstr "Potrdi novo glavno geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User:" +msgstr "Uporabnik:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password:" +msgstr "Geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database" +msgstr "Podatkovna baza" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Login" +msgstr "Prijava" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Bad username or password" +msgstr "Napačno uporabniško ime ali geslo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"We think that daily job activities can be more intuitive, efficient, " +"automated, .. and even fun." +msgstr "" +"Menimo, da so lahko dnevne dejavnosti dela bolj intuitivna, učinkovita, " +"avtomatska, .. in celo zabavna." + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP's vision to be:" +msgstr "Vizija OpenERP je:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Full featured" +msgstr "Oblikovno popoln" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Today's enterprise challenges are multiple. We provide one module for each " +"need." +msgstr "" +"Današnja podjetja imajo več izzivov. Nudimo en modul za vsako potrebo." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open Source" +msgstr "Odprta koda" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"To Build a great product, we rely on the knowledge of thousands of " +"contributors." +msgstr "" +"Za zgraditev odličnega izdeleka, se zanašamo na znanje tisočih sodelavcev." + +#: addons/web/static/src/xml/base.xml:0 +msgid "User Friendly" +msgstr "Prijazen do uporabnika" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"In order to be productive, people need clean and easy to use interface." +msgstr "" +"Da bi bili produktivni, ljudje potrebujejo čist in enostaven za uporabniški " +"vmesnik." + +#: addons/web/static/src/xml/base.xml:0 +msgid "(" +msgstr "(" + +#: addons/web/static/src/xml/base.xml:0 +msgid ")" +msgstr ")" + +#: addons/web/static/src/xml/base.xml:0 +msgid "LOGOUT" +msgstr "ODJAVA" + +#: addons/web/static/src/xml/base.xml:0 +msgid "«" +msgstr "«" + +#: addons/web/static/src/xml/base.xml:0 +msgid "»" +msgstr "»" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_menu_item" +msgstr "oe_secondary_menu_item" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_submenu_item" +msgstr "oe_secondary_submenu_item" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Hide this tip" +msgstr "Skrij ta namig" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Disable all tips" +msgstr "Onemogoči vse namige" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View#" +msgstr "Ogled#" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields" +msgstr "Polja" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View labels" +msgstr "Ogled oznak" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Sidebar Relates" +msgstr "Sorodne stranske vrstice" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Field" +msgstr "Polje" + +#: addons/web/static/src/xml/base.xml:0 +msgid ":" +msgstr ":" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate view" +msgstr "Preveden pogled" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate sidebar" +msgstr "Prevedi stransko vrstico" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delete" +msgstr "Izbriši" + +#: addons/web/static/src/xml/base.xml:0 +msgid "First" +msgstr "Začetek" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<" +msgstr "<" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">" +msgstr ">" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Last" +msgstr "Konec" + +#: addons/web/static/src/xml/base.xml:0 +msgid "♻" +msgstr "♻" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Edit" +msgstr "Shrani & Uredi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create & Edit" +msgstr "Ustvari & Uredi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New" +msgstr "Novo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Duplicate" +msgstr "Podvoji" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Readonly/Editable" +msgstr "Samo za branje/možno urejanje" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<<" +msgstr "<<" + +#: addons/web/static/src/xml/base.xml:0 +msgid "0" +msgstr "0" + +#: addons/web/static/src/xml/base.xml:0 +msgid "/" +msgstr "/" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">>" +msgstr ">>" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add" +msgstr "Dodaj" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Unhandled widget" +msgstr "Neobravnavani gradnik" + +#: addons/web/static/src/xml/base.xml:0 +msgid "?" +msgstr "?" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#" +msgstr "#" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Done" +msgstr "Končano" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open..." +msgstr "Odpri ..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create..." +msgstr "Ustvari ..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Search..." +msgstr "Iskanje ..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "..." +msgstr "..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Uploading ..." +msgstr "Nalaganje..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Select" +msgstr "Izberi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save As" +msgstr "Shrani kot" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Clear" +msgstr "Počisti" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Advanced Filter" +msgstr "Napredni filter" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Filters --" +msgstr "-- Filtr i--" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Actions --" +msgstr "-- Dejanja --" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save Filter" +msgstr "Shrani filter" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Manage Filters" +msgstr "Upravljanje filtrov" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Filter Name:" +msgstr "Ime filtra:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "(Vsak obstoječ filter z istim imenom bo zamenjan)" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Any of the following conditions must match" +msgstr "Vsak od teh pogojev se mora ujemati" + +#: addons/web/static/src/xml/base.xml:0 +msgid "All the following conditions must match" +msgstr "Vsi naslednji pogoji se morajo ujemati" + +#: addons/web/static/src/xml/base.xml:0 +msgid "None of the following conditions must match" +msgstr "Nobena od naslednjih pogojev se morajo ujemati" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add condition" +msgstr "Dodaj pogoj" + +#: addons/web/static/src/xml/base.xml:0 +msgid "and" +msgstr "in" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "Prekliči" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & New" +msgstr "Shrani & Novo" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Close" +msgstr "Shrani & Zapri" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export" +msgstr "Izvozi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"This wizard will export all data that matches the current search criteria to " +"a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" +"Ta čarovnik bo izvozil vse podatke, ki se ujemajo s trenutnim kriterijem " +"iskanja, v datoteko CSV.\n" +" Izvozite lahko vse podatke ali samo polja, ki jih je mogoče " +"ponovno uvoziti po spremembi." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Type:" +msgstr "Tip izvoza:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Compatible Export" +msgstr "Uvozi kompatibilen izvoz" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export all Data" +msgstr "Izvozi vse podatke" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Formats" +msgstr "Oblike izvoza" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Available fields" +msgstr "Razpoložljiva polja" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields to export" +msgstr "Polja za izvoz" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save fields list" +msgstr "Shrani seznam polj" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "Odstrani" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove All" +msgstr "Odstrani vse" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Name" +msgstr "Ime" + +#: addons/web/static/src/xml/base.xml:0 +msgid " " +msgstr " " + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save as:" +msgstr "Shrani kot:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "Vredu" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Saved exports:" +msgstr "Shranjeni izvozi:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Old Password:" +msgstr "Staro geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New Password:" +msgstr "Novo geslo:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm Password:" +msgstr "Potrditev gesla:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import" +msgstr "Uvozi" + +#: addons/web/static/src/xml/base.xml:0 +msgid "1. Import a .CSV file" +msgstr "1. Uvozi .CSV datoteko" + +#: addons/web/static/src/xml/base.xml:0 +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\"." + +#: addons/web/static/src/xml/base.xml:0 +msgid "CSV File:" +msgstr "CSV datoteka:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "2. Check your file format" +msgstr "2. Preveri format datoteke" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Options" +msgstr "Možnosti uvoza" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Does your file have titles?" +msgstr "Ali ima vaša datoteka naslove?" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Separator:" +msgstr "Ločitelj:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delimiter:" +msgstr "Razmejitelj:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Encoding:" +msgstr "Nabor znakov:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "UTF-8" +msgstr "UTF-8" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Latin 1" +msgstr "Latin 1" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Lines to skip" +msgstr "Vrstice za preskočit" + +#: addons/web/static/src/xml/base.xml:0 +msgid "The import failed due to:" +msgstr "Uvoz ni uspel zaradi:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Here is a preview of the file we could not import:" +msgstr "Tukaj je predogled datoteke, ki je nismo mogli uvozit" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP Web" +msgstr "OpenERP Web" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Version" +msgstr "Različica" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved." +msgstr "Copyright © 2011-DANES OpenERP SA. Vse pravice pridržane." + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP is a trademark of the" +msgstr "OpenERP je blagovna znamka" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP SA Company" +msgstr "podjetja OpenERP SA" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Licenced under the terms of" +msgstr "Licencirana pod pogoji" + +#: addons/web/static/src/xml/base.xml:0 +msgid "GNU Affero General Public License" +msgstr "GNU Affero General Public License" + +#: addons/web/static/src/xml/base.xml:0 +msgid "About OpenERP" +msgstr "O OpenERP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP" +msgstr "OpenERP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"is a free enterprise-scale software system that is designed to boost\n" +" productivity and profit through data integration. It connects, " +"improves and\n" +" manages business processes in areas such as sales, finance, " +"supply chain,\n" +" project management, production, services, CRM, etc..." +msgstr "" +"je brezplačna podjetniškega obsega sistemska programska oprema, ki je " +"namenjena za povečanje\n" +" produktivnosti in dobička skozi podatkovno integracijo. " +"Povezuje, izboljša in\n" +" upravlja poslovne procese v okoljih kot so prodaja, finance, " +"veriga dobavljanja,\n" +" upravljanje projektov, proizvodnje, storitev, CRM, itd..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"The system is platform-independent, and can be installed on Windows, Mac OS " +"X,\n" +" and various Linux and other Unix-based distributions. Its " +"architecture enables\n" +" new functionality to be rapidly created, modifications to be " +"made to a\n" +" production system and migration to a new version to be " +"straightforward." +msgstr "" +"Sistem je neodvisnen od platforme in ga je mogoče namestiti na Windows, Mac " +"OS X,\n" +" in na različne Linux in ostale Unix-bazirane distribucije. " +"Njegova arhitektura omogoča\n" +" nove funkcionalnosti, ki so lahko hitro ustvarjene, " +"modifikacija, ki se naredi v\n" +" produkcijskem sistemu in migracijo na novo verzijo, ki se " +"enostavno izvede." + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Depending on your needs, OpenERP is available through a web or application " +"client." +msgstr "" +"Glede na vaše potrebe, je OpenERP na voljo prek spleta ali programskega " +"klienta." diff --git a/addons/web/static/lib/qweb/qweb2.js b/addons/web/static/lib/qweb/qweb2.js index 621ea39c74f..34457ade4fd 100644 --- a/addons/web/static/lib/qweb/qweb2.js +++ b/addons/web/static/lib/qweb/qweb2.js @@ -207,6 +207,7 @@ QWeb2.Engine = (function() { this.reserved_words = QWeb2.RESERVED_WORDS.slice(0); this.actions_precedence = QWeb2.ACTIONS_PRECEDENCE.slice(0); this.word_replacement = QWeb2.tools.extend({}, QWeb2.WORD_REPLACEMENT); + this.format_text_node = null; for (var i = 0; i < arguments.length; i++) { this.add_template(arguments[i]); } @@ -317,12 +318,14 @@ QWeb2.Engine = (function() { " dict = dict || {};\n" + " dict['__template__'] = '" + template + "';\n" + " var r = [];\n" + - " /* START TEMPLATE */ try {\n" + + " /* START TEMPLATE */" + + (this.debug ? "" : " try {\n") + (e.compile()) + "\n" + - " /* END OF TEMPLATE */ } catch(error) {\n" + + " /* END OF TEMPLATE */" + + (this.debug ? "" : " } catch(error) {\n" + " if (console && console.exception) console.exception(error);\n" + - " context.engine.tools.exception('Runtime Error: ' + error, context);\n" + - " }\n" + + " context.engine.tools.exception('Runtime Error: ' + error, context);\n") + + (this.debug ? "" : " }\n") + " return r.join('');"; }, render : function(template, dict) { @@ -486,12 +489,16 @@ QWeb2.Element = (function() { }, _compile : function() { switch (this.node.nodeType) { - case 3: - case 4: - this.top_string(this.node.data); + case 3: + case 4: + var text = this.node.data; + if (this.engine.format_text_node) { + text = this.engine.format_text_node.call(this, text); + } + this.top_string(text); break; - case 1: - this.compile_element(); + case 1: + this.compile_element(); } var r = this._top.join(''); if (this.process_children) { diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 6872b921435..744d218a83b 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -159,7 +159,7 @@ body.openerp, .openerp textarea, .openerp input, .openerp select, .openerp optio } .db_container { - width: 15%; + width: 196px; background: #666666; } @@ -801,13 +801,15 @@ label.error { -moz-border-radius-topright: 7px; border-top-right-radius: 7px; } -.openerp .oe-listview table.oe-listview-content tfoot td:first-child, +.openerp .oe-listview table.oe-listview-content tfoot tr:last-child th:first-child, +.openerp .oe-listview table.oe-listview-content tfoot tr:last-child td:first-child, .openerp .oe-listview table.oe-listview-content tbody:last-child tr:last-child th:first-child { -webkit-border-bottom-left-radius: 7px; -moz-border-radius-bottomleft: 7px; border-bottom-left-radius: 7px; } -.openerp .oe-listview table.oe-listview-content tfoot td:last-child, +.openerp .oe-listview table.oe-listview-content tfoot tr:last-child th:last-child, +.openerp .oe-listview table.oe-listview-content tfoot tr:last-child td:last-child, .openerp .oe-listview table.oe-listview-content tbody:last-child tr:last-child td:last-child { -webkit-border-bottom-right-radius: 7px; -moz-border-radius-bottomright: 7px; diff --git a/addons/web/static/src/css/data_import.css b/addons/web/static/src/css/data_import.css index 1fb3b22aa45..e5d1c9a910c 100644 --- a/addons/web/static/src/css/data_import.css +++ b/addons/web/static/src/css/data_import.css @@ -11,6 +11,22 @@ .openerp .oe_import_grid-row .oe_import_grid-cell { border-bottom: 1px solid #E3E3E3; } + +.openerp .oe-import-no-result .oe-import-result { + display: none; +} +.openerp .oe-import fieldset { + cursor: pointer; +} +.openerp .oe-import fieldset legend:before { + content: '\25BC '; +} +.openerp .oe-import fieldset.oe-closed legend:before { + content: '\25B6 '; +} +.openerp .oe-import fieldset.oe-closed table { + display: none; +} .openerp .separator.horizontal { font-weight: bold; border-bottom-width: 1px; diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 8dfbd68e6de..39a1ba7ef64 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -10,8 +10,6 @@ if (!console.debug) { } openerp.web.core = function(openerp) { -openerp.web.qweb = new QWeb2.Engine(); -openerp.web.qweb.debug = (window.location.search.indexOf('?debug') !== -1); /** * John Resig Class with factory improvement */ @@ -363,6 +361,9 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web this.context = {}; this.shortcuts = []; this.active_id = null; + // TODO: session should have an optional name indicating that they'll + // be saved to (and revived from) cookies + this.name = 'session'; }, start: function() { this.session_restore(); @@ -527,7 +528,8 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web * @param name the cookie's name */ get_cookie: function (name) { - var nameEQ = this.element_id + '|' + name + '='; + if (!this.name) { return null; } + var nameEQ = this.name + '|' + name + '='; var cookies = document.cookie.split(';'); for(var i=0; i<cookies.length; ++i) { var cookie = cookies[i].replace(/^\s*/, ''); @@ -546,9 +548,11 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web * @param ttl the cookie's time to live, 1 year by default, set to -1 to delete */ set_cookie: function (name, value, ttl) { + if (!this.name) { return; } ttl = ttl || 24*60*60*365; document.cookie = [ - this.element_id + '|' + name + '=' + encodeURIComponent(JSON.stringify(value)), + this.name + '|' + name + '=' + encodeURIComponent(JSON.stringify(value)), + 'path=/', 'max-age=' + ttl, 'expires=' + new Date(new Date().getTime() + ttl*1000).toGMTString() ].join(';'); @@ -1040,6 +1044,21 @@ openerp.web.TranslationDataBase = openerp.web.Class.extend(/** @lends openerp.we }); openerp.web._t = new openerp.web.TranslationDataBase().build_translation_function(); +openerp.web.qweb = new QWeb2.Engine(); +openerp.web.qweb.debug = (window.location.search.indexOf('?debug') !== -1); +openerp.web.qweb.format_text_node = function(s) { + // Note that 'this' is the Qweb Node of the text + var translation = this.node.parentNode.attributes['t-translation']; + if (translation && translation.value === 'off') { + return s; + } + var ts = _.trim(s); + if (ts.length === 0) { + return s; + } + var tr = openerp.web._t(ts); + return tr === ts ? s : tr; +} }; diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index ea0824fb1df..069506586ad 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -263,6 +263,15 @@ openerp.web.DataSet = openerp.web.Widget.extend( /** @lends openerp.web.DataSet } return this; }, + select_id: function(id) { + var idx = _.indexOf(this.ids, id); + if (idx === -1) { + return false; + } else { + this.index = idx; + return true; + } + }, /** * Read records. * @@ -484,7 +493,7 @@ openerp.web.DataSetStatic = openerp.web.DataSet.extend({ offset = options.offset || 0, limit = options.limit || false, fields = fields || false; - var end_pos = limit && limit !== -1 ? offset + limit : undefined; + var end_pos = limit && limit !== -1 ? offset + limit : this.ids.length; return this.read_ids(this.ids.slice(offset, end_pos), fields, callback); }, set_ids: function (ids) { diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js index 0864c5e594e..355c6c1b493 100644 --- a/addons/web/static/src/js/data_import.js +++ b/addons/web/static/src/js/data_import.js @@ -1,5 +1,6 @@ openerp.web.data_import = function(openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; /** * Safari does not deal well at all with raw JSON data being returned. As a * result, we're going to cheat by using a pseudo-jsonp: instead of getting @@ -79,8 +80,8 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ this.toggle_import_button(false); this.$element.find('#csvfile').change(this.on_autodetect_data); this.$element.find('fieldset').change(this.on_autodetect_data); - this.$element.find('fieldset legend').click(function() { - $(this).next().toggle(); + this.$element.delegate('fieldset legend', 'click', function() { + $(this).parent().toggleClass('oe-closed'); }); this.ready.push(new openerp.web.DataSet(this, this.model).call( 'fields_get', [], function (fields) { @@ -101,7 +102,16 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ level = level || 0; var self = this; + if (level === 0) { + parent.fields.push({ + id: 'id', + name: 'id', + string: _t('External ID'), + required: false + }); + } _(fields).each(function (field, field_name) { + if (field_name === 'id') { return; } var f = { id: field_name, name: field_name, @@ -184,9 +194,11 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ : with_headers ? results.records.slice(1) : results.records })); + this.$element.find('fieldset').addClass('oe-closed'); } else if (results['error']) { result_node.append(QWeb.render('ImportView.error', { 'error': results['error']})); + this.$element.find('fieldset').removeClass('oe-closed'); } else if (results['success']) { if (this.widget_parent.widget_parent.active_view == "list") { this.widget_parent.reload_content(); @@ -194,6 +206,11 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ this.stop(); return; } + this.$element.find('form').removeClass('oe-import-no-result'); + + this.$element.delegate('.oe-m2o-drop-down-button', 'click', function () { + $(this).prev('input').focus(); + }); var self = this; this.ready.then(function () { @@ -210,18 +227,51 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ }); // Column auto-detection _(headers).each(function (header, index) { - var f =_(self.fields).detect(function (field) { - // TODO: levenshtein between header and field.string - return field.name === header || field.string.toLowerCase() === header; - }); - if (f) { - $fields.eq(index).val(f.name); + var field_name = self.match_column_to_field(header); + if (field_name) { + $fields.eq(index).val(field_name); } }); self.on_check_field_values(); }); }, /** + * Returns the name of the field (nested) matching the provided column name + * + * @param {String} name column name to look for + * @param {Array} [fields] fields to look into for the provided name + * @returns {String|undefined} + */ + match_column_to_field: function (name, fields) { + fields = fields || this.fields; + var f; + f = _(fields).detect(function (field) { + // TODO: levenshtein between header and field.string + return field.name === name + || field.string.toLowerCase() === name.toLowerCase(); + }); + if (f) { return f.name; } + + // if ``name`` is a path (o2m), we need to recurse through its .fields + var index = name.indexOf('/'); + if (index === -1) { return undefined; } + // Get the first path section, try to find the matching field + var column_name = name.substring(0, index); + f = _(fields).detect(function (field) { + // field.name for o2m is $foo/id, so we want to match on id + return field.id === column_name + || field.string.toLowerCase() === column_name.toLowerCase() + }); + if (!f) { return undefined; } + + // if we found a matching field for the first path section, recurse in + // its own .fields to try and get the rest of the path matched + var rest = this.match_column_to_field( + name.substring(index+1), f.fields); + if (!rest) { return undefined; } + return f.id + '/' + rest; + }, + /** * Looks through all the field selections, and tries to find if two * (or more) columns were matched to the same model field. * diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 94b2c7085db..3ab972f7a86 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -28,10 +28,13 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { case 'float': var precision = descriptor.digits ? descriptor.digits[1] : 2; var int_part = Math.floor(value); - var dec_part = Math.abs(Math.floor((value % 1) * Math.pow(10, precision))); - return _.sprintf('%d%s%d', - int_part, - openerp.web._t.database.parameters.decimal_point, dec_part); + var dec_part = _.sprintf( + '%.' + precision + 'f', + Math.abs(value) % 1).substring(2); + return _.sprintf('%d%s%s', + int_part, + openerp.web._t.database.parameters.decimal_point, + dec_part); case 'float_time': return _.sprintf("%02d:%02d", Math.floor(value), diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index c7aa1e3cfe3..b2402cf95fa 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -63,6 +63,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search rows.push(row); var filters = []; _.each(items, function (item) { + if (item.attrs.invisible === '1') { return; } if (filters.length && item.tag !== 'filter') { row.push( new openerp.web.search.FilterGroup( diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index a5a56c2d46e..1f1b5b8ef6f 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -15,7 +15,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# /** * @constructs openerp.web.FormView * @extends openerp.web.View - * + * * @param {openerp.web.Session} session the current openerp session * @param {openerp.web.DataSet} dataset the dataset this view will work with * @param {String} view_id the identifier of the OpenERP view object @@ -551,11 +551,13 @@ openerp.web.FormDialog = openerp.web.Dialog.extend({ this.form.on_saved.add_last(this.on_form_dialog_saved); return this; }, - load_id: function(id) { - var self = this; - return this.dataset.read_ids([id], _.keys(this.form.fields_view.fields), function(records) { - self.form.on_record_loaded(records[0]); - }); + select_id: function(id) { + if (this.form.dataset.select_id(id)) { + return this.form.do_show(); + } else { + this.do_warn("Could not find id in dataset"); + return $.Deferred().reject(); + } }, on_form_dialog_saved: function(r) { this.close(); @@ -1007,7 +1009,7 @@ openerp.web.form.WidgetButton = openerp.web.form.Widget.extend({ }, on_confirmed: function() { var self = this; - + var context = this.node.attrs.context; if (context && context.__ref) { context = new openerp.web.CompoundContext(context); @@ -1231,6 +1233,19 @@ openerp.web.form.FieldUrl = openerp.web.form.FieldChar.extend({ }); openerp.web.form.FieldFloat = openerp.web.form.FieldChar.extend({ + init: function (view, node) { + this._super(view, node); + if (node.attrs.digits) { + this.parse_digits(node.attrs.digits); + } else { + this.digits = view.fields_view.fields[node.attrs.name].digits; + } + }, + parse_digits: function (digits_attr) { + // could use a Python parser instead. + var match = /^\s*[\(\[](\d+),\s*(\d+)/.exec(digits_attr); + return [parseInt(match[1], 10), parseInt(match[2], 10)]; + }, set_value: function(value) { if (value === false || value === undefined) { // As in GTK client, floats default to 0 @@ -1257,7 +1272,7 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({ }); this.$element.find('img.oe_datepicker_trigger').click(function() { if (!self.readonly) { - self.picker('setDate', self.value || new Date()); + self.picker('setDate', self.value ? openerp.web.auto_str_to_date(self.value) : new Date()); self.$element.find('.oe_datepicker').toggle(); } }); @@ -1404,11 +1419,7 @@ openerp.web.form.FieldBoolean = openerp.web.form.Field.extend({ start: function() { var self = this; this._super.apply(this, arguments); - this.$element.find('input').click(function() { - if ($(this).is(':checked') != self.value) { - self.on_ui_change(); - } - }); + this.$element.find('input').click(self.on_ui_change); }, set_value: function(value) { this._super.apply(this, arguments); @@ -1422,9 +1433,6 @@ openerp.web.form.FieldBoolean = openerp.web.form.Field.extend({ this._super.apply(this, arguments); this.$element.find('input').attr('disabled', this.readonly); }, - validate: function() { - this.invalid = this.required && !this.$element.find('input').is(':checked'); - }, focus: function() { this.$element.find('input').focus(); } @@ -1620,6 +1628,11 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ } else { $("#" + self.cm_id + " .oe_m2o_menu_item_mandatory").addClass("oe-m2o-disabled-cm"); } + if (!self.readonly) { + $("#" + self.cm_id + " .oe_m2o_menu_item_noreadonly").removeClass("oe-m2o-disabled-cm"); + } else { + $("#" + self.cm_id + " .oe_m2o_menu_item_noreadonly").addClass("oe-m2o-disabled-cm"); + } return true; }, menuStyle: {width: "200px"} }); @@ -1639,6 +1652,8 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ } }); this.$drop_down.click(function() { + if (self.readonly) + return; if (self.$input.autocomplete("widget").is(":visible")) { self.$input.autocomplete("close"); } else { @@ -1845,6 +1860,10 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ }, focus: function () { this.$input.focus(); + }, + update_dom: function() { + this._super.apply(this, arguments); + this.$input.attr('disabled', this.readonly); } }); @@ -2745,13 +2764,13 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({ start: function() { this._super(); this.selected_value = null; - + this.render_list(); }, set_value: function(value) { this._super(value); this.selected_value = value; - + this.render_list(); }, render_list: function() { @@ -2759,7 +2778,7 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({ var shown = _.map(((this.node.attrs || {}).statusbar_visible || "").split(","), function(x) { return _.trim(x); }); shown = _.select(shown, function(x) { return x.length > 0; }); - + if (shown.length == 0) { this.to_show = this.field.selection; } else { @@ -2767,10 +2786,10 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({ return _.indexOf(shown, x[0]) !== -1 || x[0] === self.selected_value; }); } - + var content = openerp.web.qweb.render("FieldStatus.content", {widget: this, _:_}); this.$element.html(content); - + var colors = JSON.parse((this.node.attrs || {}).statusbar_colors || "{}"); var color = colors[this.selected_value]; if (color) { @@ -2805,9 +2824,6 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({ } }); -openerp.web.form.WidgetNotebookReadonly = openerp.web.form.WidgetNotebook.extend({ - template: 'WidgetNotebook.readonly' -}); openerp.web.form.FieldReadonly = openerp.web.form.Field.extend({ }); @@ -2835,15 +2851,15 @@ openerp.web.form.FieldEmailReadonly = openerp.web.form.FieldURIReadonly.extend({ }); openerp.web.form.FieldUrlReadonly = openerp.web.form.FieldURIReadonly.extend({ set_value: function (value) { - var s = /(\w+):(\.+)/.match(value); - if (!(s[0] === 'http' || s[0] === 'https')) { return; } - this.scheme = s[0]; - this._super(s[1]); + var s = /(\w+):(.+)/.exec(value); + if (!s || !(s[1] === 'http' || s[1] === 'https')) { return; } + this.scheme = s[1]; + this._super(s[2]); } }); openerp.web.form.FieldBooleanReadonly = openerp.web.form.FieldCharReadonly.extend({ set_value: function (value) { - this._super(value ? '\u2714' : '\u2718'); + this._super(value ? '\u2611' : '\u2610'); } }); openerp.web.form.FieldSelectionReadonly = openerp.web.form.FieldReadonly.extend({ @@ -2874,7 +2890,7 @@ openerp.web.form.FieldMany2OneReadonly = openerp.web.form.FieldCharReadonly.exte value = value || null; this.invalid = false; var self = this; - this.tmp_value = value; + this.value = value; self.update_dom(); self.on_value_changed(); var real_set_value = function(rval) { @@ -2926,7 +2942,6 @@ openerp.web.form.widgets = new openerp.web.Registry({ 'statusbar': 'openerp.web.form.FieldStatus' }); openerp.web.form.readonly = openerp.web.form.widgets.clone({ - 'notebook': 'openerp.web.form.WidgetNotebookReadonly', 'char': 'openerp.web.form.FieldCharReadonly', 'email': 'openerp.web.form.FieldEmailReadonly', 'url': 'openerp.web.form.FieldUrlReadonly', diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 629dc12c780..d09ec1d3035 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -780,8 +780,9 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis e.stopPropagation(); var row_id = self.row_id(e.currentTarget); if (row_id !== undefined) { - self.dataset.index = self.records.indexOf( - self.records.get(row_id)); + if (!self.dataset.select_id(row_id)) { + throw "Could not find id in dataset" + } self.row_clicked(e); } }); @@ -789,7 +790,7 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis row_clicked: function () { $(this).trigger( 'row_link', - [this.records.at(this.dataset.index).get('id'), + [this.dataset.ids[this.dataset.index], this.dataset]); }, render_cell: function (record, column) { diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 9aecbd475af..b7a3d185bc1 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -2,21 +2,21 @@ * OpenERP web library *---------------------------------------------------------*/ -openerp.web.views = function(db) { +openerp.web.views = function(session) { -var _t = db.web._t; +var _t = session.web._t; /** * Registry for all the client actions key: tag value: widget */ -db.web.client_actions = new db.web.Registry(); +session.web.client_actions = new session.web.Registry(); /** * Registry for all the main views */ -db.web.views = new db.web.Registry(); +session.web.views = new session.web.Registry(); -db.web.ActionManager = db.web.Widget.extend({ +session.web.ActionManager = session.web.Widget.extend({ identifier_prefix: "actionmanager", init: function(parent) { this._super(parent); @@ -93,20 +93,20 @@ db.web.ActionManager = db.web.Widget.extend({ ir_actions_act_window: function (action, on_close) { if (action.target === 'new') { if (this.dialog == null) { - this.dialog = new db.web.Dialog(this, { title: action.name, width: '80%' }); + this.dialog = new session.web.Dialog(this, { title: action.name, width: '80%' }); if(on_close) this.dialog.on_close.add(on_close); this.dialog.start(); } else { this.dialog_viewmanager.stop(); } - this.dialog_viewmanager = new db.web.ViewManagerAction(this, action); + this.dialog_viewmanager = new session.web.ViewManagerAction(this, action); this.dialog_viewmanager.appendTo(this.dialog.$element); this.dialog.open(); } else { this.dialog_stop(); this.content_stop(); - this.inner_viewmanager = new db.web.ViewManagerAction(this, action); + this.inner_viewmanager = new session.web.ViewManagerAction(this, action); this.inner_viewmanager.appendTo(this.$element); this.url_update(action); } @@ -124,7 +124,7 @@ db.web.ActionManager = db.web.Widget.extend({ if (this.dialog && action.context) { var model = action.context.active_model; if (model === 'base.module.upgrade' || model === 'base.setup.installer' || model === 'base.module.upgrade') { - db.webclient.do_reload(); + session.webclient.do_reload(); } } this.dialog_stop(); @@ -140,7 +140,7 @@ db.web.ActionManager = db.web.Widget.extend({ }, ir_actions_client: function (action) { this.content_stop(); - var ClientWidget = db.web.client_actions.get_object(action.tag); + var ClientWidget = session.web.client_actions.get_object(action.tag); (this.client_widget = new ClientWidget(this, action.params)).appendTo(this); }, ir_actions_report_xml: function(action) { @@ -158,15 +158,18 @@ db.web.ActionManager = db.web.Widget.extend({ complete: $.unblockUI }); }); + }, + ir_actions_act_url: function (action) { + window.open(action.url, action.target === 'self' ? '_self' : '_blank'); } }); -db.web.ViewManager = db.web.Widget.extend(/** @lends db.web.ViewManager# */{ +session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.ViewManager# */{ identifier_prefix: "viewmanager", template: "ViewManager", /** - * @constructs db.web.ViewManager - * @extends db.web.Widget + * @constructs session.web.ViewManager + * @extends session.web.Widget * * @param parent * @param dataset @@ -182,10 +185,10 @@ db.web.ViewManager = db.web.Widget.extend(/** @lends db.web.ViewManager# */{ this.views_src = _.map(views, function(x) {return x instanceof Array? {view_id: x[0], view_type: x[1]} : x;}); this.views = {}; this.flags = this.flags || {}; - this.registry = db.web.views; + this.registry = session.web.views; }, render: function() { - return db.web.qweb.render(this.template, { + return session.web.qweb.render(this.template, { self: this, prefix: this.element_id, views: this.views_src}); @@ -281,7 +284,7 @@ db.web.ViewManager = db.web.Widget.extend(/** @lends db.web.ViewManager# */{ if (this.searchview) { this.searchview.stop(); } - this.searchview = new db.web.SearchView( + this.searchview = new session.web.SearchView( this, this.dataset, view_id, search_defaults, this.flags.search_view === false); @@ -331,13 +334,13 @@ db.web.ViewManager = db.web.Widget.extend(/** @lends db.web.ViewManager# */{ on_action_executed: function () {} }); -db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.ViewManagerAction# */{ +session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepnerp.web.ViewManagerAction# */{ template:"ViewManagerAction", /** - * @constructs db.web.ViewManagerAction - * @extends db.web.ViewManager + * @constructs session.web.ViewManagerAction + * @extends session.web.ViewManager * - * @param {db.web.ActionManager} parent parent object/widget + * @param {session.web.ActionManager} parent parent object/widget * @param {Object} action descriptor for the action this viewmanager needs to manage its views. */ init: function(parent, action) { @@ -347,7 +350,7 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View this._super(parent, null, action.views); this.session = parent.session; this.action = action; - var dataset = new db.web.DataSetSearch(this, action.res_model, action.context, action.domain); + var dataset = new session.web.DataSetSearch(this, action.res_model, action.context, action.domain); if (action.res_id) { dataset.ids.push(action.res_id); dataset.index = 0; @@ -397,12 +400,12 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View this.$element.find('.oe_get_xml_view').click(function () { // TODO: add search view? - $('<pre>').text(db.web.json_node_to_xml( + $('<pre>').text(session.web.json_node_to_xml( self.views[self.active_view].controller.fields_view.arch, true)) .dialog({ width: '95%'}); }); if (this.action.help && !this.flags.low_profile) { - var Users = new db.web.DataSet(self, 'res.users'), + var Users = new session.web.DataSet(self, 'res.users'), header = this.$element.find('.oe-view-manager-header'); header.delegate('blockquote button', 'click', function() { var $this = $(this); @@ -448,7 +451,7 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View var grandparent = this.widget_parent && this.widget_parent.widget_parent; // display shortcuts if on the first view for the action var $shortcut_toggle = this.$element.find('.oe-shortcut-toggle'); - if (!(grandparent instanceof db.web.WebClient) || + if (!(grandparent instanceof session.web.WebClient) || !(view.view_type === this.views_src[0].view_type && view.view_id === this.views_src[0].view_id)) { $shortcut_toggle.hide(); @@ -485,7 +488,7 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View * Intercept do_action resolution from children views */ on_action_executed: function () { - return new db.web.DataSet(this, 'res.log') + return new session.web.DataSet(this, 'res.log') .call('get', [], this.do_display_log); }, /** @@ -512,7 +515,7 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View } }); -db.web.Sidebar = db.web.Widget.extend({ +session.web.Sidebar = session.web.Widget.extend({ init: function(parent, element_id) { this._super(parent, element_id); this.items = {}; @@ -521,7 +524,7 @@ db.web.Sidebar = db.web.Widget.extend({ start: function() { this._super(this); var self = this; - this.$element.html(db.web.qweb.render('Sidebar')); + this.$element.html(session.web.qweb.render('Sidebar')); this.$element.find(".toggle-sidebar").click(function(e) { self.do_toggle(); }); @@ -598,7 +601,7 @@ db.web.Sidebar = db.web.Widget.extend({ if(!$section) { section_id = _.uniqueId(this.element_id + '_section_' + code + '_'); - var $section = $(db.web.qweb.render("Sidebar.section", { + var $section = $(session.web.qweb.render("Sidebar.section", { section_id: section_id, name: name, classname: 'oe_sidebar_' + code, @@ -630,7 +633,7 @@ db.web.Sidebar = db.web.Widget.extend({ this.items[items[i].element_id] = items[i]; } - var $items = $(db.web.qweb.render("Sidebar.section.items", {items: items})); + var $items = $(session.web.qweb.render("Sidebar.section.items", {items: items})); $items.find('a.oe_sidebar_action_a').click(function() { var item = self.items[$(this).attr('id')]; @@ -684,7 +687,7 @@ db.web.Sidebar = db.web.Widget.extend({ } }); -db.web.TranslateDialog = db.web.Dialog.extend({ +session.web.TranslateDialog = session.web.Dialog.extend({ dialog_title: _t("Translations"), init: function(view) { // TODO fme: should add the language to fields_view_get because between the fields view get @@ -704,14 +707,14 @@ db.web.TranslateDialog = db.web.Dialog.extend({ this.translatable_fields_keys = _.map(this.view.translatable_fields || [], function(i) { return i.name }); this.languages = null; this.languages_loaded = $.Deferred(); - (new db.web.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(), + (new session.web.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(), [['translatable', '=', '1']])).read_slice(['code', 'name'], { sort: 'id' }, this.on_languages_loaded); }, start: function() { var self = this; this._super(); $.when(this.languages_loaded).then(function() { - self.$element.html(db.web.qweb.render('TranslateDialog', { widget: self })); + self.$element.html(session.web.qweb.render('TranslateDialog', { widget: self })); self.$element.tabs(); if (!(self.view.translatable_fields && self.view.translatable_fields.length)) { self.hide_tabs('fields'); @@ -816,7 +819,7 @@ db.web.TranslateDialog = db.web.Dialog.extend({ } }); -db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ +session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ template: "EmptyComponent", set_default_options: function(options) { this.options = options || {}; @@ -830,7 +833,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ }, open_translate_dialog: function(field) { if (!this.translate_dialog) { - this.translate_dialog = new db.web.TranslateDialog(this).start(); + this.translate_dialog = new session.web.TranslateDialog(this).start(); } this.translate_dialog.open(field); }, @@ -842,7 +845,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ * @param {String} [action_data.special=null] special action handlers (currently: only ``'cancel'``) * @param {String} [action_data.type='workflow'] the action type, if present, one of ``'object'``, ``'action'`` or ``'workflow'`` * @param {Object} [action_data.context=null] additional action context, to add to the current context - * @param {db.web.DataSet} dataset a dataset object used to communicate with the server + * @param {session.web.DataSet} dataset a dataset object used to communicate with the server * @param {Object} [record_id] the identifier of the object on which the action is to be applied * @param {Function} on_closed callback to execute when dialog is closed or when the action does not generate any result (no new action) */ @@ -854,12 +857,12 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ return self.widget_parent.on_action_executed.apply(null, arguments); } }; - var context = new db.web.CompoundContext(dataset.get_context(), action_data.context || {}); + var context = new session.web.CompoundContext(dataset.get_context(), action_data.context || {}); var handler = function (r) { var action = r.result; if (action && action.constructor == Object) { - var ncontext = new db.web.CompoundContext(context, action.context || {}); + var ncontext = new session.web.CompoundContext(context); if (record_id) { ncontext.add({ active_id: record_id, @@ -867,6 +870,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ active_model: dataset.model }); } + ncontext.add(action.context || {}); return self.rpc('/web/session/eval_domain_and_context', { contexts: [ncontext], domains: [] @@ -895,7 +899,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ /** * Directly set a view to use instead of calling fields_view_get. This method must * be called before start(). When an embedded view is set, underlying implementations - * of db.web.View must use the provided view instead of any other one. + * of session.web.View must use the provided view instead of any other one. * * @param embedded_view A view. */ @@ -913,7 +917,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ }, on_sidebar_manage_views: function() { if (this.fields_view && this.fields_view.arch) { - $('<xmp>' + db.web.json_node_to_xml(this.fields_view.arch, true) + '</xmp>').dialog({ width: '95%', height: 600}); + $('<xmp>' + session.web.json_node_to_xml(this.fields_view.arch, true) + '</xmp>').dialog({ width: '95%', height: 600}); } else { this.do_warn("Manage Views", "Could not find current view declaration"); } @@ -925,11 +929,11 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ console.log('Todo'); }, on_sidebar_import: function() { - var import_view = new db.web.DataImport(this, this.dataset); + var import_view = new session.web.DataImport(this, this.dataset); import_view.start(); }, on_sidebar_export: function() { - var export_view = new db.web.DataExport(this, this.dataset); + var export_view = new session.web.DataExport(this, this.dataset); export_view.start(); }, on_sidebar_translate: function() { @@ -939,7 +943,7 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{ } }); -db.web.json_node_to_xml = function(node, single_quote, indent) { +session.web.json_node_to_xml = function(node, single_quote, indent) { // For debugging purpose, this function will convert a json node back to xml // Maybe usefull for xml view editor @@ -968,7 +972,7 @@ db.web.json_node_to_xml = function(node, single_quote, indent) { r += '>\n'; var childs = []; for (var i = 0, ii = node.children.length; i < ii; i++) { - childs.push(db.web.json_node_to_xml(node.children[i], single_quote, indent + 1)); + childs.push(session.web.json_node_to_xml(node.children[i], single_quote, indent + 1)); } r += childs.join('\n'); r += '\n' + sindent + '</' + node.tag + '>'; diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 7720ae2d38b..c0007275ffa 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -568,21 +568,7 @@ Delete </button> </td> - <th t-if="options.pager !== false" class="oe-list-pager"> - <button type="button" disabled="disabled" - data-pager-action="first">First</button> - <button type="button" disabled="disabled" - data-pager-action="previous" - ><</button> - - <span class="oe-pager-state"> - </span> - - <button type="button" disabled="disabled" - data-pager-action="next">></button> - <button type="button" disabled="disabled" - data-pager-action="last">Last</button> - </th> + <t t-call="Listview.navigation.button"/> </tr> </table> </th> @@ -612,8 +598,26 @@ </td> <td t-if="options.deletable"/> </tr> + <tr> + <t t-call="Listview.navigation.button"/> + </tr> </tfoot> </table> +<th t-name="Listview.navigation.button" t-if="options.pager !== false" + class="oe-list-pager" t-att-colspan="columns_count"> + <button type="button" disabled="disabled" + data-pager-action="first">First</button> + <button type="button" disabled="disabled" + data-pager-action="previous"><</button> + + <span class="oe-pager-state"> + </span> + + <button type="button" disabled="disabled" + data-pager-action="next">></button> + <button type="button" disabled="disabled" + data-pager-action="last">Last</button> +</th> <t t-name="ListView.rows" t-foreach="records.length" t-as="index"> <t t-call="ListView.row"> <t t-set="record" t-value="records.at(index)"/> @@ -740,12 +744,6 @@ <t t-call="WidgetFrame"/> </div> </t> -<t t-name="WidgetNotebook.readonly"> - <t t-foreach="widget.pages" t-as="page"> - <h3><t t-esc="page.string"/></h3> - <t t-raw="page.render()"/> - </t> -</t> <t t-name="WidgetSeparator"> <div t-if="widget.orientation !== 'vertical'" t-att-class="'separator ' + widget.orientation"> <t t-esc="widget.string"/> @@ -855,9 +853,9 @@ </t> <t t-name="FieldMany2One.context_menu"> <ul> - <li t-att-id="widget.cm_id + '_open'" style="color:grey">Open...</li> - <li t-att-id="widget.cm_id + '_create'">Create...</li> - <li t-att-id="widget.cm_id + '_search'" class="oe_m2o_menu_item_mandatory">Search...</li> + <li t-att-id="widget.cm_id + '_open'" style="color:grey" class="oe_m2o_menu_item_mandatory">Open...</li> + <li t-att-id="widget.cm_id + '_create'" class="oe_m2o_menu_item_noreadonly">Create...</li> + <li t-att-id="widget.cm_id + '_search'" class="oe_m2o_menu_item_noreadonly">Search...</li> <t t-set="i" t-value="0"/> <t t-foreach="widget.related_entries" t-as="entry"> <li t-att-id="widget.cm_id + '_related_' + i" style="color:grey" class="oe_m2o_menu_item_mandatory"> @@ -1405,7 +1403,8 @@ <a id="importview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Import</a> </t> <t t-name="ImportDataView"> -<form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data"> +<form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data" + class="oe-import oe-import-no-result"> <input type="hidden" name="session_id" t-att-value="session.session_id"/> <h2 class="separator horizontal">1. Import a .CSV file</h2> <p>Select a .CSV file to import. If you need a sample of file to import, @@ -1415,11 +1414,11 @@ <label for="csvfile">CSV File:</label> <input type="file" id="csvfile" size="50" name="csvfile"/> </p> - <h2 class="separator horizontal">2. Check your file format</h2> - <div id="result"></div> - <fieldset> - <legend style="cursor:pointer;">Import Options</legend> - <table style="display:none"> + <h2 class="separator horizontal oe-import-result">2. Check your file format</h2> + <div id="result" class="oe-import-result"></div> + <fieldset class="oe-closed oe-import-result"> + <legend>Import Options</legend> + <table> <tr> <td colspan="4"> <label for="file_has_headers">Does your file have titles?</label> @@ -1449,22 +1448,24 @@ </fieldset> </form> </t> -<table t-name="ImportView.result" - class="oe_import_grid" width="100%" style="margin: 5px 0;"> - <tr t-if="headers" class="oe_import_grid-header"> - <td t-foreach="headers" t-as="header" class="oe_import_grid-cell"> - <t t-esc="header"/></td> - </tr> - <tr> - <td t-foreach="records[0]" t-as="column"> - <input class="sel_fields"/> - </td> - </tr> - <tr t-foreach="records" t-as="record" class="oe_import_grid-row"> - <td t-foreach="record" t-as="cell" class="oe_import_grid-cell"> - <t t-esc="cell"/></td> - </tr> -</table> +<t t-name="ImportView.result"> + <table class="oe_import_grid" width="100%" style="margin: 5px 0;"> + <tr t-if="headers" class="oe_import_grid-header"> + <td t-foreach="headers" t-as="header" class="oe_import_grid-cell"> + <t t-esc="header"/></td> + </tr> + <tr> + <td t-foreach="records[0]" t-as="column"> + <input class="sel_fields" placeholder="--- Don't Import ---"/><span class="oe-m2o-drop-down-button"> + <img src="/web/static/src/img/down-arrow.png" /></span> + </td> + </tr> + <tr t-foreach="records" t-as="record" class="oe_import_grid-row"> + <td t-foreach="record" t-as="cell" class="oe_import_grid-cell"> + <t t-esc="cell"/></td> + </tr> + </table> +</t> <t t-name="ImportView.error"> <p style="white-space:pre-line;">The import failed due to:<t t-esc="error.message"/></p> <t t-if="error.preview"> diff --git a/addons/web/static/test/formats.js b/addons/web/static/test/formats.js index 331725dd9a5..3c3c6b06e72 100644 --- a/addons/web/static/test/formats.js +++ b/addons/web/static/test/formats.js @@ -27,6 +27,18 @@ $(document).ready(function () { var fl = 12.1234; var str = openerp.web.format_value(fl, {type:"float"}); equal(str, "12.12"); + equal(openerp.web.format_value(12.02, {type: 'float'}), + '12.02'); + equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 3]}), + '0.000'); + equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 4]}), + '0.0002'); + equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 6]}), + '0.000200'); + equal(openerp.web.format_value(1, {type: 'float', digits: [1, 6]}), + '1.000000'); + equal(openerp.web.format_value(1, {type: 'float'}), + '1.00'); }); test("parse_datetime", function () { var val = openerp.web.str_to_datetime("2009-05-04 12:34:23"); @@ -51,4 +63,4 @@ $(document).ready(function () { var val = openerp.web.parse_value(str, {type:"float"}); equal(val, -134112.1234); }); -});
\ No newline at end of file +}); diff --git a/addons/web/static/test/test.html b/addons/web/static/test/test.html index 38237a0600a..f6248e705c0 100644 --- a/addons/web/static/test/test.html +++ b/addons/web/static/test/test.html @@ -21,7 +21,7 @@ <script src="/web/static/lib/datejs/sugarpak.js"></script> <script src="/web/static/lib/datejs/extras.js"></script> - <script src="/web/static/lib/qweb/qweb.js"></script> + <script src="/web/static/lib/qweb/qweb2.js"></script> <script src="/web/static/src/js/boot.js"></script> <script src="/web/static/src/js/core.js"></script> @@ -31,11 +31,8 @@ <script src="/web/static/src/js/data.js"></script> <script src="/web/static/src/js/views.js"></script> <script src="/web/static/src/js/search.js"></script> - <script src="/web/static/src/js/form.js"></script> - <script src="/web/static/src/js/list.js"></script> - <script type="text/javascript"> - QWeb.add_template('/web/static/src/xml/web.xml'); - </script> + <script src="/web/static/src/js/view_form.js"></script> + <script src="/web/static/src/js/view_list.js"></script> </head> <body id="oe" class="openerp"> <h1 id="qunit-header">OpenERP web Test Suite</h1> diff --git a/addons/web_calendar/po/fr.po b/addons/web_calendar/po/fr.po index 77bf389531e..7679850c593 100644 --- a/addons/web_calendar/po/fr.po +++ b/addons/web_calendar/po/fr.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:38+0200\n" -"PO-Revision-Date: 2011-10-12 05:03+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2011-10-23 12:12+0000\n" +"Last-Translator: fhe (OpenERP) <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: 2011-10-13 04:46+0000\n" -"X-Generator: Launchpad (build 14124)\n" +"X-Launchpad-Export-Date: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" #: addons/web_calendar/static/src/xml/web_calendar.xml:0 msgid " " -msgstr "" +msgstr " " diff --git a/addons/web_calendar/po/gl.po b/addons/web_calendar/po/gl.po new file mode 100644 index 00000000000..73ecf153937 --- /dev/null +++ b/addons/web_calendar/po/gl.po @@ -0,0 +1,22 @@ +# Galician translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-10-19 10:25+0000\n" +"Last-Translator: Amós Oviedo <Unknown>\n" +"Language-Team: Galician <gl@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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr " " diff --git a/addons/web_calendar/po/sk.po b/addons/web_calendar/po/sk.po new file mode 100644 index 00000000000..168ca1d2adf --- /dev/null +++ b/addons/web_calendar/po/sk.po @@ -0,0 +1,22 @@ +# Slovak translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-10-23 14:42+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Slovak <sk@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: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr "" diff --git a/addons/web_calendar/po/sl.po b/addons/web_calendar/po/sl.po new file mode 100644 index 00000000000..40f8f43a756 --- /dev/null +++ b/addons/web_calendar/po/sl.po @@ -0,0 +1,22 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-10-19 06:26+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr " " diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index 2cc0cae1392..a5fd8bcac9c 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -156,7 +156,9 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ for (var e = 0; e < events.length; e++) { var evt = events[e]; if (!evt[this.date_start]) { - this.notification.warn("Start date is not defined for event :", evt['id']); + if (this.session.debug) { + this.do_warn("Start date is not defined for event :", evt['id']); + } break; } @@ -267,12 +269,14 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ } }, do_edit_event: function(event_id) { + var self = this; event_id = parseInt(event_id, 10); var index = _.indexOf(this.dataset.ids, event_id); if (index > -1) { this.dataset.index = index; - this.form_dialog.form.do_show(); - this.form_dialog.open(); + this.form_dialog.form.do_show().then(function() { + self.form_dialog.open(); + }); return false; } return true; diff --git a/addons/web_dashboard/po/fr.po b/addons/web_dashboard/po/fr.po index 08c9ef65656..b02d061cdd2 100644 --- a/addons/web_dashboard/po/fr.po +++ b/addons/web_dashboard/po/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:39+0200\n" -"PO-Revision-Date: 2011-10-12 05:10+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2011-10-23 12:11+0000\n" +"Last-Translator: Xavier (Open ERP) <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: 2011-10-13 04:46+0000\n" -"X-Generator: Launchpad (build 14124)\n" +"X-Launchpad-Export-Date: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Reset" @@ -23,24 +23,24 @@ msgstr "" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Undo" -msgstr "" +msgstr "Annuler" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Add Widget" -msgstr "" +msgstr "Ajouter un Gadget" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Change layout" -msgstr "" +msgstr "Changer la mise en page" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Choose dashboard layout" -msgstr "" +msgstr "Choisissez la mise en page du tableau de bord" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "progress:" -msgstr "" +msgstr "progrès" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "%" -msgstr "" +msgstr "%" diff --git a/addons/web_dashboard/po/gl.po b/addons/web_dashboard/po/gl.po new file mode 100644 index 00000000000..b7a081aff6f --- /dev/null +++ b/addons/web_dashboard/po/gl.po @@ -0,0 +1,46 @@ +# Galician translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 10:29+0000\n" +"Last-Translator: Amós Oviedo <Unknown>\n" +"Language-Team: Galician <gl@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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Reset" +msgstr "Reiniciar" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Undo" +msgstr "Desfacer" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Add Widget" +msgstr "Engadir un widget" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Change layout" +msgstr "Cambiar disposición" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "Cambiar disposición do taboleiro" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "progress:" +msgstr "progreso:" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "%" +msgstr "%" diff --git a/addons/web_dashboard/po/sk.po b/addons/web_dashboard/po/sk.po new file mode 100644 index 00000000000..d2c2b2160a0 --- /dev/null +++ b/addons/web_dashboard/po/sk.po @@ -0,0 +1,46 @@ +# Slovak translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-23 14:45+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Slovak <sk@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: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Reset" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Undo" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Add Widget" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Change layout" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "progress:" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "%" +msgstr "" diff --git a/addons/web_dashboard/po/sl.po b/addons/web_dashboard/po/sl.po new file mode 100644 index 00000000000..9eee401c427 --- /dev/null +++ b/addons/web_dashboard/po/sl.po @@ -0,0 +1,46 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 06:25+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Reset" +msgstr "Ponastavi" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Undo" +msgstr "Razveljavi" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Add Widget" +msgstr "Dodaj gradnik" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Change layout" +msgstr "Spreminjanje postavitve" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "Izberite postavitev nadzorne plošče" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "progress:" +msgstr "napredek:" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "%" +msgstr "%" diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js index 74393684ad2..923b43ce034 100644 --- a/addons/web_dashboard/static/src/js/dashboard.js +++ b/addons/web_dashboard/static/src/js/dashboard.js @@ -378,8 +378,8 @@ openerp.web_dashboard.apps = { module: 'account_voucher', name: 'Invoicing', help: "Send invoice, track payments and reminders" }, { - module: 'project', name: 'Projects', - help: "Manage projects, track tasks, invoice task works, follow issues, \u2026" + module: 'point_of_sale', name: 'Point of Sales', + help: "Manage shop sales, use touch-screen POS" } ], [ { @@ -389,19 +389,19 @@ openerp.web_dashboard.apps = { module: 'stock', name: 'Warehouse', help: "Track your stocks, schedule product moves, manage incoming and outgoing shipments, \u2026" }, { - module: 'hr', name: 'Human Resources', - help: "Manage employees and their contracts, follow laves, recruit people, \u2026" + module: 'mrp', name: 'Manufacturing', + help: "Manage your manufacturing, control your supply chain, personalize master data, \u2026" }, { - module: 'point_of_sale', name: 'Point of Sales', - help: "Manage shop sales, use touch-screen POS" + module: 'account_accountant', name: 'Accounting and Finance', + help: "Record financial operations, automate followup, manage multi-currency, \u2026" } ], [ { - module: 'profile_tools', name: 'Extra Tools', - help: "Track ideas, manage lunch, create surveys, share data" + module: 'project', name: 'Projects', + help: "Manage projects, track tasks, invoice task works, follow issues, \u2026" }, { - module: 'mrp', name: 'Manufacturing', - help: "Manage your manufacturing, control your supply chain, personalize master data, \u2026" + module: 'hr', name: 'Human Resources', + help: "Manage employees and their contracts, follow laves, recruit people, \u2026" }, { module: 'marketing', name: 'Marketing', help: "Manage campaigns, follow activities, automate emails, \u2026" diff --git a/addons/web_default_home/po/fr.po b/addons/web_default_home/po/fr.po index 9f831ef2214..ec8855f86cf 100644 --- a/addons/web_default_home/po/fr.po +++ b/addons/web_default_home/po/fr.po @@ -8,31 +8,32 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:39+0200\n" -"PO-Revision-Date: 2011-10-12 05:07+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2011-10-23 12:10+0000\n" +"Last-Translator: fhe (OpenERP) <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: 2011-10-13 04:46+0000\n" -"X-Generator: Launchpad (build 14124)\n" +"X-Launchpad-Export-Date: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." -msgstr "" +msgstr "Bienvenue dans votre nouvelle instance OpenERP." #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Remember to bookmark this page." -msgstr "" +msgstr "Assurez-vous de marquer cette page comme favoris." #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Remember your login:" -msgstr "" +msgstr "Mémorisez votre identifiant:" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Choose the first OpenERP Application you want to install.." msgstr "" +"Choisissez la première application OpenERP que vous voulez installer..." #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Install" -msgstr "" +msgstr "Installer" diff --git a/addons/web_default_home/po/gl.po b/addons/web_default_home/po/gl.po new file mode 100644 index 00000000000..4069197dec9 --- /dev/null +++ b/addons/web_default_home/po/gl.po @@ -0,0 +1,38 @@ +# Galician translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 10:31+0000\n" +"Last-Translator: Amós Oviedo <Unknown>\n" +"Language-Team: Galician <gl@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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "Binvido á súa nova instancia de OpenERP." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember to bookmark this page." +msgstr "Recorde engadir a marcadores esta páxgina" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember your login:" +msgstr "Recordar o seu inicio de sesión:" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "Elixa a primeira Aplicación de OpenERP que quere instalar." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Install" +msgstr "Instalar" diff --git a/addons/web_default_home/po/sl.po b/addons/web_default_home/po/sl.po new file mode 100644 index 00000000000..d9f10a9e92f --- /dev/null +++ b/addons/web_default_home/po/sl.po @@ -0,0 +1,38 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 06:24+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "Dobrodošli v vaš nov primer OpenERP." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember to bookmark this page." +msgstr "Ne pozabite narediti zaznamka te strani." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember your login:" +msgstr "Zapomni si prijavo:" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "Izberite prvi aplikacijo OpenERP, ki jo želite namestiti .." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Install" +msgstr "Namesti" diff --git a/addons/web_diagram/po/gl.po b/addons/web_diagram/po/gl.po new file mode 100644 index 00000000000..0aca25055d3 --- /dev/null +++ b/addons/web_diagram/po/gl.po @@ -0,0 +1,54 @@ +# Galician translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 10:33+0000\n" +"Last-Translator: Amós Oviedo <Unknown>\n" +"Language-Team: Galician <gl@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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Node" +msgstr "Novo nodo" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Edge" +msgstr "Novo marxe" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Show Grid:" +msgstr "Mostrar Grid:" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "First" +msgstr "Primeiro" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "<<" +msgstr "<<" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "0" +msgstr "0" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "/" +msgstr "/" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid ">>" +msgstr ">>" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Last" +msgstr "Último" diff --git a/addons/web_diagram/po/sl.po b/addons/web_diagram/po/sl.po new file mode 100644 index 00000000000..9cce3a3564e --- /dev/null +++ b/addons/web_diagram/po/sl.po @@ -0,0 +1,54 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 06:22+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Node" +msgstr "Novo vozlišče" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Edge" +msgstr "Nov rob" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Show Grid:" +msgstr "Pokaži mrežo:" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "First" +msgstr "Začetek" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "<<" +msgstr "<<" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "0" +msgstr "0" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "/" +msgstr "/" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid ">>" +msgstr ">>" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Last" +msgstr "Konec" diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index dcd168536d8..82b085d9749 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -16,12 +16,11 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ this.all_display_data = false; this.groups = []; this.qweb = new QWeb2.Engine(); + this.qweb.debug = (window.location.search.indexOf('?debug') !== -1); this.aggregates = {}; this.NO_OF_COLUMNS = 3; - if (this.options.action_views_ids.form) { - this.form_dialog = new openerp.web.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start(); - this.form_dialog.on_form_dialog_saved.add_last(this.on_record_saved); - } + this.form_dialog = new openerp.web.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start(); + this.form_dialog.on_form_dialog_saved.add_last(this.on_record_saved); }, start: function() { this._super(); @@ -124,23 +123,11 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ } } }, - sort_group: function (first, second) { - if (first.header && second.header) - { - first = first.header.toLowerCase(); - second = second.header.toLowerCase(); - if (first > second) return 1; - else if (first < second) return -1; - else return 0; - } - else return 0; - }, on_show_data: function() { var self = this; if (!this.group_by.length) { this.do_record_group(); } - self.all_display_data.sort(this.sort_group); this.$element.html(QWeb.render("KanbanView", {"data": self.all_display_data})); this.on_reload_kanban(); this.$element.find(".oe_vertical_text").hide(); @@ -203,12 +190,10 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ this.do_switch_view('form'); }, do_edit_record: function(record_id) { - if (this.form_dialog) { - this.form_dialog.load_id(record_id); - this.form_dialog.open(); - } else { - this.notification.warn("Kanban", "No form view defined for this object"); - } + var self = this; + this.form_dialog.select_id(record_id).then(function() { + self.form_dialog.open(); + }); }, on_record_saved: function(r) { var id = this.form_dialog.form.datarecord.id; @@ -242,7 +227,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ */ on_reload_record: function (record_id){ var self = this; - this.dataset.read_ids([record_id], [], function (records) { + this.dataset.read_ids([record_id], _.keys(self.fields_view.fields), function (records) { if (records.length > 0) { for (var i=0, ii=self.all_display_data.length; i < ii; i++) { for(j=0, jj=self.all_display_data[i].records.length; j < jj; j++) { @@ -440,15 +425,14 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ self.groups = groups; if (groups.length) { self.do_render_group(groups); - } - else { + } else { self.all_display_data = []; self.on_show_data(); } }, function (dataset) { self.groups = []; - self.dataset.read_slice([], {}, function(records) { + self.dataset.read_slice(_.keys(self.fields_view.fields), {}, function(records) { if (records.length) { self.all_display_data = [{'records': records, 'value':false, 'header' : false, 'ids': self.dataset.ids}]; } else { @@ -477,8 +461,9 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ _.each(self.aggregates, function(value, key) { group_aggregates[value] = group.aggregates[key]; }); - self.dataset.read_slice([], {'domain': group.domain, 'conext': group.context}, function(records) { - self.all_display_data.push({"value" : group_value, "records": records, 'header':group_name, 'ids': self.dataset.ids, 'aggregates': group_aggregates}); + var dataset = new openerp.web.DataSetSearch(self, self.dataset.model, group.context, group.domain); + dataset.read_slice(_.keys(self.fields_view.fields), {'domain': group.domain, 'context': group.context}, function(records) { + self.all_display_data.push({"value" : group_value, "records": records, 'header':group_name, 'ids': dataset.ids, 'aggregates': group_aggregates}); if (datagroups.length == self.all_display_data.length) { self.$element.find(".oe_kanban_view").remove(); self.on_show_data(); diff --git a/addons/web_mobile/po/fr.po b/addons/web_mobile/po/fr.po index 19b9d0de4e3..b64bcecfb1e 100644 --- a/addons/web_mobile/po/fr.po +++ b/addons/web_mobile/po/fr.po @@ -8,30 +8,30 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2011-10-07 10:39+0200\n" -"PO-Revision-Date: 2011-10-08 02:26+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2011-10-23 12:09+0000\n" +"Last-Translator: fhe (OpenERP) <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: 2011-10-09 05:22+0000\n" -"X-Generator: Launchpad (build 14110)\n" +"X-Launchpad-Export-Date: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" -msgstr "" +msgstr "OpenERP" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Database:" -msgstr "" +msgstr "Base de données :" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Login:" -msgstr "" +msgstr "Identifiant :" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Password:" -msgstr "" +msgstr "Mot de passe :" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Login" @@ -39,23 +39,23 @@ msgstr "" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Bad username or password" -msgstr "" +msgstr "Mauvais nom d'utilisateur ou mot de passe" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Favourite" -msgstr "" +msgstr "Favoris" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Preference" -msgstr "" +msgstr "Préférences" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Applications" -msgstr "" +msgstr "Applications" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Options" -msgstr "" +msgstr "Réglages" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Logout" @@ -63,4 +63,4 @@ msgstr "" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid ":" -msgstr "" +msgstr ":" diff --git a/addons/web_mobile/po/gl.po b/addons/web_mobile/po/gl.po new file mode 100644 index 00000000000..4049dfb8d1f --- /dev/null +++ b/addons/web_mobile/po/gl.po @@ -0,0 +1,66 @@ +# Galician translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 10:36+0000\n" +"Last-Translator: Amós Oviedo <Unknown>\n" +"Language-Team: Galician <gl@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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "OpenERP" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "Base de datos:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "Inicio de sesión:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "Contrasinal:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "Inicio de sesión" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "Nome de usuario ou contrasinal incorrectos" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "Favorito" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "Preferenza" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Applications" +msgstr "Aplicacións" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "Opcións" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "Pechar sesión" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr ":" diff --git a/addons/web_mobile/po/sk.po b/addons/web_mobile/po/sk.po new file mode 100644 index 00000000000..5e10f135cf9 --- /dev/null +++ b/addons/web_mobile/po/sk.po @@ -0,0 +1,66 @@ +# Slovak translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-23 14:55+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Slovak <sk@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: 2011-10-24 05:18+0000\n" +"X-Generator: Launchpad (build 14185)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Applications" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr "" diff --git a/addons/web_mobile/po/sl.po b/addons/web_mobile/po/sl.po new file mode 100644 index 00000000000..041141d4824 --- /dev/null +++ b/addons/web_mobile/po/sl.po @@ -0,0 +1,66 @@ +# Slovenian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-10-19 06:19+0000\n" +"Last-Translator: Anze (Neotek) <Unknown>\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: 2011-10-20 04:48+0000\n" +"X-Generator: Launchpad (build 14165)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "OpenERP" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "Podatkovna baza" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "Uporabnik:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "Geslo:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "Prijava" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "Napačno uporabniško ime ali geslo" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "Priljubljen" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "Lastnost" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Applications" +msgstr "Programi" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "Možnosti" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "Odjava" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr ":" diff --git a/npybabel.py b/npybabel.py index 0a3c75025c9..1b2e80a7a67 100755 --- a/npybabel.py +++ b/npybabel.py @@ -54,7 +54,7 @@ def extract_qweb(fileobj, keywords, comment_tags, options): for el in current_element: if "t-js" not in el.attrib and \ not ("t-jquery" in el.attrib and "t-operation" not in el.attrib) and \ - not ("t-trad" in el.attrib and el.attrib["t-trad"].strip() == "off"): + not ("t-translation" in el.attrib and el.attrib["t-translation"].strip() == "off"): handle_text(el.text) iter_elements(el) handle_text(el.tail) |
