[MERGE] from trunk

bzr revid: rco@openerp.com-20130213082352-t3wbhkxfh3z10ukt
This commit is contained in:
Raphael Collet 2013-02-13 09:23:52 +01:00
commit 6f045b48e8
156 changed files with 6473 additions and 4284 deletions

12
doc/changelog.rst Normal file
View File

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

View File

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

View File

@ -17,6 +17,7 @@ OpenERP Server
05_test_framework 05_test_framework
06_misc 06_misc
deployment-gunicorn deployment-gunicorn
deployment-mod-wsgi
OpenERP Command OpenERP Command
''''''''''''''' '''''''''''''''
@ -36,6 +37,15 @@ OpenERP Server API
orm-methods.rst orm-methods.rst
api_models.rst api_models.rst
routing.rst
Changelog
'''''''''
.. toctree::
:maxdepth: 1
changelog.rst
Concepts Concepts
'''''''' ''''''''

27
doc/routing.rst Normal file
View File

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

View File

@ -1 +0,0 @@
excludes: pychart release openerp-server test run_tests addons/base_quality_interrogation

View File

@ -28,6 +28,7 @@ SUPERUSER_ID = 1
import addons import addons
import cli import cli
import conf import conf
import http
import loglevels import loglevels
import modules import modules
import netsvc import netsvc
@ -35,10 +36,8 @@ import osv
import pooler import pooler
import release import release
import report import report
import run_tests
import service import service
import sql_db import sql_db
import test
import tools import tools
import workflow import workflow
# backward compatilbility # backward compatilbility

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
"X-Poedit-Language: Czech\n" "X-Poedit-Language: Czech\n"
#. module: base #. module: base

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -8397,7 +8397,6 @@ msgid ""
" </p>\n" " </p>\n"
" " " "
msgstr "" msgstr ""
"Copy text \t\n"
"<p class=\"oe_view_nocontent_create\">\n" "<p class=\"oe_view_nocontent_create\">\n"
" Klicken Sie hier, um einen Kontakt zu Ihrem Adressbuch " " Klicken Sie hier, um einen Kontakt zu Ihrem Adressbuch "
"hinzzufügen.\n" "hinzzufügen.\n"
@ -9693,6 +9692,18 @@ msgid ""
"\n" "\n"
" " " "
msgstr "" 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 #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -10922,6 +10933,14 @@ msgid ""
"pads (by default, http://ietherpad.com/).\n" "pads (by default, http://ietherpad.com/).\n"
" " " "
msgstr "" 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 #. module: base
#: sql_constraint:res.lang:0 #: sql_constraint:res.lang:0
@ -12489,6 +12508,45 @@ msgid ""
"\n" "\n"
"**PASSWORD:** ${object.moodle_user_password}\n" "**PASSWORD:** ${object.moodle_user_password}\n"
msgstr "" 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 #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_uk #: model:ir.module.module,shortdesc:base.module_l10n_uk
@ -12800,6 +12858,21 @@ msgid ""
" * Repair quotation report\n" " * Repair quotation report\n"
" * Notes for the technician and for the final customer\n" " * Notes for the technician and for the final customer\n"
msgstr "" 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 #. module: base
#: model:res.country,name:base.cd #: model:res.country,name:base.cd
@ -13132,6 +13205,17 @@ msgid ""
"\n" "\n"
" " " "
msgstr "" 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 #. module: base
#: field:ir.cron,numbercall:0 #: field:ir.cron,numbercall:0
@ -14273,6 +14357,22 @@ msgid ""
"modules.\n" "modules.\n"
" " " "
msgstr "" 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 #. module: base
#: model:res.country,name:base.bq #: model:res.country,name:base.bq

View File

@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
"X-Poedit-Country: GREECE\n" "X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n" "X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -7758,7 +7758,7 @@ msgstr "Acción"
#. module: base #. module: base
#: view:ir.actions.server:0 #: view:ir.actions.server:0
msgid "Email Configuration" msgid "Email Configuration"
msgstr "Configuración Email" msgstr "Configuración del correo electrónico"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_cron #: 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 #. module: base
#: model:ir.model,name:base.model_base_module_configuration #: model:ir.model,name:base.model_base_module_configuration
msgid "base.module.configuration" msgid "base.module.configuration"
msgstr "base.modulo.configuracion" msgstr "Configuración del módulo base"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_point_of_sale #: model:ir.module.module,description:base.module_point_of_sale

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
"Language: \n" "Language: \n"
#. module: base #. module: base

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -578,7 +578,7 @@ msgstr "Guayana francesa"
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_hr #: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details" msgid "Jobs, Departments, Employees Details"
msgstr "" msgstr "Trabajos, Departamentos, Detalle de Empleados"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_analytic #: model:ir.module.module,description:base.module_analytic
@ -656,7 +656,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (VE) / Español (VE)" msgid "Spanish (VE) / Español (VE)"
msgstr "Spanish (es_EC) / Español (es_EC)" msgstr "Spanish (es_VE) / Español (es_VE)"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
@ -729,7 +729,7 @@ msgstr ""
#. module: base #. module: base
#: field:res.company,logo_web:0 #: field:res.company,logo_web:0
msgid "Logo Web" msgid "Logo Web"
msgstr "" msgstr "Logo Web"
#. module: base #. module: base
#: code:addons/base/ir/ir_model.py:339 #: code:addons/base/ir/ir_model.py:339
@ -1220,7 +1220,7 @@ msgstr "Modelo de documento"
#. module: base #. module: base
#: view:res.users:0 #: view:res.users:0
msgid "Change the user password." msgid "Change the user password."
msgstr "" msgstr "Cambiar password de usuario"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -1849,7 +1849,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project_issue #: model:ir.module.module,shortdesc:base.module_portal_project_issue
msgid "Portal Issue" msgid "Portal Issue"
msgstr "" msgstr "Tarea de Portal"
#. module: base #. module: base
#: model:ir.ui.menu,name:base.menu_tools #: model:ir.ui.menu,name:base.menu_tools
@ -1873,7 +1873,7 @@ msgstr ""
#. module: base #. module: base
#: field:res.partner,image_small:0 #: field:res.partner,image_small:0
msgid "Small-sized image" msgid "Small-sized image"
msgstr "" msgstr "Tamaño pequeño de imagen"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_stock #: model:ir.module.module,shortdesc:base.module_stock
@ -1975,7 +1975,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:164 #: code:addons/base/ir/ir_fields.py:164
#, python-format #, python-format
msgid "Unknown value '%s' for boolean field '%%(field)s', assuming '%s'" 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 #. module: base
#: model:res.country,name:base.nl #: model:res.country,name:base.nl
@ -1985,12 +1985,12 @@ msgstr "Países Bajos-Holanda"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_portal_event #: model:ir.module.module,shortdesc:base.module_portal_event
msgid "Portal Event" msgid "Portal Event"
msgstr "" msgstr "Evento de Portal"
#. module: base #. module: base
#: selection:ir.translation,state:0 #: selection:ir.translation,state:0
msgid "Translation in Progress" msgid "Translation in Progress"
msgstr "" msgstr "Traducción en Progreso"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_rule #: model:ir.model,name:base.model_ir_rule
@ -2005,7 +2005,7 @@ msgstr "Días"
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_fleet #: model:ir.module.module,summary:base.module_fleet
msgid "Vehicle, leasing, insurances, costs" msgid "Vehicle, leasing, insurances, costs"
msgstr "" msgstr "Vehículo, arrendamiento, seguros, costos"
#. module: base #. module: base
#: view:ir.model.access:0 #: view:ir.model.access:0
@ -2016,7 +2016,7 @@ msgstr "Acceso de lectura"
#. module: base #. module: base
#: help:ir.attachment,res_id:0 #: help:ir.attachment,res_id:0
msgid "The record id this is attached to" msgid "The record id this is attached to"
msgstr "" msgstr "El id de registro está adjunto a"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_share #: 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 #: code:addons/base/ir/ir_model.py:318
#, python-format #, python-format
msgid "This column contains module data and cannot be removed!" 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 #. module: base
#: field:res.partner.bank,footer:0 #: field:res.partner.bank,footer:0
@ -2235,7 +2235,7 @@ msgstr "Ruta de acceso completa"
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "The next step depends on the file format:" msgid "The next step depends on the file format:"
msgstr "" msgstr "El siguiente paso, depende el formato de archivo:"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -2251,7 +2251,7 @@ msgstr ""
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "PO(T) format: you should edit it with a PO editor such as" 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 #. module: base
#: model:ir.ui.menu,name:base.menu_administration #: model:ir.ui.menu,name:base.menu_administration
@ -2275,7 +2275,7 @@ msgstr "Crear / Escribir / Copiar"
#. module: base #. module: base
#: view:ir.sequence:0 #: view:ir.sequence:0
msgid "Second: %(sec)s" msgid "Second: %(sec)s"
msgstr "" msgstr "Segundo: %(sec)s"
#. module: base #. module: base
#: field:ir.actions.act_window,view_mode:0 #: field:ir.actions.act_window,view_mode:0
@ -2340,12 +2340,12 @@ msgstr "Bahamas"
#. module: base #. module: base
#: field:ir.rule,perm_create:0 #: field:ir.rule,perm_create:0
msgid "Apply for Create" msgid "Apply for Create"
msgstr "" msgstr "Aplicar para Creación"
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_tools #: model:ir.module.category,name:base.module_category_tools
msgid "Extra Tools" msgid "Extra Tools"
msgstr "" msgstr "Herramientas Extras"
#. module: base #. module: base
#: view:ir.attachment:0 #: view:ir.attachment:0
@ -2363,6 +2363,8 @@ msgid ""
"Appears by default on the top right corner of your printed documents (report " "Appears by default on the top right corner of your printed documents (report "
"header)." "header)."
msgstr "" msgstr ""
"Aparece por defecto en la esquina superior derecha de sus documentos "
"impresos (cabecera de reporte)"
#. module: base #. module: base
#: field:base.module.update,update:0 #: field:base.module.update,update:0
@ -2377,7 +2379,7 @@ msgstr "Método"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_auth_crypt #: model:ir.module.module,shortdesc:base.module_auth_crypt
msgid "Password Encryption" msgid "Password Encryption"
msgstr "" msgstr "Encriptación de Contraseña"
#. module: base #. module: base
#: view:workflow.activity:0 #: view:workflow.activity:0
@ -2417,11 +2419,13 @@ msgstr ""
msgid "" msgid ""
"No matching record found for %(field_type)s '%(value)s' in field '%%(field)s'" "No matching record found for %(field_type)s '%(value)s' in field '%%(field)s'"
msgstr "" msgstr ""
"No se encuentra un registro para %(field_type)s '%(value)s' en campo "
"'%%(field)s'"
#. module: base #. module: base
#: field:change.password.user,new_passwd:0 #: field:change.password.user,new_passwd:0
msgid "New Password" msgid "New Password"
msgstr "" msgstr "Nueva Contraseña"
#. module: base #. module: base
#: model:ir.actions.act_window,help:base.action_ui_view #: model:ir.actions.act_window,help:base.action_ui_view
@ -2695,7 +2699,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup #: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
msgid "Signup with OAuth2 Authentication" msgid "Signup with OAuth2 Authentication"
msgstr "" msgstr "Ingreos con OAuth2"
#. module: base #. module: base
#: selection:ir.model,state:0 #: selection:ir.model,state:0
@ -2722,7 +2726,7 @@ msgstr "Greek / Ελληνικά"
#. module: base #. module: base
#: field:res.company,custom_footer:0 #: field:res.company,custom_footer:0
msgid "Custom Footer" msgid "Custom Footer"
msgstr "" msgstr "Pie de página personalizado"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm #: model:ir.module.module,shortdesc:base.module_sale_crm
@ -2790,7 +2794,7 @@ msgstr "Nombre de acceso rápido"
#. module: base #. module: base
#: field:res.partner,contact_address:0 #: field:res.partner,contact_address:0
msgid "Complete Address" msgid "Complete Address"
msgstr "" msgstr "Dirección Completa"
#. module: base #. module: base
#: help:ir.actions.act_window,limit:0 #: help:ir.actions.act_window,limit:0
@ -2873,7 +2877,7 @@ msgstr "Id de registro"
#. module: base #. module: base
#: view:ir.filters:0 #: view:ir.filters:0
msgid "My Filters" msgid "My Filters"
msgstr "" msgstr "Mis filtros"
#. module: base #. module: base
#: field:ir.actions.server,email:0 #: field:ir.actions.server,email:0
@ -2893,6 +2897,7 @@ msgstr ""
#, python-format #, python-format
msgid "Found multiple matches for field '%%(field)s' (%d matches)" msgid "Found multiple matches for field '%%(field)s' (%d matches)"
msgstr "" msgstr ""
"Se encontró multiples resultados para el campo '%%(field)s' (%d ocurrencias)"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -2926,7 +2931,7 @@ msgstr "Argumentos enviados al cliente junto con el tag view"
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_contacts #: model:ir.module.module,summary:base.module_contacts
msgid "Contacts, People and Companies" msgid "Contacts, People and Companies"
msgstr "" msgstr "Contactos personas y Empresas"
#. module: base #. module: base
#: model:res.country,name:base.tt #: model:res.country,name:base.tt
@ -2972,7 +2977,7 @@ msgstr "Gerente"
#: code:addons/base/ir/ir_model.py:719 #: code:addons/base/ir/ir_model.py:719
#, python-format #, python-format
msgid "Sorry, you are not allowed to access this document." msgid "Sorry, you are not allowed to access this document."
msgstr "" msgstr "Perdón, no estas permitido para acceder a este documento."
#. module: base #. module: base
#: model:res.country,name:base.py #: model:res.country,name:base.py
@ -2987,7 +2992,7 @@ msgstr "Fiji"
#. module: base #. module: base
#: view:ir.actions.report.xml:0 #: view:ir.actions.report.xml:0
msgid "Report Xml" msgid "Report Xml"
msgstr "" msgstr "Reporte Xml"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_purchase #: model:ir.module.module,description:base.module_purchase
@ -3058,7 +3063,7 @@ msgstr "Heredado"
#: code:addons/base/ir/ir_fields.py:146 #: code:addons/base/ir/ir_fields.py:146
#, python-format #, python-format
msgid "yes" msgid "yes"
msgstr "" msgstr "si"
#. module: base #. module: base
#: field:ir.model.fields,serialization_field_id:0 #: field:ir.model.fields,serialization_field_id:0
@ -3088,7 +3093,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:174 #: code:addons/base/ir/ir_fields.py:174
#, python-format #, python-format
msgid "'%s' does not seem to be an integer for field '%%(field)s'" 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 #. module: base
#: model:ir.module.category,description:base.module_category_report_designer #: 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 " "the user will have an access to the sales configuration as well as statistic "
"reports." "reports."
msgstr "" msgstr ""
"el usuario tendra acceso a la configuración de ventas así como a las "
"estadísticas."
#. module: base #. module: base
#: model:res.country,name:base.nz #: model:res.country,name:base.nz
@ -3327,7 +3334,7 @@ msgstr "Tipo de reporte desconocido: %s"
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_hr_expense #: model:ir.module.module,summary:base.module_hr_expense
msgid "Expenses Validation, Invoicing" msgid "Expenses Validation, Invoicing"
msgstr "" msgstr "Validación de gastos, Facturación"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account #: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account
@ -3346,7 +3353,7 @@ msgstr "Armenia"
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_hr_evaluation #: model:ir.module.module,summary:base.module_hr_evaluation
msgid "Periodical Evaluations, Appraisals, Surveys" msgid "Periodical Evaluations, Appraisals, Surveys"
msgstr "" msgstr "Evaluaciones periódicas, valoraciones, encuentas"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.ir_property_form #: model:ir.actions.act_window,name:base.ir_property_form
@ -3367,7 +3374,7 @@ msgstr "Suecia"
#. module: base #. module: base
#: field:ir.actions.report.xml,report_file:0 #: field:ir.actions.report.xml,report_file:0
msgid "Report File" msgid "Report File"
msgstr "" msgstr "Archivo de reporte"
#. module: base #. module: base
#: selection:ir.actions.act_window.view,view_mode:0 #: selection:ir.actions.act_window.view,view_mode:0
@ -3400,7 +3407,7 @@ msgstr ""
#: code:addons/orm.py:3870 #: code:addons/orm.py:3870
#, python-format #, python-format
msgid "Missing document(s)" msgid "Missing document(s)"
msgstr "" msgstr "Documento faltante"
#. module: base #. module: base
#: model:ir.model,name:base.model_res_partner_bank_type #: model:ir.model,name:base.model_res_partner_bank_type
@ -3465,7 +3472,7 @@ msgstr "Calendario"
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_knowledge_management #: model:ir.module.category,name:base.module_category_knowledge_management
msgid "Knowledge" msgid "Knowledge"
msgstr "" msgstr "Gestión de Conocimiento"
#. module: base #. module: base
#: field:workflow.activity,signal_send:0 #: field:workflow.activity,signal_send:0
@ -3608,7 +3615,7 @@ msgstr "workflow.actividad"
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "Export Complete" msgid "Export Complete"
msgstr "" msgstr "Exportación completa"
#. module: base #. module: base
#: help:ir.ui.view_sc,res_id:0 #: help:ir.ui.view_sc,res_id:0
@ -3637,7 +3644,7 @@ msgstr "Finlandes"
#. module: base #. module: base
#: view:ir.config_parameter:0 #: view:ir.config_parameter:0
msgid "System Properties" msgid "System Properties"
msgstr "" msgstr "Propiedades del sistema"
#. module: base #. module: base
#: field:ir.sequence,prefix:0 #: field:ir.sequence,prefix:0
@ -3681,12 +3688,12 @@ msgstr "Seleccione el Paquete del Módulo de Importación (Archivo zip.):"
#. module: base #. module: base
#: view:ir.filters:0 #: view:ir.filters:0
msgid "Personal" msgid "Personal"
msgstr "" msgstr "Personal"
#. module: base #. module: base
#: field:base.language.export,modules:0 #: field:base.language.export,modules:0
msgid "Modules To Export" msgid "Modules To Export"
msgstr "" msgstr "Módulos a exportar"
#. module: base #. module: base
#: model:res.country,name:base.mt #: model:res.country,name:base.mt
@ -3699,6 +3706,8 @@ msgstr "Malta"
msgid "" msgid ""
"Only users with the following access level are currently allowed to do that" "Only users with the following access level are currently allowed to do that"
msgstr "" msgstr ""
"Sólo los usuarios con los siguientes niveles de acceso están permitidos a "
"hacer eso"
#. module: base #. module: base
#: field:ir.actions.server,fields_lines:0 #: field:ir.actions.server,fields_lines:0
@ -3789,7 +3798,7 @@ msgstr "Antártida"
#. module: base #. module: base
#: view:res.partner:0 #: view:res.partner:0
msgid "Persons" msgid "Persons"
msgstr "" msgstr "Personas"
#. module: base #. module: base
#: view:base.language.import:0 #: 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:0
#: field:res.company,rml_footer_readonly:0 #: field:res.company,rml_footer_readonly:0
msgid "Report Footer" msgid "Report Footer"
msgstr "" msgstr "Píe de Página de Reporte"
#. module: base #. module: base
#: selection:res.lang,direction:0 #: selection:res.lang,direction:0
@ -3950,7 +3959,7 @@ msgstr "Togo"
#: field:ir.actions.act_window,res_model:0 #: field:ir.actions.act_window,res_model:0
#: field:ir.actions.client,res_model:0 #: field:ir.actions.client,res_model:0
msgid "Destination Model" msgid "Destination Model"
msgstr "" msgstr "Modelo destino"
#. module: base #. module: base
#: selection:ir.sequence,implementation:0 #: selection:ir.sequence,implementation:0
@ -3974,7 +3983,7 @@ msgstr "Tayiko / اردو"
#: code:addons/orm.py:3901 #: code:addons/orm.py:3901
#, python-format #, python-format
msgid "Access Denied" msgid "Access Denied"
msgstr "" msgstr "Acceso Denegado"
#. module: base #. module: base
#: field:res.company,name:0 #: field:res.company,name:0
@ -4084,7 +4093,7 @@ msgstr "%x - Representación apropiada de fecha."
#. module: base #. module: base
#: view:res.partner:0 #: view:res.partner:0
msgid "Tag" msgid "Tag"
msgstr "" msgstr "Tag"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -4135,7 +4144,7 @@ msgstr "Nauru"
#: code:addons/base/res/res_company.py:166 #: code:addons/base/res/res_company.py:166
#, python-format #, python-format
msgid "Reg" msgid "Reg"
msgstr "" msgstr "Reg"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_property #: model:ir.model,name:base.model_ir_property
@ -4299,7 +4308,7 @@ msgstr "S.L."
#. module: base #. module: base
#: model:ir.actions.server,name:base.action_run_ir_action_todo #: model:ir.actions.server,name:base.action_run_ir_action_todo
msgid "Run Remaining Action Todo" msgid "Run Remaining Action Todo"
msgstr "" msgstr "Correr acciones pendientes"
#. module: base #. module: base
#: field:res.partner,ean13:0 #: field:res.partner,ean13:0
@ -4396,7 +4405,7 @@ msgstr "Plan de Cuentas"
#. module: base #. module: base
#: model:ir.ui.menu,name:base.menu_event_main #: model:ir.ui.menu,name:base.menu_event_main
msgid "Events Organization" msgid "Events Organization"
msgstr "" msgstr "Organización de Eventos"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form #: model:ir.actions.act_window,name:base.action_partner_customer_form
@ -4424,7 +4433,7 @@ msgstr "Campo base"
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts #: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts
msgid "Managing vehicles and contracts" msgid "Managing vehicles and contracts"
msgstr "" msgstr "Gestión de Vehículos y contratos"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_base_setup #: model:ir.module.module,description:base.module_base_setup
@ -4540,12 +4549,12 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,summary:base.module_sale #: model:ir.module.module,summary:base.module_sale
msgid "Quotations, Sales Orders, Invoicing" msgid "Quotations, Sales Orders, Invoicing"
msgstr "" msgstr "Cotizaciones, Ordenes de Venta, Facturación"
#. module: base #. module: base
#: field:res.partner,parent_id:0 #: field:res.partner,parent_id:0
msgid "Related Company" msgid "Related Company"
msgstr "" msgstr "Compañía Relacionada"
#. module: base #. module: base
#: help:ir.actions.act_url,help:0 #: help:ir.actions.act_url,help:0
@ -4591,7 +4600,7 @@ msgstr "'código' debe ser único"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_knowledge #: model:ir.module.module,shortdesc:base.module_knowledge
msgid "Knowledge Management System" msgid "Knowledge Management System"
msgstr "" msgstr "Gestión del Conocimiento"
#. module: base #. module: base
#: view:workflow.activity:0 #: view:workflow.activity:0
@ -4687,12 +4696,12 @@ msgstr "Hindi / हिंदी"
#: model:ir.actions.act_window,name:base.action_view_base_language_install #: model:ir.actions.act_window,name:base.action_view_base_language_install
#: model:ir.ui.menu,name:base.menu_view_base_language_install #: model:ir.ui.menu,name:base.menu_view_base_language_install
msgid "Load a Translation" msgid "Load a Translation"
msgstr "" msgstr "Cargar Traducción"
#. module: base #. module: base
#: field:ir.module.module,latest_version:0 #: field:ir.module.module,latest_version:0
msgid "Installed Version" msgid "Installed Version"
msgstr "" msgstr "Versión Instalada"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_test #: model:ir.module.module,description:base.module_account_test
@ -4806,7 +4815,7 @@ msgstr "Vista"
#: code:addons/base/ir/ir_fields.py:146 #: code:addons/base/ir/ir_fields.py:146
#, python-format #, python-format
msgid "no" msgid "no"
msgstr "" msgstr "no"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_crm_partner_assign #: model:ir.module.module,description:base.module_crm_partner_assign
@ -4840,7 +4849,7 @@ msgstr "Guinea ecuatorial"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_web_api #: model:ir.module.module,shortdesc:base.module_web_api
msgid "OpenERP Web API" msgid "OpenERP Web API"
msgstr "" msgstr "Web API OpenERP"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_fr_rib #: model:ir.module.module,description:base.module_l10n_fr_rib
@ -5047,7 +5056,7 @@ msgstr "Flujos"
#. module: base #. module: base
#: model:ir.ui.menu,name:base.next_id_73 #: model:ir.ui.menu,name:base.next_id_73
msgid "Purchase" msgid "Purchase"
msgstr "" msgstr "Compra"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -5062,12 +5071,12 @@ msgstr ""
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "This file was generated using the universal" msgid "This file was generated using the universal"
msgstr "" msgstr "Este archivo fue generado usando el universal"
#. module: base #. module: base
#: model:res.partner.category,name:base.res_partner_category_7 #: model:res.partner.category,name:base.res_partner_category_7
msgid "IT Services" msgid "IT Services"
msgstr "" msgstr "Servicios de TI"
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_specific_industry_applications #: model:ir.module.category,name:base.module_category_specific_industry_applications
@ -5077,7 +5086,7 @@ msgstr "Aplicaciones para Industrias Específicas"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_google_docs #: model:ir.module.module,shortdesc:base.module_google_docs
msgid "Google Docs integration" msgid "Google Docs integration"
msgstr "" msgstr "Integración con Google Docs"
#. module: base #. module: base
#: help:ir.attachment,res_model:0 #: help:ir.attachment,res_model:0
@ -5088,7 +5097,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:327 #: code:addons/base/ir/ir_fields.py:327
#, python-format #, python-format
msgid "name" msgid "name"
msgstr "" msgstr "nombre"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_mrp_operations #: model:ir.module.module,description:base.module_mrp_operations
@ -5134,7 +5143,7 @@ msgstr "Saltar"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_event_sale #: model:ir.module.module,shortdesc:base.module_event_sale
msgid "Events Sales" msgid "Events Sales"
msgstr "" msgstr "Eventos de Ventas"
#. module: base #. module: base
#: model:res.country,name:base.ls #: model:res.country,name:base.ls
@ -5144,7 +5153,7 @@ msgstr "Lesotho"
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid ", or your preferred text editor" msgid ", or your preferred text editor"
msgstr "" msgstr ", o tu editor de texto preferido"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign #: model:ir.module.module,shortdesc:base.module_crm_partner_assign
@ -5186,7 +5195,7 @@ msgstr "Genérico"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_document_ftp #: model:ir.module.module,shortdesc:base.module_document_ftp
msgid "Shared Repositories (FTP)" msgid "Shared Repositories (FTP)"
msgstr "" msgstr "Appraisals, Surveys\""
#. module: base #. module: base
#: model:res.country,name:base.sm #: model:res.country,name:base.sm
@ -5211,12 +5220,12 @@ msgstr "Establecer a NULL"
#. module: base #. module: base
#: view:res.users:0 #: view:res.users:0
msgid "Save" msgid "Save"
msgstr "" msgstr "Appraisals, Surveys\""
#. module: base #. module: base
#: field:ir.actions.report.xml,report_xml:0 #: field:ir.actions.report.xml,report_xml:0
msgid "XML Path" msgid "XML Path"
msgstr "" msgstr "Path XML"
#. module: base #. module: base
#: model:res.country,name:base.bj #: model:res.country,name:base.bj
@ -5404,7 +5413,7 @@ msgstr "Tasas"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_email_template #: model:ir.module.module,shortdesc:base.module_email_template
msgid "Email Templates" msgid "Email Templates"
msgstr "" msgstr "Plantillas de Correo"
#. module: base #. module: base
#: model:res.country,name:base.sy #: model:res.country,name:base.sy

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -673,7 +673,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_mx #: model:ir.module.module,shortdesc:base.module_l10n_mx
msgid "Mexico - Accounting" msgid "Mexico - Accounting"
msgstr "" msgstr "México - Contabilidad"
#. module: base #. module: base
#: help:ir.actions.server,action_id:0 #: help:ir.actions.server,action_id:0
@ -8634,7 +8634,7 @@ msgstr ""
#. module: base #. module: base
#: model:res.country,name:base.mx #: model:res.country,name:base.mx
msgid "Mexico" msgid "Mexico"
msgstr "" msgstr "México"
#. module: base #. module: base
#: code:addons/orm.py:3902 #: code:addons/orm.py:3902

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:44+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n" "X-Poedit-Language: Persian\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:15+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: 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. " "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 " "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 " "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 " "vezetőjüknek kell jóváhagynia a csoport beírásait. A periódusok a "
"osztályaihoz lesznek meghatározva és beállíthatóak havi vagy heti " "vállalkozás osztályaihoz lesznek meghatározva és beállíthatóak havi vagy "
"futtatásra.\n" "heti futtatásra.\n"
"\n" "\n"
"A teljes időkimutatás érvényesítési folyamat a következő:\n" "A teljes időkimutatás érvényesítési folyamat a következő:\n"
"---------------------------------------------\n" "---------------------------------------------\n"
"* Terve lap\n" "* Terve lap\n"
"* Munkavállalók érvényesítései a periódus végén\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" "\n"
"A nyugtázást a vállalatnál be lehet állítani:\n" "A nyugtázást a vállalatnál be lehet állítani:\n"
"------------------------------------------------\n" "------------------------------------------------\n"
@ -4107,18 +4107,18 @@ msgstr ""
"\n" "\n"
"Ez az alkalmazás lehetővé teszi a munkavállalók napi kiadásainak kezelését. " "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 " "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" "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 " "A munkavállalók beiktathatják a kiadásaikat amit a jóváhagyás után a "
"könyveléshez iktathat az érvényesítésre jogosultak.\n" "könyveléshez iktathat a jóváhagyásra jogosultak.\n"
"\n" "\n"
"\n" "\n"
"A következő iktatási folyamat van beépítve:\n" "A következő iktatási folyamat van beépítve:\n"
"---------------------------------\n" "---------------------------------\n"
"* Tervezett kiadás\n" "* Tervezett kiadás\n"
"* A munkavállalók által jóváhagyott jegyzetek\n" "* A munkavállalók által jóváhagyott jegyzetek\n"
"* Az osztályvezető általi érvényesítés\n" "* Az osztályvezető általi jóváhagyás\n"
"* A könyvelő általi érvényesítés és nyugta kiadás\n" "* A könyvelő általi jóváhagyás és nyugta kiadás\n"
"\n" "\n"
"Ez a modul az könyvelés elemzőt is használja és kompatibilis a számlázó és " "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 " "az időkimutatás modullal, így automatikus ügyfél kiadás újra-számlázást is "
@ -7584,7 +7584,7 @@ msgid ""
msgstr "" msgstr ""
"Ha a műveleti átmenet a kliens űrlapon található gomb megnyomásával " "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 " "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 #. module: base
#: field:ir.ui.view.custom,ref_id:0 #: 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, " "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" "egy könyvelési bejegyzéshez.\n"
"\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" "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 #: code:addons/orm.py:2816
#, python-format #, python-format
msgid "ValidateError" msgid "ValidateError"
msgstr "ValidateError" msgstr "Jóváhagyásihiba"
#. module: base #. module: base
#: view:base.module.import:0 #: view:base.module.import:0
@ -13714,7 +13714,7 @@ msgstr "Normál"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_purchase_double_validation #: model:ir.module.module,shortdesc:base.module_purchase_double_validation
msgid "Double Validation on Purchases" 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 #. module: base
#: field:res.bank,street2:0 #: field:res.bank,street2:0
@ -14414,11 +14414,11 @@ msgstr ""
"\n" "\n"
"A jelentésnek van felelőse és különböző állapot színekből alakul ki:\n" "A jelentésnek van felelőse és különböző állapot színekből alakul ki:\n"
"-----------------------------------------------------------------\n" "-----------------------------------------------------------------\n"
" * terv, nyitott, megszakított, végrehajtott.\n" " * terv, nyitott, visszavont, végrehajtott.\n"
"\n" "\n"
"Kötegelt végrehajtások egy különálló jelentésen kezelhetők az összes eladás " "Kötegelt végrehajtások egy különálló jelentésen kezelhetők az összes eladás "
"egyszeri\n" "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" "\n"
"Támogatja a kötegelt számlázási módot mely beállítható partnerekre és " "Támogatja a kötegelt számlázási módot mely beállítható partnerekre és "
"megrendelésekre, például:\n" "megrendelésekre, például:\n"
@ -16039,7 +16039,7 @@ msgstr ""
"=========================================================\n" "=========================================================\n"
"\n" "\n"
"Ez a modul módosítja a vásárlás munkafolyamatot úgy, hogy a varázslóval " "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" "vásárlást\n"
" " " "

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:13+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:46+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -8258,7 +8258,7 @@ msgstr "Numero successivo di questa sequenza"
#. module: base #. module: base
#: view:res.partner:0 #: view:res.partner:0
msgid "at" msgid "at"
msgstr "alle" msgstr "di"
#. module: base #. module: base
#: view:ir.rule:0 #: view:ir.rule:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:14+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:45+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:16+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -137,7 +137,7 @@ msgstr ""
#. module: base #. module: base
#: help:res.partner,employee:0 #: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee." msgid "Check this box if this contact is an Employee."
msgstr "" msgstr "이 연락처가 직원인 경우 체크하세요."
#. module: base #. module: base
#: help:ir.model.fields,domain:0 #: help:ir.model.fields,domain:0
@ -165,7 +165,7 @@ msgstr "타겟 윈도우"
#. module: base #. module: base
#: field:ir.actions.report.xml,report_rml:0 #: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path" msgid "Main Report File Path"
msgstr "" msgstr "주 보고서 파일 경로"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans #: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@ -234,7 +234,7 @@ msgstr "생성됨."
#. module: base #. module: base
#: field:ir.actions.report.xml,report_xsl:0 #: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path" msgid "XSL Path"
msgstr "" msgstr "XSL 경로"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr #: model:ir.module.module,shortdesc:base.module_l10n_tr
@ -260,7 +260,7 @@ msgstr "이뉴잇"
#. module: base #. module: base
#: model:res.groups,name:base.group_multi_currency #: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies" msgid "Multi Currencies"
msgstr "" msgstr "다중 화폐"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_cl #: model:ir.module.module,description:base.module_l10n_cl
@ -354,7 +354,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management #: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management" msgid "Customer Relationship Management"
msgstr "" msgstr "고객 관계 관리"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_delivery #: model:ir.module.module,description:base.module_delivery
@ -386,7 +386,7 @@ msgstr "잘못된 group_by"
#. module: base #. module: base
#: field:ir.module.category,child_ids:0 #: field:ir.module.category,child_ids:0
msgid "Child Applications" msgid "Child Applications"
msgstr "" msgstr "하위 어플리케이션"
#. module: base #. module: base
#: field:res.partner,credit_limit:0 #: field:res.partner,credit_limit:0
@ -470,7 +470,7 @@ msgstr ""
#. module: base #. module: base
#: view:ir.rule:0 #: view:ir.rule:0
msgid "Create Access Right" msgid "Create Access Right"
msgstr "" msgstr "접근 권한 생성"
#. module: base #. module: base
#: model:res.country,name:base.tv #: model:res.country,name:base.tv
@ -490,7 +490,7 @@ msgstr "날짜 포맷"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer #: model:ir.module.module,shortdesc:base.module_base_report_designer
msgid "OpenOffice Report Designer" msgid "OpenOffice Report Designer"
msgstr "" msgstr "오픈오피스 보고서 디자이너"
#. module: base #. module: base
#: model:res.country,name:base.an #: model:res.country,name:base.an
@ -539,7 +539,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_idea #: model:ir.module.module,shortdesc:base.module_idea
msgid "Ideas" msgid "Ideas"
msgstr "" msgstr "아이디어"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_event #: model:ir.module.module,description:base.module_event
@ -600,7 +600,7 @@ msgstr "스페인어"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets" msgid "Invoice on Timesheets"
msgstr "" msgstr "타임시트 상의 인보이스"
#. module: base #. module: base
#: view:base.module.upgrade:0 #: view:base.module.upgrade:0
@ -691,7 +691,7 @@ msgstr "키는 유일해야 한다."
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_outlook #: model:ir.module.module,shortdesc:base.module_plugin_outlook
msgid "Outlook Plug-In" msgid "Outlook Plug-In"
msgstr "" msgstr "아웃룩 플러그인"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account #: model:ir.module.module,description:base.module_account
@ -829,12 +829,12 @@ msgstr ""
#. module: base #. module: base
#: view:ir.mail_server:0 #: view:ir.mail_server:0
msgid "Security and Authentication" msgid "Security and Authentication"
msgstr "" msgstr "보안 및 인증"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar #: model:ir.module.module,shortdesc:base.module_web_calendar
msgid "Web Calendar" msgid "Web Calendar"
msgstr "" msgstr "웹 캘린더"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -845,7 +845,7 @@ msgstr "스웨덴"
#: field:base.language.export,name:0 #: field:base.language.export,name:0
#: field:ir.attachment,datas_fname:0 #: field:ir.attachment,datas_fname:0
msgid "File Name" msgid "File Name"
msgstr "" msgstr "파일 이름"
#. module: base #. module: base
#: model:res.country,name:base.rs #: model:res.country,name:base.rs
@ -925,12 +925,12 @@ msgstr "보고서 유형, 예: pdf, html, raw, sxw, odt, html2html, mako2html, .
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav #: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)" msgid "Shared Repositories (WebDAV)"
msgstr "" msgstr "공유 저장소(WebDAV)"
#. module: base #. module: base
#: view:res.users:0 #: view:res.users:0
msgid "Email Preferences" msgid "Email Preferences"
msgstr "" msgstr "이메일 설정"
#. module: base #. module: base
#: code:addons/base/ir/ir_fields.py:195 #: code:addons/base/ir/ir_fields.py:195
@ -1047,7 +1047,7 @@ msgstr "번호 유형을 요청"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account #: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users" msgid "Google Users"
msgstr "" msgstr "구글 사용자"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_fleet #: model:ir.module.module,shortdesc:base.module_fleet
@ -1077,7 +1077,7 @@ msgstr ""
#. module: base #. module: base
#: model:res.country,name:base.mn #: model:res.country,name:base.mn
msgid "Mongolia" msgid "Mongolia"
msgstr "" msgstr "몽고"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_crm #: model:ir.module.module,description:base.module_crm
@ -1134,7 +1134,7 @@ msgstr ""
#. module: base #. module: base
#: view:res.users:0 #: view:res.users:0
msgid "Change the user password." msgid "Change the user password."
msgstr "" msgstr "사용자 암호 변경"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -1159,7 +1159,7 @@ msgstr "타입"
#. module: base #. module: base
#: field:ir.mail_server,smtp_user:0 #: field:ir.mail_server,smtp_user:0
msgid "Username" msgid "Username"
msgstr "" msgstr "사용자명"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_br #: model:ir.module.module,description:base.module_l10n_br
@ -1226,23 +1226,23 @@ msgstr "괌"
#. module: base #. module: base
#: sql_constraint:res.country:0 #: sql_constraint:res.country:0
msgid "The name of the country must be unique !" msgid "The name of the country must be unique !"
msgstr "" msgstr "국가명은 유일해야 합니다!"
#. module: base #. module: base
#: field:ir.module.module,installed_version:0 #: field:ir.module.module,installed_version:0
msgid "Latest Version" msgid "Latest Version"
msgstr "" msgstr "최신 버전"
#. module: base #. module: base
#: view:ir.rule:0 #: view:ir.rule:0
msgid "Delete Access Right" msgid "Delete Access Right"
msgstr "" msgstr "접근 권한 삭제"
#. module: base #. module: base
#: code:addons/base/ir/ir_mail_server.py:212 #: code:addons/base/ir/ir_mail_server.py:212
#, python-format #, python-format
msgid "Connection test failed!" msgid "Connection test failed!"
msgstr "" msgstr "연결 테스트에 실패했습니다!"
#. module: base #. module: base
#: selection:ir.actions.server,state:0 #: selection:ir.actions.server,state:0
@ -1299,12 +1299,12 @@ msgstr "Char"
#. module: base #. module: base
#: field:ir.module.category,visible:0 #: field:ir.module.category,visible:0
msgid "Visible" msgid "Visible"
msgstr "" msgstr "보이기"
#. module: base #. module: base
#: model:ir.actions.client,name:base.action_client_base_menu #: model:ir.actions.client,name:base.action_client_base_menu
msgid "Open Settings Menu" msgid "Open Settings Menu"
msgstr "" msgstr "설정 메뉴 열기"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -1349,7 +1349,7 @@ msgstr "스페인"
#. module: base #. module: base
#: field:ir.mail_server,smtp_port:0 #: field:ir.mail_server,smtp_port:0
msgid "SMTP Port" msgid "SMTP Port"
msgstr "" msgstr "SMTP 포트"
#. module: base #. module: base
#: help:res.users,login:0 #: help:res.users,login:0
@ -1364,6 +1364,8 @@ msgid ""
" for uploading to OpenERP's translation " " for uploading to OpenERP's translation "
"platform," "platform,"
msgstr "" msgstr ""
"TGZ 파일 형식: PO파일을 포함한 압축파일로,\n"
" OpenERP의 번역 플랫폼에 올리기 적합한 형식입니다."
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -1379,12 +1381,12 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:53 #: code:addons/base/module/wizard/base_language_install.py:53
#, python-format #, python-format
msgid "Language Pack" msgid "Language Pack"
msgstr "" msgstr "언어 팩"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests #: model:ir.module.module,shortdesc:base.module_web_tests
msgid "Tests" msgid "Tests"
msgstr "" msgstr "테스트"
#. module: base #. module: base
#: field:ir.actions.report.xml,attachment:0 #: field:ir.actions.report.xml,attachment:0
@ -1450,7 +1452,7 @@ msgstr ""
#. module: base #. module: base
#: field:ir.module.category,parent_id:0 #: field:ir.module.category,parent_id:0
msgid "Parent Application" msgid "Parent Application"
msgstr "" msgstr "부모 어플리케이션"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.ir_action_wizard #: model:ir.actions.act_window,name:base.ir_action_wizard
@ -1468,7 +1470,7 @@ msgstr "오퍼레이션 취소"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_document #: model:ir.module.module,shortdesc:base.module_document
msgid "Document Management System" msgid "Document Management System"
msgstr "" msgstr "문서 관리 시스템"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim #: 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 " "use the accounting application of OpenERP, journals and accounts will be "
"created automatically based on these data." "created automatically based on these data."
msgstr "" msgstr ""
"회사 은행계좌를 설정하고 바닥글에 표시할 계좌를 선택하십시오. 은행 계좌는 목록 보기에서 순서를 변경할 수 있습니다. 만약 "
"OpenERP의 회계 모듈을 사용하는 경우, 이 자료를 기본으로 분개장 및 계정항목이 자동으로 생성됩니다."
#. module: base #. module: base
#: report:ir.module.reference:0 #: report:ir.module.reference:0
@ -1609,7 +1613,7 @@ msgstr "코드 \"%s\"를 가진 언어가 존재하지 않습니다."
#: model:ir.module.category,name:base.module_category_social_network #: model:ir.module.category,name:base.module_category_social_network
#: model:ir.module.module,shortdesc:base.module_mail #: model:ir.module.module,shortdesc:base.module_mail
msgid "Social Network" msgid "Social Network"
msgstr "" msgstr "소셜 네트워크"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -1619,12 +1623,12 @@ msgstr "%Y - 년도"
#. module: base #. module: base
#: view:res.company:0 #: view:res.company:0
msgid "Report Footer Configuration" msgid "Report Footer Configuration"
msgstr "" msgstr "보고서 바닥글 설정"
#. module: base #. module: base
#: field:ir.translation,comments:0 #: field:ir.translation,comments:0
msgid "Translation comments" msgid "Translation comments"
msgstr "" msgstr "번역 주석"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_lunch #: model:ir.module.module,description:base.module_lunch
@ -1744,7 +1748,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.ui.menu,name:base.menu_tools #: model:ir.ui.menu,name:base.menu_tools
msgid "Tools" msgid "Tools"
msgstr "" msgstr "도구"
#. module: base #. module: base
#: selection:ir.property,type:0 #: selection:ir.property,type:0
@ -1763,12 +1767,12 @@ msgstr ""
#. module: base #. module: base
#: field:res.partner,image_small:0 #: field:res.partner,image_small:0
msgid "Small-sized image" msgid "Small-sized image"
msgstr "" msgstr "작은 크기의 사진"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_stock #: model:ir.module.module,shortdesc:base.module_stock
msgid "Warehouse Management" msgid "Warehouse Management"
msgstr "" msgstr "창고 관리"
#. module: base #. module: base
#: model:ir.model,name:base.model_res_request_link #: model:ir.model,name:base.model_res_request_link
@ -1808,7 +1812,7 @@ msgstr "동티모르"
#: view:ir.module.module:0 #: view:ir.module.module:0
#, python-format #, python-format
msgid "Install" msgid "Install"
msgstr "" msgstr "설치"
#. module: base #. module: base
#: field:res.currency,accuracy:0 #: field:res.currency,accuracy:0
@ -1867,7 +1871,7 @@ msgstr ""
#. module: base #. module: base
#: model:res.country,name:base.nl #: model:res.country,name:base.nl
msgid "Netherlands" msgid "Netherlands"
msgstr "" msgstr "네덜란드"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_portal_event #: model:ir.module.module,shortdesc:base.module_portal_event
@ -1877,7 +1881,7 @@ msgstr ""
#. module: base #. module: base
#: selection:ir.translation,state:0 #: selection:ir.translation,state:0
msgid "Translation in Progress" msgid "Translation in Progress"
msgstr "" msgstr "번역 진행 중"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_rule #: model:ir.model,name:base.model_ir_rule
@ -1929,7 +1933,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_process #: model:ir.module.module,shortdesc:base.module_process
msgid "Enterprise Process" msgid "Enterprise Process"
msgstr "" msgstr "엔터프라이즈 프로세스"
#. module: base #. module: base
#: help:res.partner,supplier:0 #: help:res.partner,supplier:0
@ -1941,7 +1945,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation #: model:ir.module.module,shortdesc:base.module_hr_evaluation
msgid "Employee Appraisals" msgid "Employee Appraisals"
msgstr "" msgstr "직원 평가"
#. module: base #. module: base
#: selection:ir.actions.server,state:0 #: selection:ir.actions.server,state:0
@ -1984,12 +1988,12 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:318 #: code:addons/base/ir/ir_model.py:318
#, python-format #, python-format
msgid "This column contains module data and cannot be removed!" msgid "This column contains module data and cannot be removed!"
msgstr "" msgstr "이 컬럼은 모듈 데이터를 포함하고 있으며 삭제할 수 없습니다."
#. module: base #. module: base
#: field:res.partner.bank,footer:0 #: field:res.partner.bank,footer:0
msgid "Display on Reports" msgid "Display on Reports"
msgstr "" msgstr "보고서에 표시"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_project_timesheet #: model:ir.module.module,description:base.module_project_timesheet
@ -2032,7 +2036,7 @@ msgstr "소스 활동"
#. module: base #. module: base
#: view:ir.sequence:0 #: view:ir.sequence:0
msgid "Legend (for prefix, suffix)" msgid "Legend (for prefix, suffix)"
msgstr "" msgstr "범례(접두사, 접미사)"
#. module: base #. module: base
#: selection:ir.server.object.lines,type:0 #: selection:ir.server.object.lines,type:0
@ -2106,6 +2110,23 @@ msgid ""
"* *Before Delivery*: A Draft invoice is created and must be paid before " "* *Before Delivery*: A Draft invoice is created and must be paid before "
"delivery\n" "delivery\n"
msgstr "" msgstr ""
"\n"
"매출 견적 및 주문 관리\n"
"==================================\n"
"\n"
"이 모듈은 매출과 창고 관리 어플리케이션과 연계됩니다.\n"
"\n"
"설정\n"
"-----------\n"
"* 선적: 일괄 배송, 분할 배송 선택\n"
"* 송장청구: 송장금액 결제 방법 선택\n"
"* 무역조건: 국제 무역조건\n"
"\n"
"다양한 송장청구 방법 선택 가능:\n"
"\n"
"* *요구 시*: 매출 주문 후 필요 시 송장 발행\n"
"* *배송 주문 시*: 화물 수령(배송)시 송장 발행\n"
"* *배송 전*: 송장 초안이 작성되어 배송 전 결제\n"
#. module: base #. module: base
#: field:ir.ui.menu,complete_name:0 #: field:ir.ui.menu,complete_name:0
@ -2115,7 +2136,7 @@ msgstr "전체 경로"
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "The next step depends on the file format:" msgid "The next step depends on the file format:"
msgstr "" msgstr "파일 형식에 따라 다음 단계 결정"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -2130,13 +2151,13 @@ msgstr ""
#. module: base #. module: base
#: view:base.language.export:0 #: view:base.language.export:0
msgid "PO(T) format: you should edit it with a PO editor such as" msgid "PO(T) format: you should edit it with a PO editor such as"
msgstr "" msgstr "PO(T) 파일 형식 : 다음과 같은 PO 편집기로 편집해야 합니다."
#. module: base #. module: base
#: model:ir.ui.menu,name:base.menu_administration #: model:ir.ui.menu,name:base.menu_administration
#: model:res.groups,name:base.group_system #: model:res.groups,name:base.group_system
msgid "Settings" msgid "Settings"
msgstr "" msgstr "설정"
#. module: base #. module: base
#: selection:ir.actions.act_window,view_type:0 #: selection:ir.actions.act_window,view_type:0
@ -2166,7 +2187,7 @@ msgstr "보기 모드"
msgid "" msgid ""
"Display this bank account on the footer of printed documents like invoices " "Display this bank account on the footer of printed documents like invoices "
"and sales orders." "and sales orders."
msgstr "" msgstr "이 은행 계좌는 송장이나 매출 주문서와 같은 출력 서류의 바닥글에 표시됩니다."
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -2181,7 +2202,7 @@ msgstr ""
#. module: base #. module: base
#: model:res.country,name:base.ax #: model:res.country,name:base.ax
msgid "Åland Islands" msgid "Åland Islands"
msgstr "" msgstr "올란드 제도"
#. module: base #. module: base
#: field:res.company,logo:0 #: field:res.company,logo:0
@ -2222,7 +2243,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_tools #: model:ir.module.category,name:base.module_category_tools
msgid "Extra Tools" msgid "Extra Tools"
msgstr "" msgstr "기타 도구"
#. module: base #. module: base
#: view:ir.attachment:0 #: view:ir.attachment:0
@ -2239,7 +2260,7 @@ msgstr "아일랜드"
msgid "" msgid ""
"Appears by default on the top right corner of your printed documents (report " "Appears by default on the top right corner of your printed documents (report "
"header)." "header)."
msgstr "" msgstr "출력 문서의 우측 상단에 기본으로 출력됩니다. (보고서 머릿글)"
#. module: base #. module: base
#: field:base.module.update,update:0 #: field:base.module.update,update:0
@ -2254,7 +2275,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_auth_crypt #: model:ir.module.module,shortdesc:base.module_auth_crypt
msgid "Password Encryption" msgid "Password Encryption"
msgstr "" msgstr "비밀번호 암호화"
#. module: base #. module: base
#: view:workflow.activity:0 #: view:workflow.activity:0
@ -2298,7 +2319,7 @@ msgstr ""
#. module: base #. module: base
#: field:change.password.user,new_passwd:0 #: field:change.password.user,new_passwd:0
msgid "New Password" msgid "New Password"
msgstr "" msgstr "새 비밀번호"
#. module: base #. module: base
#: model:ir.actions.act_window,help:base.action_ui_view #: model:ir.actions.act_window,help:base.action_ui_view
@ -2312,7 +2333,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_base_setup #: model:ir.module.module,shortdesc:base.module_base_setup
msgid "Initial Setup Tools" msgid "Initial Setup Tools"
msgstr "" msgstr "초기 설정 도구"
#. module: base #. module: base
#: field:ir.actions.act_window,groups_id:0 #: field:ir.actions.act_window,groups_id:0
@ -2443,7 +2464,7 @@ msgstr ""
#. module: base #. module: base
#: field:ir.mail_server,smtp_debug:0 #: field:ir.mail_server,smtp_debug:0
msgid "Debugging" msgid "Debugging"
msgstr "" msgstr "디버깅"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_crm_helpdesk #: model:ir.module.module,description:base.module_crm_helpdesk
@ -2465,7 +2486,7 @@ msgstr ""
msgid "" msgid ""
"View type: Tree type to use for the tree view, set to 'tree' for a " "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" "hierarchical tree view, or 'form' for a regular list view"
msgstr "" msgstr "표시 형식: 'tree'로 계층구조의 트리 뷰를 표시하거나 'form'으로 일반적인 목록을 표시"
#. module: base #. module: base
#: sql_constraint:ir.ui.view_sc:0 #: sql_constraint:ir.ui.view_sc:0
@ -2555,7 +2576,7 @@ msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup #: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
msgid "Signup with OAuth2 Authentication" msgid "Signup with OAuth2 Authentication"
msgstr "" msgstr "OAuth2 인증으로 등록"
#. module: base #. module: base
#: selection:ir.model,state:0 #: selection:ir.model,state:0
@ -2582,7 +2603,7 @@ msgstr "그리스"
#. module: base #. module: base
#: field:res.company,custom_footer:0 #: field:res.company,custom_footer:0
msgid "Custom Footer" msgid "Custom Footer"
msgstr "" msgstr "바닥글 설정"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm #: model:ir.module.module,shortdesc:base.module_sale_crm
@ -2633,7 +2654,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.ui.menu,name:base.menu_invoiced #: model:ir.ui.menu,name:base.menu_invoiced
msgid "Invoicing" msgid "Invoicing"
msgstr "" msgstr "송장 발행"
#. module: base #. module: base
#: field:ir.ui.view_sc,name:0 #: field:ir.ui.view_sc,name:0
@ -2721,7 +2742,7 @@ msgstr ""
#: field:ir.translation,res_id:0 #: field:ir.translation,res_id:0
#: field:ir.values,res_id:0 #: field:ir.values,res_id:0
msgid "Record ID" msgid "Record ID"
msgstr "" msgstr "레코드 ID"
#. module: base #. module: base
#: view:ir.filters:0 #: view:ir.filters:0
@ -2819,13 +2840,13 @@ msgstr ""
#: model:res.groups,name:base.group_sale_manager #: model:res.groups,name:base.group_sale_manager
#: model:res.groups,name:base.group_tool_manager #: model:res.groups,name:base.group_tool_manager
msgid "Manager" msgid "Manager"
msgstr "" msgstr "관리자"
#. module: base #. module: base
#: code:addons/base/ir/ir_model.py:719 #: code:addons/base/ir/ir_model.py:719
#, python-format #, python-format
msgid "Sorry, you are not allowed to access this document." msgid "Sorry, you are not allowed to access this document."
msgstr "" msgstr "죄송합니다. 이 문서에 접근이 거부되었습니다."
#. module: base #. module: base
#: model:res.country,name:base.py #: model:res.country,name:base.py
@ -2835,7 +2856,7 @@ msgstr "파라과이"
#. module: base #. module: base
#: model:res.country,name:base.fj #: model:res.country,name:base.fj
msgid "Fiji" msgid "Fiji"
msgstr "" msgstr "피지"
#. module: base #. module: base
#: view:ir.actions.report.xml:0 #: view:ir.actions.report.xml:0
@ -2911,7 +2932,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:146 #: code:addons/base/ir/ir_fields.py:146
#, python-format #, python-format
msgid "yes" msgid "yes"
msgstr "" msgstr ""
#. module: base #. module: base
#: field:ir.model.fields,serialization_field_id:0 #: field:ir.model.fields,serialization_field_id:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:47+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0.0-rc1\n" "Project-Id-Version: OpenERP Server 6.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2012-12-18 05:45+0000\n" "PO-Revision-Date: 2013-02-07 04:04+0000\n"
"Last-Translator: gobi <Unknown>\n" "Last-Translator: Tenuun Khangaitan <tenuun.khangaitan@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-08 04:35+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16482)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -5396,7 +5396,7 @@ msgstr ""
#: field:ir.model.relation,model:0 #: field:ir.model.relation,model:0
#: view:ir.values:0 #: view:ir.values:0
msgid "Model" msgid "Model"
msgstr "Загвар" msgstr "Модел"
#. module: base #. module: base
#: view:base.language.install:0 #: view:base.language.install:0
@ -7983,7 +7983,7 @@ msgstr ""
#. module: base #. module: base
#: selection:res.currency,position:0 #: selection:res.currency,position:0
msgid "After Amount" msgid "After Amount"
msgstr "Дараах Дүн" msgstr "Дүнгийн ард"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
@ -10680,7 +10680,7 @@ msgstr "дууссан"
#. module: base #. module: base
#: view:ir.actions.act_window:0 #: view:ir.actions.act_window:0
msgid "General Settings" msgid "General Settings"
msgstr "Ерөнхий тохируулга" msgstr "Ерөнхий Тохиргоо"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_in #: model:ir.module.module,description:base.module_l10n_in
@ -12386,7 +12386,7 @@ msgstr ""
#. module: base #. module: base
#: field:ir.attachment,res_model:0 #: field:ir.attachment,res_model:0
msgid "Resource Model" msgid "Resource Model"
msgstr "" msgstr "Нөөцийн модел"
#. module: base #. module: base
#: code:addons/custom.py:555 #: code:addons/custom.py:555
@ -15179,7 +15179,7 @@ msgstr "Үндсэн компаниуд"
#. module: base #. module: base
#: field:ir.translation,src:0 #: field:ir.translation,src:0
msgid "Source" msgid "Source"
msgstr "Эх" msgstr "Эх үүсвэр"
#. module: base #. module: base
#: field:ir.model.constraint,date_init:0 #: 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.actions.act_window,name:base.action_partner_title_partner
#: model:ir.ui.menu,name:base.menu_partner_title_partner #: model:ir.ui.menu,name:base.menu_partner_title_partner
msgid "Titles" msgid "Titles"
msgstr "" msgstr "Гарчигууд"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_anonymization #: model:ir.module.module,description:base.module_anonymization
@ -15824,7 +15824,7 @@ msgstr ""
#. module: base #. module: base
#: field:ir.actions.act_window,src_model:0 #: field:ir.actions.act_window,src_model:0
msgid "Source Model" msgid "Source Model"
msgstr "" msgstr "Эх модел"
#. module: base #. module: base
#: view:ir.sequence:0 #: view:ir.sequence:0
@ -16879,7 +16879,7 @@ msgstr "Харилцагчид: "
#. module: base #. module: base
#: view:res.partner:0 #: view:res.partner:0
msgid "Is a Company?" msgid "Is a Company?"
msgstr "" msgstr "Компаний нэр"
#. module: base #. module: base
#: code:addons/base/res/res_company.py:173 #: code:addons/base/res/res_company.py:173

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:17+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -4031,7 +4031,7 @@ msgstr ""
#. module: base #. module: base
#: model:res.country,name:base.sk #: model:res.country,name:base.sk
msgid "Slovakia" msgid "Slovakia"
msgstr "Slovakia" msgstr "Słowacja"
#. module: base #. module: base
#: model:res.country,name:base.nr #: model:res.country,name:base.nr
@ -5474,7 +5474,7 @@ msgstr "Historia"
#. module: base #. module: base
#: model:res.country,name:base.im #: model:res.country,name:base.im
msgid "Isle of Man" msgid "Isle of Man"
msgstr "Isle of Man" msgstr "Wyspa Man"
#. module: base #. module: base
#: help:ir.actions.client,res_model:0 #: help:ir.actions.client,res_model:0
@ -7353,7 +7353,7 @@ msgstr "Kontakty"
#. module: base #. module: base
#: model:res.country,name:base.fo #: model:res.country,name:base.fo
msgid "Faroe Islands" msgid "Faroe Islands"
msgstr "Faroe Islands" msgstr "Wyspy Owcze"
#. module: base #. module: base
#: field:ir.mail_server,smtp_encryption:0 #: field:ir.mail_server,smtp_encryption:0
@ -11307,7 +11307,7 @@ msgstr "Użytkownik"
#. module: base #. module: base
#: model:res.country,name:base.pr #: model:res.country,name:base.pr
msgid "Puerto Rico" msgid "Puerto Rico"
msgstr "Puerto Rico" msgstr "Portoryko"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests_demo #: model:ir.module.module,shortdesc:base.module_web_tests_demo

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:48+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -11110,7 +11110,7 @@ msgstr "Email"
#. module: base #. module: base
#: model:res.partner.category,name:base.res_partner_category_12 #: model:res.partner.category,name:base.res_partner_category_12
msgid "Office Supplies" msgid "Office Supplies"
msgstr "" msgstr "Materiais de Escritórios"
#. module: base #. module: base
#: field:ir.attachment,res_model:0 #: field:ir.attachment,res_model:0

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -489,7 +489,7 @@ msgstr "Obiect Sursa"
#. module: base #. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal #: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s" msgid "%(bank_name)s: %(acc_number)s"
msgstr "%(nume_banca)s: %(numar_cont)s" msgstr "%(bank_name)s: %(acc_number)s"
#. module: base #. module: base
#: view:ir.actions.todo:0 #: view:ir.actions.todo:0
@ -8921,7 +8921,7 @@ msgstr "Tip Camp"
#. module: base #. module: base
#: field:res.country.state,code:0 #: field:res.country.state,code:0
msgid "State Code" msgid "State Code"
msgstr "Cod Stat" msgstr "Cod judet"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_multilang #: model:ir.module.module,shortdesc:base.module_l10n_multilang
@ -13642,7 +13642,7 @@ msgstr "Campanii de Marketing"
#. module: base #. module: base
#: field:res.country.state,name:0 #: field:res.country.state,name:0
msgid "State Name" msgid "State Name"
msgstr "Numele starii" msgstr "Nume judet"
#. module: base #. module: base
#: help:ir.attachment,type:0 #: help:ir.attachment,type:0
@ -14386,7 +14386,7 @@ msgstr "Declanseaza Semnalul"
#: model:ir.actions.act_window,name:base.action_country_state #: model:ir.actions.act_window,name:base.action_country_state
#: model:ir.ui.menu,name:base.menu_country_state_partner #: model:ir.ui.menu,name:base.menu_country_state_partner
msgid "Fed. States" msgid "Fed. States"
msgstr "State federale" msgstr "Judete"
#. module: base #. module: base
#: view:ir.model:0 #: view:ir.model:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-25 05:24+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
"X-Generator: Launchpad (build 16445)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -3969,7 +3969,7 @@ msgstr "Отчетность"
#: field:res.partner,title:0 #: field:res.partner,title:0
#: field:res.partner.title,name:0 #: field:res.partner.title,name:0
msgid "Title" msgid "Title"
msgstr "Название" msgstr "Обращение"
#. module: base #. module: base
#: help:ir.property,res_id:0 #: help:ir.property,res_id:0
@ -8275,8 +8275,7 @@ msgid ""
" </p>\n" " </p>\n"
" " " "
msgstr "" msgstr ""
"<p class=\"oe_view_nocontent_create\">\n" "Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
" Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
" </p><p>\n" " </p><p>\n"
" OpenERP помогает вам легко отслеживать всю активность " " OpenERP помогает вам легко отслеживать всю активность "
"связанную с\n" "связанную с\n"
@ -9746,7 +9745,7 @@ msgstr "сделано"
#. module: base #. module: base
#: view:ir.actions.act_window:0 #: view:ir.actions.act_window:0
msgid "General Settings" msgid "General Settings"
msgstr "Основные параметры" msgstr "Общие настройки"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_l10n_in #: model:ir.module.module,description:base.module_l10n_in
@ -10335,6 +10334,14 @@ msgid ""
" </p>\n" " </p>\n"
" " " "
msgstr "" msgstr ""
"Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
" </p><p>\n"
" OpenERP помогает вам легко отслеживать всю активность "
"связанную с\n"
" поставщиком: общение, историю закупок, \n"
" документы и т.д.\n"
" </p>\n"
" "
#. module: base #. module: base
#: model:res.country,name:base.lr #: model:res.country,name:base.lr
@ -15953,6 +15960,14 @@ msgid ""
" </p>\n" " </p>\n"
" " " "
msgstr "" msgstr ""
"Нажмите чтобы добавить контакт в вашу адресную книгу.\n"
" </p><p>\n"
" OpenERP помогает вам легко отслеживать всю активность "
"связанную с\n"
" клиентом: общение, историю деловых возможностей, \n"
" документы и т.д.\n"
" </p>\n"
" "
#. module: base #. module: base
#: model:res.partner.category,name:base.res_partner_category_2 #: model:res.partner.category,name:base.res_partner_category_2

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:12+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:43+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:18+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:49+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:22+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:19+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:50+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:21+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:52+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-01-19 05:20+0000\n" "X-Launchpad-Export-Date: 2013-02-07 04:51+0000\n"
"X-Generator: Launchpad (build 16430)\n" "X-Generator: Launchpad (build 16477)\n"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,7 @@ import time
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp import netsvc, tools from openerp import netsvc, tools
from openerp.osv import fields, osv from openerp.osv import fields, osv
import openerp.report.interface
from openerp.report.report_sxw import report_sxw, report_rml from openerp.report.report_sxw import report_sxw, report_rml
from openerp.tools.config import config from openerp.tools.config import config
from openerp.tools.safe_eval import safe_eval as eval from openerp.tools.safe_eval import safe_eval as eval
@ -93,9 +94,9 @@ class report_xml(osv.osv):
opj = os.path.join opj = os.path.join
cr.execute("SELECT * FROM ir_act_report_xml WHERE auto=%s ORDER BY id", (True,)) cr.execute("SELECT * FROM ir_act_report_xml WHERE auto=%s ORDER BY id", (True,))
result = cr.dictfetchall() result = cr.dictfetchall()
svcs = netsvc.Service._services reports = openerp.report.interface.report_int._reports
for r in result: for r in result:
if svcs.has_key('report.'+r['report_name']): if reports.has_key('report.'+r['report_name']):
continue continue
if r['report_rml'] or r['report_rml_content_data']: if r['report_rml'] or r['report_rml_content_data']:
report_sxw('report.'+r['report_name'], r['model'], report_sxw('report.'+r['report_name'], r['model'],

View File

@ -21,12 +21,15 @@
import hashlib import hashlib
import itertools import itertools
import logging
import os import os
import re import re
from openerp import tools from openerp import tools
from openerp.osv import fields,osv from openerp.osv import fields,osv
_logger = logging.getLogger(__name__)
class ir_attachment(osv.osv): class ir_attachment(osv.osv):
"""Attachments are used to link binary files or url to any openerp document. """Attachments are used to link binary files or url to any openerp document.

View File

@ -19,6 +19,7 @@
<field name="name"/> <field name="name"/>
<field name="user_id"/> <field name="user_id"/>
<field name="model_id"/> <field name="model_id"/>
<field name="is_default"/>
</group> </group>
<group> <group>
<field name="domain"/> <field name="domain"/>
@ -35,6 +36,7 @@
<field name="name"/> <field name="name"/>
<field name="model_id"/> <field name="model_id"/>
<field name="user_id"/> <field name="user_id"/>
<field name="is_default"/>
<field name="domain" groups="base.group_no_one"/> <field name="domain" groups="base.group_no_one"/>
<field name="context" groups="base.group_no_one"/> <field name="context" groups="base.group_no_one"/>
</tree> </tree>
@ -45,12 +47,14 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Filters"> <search string="Filters">
<field name="name" string="Filter Name"/> <field name="name" string="Filter Name"/>
<filter string="Personal" domain="[('user_id','!=',False)]" help="Filters visible only for one user"/> <filter string="User" domain="[('user_id','!=',False)]" name="user" help="Filters visible only for one user"/>
<filter string="Shared" domain="[('user_id','=',False)]" help="Filters shared with all users"/> <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/> <separator/>
<filter icon="terp-personal" domain="[('user_id','in',(uid, False))]" <group expand="0" string="Group By...">
name="my_filters" <filter string="User" domain="[]" context="{'group_by':'user_id'}"/>
string="My Filters"/> <filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
</group>
<field name="model_id"/> <field name="model_id"/>
<field name="user_id"/> <field name="user_id"/>
</search> </search>

View File

@ -1062,9 +1062,13 @@ class ir_model_data(osv.osv):
continue continue
_logger.info('Deleting %s@%s', res_id, model) _logger.info('Deleting %s@%s', res_id, model)
try: try:
cr.execute('SAVEPOINT record_unlink_save')
self.pool.get(model).unlink(cr, uid, [res_id], context=context) self.pool.get(model).unlink(cr, uid, [res_id], context=context)
except Exception: except Exception:
_logger.info('Unable to delete %s@%s', res_id, model, exc_info=True) _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 # 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 unlink_if_refcount((model, res_id) for model, res_id in to_unlink

View File

@ -28,7 +28,7 @@ class osv_memory_autovacuum(openerp.osv.osv.osv_memory):
def power_on(self, cr, uid, context=None): def power_on(self, cr, uid, context=None):
for model in self.pool.models.values(): for model in self.pool.models.values():
if model.is_transient(): if model.is_transient():
model._transient_vacuum(cr, uid) model._transient_vacuum(cr, uid, force=True)
return True return True

View File

@ -2,7 +2,7 @@
############################################################################## ##############################################################################
# #
# OpenERP, Open Source Management Solution # 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # 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), 'website': fields.char("Website", size=256, readonly=True),
# attention: Incorrect field names !! # attention: Incorrect field names !!
# installed_version refer the latest version (the one on disk) # installed_version refers the latest version (the one on disk)
# latest_version refer the installed version (the one in database) # latest_version refers the installed version (the one in database)
# published_version refer the version available on the repository # published_version refers the version available on the repository
'installed_version': fields.function(_get_latest_version, string='Latest Version', type='char'), 'installed_version': fields.function(_get_latest_version, string='Latest Version', type='char'),
'latest_version': fields.char('Installed Version', size=64, readonly=True), 'latest_version': fields.char('Installed Version', size=64, readonly=True),
'published_version': fields.char('Published 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")) raise orm.except_orm(_('Error'), _("The `base` module cannot be uninstalled"))
dep_ids = self.downstream_dependencies(cr, uid, ids, context=context) dep_ids = self.downstream_dependencies(cr, uid, ids, context=context)
self.write(cr, uid, ids + dep_ids, {'state': 'to remove'}) 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')) return dict(ACTION_DICT, name=_('Uninstall'))
def button_uninstall_cancel(self, cr, uid, ids, context=None): 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): def install_from_urls(self, cr, uid, urls, context=None):
OPENERP = 'openerp' OPENERP = 'openerp'
tmp = tempfile.mkdtemp() tmp = tempfile.mkdtemp()
_logger.debug('Install from url: %r', urls)
try: try:
# 1. Download & unzip missing modules
for module_name, url in urls.items(): for module_name, url in urls.items():
if not url: if not url:
continue # nothing to download, local version is already the last one continue # nothing to download, local version is already the last one
try: try:
_logger.info('Downloading module `%s` from OpenERP Apps', module_name)
content = urllib2.urlopen(url).read() content = urllib2.urlopen(url).read()
except Exception, e: except Exception:
_logger.exception('ggr') _logger.exception('Failed to fetch module %s', module_name)
raise osv.except_osv('grrr', e) raise osv.except_osv(_('Module not found'),
_('The `%s` module appears to be unavailable at the moment, please try again later.') % module_name)
else: else:
zipfile.ZipFile(StringIO(content)).extractall(tmp) zipfile.ZipFile(StringIO(content)).extractall(tmp)
assert os.path.isdir(os.path.join(tmp, module_name)) assert os.path.isdir(os.path.join(tmp, module_name))
for module_name in urls: # 2a. Copy/Replace module source in addons path
if module_name == OPENERP: for module_name, url in urls.items():
continue # special case. handled below 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) module_path = modules.get_module_path(module_name, downloaded=True, display_warning=False)
bck = backup(module_path, 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) shutil.move(os.path.join(tmp, module_name), module_path)
if bck: if bck:
shutil.rmtree(bck) shutil.rmtree(bck)
# 2b. Copy/Replace server+base module source if downloaded
if urls.get(OPENERP, None): 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 # extract path is not the same
base_path = os.path.dirname(modules.get_module_path('base')) 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) # 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 # then replace the server by the new "base" module
server_dir = openerp.tools.config['root_path'] # XXX or dirname() server_dir = openerp.tools.config['root_path'] # XXX or dirname()
bck = backup(server_dir) bck = backup(server_dir)
_logger.info('Copy downloaded module `openerp` to `%s`', server_dir)
shutil.move(os.path.join(tmp, OPENERP), server_dir) shutil.move(os.path.join(tmp, OPENERP), server_dir)
#if bck: #if bck:
# shutil.rmtree(bck) # shutil.rmtree(bck)
self.update_list(cr, uid, context=context) self.update_list(cr, uid, context=context)
ids = self.search(cr, uid, [('name', 'in', urls.keys())], context=context) with_urls = [m for m, u in urls.items() if u]
if self.search_count(cr, uid, [('id', 'in', ids), ('state', '=', 'installed')], context=context): downloaded_ids = self.search(cr, uid, [('name', 'in', with_urls)], context=context)
# if any to update 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() cr.commit()
openerp.service.restart_server() openerp.service.restart_server()
return { return {
@ -709,7 +723,7 @@ class module(osv.osv):
'tag': 'home', 'tag': 'home',
'params': {'wait': True}, 'params': {'wait': True},
} }
return self.button_immediate_install(cr, uid, ids, context=context) return post_install_action
finally: finally:
shutil.rmtree(tmp) shutil.rmtree(tmp)

View File

@ -171,23 +171,18 @@
</field> </field>
</record> </record>
<record id="open_module_tree" model="ir.actions.act_window"> <record id="open_module_tree" model="ir.actions.act_window">
<!-- uncomment on released
<field name="name">Installed Modules</field> <field name="name">Installed Modules</field>
-->
<field name="name">Modules</field>
<field name="res_model">ir.module.module</field> <field name="res_model">ir.module.module</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field> <field name="view_mode">kanban,tree,form</field>
<!-- uncomment on released
<field name="context">{'search_default_installed':1}</field> <field name="context">{'search_default_installed':1}</field>
-->
<field name="search_view_id" ref="view_module_filter"/> <field name="search_view_id" ref="view_module_filter"/>
<field name="help" type="html"> <field name="help" type="html">
<p><b>No module found!</b></p> <p><b>No module found!</b></p>
<p>You should try others search criteria.</p> <p>You should try others search criteria.</p>
</field> </field>
</record> </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 --> <!-- Apps modules -->
@ -195,20 +190,14 @@
<field name="name">Apps</field> <field name="name">Apps</field>
<field name="tag">apps</field> <field name="tag">apps</field>
</record> </record>
<!-- uncomment on released <menuitem id="module_mi" parent="base.menu_management" sequence="10" action="modules_act_cl"/>
<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"/>
<record model="ir.actions.client" id="modules_updates_act_cl"> <record model="ir.actions.client" id="modules_updates_act_cl">
<field name="name">Updates</field> <field name="name">Updates</field>
<field name="tag">apps.updates</field> <field name="tag">apps.updates</field>
<field name="params">{}</field> <field name="params">{}</field>
</record> </record>
<!-- uncomment on released <menuitem id="menu_module_updates" parent="base.menu_management" sequence="20" action="modules_updates_act_cl"/>
<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"/>
</data> </data>
</openerp> </openerp>

View File

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

View File

@ -21,7 +21,8 @@
import time 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 from openerp.tools.misc import attrgetter
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
@ -111,7 +112,7 @@ class ir_property(osv.osv):
raise osv.except_osv('Error', 'Invalid type') raise osv.except_osv('Error', 'Invalid type')
if field == 'value_reference': if field == 'value_reference':
if isinstance(value, osv.orm.browse_record): if isinstance(value, browse_record):
value = '%s,%d' % (value._name, value.id) value = '%s,%d' % (value._name, value.id)
elif isinstance(value, (int, long)): elif isinstance(value, (int, long)):
field_id = values.get('fields_id') field_id = values.get('fields_id')

View File

@ -125,6 +125,7 @@
<field name="model">res.partner.bank</field> <field name="model">res.partner.bank</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Bank Accounts"> <tree string="Bank Accounts">
<field name="state" invisible="1"/>
<field name="sequence" invisible="1"/> <field name="sequence" invisible="1"/>
<field name="acc_number"/> <field name="acc_number"/>
<field name="bank_name"/> <field name="bank_name"/>

View File

@ -318,7 +318,7 @@ class res_company(osv.osv):
<lines>1.3cm %s 20cm %s</lines> <lines>1.3cm %s 20cm %s</lines>
<drawRightString x="20cm" y="%s">[[ company.rml_header1 ]]</drawRightString> <drawRightString x="20cm" y="%s">[[ company.rml_header1 ]]</drawRightString>
<drawString x="1.3cm" y="%s">[[ company.partner_id.name ]]</drawString> <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> <para style="main_header">[[ display_address(company.partner_id) or '' ]]</para>
</place> </place>
<drawString x="1.3cm" y="%s">Phone:</drawString> <drawString x="1.3cm" y="%s">Phone:</drawString>
@ -344,8 +344,8 @@ class res_company(osv.osv):
</pageTemplate> </pageTemplate>
</header>""" </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_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.7cm', '24.1cm', '24.3cm', '24.3cm', '23.9cm', '23.9cm', '23.8cm', '23.8cm') _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): def onchange_paper_format(self, cr, uid, ids, paper_format, context=None):
if paper_format == 'us_letter': if paper_format == 'us_letter':

View File

@ -21,6 +21,7 @@
import logging import logging
from operator import attrgetter from operator import attrgetter
import openerp
from openerp import pooler from openerp import pooler
from openerp.osv import osv, fields from openerp.osv import osv, fields
from openerp.tools import ustr from openerp.tools import ustr
@ -358,7 +359,8 @@ class res_config_installer(osv.osv_memory):
cr, uid, cr, uid,
modules.search(cr, uid, [('name','in',to_install)]), modules.search(cr, uid, [('name','in',to_install)]),
'to install', ['uninstalled'], context=context) '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) new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)
res_config_installer() res_config_installer()

View File

@ -71,7 +71,7 @@ addresses belonging to this country.\n\nYou can use the python-style string pate
name_search = location_name_search name_search = location_name_search
def create(self, cursor, user, vals, context=None): def create(self, cursor, user, vals, context=None):
if 'code' in vals: if vals.get('code'):
vals['code'] = vals['code'].upper() vals['code'] = vals['code'].upper()
return super(Country, self).create(cursor, user, vals, return super(Country, self).create(cursor, user, vals,
context=context) context=context)

View File

@ -228,45 +228,6 @@ class lang(osv.osv):
lang() 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): def split(l, counts):
""" """
@ -317,52 +278,4 @@ def intersperse(string, counts, separator=''):
res = separator.join(map(reverse, reverse(splits))) res = separator.join(map(reverse, reverse(splits)))
return left + res + right, len(splits) > 0 and len(splits) -1 or 0 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: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -316,6 +316,7 @@
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" /> <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
<filter string="Company" context="{'group_by': 'parent_id'}"/> <filter string="Company" context="{'group_by': 'parent_id'}"/>
<filter string="Country" context="{'group_by': 'country_id'}"/>
</group> </group>
</search> </search>
</field> </field>

View File

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

View File

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

View File

@ -5,7 +5,7 @@
1. Try a few common expressions to verify they work with safe_eval 1. Try a few common expressions to verify they work with safe_eval
- -
!python {model: ir.model}: | !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)) expected = (1, {"a": 9 * 2}, (True, False, None))
actual = safe_eval('(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" 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) 5. Try forbidden expressions in safe_eval to verify they are not allowed (open)
- -
!python {model: ir.model}: | !python {model: ir.model}: |
from tools.safe_eval import safe_eval from openerp.tools.safe_eval import safe_eval
from tools.misc import mute_logger from openerp.tools.misc import mute_logger
try: try:
with mute_logger('openerp.tools.safe_eval'): with mute_logger('openerp.tools.safe_eval'):
safe_eval('open("/etc/passwd","r")') safe_eval('open("/etc/passwd","r")')
@ -146,7 +146,7 @@
"Float precision tests: verify that float rounding methods are working correctly via res.currency" "Float precision tests: verify that float rounding methods are working correctly via res.currency"
- -
!python {model: res.currency}: | !python {model: res.currency}: |
from tools import float_repr from openerp.tools import float_repr
from math import log10 from math import log10
currency = self.browse(cr, uid, ref('base.EUR')) currency = self.browse(cr, uid, ref('base.EUR'))
def try_round(amount, expected, self=self, cr=cr, currency=currency, float_repr=float_repr, 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" "Float precision tests: verify that float rounding methods are working correctly via tools"
- -
!python {model: res.currency}: | !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): 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), result = float_repr(float_round(amount, precision_digits=precision_digits),
precision_digits=precision_digits) precision_digits=precision_digits)
@ -271,7 +271,7 @@
!python {model: res.currency}: | !python {model: res.currency}: |
currency = self.browse(cr, uid, ref('base.EUR')) currency = self.browse(cr, uid, ref('base.EUR'))
res_currency_rate = self.pool.get('res.currency.rate') 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, def try_roundtrip(value, expected, self=self, cr=cr, currency=currency,
res_currency_rate=res_currency_rate): res_currency_rate=res_currency_rate):
rate_id = res_currency_rate.create(cr, 1, {'name':'2000-01-01', 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" "Float precision tests: verify that invalid parameters are forbidden"
- -
!python {model: res.currency}: | !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: try:
float_is_zero(0.01, precision_digits=3, precision_rounding=0.01) float_is_zero(0.01, precision_digits=3, precision_rounding=0.01)
except AssertionError: except AssertionError:

View File

@ -12,7 +12,7 @@
I will prepare the context I will prepare the context
- -
!python {model: res.users }: | !python {model: res.users }: |
from tools import config from openerp.tools import config
host = config.get_misc('httpd', 'interface') host = config.get_misc('httpd', 'interface')
port = config.get_misc('httpd', 'port', 8069) port = config.get_misc('httpd', 'port', 8069)
if not host: if not host:
@ -70,4 +70,4 @@
raise AssertionError("User should not be enabled!") raise AssertionError("User should not be enabled!")
except Fault, e: except Fault, e:
if e.faultCode != 'AccessDenied': if e.faultCode != 'AccessDenied':
raise raise

View File

@ -3,6 +3,7 @@ import test_expression
import test_ir_attachment import test_ir_attachment
import test_ir_values import test_ir_values
import test_menu import test_menu
import test_res_lang
import test_search import test_search
checks = [ checks = [
@ -11,5 +12,6 @@ checks = [
test_ir_attachment, test_ir_attachment,
test_ir_values, test_ir_values,
test_menu, test_menu,
test_res_lang,
test_search, test_search,
] ]

View File

@ -40,4 +40,4 @@ class test_base(common.TransactionCase):
if __name__ == '__main__': if __name__ == '__main__':
unittest2.main() unittest2.main()

View File

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

View File

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

View File

@ -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 # without the 'openerp.' prefix. E.g. openerp.osv.osv and osv.osv refer to the
# same module. # same module.
# Introduced around 2011.02. # 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: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

37
openerp/http.py Normal file
View File

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

View File

@ -246,17 +246,10 @@
</rng:define> </rng:define>
<rng:start> <rng:start>
<rng:choice> <rng:element name="openerp">
<rng:element name="openerp"> <rng:oneOrMore>
<rng:oneOrMore> <rng:ref name="data" />
<rng:ref name="data" /> </rng:oneOrMore>
</rng:oneOrMore> </rng:element>
</rng:element>
<rng:element name="terp">
<rng:oneOrMore>
<rng:ref name="data" />
</rng:oneOrMore>
</rng:element>
</rng:choice>
</rng:start> </rng:start>
</rng:grammar> </rng:grammar>

View File

@ -46,7 +46,7 @@ class Logger(object):
_logger.warning( _logger.warning(
"notifyChannel API shouldn't be used anymore, please use " "notifyChannel API shouldn't be used anymore, please use "
"the standard `logging` module instead.") "the standard `logging` module instead.")
from service.web_services import common from service import common
log = logging.getLogger(__name__ + '.deprecated.' + ustr(name)) log = logging.getLogger(__name__ + '.deprecated.' + ustr(name))
@ -63,7 +63,7 @@ class Logger(object):
try: try:
msg = ustr(msg).strip() msg = ustr(msg).strip()
if level in (LOG_ERROR, LOG_CRITICAL): # and tools.config.get_misc('debug','env_info',False): 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') result = msg.split('\n')
except UnicodeDecodeError: except UnicodeDecodeError:

Some files were not shown because too many files have changed in this diff Show More