[MERGE] merged trunk.

bzr revid: vmt@openerp.com-20130322135152-1hdlptwj1qqqfz4z
This commit is contained in:
Vo Minh Thu 2013-03-22 14:51:52 +01:00
commit 1683fc7abd
98 changed files with 6614 additions and 2609 deletions

View File

@ -7,7 +7,7 @@ graft win32
include README
include LICENSE
include MANIFEST.in
include gunicorn.conf.py
include openerp-wsgi.py
include openerp-server
include setup*
global-exclude *pyc *~ # Exclude possible garbage from previous graft.

4
debian/control vendored
View File

@ -52,6 +52,6 @@ Description: OpenERP Enterprise Resource Management
features are accounting (analytic and financial), stock management, sales and
purchases management, tasks automation, marketing campaigns, help desk, POS,
etc. Technical features include a distributed server, flexible workflows, an
object database, a dynamic GUI, customizable reports, and NET-RPC and XML-RPC
interfaces.
object database, a dynamic GUI, customizable reports, and an XML-RPC
interface.

View File

@ -6,10 +6,11 @@ case "${1}" in
remove)
deluser --quiet --system "openerp" || true
delgroup --quiet --system --only-if-empty "openerp" || true
find /var/lib/openerp -path '/var/lib/openerp/*' ! -path '/var/lib/openerp/filestore*' -delete
;;
purge)
rm -rf /var/lib/openerp-server
rm -rf /var/lib/openerp
;;
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)

View File

@ -103,9 +103,6 @@ General Options
--logfile=LOGFILE file where the server log will be stored
-n INTERFACE, --interface=INTERFACE specify the TCP IP address
-p PORT, --port=PORT specify the TCP port
--net_interface=NETINTERFACE specify the TCP IP address for netrpc
--net_port=NETPORT specify the TCP port for netrpc
--no-netrpc disable netrpc
--no-xmlrpc disable xmlrpc
-i INIT, --init=INIT init a module (use "all" for all modules)
--without-demo=WITHOUT_DEMO load demo data for a module (use "all" for all modules)

View File

@ -9,6 +9,7 @@ Changelog
- Almost removed ``LocalService()``. For reports,
``openerp.report.render_report()`` can be used. For workflows, see
:ref:`orm-workflows`.
- Removed support for the ``NET-RPC`` protocol.
- Added the :ref:`Long polling <longpolling-worker>` worker type.
- Added :ref:`orm-workflows` to the ORM.
- Added :ref:`routing-decorators` to the RPC and WSGI stack.

View File

@ -80,17 +80,6 @@ specify the certificate file for the SSL connection
\fB\-\-pkey\-file\fR=\fISECURE_PKEY_FILE\fR
specify the private key file for the SSL connection
.IP
NET\-RPC Configuration:
.TP
\fB\-\-netrpc\-interface\fR=\fINETRPC_INTERFACE\fR
specify the TCP IP address for the NETRPC protocol
.TP
\fB\-\-netrpc\-port\fR=\fINETRPC_PORT\fR
specify the TCP port for the NETRPC protocol
.TP
\fB\-\-no\-netrpc\fR
disable the NETRPC protocol
.IP
Static HTTP service:
.TP
\fB\-\-static\-http\-enable\fR

View File

@ -13,6 +13,6 @@ Description: OpenERP is a complete ERP and CRM. The main features are accounting
and financial), stock management, sales and purchases management, tasks
automation, marketing campaigns, help desk, POS, etc. Technical features include
a distributed server, flexible workflows, an object database, a dynamic GUI,
customizable reports, and NET-RPC and XML-RPC interfaces.
customizable reports, and an XML-RPC interface.
Keywords: ERP, Accounting, Stock, CRM, Enterprise, Logistics, Management, Sales, Purchases
Platform: Linux, Win32

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:37+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -24,6 +24,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
"\n"
"Модул за проверка на писането и печата.\n"
"================================================\n"
" "
#. module: base
#: model:res.country,name:base.sh
@ -60,6 +64,7 @@ msgstr "Преглед на архитектурата"
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
msgstr ""
"Запитване за ..., Поръчки за продажба, доставка и контрол на фактурирането"
#. module: base
#: selection:ir.sequence,implementation:0
@ -88,18 +93,20 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
msgstr ""
msgstr "Сензорен интерфейс, чрез докосване за магазини"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
msgstr ""
msgstr "Индийски ТРЗ"
#. module: base
#: help:ir.cron,model:0
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
"Името на модела към метода, който се нарича или открива, например "
"\"Res.partner\"."
#. module: base
#: view:ir.module.module:0
@ -121,11 +128,22 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
"\n"
"Модулът добавя - производител и атрибутите във формуляра на на продукта.\n"
"====================================================================\n"
"\n"
"Можете да дефинирате следната информация за продукт:\n"
"-----------------------------------------------\n"
" * Производител\n"
" * Името на продукта от производителя\n"
" * Кода на продукта от производителя\n"
" * Атрибути на продукта\n"
" "
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "Допълнителни аргументи"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@ -134,11 +152,14 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
"\n"
"Модулът добавя Google потребител като вътрешен.\n"
"========================================\n"
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
msgstr ""
msgstr "Маркирайте тази отметка, ако това лице е служител."
#. module: base
#: help:ir.model.fields,domain:0
@ -147,6 +168,9 @@ msgid ""
"specified as a Python expression defining a list of triplets. For example: "
"[('color','=','red')]"
msgstr ""
"Опцията за областта ограничаваща възможните стойности за свързаните полета, "
"посочени като Python изрази, определени като списък на тризнаци. Например: "
"[(\"цвят\", \"=\", \"червен\")]"
#. module: base
#: field:res.partner,ref:0
@ -156,7 +180,7 @@ msgstr "Означение"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
msgstr ""
msgstr "Белгия - структурирано съобщение"
#. module: base
#: field:ir.actions.act_window,target:0
@ -166,12 +190,12 @@ msgstr "Целеви прозорец"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
msgstr ""
msgstr "Пътя до файла със справки"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr ""
msgstr "Анализ на продажбите от доставки"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_invoice
@ -187,6 +211,16 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
"\n"
"Генериране на вашите фактури на база разходи, Работни графици.\n"
"========================================================\n"
"\n"
"Модул за генериране на фактури, базирани на разходи (човешки ресурси, "
"разходи ...).\n"
"\n"
"Можете да дефинирате ценови листи в аналитичните сметки,както и някои "
"теоретични приходни\n"
"справки."
#. module: base
#: code:addons/base/ir/ir_sequence.py:104
@ -203,6 +237,8 @@ msgid ""
"Properties of base fields cannot be altered in this manner! Please modify "
"them through Python code, preferably through a custom addon!"
msgstr ""
"Свойства на базови полета, които не могат да се променят! Може да ги "
"промените, чрез Python код, най добре чрез добавка!"
#. module: base
#: code:addons/osv.py:132
@ -219,7 +255,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:368
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr ""
msgstr "Промяна частично на полето \"%s\" не е възможно"
#. module: base
#: model:res.country,name:base.sz
@ -235,12 +271,12 @@ msgstr "създаден."
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
msgstr ""
msgstr "XSL Път"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
msgstr ""
msgstr "Турция - Сметкоплан"
#. module: base
#: field:ir.sequence,number_increment:0
@ -256,12 +292,12 @@ msgstr "Структура на компанията"
#. module: base
#: selection:base.language.install,lang:0
msgid "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
msgstr ""
msgstr "Инуктитут / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "Множество валути"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -14425,7 +14461,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_purchase
msgid "Purchase Orders, Receptions, Supplier Invoices"
msgstr ""
msgstr "Заявка за доставка, Пристигания, Фактури от доставчик"
#. module: base
#: model:ir.module.module,description:base.module_hr_payroll

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:37+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -59,12 +59,12 @@ msgstr "Codi vista"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
msgstr ""
msgstr "Cotització, ordres de venda, lliurament i Control de facturació"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "No gap"
msgstr ""
msgstr "No hi ha espai"
#. module: base
#: selection:base.language.install,lang:0
@ -82,11 +82,13 @@ msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
"L'ajuda a gestionar els seus projectes i tasques per fer-ne el seguiment, "
"generar planificacions, etc .."
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
msgstr ""
msgstr "Interfície de pantalla tàctil per Botigues"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@ -98,6 +100,8 @@ msgstr ""
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
"Nom del model en el qual es troba el mètode que es dirà, per exemple, "
"'Res.partner'."
#. module: base
#: view:ir.module.module:0
@ -123,7 +127,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "Temes suplementaris"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@ -136,7 +140,7 @@ msgstr ""
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
msgstr ""
msgstr "Marqueu aquesta casella si aquest contacte és un empleat."
#. module: base
#: help:ir.model.fields,domain:0
@ -167,12 +171,12 @@ msgstr "Destí finestra"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
msgstr ""
msgstr "Ruta de l'arxiu d'informe principal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr ""
msgstr "Vendes de Distribució Analítica"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_invoice
@ -223,7 +227,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:368
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr ""
msgstr "Canvi de nom de camp \"% s\" no està permès"
#. module: base
#: model:res.country,name:base.sz
@ -265,7 +269,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "Monedes múltiples"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -281,7 +285,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
msgstr ""
msgstr "Gestió de vendes"
#. module: base
#: help:res.partner,user_id:0
@ -289,6 +293,8 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
"Si n'hi ha, usuari intern que s'encarrega de la comunicació amb aquest "
"contacte."
#. module: base
#: view:res.partner:0
@ -359,7 +365,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "Gestió de les relacions amb el client (CRM)"
#. module: base
#: model:ir.module.module,description:base.module_delivery
@ -391,7 +397,7 @@ msgstr "group_by no vàlid"
#. module: base
#: field:ir.module.category,child_ids:0
msgid "Child Applications"
msgstr ""
msgstr "Aplicacions filles"
#. module: base
#: field:res.partner,credit_limit:0
@ -408,7 +414,7 @@ msgstr "Data revisió"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
msgstr ""
msgstr "Regles automatitzades d'acció"
#. module: base
#: view:ir.attachment:0
@ -449,6 +455,8 @@ msgid ""
"Invalid date/time format directive specified. Please refer to the list of "
"allowed directives, displayed when you edit a language."
msgstr ""
"Directiva de format de data / hora especificada invalida. Si us plau, "
"consulteu la llista de directives permeses, apareix quan s'edita un idioma."
#. module: base
#: code:addons/orm.py:4152
@ -792,7 +800,7 @@ msgstr ""
#. module: base
#: help:ir.cron,nextcall:0
msgid "Next planned execution date for this job."
msgstr ""
msgstr "Propera data d'execució prevista per aquest treball."
#. module: base
#: model:ir.model,name:base.model_ir_ui_view
@ -807,7 +815,7 @@ msgstr "Eritrea"
#. module: base
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "El nom de l'empresa ha de ser únic!"
#. module: base
#: model:ir.ui.menu,name:base.menu_base_action_rule_admin
@ -846,7 +854,7 @@ msgstr ""
#. module: base
#: view:ir.mail_server:0
msgid "Security and Authentication"
msgstr ""
msgstr "Seguretat i autenticació"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar
@ -949,7 +957,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Email Preferences"
msgstr ""
msgstr "Preferències del correu electrònic"
#. module: base
#: code:addons/base/ir/ir_fields.py:195
@ -1014,7 +1022,7 @@ msgstr "Oman"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
msgid "MRP"
msgstr ""
msgstr "MRP"
#. module: base
#: model:ir.module.module,description:base.module_hr_attendance
@ -1036,7 +1044,7 @@ msgstr "Niue"
#. module: base
#: model:ir.module.module,shortdesc:base.module_membership
msgid "Membership Management"
msgstr ""
msgstr "Administració d'afiliacions"
#. module: base
#: selection:ir.module.module,license:0
@ -1068,7 +1076,7 @@ msgstr "Tipus de referències en sol·licituds"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users"
msgstr ""
msgstr "Usuaris de Google"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
@ -1084,6 +1092,12 @@ msgid ""
"If Value type is selected, the value will be used directly without "
"evaluation."
msgstr ""
"Expressió que conté una especificació de valor.\n"
"Quan el tipus és fórmula, aquest camp pot ser una expressió de Python que "
"pot utilitzar els mateixos valors que en el camp de condició de l'acció del "
"servidor.\n"
"Si el tipus és seleccionat, el valor es pot utilitzar directament sense "
"avaluació."
#. module: base
#: model:res.country,name:base.ad
@ -1144,6 +1158,8 @@ msgstr "Fitxer TGZ"
msgid ""
"Users added to this group are automatically added in the following groups."
msgstr ""
"Els usuaris afegits a aquest grup s'agreguen automàticament en els següents "
"grups."
#. module: base
#: code:addons/base/ir/ir_model.py:725
@ -1263,7 +1279,7 @@ msgstr ""
#: code:addons/base/ir/ir_mail_server.py:212
#, python-format
msgid "Connection test failed!"
msgstr ""
msgstr "La prova de connexió ha fallat!"
#. module: base
#: selection:ir.actions.server,state:0
@ -1401,7 +1417,7 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:53
#, python-format
msgid "Language Pack"
msgstr ""
msgstr "Paquet d'idioma"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests
@ -1473,7 +1489,7 @@ msgstr ""
#. module: base
#: field:ir.module.category,parent_id:0
msgid "Parent Application"
msgstr ""
msgstr "Aplicació pare"
#. module: base
#: model:ir.actions.act_window,name:base.ir_action_wizard
@ -1491,12 +1507,12 @@ msgstr "Operació cancel·lada"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document
msgid "Document Management System"
msgstr ""
msgstr "Sistema de gestió de documents"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
msgid "Claims Management"
msgstr ""
msgstr "Gestió de demandes"
#. module: base
#: model:ir.module.module,description:base.module_document_webdav
@ -1585,6 +1601,11 @@ msgid ""
"use the accounting application of OpenERP, journals and accounts will be "
"created automatically based on these data."
msgstr ""
"Configurar els comptes bancaris de la seva empresa i seleccionar els que han "
"d'aparèixer al peu de l'informe. Podeu canviar l'ordre dels comptes bancaris "
"de la vista de llista. Si utilitzeu l'aplicació de comptabilitat d'OpenERP, "
"els diaris i els comptes es crearan automàticament en funció d'aquestes "
"dades."
#. module: base
#: report:ir.module.reference:0
@ -2169,7 +2190,7 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_administration
#: model:res.groups,name:base.group_system
msgid "Settings"
msgstr ""
msgstr "Configuració"
#. module: base
#: selection:ir.actions.act_window,view_type:0
@ -2674,7 +2695,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_invoiced
msgid "Invoicing"
msgstr ""
msgstr "Facturació"
#. module: base
#: field:ir.ui.view_sc,name:0
@ -5036,7 +5057,7 @@ msgstr "Kenia"
#: model:ir.actions.act_window,name:base.action_translation
#: model:ir.ui.menu,name:base.menu_action_translation
msgid "Translated Terms"
msgstr ""
msgstr "Termes traduïts"
#. module: base
#: selection:base.language.install,lang:0
@ -6572,7 +6593,7 @@ msgstr "Acció"
#. module: base
#: view:ir.actions.server:0
msgid "Email Configuration"
msgstr "Configuració Email"
msgstr "Configuració correu electrònic"
#. module: base
#: model:ir.model,name:base.model_ir_cron
@ -8693,7 +8714,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account
msgid "eInvoicing"
msgstr ""
msgstr "Facturació electrònica"
#. module: base
#: code:addons/base/res/res_users.py:171
@ -10140,7 +10161,7 @@ msgstr "Aquest mètode ja no existeix"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Synchronize Terms"
msgstr ""
msgstr "Sincronitzar els termes"
#. module: base
#: field:res.lang,thousands_sep:0
@ -10975,7 +10996,7 @@ msgstr "Laos"
#: field:res.partner,email:0
#, python-format
msgid "Email"
msgstr "Email"
msgstr "Correu electrònic"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
@ -12909,7 +12930,7 @@ msgstr ""
#. module: base
#: help:ir.cron,function:0
msgid "Name of the method to be called when this job is processed."
msgstr ""
msgstr "Nom del mètode que es cridarà quan aquest treball es processa."
#. module: base
#: field:ir.actions.client,tag:0
@ -13000,7 +13021,7 @@ msgstr "Sàhara Occidental"
#. module: base
#: model:ir.module.category,name:base.module_category_account_voucher
msgid "Invoicing & Payments"
msgstr ""
msgstr "Facturació i pagaments"
#. module: base
#: model:ir.actions.act_window,help:base.action_res_company_form
@ -14134,7 +14155,7 @@ msgstr "Relació objecte"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_voucher
msgid "eInvoicing & Payments"
msgstr ""
msgstr "Facturació electrònica i pagaments"
#. module: base
#: view:ir.rule:0
@ -14335,7 +14356,7 @@ msgstr "Aplica actualitzacions programades"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_journal
msgid "Invoicing Journals"
msgstr ""
msgstr "Diaris de facturació"
#. module: base
#: help:ir.ui.view,groups_id:0
@ -14352,7 +14373,7 @@ msgstr "Persa / فارس"
#. module: base
#: view:base.language.export:0
msgid "Export Settings"
msgstr ""
msgstr "Exporta la configuració"
#. module: base
#: field:ir.actions.act_window,src_model:0
@ -14799,7 +14820,7 @@ msgstr "Finestra actual"
#: model:ir.module.category,name:base.module_category_hidden
#: view:res.users:0
msgid "Technical Settings"
msgstr ""
msgstr "Configuració tècnica"
#. module: base
#: model:ir.module.category,description:base.module_category_accounting_and_finance
@ -14807,6 +14828,8 @@ msgid ""
"Helps you handle your accounting needs, if you are not an accountant, we "
"suggest you to install only the Invoicing."
msgstr ""
"L'ajuda a gestionar les seves necessitats de comptabilitat, si vostè no és "
"comptable, li suggerim que instal només la facturació."
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_thunderbird
@ -15535,9 +15558,6 @@ msgstr ""
#~ msgid "Select Action Type"
#~ msgstr "Seleccioneu tipus d'acció"
#~ msgid "E-Mail"
#~ msgstr "Email"
#~ msgid "Schedule Upgrade"
#~ msgstr "Programa actualització"
@ -15809,9 +15829,6 @@ msgstr ""
#~ msgid "Select Report"
#~ msgstr "Seleccioneu informe"
#~ msgid "Sender's email"
#~ msgstr "Email remitent"
#~ msgid "Connect Events to Actions"
#~ msgstr "Connecta esdeveniments a accions"
@ -15931,9 +15948,6 @@ msgstr ""
#~ msgid "Python code to be executed"
#~ msgstr "Codi Python a executar-se"
#~ msgid "Send Email"
#~ msgstr "Envia email"
#~ msgid "Next"
#~ msgstr "Següent"
@ -17157,3 +17171,50 @@ msgstr ""
#~ msgstr ""
#~ "Tipus de vista: 'Arbre' per a una vista d'arbre jeràrquica, o 'Formulari' "
#~ "per a les altres vistes."
#~ msgid "Tasks-Mail Integration"
#~ msgstr "Integració tasques-correu"
#~ msgid "Billing Rates on Contracts"
#~ msgstr "Tarifes de facturació en contractes"
#~ msgid "Partner Manager"
#~ msgstr "Soci Gerent"
#~ msgid "Openerp web graph view"
#~ msgstr "Vista de gràfic web d'OpenERP"
#~ msgid ""
#~ "Manual: Launched manually.\n"
#~ "Automatic: Runs whenever the system is reconfigured.\n"
#~ "Launch Manually Once: after hacing been launched manually, it sets "
#~ "automatically to Done."
#~ msgstr ""
#~ "Manual: Llançada de forma manual.\n"
#~ "Automàtic: S'executa cada vegada que el sistema es reconfigura.\n"
#~ "Inicieu manualment un cop: després d'haver-se posat en marxa de forma "
#~ "manual, s'estableix automàticament a Fet."
#~ msgid "Sales Orders Print Layout"
#~ msgstr "Disseny d'impressió d'Ordres de venda"
#~ msgid "SugarCRM Import"
#~ msgstr "Importació SugarCRM"
#~ msgid "OpenERP Web web"
#~ msgstr "OpenERP Web web"
#~ msgid "Symbol position"
#~ msgstr "Posició del símbol"
#~ msgid "Miscellaneous Tools"
#~ msgstr "Eines vàries"
#~ msgid "E-Mail"
#~ msgstr "Correu Electrònic"
#~ msgid "Sender's email"
#~ msgstr "Adreça electrònica del remitent"
#~ msgid "Send Email"
#~ msgstr "Envia correu electrònic"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:37+0000\n"
"X-Generator: Launchpad (build 16514)\n"
"X-Poedit-Language: Czech\n"
#. module: base

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:38+0000\n"
"X-Generator: Launchpad (build 16514)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:42+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -4274,7 +4274,7 @@ msgstr "Modo SMTP sobre SSL no disponible"
#: model:ir.module.module,shortdesc:base.module_survey
#: model:ir.ui.menu,name:base.next_id_10
msgid "Survey"
msgstr "Encuesta"
msgstr "Planificación"
#. module: base
#: selection:base.language.install,lang:0

View File

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

View File

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

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:45+0000\n"
"X-Generator: Launchpad (build 16514)\n"
"Language: \n"
#. module: base

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:38+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -10583,7 +10583,7 @@ msgstr ""
#. module: base
#: field:res.partner,use_parent_address:0
msgid "Use Company Address"
msgstr ""
msgstr "Utiliser l'adresse de la société"
#. module: base
#: model:ir.module.module,summary:base.module_hr_holidays
@ -14318,7 +14318,7 @@ msgstr "Maroc - Comptabilité"
#: field:res.bank,bic:0
#: field:res.partner.bank,bank_bic:0
msgid "Bank Identifier Code"
msgstr "Code d'indentification bancaire"
msgstr "Code d'identification bancaire"
#. module: base
#: view:base.language.export:0

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:42+0000\n"
"X-Generator: Launchpad (build 16514)\n"
"Language: hr\n"
#. module: base

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:36+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

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

View File

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

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:38+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -141,7 +141,7 @@ msgstr ""
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
msgstr ""
msgstr "მონიშნეთ თუ საკონტაქტო პირი თანამშრომელია"
#. module: base
#: help:ir.model.fields,domain:0
@ -269,7 +269,7 @@ msgstr "ინუქტიტუტი"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "მულტი ვალუტა"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:40+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: 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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:40+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:40+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -29,12 +29,12 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sh
msgid "Saint Helena"
msgstr "Svētās Helēnas Sala"
msgstr "Sv. Helēnas sala"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
msgstr "Cita konfigurācija"
msgstr "Cita Konfigurācija"
#. module: base
#: selection:ir.property,type:0
@ -124,7 +124,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "Papildus argumenti"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@ -193,7 +193,7 @@ msgstr ""
#: code:addons/base/res/res_users.py:467
#, python-format
msgid "Warning!"
msgstr "Uzmanību!"
msgstr "Brīdinājums!"
#. module: base
#: code:addons/base/ir/ir_model.py:399
@ -244,7 +244,7 @@ msgstr ""
#. module: base
#: field:ir.sequence,number_increment:0
msgid "Increment Number"
msgstr "Solis"
msgstr "Soļa Numurs"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_company_tree
@ -331,7 +331,7 @@ msgstr "Valodas nosaukumam jābūt unikālam!"
#. module: base
#: selection:res.request,state:0
msgid "active"
msgstr "active"
msgstr "aktīvs"
#. module: base
#: field:ir.actions.wizard,wiz_name:0
@ -470,7 +470,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
msgstr ""
msgstr "Izveidot Piekļuves Tiesības"
#. module: base
#: model:res.country,name:base.tv
@ -796,7 +796,7 @@ msgstr "Eritreja"
#. module: base
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "Uzņēmuma nosaukumam ir jābūt unikālam !"
#. module: base
#: model:ir.ui.menu,name:base.menu_base_action_rule_admin
@ -835,7 +835,7 @@ msgstr ""
#. module: base
#: view:ir.mail_server:0
msgid "Security and Authentication"
msgstr ""
msgstr "Drošība un Autentifikācija"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar
@ -851,7 +851,7 @@ msgstr "Zviedru / svenska"
#: field:base.language.export,name:0
#: field:ir.attachment,datas_fname:0
msgid "File Name"
msgstr ""
msgstr "Faila Nosaukums"
#. module: base
#: model:res.country,name:base.rs
@ -872,7 +872,7 @@ msgstr "Kambodža"
#: field:base.language.import,overwrite:0
#: field:base.language.install,overwrite:0
msgid "Overwrite Existing Terms"
msgstr ""
msgstr "Aizstāt Esošos Nosacījumus"
#. module: base
#: model:ir.module.module,description:base.module_hr_holidays
@ -1054,7 +1054,7 @@ msgstr "Pieprasījuma atsauksmes tipi"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users"
msgstr ""
msgstr "Google Lietotāji"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
@ -1241,7 +1241,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Delete Access Right"
msgstr ""
msgstr "Noņemt Piekļuves Tiesības"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:212
@ -1324,7 +1324,7 @@ msgstr "Uganda"
#. module: base
#: field:ir.model.access,perm_unlink:0
msgid "Delete Access"
msgstr "Dzēst piekļuvi"
msgstr "Noņemt Piekļuvi"
#. module: base
#: model:res.country,name:base.ne
@ -2476,7 +2476,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.ui.view_sc:0
msgid "Shortcut for this menu already exists!"
msgstr ""
msgstr "Saīsne šajā izvēlnē jau eksistē!"
#. module: base
#: view:ir.rule:0
@ -2832,7 +2832,7 @@ msgstr "Menedžeris"
#: code:addons/base/ir/ir_model.py:719
#, python-format
msgid "Sorry, you are not allowed to access this document."
msgstr ""
msgstr "Atvainojiet, Jums nav atļauja piekļūt šim dokumentam."
#. module: base
#: model:res.country,name:base.py
@ -3819,7 +3819,7 @@ msgstr "Urdu valoda / اردو"
#: code:addons/orm.py:3901
#, python-format
msgid "Access Denied"
msgstr ""
msgstr "Piekļuve Liegta"
#. module: base
#: field:res.company,name:0
@ -4361,7 +4361,7 @@ msgstr "Izteiksme"
#. module: base
#: view:res.company:0
msgid "Header/Footer"
msgstr "Teksta iestarpinājumi (Augšā/Apakšā)"
msgstr "Galvene/Kājene"
#. module: base
#: help:ir.mail_server,sequence:0
@ -5106,7 +5106,7 @@ msgstr "Maurīcija"
#. module: base
#: view:ir.model.access:0
msgid "Full Access"
msgstr "Pilna piekļuve"
msgstr "Pilna Piekļuve"
#. module: base
#: model:ir.module.module,description:base.module_l10n_pt
@ -7047,7 +7047,7 @@ msgstr ""
#. module: base
#: field:ir.model.access,perm_create:0
msgid "Create Access"
msgstr "Izveidot Pieeju"
msgstr "Izveidot Piekļuvi"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet
@ -8145,7 +8145,7 @@ msgstr "base.update.translations"
#. module: base
#: view:ir.rule:0
msgid "Full Access Right"
msgstr ""
msgstr "Pilnas Piekļuves Tiesības"
#. module: base
#: field:res.partner.category,parent_id:0
@ -9070,7 +9070,7 @@ msgstr "Zālamana Salas"
#: code:addons/orm.py:4684
#, python-format
msgid "AccessError"
msgstr "Pieejas Kļūda"
msgstr "Piekļuves Kļūda"
#. module: base
#: model:ir.module.module,description:base.module_web_gantt
@ -11613,7 +11613,7 @@ msgstr "Fed. Štati"
#: view:ir.model:0
#: view:res.groups:0
msgid "Access Rules"
msgstr "Pieejas Noteikumi"
msgstr "Piekļuves Noteikumi"
#. module: base
#: field:res.groups,trans_implied_ids:0
@ -12662,7 +12662,7 @@ msgstr "Palīdzība"
#: model:res.groups,name:base.group_erp_manager
#: view:res.users:0
msgid "Access Rights"
msgstr "Pieejas tiesības"
msgstr "Piekļuves Tiesības"
#. module: base
#: model:res.country,name:base.gl
@ -14330,7 +14330,7 @@ msgstr ""
#: field:ir.model,access_ids:0
#: view:ir.model.access:0
msgid "Access"
msgstr "Pieeja"
msgstr "Piekļuve"
#. module: base
#: code:addons/base/res/res_company.py:165
@ -14953,7 +14953,7 @@ msgstr "Skatījuma Nosaukums"
#. module: base
#: model:ir.model,name:base.model_res_groups
msgid "Access Groups"
msgstr ""
msgstr "Piekļuves Grupas"
#. module: base
#: selection:base.language.install,lang:0

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:41+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -3287,7 +3287,7 @@ msgstr "Сервер үйлдэл"
#. module: base
#: help:ir.actions.client,params:0
msgid "Arguments sent to the client along withthe view tag"
msgstr "Клиент рүү харах таагийн хамт илгээгдсэн аргумент"
msgstr "Клиент рүү харах пайзын хамт илгээгдсэн аргумент"
#. module: base
#: model:ir.module.module,summary:base.module_contacts
@ -3701,7 +3701,7 @@ msgstr ""
#. module: base
#: field:res.company,rml_header1:0
msgid "Company Tagline"
msgstr "Компаний Тэмдэглэсэн Мөр"
msgstr "Компаний Пайзын Мөр"
#. module: base
#: code:addons/base/res/res_users.py:668
@ -4603,7 +4603,7 @@ msgstr "%x - Тохиромжтой огнооны дүрслэл."
#. module: base
#: view:res.partner:0
msgid "Tag"
msgstr "Тааг"
msgstr "Пайз"
#. module: base
#: view:res.lang:0
@ -6231,7 +6231,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_partner_category_form
msgid "Partner Tags"
msgstr "Харилцагчдын таагууд"
msgstr "Харилцагчдын Пайзууд"
#. module: base
#: view:res.company:0
@ -7582,7 +7582,7 @@ msgid ""
"and wishes. There is no central tag repository across clients."
msgstr ""
"Клиентийн өөрийн шаардлага, хүслээр орчуулагдах дурын текст. Клиентүүдийн "
"дундын таагийн агуулах байхгүй."
"дундын пайзын агуулах байхгүй."
#. module: base
#: sql_constraint:ir.rule:0
@ -9401,7 +9401,7 @@ msgstr "Валютын тэмдэгт өмнө эсвэл хойно хаана
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad_project
msgid "Pad on tasks"
msgstr "Даалгавар дээрх Pad"
msgstr "Даалгавар дээрх хавтан"
#. module: base
#: model:ir.model,name:base.model_base_update_translations
@ -9769,7 +9769,7 @@ msgstr "Сайжруулсан Маршрут"
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad
msgid "Collaborative Pads"
msgstr "Хамтын Хавчуулгууд"
msgstr "Хамтын Хавтангууд"
#. module: base
#: model:res.country,name:base.np
@ -11496,6 +11496,8 @@ msgstr "Маркетенгийн Компанит ажил - Үзүүлэн"
msgid ""
"Can not create Many-To-One records indirectly, import the field separately"
msgstr ""
"Олон нь нэгтэйгээ бичлэгийг шууд бишээр үүсгэж чадахгүй, талбарыг тусд нь "
"импорт хийнэ үү."
#. module: base
#: field:ir.cron,interval_type:0
@ -11505,7 +11507,7 @@ msgstr "Интервал нэгж"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_stock
msgid "Portal Stock"
msgstr ""
msgstr "Порталь Агуулах"
#. module: base
#: field:workflow.activity,kind:0
@ -11543,7 +11545,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.model.constraint:0
msgid "Constraints with the same name are unique per module."
msgstr ""
msgstr "Ижил нэртэй хязгаарлалт модуль тус бүртээ үл давхцана."
#. module: base
#: model:ir.module.module,description:base.module_report_intrastat
@ -11586,7 +11588,7 @@ msgstr "res.request"
#. module: base
#: field:res.partner,image_medium:0
msgid "Medium-sized image"
msgstr ""
msgstr "Дунд-хэмжээт зураг"
#. module: base
#: view:ir.model:0
@ -11613,7 +11615,7 @@ msgstr "Файлын агуулга"
#: view:ir.model.relation:0
#: model:ir.ui.menu,name:base.ir_model_relation_menu
msgid "ManyToMany Relations"
msgstr ""
msgstr "ОлонОлонтойгоо Харицаанууд"
#. module: base
#: model:res.country,name:base.pa
@ -11649,7 +11651,7 @@ msgstr "Питкэйрн арал"
#. module: base
#: field:res.partner,category_id:0
msgid "Tags"
msgstr "Таагууд"
msgstr "Пайзууд"
#. module: base
#: view:base.module.upgrade:0
@ -11675,18 +11677,18 @@ msgstr "Олон компани"
#: model:ir.module.category,name:base.module_category_portal
#: model:ir.module.module,shortdesc:base.module_portal
msgid "Portal"
msgstr ""
msgstr "Порталь"
#. module: base
#: selection:ir.translation,state:0
msgid "To Translate"
msgstr ""
msgstr "Орчуулах"
#. module: base
#: code:addons/base/ir/ir_fields.py:294
#, python-format
msgid "See all possible values"
msgstr ""
msgstr "Бүх боломжит утгыг харах"
#. module: base
#: model:ir.module.module,description:base.module_claim_from_delivery
@ -11721,12 +11723,12 @@ msgstr ""
#. module: base
#: help:ir.model.constraint,name:0
msgid "PostgreSQL constraint or foreign key name."
msgstr ""
msgstr "PostgreSQL хязгаарлалт эсвэл гадаад түлхүүрийн нэр"
#. module: base
#: view:res.company:0
msgid "Click to set your company logo."
msgstr ""
msgstr "Компаний логогоо тохируулахын тулд дарна."
#. module: base
#: view:res.lang:0
@ -11747,12 +11749,12 @@ msgstr "Guinea Bissau"
#. module: base
#: field:ir.actions.report.xml,header:0
msgid "Add RML Header"
msgstr ""
msgstr "RML Толгой нэмэх"
#. module: base
#: help:res.company,rml_footer:0
msgid "Footer text displayed at the bottom of all reports."
msgstr ""
msgstr "Хөлний текст нь бүх тайлангийн доод талд гарна."
#. module: base
#: field:ir.module.module,icon:0
@ -11762,7 +11764,7 @@ msgstr "Таних Тэмдэг URL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_note_pad
msgid "Memos pad"
msgstr ""
msgstr "Санамж наалт"
#. module: base
#: model:ir.module.module,description:base.module_pad
@ -11867,7 +11869,7 @@ msgstr "Итали"
#. module: base
#: model:res.groups,name:base.group_sale_salesman
msgid "See Own Leads"
msgstr ""
msgstr "Өөрийн Сэжимийг Харах"
#. module: base
#: view:ir.actions.todo:0
@ -11878,7 +11880,7 @@ msgstr "Хийх"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_hr_employees
msgid "Portal HR employees"
msgstr ""
msgstr "Порталь Хүний Нөөцийн Ажилчид"
#. module: base
#: selection:base.language.install,lang:0
@ -11906,6 +11908,8 @@ msgid ""
"Insufficient fields to generate a Calendar View for %s, missing a date_stop "
"or a date_delay"
msgstr ""
"%s-д цаглабар харагдацыг үүсгэхэд талбарууд хүрэлцээтэй биш байна, date_stop "
"эсвэл date_delay"
#. module: base
#: field:workflow.activity,action:0
@ -11996,6 +12000,8 @@ msgstr ""
msgid ""
"Please contact your system administrator if you think this is an error."
msgstr ""
"Хэрэв үүнийг алдаа гэж бодож байгаа бол системийн администратортайгаа уулзна "
"уу."
#. module: base
#: code:addons/base/module/module.py:546
@ -12003,7 +12009,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#, python-format
msgid "Apply Schedule Upgrade"
msgstr ""
msgstr "Товлосон Шинэчлэлийг Хэрэгжүүлэх"
#. module: base
#: view:workflow.activity:0
@ -12043,11 +12049,13 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
"Танай хандах гэж байгаа ямар нэг баримт устсан байна, хуудсыг дахин ачаалаад "
"үзнэ үү."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
msgid "ir.mail_server"
msgstr ""
msgstr "ir.mail_server"
#. module: base
#: selection:base.language.install,lang:0
@ -12138,7 +12146,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_stock
msgid "Sales and Warehouse Management"
msgstr ""
msgstr "Борлуулалт болон Агуулахын Менежмент"
#. module: base
#: model:ir.module.module,description:base.module_hr_recruitment
@ -12226,7 +12234,7 @@ msgstr "Martinique (French)"
#. module: base
#: help:res.partner,is_company:0
msgid "Check if the contact is a company, otherwise it is a person"
msgstr ""
msgstr "Хэрэв хаяг нь компани бол тэмдэглэнэ үү, үгүй бол энэ нь хүн байна"
#. module: base
#: view:ir.sequence.type:0
@ -12236,13 +12244,13 @@ msgstr "Дарааллын төрөл"
#. module: base
#: view:res.partner:0
msgid "Mobile:"
msgstr ""
msgstr "Гар утас:"
#. module: base
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Formating Error"
msgstr ""
msgstr "Форматын Алдаа"
#. module: base
#: model:res.country,name:base.ye
@ -12311,7 +12319,7 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:1024
#, python-format
msgid "Permission Denied"
msgstr ""
msgstr "Зөвшөөрөл татгалзагдсан"
#. module: base
#: field:ir.ui.menu,child_id:0
@ -12461,7 +12469,7 @@ msgstr "ажлын урсгал"
#. module: base
#: view:ir.rule:0
msgid "Read Access Right"
msgstr ""
msgstr "Унших Хандалтын Эрх"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_user_function
@ -12511,13 +12519,13 @@ msgstr "Араб / الْعَرَبيّة"
#. module: base
#: selection:ir.translation,state:0
msgid "Translated"
msgstr ""
msgstr "Орчуулсан"
#. module: base
#: model:ir.actions.act_window,name:base.action_inventory_form
#: model:ir.ui.menu,name:base.menu_action_inventory_form
msgid "Default Company per Object"
msgstr ""
msgstr "Объектуудын үндсэн компани"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_hello
@ -12547,7 +12555,7 @@ msgstr "Домэйн"
#: code:addons/base/ir/ir_fields.py:166
#, python-format
msgid "Use '1' for yes and '0' for no"
msgstr ""
msgstr "Тийм гэдэгт '1', үгүй гэдэгт'0' гэж хэрэглэнэ"
#. module: base
#: model:ir.module.module,shortdesc:base.module_marketing_campaign
@ -12562,13 +12570,14 @@ msgstr "Мужын нэр"
#. module: base
#: help:ir.attachment,type:0
msgid "Binary File or URL"
msgstr ""
msgstr "Хоёртын файл эсвэл URL"
#. module: base
#: code:addons/base/ir/ir_fields.py:313
#, python-format
msgid "Invalid database id '%s' for the field '%%(field)s'"
msgstr ""
"Өгөгдлийн баазын '%s' гэсэн id нь дараах талбарыг хувьд буруу '%%(field)s'"
#. module: base
#: view:res.lang:0
@ -12740,7 +12749,7 @@ msgstr "Гренада"
#. module: base
#: help:res.partner,customer:0
msgid "Check this box if this contact is a customer."
msgstr ""
msgstr "Хэрэв холбогч нь захиалагч бол үүнийг тэмдэглэ"
#. module: base
#: view:ir.actions.server:0
@ -12776,7 +12785,7 @@ msgstr ""
#. module: base
#: field:res.users,partner_id:0
msgid "Related Partner"
msgstr ""
msgstr "Холбогдох харилцагч"
#. module: base
#: code:addons/osv.py:153
@ -12813,13 +12822,13 @@ msgstr "Үйлдвэрлэлийн Үйлдлүүд"
#. module: base
#: view:base.language.export:0
msgid "Here is the exported translation file:"
msgstr ""
msgstr "Энэ нь экспортлогдсон орчуулгын файл:"
#. module: base
#: field:ir.actions.report.xml,report_rml_content:0
#: field:ir.actions.report.xml,report_rml_content_data:0
msgid "RML Content"
msgstr ""
msgstr "RML агуулга"
#. module: base
#: view:res.lang:0
@ -12970,7 +12979,7 @@ msgstr "A4"
#. module: base
#: view:res.config.installer:0
msgid "Configuration Installer"
msgstr ""
msgstr "Суулгагчийн Тохируулга"
#. module: base
#: field:res.partner,customer:0
@ -12990,6 +12999,10 @@ msgid ""
"===================================================\n"
" "
msgstr ""
"\n"
"Энэ модуль н бүх төслийн канбан харагдацад ХАВТАНг нэмдэг.\n"
"===================================================\n"
" "
#. module: base
#: field:ir.actions.act_window,context:0
@ -13010,7 +13023,7 @@ msgstr "Гүйцэтгэх дараагийн огноо"
#. module: base
#: field:ir.sequence,padding:0
msgid "Number Padding"
msgstr "Тоон дугаарын урт"
msgstr "Тоон дугаарын гүйцээлт"
#. module: base
#: help:multi_company.default,field_id:0
@ -13060,13 +13073,13 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_fields_converter
msgid "ir.fields.converter"
msgstr ""
msgstr "ir.fields.converter"
#. module: base
#: code:addons/base/res/res_partner.py:439
#, python-format
msgid "Couldn't create contact without email address !"
msgstr ""
msgstr "Имэйл хаяггүй холбогчийг үүсгэж чадсангүй !"
#. module: base
#: model:ir.module.category,name:base.module_category_manufacturing
@ -13088,12 +13101,12 @@ msgstr "Суулгахыг болих"
#. module: base
#: model:ir.model,name:base.model_ir_model_relation
msgid "ir.model.relation"
msgstr ""
msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
msgstr ""
msgstr "Чек Бичих"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@ -13328,7 +13341,7 @@ msgstr "UK - Санхүү"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Mrs."
msgstr ""
msgstr "Хатагтай"
#. module: base
#: code:addons/base/ir/ir_model.py:426
@ -13349,7 +13362,7 @@ msgstr "Хэрэглэгч дугаар."
#: code:addons/base/ir/ir_fields.py:226
#, python-format
msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'"
msgstr ""
msgstr "'%s' нь '%%(field)s' энэ талбар зөв биш огноо шиг байх юм"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@ -13413,6 +13426,8 @@ msgstr ""
msgid ""
"Please make sure no workitems refer to an activity before deleting it!"
msgstr ""
"Ажлын зүйлүүд нь үйл ажиллагаатай холбогдохгүй байгаа явдлыг устгахаасаа "
"өмнө нягтална уу!"
#. module: base
#: model:res.country,name:base.tr
@ -13495,7 +13510,7 @@ msgstr "Холболтын Мэдээлэл"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_prof
msgid "Professor"
msgstr ""
msgstr "Профессор"
#. module: base
#: model:res.country,name:base.hm
@ -13524,7 +13539,7 @@ msgstr "Үнийн санал, борлуулалтын захиалга, нэх
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
msgstr ""
msgstr "Сүүлчийн холболт"
#. module: base
#: field:res.groups,implied_ids:0
@ -13610,7 +13625,7 @@ msgstr "Хос"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_doctor
msgid "Doctor"
msgstr ""
msgstr "Доктор"
#. module: base
#: model:ir.module.module,description:base.module_mrp_repair
@ -13679,7 +13694,7 @@ msgstr "Валютууд"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_8
msgid "Consultancy Services"
msgstr ""
msgstr "Зөвлөх Үйлчилгээнүүд"
#. module: base
#: help:ir.values,value:0
@ -13689,7 +13704,7 @@ msgstr "Анхны утга (pickled - дарсан) эсвэл сурвалж
#. module: base
#: field:ir.actions.report.xml,auto:0
msgid "Custom Python Parser"
msgstr ""
msgstr "Өөриймшүүлсэн Python задлагч"
#. module: base
#: sql_constraint:res.groups:0
@ -13699,7 +13714,7 @@ msgstr "Группын нэр давхардах ёсгүй !"
#. module: base
#: help:ir.translation,module:0
msgid "Module this term belongs to"
msgstr ""
msgstr "Энэ нэр томъёо харъяалагдах модуль"
#. module: base
#: model:ir.module.module,description:base.module_web_view_editor
@ -13710,6 +13725,11 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Харагдац засварлах OpenERP Web.\n"
"==========================\n"
"\n"
" "
#. module: base
#: view:ir.sequence:0
@ -13789,7 +13809,7 @@ msgstr "Бэлтгэн нийлүүлэлт"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_6
msgid "Bronze"
msgstr ""
msgstr "Хүрэл"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_payroll_account
@ -13819,7 +13839,7 @@ msgstr "Үүсгэсэн сар"
#. module: base
#: field:ir.module.module,demo:0
msgid "Demo Data"
msgstr ""
msgstr "Жишээ өгөгдөл"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_mister
@ -13854,7 +13874,7 @@ msgstr "Хаягийн формат"
#. module: base
#: model:ir.model,name:base.model_change_password_user
msgid "Change Password Wizard User"
msgstr ""
msgstr "Хэрэглэгчийн Нууц үг солих харилцах цонх"
#. module: base
#: model:res.groups,name:base.group_no_one
@ -14177,7 +14197,7 @@ msgstr "Миний баримтуудыг шүүх"
#. module: base
#: model:ir.module.module,summary:base.module_project_gtd
msgid "Personal Tasks, Contexts, Timeboxes"
msgstr ""
msgstr "Хувийн Даалгаврууд, Агуулгууд, Хугацааны хайрцагууд"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cr
@ -14225,7 +14245,7 @@ msgstr "Габон"
#. module: base
#: model:ir.module.module,summary:base.module_stock
msgid "Inventory, Logistic, Storage"
msgstr ""
msgstr "Бараа материал, Логистик, Хадгалалт"
#. module: base
#: view:ir.actions.act_window:0
@ -14289,7 +14309,7 @@ msgstr "Кипр"
#. module: base
#: field:res.users,new_password:0
msgid "Set Password"
msgstr ""
msgstr "Нууц үг тааруулах"
#. module: base
#: field:ir.actions.server,subject:0
@ -14358,7 +14378,7 @@ msgstr "Энэ ажлыг боловсруулахын тулд дуудагда
#. module: base
#: field:ir.actions.client,tag:0
msgid "Client action tag"
msgstr "Клиентийн үйлдлийн тааг"
msgstr "Клиентийн үйлдлийн пайз"
#. module: base
#: field:ir.values,model_id:0
@ -14421,7 +14441,7 @@ msgstr "Гарах Мэйлийн Сервер"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom
msgid "Technical"
msgstr ""
msgstr "Техникийн"
#. module: base
#: model:res.country,name:base.cn
@ -14606,6 +14626,9 @@ msgid ""
"128x128px image, with aspect ratio preserved. Use this field in form views "
"or some kanban views."
msgstr ""
"Энэ холбогчийн дунд хэмжээт зураг. Энэ автоматаар 128x128 цэг хэмжээтэй "
"болох бөгөөд харьцаа хадгалагдана. Энэ талбарыг маягт харагдац, канбан "
"харагдац зэрэгт хэрэглэнэ үү."
#. module: base
#: view:base.update.translations:0
@ -14644,7 +14667,7 @@ msgstr "Эхлүүлэх үйлдэл"
#: field:ir.model,modules:0
#: field:ir.model.fields,modules:0
msgid "In Modules"
msgstr ""
msgstr "Модулиуд дотор"
#. module: base
#: model:ir.module.module,shortdesc:base.module_contacts
@ -14748,7 +14771,7 @@ msgstr "Зайрэ"
#. module: base
#: model:ir.module.module,summary:base.module_project
msgid "Projects, Tasks"
msgstr ""
msgstr "Төслүүд, Даалгаврууд"
#. module: base
#: field:ir.attachment,res_id:0
@ -14837,6 +14860,8 @@ msgid ""
"The user this filter is private to. When left empty the filter is public and "
"available to all users."
msgstr ""
"Энэ шүүлтүүрийг хувьдаа хэрэглэх хэрэглэгч. Хэрэв хоосон бол шүүлтүүр "
"нийтийнх бөгөөд бүх хэрэглэгч хэрэглэнэ."
#. module: base
#: field:ir.actions.act_window,auto_refresh:0
@ -14876,7 +14901,7 @@ msgstr "osv_memory талбарыг зөвхөн = эсвэл != операто
#. module: base
#: view:res.partner:0
msgid "Fax:"
msgstr ""
msgstr "Факс :"
#. module: base
#: selection:ir.ui.view,type:0
@ -15060,7 +15085,7 @@ msgstr "Зорилтат үйл ажиллагаа."
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue
msgid "Issue Tracker"
msgstr ""
msgstr "Асуудал Хөтлөгч"
#. module: base
#: view:base.module.update:0
@ -15636,12 +15661,12 @@ msgstr "Валютын ханш"
#: view:base.module.upgrade:0
#: field:base.module.upgrade,module_info:0
msgid "Modules to Update"
msgstr ""
msgstr "Шинэчлэх Модулиуд"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
msgid "Multi-Companies"
msgstr ""
msgstr "Олон-Компаниуд"
#. module: base
#: field:workflow,osv:0
@ -15723,7 +15748,7 @@ msgstr "Үйлдлийн хэрэглээ"
#. module: base
#: field:ir.module.module,name:0
msgid "Technical Name"
msgstr ""
msgstr "Техникийн нэр"
#. module: base
#: model:ir.model,name:base.model_workflow_workitem
@ -15797,7 +15822,7 @@ msgstr "Вебийн Таних Тэмдэгийн Файл"
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade
msgid "Apply Scheduled Upgrades"
msgstr "Товлосон шинэчлэлтийг эхлүүлэх"
msgstr "Товлосон Шинэчлэлтийг Хэрэгжүүлэх"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_journal
@ -16267,7 +16292,7 @@ msgstr "Идэвхтэй цонх"
#: model:ir.module.category,name:base.module_category_hidden
#: view:res.users:0
msgid "Technical Settings"
msgstr ""
msgstr "Техникийн Тохиргоонууд"
#. module: base
#: model:ir.module.category,description:base.module_category_accounting_and_finance
@ -16563,7 +16588,7 @@ msgstr "Нөхцөл"
#: model:ir.actions.client,name:base.modules_updates_act_cl
#: model:ir.ui.menu,name:base.menu_module_updates
msgid "Updates"
msgstr ""
msgstr "Шинэчлэлүүд"
#. module: base
#: help:res.currency,rate:0
@ -16775,7 +16800,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Installed Modules"
msgstr ""
msgstr "Суулгасан Модулиуд"
#. module: base
#: code:addons/base/res/res_users.py:170

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:37+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -5860,7 +5860,7 @@ msgstr "%w - Weekdag nummer [0(Zondag),6]."
#: field:ir.attachment,res_name:0
#: field:ir.ui.view_sc,resource:0
msgid "Resource Name"
msgstr "Naam bron"
msgstr "Resourcenaam"
#. module: base
#: model:ir.ui.menu,name:base.menu_ir_filters
@ -7851,7 +7851,7 @@ msgstr "Volgend nummer in deze reeks"
#. module: base
#: view:res.partner:0
msgid "at"
msgstr "op"
msgstr "bij"
#. module: base
#: view:ir.rule:0
@ -7925,7 +7925,7 @@ msgstr "Wachtwoord"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_claim
msgid "Portal Claim"
msgstr "Klachten portaat"
msgstr "Klachten portaal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
@ -9480,7 +9480,7 @@ msgstr "Magazijn"
#: model:ir.module.module,shortdesc:base.module_resource
#: field:ir.property,res_id:0
msgid "Resource"
msgstr "Bron"
msgstr "Resource"
#. module: base
#: model:ir.module.module,description:base.module_process
@ -11518,7 +11518,7 @@ msgstr "Methode samenvoeging"
#. module: base
#: field:res.partner,tz:0
msgid "Timezone"
msgstr "Tijdszone"
msgstr "Tijdzone"
#. module: base
#: model:ir.model,name:base.model_ir_actions_report_xml
@ -11938,7 +11938,7 @@ msgstr "Volgende uitvoeringsdatum"
#. module: base
#: field:ir.sequence,padding:0
msgid "Number Padding"
msgstr "Nummer verspringing"
msgstr "Vaste nummerlengte"
#. module: base
#: help:multi_company.default,field_id:0
@ -13677,7 +13677,7 @@ msgstr "Projecten en projecttaken"
#: field:workflow.instance,res_id:0
#: field:workflow.triggers,res_id:0
msgid "Resource ID"
msgstr "Bron ID"
msgstr "Resource ID"
#. module: base
#: view:ir.cron:0
@ -14581,7 +14581,7 @@ msgstr "Filiaalbedrijven"
#: view:workflow.instance:0
#: field:workflow.instance,res_type:0
msgid "Resource Object"
msgstr "Bronobject"
msgstr "Resource object"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_helpdesk

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n"
"X-Generator: Launchpad (build 16491)\n"
"X-Launchpad-Export-Date: 2013-03-06 05:43+0000\n"
"X-Generator: Launchpad (build 16514)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -640,7 +640,7 @@ msgstr "Kolombiya"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_mister
msgid "Mister"
msgstr ""
msgstr "Bay"
#. module: base
#: help:res.country,code:0
@ -682,7 +682,7 @@ msgstr ""
#. module: base
#: field:res.company,logo_web:0
msgid "Logo Web"
msgstr ""
msgstr "Logo Web"
#. module: base
#: code:addons/base/ir/ir_model.py:339
@ -1780,7 +1780,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project_issue
msgid "Portal Issue"
msgstr ""
msgstr "Portal Sorunu"
#. module: base
#: model:ir.ui.menu,name:base.menu_tools

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -243,7 +243,7 @@ class act_window(osv.osv):
def _search_view(self, cr, uid, ids, name, arg, context=None):
res = {}
for act in self.browse(cr, uid, ids, context=context):
field_get = self.pool.get(act.res_model).fields_view_get(cr, uid,
field_get = self.pool[act.res_model].fields_view_get(cr, uid,
act.search_view_id and act.search_view_id.id or False,
'search', context=context)
res[act.id] = str(field_get)
@ -828,7 +828,7 @@ Launch Manually Once: after having been launched manually, it sets automatically
act_type = self.pool.get('ir.actions.actions').read(cr, uid, wizard.action_id.id, ['type'], context=context)
res = self.pool.get(act_type['type']).read(cr, uid, wizard.action_id.id, [], context=context)
if act_type<>'ir.actions.act_window':
if act_type['type'] != 'ir.actions.act_window':
return res
res.setdefault('context','{}')
res['nodestroy'] = True

View File

@ -933,13 +933,6 @@ class ir_model_data(osv.osv):
elif res_id:
model_obj.write(cr, uid, [res_id], values, context=context)
if xml_id:
self.create(cr, uid, {
'name': xml_id,
'model': model,
'module':module,
'res_id':res_id,
'noupdate': noupdate,
},context=context)
if model_obj._inherits:
for table in model_obj._inherits:
inherit_id = model_obj.browse(cr, uid,
@ -951,17 +944,17 @@ class ir_model_data(osv.osv):
'res_id': inherit_id.id,
'noupdate': noupdate,
},context=context)
self.create(cr, uid, {
'name': xml_id,
'model': model,
'module':module,
'res_id':res_id,
'noupdate': noupdate,
},context=context)
else:
if mode=='init' or (mode=='update' and xml_id):
res_id = model_obj.create(cr, uid, values, context=context)
if xml_id:
self.create(cr, uid, {
'name': xml_id,
'model': model,
'module': module,
'res_id': res_id,
'noupdate': noupdate
},context=context)
if model_obj._inherits:
for table in model_obj._inherits:
inherit_id = model_obj.browse(cr, uid,
@ -973,6 +966,13 @@ class ir_model_data(osv.osv):
'res_id': inherit_id.id,
'noupdate': noupdate,
},context=context)
self.create(cr, uid, {
'name': xml_id,
'model': model,
'module': module,
'res_id': res_id,
'noupdate': noupdate
},context=context)
if xml_id and res_id:
self.loads[(module, xml_id)] = (model, res_id)
for table, inherit_field in model_obj._inherits.iteritems():
@ -1060,6 +1060,14 @@ class ir_model_data(osv.osv):
if set(external_ids)-ids_set:
# if other modules have defined this record, we must not delete it
continue
if model == 'ir.model.fields':
# Don't remove the LOG_ACCESS_COLUMNS unless _log_access
# has been turned off on the model.
field = self.pool.get(model).browse(cr, uid, [res_id], context=context)[0]
if field.name in openerp.osv.orm.LOG_ACCESS_COLUMNS and self.pool[field.model]._log_access:
continue
if field.name == 'id':
continue
_logger.info('Deleting %s@%s', res_id, model)
try:
cr.execute('SAVEPOINT record_unlink_save')

View File

@ -557,7 +557,10 @@ class res_config_settings(osv.osv_memory):
'params': {'modules': to_install_missing_names},
}
config = self.pool.get('res.config').next(cr, uid, [], context=context) or {}
# After the uninstall/install calls, the self.pool is no longer valid.
# So we reach into the RegistryManager directly.
res_config = openerp.modules.registry.RegistryManager.get(cr.dbname)['res.config']
config = res_config.next(cr, uid, [], context=context) or {}
if config.get('type') not in ('ir.actions.act_window_close',):
return config
@ -612,7 +615,7 @@ class res_config_settings(osv.osv_memory):
"""
Fetch the human readable name of a specified configuration option.
:param string full_field_name: the full name of the field, structured as follows:
:param string full_field_name: the full name of the field, structured as follows:
model_name.field_name (e.g.: "sale.config.settings.fetchmail_lead")
:return string: human readable name of the field (e.g.: "Create leads from incoming mails")
"""
@ -622,7 +625,7 @@ class res_config_settings(osv.osv_memory):
def get_config_warning(self, cr, msg, context=None):
"""
Helper: return a Warning exception with the given message where the %(field:xxx)s
Helper: return a Warning exception with the given message where the %(field:xxx)s
and/or %(menu:yyy)s are replaced by the human readable field's name and/or menuitem's
full path.
@ -639,6 +642,14 @@ class res_config_settings(osv.osv_memory):
This will return an exception containing the following message:
Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales.
What if there is another substitution in the message already?
-------------------------------------------------------------
You could have a situation where the error message you want to upgrade already contains a substitution. Example:
Cannot find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Journals\Journals.
What you want to do here is simply to replace the path by %menu:account.menu_account_config)s, and leave the rest alone.
In order to do that, you can use the double percent (%%) to escape your new substitution, like so:
Cannot find any account journal of %s type for this company.\n\nYou can create one in the %%(menu:account.menu_account_config)s.
"""
res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings')

View File

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

View File

@ -87,7 +87,7 @@
<field name="city">Wavre</field>
<field name="zip">1300</field>
<field name="country_id" ref="base.be"/>
<field name="street">69 rue de Chimay</field>
<field name="street">69 rue de Namur</field>
<field name="email">info@agrolait.com</field>
<field name="phone">+32 10 588 558</field>
<field name="website">www.agrolait.com</field>

View File

@ -269,7 +269,8 @@
<page string="Sales &amp; Purchases">
<group>
<group>
<field name="user_id"/>
<field name="user_id"
context="{'default_groups_ref': ['base.group_partner_manager']}"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<group>

View File

@ -744,6 +744,7 @@ class users_view(osv.osv):
def create(self, cr, uid, values, context=None):
self._set_reified_groups(values)
return super(users_view, self).create(cr, uid, values, context)
def write(self, cr, uid, ids, values, context=None):
@ -782,6 +783,21 @@ class users_view(osv.osv):
fields1 = (fields + ['groups_id']) if group_fields else fields
values = super(users_view, self).default_get(cr, uid, fields1, context)
self._get_reified_groups(group_fields, values)
# add "default_groups_ref" inside the context to set default value for group_id with xml values
if 'groups_id' in fields and isinstance(context.get("default_groups_ref"), list):
groups = []
ir_model_data = self.pool.get('ir.model.data')
for group_xml_id in context["default_groups_ref"]:
group_split = group_xml_id.split('.')
if len(group_split) != 2:
raise osv.except_osv(_('Invalid context value'), _('Invalid context default_groups_ref value (model.name_id) : "%s"') % group_xml_id)
try:
temp, group_id = ir_model_data.get_object_reference(cr, uid, group_split[0], group_split[1])
except ValueError:
group_id = False
groups += [group_id]
values['groups_id'] = groups
return values
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):

View File

@ -84,48 +84,39 @@
</record>
<menuitem action="action_res_groups" id="menu_action_res_groups" parent="base.menu_users" groups="base.group_no_one"/>
<!-- res.users -->
<record id="view_users_simple_form" model="ir.ui.view">
<field name="name">res.users.simplified.form</field>
<field name="model">res.users</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="Contact" version="7.0">
<form string="Users" version="7.0">
<sheet>
<field name="image" widget='image' class="oe_left oe_avatar" options='{"preview_image": "image_medium", "size": [90, 90]}'/>
<div class="oe_title">
<div class="oe_edit_only">
<label for="name"/>
<field name="id" invisible="1"/>
<div class="oe_form_box_info oe_text_center" style="margin-bottom: 10px" attrs="{'invisible': [('id', '>', 0)]}">
You are creating a new user. After saving, the user will receive an invite email containing a link to set its password.
</div>
<field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
<label for="login" class="oe_edit_only"/>
<h2><field name="login"/></h2>
<label for="company_id" class="oe_edit_only" groups="base.group_multi_company"/>
<field name="company_id" context="{'user_preference': 0}" groups="base.group_multi_company"/>
</div>
<h1>
<field name="name" default_focus="1" placeholder="Name" />
</h1>
<field name="category_id" widget="many2many_tags" placeholder="Tags..."/>
</div>
<group>
<group>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<field name="street2"/>
<div class="address_format">
<field name="city" placeholder="City" style="width: 40%%"/>
<field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)"/>
<field name="zip" placeholder="ZIP" style="width: 20%%"/>
</div>
<field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}'/>
<label for="groups_id" string="Access Rights"
attrs="{'invisible': [('id', '>', 0)]}"/>
<div attrs="{'invisible': [('id', '>', 0)]}">
<field name="groups_id" readonly="1" widget="many2many_tags" style="display: inline;"/> You will be able to define additional access rights by editing the newly created user under the Settings / Users menu.
</div>
<field name="website" widget="url" placeholder="e.g. www.openerp.com"/>
</group>
<group>
<field name="phone" placeholder="e.g. +32.81.81.37.00"/>
<field name="mobile"/>
<field name="fax"/>
<field name="email" widget="email"/>
<field name="email" widget="email" required="True"/>
</group>
</group>
</sheet>
</sheet>
</form>
</field>
</record>
@ -134,8 +125,8 @@
<field name="model">res.users</field>
<field name="arch" type="xml">
<form string="Users" version="7.0">
<field name="id" invisible="1"/>
<sheet>
<field name="id" invisible="1"/>
<div class="oe_right oe_button_box">
<button string="Change Password" type="action" name="%(change_password_wizard_action)d"
help="Change the user password."/>
@ -146,17 +137,29 @@
<h1><field name="name"/></h1>
<label for="login" class="oe_edit_only"/>
<h2><field name="login"/></h2>
<label for="company_id" class="oe_edit_only" groups="base.group_multi_company"/>
<field name="company_id" context="{'user_preference': 0}" groups="base.group_multi_company"/>
</div>
<group>
<group>
<field name="company_id" context="{'user_preference': 0}"/>
</group>
<group>
<field name="active"/>
</group>
</group>
<notebook colspan="4">
<page string="Access Rights">
<group>
<field name="active"/>
</group>
<group string="Allowed Companies" groups="base.group_multi_company">
<field name="company_ids" nolabel="1" widget="many2many_tags"/>
</group>
<group col="4">
<field name="groups_id"/>
</group>
</page>
<page string="Contact">
<group>
<field name="phone" placeholder="e.g. +32.81.81.37.00"/>
<field name="mobile"/>
<field name="fax"/>
<field name="email" widget="email"/>
</group>
</page>
<page string="Preferences">
<group>
<group name="preferences">
@ -168,24 +171,16 @@
<field domain="[('usage','=','menu')]" name="menu_id" required="True"/>
</group>
</group>
<group>
<field name="email" widget="email"/>
<group string="Email preferences">
<field name="signature"/>
</group>
</page>
<page string="Access Rights">
<group string="Allowed Companies" groups="base.group_multi_company">
<field name="company_ids" nolabel="1" widget="many2many_tags"/>
</group>
<group col="4">
<field name="groups_id"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_users_tree" model="ir.ui.view">
<field name="name">res.users.tree</field>
<field name="model">res.users</field>

View File

@ -393,6 +393,7 @@
<rng:optional><rng:attribute name="day_length"/></rng:optional>
<rng:optional><rng:attribute name="date_start"/></rng:optional>
<rng:optional><rng:attribute name="date_stop"/></rng:optional>
<rng:optional><rng:attribute name="progress"/></rng:optional>
<rng:optional><rng:attribute name="date_string"/></rng:optional>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="default_group_by"/></rng:optional>

View File

@ -47,7 +47,7 @@
with mute_logger('openerp.tools.safe_eval'):
safe_eval('open("/etc/passwd","r")')
assert False, "safe_eval should not allow calling open() builtin"
except NameError:
except ValueError:
pass
-

View File

@ -39,42 +39,42 @@ class test_res_config(common.TransactionCase):
res = self.res_config.get_option_path(self.cr, self.uid, self.menu_xml_id, context=None)
# Check types
self.assertTrue(isinstance(res, tuple)), "The result of get_option_path() should be a tuple (got %s)" % type(res)
self.assertTrue(len(res) == 2), "The tuple should contain 2 elements (got %s)" % len(res)
self.assertTrue(isinstance(res[0], basestring)), "The first element of the tuple should be a string (got %s)" % type(res[0])
self.assertTrue(isinstance(res[1], long)), "The second element of the tuple should be an long (got %s)" % type(res[1])
self.assertIsInstance(res, tuple)
self.assertEqual(len(res), 2, "The result should contain 2 elements")
self.assertIsInstance(res[0], basestring)
self.assertIsInstance(res[1], long)
# Check returned values
self.assertTrue(res[0] == self.expected_path), "Result mismatch: expected %s, got %s" % (self.expected_path, res[0])
self.assertTrue(res[1] == self.expected_action_id), "Result mismatch: expected %s, got %s" % (self.expected_action_id, res[1])
self.assertEqual(res[0], self.expected_path)
self.assertEqual(res[1], self.expected_action_id)
def test_10_get_option_name(self):
""" The get_option_name() method should return a string """
res = self.res_config.get_option_name(self.cr, self.uid, self.full_field_name, context=None)
# Check type
self.assertTrue(isinstance(res, basestring)), "Result type mismatch: expected basestring, got %s" % type(res)
self.assertIsInstance(res, basestring)
# Check returned value
self.assertTrue(res == self.expected_name), "Result mismatch: expected %s, got %s" % (self.expected_name, res)
self.assertEqual(res, self.expected_name)
def test_20_get_config_warning(self):
""" The get_config_warning() method should return a RedirectWarning """
res = self.res_config.get_config_warning(self.cr, self.error_msg, context=None)
# Check type
self.assertTrue(isinstance(res, openerp.exceptions.RedirectWarning)), "Result type mismatch: expected openerp.exceptions.RedirectWarning, got %s" % type(res)
self.assertIsInstance(res, openerp.exceptions.RedirectWarning)
# Check returned value
self.assertTrue(res.args[0], self.expected_final_error_msg), "Result mismatch: expected %s, got %s" % (self.expected_final_error_msg, res.args[0])
self.assertTrue(res.args[1], self.expected_action_id), "Result mismatch: expected %s, got %s" % (self.expected_action_id, res.args[1])
self.assertEqual(res.args[0], self.expected_final_error_msg)
self.assertEqual(res.args[1], self.expected_action_id)
def test_30_get_config_warning_wo_menu(self):
""" The get_config_warning() method should return a Warning exception """
res = self.res_config.get_config_warning(self.cr, self.error_msg_wo_menu, context=None)
# Check type
self.assertTrue(isinstance(res, openerp.exceptions.Warning)), "Result type mismatch: expected openerp.exceptions.Warning, got %s" % type(res)
self.assertIsInstance(res, openerp.exceptions.Warning)
# Check returned value
self.assertTrue(res.args[0], self.expected_final_error_msg), "Result mismatch: expected %s, got %s" % (self.expected_final_error_msg_wo_menu, res.args[0])
self.assertEqual(res.args[0], self.expected_final_error_msg_wo_menu)

View File

@ -204,8 +204,8 @@ def log(logger, level, prefix, msg, depth=None):
def dispatch_rpc(service_name, method, params):
""" Handle a RPC call.
This is pure Python code, the actual marshalling (from/to XML-RPC or
NET-RPC) is done in a upper layer.
This is pure Python code, the actual marshalling (from/to XML-RPC) is done
in a upper layer.
"""
try:
rpc_request = logging.getLogger(__name__ + '.rpc.request')
@ -246,12 +246,16 @@ def dispatch_rpc(service_name, method, params):
log(rpc_request,logging.DEBUG, logline, replace_request_password(params), depth=1)
return result
except openerp.osv.orm.except_orm:
raise
except openerp.exceptions.AccessError:
raise
except openerp.exceptions.AccessDenied:
raise
except openerp.exceptions.Warning:
raise
except openerp.exceptions.RedirectWarning:
raise
except openerp.exceptions.DeferredException, e:
_logger.exception(tools.exception_to_unicode(e))
post_mortem(e.traceback)

View File

@ -480,7 +480,9 @@ class browse_record(object):
try:
return self[name]
except KeyError, e:
raise AttributeError(e)
import sys
exc_info = sys.exc_info()
raise AttributeError, "Got %r while trying to get attribute %s on a %s record." % (e, name, self._table._name), exc_info[2]
def __contains__(self, name):
return (name in self._table._columns) or (name in self._table._inherit_fields) or hasattr(self._table, name)
@ -3589,8 +3591,6 @@ class BaseModel(object):
"""
if not context:
context = {}
self.check_access_rights(cr, user, 'read')
fields = self.check_field_access_rights(cr, user, 'read', fields)
if isinstance(ids, (int, long)):
@ -3600,12 +3600,7 @@ class BaseModel(object):
select = map(lambda x: isinstance(x, dict) and x['id'] or x, select)
result = self._read_flat(cr, user, select, fields, context, load)
for r in result:
for key, v in r.items():
if v is None:
r[key] = False
if isinstance(ids, (int, long, dict)):
if isinstance(ids, (int, long)):
return result and result[0] or False
return result
@ -3739,34 +3734,37 @@ class BaseModel(object):
if field in self._columns:
fobj = self._columns[field]
if not fobj:
continue
groups = fobj.read
if groups:
edit = False
for group in groups:
module = group.split(".")[0]
grp = group.split(".")[1]
cr.execute("select count(*) from res_groups_users_rel where gid IN (select res_id from ir_model_data where name=%s and module=%s and model=%s) and uid=%s", \
(grp, module, 'res.groups', user))
readonly = cr.fetchall()
if readonly[0][0] >= 1:
edit = True
break
elif readonly[0][0] == 0:
edit = False
else:
edit = False
if fobj:
groups = fobj.read
if groups:
edit = False
for group in groups:
module = group.split(".")[0]
grp = group.split(".")[1]
cr.execute("select count(*) from res_groups_users_rel where gid IN (select res_id from ir_model_data where name=%s and module=%s and model=%s) and uid=%s", \
(grp, module, 'res.groups', user))
readonly = cr.fetchall()
if readonly[0][0] >= 1:
edit = True
break
elif readonly[0][0] == 0:
edit = False
else:
edit = False
if not edit:
if type(vals[field]) == type([]):
vals[field] = []
elif type(vals[field]) == type(0.0):
vals[field] = 0
elif type(vals[field]) == type(''):
vals[field] = '=No Permission='
else:
vals[field] = False
if vals[field] is None:
vals[field] = False
if not edit:
if type(vals[field]) == type([]):
vals[field] = []
elif type(vals[field]) == type(0.0):
vals[field] = 0
elif type(vals[field]) == type(''):
vals[field] = '=No Permission='
else:
vals[field] = False
return res
# TODO check READ access
@ -5280,7 +5278,10 @@ class BaseModel(object):
assert signal_name
return (lambda *args, **kwargs:
self.signal_workflow(*args, signal=signal_name, **kwargs))
return super(BaseModel, self).__getattr__(name)
get = getattr(super(BaseModel, self), '__getattr__', None)
if get is not None: return get(name)
raise AttributeError(
"'%s' object has no attribute '%s'" % (type(self).__name__, name))
# keep this import here, at top it will cause dependency cycle errors
import expression
@ -5352,8 +5353,7 @@ def convert_pgerror_23502(model, fields, info, e):
message = _(u"Missing required value for the field '%s'.") % field_name
field = fields.get(field_name)
if field:
message = _(u"%s This might be '%s' in the current model, or a field "
u"of the same name in an o2m.") % (message, field['string'])
message = _(u"Missing required value for the field '%s' (%s)") % (field['string'], field_name)
return {
'message': message,
'field': field_name,

View File

@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
import base64
import contextlib
import logging
import os
import threading
import traceback
from openerp import SUPERUSER_ID
import openerp.pooler
import openerp.release
import openerp.sql_db
import openerp.tools
@ -20,39 +23,44 @@ self_id_protect = threading.Semaphore()
# This should be moved to openerp.modules.db, along side initialize().
def _initialize_db(id, db_name, demo, lang, user_password):
cr = None
try:
self_actions[id]['progress'] = 0
cr = openerp.sql_db.db_connect(db_name).cursor()
openerp.modules.db.initialize(cr) # TODO this should be removed as it is done by pooler.restart_pool.
openerp.tools.config['lang'] = lang
cr.commit()
cr.close()
cr = None
try:
self_actions[id]['progress'] = 0
cr = openerp.sql_db.db_connect(db_name).cursor()
openerp.modules.db.initialize(cr) # TODO this should be removed as it is done by pooler.restart_pool.
openerp.tools.config['lang'] = lang
cr.commit()
finally:
if cr:
cr.close()
cr = None
pool = openerp.pooler.restart_pool(db_name, demo, self_actions[id],
update_module=True)[1]
cr = openerp.sql_db.db_connect(db_name).cursor()
try:
cr = openerp.sql_db.db_connect(db_name).cursor()
if lang:
modobj = pool.get('ir.module.module')
mids = modobj.search(cr, SUPERUSER_ID, [('state', '=', 'installed')])
modobj.update_translations(cr, SUPERUSER_ID, mids, lang)
if lang:
modobj = pool.get('ir.module.module')
mids = modobj.search(cr, SUPERUSER_ID, [('state', '=', 'installed')])
modobj.update_translations(cr, SUPERUSER_ID, mids, lang)
# update admin's password and lang
values = {'password': user_password, 'lang': lang}
pool.get('res.users').write(cr, SUPERUSER_ID, [SUPERUSER_ID], values)
# update admin's password and lang
values = {'password': user_password, 'lang': lang}
pool.get('res.users').write(cr, SUPERUSER_ID, [SUPERUSER_ID], values)
cr.execute('SELECT login, password FROM res_users ORDER BY login')
self_actions[id].update(users=cr.dictfetchall(), clean=True)
cr.commit()
cr.close()
cr.execute('SELECT login, password FROM res_users ORDER BY login')
self_actions[id].update(users=cr.dictfetchall(), clean=True)
cr.commit()
finally:
if cr:
cr.close()
except Exception, e:
self_actions[id].update(clean=False, exception=e)
_logger.exception('CREATE DATABASE failed:')
self_actions[id]['traceback'] = traceback.format_exc()
if cr:
cr.close()
def dispatch(method, params):
if method in [ 'create', 'get_progress', 'drop', 'dump',
@ -337,7 +345,7 @@ def exp_server_version():
""" Return the version of the server
Used by the client to verify the compatibility with its own version
"""
return release.version
return openerp.release.version
def exp_migrate_databases(databases):
for db in databases:

View File

@ -98,8 +98,6 @@ def check(f):
if openerp.pooler.get_pool(dbname)._init:
raise openerp.exceptions.Warning('Currently, this database is not fully loaded and can not be used.')
return f(dbname, *args, **kwargs)
except except_orm:
raise
except IntegrityError, inst:
osv_pool = openerp.pooler.get_pool(dbname)
for key in osv_pool._sql_error.keys():
@ -127,9 +125,6 @@ def check(f):
raise openerp.osv.orm.except_orm(_('Integrity Error'), msg)
else:
raise openerp.osv.orm.except_orm(_('Integrity Error'), inst[0])
except Exception:
_logger.exception("Uncaught exception")
raise
return wrapper

View File

@ -407,7 +407,7 @@ class WorkerCron(Worker):
while True:
# acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
# TODO why isnt openerp.addons.base defined ?
import base
import openerp.addons.base as base
acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name)
if not acquired:
break

View File

@ -32,8 +32,7 @@ import StringIO
import errno
import logging
import os
import signal
import platform
import socket
import sys
import threading
@ -43,7 +42,6 @@ import werkzeug.serving
import werkzeug.contrib.fixers
import openerp
import openerp.modules
import openerp.tools.config as config
import websrv_lib

View File

@ -35,4 +35,34 @@ class m(openerp.osv.osv.Model):
def generate_undefined(self, cr, uid, ids, context=None):
self.surely_undefined_symbol
def generate_except_osv_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_except_osv, context)
def generate_except_orm_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_except_orm, context)
def generate_warning_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_warning, context)
def generate_redirect_warning_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_redirect_warning, context)
def generate_access_denied_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_access_denied, context)
def generate_access_error_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_access_error, context)
def generate_exc_access_denied_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_exc_access_denied, context)
def generate_undefined_safe_eval(self, cr, uid, ids, context=None):
self.generate_safe_eval(cr, uid, ids, self.generate_undefined, context)
def generate_safe_eval(self, cr, uid, ids, f, context):
globals_dict = { 'generate': lambda *args: f(cr, uid, ids, context) }
openerp.tools.safe_eval.safe_eval("generate()", mode='exec', globals_dict=globals_dict)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -7,9 +7,11 @@
<field name="model">test.exceptions.model</field>
<field name="arch" type="xml">
<form string="Test exceptions">
<label string="Each button generates a specific exception on the server. The text on the right is the expected representation of the exception when displayed on the client."/>
<label string="Each button generates a specific exception on the server. The text on the right is the expected representation of the exception when displayed on the client. Button marked with a '*' use safe_eval()."/>
<separator string="" colspan="8"/>
<group colspan="8" col="8">
<group colspan="4" col="8">
<group colspan="8" col="8">
<separator string="" colspan="8"/>
<button name="generate_except_osv" string="except_osv" type="object" icon="gtk-ok" colspan="1"/>
<label string="Warning-description"/>
</group>
@ -41,6 +43,42 @@
<button name="generate_undefined" string="Undefined" type="object" icon="gtk-ok" colspan="1"/>
<label string="Server error-traceback"/>
</group>
</group>
<group colspan="4" col="8">
<group colspan="8" col="8">
<button name="generate_except_osv_safe_eval" string="except_osv*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Warning-description"/>
</group>
<group colspan="8" col="8">
<button name="generate_except_orm_safe_eval" string="except_orm*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Warning-description"/>
</group>
<group colspan="8" col="8">
<button name="generate_warning_safe_eval" string="Warning*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Warning-description"/>
</group>
<group colspan="8" col="8">
<button name="generate_redirect_warning_safe_eval" string="RedirectWarning*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Warning-description-redirection button"/>
</group>
<group colspan="8" col="8">
<button name="generate_access_denied_safe_eval" string="AccessDenied*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Access denied-traceback"/>
</group>
<group colspan="8" col="8">
<button name="generate_access_error_safe_eval" string="AccessError*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Access rights error-description"/>
</group>
<group colspan="8" col="8">
<button name="generate_exc_access_denied_safe_eval" string="Exc AccessDenied*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Access denied-traceback"/>
</group>
<group colspan="8" col="8">
<button name="generate_undefined_safe_eval" string="Undefined*" type="object" icon="gtk-ok" colspan="1"/>
<label string="Server error-traceback"/>
</group>
</group>
</group>
</form>
</field>
</record>

View File

@ -393,18 +393,14 @@ class test_required_string_field(ImporterCase):
def test_empty(self):
result = self.import_(['value'], [[]])
self.assertEqual(result['messages'], [message(
u"Missing required value for the field 'value'. This might be "
u"'unknown' in the current model, or a field of the same name in "
u"an o2m.")])
u"Missing required value for the field 'unknown' (value)")])
self.assertIs(result['ids'], False)
@mute_logger('openerp.sql_db', 'openerp.osv.orm')
def test_not_provided(self):
result = self.import_(['const'], [['12']])
self.assertEqual(result['messages'], [message(
u"Missing required value for the field 'value'. This might be "
u"'unknown' in the current model, or a field of the same name in "
u"an o2m.")])
u"Missing required value for the field 'unknown' (value)")])
self.assertIs(result['ids'], False)
class test_text(ImporterCase):

View File

@ -142,17 +142,6 @@ class configmanager(object):
help="specify the private key file for the SSL connection")
parser.add_option_group(group)
# NET-RPC
group = optparse.OptionGroup(parser, "NET-RPC Configuration")
group.add_option("--netrpc-interface", dest="netrpc_interface", my_default='',
help="specify the TCP IP address for the NETRPC protocol")
group.add_option("--netrpc-port", dest="netrpc_port", my_default=8070,
help="specify the TCP port for the NETRPC protocol", type="int")
# Needed a few day for runbot and saas
group.add_option("--no-netrpc", dest="netrpc", action="store_false", my_default=False, help="disable the NETRPC protocol")
group.add_option("--netrpc", dest="netrpc", action="store_true", my_default=False, help="enable the NETRPC protocol")
parser.add_option_group(group)
# WEB
# TODO move to web addons after MetaOption merge
group = optparse.OptionGroup(parser, "Web interface Configuration")
@ -182,7 +171,7 @@ class configmanager(object):
# Logging Group
group = optparse.OptionGroup(parser, "Logging Configuration")
group.add_option("--logfile", dest="logfile", help="file where the server log will be stored")
group.add_option("--no-logrotate", dest="logrotate", action="store_false", my_default=True, help="do not rotate the logfile")
group.add_option("--logrotate", dest="logrotate", action="store_true", my_default=False, help="enable logfile rotation")
group.add_option("--syslog", action="store_true", dest="syslog", my_default=False, help="Send the log to the syslog server")
group.add_option('--log-handler', action="append", default=DEFAULT_LOG_HANDLER, my_default=DEFAULT_LOG_HANDLER, metavar="PREFIX:LEVEL", help='setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This option can be repeated. Example: "openerp.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO")')
group.add_option('--log-request', action="append_const", dest="log_handler", const="openerp.netsvc.rpc.request:DEBUG", help='shortcut for --log-handler=openerp.netsvc.rpc.request:DEBUG')
@ -383,8 +372,8 @@ class configmanager(object):
'db_name', 'db_user', 'db_password', 'db_host',
'db_port', 'db_template', 'logfile', 'pidfile', 'smtp_port',
'email_from', 'smtp_server', 'smtp_user', 'smtp_password',
'netrpc_interface', 'netrpc_port', 'db_maxconn', 'import_partial', 'addons_path',
'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone',
'db_maxconn', 'import_partial', 'addons_path',
'xmlrpc', 'syslog', 'without_demo', 'timezone',
'xmlrpcs_interface', 'xmlrpcs_port', 'xmlrpcs',
'static_http_enable', 'static_http_document_root', 'static_http_url_prefix',
'secure_cert_file', 'secure_pkey_file', 'dbfilter', 'log_handler', 'log_level'
@ -407,7 +396,7 @@ class configmanager(object):
keys = [
'language', 'translate_out', 'translate_in', 'overwrite_existing_translations',
'debug_mode', 'smtp_ssl', 'load_language',
'stop_after_init', 'logrotate', 'without_demo', 'netrpc', 'xmlrpc', 'syslog',
'stop_after_init', 'logrotate', 'without_demo', 'xmlrpc', 'syslog',
'list_db', 'xmlrpcs', 'proxy_mode',
'test_file', 'test_enable', 'test_commit', 'test_report_directory',
'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads', 'unaccent',

View File

@ -25,6 +25,7 @@ import logging
import os.path
import pickle
import re
import sys
# for eval context:
import time
@ -61,13 +62,16 @@ from misc import unquote
unsafe_eval = eval
from safe_eval import safe_eval as eval
class ConvertError(Exception):
def __init__(self, doc, orig_excpt):
self.d = doc
self.orig = orig_excpt
class ParseError(Exception):
def __init__(self, msg, text, filename, lineno):
self.msg = msg
self.text = text
self.filename = filename
self.lineno = lineno
def __str__(self):
return 'Exception:\n\t%s\nUsing file:\n%s' % (self.orig, self.d)
return '"%s" while parsing %s:%s, near\n%s' \
% (self.msg, self.filename, self.lineno, self.text)
def _ref(self, cr):
return lambda x: self.id_get(cr, x)
@ -843,13 +847,10 @@ form: module.record_id""" % (xml_id,)
if rec.tag in self._tags:
try:
self._tags[rec.tag](self.cr, rec, n)
except:
_logger.error('Parse error in %s:%d: \n%s',
rec.getroottree().docinfo.URL,
rec.sourceline,
etree.tostring(rec).strip(), exc_info=True)
except Exception, e:
self.cr.rollback()
raise
exc_info = sys.exc_info()
raise ParseError, (misc.ustr(e), etree.tostring(rec).rstrip(), rec.getroottree().docinfo.URL, rec.sourceline), exc_info[2]
return True
def __init__(self, cr, module, idref, mode, report=None, noupdate=False):

View File

@ -35,6 +35,10 @@ from opcode import HAVE_ARGUMENT, opmap, opname
from types import CodeType
import logging
from .misc import ustr
import openerp
__all__ = ['test_expr', 'safe_eval', 'const_eval']
# The time module is usually already provided in the safe_eval environment
@ -106,11 +110,11 @@ def test_expr(expr, allowed_codes, mode="eval"):
expr = expr.strip()
code_obj = compile(expr, "", mode)
except (SyntaxError, TypeError):
_logger.debug('Invalid eval expression', exc_info=True)
raise
except Exception:
_logger.debug('Disallowed or invalid eval expression', exc_info=True)
raise ValueError("%s is not a valid expression" % expr)
except Exception, e:
import sys
exc_info = sys.exc_info()
raise ValueError, '"%s" while compiling\n%r' % (ustr(e), expr), exc_info[2]
for code in _get_opcodes(code_obj):
if code not in allowed_codes:
raise ValueError("opcode %s not allowed (%r)" % (opname[code], expr))
@ -237,10 +241,22 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal
'set' : set
}
)
c = test_expr(expr, _SAFE_OPCODES, mode=mode)
try:
return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
except Exception:
_logger.exception('Cannot eval %r', expr)
return eval(c, globals_dict, locals_dict)
except openerp.osv.orm.except_orm:
raise
except openerp.exceptions.Warning:
raise
except openerp.exceptions.RedirectWarning:
raise
except openerp.exceptions.AccessDenied:
raise
except openerp.exceptions.AccessError:
raise
except Exception, e:
import sys
exc_info = sys.exc_info()
raise ValueError, '"%s" while evaluating\n%r' % (ustr(e), expr), exc_info[2]
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -12,6 +12,5 @@ rm openerp-server.log
--stop-after-init \
--no-xmlrpc \
--no-xmlrpcs \
--no-netrpc \
--test-enable \
--logfile=openerp-server.log