[MERGE] sync with trunk

bzr revid: chm@openerp.com-20131202150856-fzrfcoa8pmsjutau
This commit is contained in:
Christophe Matthieu 2013-12-02 16:08:56 +01:00
commit 8460122209
102 changed files with 1885 additions and 1066 deletions

View File

@ -25,25 +25,25 @@ create table ir_values
CREATE TABLE ir_model (
id serial,
model varchar(64) DEFAULT ''::varchar NOT NULL,
name varchar(64),
state varchar(16),
model varchar DEFAULT ''::varchar NOT NULL,
name varchar,
state varchar,
info text,
primary key(id)
);
CREATE TABLE ir_model_fields (
id serial,
model varchar(64) DEFAULT ''::varchar NOT NULL,
model varchar DEFAULT ''::varchar NOT NULL,
model_id int references ir_model on delete cascade,
name varchar(64) DEFAULT ''::varchar NOT NULL,
relation varchar(64),
select_level varchar(4),
field_description varchar(256),
ttype varchar(64),
state varchar(64) default 'base',
name varchar DEFAULT ''::varchar NOT NULL,
relation varchar,
select_level varchar,
field_description varchar,
ttype varchar,
state varchar default 'base',
relate boolean default False,
relation_field varchar(128),
relation_field varchar,
translate boolean default False,
primary key(id)
);
@ -338,11 +338,11 @@ CREATE TABLE ir_model_data (
write_date timestamp without time zone,
write_uid integer,
noupdate boolean,
name character varying(128) NOT NULL,
name varchar NOT NULL,
date_init timestamp without time zone,
date_update timestamp without time zone,
module character varying(64) NOT NULL,
model character varying(64) NOT NULL,
module varchar NOT NULL,
model varchar NOT NULL,
res_id integer, primary key(id)
);
@ -361,7 +361,7 @@ CREATE TABLE ir_model_constraint (
module integer NOT NULL references ir_module_module on delete restrict,
model integer NOT NULL references ir_model on delete restrict,
type character varying(1) NOT NULL,
name character varying(128) NOT NULL
name varchar NOT NULL
);
-- Records relation tables (i.e. implementing many2many) installed by a module
@ -376,7 +376,7 @@ CREATE TABLE ir_model_relation (
date_update timestamp without time zone,
module integer NOT NULL references ir_module_module on delete restrict,
model integer NOT NULL references ir_model on delete restrict,
name character varying(128) NOT NULL
name varchar NOT NULL
);
---------------------------------

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-11-12 05:29+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:48+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:30+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:48+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:30+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:30+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:39+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -1139,7 +1139,7 @@ msgstr "Preferencias de email"
#: code:addons/base/ir/ir_fields.py:195
#, python-format
msgid "'%s' does not seem to be a valid date for field '%%(field)s'"
msgstr "'%s' no parece ser una fecha valida para el campo '%%(field)s'"
msgstr "'%s' no parece ser una fecha válida para el campo '%%(field)s'"
#. module: base
#: view:res.partner:0
@ -1718,7 +1718,7 @@ msgstr "Haití"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
msgstr "Nomina de Francia"
msgstr "Nómina de Francia"
#. module: base
#: view:ir.ui.view:0
@ -5047,6 +5047,26 @@ msgid ""
" and iban account numbers\n"
" "
msgstr ""
"\n"
"Módulo que extiende el objeto estándar account_bank_statement_line para un "
"mejor soporte de banca electrónica.\n"
"============================================================================="
"======================\n"
"\n"
"Este módulo añade:\n"
"-----------------\n"
" - fecha de cambio de divisa\n"
" - pagos por lotes\n"
" - trazabilidad de los cambios en las líneas de extractos bancarios\n"
" - vistas de líneas de extractos bancarios\n"
" - informe de saldos de extractos bancarios\n"
" - mejoras en el rendimiento para la importación digital de extractos "
"bancarios \n"
" (mediante el flag de contexto 'ebanking_import')\n"
" - name_search en res.partner.bank mejorada para permitir buscar tanto en "
"el código de cuenta bancaria \n"
" como en el código IBAN.\n"
" "
#. module: base
#: selection:ir.module.module,state:0
@ -7260,7 +7280,7 @@ msgstr "El nombre del grupo no puede empezar con \"-\""
#: view:ir.module.module:0
#: model:ir.ui.menu,name:base.module_mi
msgid "Apps"
msgstr "Tienda de aplicaciones"
msgstr "Aplicaciones en línea"
#. module: base
#: view:ir.ui.view_sc: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-11-12 05:39+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:39+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:41+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -15,8 +15,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-11-12 05:41+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:39+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:32+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:31+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:36+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:41+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:01+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:32+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -25,6 +25,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
"\n"
"Módulo para a emisión e impresión de cheques\n"
"================================================\n"
" "
#. module: base
#: model:res.country,name:base.sh
@ -60,7 +64,7 @@ msgstr "Arquitectura de Vistas"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
msgstr ""
msgstr "Presuposto, ordes de venta, envío e control de facturación"
#. module: base
#: selection:ir.sequence,implementation:0
@ -89,12 +93,12 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
msgstr ""
msgstr "Interfaz de pantalla táctil para tendas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
msgstr ""
msgstr "Nómina da India"
#. module: base
#: help:ir.cron,model:0
@ -124,11 +128,22 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
"\n"
"Módulo que engade fabricantes e atributos no formulario de producto.\n"
"===========================================================\n"
"\n"
"Pode defini-los seguintes campos para un producto:\n"
"-------------------------------------------------\n"
"* Fabricante\n"
"* Nome do producto do fabricante\n"
"* Código do producto do fabricante\n"
"* Atributos do producto\n"
" "
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "Argumentos suplementarios"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@ -137,11 +152,14 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
"\n"
"O módulo engade usuarios de Google a res.user.\n"
"========================================\n"
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
msgstr ""
msgstr "Marque se o contacto é un traballador"
#. module: base
#: help:ir.model.fields,domain:0
@ -172,7 +190,7 @@ msgstr "Fiestra destino"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
msgstr ""
msgstr "Ruta do ficheiro do informe principal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@ -193,6 +211,15 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
"\n"
"Xere facturas dende os gastos e partes de horas.\n"
"========================================================\n"
"\n"
"Módulo para xerar facturas baseadas nos costes (recursos humanos, gastos, "
"...).\n"
"\n"
"Pode definir tarifas na contabilidade analítica, realizando algún informe "
"teórico de beneficios."
#. module: base
#: code:addons/base/ir/ir_sequence.py:134
@ -244,7 +271,7 @@ msgstr "creado"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
msgstr ""
msgstr "Ruta XSL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@ -270,7 +297,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "Multidivisa"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -294,6 +321,7 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
"O usuario interno encargado de se comunicar con este contacto, se o houber."
#. module: base
#: view:res.partner:0
@ -321,6 +349,8 @@ msgid ""
"Database ID of record to open in form view, when ``view_mode`` is set to "
"'form' only"
msgstr ""
"ID da base de datos do rexistro para abrir no formulario de vista, cando se "
"establece o modo de vista únicamente a 'formulario'"
#. module: base
#: help:ir.values,key2:0
@ -365,6 +395,13 @@ msgid ""
"document and Wiki based Hidden.\n"
" "
msgstr ""
"\n"
"Instalador oculto para a xestión do coñecemiento.\n"
"==========================================\n"
"\n"
"Fai disponible a configuración da aplicación de conocimiento dende a que se "
"pode instala-lo módulo 'document' e o módulo 'wiki'.\n"
" "
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
@ -383,6 +420,13 @@ msgid ""
"invoices from picking, OpenERP is able to add and compute the shipping "
"line.\n"
msgstr ""
"\n"
"Permite engadir métodos de envío nos pedidos de venta e nos albaráns.\n"
"==============================================================\n"
"\n"
"Pode defini-lo seu propio transportista e as suas tarifas de envío. Cando se "
"creen facturas dende o albarán, OpenERP poderá engadir e calcula-la liña de "
"envío.\n"
#. module: base
#: code:addons/base/ir/ir_filters.py:80
@ -391,6 +435,8 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
"Xa existe un filtro compartido por defecto para %(model)s, elimíneo ou "
"cámbieo antes de configurar un novo"
#. module: base
#: code:addons/orm.py:2649
@ -488,7 +534,7 @@ msgstr ""
#. module: base
#: field:ir.model.relation,name:0
msgid "Relation Name"
msgstr ""
msgstr "Nome da relación"
#. module: base
#: view:ir.rule:0
@ -533,7 +579,7 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
msgstr ""
msgstr "Transición do fluxo de traballo"
#. module: base
#: model:res.country,name:base.gf
@ -543,7 +589,7 @@ msgstr "Güiana francesa"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
msgstr ""
msgstr "Traballos, departamentos e detalles de traballadores"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@ -559,11 +605,20 @@ msgid ""
"that have no counterpart in the general financial accounts.\n"
" "
msgstr ""
"\n"
"Módulo para defini-lo obxeto contabilidad analítica\n"
"===============================================\n"
"\n"
"En OpenERP, as contas analíticas están vinculadas cas contas xerais \n"
"pero trátanse de forma totalmente independiente. Polo tanto, pódense "
"introducir \n"
"operacións analíticas sen contrapartida na contabilidade financieira.\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
msgid "Ideas"
msgstr ""
msgstr "Ideas"
#. module: base
#: model:ir.module.module,description:base.module_event
@ -652,7 +707,7 @@ msgstr "Colombia"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_mister
msgid "Mister"
msgstr ""
msgstr "Señor"
#. module: base
#: help:res.country,code:0
@ -681,7 +736,7 @@ msgstr "Non traducido"
#. module: base
#: view:ir.mail_server:0
msgid "Outgoing Mail Server"
msgstr ""
msgstr "Servidor de correo saínte"
#. module: base
#: help:ir.actions.act_window,context:0
@ -695,7 +750,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:344
@ -772,6 +827,12 @@ msgid ""
"Contains the installer for marketing-related modules.\n"
" "
msgstr ""
"\n"
"Menú para Marketing\n"
"===================\n"
"\n"
"Contén o instalador para os módulos relacionados co marketing.\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_web_linkedin
@ -782,6 +843,11 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
"\n"
"Módulo web de LinkedIn para OpenERP.\n"
"=================================\n"
"Este módulo provee a integración de LinkedIn con OpenERP.\n"
" "
#. module: base
#: help:ir.actions.act_window,src_model:0
@ -803,7 +869,7 @@ msgstr "Jordan"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hr
msgid "Croatia - RRIF 2012 COA"
msgstr ""
msgstr "Croacia - RRIF 2012 COA"
#. module: base
#: help:ir.cron,nextcall:0
@ -867,7 +933,7 @@ msgstr "Seguridade e autenticación"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar
msgid "Web Calendar"
msgstr ""
msgstr "Calendario web"
#. module: base
#: selection:base.language.install,lang:0
@ -878,7 +944,7 @@ msgstr "Sueco / svenska"
#: field:base.language.export,name:0
#: field:ir.attachment,datas_fname:0
msgid "File Name"
msgstr ""
msgstr "Nome do ficheiro"
#. module: base
#: model:res.country,name:base.rs
@ -971,7 +1037,7 @@ msgstr "Preferencias de email"
#: code:addons/base/ir/ir_fields.py:195
#, python-format
msgid "'%s' does not seem to be a valid date for field '%%(field)s'"
msgstr ""
msgstr "'%s' non semella ser unha data válida para o campo '%%(field)s'"
#. module: base
#: view:res.partner:0
@ -988,6 +1054,7 @@ msgstr "Cimbabue"
msgid ""
"Type of the constraint: `f` for a foreign key, `u` for other constraints."
msgstr ""
"Tipo de restricción: 'f' para unha clave allea, 'u' para outras restriccións."
#. module: base
#: view:ir.actions.report.xml:0
@ -1061,7 +1128,7 @@ msgstr "Outra Licenza OSI Aprobada"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_gantt
msgid "Web Gantt"
msgstr ""
msgstr "Diagrama Gantt web"
#. module: base
#: model:ir.actions.act_window,name:base.act_menu_create
@ -1088,7 +1155,7 @@ msgstr "Usuarios de Google"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
msgid "Fleet Management"
msgstr ""
msgstr "Xestión de flotas"
#. module: base
#: help:ir.server.object.lines,value:0
@ -1108,7 +1175,7 @@ msgstr "Andorra, Principado de"
#. module: base
#: field:ir.rule,perm_read:0
msgid "Apply for Read"
msgstr ""
msgstr "Aplicar para lectura"
#. module: base
#: model:res.country,name:base.mn
@ -1167,12 +1234,12 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:735
#, python-format
msgid "Document model"
msgstr ""
msgstr "Modelo de documento"
#. module: base
#: view:res.users:0
msgid "Change the user password."
msgstr ""
msgstr "Cambia-lo contrasinal do usuario"
#. module: base
#: view:res.lang:0
@ -1269,12 +1336,12 @@ msgstr "¡ O nome do país debe ser único !"
#. module: base
#: field:ir.module.module,installed_version:0
msgid "Latest Version"
msgstr ""
msgstr "Última versión"
#. module: base
#: view:ir.rule:0
msgid "Delete Access Right"
msgstr ""
msgstr "Eliminar dereito de acceso"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:214
@ -1301,7 +1368,7 @@ msgstr "Illas Caimán"
#. module: base
#: view:ir.rule:0
msgid "Record Rule"
msgstr ""
msgstr "Regla de rexistro"
#. module: base
#: model:res.country,name:base.kr
@ -1311,7 +1378,7 @@ msgstr "Corea do Sur"
#. module: base
#: model:ir.module.module,description:base.module_l10n_si
msgid "Kontni načrt za gospodarske družbe"
msgstr ""
msgstr "Plan contable para empresas"
#. module: base
#: code:addons/orm.py:4920
@ -1327,7 +1394,7 @@ msgstr "Contribuíntes"
#. module: base
#: field:ir.rule,perm_unlink:0
msgid "Apply for Delete"
msgstr ""
msgstr "Marcar para eliminación"
#. module: base
#: selection:ir.property,type:0
@ -1337,12 +1404,12 @@ msgstr "Char"
#. module: base
#: field:ir.module.category,visible:0
msgid "Visible"
msgstr ""
msgstr "Visible"
#. module: base
#: model:ir.actions.client,name:base.action_client_base_menu
msgid "Open Settings Menu"
msgstr ""
msgstr "Abrir menú 'Configuración'"
#. module: base
#: selection:base.language.install,lang:0
@ -1402,6 +1469,8 @@ msgid ""
" for uploading to OpenERP's translation "
"platform,"
msgstr ""
"Formato TGZ: arquivo comprimido que contén un ficheiro .po, adecuado para "
"subilo directamente á plataforma de tradución de OpenERP."
#. module: base
#: view:res.lang:0
@ -1418,7 +1487,7 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:53
#, python-format
msgid "Language Pack"
msgstr ""
msgstr "Paquete de idioma"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests
@ -1428,7 +1497,7 @@ msgstr "Probas"
#. module: base
#: field:ir.actions.report.xml,attachment:0
msgid "Save as Attachment Prefix"
msgstr ""
msgstr "Prefixo do anexo ó 'Gardar como'"
#. module: base
#: field:ir.ui.view_sc,res_id:0
@ -1465,7 +1534,7 @@ msgstr "Haití"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
msgstr ""
msgstr "Nómina de Francia"
#. module: base
#: view:ir.ui.view:0
@ -1492,7 +1561,7 @@ msgstr ""
#. module: base
#: field:ir.module.category,parent_id:0
msgid "Parent Application"
msgstr ""
msgstr "Aplicación pai"
#. module: base
#: model:ir.actions.act_window,name:base.ir_action_wizard
@ -1515,7 +1584,7 @@ msgstr "Sistema de xestión documental"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
msgid "Claims Management"
msgstr ""
msgstr "Xestión de reclamacións"
#. module: base
#: model:ir.module.module,description:base.module_document_webdav
@ -1653,7 +1722,7 @@ msgstr "Non existe ningunha linguaxe con código \"%s\""
#: model:ir.module.category,name:base.module_category_social_network
#: model:ir.module.module,shortdesc:base.module_mail
msgid "Social Network"
msgstr ""
msgstr "Rede social"
#. module: base
#: view:res.lang:0
@ -1663,12 +1732,12 @@ msgstr "%Y - Ano co século."
#. module: base
#: view:res.company:0
msgid "Report Footer Configuration"
msgstr ""
msgstr "Configuración do pé de informe"
#. module: base
#: field:ir.translation,comments:0
msgid "Translation comments"
msgstr ""
msgstr "Comentarios de traducción"
#. module: base
#: model:ir.module.module,description:base.module_lunch
@ -1729,7 +1798,7 @@ msgstr ""
#. module: base
#: help:res.partner,website:0
msgid "Website of Partner or Company"
msgstr ""
msgstr "Sitio web da empresa ou compañía"
#. module: base
#: help:base.language.install,overwrite:0
@ -1790,7 +1859,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project_issue
msgid "Portal Issue"
msgstr ""
msgstr "Incidencia de portal"
#. module: base
#: model:ir.ui.menu,name:base.menu_tools
@ -1814,12 +1883,12 @@ msgstr ""
#. module: base
#: field:res.partner,image_small:0
msgid "Small-sized image"
msgstr ""
msgstr "Imaxe pequena"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock
msgid "Warehouse Management"
msgstr ""
msgstr "Xestión de almacéns"
#. module: base
#: model:ir.model,name:base.model_res_request_link
@ -1847,7 +1916,7 @@ msgstr "Accións de Servidor"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_lu
msgid "Luxembourg - Accounting"
msgstr ""
msgstr "Luxemburgo - Contabilidade"
#. module: base
#: model:res.country,name:base.tp
@ -1859,7 +1928,7 @@ msgstr "Timor Leste"
#: view:ir.module.module:0
#, python-format
msgid "Install"
msgstr ""
msgstr "Instalar"
#. module: base
#: field:res.currency,accuracy:0
@ -1914,6 +1983,7 @@ msgstr ""
#, python-format
msgid "Unknown value '%s' for boolean field '%%(field)s', assuming '%s'"
msgstr ""
"Valor descoñecido '%s' para o campo booleano '%%(field)s', asúmese '%s'"
#. module: base
#: model:res.country,name:base.nl
@ -1923,12 +1993,12 @@ msgstr "Holanda"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_event
msgid "Portal Event"
msgstr ""
msgstr "Evento do portal"
#. module: base
#: selection:ir.translation,state:0
msgid "Translation in Progress"
msgstr ""
msgstr "Traducción en curso"
#. module: base
#: model:ir.model,name:base.model_ir_rule
@ -1980,7 +2050,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
msgid "Enterprise Process"
msgstr ""
msgstr "Proceso da empresa"
#. module: base
#: help:res.partner,supplier:0
@ -1992,7 +2062,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
msgid "Employee Appraisals"
msgstr ""
msgstr "Evaluación de traballadores"
#. module: base
#: selection:ir.actions.server,state:0
@ -13237,7 +13307,7 @@ msgstr "ir.sequence.type"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll_account
msgid "Belgium - Payroll with Accounting"
msgstr ""
msgstr "Bélxica - Nóminas con contabilidad"
#. module: base
#: selection:base.language.export,format: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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:33+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"Language: hr\n"
#. module: base
@ -25,6 +25,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
"\n"
"Modul za sastavljanje i ispis čekova\n"
"============================\n"
" "
#. module: base
#: model:res.country,name:base.sh
@ -12396,7 +12400,7 @@ msgstr "Kontrolne ploče"
#. module: base
#: model:ir.module.module,shortdesc:base.module_procurement
msgid "Procurements"
msgstr "Nabave"
msgstr "Nabava"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_6

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-10-15 13:13+0000\n"
"Last-Translator: tdombos <Unknown>\n"
"PO-Revision-Date: 2013-11-24 14:57+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: Hungarian <openerp-hungarian-team@lists.launchpad.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-25 05:32+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -6162,18 +6162,18 @@ msgid ""
msgstr ""
"\n"
"Ez a modul hozzáad állapotot, start_dátumot, stop_dátumot a gyártási "
"megrendelés végrehalytási soraihoz (a 'Gyártási megrendelések' fülön).\n"
"megrendelés végrehajtási soraihoz (a 'Gyártási megrendelések' fülön).\n"
"============================================================================="
"===================================\n"
"\n"
"Állapot: terv, leigazolt, elvégzett, érévnytelenített\n"
"Ha elvégzett/visszaigazolt, érévnytelenített a gyártási rendelés akkor "
"Állapot: terv, leigazolt, elvégzett, érvénytelenített\n"
"Ha elvégzett/visszaigazolt, érvénytelenített a gyártási rendelés akkor "
"megfelelő állapot sorokat\n"
"be kell állítani az állapothoz.\n"
"\n"
"Menük létrehozás:\n"
"-------------\n"
" **Gyátás** > **Gyártás** > **Gyártási megrendelések**\n"
" **Gyártás** > **Gyártás** > **Gyártási megrendelések**\n"
"\n"
"Megtalálható a 'Gyártási megrendelések' soraiban a gyártási "
"megrendeléseknél.\n"
@ -6184,8 +6184,8 @@ msgstr ""
" * start (állítsa be a visszaigazolt állapotot), állítsa be az "
"indulási_dátumot\n"
" * stop (állítsa be az elvégzett állapotot), állítsa be a stop_dátumot\n"
" * Tervezettr állít (állítsa be a tervezett állapotot)\n"
" * érévnytelenít (állítsa be az érvénytelenít állapotot)\n"
" * Tervezetet állít (állítsa be a tervezett állapotot)\n"
" * érvénytelenít (állítsa be az érvénytelenít állapotot)\n"
"\n"
"Ha egy gyártási rendelés 'elvégezhetővé' válik, akkor 'visszaigazoltnak' "
"kell lennie.\n"
@ -9157,7 +9157,7 @@ msgid ""
msgstr ""
"\n"
"Hosszú távú projekt szervezés modul mely nyomon követi a tervezést, "
"ütemtervet, erőforrás kiosztás.\n"
"ütemtervet, erőforrás kiosztást.\n"
"============================================================================="
"==============\n"
"\n"
@ -9171,7 +9171,7 @@ msgstr ""
" feladat megadva akkor az összesre terv, nyitott és folyamatban állapot "
"lesz választva.\n"
" * Ügy ütemterv számítás: Ez ugyanúgy működik mint az ütemezés gomb a \n"
" project.phase project.fázis-on. Ez alapul veszi a projectet és "
" projekt.projekt fázis.fázis-on. Ez alapul veszi a projektet és "
"kiszámítja az összes nyitott,\n"
" tervet és elintézetlen ügyeket.\n"
" * Ütemezett ügyek: Minden ügy, mely terv, elintézetlen és nyitott "
@ -11190,7 +11190,7 @@ msgstr ""
"\n"
"Beállítás:\n"
"--------------\n"
"A madul telepítése után konfigurálni kell az LDAP paramétereket a vállalat "
"A modul telepítése után konfigurálni kell az LDAP paramétereket a vállalat "
"részletei\n"
"beállítás fülön. Különböző vállalatoknak különböző LDAP szerverei vannak,\n"
"amíg egyedi felhasználó nevei vannak (a felhasználó neveknek az OpenERP-ben\n"
@ -11286,7 +11286,7 @@ msgstr "Réunion (Francia)"
msgid ""
"New column name must still start with x_ , because it is a custom field!"
msgstr ""
"Az új oszlopnévnek még mindig x_-sal kell kezdődnie, mert ez egy egyéni mező!"
"Az új oszlopnévnek még mindig x_-al kell kezdődnie, mert ez egy egyéni mező!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_repair
@ -13726,7 +13726,7 @@ msgstr "Normál"
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase_double_validation
msgid "Double Validation on Purchases"
msgstr "A vásárlásokra kétszeres jóváhagyás"
msgstr "Kkétszeres jóváhagyás a beszerzésekre"
#. module: base
#: field:res.bank,street2:0
@ -14037,8 +14037,8 @@ msgid ""
" "
msgstr ""
"\n"
"Ez a modul kiegészíti a Raktárház alkalmazást, hatásosan beágyazva a Belökés "
"& Kihúzás raktár folyamatokat.\n"
"Ez a modul kiegészíti a Raktárépület alkalmazást, hatásosan beágyazva a "
"Belökés & Kihúzás raktár folyamatokat.\n"
"============================================================================="
"===============================\n"
"\n"
@ -18275,8 +18275,8 @@ msgstr ""
"Az Elválasztó formátumnak olyannak kell lennie [,n] ahol 0 < n :egység "
"számjegytől indul. A -1 fogja jelezni az elválasztás végét. Pl. a [3,2,-1] "
"fogja jelölni a 106500-nál, hogy 1,06,500 lehessen; az [1,2,-1] fogja "
"lehetővé tenni, hogy a szám 106,50,0 legyen. Ebben az esetben mindig a ',' "
"az ezres elválasztó."
"lehetővé tenni, hogy a szám 106,50,0 legyen;[3] fogja jelölni mint 106,500. "
"Ebben az esetben mindig a ',' az ezres elválasztó."
#. module: base
#: field:ir.module.module,auto_install:0

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-11-12 05:30+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -535,7 +535,7 @@ msgstr "フランス領ギアナ"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
msgstr ""
msgstr "職務、部署、従業員詳細"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@ -1055,7 +1055,7 @@ msgstr "他のOSI認証ライセンス"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_gantt
msgid "Web Gantt"
msgstr ""
msgstr "ウェブガント"
#. module: base
#: model:ir.actions.act_window,name:base.act_menu_create
@ -4747,7 +4747,7 @@ msgstr "赤道ギニア"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_api
msgid "OpenERP Web API"
msgstr ""
msgstr "OpenERPウェブAPI"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr_rib
@ -5117,7 +5117,7 @@ msgstr "Nullをセット"
#. module: base
#: view:res.users:0
msgid "Save"
msgstr ""
msgstr "保存"
#. module: base
#: field:ir.actions.report.xml,report_xml:0
@ -5852,7 +5852,7 @@ msgstr ""
#: model:ir.module.module,shortdesc:base.module_web
#: report:ir.module.reference:0
msgid "Web"
msgstr ""
msgstr "ウェブ"
#. module: base
#: model:ir.module.module,shortdesc:base.module_lunch
@ -5867,7 +5867,7 @@ msgstr "英語(カナダ)"
#. module: base
#: model:ir.module.category,name:base.module_category_human_resources
msgid "Human Resources"
msgstr "人的資源"
msgstr "人"
#. module: base
#: model:ir.module.module,description:base.module_l10n_syscohada
@ -5972,7 +5972,7 @@ msgstr "多対1項目の属性削除"
#. module: base
#: model:ir.module.category,name:base.module_category_accounting_and_finance
msgid "Accounting & Finance"
msgstr "会計財務"
msgstr "会計財務"
#. module: base
#: field:ir.actions.server,write_id:0
@ -6004,7 +6004,7 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_usability
#: view:res.users:0
msgid "Usability"
msgstr "使いやすさ"
msgstr "ユーザビリティ"
#. module: base
#: field:ir.actions.act_window,domain:0
@ -6183,7 +6183,7 @@ msgstr ""
#. module: base
#: field:res.partner,is_company:0
msgid "Is a Company"
msgstr ""
msgstr "会社"
#. module: base
#: selection:ir.cron,interval_type:0
@ -7339,7 +7339,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_accountant
msgid "Accounting and Finance"
msgstr "会計財務"
msgstr "会計財務"
#. module: base
#: view:ir.module.module:0
@ -7366,7 +7366,7 @@ msgstr ""
#. module: base
#: field:res.partner,function:0
msgid "Job Position"
msgstr ""
msgstr "職位"
#. module: base
#: view:res.partner:0
@ -8287,7 +8287,7 @@ msgstr "フィンランド"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_shortcuts
msgid "Web Shortcuts"
msgstr ""
msgstr "ウェブショートカット"
#. module: base
#: view:res.partner:0
@ -8466,7 +8466,7 @@ msgstr "フィリピン"
#. module: base
#: model:ir.module.module,summary:base.module_hr_timesheet_sheet
msgid "Timesheets, Attendances, Activities"
msgstr ""
msgstr "タイムシート、勤怠、活動"
#. module: base
#: model:res.country,name:base.ma
@ -10332,7 +10332,7 @@ msgstr "ピトケアン島"
#. module: base
#: field:res.partner,category_id:0
msgid "Tags"
msgstr ""
msgstr "タグ"
#. module: base
#: view:base.module.upgrade:0
@ -10901,7 +10901,7 @@ msgstr "マルティニーク(フランス語)"
#. 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
@ -11498,7 +11498,7 @@ msgstr "宛先"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr
msgid "Employee Directory"
msgstr "従業員名簿"
msgstr "従業員ディレクトリ"
#. module: base
#: field:ir.cron,args:0
@ -12102,7 +12102,7 @@ msgstr "レポートタイプ"
#: view:res.partner.bank:0
#: view:res.users:0
msgid "State"
msgstr "状態"
msgstr ""
#. module: base
#: selection:base.language.install,lang:0
@ -12202,7 +12202,7 @@ msgstr "選択"
#: model:ir.actions.act_window,name:base.change_password_wizard_action
#: view:res.users:0
msgid "Change Password"
msgstr ""
msgstr "パスワード変更"
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@ -12459,7 +12459,7 @@ msgstr "給与計算"
#. module: base
#: view:res.users:0
msgid "Change password"
msgstr ""
msgstr "パスワード変更"
#. module: base
#: model:res.country,name:base.sr
@ -12469,7 +12469,7 @@ msgstr "スリナム"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_order_dates
msgid "Dates on Sales Order"
msgstr "受注日"
msgstr "受注への付項目追加"
#. module: base
#: view:ir.attachment:0
@ -12519,7 +12519,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_no_one
msgid "Technical Features"
msgstr "技術的特長"
msgstr "技術機能"
#. module: base
#: model:ir.module.module,description:base.module_l10n_ve
@ -12729,7 +12729,7 @@ msgstr "アンインストール可能"
#. module: base
#: view:res.partner.category:0
msgid "Partner Category"
msgstr "取引先分類"
msgstr "取引先カテゴリ"
#. module: base
#: view:ir.actions.server:0
@ -13813,7 +13813,7 @@ msgstr "同じログインでは2つのユーザを持てません。"
#. module: base
#: model:ir.model,name:base.model_res_request_history
msgid "res.request.history"
msgstr ""
msgstr "res.request.history"
#. module: base
#: model:ir.model,name:base.model_multi_company_default
@ -14904,7 +14904,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
@ -15179,7 +15179,7 @@ msgstr "チリ"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_view_editor
msgid "View Editor"
msgstr ""
msgstr "ビューエディタ"
#. module: base
#: view:ir.cron:0
@ -15509,7 +15509,7 @@ msgstr "取引先: "
#. module: base
#: view:res.partner:0
msgid "Is a Company?"
msgstr ""
msgstr "会社?"
#. module: base
#: code:addons/base/res/res_company.py:173

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-11-12 05:32+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:34+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:35+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:32+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -97,14 +97,14 @@ msgstr "Touchscreen interface voor winkels"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
msgstr "Indiaase loonadministratie"
msgstr "Indiase loonadministratie"
#. module: base
#: help:ir.cron,model:0
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
"Modelnaam van the methode welke wordt aangeroepen, bijv. 'res.partner'."
"Modelnaam van de methode welke wordt aangeroepen, bijv. 'res.partner'."
#. module: base
#: view:ir.module.module:0
@ -127,16 +127,15 @@ msgid ""
" "
msgstr ""
"\n"
"Een module die leveranciers en kenmerken toevoegt aan het product "
"formulier.\n"
"Een module die leveranciers en kenmerken toevoegt aan het productformulier.\n"
"====================================================================\n"
"\n"
"U kunt het volgende definiëren voor een product:\n"
"-----------------------------------------------\n"
" * Leverancier\n"
" * Leverancier Product Naam\n"
" * Leverancier Product Code\n"
" * Product Kernmerken\n"
" * Productnaam leverancier\n"
" * Productcode leverancier\n"
" * Product kenmerken\n"
" "
#. module: base
@ -243,7 +242,7 @@ msgstr ""
#: code:addons/osv.py:151
#, python-format
msgid "Constraint Error"
msgstr "Voorwaarde Fout"
msgstr "Beperkingsfout"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_custom
@ -254,7 +253,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:374
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr "Hernoenen sparse veld \"%s\" is niet toegestaan"
msgstr "Hernoemen sparse veld \"%s\" is niet toegestaan"
#. module: base
#: model:res.country,name:base.sz
@ -1073,7 +1072,7 @@ msgstr "Module bijwerken"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (UY) / Español (UY)"
msgstr "Spaans (UY) / Spanje (UY)"
msgstr "Spaans (UY) / Español (UY)"
#. module: base
#: field:res.partner,mobile:0
@ -2300,7 +2299,7 @@ msgid ""
"decimal number [00,53]. All days in a new year preceding the first Sunday "
"are considered to be in week 0."
msgstr ""
"%U - Weeknummer (zondag als eerste dag van week) als een decimaal getal "
"%U - Weeknummer (zondag als eerste dag van de week) als een decimaal getal "
"[00,53]. Alle dagen in het nieuwe jaar voorafgaande aan de eerste zondag, "
"vallen in week 0."
@ -6459,7 +6458,7 @@ msgstr ""
#. module: base
#: field:ir.ui.view.custom,ref_id:0
msgid "Original View"
msgstr "Origineel beeld"
msgstr "Oorspronkelijke Weergave"
#. module: base
#: model:ir.module.module,description:base.module_web_kanban
@ -7057,7 +7056,7 @@ msgstr "RML interne kop voor liggende rapporten"
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Contact Creation"
msgstr "Aanmaken relaties"
msgstr "Relatie aanmaken"
#. module: base
#: view:ir.module.module:0
@ -7345,14 +7344,14 @@ msgstr "Web icon afbeelding (hover)"
#. module: base
#: view:base.module.import:0
msgid "Module file successfully imported!"
msgstr "Importeren modulebestand geslaagd!Geannu"
msgstr "Importeren modulebestand geslaagd!"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_constraint
#: view:ir.model.constraint:0
#: model:ir.ui.menu,name:base.ir_model_constraint_menu
msgid "Model Constraints"
msgstr "Model constraints"
msgstr "Model beperkingen"
#. module: base
#: model:ir.actions.act_window,name:base.action_workflow_transition_form
@ -7386,7 +7385,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.lc
msgid "Saint Lucia"
msgstr "Santa Lucia"
msgstr "Saint Lucia"
#. module: base
#: help:res.users,new_password:0
@ -7482,7 +7481,7 @@ msgstr "ir.actions.client"
#. module: base
#: model:res.country,name:base.io
msgid "British Indian Ocean Territory"
msgstr "Brits Territorium in de Indische Oceaan"
msgstr "Brits Indische Oceaanterritorium"
#. module: base
#: model:ir.actions.server,name:base.action_server_module_immediate_install
@ -7562,7 +7561,7 @@ msgstr "aan"
#. module: base
#: view:ir.property:0
msgid "Parameters that are used by all resources."
msgstr "Parameters welke gebrukkt worden door alle resources"
msgstr "Parameters welke gebruikt worden door alle resources."
#. module: base
#: model:res.country,name:base.mz
@ -7880,7 +7879,7 @@ msgstr "Afsluiten"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (MX) / Español (MX)"
msgstr "Spaans (MX) / Spanje (MX)"
msgstr "Spaans (MX) / Español (MX)"
#. module: base
#: view:ir.actions.todo:0
@ -7974,7 +7973,7 @@ msgstr "Workflow taken"
#. module: base
#: model:res.country,name:base.vc
msgid "Saint Vincent & Grenadines"
msgstr "St. Vincent en Grenadines"
msgstr "Saint Vincent en de Grenadines"
#. module: base
#: field:ir.mail_server,smtp_pass:0
@ -7999,6 +7998,9 @@ msgid ""
"Allow users to login through OAuth2 Provider.\n"
"=============================================\n"
msgstr ""
"\n"
"Gebruikers toestaan in te loggen via een OAuth2 Provider.\n"
"========================================================\n"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_fields
@ -8238,7 +8240,7 @@ msgstr "Project portaal"
#. module: base
#: model:res.country,name:base.cc
msgid "Cocos (Keeling) Islands"
msgstr "Kokoseilanden (Keeling)"
msgstr "Cocoseilanden (Keeling)"
#. module: base
#: selection:base.language.install,state:0
@ -8405,7 +8407,7 @@ msgstr "Objectveld"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PE) / Español (PE)"
msgstr "Spaans (PE) / Spanja (PE)"
msgstr "Spaans (PE) / Español (PE)"
#. module: base
#: selection:base.language.install,lang:0
@ -8556,7 +8558,7 @@ msgid ""
"Determines where the currency symbol should be placed after or before the "
"amount."
msgstr ""
"Bepaald of het decimaalteken voor of na het bedrag moet worden geplaatst."
"Bepaalt of het decimaalteken voor of na het bedrag moet worden geplaatst."
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad_project
@ -8599,7 +8601,7 @@ msgstr "Contactpersoon"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_at
msgid "Austria - Accounting"
msgstr "Boekhouding - Oostenrijk"
msgstr "Oostenrijk - Boekhouding"
#. module: base
#: model:ir.model,name:base.model_ir_ui_menu
@ -8649,8 +8651,8 @@ msgid ""
"===================================================\n"
msgstr ""
"\n"
"The kernel van OpenERP, nodig voor iedere installatie.\n"
"===================================================\n"
"De kernel van OpenERP, nodig voor iedere installatie.\n"
"=====================================================\n"
#. module: base
#: model:ir.model,name:base.model_ir_server_object_lines
@ -8863,8 +8865,8 @@ msgid ""
"The priority of the job, as an integer: 0 means higher priority, 10 means "
"lower priority."
msgstr ""
"De prioriteit van de taak, als een geheel getal: 0 betekend een hogere "
"prioriteit, 10 betekend een lagere prioriteit."
"De prioriteit van de taak, als een geheel getal: 0 betekent een hogere "
"prioriteit, 10 betekent een lagere prioriteit."
#. module: base
#: model:ir.model,name:base.model_workflow_transition
@ -8942,7 +8944,7 @@ msgstr "Document pagina"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ar
msgid "Argentina Localization Chart Account"
msgstr "Boekhoudschema - Argentinië"
msgstr "Argentinië - Boekhouding"
#. module: base
#: field:ir.module.module,description_html:0
@ -9036,7 +9038,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_update
msgid "Update Modules List"
msgstr "Werk modulelijst bij"
msgstr "Modulelijst bijwerken"
#. module: base
#: code:addons/base/module/module.py:359
@ -9061,11 +9063,11 @@ msgid ""
"sure to save and close all forms before switching to a different company. "
"(You can click on Cancel in the User Preferences now)"
msgstr ""
"Bedenk dat de moenteel afgebeelde records niet meer relevant kunnen zijn na "
"omschakeling naar een andere bedrijf, Als u niet-opgeslagen wijzigingen "
"heeft, zorg dan dat die worden opgeslagen en alle formulieren gesloten "
"voorafgaand aan het omschakelen naar een nieuw bedrijf (U kunt nu Annuleren "
"drukken in de Gebruikersvoorkeuren)"
"Bedenk dat de momenteel afgebeelde records niet meer relevant kunnen zijn na "
"omschakeling naar een ander bedrijf. Als u niet-opgeslagen wijzigingen "
"heeft, zorg dan dat die worden opgeslagen en alle formulieren worden "
"gesloten voorafgaand aan het omschakelen naar een ander bedrijf (U kunt nu "
"Annuleren drukken in de Gebruikersvoorkeuren)"
#. module: base
#: code:addons/orm.py:2818
@ -9157,6 +9159,8 @@ msgid ""
"This field specifies whether the model is transient or not (i.e. if records "
"are automatically deleted from the database or not)"
msgstr ""
"Dit veld specificeert of het model vergankelijk is of niet (d.w.z. of "
"records automatisch verwijderd worden uit de database of niet)"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:445
@ -9194,7 +9198,7 @@ msgstr "%b - Afkorting naam maand."
#: code:addons/base/ir/ir_model.py:729
#, python-format
msgid "Sorry, you are not allowed to delete this document."
msgstr "Sorry, u mag dit document niet verwijderen"
msgstr "Sorry, u mag dit document niet verwijderen."
#. module: base
#: constraint:ir.rule:0
@ -9247,7 +9251,7 @@ msgstr "Standaard bedrijf"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (EC) / Español (EC)"
msgstr "Spaans (EC) / Spanje (EC)"
msgstr "Spaans (EC) / Español (EC)"
#. module: base
#: help:ir.ui.view,xml_id:0
@ -9262,7 +9266,7 @@ msgstr "Module importeren"
#. module: base
#: model:res.country,name:base.as
msgid "American Samoa"
msgstr "Amerikaans Samoa"
msgstr "Amerikaans-Samoa"
#. module: base
#: view:ir.attachment:0
@ -9300,7 +9304,7 @@ msgstr "URL"
#. module: base
#: help:res.country,name:0
msgid "The full name of the country."
msgstr "Volledige naam van het land"
msgstr "Volledige naam van het land."
#. module: base
#: selection:ir.actions.server,state:0
@ -9520,7 +9524,7 @@ msgstr "Claim op leveringen"
#. module: base
#: model:res.country,name:base.sb
msgid "Solomon Islands"
msgstr "Salomoneilanden"
msgstr "Salomonseilanden"
#. module: base
#: code:addons/orm.py:4152
@ -9609,7 +9613,7 @@ msgid ""
"instead.If SSL is needed, an upgrade to Python 2.6 on the server-side should "
"do the trick."
msgstr ""
"Uw OpenERP server ondersteund geen SMTP over een SSL verbinding. U kan "
"Uw OpenERP Server ondersteunt geen SMTP over een SSL verbinding. U kan "
"daarvoor in de plaats gebruik maken van STARTSSL. Indien SSL noodzakelijk "
"is, dient u up te graden naar Python 2.6 op de server."
@ -9691,12 +9695,12 @@ msgstr "Fases"
#. module: base
#: selection:base.language.install,lang:0
msgid "Flemish (BE) / Vlaams (BE)"
msgstr "Vlaams (BE) / België (BE)"
msgstr "Vlaams (BE) / Vlaams (BE)"
#. module: base
#: selection:base.language.install,lang:0
msgid "Vietnamese / Tiếng Việt"
msgstr "Vietnamees / Vietnam"
msgstr "Vietnamees / Tiếng Việt"
#. module: base
#: field:ir.cron,interval_number:0
@ -9788,7 +9792,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_uy
msgid "Uruguay - Chart of Accounts"
msgstr ""
msgstr "Uruguay - Grootboekschema"
#. module: base
#: model:ir.ui.menu,name:base.menu_administration_shortcut
@ -9798,7 +9802,7 @@ msgstr "Eigen sneltoetsen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_si
msgid "Slovenian - Accounting"
msgstr ""
msgstr "Slovenië - Boekhouding"
#. module: base
#: model:ir.module.module,description:base.module_account_cancel
@ -9893,7 +9897,7 @@ msgstr "Valutateken, welke wordt gebruikt wanneer bedragen worden afgedrukt."
#. module: base
#: view:res.lang:0
msgid "%H - Hour (24-hour clock) [00,23]."
msgstr "%H - Uur (24-uur klok) [00,23]."
msgstr "%H - Uur (24-uurs klok) [00,23]."
#. module: base
#: field:ir.model.fields,on_delete:0
@ -9937,7 +9941,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_us
msgid "United States - Chart of accounts"
msgstr ""
msgstr "Verenigde Staten - Grootboekschema"
#. module: base
#: view:base.language.export:0
@ -10049,6 +10053,27 @@ msgid ""
"Accounting/Invoicing settings.\n"
" "
msgstr ""
"\n"
"Deze module voegt een Verkoop menu toe aan uw portaal, wanneer sale en "
"portal geinstalleerd zijn.\n"
"============================================================================="
"=========\n"
"\n"
"Na installatie van deze module kunnen gebruikers van het portaal via de "
"volgende menu's toegang krijgen tot hun eigen documenten:\n"
"\n"
" - Offertes\n"
" - Verkoop Orders\n"
" - Aflever Orders\n"
" - Producten (publieke)\n"
" - Facturen\n"
" - Betalingen/Teruggaves\n"
"\n"
"Als online betalingen ingesteld zijn, krijgen gebruikers van het portaal ook "
"de mogelijkheid om hun onbetaalde Verkoop Orders en Facturen online te "
"betalen. Paypal is standaard al geinstalleerd, u hoeft alleen een Paypal "
"rekening in te stellen in de Accounting/Invoicing settings.\n"
" "
#. module: base
#: code:addons/base/ir/ir_fields.py:316
@ -10128,7 +10153,7 @@ msgid ""
"at the next update or upgrade to a future version of OpenERP."
msgstr ""
"Bij het aanpassen van een workflow, zorg ervoor dat u niet een bestaand "
"knooppunt of pijl wijzigt, maar nieuwe knooppunten of pijlen toegoegd. Als "
"knooppunt of pijl wijzigt, maar nieuwe knooppunten of pijlen toevoegt. Als "
"het echt nodig is om een knooppunt of pijl te wijzigen, kunt u alleen "
"velden die leeg zijn of zijn ingesteld op de standaardwaarde wijzigen. Als u "
"dat niet doet, zal uw maatwerk worden overschreven bij de volgende update of "
@ -10227,7 +10252,8 @@ msgstr "Aanmaken"
msgid ""
"Select the object on which the action will work (read, write, create)."
msgstr ""
"Kies het object waarop de actie wordt uitgevoerd (lezen, schrijven, aanmaken)"
"Kies het object waarop de actie wordt uitgevoerd (lezen, schrijven, "
"aanmaken)."
#. module: base
#: field:base.language.import,name:0
@ -10253,7 +10279,7 @@ msgstr ""
"- Geen: SMTP sessies worden in gedaan in cleartext\n"
"- TLS (STARTLS): TLS encryptie is vereist bij de start van de SMTP sessie "
"(aanbevolen)\n"
"- SSL?TLS: SMTP sessies zijn geëncrypteerd met SSL/TLS via een specifieke "
"- SSL/TLS: SMTP sessies zijn versleuteld met SSL/TLS via een specifieke "
"poort (standaard: 465)"
#. module: base
@ -10470,7 +10496,7 @@ msgstr "Reeks codes"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (CO) / Español (CO)"
msgstr "Spaans (CO) / Spanje (CO)"
msgstr "Spaans (CO) / Español (CO)"
#. module: base
#: view:base.module.configuration:0
@ -10484,7 +10510,7 @@ msgstr ""
#. module: base
#: view:ir.sequence:0
msgid "Current Year with Century: %(year)s"
msgstr "Actueel jaar met eeuw: %(year)s"
msgstr "Huidig jaar met eeuw: %(year)s"
#. module: base
#: field:ir.exports,export_fields:0
@ -10574,7 +10600,7 @@ msgstr "Aanmaakdatum"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_cn
msgid "中国会计科目表 - Accounting"
msgstr ""
msgstr "中国会计科目表 - Boekhouding"
#. module: base
#: sql_constraint:ir.model.constraint:0
@ -10782,7 +10808,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.gw
msgid "Guinea Bissau"
msgstr "Guinea Bissau"
msgstr "Guinee-Bissau"
#. module: base
#: field:ir.actions.report.xml,header:0
@ -10792,7 +10818,7 @@ msgstr "RML kop toevoegen"
#. module: base
#: help:res.company,rml_footer:0
msgid "Footer text displayed at the bottom of all reports."
msgstr "Voet tekst, weergegeven aan de onderzijde van alle rapporten."
msgstr "Voettekst, weergegeven aan de onderzijde van alle rapporten."
#. module: base
#: field:ir.module.module,icon:0
@ -10853,7 +10879,7 @@ msgstr "Andere acties"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_coda
msgid "Belgium - Import Bank CODA Statements"
msgstr ""
msgstr "België - Importeren CODA bankafschriften"
#. module: base
#: selection:ir.actions.todo,state:0
@ -10878,7 +10904,7 @@ msgstr "Mej."
#: view:ir.model.access:0
#: field:ir.model.access,perm_write:0
msgid "Write Access"
msgstr "Schrijven"
msgstr "Schrijfrechten"
#. module: base
#: view:res.lang:0
@ -10984,7 +11010,7 @@ msgstr "Adres"
#. module: base
#: selection:base.language.install,lang:0
msgid "Mongolian / монгол"
msgstr "Mongools / Mongolië"
msgstr "Mongools / монгол"
#. module: base
#: model:res.country,name:base.mr
@ -11080,7 +11106,7 @@ msgstr "Moederbedrijf"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_openid
msgid "OpenID Authentification"
msgstr "OpenID Authentificatie"
msgstr "OpenID Authenticatie"
#. module: base
#: code:addons/orm.py:3872
@ -11089,7 +11115,7 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
"Een van de documenten welke u wilt bekijken, is verwijderd. probeer het "
"Een van de documenten welke u wilt bekijken, is verwijderd. Probeer het "
"opnieuw na het verversen van uw scherm."
#. module: base
@ -11100,7 +11126,7 @@ msgstr "ir.mail_server"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (CR) / Español (CR)"
msgstr "Spaans (CR) / Spanje (CR)"
msgstr "Spaans (CR) / Español (CR)"
#. module: base
#: view:ir.rule:0
@ -11159,7 +11185,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.kn
msgid "Saint Kitts & Nevis Anguilla"
msgstr "St. Kitts & Nevis Anguilla"
msgstr "Saint Kitts en Nevis"
#. module: base
#: code:addons/base/res/res_currency.py:194
@ -11171,7 +11197,7 @@ msgid ""
msgstr ""
"Geen koers gevonden \n"
"voor valuta: %s \n"
"op datum; %s"
"op datum: %s"
#. module: base
#: model:ir.actions.act_window,help:base.action_ui_view_custom
@ -11289,7 +11315,7 @@ msgstr "Mobiel:"
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Formating Error"
msgstr "Formating fout"
msgstr "Opmaakfout"
#. module: base
#: model:res.country,name:base.ye
@ -11489,7 +11515,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.bl
msgid "Saint Barthélémy"
msgstr ""
msgstr "Sint-Bartholomeus"
#. module: base
#: selection:ir.module.module,license:0
@ -11509,7 +11535,7 @@ msgstr "workflow"
#. module: base
#: view:ir.rule:0
msgid "Read Access Right"
msgstr "Leestrechten"
msgstr "Leesrechten"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_user_function
@ -11610,7 +11636,7 @@ msgstr "Naam staat/provincie"
#. module: base
#: help:ir.attachment,type:0
msgid "Binary File or URL"
msgstr "Binaire bestand of URL"
msgstr "Binair bestand of URL"
#. module: base
#: code:addons/base/ir/ir_fields.py:313
@ -11732,6 +11758,9 @@ msgid ""
"Allow users to sign up through OAuth2 Provider.\n"
"===============================================\n"
msgstr ""
"\n"
"Gebruikers toestaan zich te registreren via een OAuth2 Provider.\n"
"=======================================================\n"
#. module: base
#: field:change.password.user,user_id:0
@ -11770,7 +11799,7 @@ msgstr "Open venster"
#. module: base
#: field:ir.actions.act_window,auto_search:0
msgid "Auto Search"
msgstr "Auto zoeken"
msgstr "Automatisch Zoeken"
#. module: base
#: field:ir.actions.act_window,filter:0
@ -11814,6 +11843,15 @@ msgid ""
"picking and invoice. The message is triggered by the form's onchange event.\n"
" "
msgstr ""
"\n"
"Module om waarschuwingen in OpenERP objecten te activeren.\n"
"==========================================================\n"
"\n"
"Waarschuwingen kunnen worden weergegeven voor objecten zoals verkoop order, "
"inkoop order,\n"
"orderverzameling en factuur. Een bericht wordt geactiveerd door de onchange "
"gebeurtenis van het formulier.\n"
" "
#. module: base
#: field:res.users,partner_id:0
@ -11877,7 +11915,7 @@ msgstr "Aan"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr
msgid "Employee Directory"
msgstr "Personeelsbeheer"
msgstr "Personeel mappen"
#. module: base
#: field:ir.cron,args:0
@ -12022,7 +12060,7 @@ msgstr "Klant"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (NI) / Español (NI)"
msgstr "Spaans (NI) / Spanje (NI)"
msgstr "Spaans (NI) / Español (NI)"
#. module: base
#: model:ir.module.module,description:base.module_pad_project
@ -12182,7 +12220,7 @@ msgstr "Legenda voor opmaak datum en tijd"
#. module: base
#: selection:ir.actions.server,state:0
msgid "Copy Object"
msgstr "Object kopieren"
msgstr "Object kopiëren"
#. module: base
#: field:ir.actions.server,trigger_name:0
@ -12456,7 +12494,7 @@ msgstr "Turkije"
#. module: base
#: model:res.country,name:base.fk
msgid "Falkland Islands"
msgstr "Falkland-eilanden"
msgstr "Falklandeilanden"
#. module: base
#: model:res.country,name:base.lb
@ -12483,7 +12521,7 @@ msgstr "Provincie/Staat"
#. module: base
#: selection:base.language.install,lang:0
msgid "Galician / Galego"
msgstr "Galicisch / Galicië"
msgstr "Galicisch / Galego"
#. module: base
#: model:res.country,name:base.no
@ -12666,11 +12704,25 @@ msgid ""
" * Repair quotation report\n"
" * Notes for the technician and for the final customer\n"
msgstr ""
"\n"
"Het doel is om een complete module te hebben waarin alle reparaties van "
"producten in beheerd worden.\n"
"============================================================================="
"===================\n"
"\n"
"De volgende onderwerpen zouden moeten behandeld in deze module:\n"
"----------------------------------------------------------------------\n"
" * Producten in reparatie toevoegen/verwijderen\n"
" * Invloed op de voorraad\n"
" * Facturatie (producten en/of services)\n"
" * Garantie\n"
" * Rapport voor offerte van de reparatie\n"
" * Opmerkingen voor de monteur en voor de klant\n"
#. module: base
#: model:res.country,name:base.cd
msgid "Congo, Democratic Republic of the"
msgstr "Congo, Democratisch republiek van"
msgstr "Democratische Republiek Congo"
#. module: base
#: model:res.country,name:base.cr
@ -12806,7 +12858,7 @@ msgstr "Ongedefinieerde get methode !"
#. module: base
#: selection:base.language.install,lang:0
msgid "Norwegian Bokmål / Norsk bokmål"
msgstr "Noors / Noorwegen"
msgstr "Noors / Norsk bokmål"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_madam
@ -12887,7 +12939,7 @@ msgstr "Low Level-objecten"
#. module: base
#: help:ir.values,model:0
msgid "Model to which this entry applies"
msgstr "Model waarover deze regel gaat."
msgstr "Model waar deze regel op van toepassing is."
#. module: base
#: field:res.country,address_format:0
@ -13004,6 +13056,17 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Financieel en accounting beheer van activa.\n"
"==========================================\n"
"\n"
"Deze module beheert de activa van een bedrijf of van een individu. Dit houdt "
"de \n"
"afschrijvingen bij die plaatsvinden op de activa. En het geeft de "
"mogelijkheid om \n"
"moves van de afschrijvingen te maken.\n"
"\n"
" "
#. module: base
#: field:ir.cron,numbercall:0
@ -13064,7 +13127,7 @@ msgid ""
"decided based on this, low number is higher priority."
msgstr ""
"Belangrijk wanneer u met meerdere acties te maken hebt. De volgorde van "
"uitvoer wordt hierop gebaseerd. Laag nummer is hogere prioriteit."
"uitvoering wordt hierop gebaseerd. Laag nummer is hogere prioriteit."
#. module: base
#: model:res.country,name:base.gr
@ -13110,7 +13173,7 @@ msgstr "De landcode moet uniek zijn !"
#. module: base
#: selection:ir.module.module.dependency,state:0
msgid "Uninstallable"
msgstr "Niet installeerbaar"
msgstr "Niet verwijderbaar"
#. module: base
#: view:res.partner.category:0
@ -13121,7 +13184,7 @@ msgstr "Relatiecategorie"
#: view:ir.actions.server:0
#: selection:ir.actions.server,state:0
msgid "Trigger"
msgstr "Trigger"
msgstr "Activeer"
#. module: base
#: model:ir.module.category,description:base.module_category_warehouse_management
@ -13366,7 +13429,7 @@ msgstr ""
#. module: base
#: selection:res.currency,position:0
msgid "Before Amount"
msgstr "Voor bedrag"
msgstr "Voormalig bedrag"
#. module: base
#: field:res.request,act_from:0
@ -13480,8 +13543,8 @@ msgid ""
"The object that should receive the workflow signal (must have an associated "
"workflow)"
msgstr ""
"et object dat het workflow signaal moet ontvangen (moet een verbonden "
"workflow heben)"
"Het object dat het workflow signaal zou moeten ontvangen (moet een verbonden "
"workflow hebben)"
#. module: base
#: model:ir.module.category,description:base.module_category_account_voucher
@ -13495,7 +13558,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.eh
msgid "Western Sahara"
msgstr "West Sahara"
msgstr "Westelijke Sahara"
#. module: base
#: model:ir.module.category,name:base.module_category_account_voucher
@ -13630,7 +13693,7 @@ msgstr "Iran"
#. module: base
#: selection:base.language.install,lang:0
msgid "Slovak / Slovenský jazyk"
msgstr "Slovaaks / Slovakije"
msgstr "Slowaaks / Slowakije"
#. module: base
#: field:base.language.export,state:0
@ -13892,7 +13955,7 @@ msgstr ""
#. module: base
#: field:ir.actions.act_window,auto_refresh:0
msgid "Auto-Refresh"
msgstr "Vanzelf verversen"
msgstr "Automatisch verversen"
#. module: base
#: model:ir.module.module,description:base.module_product_expiry
@ -14101,6 +14164,11 @@ msgid ""
"\n"
"Deactivates minimal chart of accounts.\n"
msgstr ""
"\n"
"Verwijderen van minimaal grootboekschema.\n"
"==========================================\n"
"\n"
"Deactiveert minimaal grootboekschema.\n"
#. module: base
#: view:ir.rule:0
@ -14110,7 +14178,7 @@ msgstr "Recordregels"
#. module: base
#: help:workflow.transition,act_to:0
msgid "The destination activity."
msgstr "De doel activiteit"
msgstr "De doel activiteit."
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue
@ -14131,6 +14199,9 @@ msgid ""
"The common interface for plug-in.\n"
"=================================\n"
msgstr ""
"\n"
"De algemene interface voor een plug-in.\n"
"========================================\n"
#. module: base
#: model:ir.module.module,description:base.module_sale_crm
@ -14199,7 +14270,7 @@ msgid ""
"Check this to define the report footer manually. Otherwise it will be "
"filled in automatically."
msgstr ""
"Vink dit aan om de voet handmatig te definiëren. Ander wordt deze "
"Vink dit aan om de voettekst handmatig te definiëren. Anders wordt deze "
"automatisch ingevuld."
#. module: base
@ -14294,6 +14365,13 @@ msgid ""
"OpenOffice. \n"
"Once you have modified it you can upload the report using the same wizard.\n"
msgstr ""
"\n"
"Deze module wordt samen met de OpenERP OpenOffice Plugin gebruikt.\n"
"===============================================================\n"
"\n"
"Deze module voegt Import/Export .sxw rapportage wizards toe die u kunt "
"aanpassen in OpenOffice. \n"
"Eenmaal aangepast kunt u het rapport uploaden met dezelfde wizard.\n"
#. module: base
#: view:base.module.upgrade:0
@ -14340,7 +14418,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sa
msgid "Saudi Arabia"
msgstr "Saoedie Arabië"
msgstr "Saoedi-Arabië"
#. module: base
#: model:ir.module.module,description:base.module_sale_mrp
@ -14368,6 +14446,12 @@ msgid ""
"=============\n"
" "
msgstr ""
"\n"
"Deze module voegt toegangsregels aan uw portaal toe indien stock en portal "
"geinstalleerd zijn.\n"
"============================================================================="
"=======================\n"
" "
#. module: base
#: field:ir.actions.server,trigger_obj_id:0
@ -14400,7 +14484,7 @@ msgstr "Database Gegevens"
#. module: base
#: model:res.country,name:base.tc
msgid "Turks and Caicos Islands"
msgstr "Turkse- en Caicoseilanden"
msgstr "Turks- en Caicoseilanden"
#. module: base
#: field:workflow.triggers,instance_id:0
@ -14601,7 +14685,7 @@ msgstr "Guernsey"
#. module: base
#: selection:base.language.install,lang:0
msgid "Romanian / română"
msgstr "Roemeens / Roemenië"
msgstr "Roemeens / română"
#. module: base
#: model:ir.module.module,description:base.module_l10n_mx
@ -14700,7 +14784,7 @@ msgstr "Wisselkoers"
#: view:base.module.upgrade:0
#: field:base.module.upgrade,module_info:0
msgid "Modules to Update"
msgstr "Module welke geüpdatet moeten worden"
msgstr "Modules welke bijgewerkt moeten worden"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
@ -14777,7 +14861,7 @@ msgstr "Onderliggend veld"
#. module: base
#: view:ir.rule:0
msgid "Detailed algorithm:"
msgstr "Gedetailleerde algoritme:"
msgstr "Gedetailleerd algoritme:"
#. module: base
#: field:ir.actions.act_url,usage:0
@ -14830,7 +14914,7 @@ msgstr "View :"
#. module: base
#: field:ir.model.fields,view_load:0
msgid "View Auto-Load"
msgstr "Weergave vanzelf verversen"
msgstr "Weergave automatisch verversen"
#. module: base
#: model:ir.module.module,description:base.module_l10n_et
@ -14883,9 +14967,9 @@ msgid ""
"If this field is empty, the view applies to all users. Otherwise, the view "
"applies to the users of those groups only."
msgstr ""
"Als di veld leeg is, dan is de weergave beschikbaar voor alle gebruikers. "
"Indien niet leeg dan is de weergave alleen beschikbaar voor de gebruikers "
"van die groepen alleen."
"Als dit veld leeg is, dan is de weergave beschikbaar voor alle gebruikers. "
"Anders is de weergave alleen beschikbaar voor de gebruikers van alleen die "
"groepen."
#. module: base
#: selection:base.language.install,lang:0
@ -14905,7 +14989,7 @@ msgstr "Bron model"
#. module: base
#: view:ir.sequence:0
msgid "Day of the Week (0:Monday): %(weekday)s"
msgstr "Dag van de Weerk (0:Maandag): %(weekday)s"
msgstr "Dag van de Week (0:Maandag): %(weekday)s"
#. module: base
#: code:addons/base/module/wizard/base_module_upgrade.py:84
@ -14919,8 +15003,7 @@ msgstr "Niet voldane afhankelijkheid !"
#: code:addons/base/ir/ir_model.py:1031
#, python-format
msgid "Administrator access is required to uninstall a module"
msgstr ""
"Administrator toegang is nodig om een module te kunnen deinstalleren."
msgstr "Administrator toegang is nodig om een module te kunnen verwijderen."
#. module: base
#: model:ir.model,name:base.model_base_module_configuration
@ -14995,6 +15078,8 @@ msgid ""
"%s This might be '%s' in the current model, or a field of the same name in "
"an o2m."
msgstr ""
"%s Dit is misschien '%s' in het huidige model, of een veld met dezelfde naam "
"in een o2m."
#. module: base
#: model:ir.module.module,description:base.module_account_payment
@ -15128,7 +15213,7 @@ msgstr "ir.model.data"
#. module: base
#: selection:base.language.install,lang:0
msgid "Bulgarian / български език"
msgstr "Bulgaars / Bulgarije"
msgstr "Bulgaars / български език"
#. module: base
#: model:ir.ui.menu,name:base.menu_aftersale
@ -15317,7 +15402,7 @@ msgid ""
msgstr ""
"\n"
"Geeft gebruikers de mogelijkheid om in te loggen met OpenID.\n"
"====================================\n"
"=============================================================\n"
#. module: base
#: help:ir.mail_server,smtp_port:0
@ -15348,7 +15433,7 @@ msgstr "Singapore"
#. module: base
#: selection:ir.actions.act_window,target:0
msgid "Current Window"
msgstr "Huidige venster"
msgstr "Huidig venster"
#. module: base
#: model:ir.module.category,name:base.module_category_hidden
@ -15448,7 +15533,7 @@ msgstr "Nederland - Boekhouding"
#. module: base
#: model:res.country,name:base.gs
msgid "South Georgia and the South Sandwich Islands"
msgstr "Zuid-Georgië en de Zuidelijke Sandwicheilanden"
msgstr "Zuid-Georgia en de Zuidelijke Sandwicheilanden"
#. module: base
#: view:res.lang:0
@ -15458,7 +15543,7 @@ msgstr "%X - Passende tijdweergave"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (SV) / Español (SV)"
msgstr "Spaans (SV) / Spanje (SV)"
msgstr "Spaans (SV) / Español (SV)"
#. module: base
#: help:res.lang,grouping:0
@ -15502,7 +15587,7 @@ msgstr "Japan"
#: code:addons/base/ir/ir_model.py:418
#, python-format
msgid "Can only rename one column at a time!"
msgstr "Er kan alleen één kolomnaam per keer gewijzigd worden!"
msgstr "Kan slechts één kolom per keer wijzigen!"
#. module: base
#: selection:ir.translation,type:0
@ -15563,7 +15648,7 @@ msgstr "Canada - Boekhouding"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_co
msgid "Colombian - Accounting"
msgstr "Boekhouding - Colombia"
msgstr "Colombia - Boekhouding"
#. module: base
#: model:ir.module.module,description:base.module_account_voucher
@ -15602,7 +15687,7 @@ msgstr "Configuratie-assistenten"
#. module: base
#: field:res.lang,code:0
msgid "Locale Code"
msgstr "Code lokalisatie"
msgstr "Code landinstellingen"
#. module: base
#: field:workflow.activity,split_mode:0
@ -15673,7 +15758,7 @@ msgstr "Naam weergave"
#. module: base
#: model:ir.model,name:base.model_res_groups
msgid "Access Groups"
msgstr "Toegang groepen"
msgstr "Toegangsgroepen"
#. module: base
#: selection:base.language.install,lang:0
@ -15792,7 +15877,7 @@ msgstr "Algemene informatie"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pt
msgid "Portugal - Chart of Accounts"
msgstr "Grootboekschema - Portugal"
msgstr "Portugal - Grootboekschema"
#. module: base
#: field:ir.model.data,complete_name:0
@ -15843,7 +15928,7 @@ msgid ""
"taxes. Used by the some of the legal statements."
msgstr ""
"BTW nummer. Vink het vak aan als dit contact BTW-plichtig is. Wordt gebruikt "
"bij sommige wettelijke rapportage."
"bij sommige wettelijke rapportages."
#. module: base
#: field:res.partner.bank,partner_id:0
@ -15875,7 +15960,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.open_module_tree
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Installed Modules"
msgstr "Geinstalleerde modules"
msgstr "Geïnstalleerde modules"
#. module: base
#: code:addons/base/res/res_users.py:170
@ -16011,7 +16096,7 @@ msgstr "Context"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_mrp
msgid "Sales and MRP Management"
msgstr "Verkoop en productiebeheer"
msgstr "Verkoop- en productie beheer"
#. module: base
#: model:ir.actions.act_window,help:base.action_partner_form
@ -16063,7 +16148,7 @@ msgid ""
"sales and purchases documents."
msgstr ""
"Wordt gebruikt om automatisch het juiste adres te kiezen afhankelijk van de "
"context in verkoop- en inkoopdocumenten"
"context in verkoop- en inkoopdocumenten."
#. module: base
#: model:ir.module.module,description:base.module_purchase_analytic_plans

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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:36+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:39+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:36+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:36+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -2747,6 +2747,25 @@ msgid ""
"Print product labels with barcode.\n"
" "
msgstr ""
"\n"
"Это базовый модуль для управления продуктами и прайс-листами в OpenERP.\n"
"========================================================================\n"
"\n"
"Продукты поддерживают варианты, различные методы ценообразования, информацию "
"о поставщиках,\n"
"производство в запас / подзаказ, различные единицы мер, упаковки и свойств.\n"
"Прайс-листы поддерживают:\n"
"--------------------\n"
" * Многоуровневые скидки (по продуктам, категориям, количеству)\n"
" * Расчет базовой цены по различным критериям:\n"
" * другим прайс-листам\n"
" * себестоимости\n"
" * рыночной цене\n"
" * цене поставщиков\n"
"\n"
"Прайс-листы по продуктам или партнерам.\n"
"Печать этикеток с штрих-кодом.\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_account_analytic_default
@ -2904,6 +2923,17 @@ msgid ""
" * Files by Partner (graph)\n"
" * Files Size by Month (graph)\n"
msgstr ""
"\n"
"Система управления документооборотом.\n"
"==============================================\n"
" * Авторизация пользователей\n"
" * Индексация документов: файлы .pptx и .docx не поддерживаются в ОС "
"Windows\n"
" * Панель инструментов для документов, которая включает:\n"
" * Новые файлы (список)\n"
" * Файлы по типу (график)\n"
" * Файлы по партнерам (график)\n"
" * Размеры файлов по месяцам (график)\n"
#. module: base
#: view:ir.actions.report.xml:0
@ -8313,7 +8343,7 @@ msgstr "Финансовый и аналитический учет"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
msgid "Portal Project"
msgstr ""
msgstr "Портал: проекты"
#. module: base
#: model:res.country,name:base.cc
@ -8605,7 +8635,7 @@ msgstr "Действия клиента"
#. module: base
#: field:res.partner.bank.type,field_ids:0
msgid "Type Fields"
msgstr ""
msgstr "Тип поля"
#. module: base
#: model:ir.module.module,summary:base.module_hr_recruitment

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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:30+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:41+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:01+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:37+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:41+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:38+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\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-11-12 05:40+0000\n"
"X-Generator: Launchpad (build 16820)\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2011 OpenERP S.A. <http://www.openerp.com>
# Copyright (C) 2004-2013 OpenERP S.A. <http://www.openerp.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -801,7 +801,7 @@ class ir_actions_server(osv.osv):
raise osv.except_osv(_('Error'), _("Please specify an action to launch!"))
return self.pool[action.action_id.type].read(cr, uid, action.action_id.id, context=context)
def run_action_code(self, cr, uid, action, eval_context=None, context=None):
def run_action_code_multi(self, cr, uid, action, eval_context=None, context=None):
eval(action.code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action'
if 'action' in eval_context:
return eval_context['action']
@ -933,38 +933,50 @@ class ir_actions_server(osv.osv):
context = {}
res = False
user = self.pool.get('res.users').browse(cr, uid, uid)
active_ids = context.get('active_ids', [context.get('active_id', None)])
active_ids = context.get('active_ids', [context.get('active_id')])
for action in self.browse(cr, uid, ids, context):
obj = None
obj_pool = self.pool[action.model_id.model]
for active_id in active_ids:
if context.get('active_model') == action.model_id.model and active_id:
obj = obj_pool.browse(cr, uid, context['active_id'], context=context)
# run context dedicated to a particular active_id
run_context = dict(context, active_ids=[active_id], active_id=active_id)
# evaluation context for python strings to evaluate
eval_context = {
'self': obj_pool,
'object': obj,
'obj': obj,
'pool': self.pool,
'time': time,
'cr': cr,
'context': dict(run_context), # copy context to prevent side-effects of eval
'uid': uid,
'user': user
}
obj = None
if context.get('active_model') == action.model_id.model and context.get('active_id'):
obj = obj_pool.browse(cr, uid, context['active_id'], context=context)
# evaluate the condition, with the specific case that a void (aka False) condition is considered as True
condition = action.condition
if action.condition is False:
condition = True
# evaluation context for python strings to evaluate
eval_context = {
'self': obj_pool,
'object': obj,
'obj': obj,
'pool': self.pool,
'time': time,
'cr': cr,
'uid': uid,
'user': user,
}
condition = action.condition
if condition is False:
# Void (aka False) conditions are considered as True
condition = True
if hasattr(self, 'run_action_%s_multi' % action.state):
# set active_ids in context only needed if one active_id
run_context = dict(context, active_ids=active_ids)
eval_context["context"] = run_context
expr = eval(str(condition), eval_context)
if not expr:
continue
# call the method related to the action: run_action_<STATE>
if hasattr(self, 'run_action_%s' % action.state):
res = getattr(self, 'run_action_%s' % action.state)(cr, uid, action, eval_context=eval_context, context=run_context)
# call the multi method
func = getattr(self, 'run_action_%s_multi' % action.state)
res = func(cr, uid, action, eval_context=eval_context, context=run_context)
elif hasattr(self, 'run_action_%s' % action.state):
func = getattr(self, 'run_action_%s' % action.state)
for active_id in active_ids:
# run context dedicated to a particular active_id
run_context = dict(context, active_ids=[active_id], active_id=active_id)
eval_context["context"] = run_context
expr = eval(str(condition), eval_context)
if not expr:
continue
# call the single method related to the action: run_action_<STATE>
res = func(cr, uid, action, eval_context=eval_context, context=run_context)
return res

View File

@ -476,7 +476,8 @@
<field name="model_id"/>
<field name="state"/>
<group expand="0" string="Group By" colspan="4" col="4">
<filter string="Action Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'state'}"/>
<filter string="Action Type" domain="[]" context="{'group_by':'state'}"/>
<filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
</group>
</search>
</field>

View File

@ -199,7 +199,7 @@ class ir_attachment(osv.osv):
continue
res_ids.setdefault(rmod,set()).add(rid)
if values:
if values.get('res_model') and 'res_id' in values:
if values.get('res_model') and values.get('res_id'):
res_ids.setdefault(values['res_model'],set()).add(values['res_id'])
ima = self.pool.get('ir.model.access')

View File

@ -261,7 +261,7 @@ class ir_fields_converter(orm.Model):
if not isinstance(selection, (tuple, list)):
# FIXME: Don't pass context to avoid translations?
# Or just copy context & remove lang?
selection = selection(model, cr, uid)
selection = selection(model, cr, uid, context=None)
for item, label in selection:
labels = self._get_translations(
cr, uid, ('selection', 'model', 'code'), label, context=context)

View File

@ -53,7 +53,6 @@ class ModelsConverter(werkzeug.routing.BaseConverter):
class ir_http(osv.AbstractModel):
_name = 'ir.http'
_description = "HTTP routing"
def _get_converters(self):
@ -83,9 +82,8 @@ class ir_http(osv.AbstractModel):
# what if error in security.check()
# -> res_users.check()
# -> res_users.check_credentials()
except http.SessionExpiredException:
except Exception:
request.session.logout()
raise http.SessionExpiredException("Session expired for request %s" % request.httprequest)
getattr(self, "_auth_method_%s" % auth_method)()
return auth_method

View File

@ -96,8 +96,8 @@ class ir_model(osv.osv):
return res
_columns = {
'name': fields.char('Model Description', size=64, translate=True, required=True),
'model': fields.char('Model', size=64, required=True, select=1),
'name': fields.char('Model Description', translate=True, required=True),
'model': fields.char('Model', required=True, select=1),
'info': fields.text('Information'),
'field_id': fields.one2many('ir.model.fields', 'model_id', 'Fields', required=True),
'state': fields.selection([('manual','Custom Object'),('base','Base Object')],'Type',readonly=True),
@ -105,7 +105,7 @@ class ir_model(osv.osv):
'osv_memory': fields.function(_is_osv_memory, string='Transient Model', type='boolean',
fnct_search=_search_osv_memory,
help="This field specifies whether the model is transient or not (i.e. if records are automatically deleted from the database or not)"),
'modules': fields.function(_in_modules, type='char', size=128, string='In Modules', help='List of modules in which the object is defined or inherited'),
'modules': fields.function(_in_modules, type='char', string='In Modules', help='List of modules in which the object is defined or inherited'),
'view_ids': fields.function(_view_ids, type='one2many', obj='ir.ui.view', string='Views'),
}
@ -223,19 +223,19 @@ class ir_model_fields(osv.osv):
_rec_name = 'field_description'
_columns = {
'name': fields.char('Name', required=True, size=64, select=1),
'complete_name': fields.char('Complete Name', size=64, select=1),
'model': fields.char('Object Name', size=64, required=True, select=1,
'name': fields.char('Name', required=True, select=1),
'complete_name': fields.char('Complete Name', select=1),
'model': fields.char('Object Name', required=True, select=1,
help="The technical name of the model this field belongs to"),
'relation': fields.char('Object Relation', size=64,
'relation': fields.char('Object Relation',
help="For relationship fields, the technical name of the target model"),
'relation_field': fields.char('Relation Field', size=64,
'relation_field': fields.char('Relation Field',
help="For one2many fields, the field on the target model that implement the opposite many2one relationship"),
'model_id': fields.many2one('ir.model', 'Model', required=True, select=True, ondelete='cascade',
help="The model this field belongs to"),
'field_description': fields.char('Field Label', required=True, size=256),
'ttype': fields.selection(_get_fields_type, 'Field Type',size=64, required=True),
'selection': fields.char('Selection Options',size=128, help="List of options for a selection field, "
'field_description': fields.char('Field Label', required=True),
'ttype': fields.selection(_get_fields_type, 'Field Type', required=True),
'selection': fields.char('Selection Options', help="List of options for a selection field, "
"specified as a Python expression defining a list of (key, label) pairs. "
"For example: [('blue','Blue'),('yellow','Yellow')]"),
'required': fields.boolean('Required'),
@ -245,12 +245,12 @@ class ir_model_fields(osv.osv):
'size': fields.integer('Size'),
'state': fields.selection([('manual','Custom Field'),('base','Base Field')],'Type', required=True, readonly=True, select=1),
'on_delete': fields.selection([('cascade','Cascade'),('set null','Set NULL')], 'On Delete', help='On delete property for many2one fields'),
'domain': fields.char('Domain', size=256, help="The optional domain to restrict possible values for relationship fields, "
'domain': fields.char('Domain', help="The optional domain to restrict possible values for relationship fields, "
"specified as a Python expression defining a list of triplets. "
"For example: [('color','=','red')]"),
'groups': fields.many2many('res.groups', 'ir_model_fields_group_rel', 'field_id', 'group_id', 'Groups'),
'selectable': fields.boolean('Selectable'),
'modules': fields.function(_in_modules, type='char', size=128, string='In Modules', help='List of modules in which the field is defined'),
'modules': fields.function(_in_modules, type='char', string='In Modules', help='List of modules in which the field is defined'),
'serialization_field_id': fields.many2one('ir.model.fields', 'Serialization Field', domain = "[('ttype','=','serialized')]",
ondelete='cascade', help="If set, this field will be stored in the sparse "
"structure of the serialization field, instead "
@ -483,7 +483,7 @@ class ir_model_constraint(Model):
"""
_name = 'ir.model.constraint'
_columns = {
'name': fields.char('Constraint', required=True, size=128, select=1,
'name': fields.char('Constraint', required=True, select=1,
help="PostgreSQL constraint or foreign key name."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
@ -552,7 +552,7 @@ class ir_model_relation(Model):
"""
_name = 'ir.model.relation'
_columns = {
'name': fields.char('Relation Name', required=True, size=128, select=1,
'name': fields.char('Relation Name', required=True, select=1,
help="PostgreSQL table name implementing a many2many relation."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
@ -601,7 +601,7 @@ class ir_model_relation(Model):
class ir_model_access(osv.osv):
_name = 'ir.model.access'
_columns = {
'name': fields.char('Name', size=64, required=True, select=True),
'name': fields.char('Name', required=True, select=True),
'active': fields.boolean('Active', help='If you uncheck the active field, it will disable the ACL without deleting it (if you delete a native ACL, it will be re-created when you reload the module.'),
'model_id': fields.many2one('ir.model', 'Object', required=True, domain=[('osv_memory','=', False)], select=True, ondelete='cascade'),
'group_id': fields.many2one('res.groups', 'Group', ondelete='cascade', select=True),
@ -815,13 +815,13 @@ class ir_model_data(osv.osv):
return result
_columns = {
'name': fields.char('External Identifier', required=True, size=128, select=1,
'name': fields.char('External Identifier', required=True, select=1,
help="External Key/Identifier that can be used for "
"data integration with third-party systems"),
'complete_name': fields.function(_complete_name_get, type='char', string='Complete ID'),
'display_name': fields.function(_display_name_get, type='char', string='Record Name'),
'model': fields.char('Model Name', required=True, size=64, select=1),
'module': fields.char('Module', required=True, size=64, select=1),
'model': fields.char('Model Name', required=True, select=1),
'module': fields.char('Module', required=True, select=1),
'res_id': fields.integer('Record ID', select=1,
help="ID of the target record in the database"),
'noupdate': fields.boolean('Non Updatable'),
@ -1125,7 +1125,7 @@ class ir_model_data(osv.osv):
return True
to_unlink = []
cr.execute("""SELECT id,name,model,res_id,module FROM ir_model_data
WHERE module IN %s AND res_id IS NOT NULL AND noupdate=%s""",
WHERE module IN %s AND res_id IS NOT NULL AND noupdate=%s ORDER BY id DESC""",
(tuple(modules), False))
for (id, name, model, res_id, module) in cr.fetchall():
if (module,name) not in self.loads:

View File

@ -182,7 +182,7 @@ class ir_translation(osv.osv):
if context is None:
context = {}
record = self.browse(cr, uid, id, context=context)
if value and record.type == 'model':
if record.type == 'model':
model_name, field = record.name.split(',')
model = self.pool.get(model_name)
#We need to take the context without the language information, because we want to write on the

View File

@ -85,7 +85,7 @@
<label for="font" />
<div>
<div>
<field name="font" class="oe_inline" colspan="2"/>
<field name="font" class="oe_inline" colspan="2" on_change="onchange_font_name(font, rml_header, rml_header2, rml_header3)"/>
<button string="(reload fonts)" name="act_discover_fonts" type="object" class="oe_link" colspan="1"/>
</div>
</div>

View File

@ -492,15 +492,19 @@ class res_config_settings(osv.osv_memory, res_config_module_installation_mixin):
return res
def execute(self, cr, uid, ids, context=None):
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
ir_values = self.pool['ir.values']
ir_module = self.pool['ir.module.module']
classified = self._get_classified_fields(cr, uid, context)
config = self.browse(cr, uid, ids[0], context)
# default values fields
for name, model, field in classified['default']:
ir_values.set_default(cr, uid, model, field, config[name])
ir_values.set_default(cr, SUPERUSER_ID, model, field, config[name])
# group fields: modify group / implied groups
for name, group, implied_group in classified['group']:

View File

@ -1212,7 +1212,7 @@
<record id="ve" model="res.country">
<field name="name">Venezuela</field>
<field name="code">ve</field>
<field name="currency_id" ref="VUB"/>
<field name="currency_id" ref="VEF"/>
</record>
<record id="vg" model="res.country">
<field name="name">Virgin Islands (British)</field>

View File

@ -1540,7 +1540,7 @@
</record>
<record id="VUB" model="res.currency">
<field name="name">VUB</field>
<field name="name">VEB</field>
<field name="symbol">Bs</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>

View File

@ -329,7 +329,7 @@
<field name="arch" type="xml">
<search string="Search Partner">
<field name="name"
filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email,'ilike',self)]"/>
filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/>
<filter help="My Partners" icon="terp-personal+" domain="[('user_id','=',uid)]"/>
<separator/>
<filter string="Persons" name="type_person" domain="[('is_company','=',0)]"/>

View File

@ -169,7 +169,8 @@ class res_users(osv.osv):
}
def on_change_login(self, cr, uid, ids, login, context=None):
return {'value': {'email': login}}
v = {'email': login} if tools.single_email_re.match(login) else {}
return {'value': v}
def onchange_state(self, cr, uid, ids, state_id, context=None):
partner_ids = [user.partner_id.id for user in self.browse(cr, uid, ids, context=context)]
@ -762,7 +763,6 @@ 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):
@ -811,7 +811,7 @@ class users_view(osv.osv):
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])
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]
@ -819,14 +819,19 @@ class users_view(osv.osv):
return values
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
if not fields:
fields = self.fields_get(cr, uid, context=context).keys()
group_fields, fields = partition(is_reified_group, fields)
if not 'groups_id' in fields:
fields_get = fields if fields is not None else self.fields_get(cr, uid, context=context).keys()
group_fields, _ = partition(is_reified_group, fields_get)
inject_groups_id = group_fields and fields and 'groups_id' not in fields
if inject_groups_id:
fields.append('groups_id')
res = super(users_view, self).read(cr, uid, ids, fields, context=context, load=load)
for values in (res if isinstance(res, list) else [res]):
self._get_reified_groups(group_fields, values)
if group_fields:
for values in (res if isinstance(res, list) else [res]):
self._get_reified_groups(group_fields, values)
if inject_groups_id:
values.pop('groups_id', None)
return res
def _get_reified_groups(self, fields, values):

View File

@ -304,5 +304,47 @@ class test_partner_recursion(common.TransactionCase):
cr, uid, p1, p2, p3 = self.cr, self.uid, self.p1, self.p2, self.p3
self.assertTrue(self.res_partner.write(cr, uid, [p1,p2,p3], {'phone': '123456'}))
class test_translation(common.TransactionCase):
def setUp(self):
super(test_translation, self).setUp()
self.res_category = self.registry('res.partner.category')
self.ir_translation = self.registry('ir.translation')
cr, uid = self.cr, self.uid
self.registry('ir.translation').load(cr, ['base'], ['fr_FR'])
self.cat_id = self.res_category.create(cr, uid, {'name': 'Customers'})
self.ir_translation.create(cr, uid, {'name': 'res.partner.category,name', 'module':'base',
'value': 'Clients', 'res_id': self.cat_id, 'lang':'fr_FR', 'state':'translated', 'type': 'model'})
def test_101_create_translated_record(self):
cr, uid = self.cr, self.uid
no_context_cat = self.res_category.browse(cr, uid, self.cat_id)
self.assertEqual(no_context_cat.name, 'Customers', "Error in basic name_get")
fr_context_cat = self.res_category.browse(cr, uid, self.cat_id, context={'lang':'fr_FR'})
self.assertEqual(fr_context_cat.name, 'Clients', "Translation not found")
def test_102_duplicate_record(self):
cr, uid = self.cr, self.uid
self.new_cat_id = self.res_category.copy(cr, uid, self.cat_id, context={'lang':'fr_FR'})
no_context_cat = self.res_category.browse(cr, uid, self.new_cat_id)
self.assertEqual(no_context_cat.name, 'Customers', "Duplication did not set untranslated value")
fr_context_cat = self.res_category.browse(cr, uid, self.new_cat_id, context={'lang':'fr_FR'})
self.assertEqual(fr_context_cat.name, 'Clients', "Did not found translation for initial value")
def test_103_duplicate_record_fr(self):
cr, uid = self.cr, self.uid
self.new_fr_cat_id = self.res_category.copy(cr, uid, self.cat_id, default={'name': 'Clients (copie)'}, context={'lang':'fr_FR'})
no_context_cat = self.res_category.browse(cr, uid, self.new_fr_cat_id)
self.assertEqual(no_context_cat.name, 'Customers', "Duplication erased original untranslated value")
fr_context_cat = self.res_category.browse(cr, uid, self.new_fr_cat_id, context={'lang':'fr_FR'})
self.assertEqual(fr_context_cat.name, 'Clients (copie)', "Did not used default value for translated value")
if __name__ == '__main__':
unittest2.main()

View File

@ -430,6 +430,53 @@ class TestNoModel(common.TransactionCase):
class test_views(common.TransactionCase):
@mute_logger('openerp.osv.orm', 'openerp.addons.base.ir.ir_ui_view')
def test_00_init_check_views(self):
Views = self.registry('ir.ui.view')
self.assertTrue(Views.pool._init)
error_msg = "The model name does not exist or the view architecture cannot be rendered"
# test arch check is call for views without xmlid during registry initialization
with self.assertRaisesRegexp(except_orm, error_msg):
Views.create(self.cr, self.uid, {
'name': 'Test View #1',
'model': 'ir.ui.view',
'arch': """<?xml version="1.0"?>
<tree>
<field name="test_1"/>
</tree>
""",
})
# same for inherited views
with self.assertRaisesRegexp(except_orm, error_msg):
# Views.pudb = True
Views.create(self.cr, self.uid, {
'name': 'Test View #2',
'model': 'ir.ui.view',
'inherit_id': self.browse_ref('base.view_view_tree').id,
'arch': """<?xml version="1.0"?>
<xpath expr="//field[@name='name']" position="after">
<field name="test_2"/>
</xpath>
""",
})
def test_20_remove_unexisting_attribute(self):
Views = self.registry('ir.ui.view')
Views.create(self.cr, self.uid, {
'name': 'Test View',
'model': 'ir.ui.view',
'inherit_id': self.browse_ref('base.view_view_tree').id,
'arch': """<?xml version="1.0"?>
<xpath expr="//field[@name='name']" position="attributes">
<attribute name="non_existing_attribute"></attribute>
</xpath>
""",
})
def _insert_view(self, **kw):
"""Insert view into database via a query to passtrough validation"""
kw.pop('id', None)

View File

@ -94,11 +94,11 @@ def preload_registry(dbname):
""" Preload a registry, and start the cron."""
try:
update_module = True if openerp.tools.config['init'] or openerp.tools.config['update'] else False
openerp.modules.registry.RegistryManager.new(dbname, update_module=update_module)
registry = openerp.modules.registry.RegistryManager.new(dbname, update_module=update_module)
except Exception:
_logger.exception('Failed to initialize database `%s`.', dbname)
return False
return True
return registry._assertion_report.failures == 0
def run_test_file(dbname, test_file):
""" Preload a registry, possibly run a test file, and start the cron."""

View File

@ -23,6 +23,7 @@ import urlparse
import warnings
import babel.core
import psycopg2
import simplejson
import werkzeug.contrib.sessions
import werkzeug.datastructures
@ -910,11 +911,9 @@ class Root(object):
return explicit_session
def setup_db(self, httprequest):
# if no db is found on the session try to deduce it from the domain
db = db_monodb(httprequest)
if db != httprequest.session.db:
httprequest.session.logout()
httprequest.session.db = db
if not httprequest.session.db:
# allow "admin" routes to works without being logged in when in monodb.
httprequest.session.db = db_monodb(httprequest)
def setup_lang(self, httprequest):
if not "lang" in httprequest.session.context:
@ -971,12 +970,26 @@ class Root(object):
request = self.get_request(httprequest)
def _dispatch_nodb():
func, arguments = self.nodb_routing_map.bind_to_environ(request.httprequest.environ).match()
request.set_handler(func, arguments, "none")
result = request.dispatch()
return result
with request:
db = request.session.db
if db:
openerp.modules.registry.RegistryManager.check_registry_signaling(db)
result = request.registry['ir.http']._dispatch()
openerp.modules.registry.RegistryManager.signal_caches_change(db)
try:
ir_http = request.registry['ir.http']
except psycopg2.OperationalError:
# psycopg2 error. At this point, that's mean the database does not exists
# anymore. We unlog the user and failback in nodb mode
request.session.logout()
result = _dispatch_nodb()
else:
result = ir_http._dispatch()
openerp.modules.registry.RegistryManager.signal_caches_change(db)
else:
# fallback to non-db handlers
func, arguments = self.nodb_routing_map.bind_to_environ(request.httprequest.environ).match()

View File

@ -342,7 +342,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
if processed_modules:
cr.execute("""select model,name from ir_model where id NOT IN (select distinct model_id from ir_model_access)""")
for (model, name) in cr.fetchall():
if model in registry and not registry[model].is_transient():
if model in registry and not registry[model].is_transient() and not isinstance(registry[model], openerp.osv.orm.AbstractModel):
_logger.warning('The model %s has no access rules, consider adding one. E.g. access_%s,access_%s,model_%s,,1,1,1,1',
model, model.replace('.', '_'), model.replace('.', '_'), model.replace('.', '_'))

View File

@ -199,15 +199,16 @@ class RegistryManager(object):
@classmethod
def get(cls, db_name, force_demo=False, status=None, update_module=False):
""" Return a registry for a given database name."""
try:
return cls.registries[db_name]
except KeyError:
return cls.new(db_name, force_demo, status,
update_module)
finally:
# set db tracker - cleaned up at the WSGI
# dispatching phase in openerp.service.wsgi_server.application
threading.current_thread().dbname = db_name
with cls.registries_lock:
try:
return cls.registries[db_name]
except KeyError:
return cls.new(db_name, force_demo, status,
update_module)
finally:
# set db tracker - cleaned up at the WSGI
# dispatching phase in openerp.service.wsgi_server.application
threading.current_thread().dbname = db_name
@classmethod
def new(cls, db_name, force_demo=False, status=None,

View File

@ -1184,7 +1184,7 @@ class function(_column):
# make the result a tuple if it is not already one
if isinstance(value, (int,long)) and hasattr(obj._columns[field], 'relation'):
obj_model = obj.pool[obj._columns[field].relation]
dict_names = dict(obj_model.name_get(cr, uid, [value], context))
dict_names = dict(obj_model.name_get(cr, SUPERUSER_ID, [value], context))
result = (value, dict_names[value])
if field_type == 'binary':

View File

@ -383,10 +383,12 @@ class browse_record(object):
self.__logger.debug(''.join(traceback.format_stack()))
raise KeyError(error_msg)
prefetchable = lambda f: f._classic_write and f._prefetch and not f.groups and not f.deprecated
# if the field is a classic one or a many2one, we'll fetch all classic and many2one fields
if col._prefetch and not col.groups:
if prefetchable(col):
# gen the list of "local" (ie not inherited) fields which are classic or many2one
field_filter = lambda x: x[1]._classic_write and x[1]._prefetch and not x[1].groups
field_filter = lambda x: prefetchable(x[1])
fields_to_fetch = filter(field_filter, self._table._columns.items())
# gen the list of inherited fields
inherits = map(lambda x: (x[0], x[1][2]), self._table._inherit_fields.items())
@ -399,7 +401,15 @@ class browse_record(object):
ids = filter(lambda id: name not in self._data[id], self._data.keys())
# read the results
field_names = map(lambda x: x[0], fields_to_fetch)
field_values = self._table.read(self._cr, self._uid, ids, field_names, context=self._context, load="_classic_write")
try:
field_values = self._table.read(self._cr, self._uid, ids, field_names, context=self._context, load="_classic_write")
except (openerp.exceptions.AccessError, except_orm):
if len(ids) == 1:
raise
# prefetching attempt failed, perhaps we're violating ACL restrictions involuntarily
_logger.info('Prefetching attempt for fields %s on %s failed for ids %s, re-trying just for id %s', field_names, self._model._name, ids, self._id)
ids = [self._id]
field_values = self._table.read(self._cr, self._uid, ids, field_names, context=self._context, load="_classic_write")
# TODO: improve this, very slow for reports
if self._fields_process:
@ -4520,8 +4530,8 @@ class BaseModel(object):
context = {}
# avoid recursion through already copied records in case of circular relationship
seen_map = context.setdefault('__copy_data_seen',{})
if id in seen_map.setdefault(self._name,[]):
seen_map = context.setdefault('__copy_data_seen', {})
if id in seen_map.setdefault(self._name, []):
return
seen_map[self._name].append(id)
@ -4534,15 +4544,6 @@ class BaseModel(object):
else:
default['state'] = self._defaults['state']
context_wo_lang = context.copy()
if 'lang' in context:
del context_wo_lang['lang']
data = self.read(cr, uid, [id,], context=context_wo_lang)
if data:
data = data[0]
else:
raise IndexError( _("Record #%d of %s not found, cannot copy!") %( id, self._name))
# build a black list of fields that should not be copied
blacklist = set(MAGIC_COLUMNS + ['parent_left', 'parent_right'])
def blacklist_given_fields(obj):
@ -4555,8 +4556,21 @@ class BaseModel(object):
blacklist.update(set(self.pool[other]._all_columns) - set(self._columns))
else:
blacklist_given_fields(self.pool[other])
# blacklist deprecated fields
for name, field in obj._columns.items():
if field.deprecated:
blacklist.add(name)
blacklist_given_fields(self)
fields_to_read = [f for f in self.check_field_access_rights(cr, uid, 'read', None)
if f not in blacklist]
data = self.read(cr, uid, [id], fields_to_read, context=context)
if data:
data = data[0]
else:
raise IndexError(_("Record #%d of %s not found, cannot copy!") % (id, self._name))
res = dict(default)
for f, colinfo in self._all_columns.items():
field = colinfo.column
@ -4597,36 +4611,50 @@ class BaseModel(object):
# TODO it seems fields_get can be replaced by _all_columns (no need for translation)
fields = self.fields_get(cr, uid, context=context)
translation_records = []
for field_name, field_def in fields.items():
# removing the lang to compare untranslated values
context_wo_lang = dict(context, lang=None)
old_record, new_record = self.browse(cr, uid, [old_id, new_id], context=context_wo_lang)
# we must recursively copy the translations for o2o and o2m
if field_def['type'] == 'one2many':
target_obj = self.pool[field_def['relation']]
old_record, new_record = self.read(cr, uid, [old_id, new_id], [field_name], context=context)
# here we rely on the order of the ids to match the translations
# as foreseen in copy_data()
old_children = sorted(old_record[field_name])
new_children = sorted(new_record[field_name])
old_children = sorted(r.id for r in old_record[field_name])
new_children = sorted(r.id for r in new_record[field_name])
for (old_child, new_child) in zip(old_children, new_children):
target_obj.copy_translations(cr, uid, old_child, new_child, context=context)
# and for translatable fields we keep them for copy
elif field_def.get('translate'):
trans_name = ''
if field_name in self._columns:
trans_name = self._name + "," + field_name
target_id = new_id
source_id = old_id
elif field_name in self._inherit_fields:
trans_name = self._inherit_fields[field_name][0] + "," + field_name
if trans_name:
trans_ids = trans_obj.search(cr, uid, [
('name', '=', trans_name),
('res_id', '=', old_id)
])
translation_records.extend(trans_obj.read(cr, uid, trans_ids, context=context))
# get the id of the parent record to set the translation
inherit_field_name = self._inherit_fields[field_name][1]
target_id = new_record[inherit_field_name].id
source_id = old_record[inherit_field_name].id
else:
continue
for record in translation_records:
del record['id']
record['res_id'] = new_id
trans_obj.create(cr, uid, record, context=context)
trans_ids = trans_obj.search(cr, uid, [
('name', '=', trans_name),
('res_id', '=', source_id)
])
user_lang = context.get('lang')
for record in trans_obj.read(cr, uid, trans_ids, context=context):
del record['id']
# remove source to avoid triggering _set_src
del record['source']
record.update({'res_id': target_id})
if user_lang and user_lang == record['lang']:
# 'source' to force the call to _set_src
# 'value' needed if value is changed in copy(), want to see the new_value
record['source'] = old_record[field_name]
record['value'] = new_record[field_name]
trans_obj.create(cr, uid, record, context=context)
def copy(self, cr, uid, id, default=None, context=None):

View File

@ -242,7 +242,7 @@ class _rml_styles(object,):
if sname in self.styles_obj:
style = self.styles_obj[sname]
else:
_logger.warning('Warning: style not found, %s - setting default!\n' % (node.get('style'),) )
_logger.debug('Warning: style not found, %s - setting default!', node.get('style'))
if not style:
style = self.default_style['Normal']
para_update = self._para_style_update(node)
@ -631,6 +631,18 @@ class _rml_Illustration(platypus.flowables.Flowable):
drw = _rml_draw(self.localcontext ,self.node,self.styles, images=self.self2.images, path=self.self2.path, title=self.self2.title)
drw.render(self.canv, None)
# Workaround for issue #15: https://bitbucket.org/rptlab/reportlab/issue/15/infinite-pages-produced-when-splitting
original_pto_split = platypus.flowables.PTOContainer.split
def split(self, availWidth, availHeight):
res = original_pto_split(self, availWidth, availHeight)
if len(res) > 2 and len(self._content) > 0:
header = self._content[0]._ptoinfo.header
trailer = self._content[0]._ptoinfo.trailer
if isinstance(res[-2], platypus.flowables.UseUpSpace) and len(header + trailer) == len(res[:-2]):
return []
return res
platypus.flowables.PTOContainer.split = split
class _rml_flowable(object):
def __init__(self, doc, localcontext, images=None, path='.', title=None, canvas=None):
if images is None:
@ -1012,11 +1024,16 @@ class _rml_template(object):
# Reset Page Number with new story tag
fis.append(PageReset())
story_cnt += 1
if self.localcontext and self.localcontext.get('internal_header',False):
self.doc_tmpl.afterFlowable(fis)
self.doc_tmpl.build(fis,canvasmaker=NumberedCanvas)
else:
self.doc_tmpl.build(fis)
try:
if self.localcontext and self.localcontext.get('internal_header',False):
self.doc_tmpl.afterFlowable(fis)
self.doc_tmpl.build(fis,canvasmaker=NumberedCanvas)
else:
self.doc_tmpl.build(fis)
except platypus.doctemplate.LayoutError, e:
e.name = 'Print Error'
e.value = 'The document you are trying to print contains a table row that does not fit on one page. Please try to split it in smaller rows or contact your administrator.'
raise
def parseNode(rml, localcontext=None, fout=None, images=None, path='.', title=None):
node = etree.XML(rml)

View File

@ -17,7 +17,6 @@ import subprocess
import sys
import threading
import time
import traceback
import werkzeug.serving
@ -33,7 +32,7 @@ except ImportError:
import openerp
import openerp.tools.config as config
from openerp.release import nt_service_name
from openerp.tools.misc import stripped_sys_argv
from openerp.tools.misc import stripped_sys_argv, dumpstacks
import wsgi_server
@ -183,25 +182,6 @@ class CommonServer(object):
# runtime
self.pid = os.getpid()
def dumpstacks(self):
""" Signal handler: dump a stack trace for each existing thread."""
# code from http://stackoverflow.com/questions/132058/getting-stack-trace-from-a-running-python-application#answer-2569696
# modified for python 2.5 compatibility
threads_info = dict([(th.ident, {'name': th.name,
'uid': getattr(th,'uid','n/a')})
for th in threading.enumerate()])
code = []
for threadId, stack in sys._current_frames().items():
thread_info = threads_info.get(threadId)
code.append("\n# Thread: %s (id:%s) (uid:%s)" % \
(thread_info and thread_info['name'] or 'n/a',
threadId,
thread_info and thread_info['uid'] or 'n/a'))
for filename, lineno, name, line in traceback.extract_stack(stack):
code.append('File: "%s", line %d, in %s' % (filename, lineno, name))
if line:
code.append(" %s" % (line.strip()))
_logger.info("\n".join(code))
def close_socket(self, sock):
""" Closes a socket instance cleanly
@ -243,9 +223,6 @@ class ThreadedServer(CommonServer):
# restart on kill -HUP
openerp.phoenix = True
self.quit_signals_received += 1
elif sig == signal.SIGQUIT:
# dump stacks on kill -3
self.dumpstacks()
def cron_thread(self, number):
while True:
@ -295,7 +272,7 @@ class ThreadedServer(CommonServer):
signal.signal(signal.SIGTERM, self.signal_handler)
signal.signal(signal.SIGCHLD, self.signal_handler)
signal.signal(signal.SIGHUP, self.signal_handler)
signal.signal(signal.SIGQUIT, self.signal_handler)
signal.signal(signal.SIGQUIT, dumpstacks)
elif os.name == 'nt':
import win32api
win32api.SetConsoleCtrlHandler(lambda sig: signal_handler(sig, None), 1)
@ -372,6 +349,10 @@ class GeventServer(CommonServer):
def start(self):
import gevent
from gevent.wsgi import WSGIServer
if os.name == 'posix':
signal.signal(signal.SIGQUIT, dumpstacks)
gevent.spawn(self.watch_parent)
self.httpd = WSGIServer((self.interface, self.port), self.app)
_logger.info('Evented Service (longpolling) running on %s:%s', self.interface, self.port)
@ -558,9 +539,10 @@ class PreforkServer(CommonServer):
signal.signal(signal.SIGTERM, self.signal_handler)
signal.signal(signal.SIGHUP, self.signal_handler)
signal.signal(signal.SIGCHLD, self.signal_handler)
signal.signal(signal.SIGQUIT, self.signal_handler)
signal.signal(signal.SIGTTIN, self.signal_handler)
signal.signal(signal.SIGTTOU, self.signal_handler)
signal.signal(signal.SIGQUIT, dumpstacks)
# listen to socket
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

View File

@ -8,7 +8,7 @@
'maintainer': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base'],
'data': ['data.xml'],
'data': ['data.xml', 'ir.model.access.csv'],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,15 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_test_workflow_model,access_test_workflow_model,model_test_workflow_model,,1,1,1,1
access_test_workflow_trigger,access_test_workflow_trigger,model_test_workflow_trigger,,1,1,1,1
access_test_workflow_model_a,access_test_workflow_model_a,model_test_workflow_model_a,,1,1,1,1
access_test_workflow_model_b,access_test_workflow_model_b,model_test_workflow_model_b,,1,1,1,1
access_test_workflow_model_c,access_test_workflow_model_c,model_test_workflow_model_c,,1,1,1,1
access_test_workflow_model_d,access_test_workflow_model_d,model_test_workflow_model_d,,1,1,1,1
access_test_workflow_model_e,access_test_workflow_model_e,model_test_workflow_model_e,,1,1,1,1
access_test_workflow_model_f,access_test_workflow_model_f,model_test_workflow_model_f,,1,1,1,1
access_test_workflow_model_g,access_test_workflow_model_g,model_test_workflow_model_g,,1,1,1,1
access_test_workflow_model_h,access_test_workflow_model_h,model_test_workflow_model_h,,1,1,1,1
access_test_workflow_model_i,access_test_workflow_model_i,model_test_workflow_model_i,,1,1,1,1
access_test_workflow_model_j,access_test_workflow_model_j,model_test_workflow_model_j,,1,1,1,1
access_test_workflow_model_k,access_test_workflow_model_k,model_test_workflow_model_k,,1,1,1,1
access_test_workflow_model_l,access_test_workflow_model_l,model_test_workflow_model_l,,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_test_workflow_model access_test_workflow_model model_test_workflow_model 1 1 1 1
3 access_test_workflow_trigger access_test_workflow_trigger model_test_workflow_trigger 1 1 1 1
4 access_test_workflow_model_a access_test_workflow_model_a model_test_workflow_model_a 1 1 1 1
5 access_test_workflow_model_b access_test_workflow_model_b model_test_workflow_model_b 1 1 1 1
6 access_test_workflow_model_c access_test_workflow_model_c model_test_workflow_model_c 1 1 1 1
7 access_test_workflow_model_d access_test_workflow_model_d model_test_workflow_model_d 1 1 1 1
8 access_test_workflow_model_e access_test_workflow_model_e model_test_workflow_model_e 1 1 1 1
9 access_test_workflow_model_f access_test_workflow_model_f model_test_workflow_model_f 1 1 1 1
10 access_test_workflow_model_g access_test_workflow_model_g model_test_workflow_model_g 1 1 1 1
11 access_test_workflow_model_h access_test_workflow_model_h model_test_workflow_model_h 1 1 1 1
12 access_test_workflow_model_i access_test_workflow_model_i model_test_workflow_model_i 1 1 1 1
13 access_test_workflow_model_j access_test_workflow_model_j model_test_workflow_model_j 1 1 1 1
14 access_test_workflow_model_k access_test_workflow_model_k model_test_workflow_model_k 1 1 1 1
15 access_test_workflow_model_l access_test_workflow_model_l model_test_workflow_model_l 1 1 1 1

View File

@ -95,9 +95,10 @@ class TestACL(common.TransactionCase):
part = P.browse(self.cr, self.demo_uid, pid)
# accessing fields must no raise exceptions...
part.name
# ... except they are restricted
# ... except if they are restricted
with self.assertRaises(openerp.osv.orm.except_orm) as cm:
part.email
with mute_logger('openerp.osv.orm'):
part.email
self.assertEqual(cm.exception.args[0], 'Access Denied')
finally:

View File

@ -84,12 +84,8 @@ class TestSanitizer(unittest2.TestCase):
self.assertNotIn('javascript', html, 'html_sanitize did not remove a malicious javascript')
self.assertTrue('ha.ckers.org' not in html or 'http://ha.ckers.org/xss.css' in html, 'html_sanitize did not remove a malicious code in %s (%s)' % (content, html))
# Raise an exception if the node is an empty string without any root tag
with self.assertRaises(etree.ParserError):
content = "<!--[if gte IE 4]><SCRIPT>alert('XSS');</SCRIPT><![endif]-->" # down-level hidden block
html = html_sanitize(content, silent=False)
content = "<!--[if gte IE 4]><SCRIPT>alert('XSS');</SCRIPT><![endif]-->" # down-level hidden block
self.assertEquals(html_sanitize(content, silent=False), '')
def test_html(self):
sanitized_html = html_sanitize(test_mail_examples.MISC_HTML_SOURCE)

View File

@ -88,7 +88,9 @@ def html_sanitize(src, silent=True):
# some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
cleaner = clean.Cleaner(**kwargs)
cleaned = cleaner.clean_html(src)
except etree.ParserError:
except etree.ParserError, e:
if 'empty' in str(e):
return ""
if not silent:
raise
logger.warning('ParserError obtained when sanitizing %r', src, exc_info=True)

View File

@ -41,6 +41,7 @@ from itertools import islice, izip, groupby
from lxml import etree
from which import which
from threading import local
import traceback
try:
from html2text import html2text
@ -50,9 +51,10 @@ except ImportError:
from config import config
from cache import *
import openerp
# get_encodings, ustr and exception_to_unicode were originally from tools.misc.
# There are moved to loglevels until we refactor tools.
from openerp.loglevels import get_encodings, ustr, exception_to_unicode
from openerp.loglevels import get_encodings, ustr, exception_to_unicode # noqa
_logger = logging.getLogger(__name__)
@ -470,6 +472,7 @@ ALL_LANGUAGES = {
'ja_JP': u'Japanese / 日本語',
'ko_KP': u'Korean (KP) / 한국어 (KP)',
'ko_KR': u'Korean (KR) / 한국어 (KR)',
'lo_LA': u'Lao / ພາສາລາວ',
'lt_LT': u'Lithuanian / Lietuvių kalba',
'lv_LV': u'Latvian / latviešu valoda',
'ml_IN': u'Malayalam / മലയാളം',
@ -1136,6 +1139,7 @@ def stripped_sys_argv(*strip_args):
return [x for i, x in enumerate(args) if not strip(args, i)]
class ConstantMapping(Mapping):
"""
An immutable mapping returning the provided value for every single key.
@ -1164,4 +1168,42 @@ class ConstantMapping(Mapping):
return self._value
def dumpstacks(sig, frame):
""" Signal handler: dump a stack trace for each existing thread."""
code = []
def extract_stack(stack):
for filename, lineno, name, line in traceback.extract_stack(stack):
yield 'File: "%s", line %d, in %s' % (filename, lineno, name)
if line:
yield " %s" % (line.strip(),)
# code from http://stackoverflow.com/questions/132058/getting-stack-trace-from-a-running-python-application#answer-2569696
# modified for python 2.5 compatibility
threads_info = dict([(th.ident, {'name': th.name, 'uid': getattr(th, 'uid', 'n/a')})
for th in threading.enumerate()])
for threadId, stack in sys._current_frames().items():
thread_info = threads_info.get(threadId)
code.append("\n# Thread: %s (id:%s) (uid:%s)" %
(thread_info and thread_info['name'] or 'n/a',
threadId,
thread_info and thread_info['uid'] or 'n/a'))
for line in extract_stack(stack):
code.append(line)
if openerp.evented:
# code from http://stackoverflow.com/questions/12510648/in-gevent-how-can-i-dump-stack-traces-of-all-running-greenlets
import gc
from greenlet import greenlet
for ob in gc.get_objects():
if not isinstance(ob, greenlet) or not ob:
continue
code.append("\n# Greenlet: %r" % (ob,))
for line in extract_stack(ob.gr_frame):
code.append(line)
_logger.info("\n".join(code))
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -684,7 +684,7 @@ def trans_generate(lang, modules, cr):
except AttributeError, exc:
_logger.error("name error in %s: %s", xml_name, str(exc))
continue
objmodel = registry[obj.model]
objmodel = registry.get(obj.model)
if not objmodel or not field_name in objmodel._columns:
continue
field_def = objmodel._columns[field_name]

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