[MERGE] from trunk
bzr revid: rco@openerp.com-20130213082352-t3wbhkxfh3z10ukt
This commit is contained in:
commit
6f045b48e8
|
@ -0,0 +1,12 @@
|
|||
.. _changelog:
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
`trunk`
|
||||
-------
|
||||
|
||||
- Removed support for `__terp__.py` descriptor files.
|
||||
- Removed support for `<terp>` root element in XML files.
|
||||
- Removed support for the non-openerp namespace (e.g. importing `tools` instead
|
||||
of `openerp.tools` in an addons).
|
|
@ -0,0 +1,73 @@
|
|||
.. _using-mod-wsgi:
|
||||
|
||||
Deploying with ``mod_wsgi``
|
||||
===========================
|
||||
|
||||
``mod_wsgi`` makes it possible to run a WSGI_ application (such as OpenERP)
|
||||
under the Apache_ HTTP server.
|
||||
|
||||
.. _WSGI: http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface
|
||||
.. _Apache: https://httpd.apache.org/
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
Similarly to :doc:`deployment-gunicorn`, running OpenERP behind Apache with
|
||||
``mod_wsgi`` requires to modify the sample ``openerp-wsgi.py`` script. Then
|
||||
that Python script can be set in the Apache configuration.
|
||||
|
||||
Python (WSGI) application
|
||||
-------------------------
|
||||
|
||||
Apache needs a Python script providing the WSGI application. By default the
|
||||
symbol looked up by Apache is ``application`` but it can be overidden with the
|
||||
``WSGICallableObject`` directive if necessary. A sample script
|
||||
``openerp-wsgi.py`` is provided with OpenERP and you can adapt it to your
|
||||
needs. For instance, make sure to correctly set the ``addons_path``
|
||||
configuration (using absolute paths).
|
||||
|
||||
.. note ::
|
||||
The script provided to Apache has often the extension ``.wsgi`` but the
|
||||
``openerp-wsgi.py`` script will do just as fine.
|
||||
|
||||
Apache Configuration
|
||||
--------------------
|
||||
|
||||
In Apache's configuration, add the following line to activate ``mod_wsgi``::
|
||||
|
||||
LoadModule wsgi_module modules/mod_wsgi.so
|
||||
|
||||
Then a possible (straightforward, with e.g. no virtual server) configuration is
|
||||
as follow::
|
||||
|
||||
WSGIScriptAlias / /home/thu/repos/server/trunk/openerp-wsgi.py
|
||||
WSGIDaemonProcess oe user=thu group=users processes=2 python-path=/home/thu/repos/server/trunk/ display-name=apache-openerp
|
||||
WSGIProcessGroup oe
|
||||
|
||||
<Directory /home/thu/repos/server/trunk>
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
The ``WSGIScriptAlias`` directive indicates that any URL matching ``/`` will
|
||||
run the application defined in the ``openerp-wsgi.py`` script.
|
||||
|
||||
The ``WSGIDaemonProcess`` and ``WSGIProcessGroup`` directives create a process
|
||||
configuration. The configuration makes it possible for isntance to specify
|
||||
which user runs the OpenERP process. The ``display-name`` option will make the
|
||||
processes appear as ``apache-openerp`` in ``ps`` (instead of the normal
|
||||
``httpd``).
|
||||
|
||||
Finally, it is necessary to make sure the source directory where the script can
|
||||
be found is allowed by Apache with the ``Directory`` block.
|
||||
|
||||
``mod_wsgi`` supports a lot of directives, please see this ``mod_wsgi`` wiki
|
||||
page for more details:
|
||||
http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives.
|
||||
|
||||
Running
|
||||
-------
|
||||
|
||||
When the Apache configuration changes, it is necessary to restart Apache, e.g. with::
|
||||
|
||||
/etc/init.d/httpd restart
|
|
@ -17,6 +17,7 @@ OpenERP Server
|
|||
05_test_framework
|
||||
06_misc
|
||||
deployment-gunicorn
|
||||
deployment-mod-wsgi
|
||||
|
||||
OpenERP Command
|
||||
'''''''''''''''
|
||||
|
@ -36,6 +37,15 @@ OpenERP Server API
|
|||
|
||||
orm-methods.rst
|
||||
api_models.rst
|
||||
routing.rst
|
||||
|
||||
Changelog
|
||||
'''''''''
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
changelog.rst
|
||||
|
||||
Concepts
|
||||
''''''''
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
.. _routing:
|
||||
|
||||
Routing
|
||||
=======
|
||||
|
||||
.. versionchanged:: 7.1
|
||||
|
||||
The OpenERP framework, as an HTTP server, serves a few hard-coded URLs
|
||||
(``models``, ``db``, ...) to expose RPC endpoints. When running the web addons
|
||||
(which is almost always the case), it also serves URLs without them being RPC
|
||||
endpoints.
|
||||
|
||||
In older version of OpenERP, adding RPC endpoints was done by subclassing the
|
||||
``openerp.netsvc.ExportService`` class. Adding WSGI handlers was done by
|
||||
registering them with the :py:func:`openerp.wsgi.register_wsgi_handler`
|
||||
function.
|
||||
|
||||
Starting with OpenERP 7.1, exposing a new arbitrary WSGI handler is done with
|
||||
the :py:func:`openerp.http.handler` decorator while adding an RPC endpoint is
|
||||
done with the :py:func:`openerp.http.rpc` decorator.
|
||||
|
||||
Routing decorators
|
||||
------------------
|
||||
|
||||
.. automodule:: openerp.http
|
||||
:members:
|
||||
:undoc-members:
|
|
@ -1 +0,0 @@
|
|||
excludes: pychart release openerp-server test run_tests addons/base_quality_interrogation
|
|
@ -28,6 +28,7 @@ SUPERUSER_ID = 1
|
|||
import addons
|
||||
import cli
|
||||
import conf
|
||||
import http
|
||||
import loglevels
|
||||
import modules
|
||||
import netsvc
|
||||
|
@ -35,10 +36,8 @@ import osv
|
|||
import pooler
|
||||
import release
|
||||
import report
|
||||
import run_tests
|
||||
import service
|
||||
import sql_db
|
||||
import test
|
||||
import tools
|
||||
import workflow
|
||||
# backward compatilbility
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: base
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -8397,7 +8397,6 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Copy text \t\n"
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Klicken Sie hier, um einen Kontakt zu Ihrem Adressbuch "
|
||||
"hinzzufügen.\n"
|
||||
|
@ -9693,6 +9692,18 @@ msgid ""
|
|||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Diese Anwendung zeigt die grundlegenden Prozesse, an denen die ausgewählten "
|
||||
"Anwendungen und in der Reihenfolge ihres Auftreten sie beteiligt sind.\n"
|
||||
"============================================================================="
|
||||
"=========================\n"
|
||||
"\n"
|
||||
"**Hinweis:** Dies gilt für die Anwendungen, die den Anwendungsnamen "
|
||||
"_process.xml. beinhalten.\n"
|
||||
"\n"
|
||||
"** z. B.** product/process/product_process.xml.\n"
|
||||
"\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -10922,6 +10933,14 @@ msgid ""
|
|||
"pads (by default, http://ietherpad.com/).\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Fügt erweiterte Unterstützung für (Ether)Pad Anlagen in den Web-Client.\n"
|
||||
"===================================================================\n"
|
||||
"\n"
|
||||
"Ermöglicht dem Unternehmen festzulegen, welche Pad-Installation verwendet "
|
||||
"werden soll, um zu\n"
|
||||
"neuen Pads zu verlinken(standardmäßig, http://ietherpad.com/).\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: sql_constraint:res.lang:0
|
||||
|
@ -12489,6 +12508,45 @@ msgid ""
|
|||
"\n"
|
||||
"**PASSWORD:** ${object.moodle_user_password}\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Konfigurieren Sie Ihren Moodle-Server\n"
|
||||
"=============================== \n"
|
||||
"\n"
|
||||
"Mit dieser Anwendung können Sie Ihr OpenERP mit einer Moodle-Plattform "
|
||||
"verbinden.\n"
|
||||
"Diese Anwendung erstellt Kurse und Schüler automatisch in Ihrer Moodle-"
|
||||
"Plattform,\n"
|
||||
"um Zeitverschwendung zu vermeiden.\n"
|
||||
"Nun haben sie eine einfache Möglichkeit, Schulungen oder Kurse mit OpenERP "
|
||||
"und Moodle zu erstellen. \n"
|
||||
"\n"
|
||||
"SCHRITTE ZUM KONFIGURIEREN:\n"
|
||||
"-----------------------------------------------------\n"
|
||||
"\n"
|
||||
"1. Aktivieren Sie den Web-Service in Moodle\n"
|
||||
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
|
||||
">site administration >plugins >web services >manage protocols activate the "
|
||||
"xmlrpc web service \n"
|
||||
">site administration >plugins >web services >manage tokens create a token \n"
|
||||
"\n"
|
||||
"\n"
|
||||
">site administration >plugins >web services >overview activate webservice\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"2. Erstellen Sie eine Bestätigungsemail mit Login und Passwort\n"
|
||||
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
|
||||
"Wir empfehlen Ihnen dringen, diese folgenden Zeilen am Ende Ihrer "
|
||||
"Bestätigungsemail hinzuzufügen, um Ihren Abonnenten Login und Passwort von "
|
||||
"Moodle mitzuteilen.\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"........Ihr voreingestellter Text.......\n"
|
||||
"\n"
|
||||
"**URL:** Ihr Link zu Moodle zum Beispiel: http://openerp.moodle.com\n"
|
||||
"\n"
|
||||
"**LOGIN:** ${object.moodle_username}\n"
|
||||
"\n"
|
||||
"**PASSWORD:** ${object.moodle_user_password}\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_l10n_uk
|
||||
|
@ -12800,6 +12858,21 @@ msgid ""
|
|||
" * Repair quotation report\n"
|
||||
" * Notes for the technician and for the final customer\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ziel ist es, eine komplette Anwendung zu haben, die alle Reparaturen von "
|
||||
"Produkten verwaltet.\n"
|
||||
"============================================================================="
|
||||
"=\n"
|
||||
"\n"
|
||||
"Die folgenden Themen werden in dieser Anwendung abgedeckt:\n"
|
||||
"-----------------------------------------------------------------------------"
|
||||
"-----------------------------\n"
|
||||
" * Hinzufügen / Löschen von Produkten in der Reparatur\n"
|
||||
" * Auswirkungen auf Bestände\n"
|
||||
" * Fakturierung (Produkte und / oder Dienstleistungen)\n"
|
||||
" * Garantie-Konzept\n"
|
||||
" * Reparatur Angebotsbericht\n"
|
||||
" * Hinweise für den Techniker und für den Endkunden\n"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.cd
|
||||
|
@ -13132,6 +13205,17 @@ msgid ""
|
|||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Management der Finanz- und Rechnungswesen der Vermögenswerte\n"
|
||||
"========================================================\n"
|
||||
"\n"
|
||||
"Diese Anwendung verwaltet die Vermögenswerte von einem Unternehemen oder "
|
||||
"einer Person. Sie behält\n"
|
||||
"immer eine Übersicht über die Abschreibungen dieser Vermögenswerte. "
|
||||
"Weiterhin ermöglicht es die\n"
|
||||
"Bewegungen der Abschreibungslinien zu erstellen.\n"
|
||||
"\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: field:ir.cron,numbercall:0
|
||||
|
@ -14273,6 +14357,22 @@ msgid ""
|
|||
"modules.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Diese Anwendung fügt eine Verknüpfung zu ein oder mehreren möglichen Fällen "
|
||||
"im CRM hinzu. \n"
|
||||
"===========================================================================\n"
|
||||
"\n"
|
||||
"Diese Verknüpfung ermöglicht es Ihnen, einen Kundenauftrag, basierend auf "
|
||||
"dem ausgewählten Fall,\n"
|
||||
"zu erstellen Wenn verschiedene Fälle geöffnet sind (eine Liste), wird ein "
|
||||
"Verkaufsauftrag pro Fall\n"
|
||||
"erstellt. Der Fall wird dann geschlossen und mit dem erzeugten Kundenauftrag "
|
||||
"verbunden.\n"
|
||||
"\n"
|
||||
"Wir raten Ihnen diese Anwendung zu installieren, wenn Sie die beiden "
|
||||
"Anwendungen Sale und CRM \n"
|
||||
"installiert haben.\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.bq
|
||||
|
|
|
@ -12,8 +12,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -7758,7 +7758,7 @@ msgstr "Acción"
|
|||
#. module: base
|
||||
#: view:ir.actions.server:0
|
||||
msgid "Email Configuration"
|
||||
msgstr "Configuración Email"
|
||||
msgstr "Configuración del correo electrónico"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_ir_cron
|
||||
|
@ -16623,7 +16623,7 @@ msgstr "Se requiere acceso como administrador para desinstalar un módulo"
|
|||
#. module: base
|
||||
#: model:ir.model,name:base.model_base_module_configuration
|
||||
msgid "base.module.configuration"
|
||||
msgstr "base.modulo.configuracion"
|
||||
msgstr "Configuración del módulo base"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_point_of_sale
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
"Language: \n"
|
||||
|
||||
#. module: base
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -578,7 +578,7 @@ msgstr "Guayana francesa"
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_hr
|
||||
msgid "Jobs, Departments, Employees Details"
|
||||
msgstr ""
|
||||
msgstr "Trabajos, Departamentos, Detalle de Empleados"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_analytic
|
||||
|
@ -656,7 +656,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
msgid "Spanish (VE) / Español (VE)"
|
||||
msgstr "Spanish (es_EC) / Español (es_EC)"
|
||||
msgstr "Spanish (es_VE) / Español (es_VE)"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
|
||||
|
@ -729,7 +729,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:res.company,logo_web:0
|
||||
msgid "Logo Web"
|
||||
msgstr ""
|
||||
msgstr "Logo Web"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/ir/ir_model.py:339
|
||||
|
@ -1220,7 +1220,7 @@ msgstr "Modelo de documento"
|
|||
#. module: base
|
||||
#: view:res.users:0
|
||||
msgid "Change the user password."
|
||||
msgstr ""
|
||||
msgstr "Cambiar password de usuario"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -1849,7 +1849,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_portal_project_issue
|
||||
msgid "Portal Issue"
|
||||
msgstr ""
|
||||
msgstr "Tarea de Portal"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_tools
|
||||
|
@ -1873,7 +1873,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:res.partner,image_small:0
|
||||
msgid "Small-sized image"
|
||||
msgstr ""
|
||||
msgstr "Tamaño pequeño de imagen"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_stock
|
||||
|
@ -1975,7 +1975,7 @@ msgstr ""
|
|||
#: code:addons/base/ir/ir_fields.py:164
|
||||
#, python-format
|
||||
msgid "Unknown value '%s' for boolean field '%%(field)s', assuming '%s'"
|
||||
msgstr ""
|
||||
msgstr "Valor desconocido '%s' para campo lógico '%%(field)s', sumiendo '%s'"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.nl
|
||||
|
@ -1985,12 +1985,12 @@ msgstr "Países Bajos-Holanda"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_portal_event
|
||||
msgid "Portal Event"
|
||||
msgstr ""
|
||||
msgstr "Evento de Portal"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.translation,state:0
|
||||
msgid "Translation in Progress"
|
||||
msgstr ""
|
||||
msgstr "Traducción en Progreso"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_ir_rule
|
||||
|
@ -2005,7 +2005,7 @@ msgstr "Días"
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_fleet
|
||||
msgid "Vehicle, leasing, insurances, costs"
|
||||
msgstr ""
|
||||
msgstr "Vehículo, arrendamiento, seguros, costos"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.model.access:0
|
||||
|
@ -2016,7 +2016,7 @@ msgstr "Acceso de lectura"
|
|||
#. module: base
|
||||
#: help:ir.attachment,res_id:0
|
||||
msgid "The record id this is attached to"
|
||||
msgstr ""
|
||||
msgstr "El id de registro está adjunto a"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_share
|
||||
|
@ -2097,7 +2097,7 @@ msgstr "Crear Tareas en SO"
|
|||
#: code:addons/base/ir/ir_model.py:318
|
||||
#, python-format
|
||||
msgid "This column contains module data and cannot be removed!"
|
||||
msgstr ""
|
||||
msgstr "Esta columna contiene datos del módulo y no puede ser eliminado !"
|
||||
|
||||
#. module: base
|
||||
#: field:res.partner.bank,footer:0
|
||||
|
@ -2235,7 +2235,7 @@ msgstr "Ruta de acceso completa"
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "The next step depends on the file format:"
|
||||
msgstr ""
|
||||
msgstr "El siguiente paso, depende el formato de archivo:"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -2251,7 +2251,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "PO(T) format: you should edit it with a PO editor such as"
|
||||
msgstr ""
|
||||
msgstr "PO(T) formato: Debes editarlo con un Editor de archivos PO."
|
||||
|
||||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_administration
|
||||
|
@ -2275,7 +2275,7 @@ msgstr "Crear / Escribir / Copiar"
|
|||
#. module: base
|
||||
#: view:ir.sequence:0
|
||||
msgid "Second: %(sec)s"
|
||||
msgstr ""
|
||||
msgstr "Segundo: %(sec)s"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.act_window,view_mode:0
|
||||
|
@ -2340,12 +2340,12 @@ msgstr "Bahamas"
|
|||
#. module: base
|
||||
#: field:ir.rule,perm_create:0
|
||||
msgid "Apply for Create"
|
||||
msgstr ""
|
||||
msgstr "Aplicar para Creación"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_tools
|
||||
msgid "Extra Tools"
|
||||
msgstr ""
|
||||
msgstr "Herramientas Extras"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.attachment:0
|
||||
|
@ -2363,6 +2363,8 @@ msgid ""
|
|||
"Appears by default on the top right corner of your printed documents (report "
|
||||
"header)."
|
||||
msgstr ""
|
||||
"Aparece por defecto en la esquina superior derecha de sus documentos "
|
||||
"impresos (cabecera de reporte)"
|
||||
|
||||
#. module: base
|
||||
#: field:base.module.update,update:0
|
||||
|
@ -2377,7 +2379,7 @@ msgstr "Método"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_auth_crypt
|
||||
msgid "Password Encryption"
|
||||
msgstr ""
|
||||
msgstr "Encriptación de Contraseña"
|
||||
|
||||
#. module: base
|
||||
#: view:workflow.activity:0
|
||||
|
@ -2417,11 +2419,13 @@ msgstr ""
|
|||
msgid ""
|
||||
"No matching record found for %(field_type)s '%(value)s' in field '%%(field)s'"
|
||||
msgstr ""
|
||||
"No se encuentra un registro para %(field_type)s '%(value)s' en campo "
|
||||
"'%%(field)s'"
|
||||
|
||||
#. module: base
|
||||
#: field:change.password.user,new_passwd:0
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
msgstr "Nueva Contraseña"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,help:base.action_ui_view
|
||||
|
@ -2695,7 +2699,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
|
||||
msgid "Signup with OAuth2 Authentication"
|
||||
msgstr ""
|
||||
msgstr "Ingreos con OAuth2"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.model,state:0
|
||||
|
@ -2722,7 +2726,7 @@ msgstr "Greek / Ελληνικά"
|
|||
#. module: base
|
||||
#: field:res.company,custom_footer:0
|
||||
msgid "Custom Footer"
|
||||
msgstr ""
|
||||
msgstr "Pie de página personalizado"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_sale_crm
|
||||
|
@ -2790,7 +2794,7 @@ msgstr "Nombre de acceso rápido"
|
|||
#. module: base
|
||||
#: field:res.partner,contact_address:0
|
||||
msgid "Complete Address"
|
||||
msgstr ""
|
||||
msgstr "Dirección Completa"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.actions.act_window,limit:0
|
||||
|
@ -2873,7 +2877,7 @@ msgstr "Id de registro"
|
|||
#. module: base
|
||||
#: view:ir.filters:0
|
||||
msgid "My Filters"
|
||||
msgstr ""
|
||||
msgstr "Mis filtros"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.server,email:0
|
||||
|
@ -2893,6 +2897,7 @@ msgstr ""
|
|||
#, python-format
|
||||
msgid "Found multiple matches for field '%%(field)s' (%d matches)"
|
||||
msgstr ""
|
||||
"Se encontró multiples resultados para el campo '%%(field)s' (%d ocurrencias)"
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -2926,7 +2931,7 @@ msgstr "Argumentos enviados al cliente junto con el tag view"
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_contacts
|
||||
msgid "Contacts, People and Companies"
|
||||
msgstr ""
|
||||
msgstr "Contactos personas y Empresas"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.tt
|
||||
|
@ -2972,7 +2977,7 @@ msgstr "Gerente"
|
|||
#: code:addons/base/ir/ir_model.py:719
|
||||
#, python-format
|
||||
msgid "Sorry, you are not allowed to access this document."
|
||||
msgstr ""
|
||||
msgstr "Perdón, no estas permitido para acceder a este documento."
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.py
|
||||
|
@ -2987,7 +2992,7 @@ msgstr "Fiji"
|
|||
#. module: base
|
||||
#: view:ir.actions.report.xml:0
|
||||
msgid "Report Xml"
|
||||
msgstr ""
|
||||
msgstr "Reporte Xml"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_purchase
|
||||
|
@ -3058,7 +3063,7 @@ msgstr "Heredado"
|
|||
#: code:addons/base/ir/ir_fields.py:146
|
||||
#, python-format
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
msgstr "si"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.model.fields,serialization_field_id:0
|
||||
|
@ -3088,7 +3093,7 @@ msgstr ""
|
|||
#: code:addons/base/ir/ir_fields.py:174
|
||||
#, python-format
|
||||
msgid "'%s' does not seem to be an integer for field '%%(field)s'"
|
||||
msgstr ""
|
||||
msgstr "'%s' no parece ser un entero para el campo '%%(field)s'"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.category,description:base.module_category_report_designer
|
||||
|
@ -3198,6 +3203,8 @@ msgid ""
|
|||
"the user will have an access to the sales configuration as well as statistic "
|
||||
"reports."
|
||||
msgstr ""
|
||||
"el usuario tendra acceso a la configuración de ventas así como a las "
|
||||
"estadísticas."
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.nz
|
||||
|
@ -3327,7 +3334,7 @@ msgstr "Tipo de reporte desconocido: %s"
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_hr_expense
|
||||
msgid "Expenses Validation, Invoicing"
|
||||
msgstr ""
|
||||
msgstr "Validación de gastos, Facturación"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account
|
||||
|
@ -3346,7 +3353,7 @@ msgstr "Armenia"
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_hr_evaluation
|
||||
msgid "Periodical Evaluations, Appraisals, Surveys"
|
||||
msgstr ""
|
||||
msgstr "Evaluaciones periódicas, valoraciones, encuentas"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,name:base.ir_property_form
|
||||
|
@ -3367,7 +3374,7 @@ msgstr "Suecia"
|
|||
#. module: base
|
||||
#: field:ir.actions.report.xml,report_file:0
|
||||
msgid "Report File"
|
||||
msgstr ""
|
||||
msgstr "Archivo de reporte"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.actions.act_window.view,view_mode:0
|
||||
|
@ -3400,7 +3407,7 @@ msgstr ""
|
|||
#: code:addons/orm.py:3870
|
||||
#, python-format
|
||||
msgid "Missing document(s)"
|
||||
msgstr ""
|
||||
msgstr "Documento faltante"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_res_partner_bank_type
|
||||
|
@ -3465,7 +3472,7 @@ msgstr "Calendario"
|
|||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_knowledge_management
|
||||
msgid "Knowledge"
|
||||
msgstr ""
|
||||
msgstr "Gestión de Conocimiento"
|
||||
|
||||
#. module: base
|
||||
#: field:workflow.activity,signal_send:0
|
||||
|
@ -3608,7 +3615,7 @@ msgstr "workflow.actividad"
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "Export Complete"
|
||||
msgstr ""
|
||||
msgstr "Exportación completa"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.ui.view_sc,res_id:0
|
||||
|
@ -3637,7 +3644,7 @@ msgstr "Finlandes"
|
|||
#. module: base
|
||||
#: view:ir.config_parameter:0
|
||||
msgid "System Properties"
|
||||
msgstr ""
|
||||
msgstr "Propiedades del sistema"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.sequence,prefix:0
|
||||
|
@ -3681,12 +3688,12 @@ msgstr "Seleccione el Paquete del Módulo de Importación (Archivo zip.):"
|
|||
#. module: base
|
||||
#: view:ir.filters:0
|
||||
msgid "Personal"
|
||||
msgstr ""
|
||||
msgstr "Personal"
|
||||
|
||||
#. module: base
|
||||
#: field:base.language.export,modules:0
|
||||
msgid "Modules To Export"
|
||||
msgstr ""
|
||||
msgstr "Módulos a exportar"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.mt
|
||||
|
@ -3699,6 +3706,8 @@ msgstr "Malta"
|
|||
msgid ""
|
||||
"Only users with the following access level are currently allowed to do that"
|
||||
msgstr ""
|
||||
"Sólo los usuarios con los siguientes niveles de acceso están permitidos a "
|
||||
"hacer eso"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.server,fields_lines:0
|
||||
|
@ -3789,7 +3798,7 @@ msgstr "Antártida"
|
|||
#. module: base
|
||||
#: view:res.partner:0
|
||||
msgid "Persons"
|
||||
msgstr ""
|
||||
msgstr "Personas"
|
||||
|
||||
#. module: base
|
||||
#: view:base.language.import:0
|
||||
|
@ -3849,7 +3858,7 @@ msgstr "Interacción entre reglas"
|
|||
#: field:res.company,rml_footer:0
|
||||
#: field:res.company,rml_footer_readonly:0
|
||||
msgid "Report Footer"
|
||||
msgstr ""
|
||||
msgstr "Píe de Página de Reporte"
|
||||
|
||||
#. module: base
|
||||
#: selection:res.lang,direction:0
|
||||
|
@ -3950,7 +3959,7 @@ msgstr "Togo"
|
|||
#: field:ir.actions.act_window,res_model:0
|
||||
#: field:ir.actions.client,res_model:0
|
||||
msgid "Destination Model"
|
||||
msgstr ""
|
||||
msgstr "Modelo destino"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.sequence,implementation:0
|
||||
|
@ -3974,7 +3983,7 @@ msgstr "Tayiko / اردو"
|
|||
#: code:addons/orm.py:3901
|
||||
#, python-format
|
||||
msgid "Access Denied"
|
||||
msgstr ""
|
||||
msgstr "Acceso Denegado"
|
||||
|
||||
#. module: base
|
||||
#: field:res.company,name:0
|
||||
|
@ -4084,7 +4093,7 @@ msgstr "%x - Representación apropiada de fecha."
|
|||
#. module: base
|
||||
#: view:res.partner:0
|
||||
msgid "Tag"
|
||||
msgstr ""
|
||||
msgstr "Tag"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -4135,7 +4144,7 @@ msgstr "Nauru"
|
|||
#: code:addons/base/res/res_company.py:166
|
||||
#, python-format
|
||||
msgid "Reg"
|
||||
msgstr ""
|
||||
msgstr "Reg"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_ir_property
|
||||
|
@ -4299,7 +4308,7 @@ msgstr "S.L."
|
|||
#. module: base
|
||||
#: model:ir.actions.server,name:base.action_run_ir_action_todo
|
||||
msgid "Run Remaining Action Todo"
|
||||
msgstr ""
|
||||
msgstr "Correr acciones pendientes"
|
||||
|
||||
#. module: base
|
||||
#: field:res.partner,ean13:0
|
||||
|
@ -4396,7 +4405,7 @@ msgstr "Plan de Cuentas"
|
|||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_event_main
|
||||
msgid "Events Organization"
|
||||
msgstr ""
|
||||
msgstr "Organización de Eventos"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,name:base.action_partner_customer_form
|
||||
|
@ -4424,7 +4433,7 @@ msgstr "Campo base"
|
|||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts
|
||||
msgid "Managing vehicles and contracts"
|
||||
msgstr ""
|
||||
msgstr "Gestión de Vehículos y contratos"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_base_setup
|
||||
|
@ -4540,12 +4549,12 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,summary:base.module_sale
|
||||
msgid "Quotations, Sales Orders, Invoicing"
|
||||
msgstr ""
|
||||
msgstr "Cotizaciones, Ordenes de Venta, Facturación"
|
||||
|
||||
#. module: base
|
||||
#: field:res.partner,parent_id:0
|
||||
msgid "Related Company"
|
||||
msgstr ""
|
||||
msgstr "Compañía Relacionada"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.actions.act_url,help:0
|
||||
|
@ -4591,7 +4600,7 @@ msgstr "'código' debe ser único"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_knowledge
|
||||
msgid "Knowledge Management System"
|
||||
msgstr ""
|
||||
msgstr "Gestión del Conocimiento"
|
||||
|
||||
#. module: base
|
||||
#: view:workflow.activity:0
|
||||
|
@ -4687,12 +4696,12 @@ msgstr "Hindi / हिंदी"
|
|||
#: model:ir.actions.act_window,name:base.action_view_base_language_install
|
||||
#: model:ir.ui.menu,name:base.menu_view_base_language_install
|
||||
msgid "Load a Translation"
|
||||
msgstr ""
|
||||
msgstr "Cargar Traducción"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.module.module,latest_version:0
|
||||
msgid "Installed Version"
|
||||
msgstr ""
|
||||
msgstr "Versión Instalada"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_test
|
||||
|
@ -4806,7 +4815,7 @@ msgstr "Vista"
|
|||
#: code:addons/base/ir/ir_fields.py:146
|
||||
#, python-format
|
||||
msgid "no"
|
||||
msgstr ""
|
||||
msgstr "no"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_crm_partner_assign
|
||||
|
@ -4840,7 +4849,7 @@ msgstr "Guinea ecuatorial"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_web_api
|
||||
msgid "OpenERP Web API"
|
||||
msgstr ""
|
||||
msgstr "Web API OpenERP"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_fr_rib
|
||||
|
@ -5047,7 +5056,7 @@ msgstr "Flujos"
|
|||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.next_id_73
|
||||
msgid "Purchase"
|
||||
msgstr ""
|
||||
msgstr "Compra"
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -5062,12 +5071,12 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "This file was generated using the universal"
|
||||
msgstr ""
|
||||
msgstr "Este archivo fue generado usando el universal"
|
||||
|
||||
#. module: base
|
||||
#: model:res.partner.category,name:base.res_partner_category_7
|
||||
msgid "IT Services"
|
||||
msgstr ""
|
||||
msgstr "Servicios de TI"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_specific_industry_applications
|
||||
|
@ -5077,7 +5086,7 @@ msgstr "Aplicaciones para Industrias Específicas"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_google_docs
|
||||
msgid "Google Docs integration"
|
||||
msgstr ""
|
||||
msgstr "Integración con Google Docs"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.attachment,res_model:0
|
||||
|
@ -5088,7 +5097,7 @@ msgstr ""
|
|||
#: code:addons/base/ir/ir_fields.py:327
|
||||
#, python-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "nombre"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_mrp_operations
|
||||
|
@ -5134,7 +5143,7 @@ msgstr "Saltar"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_event_sale
|
||||
msgid "Events Sales"
|
||||
msgstr ""
|
||||
msgstr "Eventos de Ventas"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.ls
|
||||
|
@ -5144,7 +5153,7 @@ msgstr "Lesotho"
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid ", or your preferred text editor"
|
||||
msgstr ""
|
||||
msgstr ", o tu editor de texto preferido"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
|
||||
|
@ -5186,7 +5195,7 @@ msgstr "Genérico"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_document_ftp
|
||||
msgid "Shared Repositories (FTP)"
|
||||
msgstr ""
|
||||
msgstr "Appraisals, Surveys\""
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.sm
|
||||
|
@ -5211,12 +5220,12 @@ msgstr "Establecer a NULL"
|
|||
#. module: base
|
||||
#: view:res.users:0
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
msgstr "Appraisals, Surveys\""
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.report.xml,report_xml:0
|
||||
msgid "XML Path"
|
||||
msgstr ""
|
||||
msgstr "Path XML"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.bj
|
||||
|
@ -5404,7 +5413,7 @@ msgstr "Tasas"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_email_template
|
||||
msgid "Email Templates"
|
||||
msgstr ""
|
||||
msgstr "Plantillas de Correo"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.sy
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -673,7 +673,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_l10n_mx
|
||||
msgid "Mexico - Accounting"
|
||||
msgstr ""
|
||||
msgstr "México - Contabilidad"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.actions.server,action_id:0
|
||||
|
@ -8634,7 +8634,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:res.country,name:base.mx
|
||||
msgid "Mexico"
|
||||
msgstr ""
|
||||
msgstr "México"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/orm.py:3902
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
|
||||
"X-Poedit-Language: Persian\n"
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -2774,15 +2774,15 @@ msgstr ""
|
|||
"szolgáltatás (belépés/Kilépés) és munka kódolás (időkimutatás) szervezését. "
|
||||
"Időkimutatás bevitelét minden nap a munkások biztosítják. Egy meghatározott "
|
||||
"periódus végén, a munkavállalók érvényesítik az időkimutatásukat és a "
|
||||
"vezetőjüknek kell nyugtáznia a csoport beírásait. A periódusok a vállalkozás "
|
||||
"osztályaihoz lesznek meghatározva és beállíthatóak havi vagy heti "
|
||||
"futtatásra.\n"
|
||||
"vezetőjüknek kell jóváhagynia a csoport beírásait. A periódusok a "
|
||||
"vállalkozás osztályaihoz lesznek meghatározva és beállíthatóak havi vagy "
|
||||
"heti futtatásra.\n"
|
||||
"\n"
|
||||
"A teljes időkimutatás érvényesítési folyamat a következő:\n"
|
||||
"---------------------------------------------\n"
|
||||
"* Terve lap\n"
|
||||
"* Munkavállalók érvényesítései a periódus végén\n"
|
||||
"* A projekt vezető nyugtázása\n"
|
||||
"* A projekt vezető jóváhagyása\n"
|
||||
"\n"
|
||||
"A nyugtázást a vállalatnál be lehet állítani:\n"
|
||||
"------------------------------------------------\n"
|
||||
|
@ -4107,18 +4107,18 @@ msgstr ""
|
|||
"\n"
|
||||
"Ez az alkalmazás lehetővé teszi a munkavállalók napi kiadásainak kezelését. "
|
||||
"Hozzáférést biztosít a munkavállalók kiadás jegyzékéhez valamint joga van "
|
||||
"kiegészíteni és érvényesíteni illetve elutasítani azokat. Érvényesítés után "
|
||||
"kiegészíteni és jóváhagyni illetve elutasítani azokat. Érvényesítés után "
|
||||
"számlát állít ki a munkavállaló részére.\n"
|
||||
"A munkavállalók beiktathatják a kiadásaikat amit az érvényesítés után a "
|
||||
"könyveléshez iktathat az érvényesítésre jogosultak.\n"
|
||||
"A munkavállalók beiktathatják a kiadásaikat amit a jóváhagyás után a "
|
||||
"könyveléshez iktathat a jóváhagyásra jogosultak.\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"A következő iktatási folyamat van beépítve:\n"
|
||||
"---------------------------------\n"
|
||||
"* Tervezett kiadás\n"
|
||||
"* A munkavállalók által jóváhagyott jegyzetek\n"
|
||||
"* Az osztályvezető általi érvényesítés\n"
|
||||
"* A könyvelő általi érvényesítés és nyugta kiadás\n"
|
||||
"* Az osztályvezető általi jóváhagyás\n"
|
||||
"* A könyvelő általi jóváhagyás és nyugta kiadás\n"
|
||||
"\n"
|
||||
"Ez a modul az könyvelés elemzőt is használja és kompatibilis a számlázó és "
|
||||
"az időkimutatás modullal, így automatikus ügyfél kiadás újra-számlázást is "
|
||||
|
@ -7584,7 +7584,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Ha a műveleti átmenet a kliens űrlapon található gomb megnyomásával "
|
||||
"történik, a jelző ellenőrzi a megnyomott gomb nevét. Ha a jel NULLA, nem "
|
||||
"szükséges gomb az átmenet érvényesítéséhez."
|
||||
"szükséges gomb az átmenet jóváhagyásához."
|
||||
|
||||
#. module: base
|
||||
#: field:ir.ui.view.custom,ref_id:0
|
||||
|
@ -10067,7 +10067,7 @@ msgstr ""
|
|||
"Ha a számlának ez a sora érvényesítve lesz, ez generálni fog 3 elemző sort, "
|
||||
"egy könyvelési bejegyzéshez.\n"
|
||||
"\n"
|
||||
"Az elemzési terv érvényesíti a minimum és maximum százalékot a megoszlási "
|
||||
"Az elemzési terv jóváhagyja a minimum és maximum százalékot a megoszlási "
|
||||
"modell létrehozásakor.\n"
|
||||
" "
|
||||
|
||||
|
@ -13383,7 +13383,7 @@ msgstr "Probléma a 'Rekord Azonosító' beállításánál a Szerver müveletbe
|
|||
#: code:addons/orm.py:2816
|
||||
#, python-format
|
||||
msgid "ValidateError"
|
||||
msgstr "ValidateError"
|
||||
msgstr "Jóváhagyásihiba"
|
||||
|
||||
#. module: base
|
||||
#: view:base.module.import:0
|
||||
|
@ -13714,7 +13714,7 @@ msgstr "Normál"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_purchase_double_validation
|
||||
msgid "Double Validation on Purchases"
|
||||
msgstr "A vásárlásokra kétszeres érvényesítés"
|
||||
msgstr "A vásárlásokra kétszeres jóváhagyás"
|
||||
|
||||
#. module: base
|
||||
#: field:res.bank,street2:0
|
||||
|
@ -14414,11 +14414,11 @@ msgstr ""
|
|||
"\n"
|
||||
"A jelentésnek van felelőse és különböző állapot színekből alakul ki:\n"
|
||||
"-----------------------------------------------------------------\n"
|
||||
" * terv, nyitott, megszakított, végrehajtott.\n"
|
||||
" * terv, nyitott, visszavont, végrehajtott.\n"
|
||||
"\n"
|
||||
"Kötegelt végrehajtások egy különálló jelentésen kezelhetők az összes eladás "
|
||||
"egyszeri\n"
|
||||
"visszaigazolására, érvényesítésére vagy számla csomagra.\n"
|
||||
"visszaigazolására, jóváhagyásra vagy számla csomagra.\n"
|
||||
"\n"
|
||||
"Támogatja a kötegelt számlázási módot mely beállítható partnerekre és "
|
||||
"megrendelésekre, például:\n"
|
||||
|
@ -16039,7 +16039,7 @@ msgstr ""
|
|||
"=========================================================\n"
|
||||
"\n"
|
||||
"Ez a modul módosítja a vásárlás munkafolyamatot úgy, hogy a varázslóval "
|
||||
"beállított minimum mennyiséget elért vásárlás után érvényesíteni kell a "
|
||||
"beállított minimum mennyiséget elért vásárlás után jóvá kell hagyni a "
|
||||
"vásárlást\n"
|
||||
" "
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -8258,7 +8258,7 @@ msgstr "Numero successivo di questa sequenza"
|
|||
#. module: base
|
||||
#: view:res.partner:0
|
||||
msgid "at"
|
||||
msgstr "alle"
|
||||
msgstr "di"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.rule:0
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -137,7 +137,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: help:res.partner,employee:0
|
||||
msgid "Check this box if this contact is an Employee."
|
||||
msgstr ""
|
||||
msgstr "이 연락처가 직원인 경우 체크하세요."
|
||||
|
||||
#. module: base
|
||||
#: help:ir.model.fields,domain:0
|
||||
|
@ -165,7 +165,7 @@ msgstr "타겟 윈도우"
|
|||
#. module: base
|
||||
#: field:ir.actions.report.xml,report_rml:0
|
||||
msgid "Main Report File Path"
|
||||
msgstr ""
|
||||
msgstr "주 보고서 파일 경로"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
|
||||
|
@ -234,7 +234,7 @@ msgstr "생성됨."
|
|||
#. module: base
|
||||
#: field:ir.actions.report.xml,report_xsl:0
|
||||
msgid "XSL Path"
|
||||
msgstr ""
|
||||
msgstr "XSL 경로"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_l10n_tr
|
||||
|
@ -260,7 +260,7 @@ msgstr "이뉴잇"
|
|||
#. module: base
|
||||
#: model:res.groups,name:base.group_multi_currency
|
||||
msgid "Multi Currencies"
|
||||
msgstr ""
|
||||
msgstr "다중 화폐"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_cl
|
||||
|
@ -354,7 +354,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_customer_relationship_management
|
||||
msgid "Customer Relationship Management"
|
||||
msgstr ""
|
||||
msgstr "고객 관계 관리"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_delivery
|
||||
|
@ -386,7 +386,7 @@ msgstr "잘못된 group_by"
|
|||
#. module: base
|
||||
#: field:ir.module.category,child_ids:0
|
||||
msgid "Child Applications"
|
||||
msgstr ""
|
||||
msgstr "하위 어플리케이션"
|
||||
|
||||
#. module: base
|
||||
#: field:res.partner,credit_limit:0
|
||||
|
@ -470,7 +470,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:ir.rule:0
|
||||
msgid "Create Access Right"
|
||||
msgstr ""
|
||||
msgstr "접근 권한 생성"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.tv
|
||||
|
@ -490,7 +490,7 @@ msgstr "날짜 포맷"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_base_report_designer
|
||||
msgid "OpenOffice Report Designer"
|
||||
msgstr ""
|
||||
msgstr "오픈오피스 보고서 디자이너"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.an
|
||||
|
@ -539,7 +539,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_idea
|
||||
msgid "Ideas"
|
||||
msgstr ""
|
||||
msgstr "아이디어"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_event
|
||||
|
@ -600,7 +600,7 @@ msgstr "스페인어"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
|
||||
msgid "Invoice on Timesheets"
|
||||
msgstr ""
|
||||
msgstr "타임시트 상의 인보이스"
|
||||
|
||||
#. module: base
|
||||
#: view:base.module.upgrade:0
|
||||
|
@ -691,7 +691,7 @@ msgstr "키는 유일해야 한다."
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_plugin_outlook
|
||||
msgid "Outlook Plug-In"
|
||||
msgstr ""
|
||||
msgstr "아웃룩 플러그인"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account
|
||||
|
@ -829,12 +829,12 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:ir.mail_server:0
|
||||
msgid "Security and Authentication"
|
||||
msgstr ""
|
||||
msgstr "보안 및 인증"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_web_calendar
|
||||
msgid "Web Calendar"
|
||||
msgstr ""
|
||||
msgstr "웹 캘린더"
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -845,7 +845,7 @@ msgstr "스웨덴"
|
|||
#: field:base.language.export,name:0
|
||||
#: field:ir.attachment,datas_fname:0
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
msgstr "파일 이름"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.rs
|
||||
|
@ -925,12 +925,12 @@ msgstr "보고서 유형, 예: pdf, html, raw, sxw, odt, html2html, mako2html, .
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_document_webdav
|
||||
msgid "Shared Repositories (WebDAV)"
|
||||
msgstr ""
|
||||
msgstr "공유 저장소(WebDAV)"
|
||||
|
||||
#. module: base
|
||||
#: view:res.users:0
|
||||
msgid "Email Preferences"
|
||||
msgstr ""
|
||||
msgstr "이메일 설정"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/ir/ir_fields.py:195
|
||||
|
@ -1047,7 +1047,7 @@ msgstr "번호 유형을 요청"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_google_base_account
|
||||
msgid "Google Users"
|
||||
msgstr ""
|
||||
msgstr "구글 사용자"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_fleet
|
||||
|
@ -1077,7 +1077,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:res.country,name:base.mn
|
||||
msgid "Mongolia"
|
||||
msgstr ""
|
||||
msgstr "몽고"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_crm
|
||||
|
@ -1134,7 +1134,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:res.users:0
|
||||
msgid "Change the user password."
|
||||
msgstr ""
|
||||
msgstr "사용자 암호 변경"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -1159,7 +1159,7 @@ msgstr "타입"
|
|||
#. module: base
|
||||
#: field:ir.mail_server,smtp_user:0
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "사용자명"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_br
|
||||
|
@ -1226,23 +1226,23 @@ msgstr "괌"
|
|||
#. module: base
|
||||
#: sql_constraint:res.country:0
|
||||
msgid "The name of the country must be unique !"
|
||||
msgstr ""
|
||||
msgstr "국가명은 유일해야 합니다!"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.module.module,installed_version:0
|
||||
msgid "Latest Version"
|
||||
msgstr ""
|
||||
msgstr "최신 버전"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.rule:0
|
||||
msgid "Delete Access Right"
|
||||
msgstr ""
|
||||
msgstr "접근 권한 삭제"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/ir/ir_mail_server.py:212
|
||||
#, python-format
|
||||
msgid "Connection test failed!"
|
||||
msgstr ""
|
||||
msgstr "연결 테스트에 실패했습니다!"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.actions.server,state:0
|
||||
|
@ -1299,12 +1299,12 @@ msgstr "Char"
|
|||
#. module: base
|
||||
#: field:ir.module.category,visible:0
|
||||
msgid "Visible"
|
||||
msgstr ""
|
||||
msgstr "보이기"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.client,name:base.action_client_base_menu
|
||||
msgid "Open Settings Menu"
|
||||
msgstr ""
|
||||
msgstr "설정 메뉴 열기"
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -1349,7 +1349,7 @@ msgstr "스페인"
|
|||
#. module: base
|
||||
#: field:ir.mail_server,smtp_port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr ""
|
||||
msgstr "SMTP 포트"
|
||||
|
||||
#. module: base
|
||||
#: help:res.users,login:0
|
||||
|
@ -1364,6 +1364,8 @@ msgid ""
|
|||
" for uploading to OpenERP's translation "
|
||||
"platform,"
|
||||
msgstr ""
|
||||
"TGZ 파일 형식: PO파일을 포함한 압축파일로,\n"
|
||||
" OpenERP의 번역 플랫폼에 올리기 적합한 형식입니다."
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -1379,12 +1381,12 @@ msgstr ""
|
|||
#: code:addons/base/module/wizard/base_language_install.py:53
|
||||
#, python-format
|
||||
msgid "Language Pack"
|
||||
msgstr ""
|
||||
msgstr "언어 팩"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_web_tests
|
||||
msgid "Tests"
|
||||
msgstr ""
|
||||
msgstr "테스트"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.report.xml,attachment:0
|
||||
|
@ -1450,7 +1452,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:ir.module.category,parent_id:0
|
||||
msgid "Parent Application"
|
||||
msgstr ""
|
||||
msgstr "부모 어플리케이션"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,name:base.ir_action_wizard
|
||||
|
@ -1468,7 +1470,7 @@ msgstr "오퍼레이션 취소"
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_document
|
||||
msgid "Document Management System"
|
||||
msgstr ""
|
||||
msgstr "문서 관리 시스템"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_crm_claim
|
||||
|
@ -1562,6 +1564,8 @@ msgid ""
|
|||
"use the accounting application of OpenERP, journals and accounts will be "
|
||||
"created automatically based on these data."
|
||||
msgstr ""
|
||||
"회사 은행계좌를 설정하고 바닥글에 표시할 계좌를 선택하십시오. 은행 계좌는 목록 보기에서 순서를 변경할 수 있습니다. 만약 "
|
||||
"OpenERP의 회계 모듈을 사용하는 경우, 이 자료를 기본으로 분개장 및 계정항목이 자동으로 생성됩니다."
|
||||
|
||||
#. module: base
|
||||
#: report:ir.module.reference:0
|
||||
|
@ -1609,7 +1613,7 @@ msgstr "코드 \"%s\"를 가진 언어가 존재하지 않습니다."
|
|||
#: model:ir.module.category,name:base.module_category_social_network
|
||||
#: model:ir.module.module,shortdesc:base.module_mail
|
||||
msgid "Social Network"
|
||||
msgstr ""
|
||||
msgstr "소셜 네트워크"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -1619,12 +1623,12 @@ msgstr "%Y - 년도"
|
|||
#. module: base
|
||||
#: view:res.company:0
|
||||
msgid "Report Footer Configuration"
|
||||
msgstr ""
|
||||
msgstr "보고서 바닥글 설정"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.translation,comments:0
|
||||
msgid "Translation comments"
|
||||
msgstr ""
|
||||
msgstr "번역 주석"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_lunch
|
||||
|
@ -1744,7 +1748,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_tools
|
||||
msgid "Tools"
|
||||
msgstr ""
|
||||
msgstr "도구"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.property,type:0
|
||||
|
@ -1763,12 +1767,12 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:res.partner,image_small:0
|
||||
msgid "Small-sized image"
|
||||
msgstr ""
|
||||
msgstr "작은 크기의 사진"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_stock
|
||||
msgid "Warehouse Management"
|
||||
msgstr ""
|
||||
msgstr "창고 관리"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_res_request_link
|
||||
|
@ -1808,7 +1812,7 @@ msgstr "동티모르"
|
|||
#: view:ir.module.module:0
|
||||
#, python-format
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
msgstr "설치"
|
||||
|
||||
#. module: base
|
||||
#: field:res.currency,accuracy:0
|
||||
|
@ -1867,7 +1871,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:res.country,name:base.nl
|
||||
msgid "Netherlands"
|
||||
msgstr ""
|
||||
msgstr "네덜란드"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_portal_event
|
||||
|
@ -1877,7 +1881,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: selection:ir.translation,state:0
|
||||
msgid "Translation in Progress"
|
||||
msgstr ""
|
||||
msgstr "번역 진행 중"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.model,name:base.model_ir_rule
|
||||
|
@ -1929,7 +1933,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_process
|
||||
msgid "Enterprise Process"
|
||||
msgstr ""
|
||||
msgstr "엔터프라이즈 프로세스"
|
||||
|
||||
#. module: base
|
||||
#: help:res.partner,supplier:0
|
||||
|
@ -1941,7 +1945,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
|
||||
msgid "Employee Appraisals"
|
||||
msgstr ""
|
||||
msgstr "직원 평가"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.actions.server,state:0
|
||||
|
@ -1984,12 +1988,12 @@ msgstr ""
|
|||
#: code:addons/base/ir/ir_model.py:318
|
||||
#, python-format
|
||||
msgid "This column contains module data and cannot be removed!"
|
||||
msgstr ""
|
||||
msgstr "이 컬럼은 모듈 데이터를 포함하고 있으며 삭제할 수 없습니다."
|
||||
|
||||
#. module: base
|
||||
#: field:res.partner.bank,footer:0
|
||||
msgid "Display on Reports"
|
||||
msgstr ""
|
||||
msgstr "보고서에 표시"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_project_timesheet
|
||||
|
@ -2032,7 +2036,7 @@ msgstr "소스 활동"
|
|||
#. module: base
|
||||
#: view:ir.sequence:0
|
||||
msgid "Legend (for prefix, suffix)"
|
||||
msgstr ""
|
||||
msgstr "범례(접두사, 접미사)"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.server.object.lines,type:0
|
||||
|
@ -2106,6 +2110,23 @@ msgid ""
|
|||
"* *Before Delivery*: A Draft invoice is created and must be paid before "
|
||||
"delivery\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"매출 견적 및 주문 관리\n"
|
||||
"==================================\n"
|
||||
"\n"
|
||||
"이 모듈은 매출과 창고 관리 어플리케이션과 연계됩니다.\n"
|
||||
"\n"
|
||||
"설정\n"
|
||||
"-----------\n"
|
||||
"* 선적: 일괄 배송, 분할 배송 선택\n"
|
||||
"* 송장청구: 송장금액 결제 방법 선택\n"
|
||||
"* 무역조건: 국제 무역조건\n"
|
||||
"\n"
|
||||
"다양한 송장청구 방법 선택 가능:\n"
|
||||
"\n"
|
||||
"* *요구 시*: 매출 주문 후 필요 시 송장 발행\n"
|
||||
"* *배송 주문 시*: 화물 수령(배송)시 송장 발행\n"
|
||||
"* *배송 전*: 송장 초안이 작성되어 배송 전 결제\n"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.ui.menu,complete_name:0
|
||||
|
@ -2115,7 +2136,7 @@ msgstr "전체 경로"
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "The next step depends on the file format:"
|
||||
msgstr ""
|
||||
msgstr "파일 형식에 따라 다음 단계 결정"
|
||||
|
||||
#. module: base
|
||||
#: view:res.lang:0
|
||||
|
@ -2130,13 +2151,13 @@ msgstr ""
|
|||
#. module: base
|
||||
#: view:base.language.export:0
|
||||
msgid "PO(T) format: you should edit it with a PO editor such as"
|
||||
msgstr ""
|
||||
msgstr "PO(T) 파일 형식 : 다음과 같은 PO 편집기로 편집해야 합니다."
|
||||
|
||||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_administration
|
||||
#: model:res.groups,name:base.group_system
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
msgstr "설정"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.actions.act_window,view_type:0
|
||||
|
@ -2166,7 +2187,7 @@ msgstr "보기 모드"
|
|||
msgid ""
|
||||
"Display this bank account on the footer of printed documents like invoices "
|
||||
"and sales orders."
|
||||
msgstr ""
|
||||
msgstr "이 은행 계좌는 송장이나 매출 주문서와 같은 출력 서류의 바닥글에 표시됩니다."
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -2181,7 +2202,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:res.country,name:base.ax
|
||||
msgid "Åland Islands"
|
||||
msgstr ""
|
||||
msgstr "올란드 제도"
|
||||
|
||||
#. module: base
|
||||
#: field:res.company,logo:0
|
||||
|
@ -2222,7 +2243,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.category,name:base.module_category_tools
|
||||
msgid "Extra Tools"
|
||||
msgstr ""
|
||||
msgstr "기타 도구"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.attachment:0
|
||||
|
@ -2239,7 +2260,7 @@ msgstr "아일랜드"
|
|||
msgid ""
|
||||
"Appears by default on the top right corner of your printed documents (report "
|
||||
"header)."
|
||||
msgstr ""
|
||||
msgstr "출력 문서의 우측 상단에 기본으로 출력됩니다. (보고서 머릿글)"
|
||||
|
||||
#. module: base
|
||||
#: field:base.module.update,update:0
|
||||
|
@ -2254,7 +2275,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_auth_crypt
|
||||
msgid "Password Encryption"
|
||||
msgstr ""
|
||||
msgstr "비밀번호 암호화"
|
||||
|
||||
#. module: base
|
||||
#: view:workflow.activity:0
|
||||
|
@ -2298,7 +2319,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:change.password.user,new_passwd:0
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
msgstr "새 비밀번호"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,help:base.action_ui_view
|
||||
|
@ -2312,7 +2333,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_base_setup
|
||||
msgid "Initial Setup Tools"
|
||||
msgstr ""
|
||||
msgstr "초기 설정 도구"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.actions.act_window,groups_id:0
|
||||
|
@ -2443,7 +2464,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:ir.mail_server,smtp_debug:0
|
||||
msgid "Debugging"
|
||||
msgstr ""
|
||||
msgstr "디버깅"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_crm_helpdesk
|
||||
|
@ -2465,7 +2486,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"View type: Tree type to use for the tree view, set to 'tree' for a "
|
||||
"hierarchical tree view, or 'form' for a regular list view"
|
||||
msgstr ""
|
||||
msgstr "표시 형식: 'tree'로 계층구조의 트리 뷰를 표시하거나 'form'으로 일반적인 목록을 표시"
|
||||
|
||||
#. module: base
|
||||
#: sql_constraint:ir.ui.view_sc:0
|
||||
|
@ -2555,7 +2576,7 @@ msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포
|
|||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
|
||||
msgid "Signup with OAuth2 Authentication"
|
||||
msgstr ""
|
||||
msgstr "OAuth2 인증으로 등록"
|
||||
|
||||
#. module: base
|
||||
#: selection:ir.model,state:0
|
||||
|
@ -2582,7 +2603,7 @@ msgstr "그리스"
|
|||
#. module: base
|
||||
#: field:res.company,custom_footer:0
|
||||
msgid "Custom Footer"
|
||||
msgstr ""
|
||||
msgstr "바닥글 설정"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_sale_crm
|
||||
|
@ -2633,7 +2654,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:ir.ui.menu,name:base.menu_invoiced
|
||||
msgid "Invoicing"
|
||||
msgstr ""
|
||||
msgstr "송장 발행"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.ui.view_sc,name:0
|
||||
|
@ -2721,7 +2742,7 @@ msgstr ""
|
|||
#: field:ir.translation,res_id:0
|
||||
#: field:ir.values,res_id:0
|
||||
msgid "Record ID"
|
||||
msgstr ""
|
||||
msgstr "레코드 ID"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.filters:0
|
||||
|
@ -2819,13 +2840,13 @@ msgstr ""
|
|||
#: model:res.groups,name:base.group_sale_manager
|
||||
#: model:res.groups,name:base.group_tool_manager
|
||||
msgid "Manager"
|
||||
msgstr ""
|
||||
msgstr "관리자"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/ir/ir_model.py:719
|
||||
#, python-format
|
||||
msgid "Sorry, you are not allowed to access this document."
|
||||
msgstr ""
|
||||
msgstr "죄송합니다. 이 문서에 접근이 거부되었습니다."
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.py
|
||||
|
@ -2835,7 +2856,7 @@ msgstr "파라과이"
|
|||
#. module: base
|
||||
#: model:res.country,name:base.fj
|
||||
msgid "Fiji"
|
||||
msgstr ""
|
||||
msgstr "피지"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.actions.report.xml:0
|
||||
|
@ -2911,7 +2932,7 @@ msgstr ""
|
|||
#: code:addons/base/ir/ir_fields.py:146
|
||||
#, python-format
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
msgstr "예"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.model.fields,serialization_field_id:0
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2012-12-18 05:45+0000\n"
|
||||
"Last-Translator: gobi <Unknown>\n"
|
||||
"PO-Revision-Date: 2013-02-07 04:04+0000\n"
|
||||
"Last-Translator: Tenuun Khangaitan <tenuun.khangaitan@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-08 04:35+0000\n"
|
||||
"X-Generator: Launchpad (build 16482)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -5396,7 +5396,7 @@ msgstr ""
|
|||
#: field:ir.model.relation,model:0
|
||||
#: view:ir.values:0
|
||||
msgid "Model"
|
||||
msgstr "Загвар"
|
||||
msgstr "Модел"
|
||||
|
||||
#. module: base
|
||||
#: view:base.language.install:0
|
||||
|
@ -7983,7 +7983,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: selection:res.currency,position:0
|
||||
msgid "After Amount"
|
||||
msgstr "Дараах Дүн"
|
||||
msgstr "Дүнгийн ард"
|
||||
|
||||
#. module: base
|
||||
#: selection:base.language.install,lang:0
|
||||
|
@ -10680,7 +10680,7 @@ msgstr "дууссан"
|
|||
#. module: base
|
||||
#: view:ir.actions.act_window:0
|
||||
msgid "General Settings"
|
||||
msgstr "Ерөнхий тохируулга"
|
||||
msgstr "Ерөнхий Тохиргоо"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_in
|
||||
|
@ -12386,7 +12386,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:ir.attachment,res_model:0
|
||||
msgid "Resource Model"
|
||||
msgstr ""
|
||||
msgstr "Нөөцийн модел"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/custom.py:555
|
||||
|
@ -15179,7 +15179,7 @@ msgstr "Үндсэн компаниуд"
|
|||
#. module: base
|
||||
#: field:ir.translation,src:0
|
||||
msgid "Source"
|
||||
msgstr "Эх"
|
||||
msgstr "Эх үүсвэр"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.model.constraint,date_init:0
|
||||
|
@ -15354,7 +15354,7 @@ msgstr "Олон баримт дээрх үйлдэл"
|
|||
#: model:ir.actions.act_window,name:base.action_partner_title_partner
|
||||
#: model:ir.ui.menu,name:base.menu_partner_title_partner
|
||||
msgid "Titles"
|
||||
msgstr ""
|
||||
msgstr "Гарчигууд"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_anonymization
|
||||
|
@ -15824,7 +15824,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: field:ir.actions.act_window,src_model:0
|
||||
msgid "Source Model"
|
||||
msgstr ""
|
||||
msgstr "Эх модел"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.sequence:0
|
||||
|
@ -16879,7 +16879,7 @@ msgstr "Харилцагчид: "
|
|||
#. module: base
|
||||
#: view:res.partner:0
|
||||
msgid "Is a Company?"
|
||||
msgstr ""
|
||||
msgstr "Компаний нэр"
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/res/res_company.py:173
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -4031,7 +4031,7 @@ msgstr ""
|
|||
#. module: base
|
||||
#: model:res.country,name:base.sk
|
||||
msgid "Slovakia"
|
||||
msgstr "Slovakia"
|
||||
msgstr "Słowacja"
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.nr
|
||||
|
@ -5474,7 +5474,7 @@ msgstr "Historia"
|
|||
#. module: base
|
||||
#: model:res.country,name:base.im
|
||||
msgid "Isle of Man"
|
||||
msgstr "Isle of Man"
|
||||
msgstr "Wyspa Man"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.actions.client,res_model:0
|
||||
|
@ -7353,7 +7353,7 @@ msgstr "Kontakty"
|
|||
#. module: base
|
||||
#: model:res.country,name:base.fo
|
||||
msgid "Faroe Islands"
|
||||
msgstr "Faroe Islands"
|
||||
msgstr "Wyspy Owcze"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.mail_server,smtp_encryption:0
|
||||
|
@ -11307,7 +11307,7 @@ msgstr "Użytkownik"
|
|||
#. module: base
|
||||
#: model:res.country,name:base.pr
|
||||
msgid "Puerto Rico"
|
||||
msgstr "Puerto Rico"
|
||||
msgstr "Portoryko"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_web_tests_demo
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -11110,7 +11110,7 @@ msgstr "Email"
|
|||
#. module: base
|
||||
#: model:res.partner.category,name:base.res_partner_category_12
|
||||
msgid "Office Supplies"
|
||||
msgstr ""
|
||||
msgstr "Materiais de Escritórios"
|
||||
|
||||
#. module: base
|
||||
#: field:ir.attachment,res_model:0
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -489,7 +489,7 @@ msgstr "Obiect Sursa"
|
|||
#. module: base
|
||||
#: model:res.partner.bank.type,format_layout:base.bank_normal
|
||||
msgid "%(bank_name)s: %(acc_number)s"
|
||||
msgstr "%(nume_banca)s: %(numar_cont)s"
|
||||
msgstr "%(bank_name)s: %(acc_number)s"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.actions.todo:0
|
||||
|
@ -8921,7 +8921,7 @@ msgstr "Tip Camp"
|
|||
#. module: base
|
||||
#: field:res.country.state,code:0
|
||||
msgid "State Code"
|
||||
msgstr "Cod Stat"
|
||||
msgstr "Cod judet"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,shortdesc:base.module_l10n_multilang
|
||||
|
@ -13642,7 +13642,7 @@ msgstr "Campanii de Marketing"
|
|||
#. module: base
|
||||
#: field:res.country.state,name:0
|
||||
msgid "State Name"
|
||||
msgstr "Numele starii"
|
||||
msgstr "Nume judet"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.attachment,type:0
|
||||
|
@ -14386,7 +14386,7 @@ msgstr "Declanseaza Semnalul"
|
|||
#: model:ir.actions.act_window,name:base.action_country_state
|
||||
#: model:ir.ui.menu,name:base.menu_country_state_partner
|
||||
msgid "Fed. States"
|
||||
msgstr "State federale"
|
||||
msgstr "Judete"
|
||||
|
||||
#. module: base
|
||||
#: view:ir.model:0
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-25 05:24+0000\n"
|
||||
"X-Generator: Launchpad (build 16445)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
@ -3969,7 +3969,7 @@ msgstr "Отчетность"
|
|||
#: field:res.partner,title:0
|
||||
#: field:res.partner.title,name:0
|
||||
msgid "Title"
|
||||
msgstr "Название"
|
||||
msgstr "Обращение"
|
||||
|
||||
#. module: base
|
||||
#: help:ir.property,res_id:0
|
||||
|
@ -8275,8 +8275,7 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
|
||||
"Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP помогает вам легко отслеживать всю активность "
|
||||
"связанную с\n"
|
||||
|
@ -9746,7 +9745,7 @@ msgstr "сделано"
|
|||
#. module: base
|
||||
#: view:ir.actions.act_window:0
|
||||
msgid "General Settings"
|
||||
msgstr "Основные параметры"
|
||||
msgstr "Общие настройки"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_l10n_in
|
||||
|
@ -10335,6 +10334,14 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP помогает вам легко отслеживать всю активность "
|
||||
"связанную с\n"
|
||||
" поставщиком: общение, историю закупок, \n"
|
||||
" документы и т.д.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: model:res.country,name:base.lr
|
||||
|
@ -15953,6 +15960,14 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP помогает вам легко отслеживать всю активность "
|
||||
"связанную с\n"
|
||||
" клиентом: общение, историю деловых возможностей, \n"
|
||||
" документы и т.д.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: base
|
||||
#: model:res.partner.category,name:base.res_partner_category_2
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16430)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.module.module,description:base.module_account_check_writing
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -28,6 +28,7 @@ import time
|
|||
from openerp import SUPERUSER_ID
|
||||
from openerp import netsvc, tools
|
||||
from openerp.osv import fields, osv
|
||||
import openerp.report.interface
|
||||
from openerp.report.report_sxw import report_sxw, report_rml
|
||||
from openerp.tools.config import config
|
||||
from openerp.tools.safe_eval import safe_eval as eval
|
||||
|
@ -93,9 +94,9 @@ class report_xml(osv.osv):
|
|||
opj = os.path.join
|
||||
cr.execute("SELECT * FROM ir_act_report_xml WHERE auto=%s ORDER BY id", (True,))
|
||||
result = cr.dictfetchall()
|
||||
svcs = netsvc.Service._services
|
||||
reports = openerp.report.interface.report_int._reports
|
||||
for r in result:
|
||||
if svcs.has_key('report.'+r['report_name']):
|
||||
if reports.has_key('report.'+r['report_name']):
|
||||
continue
|
||||
if r['report_rml'] or r['report_rml_content_data']:
|
||||
report_sxw('report.'+r['report_name'], r['model'],
|
||||
|
|
|
@ -21,12 +21,15 @@
|
|||
|
||||
import hashlib
|
||||
import itertools
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
|
||||
from openerp import tools
|
||||
from openerp.osv import fields,osv
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class ir_attachment(osv.osv):
|
||||
"""Attachments are used to link binary files or url to any openerp document.
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="model_id"/>
|
||||
<field name="is_default"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="domain"/>
|
||||
|
@ -35,6 +36,7 @@
|
|||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="is_default"/>
|
||||
<field name="domain" groups="base.group_no_one"/>
|
||||
<field name="context" groups="base.group_no_one"/>
|
||||
</tree>
|
||||
|
@ -45,12 +47,14 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Filters">
|
||||
<field name="name" string="Filter Name"/>
|
||||
<filter string="Personal" domain="[('user_id','!=',False)]" help="Filters visible only for one user"/>
|
||||
<filter string="Shared" domain="[('user_id','=',False)]" help="Filters shared with all users"/>
|
||||
<filter string="User" domain="[('user_id','!=',False)]" name="user" help="Filters visible only for one user"/>
|
||||
<filter string="Shared" domain="[('user_id','=',False)]" name="shared" help="Filters shared with all users"/>
|
||||
<filter string="My filters" domain="[('user_id','=',uid)]" name="my_filters" help="Filters created by myself"/>
|
||||
<separator/>
|
||||
<filter icon="terp-personal" domain="[('user_id','in',(uid, False))]"
|
||||
name="my_filters"
|
||||
string="My Filters"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="User" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
</group>
|
||||
<field name="model_id"/>
|
||||
<field name="user_id"/>
|
||||
</search>
|
||||
|
|
|
@ -1062,9 +1062,13 @@ class ir_model_data(osv.osv):
|
|||
continue
|
||||
_logger.info('Deleting %s@%s', res_id, model)
|
||||
try:
|
||||
cr.execute('SAVEPOINT record_unlink_save')
|
||||
self.pool.get(model).unlink(cr, uid, [res_id], context=context)
|
||||
except Exception:
|
||||
_logger.info('Unable to delete %s@%s', res_id, model, exc_info=True)
|
||||
cr.execute('ROLLBACK TO SAVEPOINT record_unlink_save')
|
||||
else:
|
||||
cr.execute('RELEASE SAVEPOINT record_unlink_save')
|
||||
|
||||
# Remove non-model records first, then model fields, and finish with models
|
||||
unlink_if_refcount((model, res_id) for model, res_id in to_unlink
|
||||
|
|
|
@ -28,7 +28,7 @@ class osv_memory_autovacuum(openerp.osv.osv.osv_memory):
|
|||
def power_on(self, cr, uid, context=None):
|
||||
for model in self.pool.models.values():
|
||||
if model.is_transient():
|
||||
model._transient_vacuum(cr, uid)
|
||||
model._transient_vacuum(cr, uid, force=True)
|
||||
return True
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
|
||||
# Copyright (C) 2004-2013 OpenERP S.A. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
|
@ -254,9 +254,9 @@ class module(osv.osv):
|
|||
'website': fields.char("Website", size=256, readonly=True),
|
||||
|
||||
# attention: Incorrect field names !!
|
||||
# installed_version refer the latest version (the one on disk)
|
||||
# latest_version refer the installed version (the one in database)
|
||||
# published_version refer the version available on the repository
|
||||
# installed_version refers the latest version (the one on disk)
|
||||
# latest_version refers the installed version (the one in database)
|
||||
# published_version refers the version available on the repository
|
||||
'installed_version': fields.function(_get_latest_version, string='Latest Version', type='char'),
|
||||
'latest_version': fields.char('Installed Version', size=64, readonly=True),
|
||||
'published_version': fields.char('Published Version', size=64, readonly=True),
|
||||
|
@ -500,6 +500,7 @@ class module(osv.osv):
|
|||
raise orm.except_orm(_('Error'), _("The `base` module cannot be uninstalled"))
|
||||
dep_ids = self.downstream_dependencies(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids + dep_ids, {'state': 'to remove'})
|
||||
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
|
||||
return dict(ACTION_DICT, name=_('Uninstall'))
|
||||
|
||||
def button_uninstall_cancel(self, cr, uid, ids, context=None):
|
||||
|
@ -656,32 +657,38 @@ class module(osv.osv):
|
|||
def install_from_urls(self, cr, uid, urls, context=None):
|
||||
OPENERP = 'openerp'
|
||||
tmp = tempfile.mkdtemp()
|
||||
_logger.debug('Install from url: %r', urls)
|
||||
try:
|
||||
# 1. Download & unzip missing modules
|
||||
for module_name, url in urls.items():
|
||||
if not url:
|
||||
continue # nothing to download, local version is already the last one
|
||||
try:
|
||||
_logger.info('Downloading module `%s` from OpenERP Apps', module_name)
|
||||
content = urllib2.urlopen(url).read()
|
||||
except Exception, e:
|
||||
_logger.exception('ggr')
|
||||
raise osv.except_osv('grrr', e)
|
||||
except Exception:
|
||||
_logger.exception('Failed to fetch module %s', module_name)
|
||||
raise osv.except_osv(_('Module not found'),
|
||||
_('The `%s` module appears to be unavailable at the moment, please try again later.') % module_name)
|
||||
else:
|
||||
zipfile.ZipFile(StringIO(content)).extractall(tmp)
|
||||
assert os.path.isdir(os.path.join(tmp, module_name))
|
||||
|
||||
for module_name in urls:
|
||||
if module_name == OPENERP:
|
||||
continue # special case. handled below
|
||||
# 2a. Copy/Replace module source in addons path
|
||||
for module_name, url in urls.items():
|
||||
if module_name == OPENERP or not url:
|
||||
continue # OPENERP is special case, handled below, and no URL means local module
|
||||
module_path = modules.get_module_path(module_name, downloaded=True, display_warning=False)
|
||||
bck = backup(module_path, False)
|
||||
_logger.info('Copy downloaded module `%s` to `%s`', module_name, module_path)
|
||||
shutil.move(os.path.join(tmp, module_name), module_path)
|
||||
if bck:
|
||||
shutil.rmtree(bck)
|
||||
|
||||
# 2b. Copy/Replace server+base module source if downloaded
|
||||
if urls.get(OPENERP, None):
|
||||
# special case. it containt the server and the base module.
|
||||
# special case. it contains the server and the base module.
|
||||
# extract path is not the same
|
||||
|
||||
base_path = os.path.dirname(modules.get_module_path('base'))
|
||||
|
||||
# copy all modules in the SERVER/openerp/addons directory to the new "openerp" module (except base itself)
|
||||
|
@ -693,15 +700,22 @@ class module(osv.osv):
|
|||
# then replace the server by the new "base" module
|
||||
server_dir = openerp.tools.config['root_path'] # XXX or dirname()
|
||||
bck = backup(server_dir)
|
||||
_logger.info('Copy downloaded module `openerp` to `%s`', server_dir)
|
||||
shutil.move(os.path.join(tmp, OPENERP), server_dir)
|
||||
#if bck:
|
||||
# shutil.rmtree(bck)
|
||||
|
||||
self.update_list(cr, uid, context=context)
|
||||
|
||||
ids = self.search(cr, uid, [('name', 'in', urls.keys())], context=context)
|
||||
if self.search_count(cr, uid, [('id', 'in', ids), ('state', '=', 'installed')], context=context):
|
||||
# if any to update
|
||||
with_urls = [m for m, u in urls.items() if u]
|
||||
downloaded_ids = self.search(cr, uid, [('name', 'in', with_urls)], context=context)
|
||||
already_installed = self.search(cr, uid, [('id', 'in', downloaded_ids), ('state', '=', 'installed')], context=context)
|
||||
|
||||
to_install_ids = self.search(cr, uid, [('name', 'in', urls.keys()), ('state', '=', 'uninstalled')], context=context)
|
||||
post_install_action = self.button_immediate_install(cr, uid, to_install_ids, context=context)
|
||||
|
||||
if already_installed:
|
||||
# in this case, force server restart to reload python code...
|
||||
cr.commit()
|
||||
openerp.service.restart_server()
|
||||
return {
|
||||
|
@ -709,7 +723,7 @@ class module(osv.osv):
|
|||
'tag': 'home',
|
||||
'params': {'wait': True},
|
||||
}
|
||||
return self.button_immediate_install(cr, uid, ids, context=context)
|
||||
return post_install_action
|
||||
finally:
|
||||
shutil.rmtree(tmp)
|
||||
|
||||
|
|
|
@ -171,23 +171,18 @@
|
|||
</field>
|
||||
</record>
|
||||
<record id="open_module_tree" model="ir.actions.act_window">
|
||||
<!-- uncomment on released
|
||||
<field name="name">Installed Modules</field>
|
||||
-->
|
||||
<field name="name">Modules</field>
|
||||
<field name="res_model">ir.module.module</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<!-- uncomment on released
|
||||
<field name="context">{'search_default_installed':1}</field>
|
||||
-->
|
||||
<field name="search_view_id" ref="view_module_filter"/>
|
||||
<field name="help" type="html">
|
||||
<p><b>No module found!</b></p>
|
||||
<p>You should try others search criteria.</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="menu_module_tree" parent="menu_management" name="Installed Modules" sequence="10" action="open_module_tree"/>
|
||||
<menuitem id="menu_module_tree" parent="menu_management" name="Installed Modules" sequence="30" action="open_module_tree" />
|
||||
|
||||
|
||||
<!-- Apps modules -->
|
||||
|
@ -195,20 +190,14 @@
|
|||
<field name="name">Apps</field>
|
||||
<field name="tag">apps</field>
|
||||
</record>
|
||||
<!-- uncomment on released
|
||||
<menuitem id="module_mi" parent="base.menu_management" sequence="3" action="modules_act_cl"/>
|
||||
-->
|
||||
<menuitem id="module_mi" parent="base.menu_management" sequence="20" action="modules_act_cl"/>
|
||||
<menuitem id="module_mi" parent="base.menu_management" sequence="10" action="modules_act_cl"/>
|
||||
|
||||
<record model="ir.actions.client" id="modules_updates_act_cl">
|
||||
<field name="name">Updates</field>
|
||||
<field name="tag">apps.updates</field>
|
||||
<field name="params">{}</field>
|
||||
</record>
|
||||
<!-- uncomment on released
|
||||
<menuitem id="menu_module_updates" parent="base.menu_management" sequence="7" action="modules_updates_act_cl"/>
|
||||
-->
|
||||
<menuitem id="menu_module_updates" parent="base.menu_management" sequence="30" action="modules_updates_act_cl"/>
|
||||
<menuitem id="menu_module_updates" parent="base.menu_management" sequence="20" action="modules_updates_act_cl"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import os
|
||||
import glob
|
||||
import imp
|
||||
import zipfile
|
||||
|
||||
from openerp import tools
|
||||
from openerp.osv import osv
|
||||
|
||||
class base_module_scan(osv.osv_memory):
|
||||
""" scan module """
|
||||
|
||||
_name = "base.module.scan"
|
||||
_description = "scan module"
|
||||
|
||||
def watch_dir(self, cr, uid, ids, context):
|
||||
mod_obj = self.pool.get('ir.module.module')
|
||||
all_mods = mod_obj.read(cr, uid, mod_obj.search(cr, uid, []), ['name', 'state'])
|
||||
known_modules = [x['name'] for x in all_mods]
|
||||
ls_ad = glob.glob(os.path.join(tools.config['addons_path'], '*', '__terp__.py'))
|
||||
modules = [module_name_re.match(name).group(1) for name in ls_ad]
|
||||
for fname in os.listdir(tools.config['addons_path']):
|
||||
if zipfile.is_zipfile(fname):
|
||||
modules.append( fname.split('.')[0])
|
||||
for module in modules:
|
||||
if module in known_modules:
|
||||
continue
|
||||
terp = mod_obj.get_module_info(module)
|
||||
if not terp.get('installable', True):
|
||||
continue
|
||||
|
||||
# XXX check if this code is correct...
|
||||
fm = imp.find_module(module)
|
||||
try:
|
||||
imp.load_module(module, *fm)
|
||||
finally:
|
||||
if fm[0]:
|
||||
fm[0].close()
|
||||
|
||||
values = mod_obj.get_values_from_terp(terp)
|
||||
mod_id = mod_obj.create(cr, uid, dict(name=module, state='uninstalled', **values))
|
||||
dependencies = terp.get('depends', [])
|
||||
for d in dependencies:
|
||||
cr.execute('insert into ir_module_module_dependency (module_id,name) values (%s, %s)', (mod_id, d))
|
||||
for module in known_modules:
|
||||
terp = mod_obj.get_module_info(module)
|
||||
if terp.get('installable', True):
|
||||
for mod in all_mods:
|
||||
if mod['name'] == module and mod['state'] == 'uninstallable':
|
||||
mod_obj.write(cr, uid, [mod['id']], {'state': 'uninstalled'})
|
||||
return {}
|
||||
|
||||
base_module_scan()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -21,7 +21,8 @@
|
|||
|
||||
import time
|
||||
|
||||
from openerp.osv import osv,fields
|
||||
from openerp.osv import osv, fields
|
||||
from openerp.osv.orm import browse_record
|
||||
from openerp.tools.misc import attrgetter
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
@ -111,7 +112,7 @@ class ir_property(osv.osv):
|
|||
raise osv.except_osv('Error', 'Invalid type')
|
||||
|
||||
if field == 'value_reference':
|
||||
if isinstance(value, osv.orm.browse_record):
|
||||
if isinstance(value, browse_record):
|
||||
value = '%s,%d' % (value._name, value.id)
|
||||
elif isinstance(value, (int, long)):
|
||||
field_id = values.get('fields_id')
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<field name="model">res.partner.bank</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Bank Accounts">
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="acc_number"/>
|
||||
<field name="bank_name"/>
|
||||
|
|
|
@ -318,7 +318,7 @@ class res_company(osv.osv):
|
|||
<lines>1.3cm %s 20cm %s</lines>
|
||||
<drawRightString x="20cm" y="%s">[[ company.rml_header1 ]]</drawRightString>
|
||||
<drawString x="1.3cm" y="%s">[[ company.partner_id.name ]]</drawString>
|
||||
<place x="1.3cm" y="%s" height="1.55cm" width="15.0cm">
|
||||
<place x="1.3cm" y="%s" height="1.8cm" width="15.0cm">
|
||||
<para style="main_header">[[ display_address(company.partner_id) or '' ]]</para>
|
||||
</place>
|
||||
<drawString x="1.3cm" y="%s">Phone:</drawString>
|
||||
|
@ -344,8 +344,8 @@ class res_company(osv.osv):
|
|||
</pageTemplate>
|
||||
</header>"""
|
||||
|
||||
_header_a4 = _header_main % ('23.0cm', '27.6cm', '27.7cm', '27.7cm', '27.8cm', '27.4cm', '25.8cm', '26.0cm', '26.0cm', '25.6cm', '25.6cm', '25.5cm', '25.5cm')
|
||||
_header_letter = _header_main % ('21.3cm', '25.9cm', '26.0cm', '26.0cm', '26.1cm', '25.7cm', '24.1cm', '24.3cm', '24.3cm', '23.9cm', '23.9cm', '23.8cm', '23.8cm')
|
||||
_header_a4 = _header_main % ('23.0cm', '27.6cm', '27.7cm', '27.7cm', '27.8cm', '27.3cm', '25.3cm', '25.0cm', '25.0cm', '24.6cm', '24.6cm', '24.5cm', '24.5cm')
|
||||
_header_letter = _header_main % ('21.3cm', '25.9cm', '26.0cm', '26.0cm', '26.1cm', '25.6cm', '23.6cm', '23.3cm', '23.3cm', '22.9cm', '22.9cm', '22.8cm', '22.8cm')
|
||||
|
||||
def onchange_paper_format(self, cr, uid, ids, paper_format, context=None):
|
||||
if paper_format == 'us_letter':
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
import logging
|
||||
from operator import attrgetter
|
||||
|
||||
import openerp
|
||||
from openerp import pooler
|
||||
from openerp.osv import osv, fields
|
||||
from openerp.tools import ustr
|
||||
|
@ -358,7 +359,8 @@ class res_config_installer(osv.osv_memory):
|
|||
cr, uid,
|
||||
modules.search(cr, uid, [('name','in',to_install)]),
|
||||
'to install', ['uninstalled'], context=context)
|
||||
cr.commit() #TOFIX: after remove this statement, installation wizard is fail
|
||||
cr.commit()
|
||||
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
|
||||
new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)
|
||||
|
||||
res_config_installer()
|
||||
|
|
|
@ -71,7 +71,7 @@ addresses belonging to this country.\n\nYou can use the python-style string pate
|
|||
name_search = location_name_search
|
||||
|
||||
def create(self, cursor, user, vals, context=None):
|
||||
if 'code' in vals:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].upper()
|
||||
return super(Country, self).create(cursor, user, vals,
|
||||
context=context)
|
||||
|
|
|
@ -228,45 +228,6 @@ class lang(osv.osv):
|
|||
|
||||
lang()
|
||||
|
||||
def original_group(s, grouping, thousands_sep=''):
|
||||
|
||||
if not grouping:
|
||||
return s, 0
|
||||
|
||||
result = ""
|
||||
seps = 0
|
||||
spaces = ""
|
||||
|
||||
if s[-1] == ' ':
|
||||
sp = s.find(' ')
|
||||
spaces = s[sp:]
|
||||
s = s[:sp]
|
||||
|
||||
while s and grouping:
|
||||
# if grouping is -1, we are done
|
||||
if grouping[0] == -1:
|
||||
break
|
||||
# 0: re-use last group ad infinitum
|
||||
elif grouping[0] != 0:
|
||||
#process last group
|
||||
group = grouping[0]
|
||||
grouping = grouping[1:]
|
||||
if result:
|
||||
result = s[-group:] + thousands_sep + result
|
||||
seps += 1
|
||||
else:
|
||||
result = s[-group:]
|
||||
s = s[:-group]
|
||||
if s and s[-1] not in "0123456789":
|
||||
# the leading string is only spaces and signs
|
||||
return s + result + spaces, seps
|
||||
if not result:
|
||||
return s + spaces, seps
|
||||
if s:
|
||||
result = s + thousands_sep + result
|
||||
seps += 1
|
||||
return result + spaces, seps
|
||||
|
||||
def split(l, counts):
|
||||
"""
|
||||
|
||||
|
@ -317,52 +278,4 @@ def intersperse(string, counts, separator=''):
|
|||
res = separator.join(map(reverse, reverse(splits)))
|
||||
return left + res + right, len(splits) > 0 and len(splits) -1 or 0
|
||||
|
||||
# TODO rewrite this with a unit test library
|
||||
def _group_examples():
|
||||
for g in [original_group, intersperse]:
|
||||
# print "asserts on", g.func_name
|
||||
assert g("", []) == ("", 0)
|
||||
assert g("0", []) == ("0", 0)
|
||||
assert g("012", []) == ("012", 0)
|
||||
assert g("1", []) == ("1", 0)
|
||||
assert g("12", []) == ("12", 0)
|
||||
assert g("123", []) == ("123", 0)
|
||||
assert g("1234", []) == ("1234", 0)
|
||||
assert g("123456789", []) == ("123456789", 0)
|
||||
assert g("&ab%#@1", []) == ("&ab%#@1", 0)
|
||||
|
||||
assert g("0", []) == ("0", 0)
|
||||
assert g("0", [1]) == ("0", 0)
|
||||
assert g("0", [2]) == ("0", 0)
|
||||
assert g("0", [200]) == ("0", 0)
|
||||
|
||||
# breaks original_group:
|
||||
if g.func_name == 'intersperse':
|
||||
assert g("12345678", [0], '.') == ('12345678', 0)
|
||||
assert g("", [1], '.') == ('', 0)
|
||||
assert g("12345678", [1], '.') == ('1234567.8', 1)
|
||||
assert g("12345678", [1], '.') == ('1234567.8', 1)
|
||||
assert g("12345678", [2], '.') == ('123456.78', 1)
|
||||
assert g("12345678", [2,1], '.') == ('12345.6.78', 2)
|
||||
assert g("12345678", [2,0], '.') == ('12.34.56.78', 3)
|
||||
assert g("12345678", [-1,2], '.') == ('12345678', 0)
|
||||
assert g("12345678", [2,-1], '.') == ('123456.78', 1)
|
||||
assert g("12345678", [2,0,1], '.') == ('12.34.56.78', 3)
|
||||
assert g("12345678", [2,0,0], '.') == ('12.34.56.78', 3)
|
||||
assert g("12345678", [2,0,-1], '.') == ('12.34.56.78', 3)
|
||||
assert g("12345678", [3,3,3,3], '.') == ('12.345.678', 2)
|
||||
|
||||
assert original_group("abc1234567xy", [2], '.') == ('abc1234567.xy', 1)
|
||||
assert original_group("abc1234567xy8", [2], '.') == ('abc1234567xy8', 0) # difference here...
|
||||
assert original_group("abc12", [3], '.') == ('abc12', 0)
|
||||
assert original_group("abc12", [2], '.') == ('abc12', 0)
|
||||
assert original_group("abc12", [1], '.') == ('abc1.2', 1)
|
||||
|
||||
assert intersperse("abc1234567xy", [2], '.') == ('abc1234567.xy', 1)
|
||||
assert intersperse("abc1234567xy8", [2], '.') == ('abc1234567x.y8', 1) # ... w.r.t. here.
|
||||
assert intersperse("abc12", [3], '.') == ('abc12', 0)
|
||||
assert intersperse("abc12", [2], '.') == ('abc12', 0)
|
||||
assert intersperse("abc12", [1], '.') == ('abc1.2', 1)
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -316,6 +316,7 @@
|
|||
<group expand="0" string="Group By...">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
|
||||
<filter string="Company" context="{'group_by': 'parent_id'}"/>
|
||||
<filter string="Country" context="{'group_by': 'country_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
import sys
|
||||
import openerp
|
||||
|
||||
# TODO this loop will be exposed as open_openerp_namespace()
|
||||
# once trunk-cleaning-vmt is merged.
|
||||
for k, v in list(sys.modules.items()):
|
||||
if k.startswith('openerp.') and sys.modules.get(k[8:]) is None:
|
||||
sys.modules[k[8:]] = v
|
||||
|
||||
import openerp.addons.base.res.res_lang as res_lang
|
||||
res_lang._group_examples()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,27 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011-TODAY OpenERP S.A. <http://www.openerp.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Useful for manual testing of cron jobs scheduling.
|
||||
# This must be (un)commented with the corresponding yml file
|
||||
# in ../__openerp__.py.
|
||||
# import test_ir_cron
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -5,7 +5,7 @@
|
|||
1. Try a few common expressions to verify they work with safe_eval
|
||||
-
|
||||
!python {model: ir.model}: |
|
||||
from tools.safe_eval import safe_eval
|
||||
from openerp.tools.safe_eval import safe_eval
|
||||
expected = (1, {"a": 9 * 2}, (True, False, None))
|
||||
actual = safe_eval('(1, {"a": 9 * 2}, (True, False, None))')
|
||||
assert actual == expected, "Simple python expressions are not working with safe_eval"
|
||||
|
@ -41,8 +41,8 @@
|
|||
5. Try forbidden expressions in safe_eval to verify they are not allowed (open)
|
||||
-
|
||||
!python {model: ir.model}: |
|
||||
from tools.safe_eval import safe_eval
|
||||
from tools.misc import mute_logger
|
||||
from openerp.tools.safe_eval import safe_eval
|
||||
from openerp.tools.misc import mute_logger
|
||||
try:
|
||||
with mute_logger('openerp.tools.safe_eval'):
|
||||
safe_eval('open("/etc/passwd","r")')
|
||||
|
@ -146,7 +146,7 @@
|
|||
"Float precision tests: verify that float rounding methods are working correctly via res.currency"
|
||||
-
|
||||
!python {model: res.currency}: |
|
||||
from tools import float_repr
|
||||
from openerp.tools import float_repr
|
||||
from math import log10
|
||||
currency = self.browse(cr, uid, ref('base.EUR'))
|
||||
def try_round(amount, expected, self=self, cr=cr, currency=currency, float_repr=float_repr,
|
||||
|
@ -197,7 +197,7 @@
|
|||
"Float precision tests: verify that float rounding methods are working correctly via tools"
|
||||
-
|
||||
!python {model: res.currency}: |
|
||||
from tools import float_compare, float_is_zero, float_round, float_repr
|
||||
from openerp.tools import float_compare, float_is_zero, float_round, float_repr
|
||||
def try_round(amount, expected, precision_digits=3, float_round=float_round, float_repr=float_repr):
|
||||
result = float_repr(float_round(amount, precision_digits=precision_digits),
|
||||
precision_digits=precision_digits)
|
||||
|
@ -271,7 +271,7 @@
|
|||
!python {model: res.currency}: |
|
||||
currency = self.browse(cr, uid, ref('base.EUR'))
|
||||
res_currency_rate = self.pool.get('res.currency.rate')
|
||||
from tools import float_compare, float_is_zero, float_round, float_repr
|
||||
from openerp.tools import float_compare, float_is_zero, float_round, float_repr
|
||||
def try_roundtrip(value, expected, self=self, cr=cr, currency=currency,
|
||||
res_currency_rate=res_currency_rate):
|
||||
rate_id = res_currency_rate.create(cr, 1, {'name':'2000-01-01',
|
||||
|
@ -289,7 +289,7 @@
|
|||
"Float precision tests: verify that invalid parameters are forbidden"
|
||||
-
|
||||
!python {model: res.currency}: |
|
||||
from tools import float_compare, float_is_zero, float_round
|
||||
from openerp.tools import float_compare, float_is_zero, float_round
|
||||
try:
|
||||
float_is_zero(0.01, precision_digits=3, precision_rounding=0.01)
|
||||
except AssertionError:
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
I will prepare the context
|
||||
-
|
||||
!python {model: res.users }: |
|
||||
from tools import config
|
||||
from openerp.tools import config
|
||||
host = config.get_misc('httpd', 'interface')
|
||||
port = config.get_misc('httpd', 'port', 8069)
|
||||
if not host:
|
||||
|
@ -70,4 +70,4 @@
|
|||
raise AssertionError("User should not be enabled!")
|
||||
except Fault, e:
|
||||
if e.faultCode != 'AccessDenied':
|
||||
raise
|
||||
raise
|
||||
|
|
|
@ -3,6 +3,7 @@ import test_expression
|
|||
import test_ir_attachment
|
||||
import test_ir_values
|
||||
import test_menu
|
||||
import test_res_lang
|
||||
import test_search
|
||||
|
||||
checks = [
|
||||
|
@ -11,5 +12,6 @@ checks = [
|
|||
test_ir_attachment,
|
||||
test_ir_values,
|
||||
test_menu,
|
||||
test_res_lang,
|
||||
test_search,
|
||||
]
|
||||
|
|
|
@ -40,4 +40,4 @@ class test_base(common.TransactionCase):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest2.main()
|
||||
unittest2.main()
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
import unittest2
|
||||
|
||||
import openerp.tests.common as common
|
||||
|
||||
class test_res_lang(common.TransactionCase):
|
||||
|
||||
def test_00_intersperse(self):
|
||||
from openerp.addons.base.res.res_lang import intersperse
|
||||
|
||||
assert intersperse("", []) == ("", 0), "Assert passed"
|
||||
assert intersperse("0", []) == ("0", 0), "Assert passed"
|
||||
assert intersperse("012", []) == ("012", 0), "Assert passed"
|
||||
assert intersperse("1", []) == ("1", 0), "Assert passed"
|
||||
assert intersperse("12", []) == ("12", 0), "Assert passed"
|
||||
assert intersperse("123", []) == ("123", 0), "Assert passed"
|
||||
assert intersperse("1234", []) == ("1234", 0), "Assert passed"
|
||||
assert intersperse("123456789", []) == ("123456789", 0), "Assert passed"
|
||||
assert intersperse("&ab%#@1", []) == ("&ab%#@1", 0), "Assert passed"
|
||||
|
||||
assert intersperse("0", []) == ("0", 0), "Assert passed"
|
||||
assert intersperse("0", [1]) == ("0", 0), "Assert passed"
|
||||
assert intersperse("0", [2]) == ("0", 0), "Assert passed"
|
||||
assert intersperse("0", [200]) == ("0", 0), "Assert passed"
|
||||
|
||||
assert intersperse("12345678", [1], '.') == ('1234567.8', 1)
|
||||
assert intersperse("12345678", [1], '.') == ('1234567.8', 1)
|
||||
assert intersperse("12345678", [2], '.') == ('123456.78', 1)
|
||||
assert intersperse("12345678", [2,1], '.') == ('12345.6.78', 2)
|
||||
assert intersperse("12345678", [2,0], '.') == ('12.34.56.78', 3)
|
||||
assert intersperse("12345678", [-1,2], '.') == ('12345678', 0)
|
||||
assert intersperse("12345678", [2,-1], '.') == ('123456.78', 1)
|
||||
assert intersperse("12345678", [2,0,1], '.') == ('12.34.56.78', 3)
|
||||
assert intersperse("12345678", [2,0,0], '.') == ('12.34.56.78', 3)
|
||||
assert intersperse("12345678", [2,0,-1], '.') == ('12.34.56.78', 3)
|
||||
assert intersperse("12345678", [3,3,3,3], '.') == ('12.345.678', 2)
|
||||
|
||||
assert intersperse("abc1234567xy", [2], '.') == ('abc1234567.xy', 1)
|
||||
assert intersperse("abc1234567xy8", [2], '.') == ('abc1234567x.y8', 1) # ... w.r.t. here.
|
||||
assert intersperse("abc12", [3], '.') == ('abc12', 0)
|
||||
assert intersperse("abc12", [2], '.') == ('abc12', 0)
|
||||
assert intersperse("abc12", [1], '.') == ('abc1.2', 1)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,352 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import xmlrpclib
|
||||
import optparse
|
||||
import sys
|
||||
import threading
|
||||
import os
|
||||
import time
|
||||
import base64
|
||||
import socket
|
||||
import string
|
||||
|
||||
admin_passwd = 'admin'
|
||||
waittime = 10
|
||||
wait_count = 0
|
||||
wait_limit = 12
|
||||
|
||||
def to_decode(s):
|
||||
try:
|
||||
return s.encode('utf-8')
|
||||
except UnicodeError:
|
||||
try:
|
||||
return s.encode('latin')
|
||||
except UnicodeError:
|
||||
try:
|
||||
return s.decode('ascii')
|
||||
except UnicodeError:
|
||||
return s
|
||||
|
||||
def start_server(root_path, port, netport, addons_path):
|
||||
os.system('python2.5 %sopenerp-server --pidfile=openerp.pid --no-xmlrpcs --xmlrpc-port=%s --netrpc-port=%s --addons-path=%s' %(root_path, str(port),str(netport),addons_path))
|
||||
def clean():
|
||||
if os.path.isfile('openerp.pid'):
|
||||
ps = open('openerp.pid')
|
||||
if ps:
|
||||
pid = int(ps.read())
|
||||
ps.close()
|
||||
if pid:
|
||||
os.kill(pid,9)
|
||||
|
||||
def execute(connector, method, *args):
|
||||
global wait_count
|
||||
res = False
|
||||
try:
|
||||
res = getattr(connector,method)(*args)
|
||||
except socket.error,e:
|
||||
if e.args[0] == 111:
|
||||
if wait_count > wait_limit:
|
||||
print "Server is taking too long to start, it has exceeded the maximum limit of %d seconds." % wait_limit
|
||||
clean()
|
||||
sys.exit(1)
|
||||
print 'Please wait %d sec to start server....' % waittime
|
||||
wait_count += 1
|
||||
time.sleep(waittime)
|
||||
res = execute(connector, method, *args)
|
||||
else:
|
||||
raise e
|
||||
wait_count = 0
|
||||
return res
|
||||
|
||||
def login(uri, dbname, user, pwd):
|
||||
conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/common')
|
||||
uid = execute(conn,'login',dbname, user, pwd)
|
||||
return uid
|
||||
|
||||
def import_translate(uri, user, pwd, dbname, translate_in):
|
||||
uid = login(uri, dbname, user, pwd)
|
||||
if uid:
|
||||
conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
|
||||
wiz_id = execute(conn,'create',dbname, uid, pwd, 'base.language.import')
|
||||
for trans_in in translate_in:
|
||||
lang,ext = os.path.splitext(trans_in.split('/')[-1])
|
||||
state = 'init'
|
||||
datas = {'form':{}}
|
||||
while state!='end':
|
||||
res = execute(conn,'execute',dbname, uid, pwd, wiz_id, datas, state, {})
|
||||
if 'datas' in res:
|
||||
datas['form'].update( res['datas'].get('form',{}) )
|
||||
if res['type']=='form':
|
||||
for field in res['fields'].keys():
|
||||
datas['form'][field] = res['fields'][field].get('value', False)
|
||||
state = res['state'][-1][0]
|
||||
trans_obj = open(trans_in)
|
||||
datas['form'].update({
|
||||
'name': lang,
|
||||
'code': lang,
|
||||
'data' : base64.encodestring(trans_obj.read())
|
||||
})
|
||||
trans_obj.close()
|
||||
elif res['type']=='action':
|
||||
state = res['state']
|
||||
|
||||
|
||||
def check_quality(uri, user, pwd, dbname, modules, quality_logs):
|
||||
uid = login(uri, dbname, user, pwd)
|
||||
quality_logs += 'quality-logs'
|
||||
if uid:
|
||||
conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
|
||||
final = {}
|
||||
for module in modules:
|
||||
qualityresult = {}
|
||||
test_detail = {}
|
||||
quality_result = execute(conn,'execute', dbname, uid, pwd,'module.quality.check','check_quality',module)
|
||||
detail_html = ''
|
||||
html = '''<html><body><a name="TOP"></a>'''
|
||||
html +="<h1> Module: %s </h1>"%(quality_result['name'])
|
||||
html += "<h2> Final score: %s</h2>"%(quality_result['final_score'])
|
||||
html += "<div id='tabs'>"
|
||||
html += "<ul>"
|
||||
for x,y,detail in quality_result['check_detail_ids']:
|
||||
test = detail.get('name')
|
||||
msg = detail.get('message','')
|
||||
score = round(float(detail.get('score',0)),2)
|
||||
html += "<li><a href=\"#%s\">%s</a></li>"%(test.replace(' ','-'),test)
|
||||
detail_html +='''<div id=\"%s\"><h3>%s (Score : %s)</h3><font color=red><h5>%s</h5></font>%s</div>'''%(test.replace(' ', '-'), test, score, msg, detail.get('detail', ''))
|
||||
test_detail[test] = (score,msg,detail.get('detail',''))
|
||||
html += "</ul>"
|
||||
html += "%s"% detail_html
|
||||
html += "</div></body></html>"
|
||||
if not os.path.isdir(quality_logs):
|
||||
os.mkdir(quality_logs)
|
||||
fp = open('%s/%s.html'%(quality_logs,module),'wb')
|
||||
fp.write(to_decode(html))
|
||||
fp.close()
|
||||
#final[quality_result['name']] = (quality_result['final_score'],html,test_detail)
|
||||
|
||||
#fp = open('quality_log.pck','wb')
|
||||
#pck_obj = pickle.dump(final,fp)
|
||||
#fp.close()
|
||||
#print "LOG PATH%s"%(os.path.realpath('quality_log.pck'))
|
||||
return True
|
||||
else:
|
||||
print 'Login Failed...'
|
||||
clean()
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
||||
def wait(id,url=''):
|
||||
progress=0.0
|
||||
sock2 = xmlrpclib.ServerProxy(url+'/xmlrpc/db')
|
||||
while not progress==1.0:
|
||||
progress,users = execute(sock2,'get_progress',admin_passwd, id)
|
||||
return True
|
||||
|
||||
|
||||
def create_db(uri, dbname, user='admin', pwd='admin', lang='en_US'):
|
||||
conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/db')
|
||||
obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
|
||||
wiz_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
|
||||
login_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/common')
|
||||
db_list = execute(conn, 'list')
|
||||
if dbname in db_list:
|
||||
drop_db(uri, dbname)
|
||||
id = execute(conn,'create',admin_passwd, dbname, True, lang)
|
||||
wait(id,uri)
|
||||
install_module(uri, dbname, ['base_module_quality'],user=user,pwd=pwd)
|
||||
return True
|
||||
|
||||
def drop_db(uri, dbname):
|
||||
conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/db')
|
||||
db_list = execute(conn,'list')
|
||||
if dbname in db_list:
|
||||
execute(conn, 'drop', admin_passwd, dbname)
|
||||
return True
|
||||
|
||||
def make_links(uri, uid, dbname, source, destination, module, user, pwd):
|
||||
if module in ('base','quality_integration_server'):
|
||||
return True
|
||||
if os.path.islink(destination + '/' + module):
|
||||
os.unlink(destination + '/' + module)
|
||||
for path in source:
|
||||
if os.path.isdir(path + '/' + module):
|
||||
os.symlink(path + '/' + module, destination + '/' + module)
|
||||
obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
|
||||
execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'update_list')
|
||||
module_ids = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'search', [('name','=',module)])
|
||||
if len(module_ids):
|
||||
data = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'read', module_ids[0],['name','dependencies_id'])
|
||||
dep_datas = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module.dependency', 'read', data['dependencies_id'],['name'])
|
||||
for dep_data in dep_datas:
|
||||
make_links(uri, uid, dbname, source, destination, dep_data['name'], user, pwd)
|
||||
return False
|
||||
|
||||
def install_module(uri, dbname, modules, addons='', extra_addons='', user='admin', pwd='admin'):
|
||||
uid = login(uri, dbname, user, pwd)
|
||||
if extra_addons:
|
||||
extra_addons = extra_addons.split(',')
|
||||
if uid:
|
||||
if addons and extra_addons:
|
||||
for module in modules:
|
||||
make_links(uri, uid, dbname, extra_addons, addons, module, user, pwd)
|
||||
|
||||
obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
|
||||
wizard_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
|
||||
module_ids = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])
|
||||
execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'button_install', module_ids)
|
||||
wiz_id = execute(wizard_conn, 'create', dbname, uid, pwd, 'module.upgrade.simple')
|
||||
state = 'init'
|
||||
datas = {}
|
||||
#while state!='menu':
|
||||
while state!='end':
|
||||
res = execute(wizard_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})
|
||||
if state == 'init':
|
||||
state = 'start'
|
||||
elif state == 'start':
|
||||
state = 'end'
|
||||
return True
|
||||
|
||||
def upgrade_module(uri, dbname, modules, user='admin', pwd='admin'):
|
||||
uid = login(uri, dbname, user, pwd)
|
||||
if uid:
|
||||
obj_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/object')
|
||||
wizard_conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/wizard')
|
||||
module_ids = execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'search', [('name','in',modules)])
|
||||
execute(obj_conn, 'execute', dbname, uid, pwd, 'ir.module.module', 'button_upgrade', module_ids)
|
||||
wiz_id = execute(wizard_conn, 'create', dbname, uid, pwd, 'module.upgrade.simple')
|
||||
state = 'init'
|
||||
datas = {}
|
||||
#while state!='menu':
|
||||
while state!='end':
|
||||
res = execute(wizard_conn, 'execute', dbname, uid, pwd, wiz_id, datas, state, {})
|
||||
if state == 'init':
|
||||
state = 'start'
|
||||
elif state == 'start':
|
||||
state = 'end'
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
usage = """%prog command [options]
|
||||
|
||||
Basic Commands:
|
||||
start-server Start Server
|
||||
create-db Create new database
|
||||
drop-db Drop database
|
||||
install-module Install module
|
||||
upgrade-module Upgrade module
|
||||
install-translation Install translation file
|
||||
check-quality Calculate quality and dump quality result into quality_log.pck using pickle
|
||||
"""
|
||||
parser = optparse.OptionParser(usage)
|
||||
parser.add_option("--modules", dest="modules",
|
||||
help="specify modules to install or check quality")
|
||||
parser.add_option("--addons-path", dest="addons_path", help="specify the addons path")
|
||||
parser.add_option("--quality-logs", dest="quality_logs", help="specify the path of quality logs files which has to stores")
|
||||
parser.add_option("--root-path", dest="root_path", help="specify the root path")
|
||||
parser.add_option("-p", "--port", dest="port", help="specify the TCP port", type="int")
|
||||
parser.add_option("--net_port", dest="netport",help="specify the TCP port for netrpc")
|
||||
parser.add_option("-d", "--database", dest="db_name", help="specify the database name")
|
||||
parser.add_option("--login", dest="login", help="specify the User Login")
|
||||
parser.add_option("--password", dest="pwd", help="specify the User Password")
|
||||
parser.add_option("--translate-in", dest="translate_in",
|
||||
help="specify .po files to import translation terms")
|
||||
parser.add_option("--extra-addons", dest="extra_addons",
|
||||
help="specify extra_addons and trunkCommunity modules path ")
|
||||
|
||||
(opt, args) = parser.parse_args()
|
||||
if len(args) != 1:
|
||||
parser.error("incorrect number of arguments")
|
||||
command = args[0]
|
||||
if command not in ('start-server','create-db','drop-db','install-module','upgrade-module','check-quality','install-translation'):
|
||||
parser.error("incorrect command")
|
||||
|
||||
def die(cond, msg):
|
||||
if cond:
|
||||
print msg
|
||||
sys.exit(1)
|
||||
|
||||
die(opt.modules and (not opt.db_name),
|
||||
"the modules option cannot be used without the database (-d) option")
|
||||
|
||||
die(opt.translate_in and (not opt.db_name),
|
||||
"the translate-in option cannot be used without the database (-d) option")
|
||||
|
||||
options = {
|
||||
'addons-path' : opt.addons_path or 'addons',
|
||||
'quality-logs' : opt.quality_logs or '',
|
||||
'root-path' : opt.root_path or '',
|
||||
'translate-in': [],
|
||||
'port' : opt.port or 8069,
|
||||
'netport':opt.netport or 8070,
|
||||
'database': opt.db_name or 'terp',
|
||||
'modules' : map(string.strip, opt.modules.split(',')) if opt.modules else [],
|
||||
'login' : opt.login or 'admin',
|
||||
'pwd' : opt.pwd or '',
|
||||
'extra-addons':opt.extra_addons or []
|
||||
}
|
||||
# Hint:i18n-import=purchase:ar_AR.po+sale:fr_FR.po,nl_BE.po
|
||||
if opt.translate_in:
|
||||
translate = opt.translate_in
|
||||
for module_name,po_files in map(lambda x:tuple(x.split(':')),translate.split('+')):
|
||||
for po_file in po_files.split(','):
|
||||
if module_name == 'base':
|
||||
po_link = '%saddons/%s/i18n/%s'%(options['root-path'],module_name,po_file)
|
||||
else:
|
||||
po_link = '%s/%s/i18n/%s'%(options['addons-path'], module_name, po_file)
|
||||
options['translate-in'].append(po_link)
|
||||
|
||||
uri = 'http://localhost:' + str(options['port'])
|
||||
|
||||
server_thread = threading.Thread(target=start_server,
|
||||
args=(options['root-path'], options['port'],options['netport'], options['addons-path']))
|
||||
try:
|
||||
server_thread.start()
|
||||
if command == 'create-db':
|
||||
create_db(uri, options['database'], options['login'], options['pwd'])
|
||||
if command == 'drop-db':
|
||||
drop_db(uri, options['database'])
|
||||
if command == 'install-module':
|
||||
install_module(uri, options['database'], options['modules'],options['addons-path'],options['extra-addons'],options['login'], options['pwd'])
|
||||
if command == 'upgrade-module':
|
||||
upgrade_module(uri, options['database'], options['modules'], options['login'], options['pwd'])
|
||||
if command == 'check-quality':
|
||||
check_quality(uri, options['login'], options['pwd'], options['database'], options['modules'], options['quality-logs'])
|
||||
if command == 'install-translation':
|
||||
import_translate(uri, options['login'], options['pwd'], options['database'], options['translate-in'])
|
||||
clean()
|
||||
sys.exit(0)
|
||||
|
||||
except xmlrpclib.Fault, e:
|
||||
print e.faultString
|
||||
clean()
|
||||
sys.exit(1)
|
||||
except Exception, e:
|
||||
print e
|
||||
clean()
|
||||
sys.exit(1)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -32,6 +32,7 @@ by the user to check if her code is future proof.
|
|||
# without the 'openerp.' prefix. E.g. openerp.osv.osv and osv.osv refer to the
|
||||
# same module.
|
||||
# Introduced around 2011.02.
|
||||
open_openerp_namespace = True
|
||||
# Change to False around 2013.02.
|
||||
open_openerp_namespace = False
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
``openerp.http`` offers decorators to register WSGI and RPC endpoints handlers.
|
||||
See :ref:`routing`.
|
||||
"""
|
||||
|
||||
from . import service
|
||||
|
||||
def handler():
|
||||
"""
|
||||
Decorator to register a WSGI handler. The handler must return None if it
|
||||
does not handle the request.
|
||||
"""
|
||||
def decorator(f):
|
||||
service.wsgi_server.register_wsgi_handler(f)
|
||||
return decorator
|
||||
|
||||
def route(url):
|
||||
"""
|
||||
Same as then handler() decorator but register the handler under a specific
|
||||
url. Not yet implemented.
|
||||
"""
|
||||
def decorator(f):
|
||||
pass # TODO
|
||||
return decorator
|
||||
|
||||
def rpc(endpoint):
|
||||
"""
|
||||
Decorator to register a RPC endpoint handler. The handler will receive
|
||||
already unmarshalled RCP arguments.
|
||||
"""
|
||||
def decorator(f):
|
||||
service.wsgi_server.register_rpc_endpoint(endpoint, f)
|
||||
return decorator
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -246,17 +246,10 @@
|
|||
</rng:define>
|
||||
|
||||
<rng:start>
|
||||
<rng:choice>
|
||||
<rng:element name="openerp">
|
||||
<rng:oneOrMore>
|
||||
<rng:ref name="data" />
|
||||
</rng:oneOrMore>
|
||||
</rng:element>
|
||||
<rng:element name="terp">
|
||||
<rng:oneOrMore>
|
||||
<rng:ref name="data" />
|
||||
</rng:oneOrMore>
|
||||
</rng:element>
|
||||
</rng:choice>
|
||||
<rng:element name="openerp">
|
||||
<rng:oneOrMore>
|
||||
<rng:ref name="data" />
|
||||
</rng:oneOrMore>
|
||||
</rng:element>
|
||||
</rng:start>
|
||||
</rng:grammar>
|
||||
|
|
|
@ -46,7 +46,7 @@ class Logger(object):
|
|||
_logger.warning(
|
||||
"notifyChannel API shouldn't be used anymore, please use "
|
||||
"the standard `logging` module instead.")
|
||||
from service.web_services import common
|
||||
from service import common
|
||||
|
||||
log = logging.getLogger(__name__ + '.deprecated.' + ustr(name))
|
||||
|
||||
|
@ -63,7 +63,7 @@ class Logger(object):
|
|||
try:
|
||||
msg = ustr(msg).strip()
|
||||
if level in (LOG_ERROR, LOG_CRITICAL): # and tools.config.get_misc('debug','env_info',False):
|
||||
msg = common().exp_get_server_environment() + "\n" + msg
|
||||
msg = common.exp_get_server_environment() + "\n" + msg
|
||||
|
||||
result = msg.split('\n')
|
||||
except UnicodeDecodeError:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue