From 02b41a75ceb5df2ca4227de5839ebd46da0e5462 Mon Sep 17 00:00:00 2001 From: Yury Tello Date: Sun, 19 Feb 2012 14:10:02 -0500 Subject: [PATCH 001/112] [ADD] l10n_cl bzr revid: ytello@cubicerp.com-20120219191002-6yid2f812r4ypg05 --- addons/l10n_cl/__init__.py | 32 ++++ addons/l10n_cl/__openerp__.py | 51 ++++++ addons/l10n_cl/account_tax.xml | 34 ++++ addons/l10n_cl/account_tax_code.xml | 94 ++++++++++ addons/l10n_cl/i18n/es.po | 72 ++++++++ addons/l10n_cl/i18n/es_CL.po | 53 ++++++ addons/l10n_cl/i18n/l10n_cl.pot | 35 ++++ addons/l10n_cl/l10n_cl_chart.xml | 256 ++++++++++++++++++++++++++++ addons/l10n_cl/l10n_cl_wizard.xml | 15 ++ 9 files changed, 642 insertions(+) create mode 100644 addons/l10n_cl/__init__.py create mode 100644 addons/l10n_cl/__openerp__.py create mode 100644 addons/l10n_cl/account_tax.xml create mode 100644 addons/l10n_cl/account_tax_code.xml create mode 100644 addons/l10n_cl/i18n/es.po create mode 100644 addons/l10n_cl/i18n/es_CL.po create mode 100644 addons/l10n_cl/i18n/l10n_cl.pot create mode 100644 addons/l10n_cl/l10n_cl_chart.xml create mode 100644 addons/l10n_cl/l10n_cl_wizard.xml diff --git a/addons/l10n_cl/__init__.py b/addons/l10n_cl/__init__.py new file mode 100644 index 00000000000..92da5dbf966 --- /dev/null +++ b/addons/l10n_cl/__init__.py @@ -0,0 +1,32 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2011 Cubic ERP - Teradata SAC. (http://cubicerp.com). +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_cl/__openerp__.py b/addons/l10n_cl/__openerp__.py new file mode 100644 index 00000000000..249bdb3ae48 --- /dev/null +++ b/addons/l10n_cl/__openerp__.py @@ -0,0 +1,51 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2011 Cubic ERP - Teradata SAC (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name": "Argentina Localization Chart Account", + "version": "1.0", + "description": """ +Chilean accounting chart and tax localization. + +Plan contable chileno e impuestos de acuerdo a disposiciones vigentes + + """, + "author": "Cubic ERP", + "website": "http://cubicERP.com", + "category": "Localization/Account Charts", + "depends": [ + "account_chart", + ], + "data":[ + "account_tax_code.xml", + "l10n_cl_chart.xml", + "account_tax.xml", + "l10n_cl_wizard.xml", + ], + "demo_xml": [ + ], + "update_xml": [ + ], + "active": False, + "installable": True, + "certificate" : "", + 'images': ['images/config_chart_l10n_cl.jpeg','images/l10n_cl_chart.jpeg'], +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_cl/account_tax.xml b/addons/l10n_cl/account_tax.xml new file mode 100644 index 00000000000..1db0d2637f4 --- /dev/null +++ b/addons/l10n_cl/account_tax.xml @@ -0,0 +1,34 @@ + + + + + + + IVA 19% Venta + 0.190000 + percent + sale + + + + + + + + + + + IVA 19% Compra + 0.190000 + percent + purchase + + + + + + + + + + diff --git a/addons/l10n_cl/account_tax_code.xml b/addons/l10n_cl/account_tax_code.xml new file mode 100644 index 00000000000..95c91b60d78 --- /dev/null +++ b/addons/l10n_cl/account_tax_code.xml @@ -0,0 +1,94 @@ + + + + + + Chile Impuestos + + + Base Imponible + + + + Base Imponible - Ventas + + + + Ventas Gravadas con IVA + + + + Ventas NO Gravadas (Exoneradas) + + + + Ventas Gravadas Fuera de Ámbito + + + + Base Imponible - Compras + + + + Compras Gravadas con IVA + + + + Compras NO Gravadas (Exoneradas) + + + + Compras Gravadas Fuera de Ámbito + + + + + Impuesto General a las Ventas (IVA) Total a Pagar + + + + Impuesto Pagado + + + + Impuesto Pagado IVA + + -1 + + + Impuesto Pagado de Exonerados al IVA + + -1 + + + Impuesto Pagado Fuera de Ámbito + + -1 + + + Impuesto Cobrado + + + + Impuesto Cobrado IVA + + + + Impuesto Cobrado de Exonerados al IVA + + + + Impuesto Cobrado Fuera de Ámbito + + + + + Impuestos Directos a Pagar + + + + Impuesto a la Renta Primera Categoría a Pagar + + + + diff --git a/addons/l10n_cl/i18n/es.po b/addons/l10n_cl/i18n/es.po new file mode 100644 index 00000000000..f8b17197008 --- /dev/null +++ b/addons/l10n_cl/i18n/es.po @@ -0,0 +1,72 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-01-10 13:46+0000\n" +"Last-Translator: Yury Tello \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n" +"X-Generator: Launchpad (build 12177)\n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "" +"\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Peruana : Plan de cuentas\n" +" " + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "Plan de cuentas de Chile" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañia, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." + +#~ msgid "Liability" +#~ msgstr "Pasivo" + +#~ msgid "Asset" +#~ msgstr "Activo" + +#~ msgid "Closed" +#~ msgstr "Cerrado" + +#~ msgid "Income" +#~ msgstr "Ingreso" + +#~ msgid "Expense" +#~ msgstr "Gasto" + +#~ msgid "View" +#~ msgstr "Vista" diff --git a/addons/l10n_cl/i18n/es_CL.po b/addons/l10n_cl/i18n/es_CL.po new file mode 100644 index 00000000000..cd0a9f9c43e --- /dev/null +++ b/addons/l10n_cl/i18n/es_CL.po @@ -0,0 +1,53 @@ +# Spanish (Paraguay) translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-03-21 16:23+0000\n" +"Last-Translator: FULL NAME \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-03-22 04:36+0000\n" +"X-Generator: Launchpad (build 12559)\n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "" +"\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Chile : Plan de cuentas\n" +" " + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "Plan de cuentas de la Chile" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañía, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." diff --git a/addons/l10n_cl/i18n/l10n_cl.pot b/addons/l10n_cl/i18n/l10n_cl.pot new file mode 100644 index 00000000000..9b3704b75e1 --- /dev/null +++ b/addons/l10n_cl/i18n/l10n_cl.pot @@ -0,0 +1,35 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_cl +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.1.0-rc1\n" +"Report-Msgid-Bugs-To: soporte@cubicerp.com\n" +"POT-Creation-Date: 2011-01-11 11:15:31+0000\n" +"PO-Revision-Date: 2011-01-11 11:15:31+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.\n" +" This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template." +msgstr "" + diff --git a/addons/l10n_cl/l10n_cl_chart.xml b/addons/l10n_cl/l10n_cl_chart.xml new file mode 100644 index 00000000000..5b146eb067d --- /dev/null +++ b/addons/l10n_cl/l10n_cl_chart.xml @@ -0,0 +1,256 @@ + + + + + + + noneviewVistanone + + balanceBG_ACC_10Efectivo y Equivalentes al Efectivoasset + detailBG_ACC_20Otros Activos Financieros Corrientesasset + unreconciledBG_ACC_30Deudores Comercialesasset + unreconciledBG_ACC_50Otras Cuentas por Cobrarasset + balanceBG_ACC_60Inventariosasset + + detailBG_ACN_10Derechos por Cobrar No Corrienteasset + detailBG_ACN_40Otros Activos No Financierosasset + balanceBG_ACN_50Propiedades, Planta y Equipoasset + + unreconciledBG_PAC_10Otros Pasivos Financierosliability + unreconciledBG_PAC_20Cuentas por Pagar Comercialesliability + unreconciledBG_PAC_35Otras Cuentas por Pagarliability + unreconciledBG_PAC_40Otras Provisiones Corrientesliability + unreconciledBG_PAC_45Pasivos por Impuestos Corrientesliability + + unreconciledBG_PAN_10Otros Pasivos Financieros No Corrientesliability + unreconciledBG_PAN_20Otros Cuentas por Pagar No Corrientesliability + unreconciledBG_PAN_40Otras Provisiones No Corrientesliability + + balanceBG_PTN_10Patrimonio Netoliability + + noneEGP_FU_010Ingresos por Actividades Ordinariasincome + noneEGP_FU_030Costo de Ventasexpense + noneEGP_FU_040Gastos de Administraciónexpense + noneEGP_FU_050Costos por Distribuciónexpense + unreconciledEGP_FU_060Ingresos Financierosincome + noneEGP_FU_070Costos Financierosexpense + noneEGP_FU_080Otros Ingresosincome + noneEGP_FU_090Otros Gastosexpense + noneEGP_FU_120Gasto Impuesto a las Rentaexpense + noneEGP_FU_160Ganancia (Pérdida)income + + noneEGP_NA_010Compras de Activo Fijonone + + noneORDCuentas de Ordennone + + noneNCLASIFICADOCuentas No Clasificadasnone + + + + + Argentina + pcge + + view + + + inventario del Balance General + .1.BG + + + view + + + ACTIVOS1view + Activo Circulante11view + Activo Circulante - Caja111view + Activo Circulante - Caja / efectivo CLP111.001liquidity + Activo Circulante - Moneda Extranjera112view + Activo Circulante - Caja / efectivo USD112.001liquidity + Activo Circulante - Fondos fijos113view + Activo Circulante - Fondos fijos / caja chica 01 CLP113.001liquidity + Activo Circulante - Bancos114view + Activo Circulante.../ BCO. CTA CTE CLP114.001liquidity + Activo Circulante - Valores a Depositar 115other + Activo Circulante - Recaudaciones a Depositar 116other + Documentos por Cobrar12view + Documentos por Cobrar / Deudores por Ventas121receivable1 + Documentos por Cobrar / Deudores Morosos122receivable1 + Documentos por Cobrar / Deudores en Gestión Judicial123receivable + Documentos por Cobrar / Deudores Varios124receivable + Documentos por Cobrar / (-) Previsión para Incobrables125receivable1 + Cuentas por Cobrar13view + Cuentas por Cobrar / Préstamos otorgados131receivable + Cuentas por Cobrar / Anticipos a Proveedores132receivable + Cuentas por Cobrar / Anticipo de Impuestos133receivable + Cuentas por Cobrar / Anticipo al Personal134receivable + Cuentas por Cobrar / Alquileres Pagados por Adelantado135receivable + Cuentas por Cobrar / Intereses Pagados por Adelantado136receivable + Cuentas por Cobrar / Accionistas137receivable + Cuentas por Cobrar / (-) Previsión para Descuentos138receivable + Cuentas por Cobrar / (-) Intereses (+) a Devengar139receivable + Inversiones Financieras14view + Inversiones / Acciones Transitorias141other + Inversiones / Acciones Permanentes142other + Inversiones / Títulos Públicos143other + Inversiones / (-) Previsión para Devalorización de Acciones144other + Existencias15view + Existencias - Mercaderías151view + Existencias - Mercaderías / Categoria de productos 01151.01other + Existencias - Mercaderías en Tránsito152other + Materias primas153other + Productos en Curso de Elaboración154other + Productos Elaborados155other + Materiales Varios 156other + (-) Previsión para Desvalorización de Existencias157other + Activo Fijo16view + Activo Fijo / Inmuebles161other + Activo Fijo / Maquinaria162other + Activo Fijo / Equipos163other + Activo Fijo / Material Rodante Motorizado164other + Activo Fijo / (-) Depreciación Acumulada165other + Activo Intangible17view + Activo Intangible / Derecho de Llaves171other + Activo Intangible / Concesiones y Franquicias172other + Activo Intangible / Marcas y Patentes de Invención173other + Activo Intangible / (-) Amortización Acumulada174other + PASIVOS2view + Cuentas por Pagar21view + Cuentas por Pagar / Proveedores211payable1 + Cuentas por Pagar / Anticipos de Clientes212payable1 + Cuentas por Pagar / (-) Intereses a Devengar por Compras al Crédito213payable1 + Pasivo Circulante22view + Pasivo Circulante / Adelantos en Cuenta Corriente221payable + Pasivo Circulante / Prestamos222payable + Pasivo Circulante / Obligaciones a Pagar223payable + Pasivo Circulante / Intereses a Pagar224payable + Pasivo Circulante / Debentures Emitidos225payable + Impuestos por Pagar23view + Impuestos por Pagar / IVA a Pagar231other + Impuestos por Pagar / Impuesto a la Renta a Pagar232other + Remuneraciones por Pagar24view + Remuneraciones por Pagar / Sueldos a Pagar241payable + Remuneraciones por Pagar / Cargas Sociales a Pagar242payable + Remuneraciones por Pagar / Provisión para Sueldo Anual Complementario243payable + Remuneraciones por Pagar / Retenciones a Depositar244payable + Otras Cuentas por Pagar25view + Otras Cuentas por Pagar / Acreedores Varios251payable + Otras Cuentas por Pagar / Dividendos a Pagar252payable + Otras Cuentas por Pagar / Cobros por Adelantado253payable + Otras Cuentas por Pagar / Honorarios Directores y Síndicos a Pagar254payable + Provisiones26view + Provisiones / Previsión Indemnización por Despidos261payable + Provisiones / Previsión para juicios Pendientes262payable + Provisiones / Previsión para Garantías por Service263payable + PATRIMONIO3view + Capital31view + Capital / Capital Propio311other + Capital / Acciones en Circulación312other + Capital / Dividendos a Distribuir en Acciones313other + Capital / (-) Descuento de Emisión de Acciones314other + Aportes No Capitalizados32view + Aportes No Capitalizados / Primas de Emsión321other + Aportes No Capitalizados / Aportes Irrevocables Futura Suscripción de Acciones322other + Ajustes al Patrimonio33view + Ajustes al Patrimonio / Revaluo Técnico de Activo Fijo331other + Futuras Eventualidades34view + Reserva Legal341other + Reserva Estatutaria342other + Reserva Facultativa343other + Reserva para Renovación de Activo Fijo344other + Resultados No Asignados35view + Resultados Acumulados351other + Resultados Acumulados del Ejercicio Anterior352other + Utilidades y Pérdidas del Ejercicio353other + Resultado del Ejercicio354other + + + Cuentas de Resultado + .2.GP + + + view + + + RESULTADO GANANCIA4view + Ingresos de Explotación41view + Ventas411view + Ventas - Categoria de productos 01411.01other + Intereses gananados, obtenidos, percibidos412other + Alquileres gananados, obtenidos, percibidos413other + Comisiones gananados, obtenidos, percibidos414other + Descuentos gananados, obtenidos, percibidos415other + Interese sobre Inversiones416other + Honorarios gananados, obtenidos, percibidos417other + Ganancia Venta de Acciones418other + Ingresos Fuera de Explotación42view + Recupero de Rezagos421other + Recupero de Deudores Incobrables422other + Ganancia Venta de Activo Fijo423other + Donaciones obtenidas, ganandas, percibidas424other + Ganancia Venta Inversiones Permanentes425other + RESULTADO PÉRDIDA5view + Egresos de Explotación51view + Costo de Mercaderías Vendidas511view + Costo de Mercaderías Vendidas - Categoria de productos 01511.01other + Gastos en Depreciación de Activo Fijo512other + Gastos en Amortización513other + Gastos en Sueldos y Jornales514other + Gastos en Cargas Sociales515other + Gastos en Impuestos516other + Gastos Bancarios517other + Gastos en Servicios Públicos518other + Gastos de Publicidad y Propaganda519other + Egresos Fuera de Explotación52view + Gastos en Siniestros521other + Donaciones Cedidas, Otorgadas522other + Pérdida Venta Activo Fijo523other + + + Cuentas de Movimiento + .3.CC + + + view + + + Compras61view + Compras - Categoria de productos 0161.01other + Costos de Producción62other + Gastos de Administración63other + Gastos de Comercialización64other + + + Cuentas de Orden + .4.CO + + + view + + + CUENTAS DE ORDEN DEUDORAS71view + Mercaderias Recibidas en Consignación711other + Depósito de Valores Recibos en Garantía712other + Garantias Otorgadas713other + Documentos Descontados714other + Documentos Endosados715other + CUENTAS DE ORDEN ACREEDORAS72view + Comitente por Mercaderias Recibidas en Consignación721other + Acreedor por Garantías Otorgadas722other + Acreedor por Documentos Descontados723other + + + Chile - Plan de Cuentas + + + + + + + + + + + + + diff --git a/addons/l10n_cl/l10n_cl_wizard.xml b/addons/l10n_cl/l10n_cl_wizard.xml new file mode 100644 index 00000000000..191230c5010 --- /dev/null +++ b/addons/l10n_cl/l10n_cl_wizard.xml @@ -0,0 +1,15 @@ + + + + + + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. + This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + + automatic + + + + From 44fec74adfbf53e4e9a02461b45b8e1b0525441d Mon Sep 17 00:00:00 2001 From: Yury Tello Date: Tue, 21 Feb 2012 15:53:28 -0500 Subject: [PATCH 002/112] [MOD] Ajust title bzr revid: ytello@cubicerp.com-20120221205328-s5y8iz1hjnlkj4hp --- addons/l10n_cl/__openerp__.py | 2 +- addons/l10n_cl/l10n_cl_chart.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/l10n_cl/__openerp__.py b/addons/l10n_cl/__openerp__.py index 249bdb3ae48..8c1e1e45b50 100644 --- a/addons/l10n_cl/__openerp__.py +++ b/addons/l10n_cl/__openerp__.py @@ -19,7 +19,7 @@ # ############################################################################## { - "name": "Argentina Localization Chart Account", + "name": "Chile Localization Chart Account", "version": "1.0", "description": """ Chilean accounting chart and tax localization. diff --git a/addons/l10n_cl/l10n_cl_chart.xml b/addons/l10n_cl/l10n_cl_chart.xml index 5b146eb067d..8bc4272c2eb 100644 --- a/addons/l10n_cl/l10n_cl_chart.xml +++ b/addons/l10n_cl/l10n_cl_chart.xml @@ -48,7 +48,7 @@ - Argentina + Chile pcge view From 79aa02650c22d951e7245cbf7a9c77574deeb895 Mon Sep 17 00:00:00 2001 From: "Amit (OpenERP)" Date: Sat, 28 Apr 2012 18:21:25 +0530 Subject: [PATCH 003/112] [FIX] product : Set the missing dependecy of mail module to product module lp bug: https://launchpad.net/bugs/990474 fixed bzr revid: amp@tinyerp.com-20120428125125-1unkvn70pz1wys6i --- addons/product/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/product/__openerp__.py b/addons/product/__openerp__.py index 9b4d2cadee1..918545aa783 100644 --- a/addons/product/__openerp__.py +++ b/addons/product/__openerp__.py @@ -25,7 +25,7 @@ "version" : "1.1", "author" : "OpenERP SA", 'category': 'Sales Management', - "depends" : ["base", "process", "decimal_precision"], + "depends" : ["base", "process", "decimal_precision", "mail"], "init_xml" : [], "demo_xml" : ["product_demo.xml"], "description": """ From 2911d6a8c5532310e07b3b593d78c43653190137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Grand-Guillaume?= Date: Thu, 21 Jun 2012 12:40:18 +0200 Subject: [PATCH 004/112] [IMP] Provide _prepare* hooks in bank statement object for the entries creations of account.move.line from a statement line bzr revid: joel.grandguillaume@camptocamp.com-20120621104018-ryylbaxh6696e0rc --- addons/account/account_bank_statement.py | 247 +++++++++++++++++------ 1 file changed, 184 insertions(+), 63 deletions(-) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 1f47a6be9bd..97d10bfc022 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -205,7 +205,182 @@ class account_bank_statement(osv.osv): def button_dummy(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {}, context=context) + def _prepare_move(self, cr, uid, st_line, st_line_number, context=None): + """Prepare the dict of values to create the move from a + statement line. This method may be overridden to implement custom + move generation (making sure to call super() to establish + a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param char st_line_number: will be used as the name of the generated account move + :return: dict of value to create() the account.move + """ + move_vals = { + 'journal_id': st_line.statement_id.journal_id.id, + 'period_id': st_line.statement_id.period_id.id, + 'date': st_line.date, + 'name': st_line_number, + 'ref': st_line.ref, + } + return move_vals + + def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, + context=None): + """Compute the args to build the dict of values to create the bank move line from a + statement line by calling the _prepare_move_line_vals. This method may be + overridden to implement custom move generation (making sure to call super() to + establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float amount: amount of the move line + :param int/long company_currency_id: ID of currency of the concerned company + :return: dict of value to create() the bank account.move.line + """ + anl_id = st_line.analytic_account_id and st_line.analytic_account_id.id or False + debit = ((amount<0) and -amount) or 0.0 + credit = ((amount>0) and amount) or 0.0 + cur_id = False + amt_cur = False + if st_line.statement_id.currency.id <> company_currency_id: + amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, + st.currency.id, amount, context=context) + amt_cur = -amount_cur + if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id: + cur_id = st_line.account_id.currency_id.id + amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, + st_line.account_id.currency_id.id, amount, context=context) + amt_cur = -amount_cur + + res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, + amount_currency=amt_cur, currency_id=cur_id, analytic_id = anl_id, context=context) + return res + + def _get_counter_part_account(sefl, cr, uid, st_line, context=None): + """Retrieve the account to use in the counterpart move. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :return: int/long of the account.account to use as counterpart + """ + account_id = False + if st_line.amount >= 0: + account_id = st_line.statement_id.journal_id.default_credit_account_id.id + else: + account_id = st_line.statement_id.journal_id.default_debit_account_id.id + return account_id + + def _get_counter_part_partner(sefl, cr, uid, st_line, context=None): + """Retrieve the partner to use in the counterpart move. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :return: int/long of the res.partner to use as counterpart + """ + import pdb;pdb.set_trace() + partner_id = ((st_line.partner_id) and st_line.partner_id.id) or False + return partner_id + + + def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, + context=None): + """Compute the args to build the dict of values to create the counter part move line from a + statement line by calling the _prepare_move_line_vals. This method may be + overridden to implement custom move generation (making sure to call super() to + establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float amount: amount of the move line + :param int/long account_id: ID of account to use as counter part + :param int/long company_currency_id: ID of currency of the concerned company + :return: dict of value to create() the bank account.move.line + """ + account_id = self._get_counter_part_account(cr, uid, st_line, context=context) + partner_id = self._get_counter_part_partner(cr, uid, st_line, context=context) + debit = ((amount > 0) and amount) or 0.0 + credit = ((amount < 0) and -amount) or 0.0 + cur_id = False + amt_cur = False + if st_line.statement_id.currency.id <> company_currency_id: + amt_cur = st_line.amount + cur_id = st_line.statement_id.currency.id + res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, + amount_currency = amt_cur, currency_id = cur_id, account_id = account_id, + partner_id = partner_id, context=context) + return res + + def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False, + amount_currency= False, account_id = False, analytic_id = False, + partner_id = False, context=None): + """Prepare the dict of values to create the move line from a + statement line. All non-mandatory args will replace the default computed one. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float debit: debit amount of the move line + :param float credit: credit amount of the move line + :param int/long currency_id: ID of currency of the move line to create + :param float amount_currency: amount of the debit/credit expressed in the currency_id + :param int/long account_id: ID of the account to use in the move line if different + from the statement line account ID + :param int/long analytic_id: ID of analytic account to put on the move line + :param int/long partner_id: ID of the partner to put on the move line + :return: dict of value to create() the account.move.line + """ + acc_id = (st_line.account_id) and st_line.account_id.id + cur_id = st_line.statement_id.currency.id + par_id = ((st_line.partner_id) and st_line.partner_id.id) or False + anl_acc_id = False + am_curr = False + amount_currency = False + if account_id: + acc_id = account_id + if currency_id: + cur_id = currency_id + if amount_currency: + am_curr = amount_currency + if analytic_id: + anl_acc_id = analytic_id + if partner_id: + par_id = partner_id + ml_val = { + 'name': st_line.name, + 'date': st_line.date, + 'ref': st_line.ref, + 'move_id': move_id, + 'partner_id': partner_id, + 'account_id': acc_id, + 'credit': credit, + 'debit': debit, + 'statement_id': st_line.statement_id.id, + 'journal_id': st_line.statement_id.journal_id.id, + 'period_id': st_line.statement_id.period_id.id, + 'currency_id': cur_id, + 'amount_currency': am_curr, + 'analytic_account_id': anl_acc_id, + } + return ml_val + def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None): + """Create the account move from the statement line using the _prepare_bank_move_line and + _prepare_counterpart_move_line hook methods. + :param int/long st_line: ID of the account.bank.statement.line to create the move from. + :param int/long company_currency_id: ID of the res.currency of the company + :param char st_line_number: will be used as the name of the generated account move + :return: ID of the account.move created + """ + if context is None: context = {} res_currency_obj = self.pool.get('res.currency') @@ -217,82 +392,28 @@ class account_bank_statement(osv.osv): context.update({'date': st_line.date}) - move_id = account_move_obj.create(cr, uid, { - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'date': st_line.date, - 'name': st_line_number, - 'ref': st_line.ref, - }, context=context) + move_vals = self._prepare_move(cr, uid, st_line, st_line_number, context=context) + move_id = account_move_obj.create(cr, uid, move_vals, context=context) account_bank_statement_line_obj.write(cr, uid, [st_line.id], { 'move_ids': [(4, move_id, False)] }) - torec = [] - if st_line.amount >= 0: - account_id = st.journal_id.default_credit_account_id.id - else: - account_id = st.journal_id.default_debit_account_id.id - acc_cur = ((st_line.amount<=0) and st.journal_id.default_debit_account_id) or st_line.account_id + context.update({ 'res.currency.compute.account': acc_cur, }) amount = res_currency_obj.compute(cr, uid, st.currency.id, company_currency_id, st_line.amount, context=context) - val = { - 'name': st_line.name, - 'date': st_line.date, - 'ref': st_line.ref, - 'move_id': move_id, - 'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False, - 'account_id': (st_line.account_id) and st_line.account_id.id, - 'credit': ((amount>0) and amount) or 0.0, - 'debit': ((amount<0) and -amount) or 0.0, - 'statement_id': st.id, - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'currency_id': st.currency.id, - 'analytic_account_id': st_line.analytic_account_id and st_line.analytic_account_id.id or False - } - - if st.currency.id <> company_currency_id: - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st.currency.id, amount, context=context) - val['amount_currency'] = -amount_cur - - if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id: - val['currency_id'] = st_line.account_id.currency_id.id - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st_line.account_id.currency_id.id, amount, context=context) - val['amount_currency'] = -amount_cur - - move_line_id = account_move_line_obj.create(cr, uid, val, context=context) + bank_move_val = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount, + company_currency_id, context=context) + move_line_id = account_move_line_obj.create(cr, uid, bank_move_val, context=context) torec.append(move_line_id) - # Fill the secondary amount/currency - # if currency is not the same than the company - amount_currency = False - currency_id = False - if st.currency.id <> company_currency_id: - amount_currency = st_line.amount - currency_id = st.currency.id - account_move_line_obj.create(cr, uid, { - 'name': st_line.name, - 'date': st_line.date, - 'ref': st_line.ref, - 'move_id': move_id, - 'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False, - 'account_id': account_id, - 'credit': ((amount < 0) and -amount) or 0.0, - 'debit': ((amount > 0) and amount) or 0.0, - 'statement_id': st.id, - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'amount_currency': amount_currency, - 'currency_id': currency_id, - }, context=context) + counterpart_move_val = self._prepare_counterpart_move_line(cr, uid, st_line, move_id, + amount, company_currency_id, context=context) + account_move_line_obj.create(cr, uid, counterpart_move_val, context=context) for line in account_move_line_obj.browse(cr, uid, [x.id for x in account_move_obj.browse(cr, uid, move_id, From 28908bea003e11e2df7ccedc58f9a0fbee159bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Grand-Guillaume?= Date: Thu, 21 Jun 2012 13:49:16 +0200 Subject: [PATCH 005/112] [FIX] Remove pdb... no comment... bzr revid: joel.grandguillaume@camptocamp.com-20120621114916-a0uy3ipru8usgzo0 --- addons/account/account_bank_statement.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 97d10bfc022..ece18a016fe 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -283,7 +283,6 @@ class account_bank_statement(osv.osv): create the move from. :return: int/long of the res.partner to use as counterpart """ - import pdb;pdb.set_trace() partner_id = ((st_line.partner_id) and st_line.partner_id.id) or False return partner_id From 53df131d288a003dfdaadd87e4ec7b3bb6b1e3b1 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 12:41:22 +0530 Subject: [PATCH 006/112] [IMP] base_calendar : Added technical feature group to Calendar. bzr revid: mdi@tinyerp.com-20120627071122-3cgwt8ij9shjb651 --- addons/base_calendar/base_calendar_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index da58c54cd73..ab751b46a0e 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -146,7 +146,7 @@ + parent="base.menu_base_config" sequence="50" groups="base.group_no_one"/> From 1a512fcff96391bc54c3e08320ae5a53825196a2 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 12:59:04 +0530 Subject: [PATCH 007/112] [IMP] Supplier check box should not be there if purchase is not installed. bzr revid: mdi@tinyerp.com-20120627072904-jrl2k294kxi6crwx --- openerp/addons/base/res/res_partner_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index aaab3a7d008..77c10700dee 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -232,7 +232,7 @@ - + From fa3e1cab4d30857ea5c60727f3a184e92ab6ef0a Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 13:59:44 +0530 Subject: [PATCH 008/112] [IMP] crm : Removed the widget=selection. bzr revid: mdi@tinyerp.com-20120627082944-mmrwcczp3vux5439 --- addons/crm/res_partner_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml index 4b2cf008958..99d767e1de4 100644 --- a/addons/crm/res_partner_view.xml +++ b/addons/crm/res_partner_view.xml @@ -11,7 +11,7 @@ - + @@ -24,7 +24,7 @@ - + From c4ce05b9f0f3ff4a2473dac4917e78757a5ab71b Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 14:04:28 +0530 Subject: [PATCH 009/112] [IMP] purchase : Supplier check box should not be there if purchase is not installed. bzr revid: mdi@tinyerp.com-20120627083428-ddvnhynkvmse854l --- addons/purchase/partner_view.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/purchase/partner_view.xml b/addons/purchase/partner_view.xml index 96981db1502..5a9a731358c 100644 --- a/addons/purchase/partner_view.xml +++ b/addons/purchase/partner_view.xml @@ -11,6 +11,9 @@ + + + From 1e531fad6ef5aabed7f68890a843bd7d53267236 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 14:18:54 +0530 Subject: [PATCH 010/112] [IMP] crm : Improved the menutip. bzr revid: mdi@tinyerp.com-20120627084854-r1pf1z069r84xjtg --- addons/crm/crm_lead_menu.xml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml index cbcd5b3b3bd..b4071b62058 100644 --- a/addons/crm/crm_lead_menu.xml +++ b/addons/crm/crm_lead_menu.xml @@ -12,17 +12,11 @@ {'default_type':'lead', 'stage_type':'lead'} <img src="http://www.thaicrmsoftware.com/wp-content/uploads/2011/11/lead-conversion.jpg" align="right" style="padding: 6px" width="306" height="223"> - <h2>Create your first OpenERP Lead </h2> - <p> - Leads allow you to manage and keep track of all initial contacts with a prospect or partner showing interest in your products or services. + <h2>Click here to create a Lead. </h2> <p> A lead is usually the first step in your sales cycle. <p> Once qualified, a lead may be converted into a business opportunity, while creating the related partner for further detailed tracking of any linked activities. - <p> - You can import a database of prospects, keep track of your business cards or integrate your website's contact form with the OpenERP Leads. - <p> - Leads can be connected to the email gateway: new emails may create leads, each of them automatically gets the history of the conversation with the prospect. From 07b02b77083bad4ebffa6d0ca001113dea0a182a Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 15:16:46 +0530 Subject: [PATCH 011/112] [IMP] crm : Removed the widget=selection and added chatter inside the footer. bzr revid: mdi@tinyerp.com-20120627094646-14hhhx91nb5j6exo --- addons/crm/crm_lead_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index d9c65daaada..84bfdbda6d8 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -109,7 +109,7 @@ - + @@ -172,9 +172,9 @@ -
+
-
+
From 5b454f78421fb1adf50009d7228bceaed11a7295 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Wed, 27 Jun 2012 15:39:51 +0530 Subject: [PATCH 012/112] [IMP] crm : Removed the icons. bzr revid: mdi@tinyerp.com-20120627100951-pmdko4fgnuvno09i --- addons/crm/crm_lead_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 84bfdbda6d8..ca1301dd53b 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -392,9 +392,9 @@
+

+ From 75fb9fbe9137b81fcc1a29eaa31850d2fc4a1a80 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Fri, 20 Jul 2012 12:11:11 +0530 Subject: [PATCH 075/112] [IMP]all: improve some typo in module description bzr revid: mma@tinyerp.com-20120720064111-216mdw2wjrwavhe4 --- addons/account/__openerp__.py | 2 +- addons/event_moodle/__openerp__.py | 10 +++++----- addons/hr_payroll_account/__openerp__.py | 2 +- addons/hr_timesheet_sheet/__openerp__.py | 2 +- addons/l10n_fr_hr_payroll/__openerp__.py | 4 ++-- addons/l10n_uk/__openerp__.py | 2 +- addons/membership/__openerp__.py | 2 +- addons/purchase/__openerp__.py | 2 +- addons/users_ldap/__openerp__.py | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index dae0485d709..e1b9078ec3f 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -29,7 +29,7 @@ Accounting and Financial Management. Financial and accounting module that covers: -------------------------------------------- - * General accountings + * General Accounting * Cost/Analytic accounting * Third party accounting * Taxes management diff --git a/addons/event_moodle/__openerp__.py b/addons/event_moodle/__openerp__.py index bd0ec2e7785..14f6de8668d 100644 --- a/addons/event_moodle/__openerp__.py +++ b/addons/event_moodle/__openerp__.py @@ -28,8 +28,8 @@ Configure your moodle server. ============================= -With this module you are able to connect your OpenERP with a moodle plateform. -This module will create courses and students automatically in your moodle plateform +With this module you are able to connect your OpenERP with a moodle platform. +This module will create courses and students automatically in your moodle platform to avoid wasting time. Now you have a simple way to create training or courses with OpenERP and moodle. @@ -38,13 +38,13 @@ STEPS TO CONFIGURE: 1. Activate web service in moodle. ---------------------------------- ->site administration >plugins >web sevices >manage protocols activate the xmlrpc web service +>site administration >plugins >web services >manage protocols activate the xmlrpc web service ->site administration >plugins >web sevices >manage tokens create a token +>site administration >plugins >web services >manage tokens create a token ->site administration >plugins >web sevices >overview activate webservice +>site administration >plugins >web services >overview activate webservice 2. Create confirmation email with login and password. diff --git a/addons/hr_payroll_account/__openerp__.py b/addons/hr_payroll_account/__openerp__.py index 9ea8a10bbb8..f869c93697b 100644 --- a/addons/hr_payroll_account/__openerp__.py +++ b/addons/hr_payroll_account/__openerp__.py @@ -24,7 +24,7 @@ 'version': '1.0', 'category': 'Human Resources', 'description': """ -Generic Payroll system Integrated with Accountings. +Generic Payroll system Integrated with Accounting. =================================================== * Expense Encoding diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py index 1a3ee5b70bc..d6a727d478d 100644 --- a/addons/hr_timesheet_sheet/__openerp__.py +++ b/addons/hr_timesheet_sheet/__openerp__.py @@ -29,7 +29,7 @@ This module helps you to easily encode and validate timesheet and attendances within the same view. =================================================================================================== - * It will mentain attendances and track (sign in/sign out) events. + * It will maintain attendances and track (sign in/sign out) events. * Track the timesheet lines. Other tabs contains statistics views to help you analyse your diff --git a/addons/l10n_fr_hr_payroll/__openerp__.py b/addons/l10n_fr_hr_payroll/__openerp__.py index fd1f595a7e3..c3b2c332a46 100755 --- a/addons/l10n_fr_hr_payroll/__openerp__.py +++ b/addons/l10n_fr_hr_payroll/__openerp__.py @@ -28,8 +28,8 @@ French Payroll Rules. ===================== - - Configuration of hr_payroll for french localization - - All main contributions rules for french payslip, for 'cadre' and 'non-cadre' + - Configuration of hr_payroll for French localization + - All main contributions rules for French payslip, for 'cadre' and 'non-cadre' - New payslip report TODO : diff --git a/addons/l10n_uk/__openerp__.py b/addons/l10n_uk/__openerp__.py index 19a9747ea6a..444ea2b9dd3 100644 --- a/addons/l10n_uk/__openerp__.py +++ b/addons/l10n_uk/__openerp__.py @@ -24,7 +24,7 @@ 'version': '1.0', 'category': 'Localization/Account Charts', 'description': """ -This is the latest UK OpenERP localisation necesary to run OpenERP accounting +This is the latest UK OpenERP localisation necessary to run OpenERP accounting for UK SME's with: - a CT600-ready chart of accounts - VAT100-ready tax structure diff --git a/addons/membership/__openerp__.py b/addons/membership/__openerp__.py index eae5861e93c..a05240c08e7 100644 --- a/addons/membership/__openerp__.py +++ b/addons/membership/__openerp__.py @@ -30,7 +30,7 @@ This module allows you to manage all operations for managing memberships. It supports different kind of members: * Free member - * Associated member (eg.: a group subscribes to a membership for all subsidiaries) + * Associated member (e.g.: a group subscribes to a membership for all subsidiaries) * Paid members * Special member prices diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py index d90ca351d8e..6b74b3c63d5 100644 --- a/addons/purchase/__openerp__.py +++ b/addons/purchase/__openerp__.py @@ -34,7 +34,7 @@ A supplier invoice is created for the particular purchase order. Dashboard for purchase management that includes: ------------------------------------------------ * Request for Quotations - * Monthly Purchasess by Category + * Monthly Purchases by Category """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', diff --git a/addons/users_ldap/__openerp__.py b/addons/users_ldap/__openerp__.py index abb8e3e420e..ba153328af1 100644 --- a/addons/users_ldap/__openerp__.py +++ b/addons/users_ldap/__openerp__.py @@ -40,7 +40,7 @@ LDAP servers, as long as they have unique usernames (usernames need to be unique in OpenERP, even across multiple companies). Anonymous LDAP binding is also supported (for LDAP servers that allow it), by -simpling keeping the LDAP user and password empty in the LDAP configuration. +simply keeping the LDAP user and password empty in the LDAP configuration. This does not allow anonymous authentication for users, it is only for the master LDAP account that is used to verify if a user exists before attempting to authenticate it. From 09a5fbba59097a8c568bf2a4c116fa6ea0507885 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Fri, 20 Jul 2012 14:56:53 +0530 Subject: [PATCH 076/112] [IMP]all: improve some tool-tip bzr revid: mma@tinyerp.com-20120720092653-197y2amboq3hv9e5 --- .../account_analytic_default.py | 6 +++--- .../openerp_report_designer/bin/script/Fields.py | 2 +- .../openerp_report_designer/bin/script/Translation.py | 2 +- .../openerp_report_designer/bin/script/modify.py | 6 +++--- addons/document/nodes.py | 2 +- addons/product_margin/product_margin.py | 10 +++++----- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py index affc514e203..4fe654adffc 100644 --- a/addons/account_analytic_default/account_analytic_default.py +++ b/addons/account_analytic_default/account_analytic_default.py @@ -31,10 +31,10 @@ class account_analytic_default(osv.osv): _columns = { 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of analytic distribution"), 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), - 'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="Select a product which will use analytic account specified in analytic default (eg. create new customer invoice or Sale order if we select this product, it will automatically take this as an analytic account)"), - 'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade', help="Select a partner which will use analytic account specified in analytic default (eg. create new customer invoice or Sale order if we select this partner, it will automatically take this as an analytic account)"), + 'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this product, it will automatically take this as an analytic account)"), + 'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade', help="Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this partner, it will automatically take this as an analytic account)"), 'user_id': fields.many2one('res.users', 'User', ondelete='cascade', help="Select a user which will use analytic account specified in analytic default."), - 'company_id': fields.many2one('res.company', 'Company', ondelete='cascade', help="Select a company which will use analytic account specified in analytic default (eg. create new customer invoice or Sale order if we select this company, it will automatically take this as an analytic account)"), + 'company_id': fields.many2one('res.company', 'Company', ondelete='cascade', help="Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this company, it will automatically take this as an analytic account)"), 'date_start': fields.date('Start Date', help="Default start date for this Analytic Account."), 'date_stop': fields.date('End Date', help="Default end date for this Analytic Account."), } diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Fields.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Fields.py index 92044f78fe1..e7c2b33ca88 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Fields.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Fields.py @@ -174,7 +174,7 @@ class Fields(unohelper.Base, XJobExecutor ): self.win.doModalDialog("lstFields",self.sValue) else: - ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 Eg. http://localhost:8069 \nOR \nField-4 Eg. account.invoice") + ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 E.g. http://localhost:8069 \nOR \nField-4 E.g. account.invoice") self.win.endExecute() def lstbox_selected(self,oItemEvent): diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py index 73146f1b68a..97e6427ae76 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py @@ -154,7 +154,7 @@ class AddLang(unohelper.Base, XJobExecutor ): self.win.doModalDialog("lstFields",self.sValue) else: - ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 Eg. http://localhost:8069 \nOR \nField-4 Eg. account.invoice") + ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 E.g. http://localhost:8069 \nOR \nField-4 E.g. account.invoice") self.win.endExecute() def lstbox_selected(self,oItemEvent): diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py index fc3d6672b79..f38424fd614 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py @@ -77,7 +77,7 @@ class modify(unohelper.Base, XJobExecutor ): ErrorDialog( "Please insert user define field Field-1", "Just go to File->Properties->User Define \n" - "Field-1 Eg. http://localhost:8069" + "Field-1 E.g. http://localhost:8069" ) exit(1) @@ -108,9 +108,9 @@ class modify(unohelper.Base, XJobExecutor ): ErrorDialog( "Please insert user define field Field-1 or Field-4", "Just go to File->Properties->User Define \n" - "Field-1 Eg. http://localhost:8069 \n" + "Field-1 E.g. http://localhost:8069 \n" "OR \n" - "Field-4 Eg. account.invoice" + "Field-4 E.g. account.invoice" ) exit(1) diff --git a/addons/document/nodes.py b/addons/document/nodes.py index 273be7effa4..b4f423460d7 100644 --- a/addons/document/nodes.py +++ b/addons/document/nodes.py @@ -375,7 +375,7 @@ class node_class(object): could do various things. Should also consider node<->content, dir<->dir moves etc. - Move operations, as instructed from APIs (eg. request from DAV) could + Move operations, as instructed from APIs (e.g. request from DAV) could use this function. """ raise NotImplementedError(repr(self)) diff --git a/addons/product_margin/product_margin.py b/addons/product_margin/product_margin.py index 8f946467384..4c033a4a6ca 100644 --- a/addons/product_margin/product_margin.py +++ b/addons/product_margin/product_margin.py @@ -110,15 +110,15 @@ class product_product(osv.osv): 'purchase_gap' : fields.function(_product_margin, type='float', string='Purchase Gap', multi='product_margin', help="Normal Cost - Total Cost"), 'turnover' : fields.function(_product_margin, type='float', string='Turnover' ,multi='product_margin', - help="Sum of Multification of Invoice price and quantity of Customer Invoices"), + help="Sum of Multiplication of Invoice price and quantity of Customer Invoices"), 'total_cost' : fields.function(_product_margin, type='float', string='Total Cost', multi='product_margin', - help="Sum of Multification of Invoice price and quantity of Supplier Invoices "), + help="Sum of Multiplication of Invoice price and quantity of Supplier Invoices "), 'sale_expected' : fields.function(_product_margin, type='float', string='Expected Sale', multi='product_margin', - help="Sum of Multification of Sale Catalog price and quantity of Customer Invoices"), + help="Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices"), 'normal_cost' : fields.function(_product_margin, type='float', string='Normal Cost', multi='product_margin', - help="Sum of Multification of Cost price and quantity of Supplier Invoices"), + help="Sum of Multiplication of Cost price and quantity of Supplier Invoices"), 'total_margin' : fields.function(_product_margin, type='float', string='Total Margin', multi='product_margin', - help="Turnorder - Standard price"), + help="Turnover - Standard price"), 'expected_margin' : fields.function(_product_margin, type='float', string='Expected Margin', multi='product_margin', help="Expected Sale - Normal Cost"), 'total_margin_rate' : fields.function(_product_margin, type='float', string='Total Margin (%)', multi='product_margin', From d9c5368a2cbe3f19aed1e4be08adcad826207dd0 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Fri, 20 Jul 2012 15:57:51 +0530 Subject: [PATCH 077/112] [IMP] product : TypeError: The model 'product.product' specifies an unexisting parent class 'mail.thread'. bzr revid: mdi@tinyerp.com-20120720102751-g100uuhvxl0lcr91 --- addons/product/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/product/__openerp__.py b/addons/product/__openerp__.py index 9b4d2cadee1..918545aa783 100644 --- a/addons/product/__openerp__.py +++ b/addons/product/__openerp__.py @@ -25,7 +25,7 @@ "version" : "1.1", "author" : "OpenERP SA", 'category': 'Sales Management', - "depends" : ["base", "process", "decimal_precision"], + "depends" : ["base", "process", "decimal_precision", "mail"], "init_xml" : [], "demo_xml" : ["product_demo.xml"], "description": """ From c63ec2c229de7061023b26a334ca89d8388d5945 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Fri, 20 Jul 2012 16:17:28 +0530 Subject: [PATCH 078/112] [IMP] stock : Added multiple location group to 'location' and manage serial number group to 'serial number'. bzr revid: mdi@tinyerp.com-20120720104728-1tvks4b4pzhsx34d --- addons/stock/wizard/stock_change_product_qty_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/stock/wizard/stock_change_product_qty_view.xml b/addons/stock/wizard/stock_change_product_qty_view.xml index e360f5aa025..6713194f90b 100644 --- a/addons/stock/wizard/stock_change_product_qty_view.xml +++ b/addons/stock/wizard/stock_change_product_qty_view.xml @@ -10,8 +10,8 @@ - - + +
+ + From fceb94cb8ac1af2fdb6f88e6b86632552075baf1 Mon Sep 17 00:00:00 2001 From: Minh Tran Date: Tue, 24 Jul 2012 15:46:52 +0200 Subject: [PATCH 095/112] Changed style of About dialog box to match login page style bzr revid: mit@openerp.com-20120724134652-t783h7glntytr3kv --- addons/web/static/src/css/base.css | 41 +++++++++++++++++++++++++- addons/web/static/src/css/base.sass | 25 +++++++++++++++- addons/web/static/src/img/pattern.png | Bin 98 -> 0 bytes addons/web/static/src/js/chrome.js | 2 +- addons/web/static/src/xml/base.xml | 27 ++++++++--------- 5 files changed, 78 insertions(+), 17 deletions(-) delete mode 100644 addons/web/static/src/img/pattern.png diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index eda3a996d23..3b2fb526144 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -267,6 +267,45 @@ color: black; text-decoration: none; } +.openerp.ui-dialog .oe_about { + background-color: white; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; +} +.openerp.ui-dialog .oe_about a { + color: #8a89ba; +} +.openerp.ui-dialog .oe_about a:hover { + text-decoration: underline; +} +.openerp.ui-dialog .oe_about .oe_logo { + margin-left: -6px; +} +.openerp.ui-dialog .oe_about .oe_bottom { + position: absolute; + top: 50%; + left: 0; + right: 0; + bottom: 0; + text-shadow: 0 1px 1px #999999; + background-color: #b41616; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); + background-image: -webkit-linear-gradient(top, #b41616, #600606); + background-image: -moz-linear-gradient(top, #b41616, #600606); + background-image: -ms-linear-gradient(top, #b41616, #600606); + background-image: -o-linear-gradient(top, #b41616, #600606); + background-image: linear-gradient(to bottom, #b41616, #600606); + color: #eeeeee; + padding: 0 16px; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; +} +.openerp.ui-dialog .oe_about .oe_bottom a { + color: #eeeeee; +} .openerp.ui-dialog.oe_act_window .ui-dialog-content { padding: 0px; } @@ -711,7 +750,7 @@ z-index: 1050; } .openerp .oe_login { - background: url("/web/static/src/img/pattern.png") repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); text-align: center; font-size: 14px; height: 100%; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index dbd3d30f453..de0ab08391b 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -256,6 +256,29 @@ $sheet-max-width: 860px &:hover color: black text-decoration: none + .oe_about + background-color: white + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=) + @include radius(0 0 2px 2px) + a + color: #8A89BA + &:hover + text-decoration: underline + .oe_logo + margin-left: -6px + .oe_bottom + position: absolute + top: 50% + left: 0 + right: 0 + bottom: 0 + text-shadow: 0 1px 1px #999999 + @include vertical-gradient(#b41616, #600606) + color: #eee + padding: 0 16px + @include radius(0 0 2px 2px) + a + color: #eee &.ui-dialog.oe_act_window .ui-dialog-content @@ -567,7 +590,7 @@ $sheet-max-width: 860px // }}} // Login {{{ .oe_login - background: url("/web/static/src/img/pattern.png") repeat + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=) text-align: center font-size: 14px height: 100% diff --git a/addons/web/static/src/img/pattern.png b/addons/web/static/src/img/pattern.png deleted file mode 100644 index 7e3a2b3783419e6e5d6caf570adad0ff72359ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=O-~oc5DwYonlCRd*0Y%$V0!fV v!-oT{tgNh(GauNfu!T8pD4QUr(#pdyMTNya*NmeZsENVT)z4*}Q$iB}iHRDp diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 2ab4b61d9c0..28dc9020c4e 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -851,7 +851,7 @@ instance.web.UserMenu = instance.web.Widget.extend({ window.location.href, 'debug'); }); instance.web.dialog($help, {autoOpen: true, - modal: true, width: 960, title: _t("About")}); + modal: true, width: 580, height: 290, resizable: false, title: _t("About")}); }); }, }); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 1bbffe3e2a7..da19e6da0a3 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -329,21 +329,20 @@ -
- Activate the developer mode -

OpenERP

-

Version

-

- Copyright © 2004-TODAY OpenERP SA. All Rights Reserved.
- OpenERP is a trademark of the OpenERP SA Company. -

-

- Licenced under the terms of GNU Affero General Public License -

-

- For more information visit OpenERP.com -

+ +
+ Activate the developer mode + +

Version

+ +
+

Copyright © 2004-TODAY OpenERP SA. All Rights Reserved.
+ OpenERP is a trademark of the OpenERP SA Company.

+

Licenced under the terms of GNU Affero General Public License

+

For more information visit OpenERP.com

+
+
From b98723a1fed138068b1b1db936ab0f0ca704bb93 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 24 Jul 2012 16:12:20 +0200 Subject: [PATCH 096/112] [IMP] improved throbber bzr revid: nicolas.vanhoren@openerp.com-20120724141220-1u0odsgsxzjtc5xn --- addons/web/__openerp__.py | 1 + addons/web/static/src/img/throbber2.gif | Bin 404 -> 0 bytes addons/web/static/src/js/chrome.js | 14 +++++------ addons/web/static/src/js/coresetup.js | 32 +++++++++++++++++++++++- addons/web/static/src/js/data_export.js | 4 +-- addons/web/static/src/js/view_form.js | 4 +-- addons/web/static/src/js/views.js | 8 +++--- 7 files changed, 47 insertions(+), 16 deletions(-) delete mode 100644 addons/web/static/src/img/throbber2.gif diff --git a/addons/web/__openerp__.py b/addons/web/__openerp__.py index 9e8e258dedc..4051e607e21 100644 --- a/addons/web/__openerp__.py +++ b/addons/web/__openerp__.py @@ -20,6 +20,7 @@ "static/lib/jquery.form/jquery.form.js", "static/lib/jquery.validate/jquery.validate.js", "static/lib/jquery.ba-bbq/jquery.ba-bbq.js", + "static/lib/spinjs/spin.js", "static/lib/jquery.blockUI/jquery.blockUI.js", "static/lib/jquery.ui/js/jquery-ui-1.8.17.custom.min.js", "static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js", diff --git a/addons/web/static/src/img/throbber2.gif b/addons/web/static/src/img/throbber2.gif deleted file mode 100644 index 2fd8e0737ed41ba0a01b98f40688c325d5574762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmZ?wbhEHb)Mnsj_{hNU|Nnmm28O1lCLpQ!pWDwhB-q(8z|~04fSC~_^iRsUC^fMp zHASI3vm`?yF)OhmCqFSoFEcMKpF!~_3nv#)l@1UyfDB|{GHU7LI6dv=jpolsxuoxf zeLmg#z^pAIa$%Z!?Y&w1mh+_RdR}iorT6Q|=AU*u7AP3`hypFaG{*J_&=>{&#N>^$ zT8^)&`8*@>-uIrA88haeTIl8MRiLwjJ^Sp&wJ%lpHZi7(NaaU-s_i@FclpsQour`S z>#>^%a+m?o#FewMqVMEC;^z|HUiq-HXUUZXD|YcM<39A-C)up?`N?xHe+JE(vBva_ zL67^Xm!D<=O Date: Tue, 24 Jul 2012 17:01:12 +0200 Subject: [PATCH 097/112] [ADD] focus previous/next field when using the left/right arrow while at the start/end of a field bzr revid: xmo@openerp.com-20120724150112-r8liahdyaxmx49o8 --- .../web/static/src/js/view_list_editable.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 707e0d196f1..f2ce08f12ca 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -473,6 +473,52 @@ openerp.web.list_editable = function (instance) { return index === el.value.length; }); }, + + keydown_LEFT: function (e) { + // If the cursor is at the beginning of the field + var source_field = $(e.target).closest('[data-fieldname]') + .attr('data-fieldname'); + var index = this._text_cursor(e.target); + if (index !== 0) { return $.when(); } + + var fields_order = this.editor.form.fields_order; + var field_index = _(fields_order).indexOf(source_field); + + // Look for the closest visible form field to the left + var fields = this.editor.form.fields; + var field; + do { + if (--field_index < 0) { return $.when(); } + + field = fields[fields_order[field_index]]; + } while (!field.$element.is(':visible')); + + // and focus it + field.focus(); + return $.when(); + }, + keydown_RIGHT: function (e) { + // same as above, but with cursor at the end of the field and + // looking for new fields at the right + var source_field = $(e.target).closest('[data-fieldname]') + .attr('data-fieldname'); + var index = this._text_cursor(e.target); + if (index !== e.target.value.length) { return $.when(); } + + var fields_order = this.editor.form.fields_order; + var field_index = _(fields_order).indexOf(source_field); + + var fields = this.editor.form.fields; + var field; + do { + if (++field_index >= fields_order.length) { return $.when(); } + + field = fields[fields_order[field_index]]; + } while (!field.$element.is(':visible')); + + field.focus(); + return $.when(); + }, keydown_TAB: function (e) { var form = this.editor.form; var last_field = _(form.fields_order).chain() From da361d10427df704a9a9fa8b365627aae75fc3b7 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 24 Jul 2012 17:34:05 +0200 Subject: [PATCH 098/112] [IMP] crm: crm.case.stage should be readable by all, to allow new statusbar widgets to work for stages bzr revid: odo@openerp.com-20120724153405-8owoyo60bjgnq60r --- addons/crm/security/ir.model.access.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv index 91e5f1c1769..fd11a8e64c4 100644 --- a/addons/crm/security/ir.model.access.csv +++ b/addons/crm/security/ir.model.access.csv @@ -16,7 +16,7 @@ access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman, access_crm_phonecall_all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0 access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0 access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1 -access_crm_case_stage,crm.case.stage,model_crm_case_stage,base.group_user,1,0,0,0 +access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0 access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1 access_crm_case_resource_type_user,crm_case_resource_type user,model_crm_case_resource_type,base.group_sale_salesman,1,1,1,0 access_crm_case_resource_type_manager,crm_case_resource_type manager,model_crm_case_resource_type,base.group_sale_manager,1,1,1,1 From 38cb3de5183654661d92db6134fa6423f9441261 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 24 Jul 2012 19:05:50 +0200 Subject: [PATCH 099/112] [FIX] attempt to make editability handling more logical and simpler to manage. Also less buggy, with a bit o' luck bzr revid: xmo@openerp.com-20120724170550-150vimuk6bvzh8y8 --- addons/web/static/src/js/view_form.js | 13 +++-- addons/web/static/src/js/view_list.js | 3 -- .../web/static/src/js/view_list_editable.js | 44 +++++++++-------- doc/list-view.rst | 49 ++++++++++++------- 4 files changed, 63 insertions(+), 46 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 7a0482a3034..835527b3135 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3027,8 +3027,11 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.viewmanager.on_controller_inited.add_last(function(view_type, controller) { controller.o2m = self; if (view_type == "list") { - if (self.get("effective_readonly")) - controller.set_editable(false); + if (self.get("effective_readonly")) { + controller.on('edit:before', self, function (e) { + e.cancel = true; + }); + } } else if (view_type === "form") { if (self.get("effective_readonly")) { $(".oe_form_buttons", controller.$element).children().remove(); @@ -3301,7 +3304,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ .value(); }, do_add_record: function () { - if (this.options.editable) { + if (this.editable()) { this._super.apply(this, arguments); } else { var self = this; @@ -4108,10 +4111,12 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend self.dataset, false, _.extend({'deletable': false, 'selectable': !self.options.disable_multiple_selection, - 'read_only': true, 'import_enabled': false, '$buttons': self.$buttonpane, }, self.options.list_view_options || {})); + self.view_list.on('edit:before', self, function (e) { + e.cancel = true; + }); self.view_list.popup = self; self.view_list.appendTo($(".oe_popup_list", self.$element)).pipe(function() { self.view_list.do_show(); diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index f68f1354099..53a8c0126b2 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -21,9 +21,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi // whether the view rows can be reordered (via vertical drag & drop) 'reorderable': true, 'action_buttons': true, - // if true, the view can't be editable, ignoring the view's and the context's - // instructions - 'read_only': false, // if true, the 'Import', 'Export', etc... buttons will be shown 'import_enabled': true, }, diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index f2ce08f12ca..697715f2f77 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -12,6 +12,8 @@ openerp.web.list_editable = function (instance) { var self = this; this._super.apply(this, arguments); + this._force_editability = null; + this._context_editable = false; this.editor = this.make_editor(); // Stores records of {field, cell}, allows for re-rendering fields // depending on cell state during and after resize events @@ -37,6 +39,11 @@ openerp.web.list_editable = function (instance) { } }); + this.on('edit:before', this, function (event) { + if (!self.editable() || self.editor.is_editing()) { + event.cancel = true; + } + }); this.on('edit:after', this, function () { self.$element.add(self.$buttons).addClass('oe_editing'); }); @@ -62,26 +69,18 @@ openerp.web.list_editable = function (instance) { do_edit: function (index, id, dataset) { _.extend(this.dataset, dataset); }, - /** - * Sets editability status for the list, based on defaults, view - * architecture and the provided flag, if any. - * - * @param {Boolean} [force] forces the list to editability. Sets new row edition status to "bottom". - */ - set_editable: function (force) { - // TODO: fix handling of editability status to be simpler & clearer & more coherent - // If ``force``, set editability to bottom - // otherwise rely on view default - // view' @editable is handled separately as we have not yet - // fetched and processed the view at this point. - this.options.editable = ( - ! this.options.read_only && ((force && "bottom") || this.defaults.editable)); + editable: function () { + if (this.fields_view.arch.attrs.editable || this._context_editable) { + return true; + } + + return this.options.editable; }, /** * Replace do_search to handle editability process */ do_search: function(domain, context, group_by) { - this.set_editable(context['set_editable']); + this._context_editable = !!context.set_editable; this._super.apply(this, arguments); }, /** @@ -89,7 +88,7 @@ openerp.web.list_editable = function (instance) { * as an editable row at the top or bottom of the list) */ do_add_record: function () { - if (this.options.editable) { + if (this.editable()) { this.$element.find('table:first').show(); this.$element.find('.oe_view_nocontent').remove(); this.start_edition(); @@ -103,9 +102,8 @@ openerp.web.list_editable = function (instance) { this.editor.destroy(); } // tree/@editable takes priority on everything else if present. - this.options.editable = ! this.options.read_only && (data.arch.attrs.editable || this.options.editable); var result = this._super(data, grouped); - if (this.options.editable) { + if (this.editable()) { // FIXME: any hook available to ensure this is only done once? this.$buttons .off('click', '.oe_list_save') @@ -210,6 +208,12 @@ openerp.web.list_editable = function (instance) { self.resize_fields(); return record.attributes; }); + }).fail(function () { + // if the start_edition event is cancelled and it was a + // creation, remove the newly-created empty record + if (!record.get('id')) { + self.records.remove(record); + } }); }); }, @@ -379,7 +383,7 @@ openerp.web.list_editable = function (instance) { return this.reload_record(record); }, prepends_on_create: function () { - return this.options.editable === 'top'; + return this.editable() === 'top'; }, setup_events: function () { var self = this; @@ -701,7 +705,7 @@ openerp.web.list_editable = function (instance) { instance.web.ListView.List.include(/** @lends instance.web.ListView.List# */{ row_clicked: function (event) { - if (!this.options.editable) { + if (!this.view.editable()) { return this._super.apply(this, arguments); } var record_id = $(event.currentTarget).data('id'); diff --git a/doc/list-view.rst b/doc/list-view.rst index 0d67c27f963..83925d82f46 100644 --- a/doc/list-view.rst +++ b/doc/list-view.rst @@ -87,34 +87,37 @@ List view edition is an extension to the base listview providing the capability of inline record edition by delegating to an embedded form view. -.. todo:: +Editability status +++++++++++++++++++ - cleanup options and settings for editability configuration. Right - now there are: +The editability status of a list view can be queried through the +:js:func:`~openerp.web.ListView.editable` method, will return a falsy +value if the listview is not currently editable. - ``defaults.editable`` +The editability status is based on three flags: - ``null``, ``"top"`` or ``"bottom"``, generally broken and - useless +``tree/@editable`` - ``context.set_editable`` + If present, can be either ``"top"`` or ``"bottom"``. Either will + make the list view editable, with new records being respectively + created at the top or at the bottom of the view. - forces ``options.editable`` to ``"bottom"`` +``context.set_editable`` - ``view.arch.attrs.editable`` + Boolean flag extracted from a search context (during the + :js:func:`~openerp.web.ListView.do_search`` handler), ``true`` + will make the view editable (from the top), ``false`` or the + absence of the flag is a noop. - same as ``defaults.editable``, but applied separately (after - reloading the view), if absent delegates to - ``options.editable`` which may have been set previously. +``defaults.editable`` - ``options.read_only`` + Like ``tree/@editable``, one of absent (``null``)), ``"top"`` or + ``"bottom"``, fallback for the list view if none of the previous + two flags are set. - force options.editable to false, or something? - - .. note:: can probably be replaced by cancelling ``edit:before`` - - and :js:func:`~openerp.web.ListView.set_editable` which - ultimately behaves weird-as-fuck-ly. +These three flags can only *make* a listview editable, they can *not* +override a previously set flag. To do that, a listview user should +instead cancel :ref:`the edit:before event `. The editable list view module adds a number of methods to the list view, on top of implementing the :js:class:`EditorDelegate` protocol: @@ -219,6 +222,14 @@ view provides a number of dedicated events to its lifecycle. abort its current behavior as soon as possible, and rollback any state modification. + Generally speaking, an event should only be cancelled (by + setting the ``cancel`` flag to ``true``), uncancelling an + event is undefined as event handlers are executed on a + first-come-first-serve basis and later handlers may + re-cancel an uncancelled event. + +.. _listview-edit-before: + ``edit:before`` *cancellable* Invoked before the list view starts editing a record. From 46a037027384aca64ec7c6140446a6de9d80996d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 24 Jul 2012 19:14:19 +0200 Subject: [PATCH 100/112] [IMP] avoid losing the exact value of tree/@editable when checking for editability status bzr revid: xmo@openerp.com-20120724171419-czll83665nptk3n3 --- addons/web/static/src/js/view_list_editable.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 697715f2f77..c7654479864 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -70,11 +70,9 @@ openerp.web.list_editable = function (instance) { _.extend(this.dataset, dataset); }, editable: function () { - if (this.fields_view.arch.attrs.editable || this._context_editable) { - return true; - } - - return this.options.editable; + return this.fields_view.arch.attrs.editable + || this._context_editable + || this.options.editable; }, /** * Replace do_search to handle editability process From 930dd711ed9369e5a918d2df45878e5421001057 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 25 Jul 2012 04:52:31 +0000 Subject: [PATCH 101/112] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120725043706-7gh4e1622s0jedal bzr revid: launchpad_translations_on_behalf_of_openerp-20120725045231-nh45u4rfluqv50oa --- .../i18n/gu.po | 8 +- addons/marketing/i18n/nb.po | 28 + addons/multi_company/i18n/nb.po | 83 + addons/project_long_term/i18n/es_EC.po | 533 ++++++ addons/report_designer/i18n/nb.po | 98 ++ addons/stock_invoice_directly/i18n/nb.po | 23 + addons/web/i18n/fr_CA.po | 1563 +++++++++++++++++ addons/web_process/i18n/nb.po | 16 +- 8 files changed, 2340 insertions(+), 12 deletions(-) create mode 100644 addons/marketing/i18n/nb.po create mode 100644 addons/multi_company/i18n/nb.po create mode 100644 addons/project_long_term/i18n/es_EC.po create mode 100644 addons/report_designer/i18n/nb.po create mode 100644 addons/stock_invoice_directly/i18n/nb.po create mode 100644 addons/web/i18n/fr_CA.po diff --git a/addons/account_bank_statement_extensions/i18n/gu.po b/addons/account_bank_statement_extensions/i18n/gu.po index e2c0c365d3a..bc5334125dd 100644 --- a/addons/account_bank_statement_extensions/i18n/gu.po +++ b/addons/account_bank_statement_extensions/i18n/gu.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-06-01 04:42+0000\n" +"PO-Revision-Date: 2012-07-24 08:18+0000\n" "Last-Translator: Jalpesh Patel(OpenERP) \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-14 06:27+0000\n" -"X-Generator: Launchpad (build 15614)\n" +"X-Launchpad-Export-Date: 2012-07-25 04:37+0000\n" +"X-Generator: Launchpad (build 15679)\n" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -54,7 +54,7 @@ msgstr "ઉધાર" #: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line #: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line msgid "Cancel selected statement lines" -msgstr "" +msgstr "પસંદ કરેલ નિવેદન લીટીઓ રદ કરો" #. module: account_bank_statement_extensions #: constraint:res.partner.bank:0 diff --git a/addons/marketing/i18n/nb.po b/addons/marketing/i18n/nb.po new file mode 100644 index 00000000000..feae1ba056f --- /dev/null +++ b/addons/marketing/i18n/nb.po @@ -0,0 +1,28 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-07-24 20:29+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:37+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. module: marketing +#: model:res.groups,name:marketing.group_marketing_manager +msgid "Manager" +msgstr "Manager" + +#. module: marketing +#: model:res.groups,name:marketing.group_marketing_user +msgid "User" +msgstr "Bruker" diff --git a/addons/multi_company/i18n/nb.po b/addons/multi_company/i18n/nb.po new file mode 100644 index 00000000000..e662ff634b4 --- /dev/null +++ b/addons/multi_company/i18n/nb.po @@ -0,0 +1,83 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-07-24 20:31+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:36+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. module: multi_company +#: model:res.company,overdue_msg:multi_company.res_company_odoo +#: model:res.company,overdue_msg:multi_company.res_company_oerp_be +#: model:res.company,overdue_msg:multi_company.res_company_oerp_editor +#: model:res.company,overdue_msg:multi_company.res_company_oerp_in +#: model:res.company,overdue_msg:multi_company.res_company_oerp_us +msgid "" +"\n" +"Date: %(date)s\n" +"\n" +"Dear %(partner_name)s,\n" +"\n" +"Please find in attachment a reminder of all your unpaid invoices, for a " +"total amount due of:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"Thanks,\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s\n" +" " +msgstr "" + +#. module: multi_company +#: model:product.category,name:multi_company.Odoo1 +msgid "Odoo Offers" +msgstr "" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Returning" +msgstr "" + +#. module: multi_company +#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany +msgid "Multi-Companies" +msgstr "" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Multi Company" +msgstr "Flerfirma" + +#. module: multi_company +#: model:ir.actions.act_window,name:multi_company.action_inventory_form +#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form +msgid "Default Company per Object" +msgstr "Default firma pr. objekt" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Matching" +msgstr "" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Condition" +msgstr "Betingelse" + +#. module: multi_company +#: model:product.template,name:multi_company.product_product_odoo1_product_template +msgid "Odoo Offer" +msgstr "" diff --git a/addons/project_long_term/i18n/es_EC.po b/addons/project_long_term/i18n/es_EC.po new file mode 100644 index 00000000000..b00191d8a44 --- /dev/null +++ b/addons/project_long_term/i18n/es_EC.po @@ -0,0 +1,533 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:37+0000\n" +"PO-Revision-Date: 2012-07-24 16:59+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:37+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phases +msgid "Phases" +msgstr "Fases" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,next_phase_ids:0 +msgid "Next Phases" +msgstr "Siguientes fases" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Project's Tasks" +msgstr "Tareas del proyecto" + +#. module: project_long_term +#: view:project.phase:0 +#: view:project.user.allocation:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: project_long_term +#: field:project.phase,user_ids:0 +msgid "Assigned Users" +msgstr "Usuarios asignados" + +#. module: project_long_term +#: field:project.phase,progress:0 +msgid "Progress" +msgstr "Progreso" + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" +"¡Error! La fecha de inicio del proyecto debe ser menor que la fecha final " +"del proyecto." + +#. module: project_long_term +#: view:project.phase:0 +msgid "In Progress Phases" +msgstr "Fases en progreso" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Displaying Settings" +msgstr "" + +#. module: project_long_term +#: field:project.compute.phases,target_project:0 +msgid "Schedule" +msgstr "Planificar" + +#. module: project_long_term +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Error ! No puede crear tareas recursivas." + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "¡Error! No puede asignar un escalado al mismo proyecto!" + +#. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:126 +#, python-format +msgid "Day" +msgstr "Día" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_user_allocation +msgid "Phase User Allocation" +msgstr "Asignación Fases de Usuario" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_task +msgid "Task" +msgstr "Tarea" + +#. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your users allocation, describe different tasks and link your phase " +"to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"users, convert your phases into a series of tasks when you start working on " +"the project." +msgstr "" +"Un proyecto se puede dividir en diferentes fases. Para cada fase, se puede " +"definir la asignación de usuarios, describir las diferentes tareas, vincular " +"las fases previas y posteriores de una fase y añadir restricciones de fecha " +"para la programación automática. Utilice la planificación a largo plazo con " +"el fin de Planificar sus usuarios disponibles, convertir sus fases en una " +"serie de tareas cuando se empiece a trabajar en el proyecto." + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute a Single Project" +msgstr "Calcular un sólo proyecto" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,previous_phase_ids:0 +msgid "Previous Phases" +msgstr "Fases previas" + +#. module: project_long_term +#: help:project.phase,product_uom:0 +msgid "UoM (Unit of Measure) is the unit of measurement for Duration" +msgstr "UdM (Unidad de Medida) es la unidad de medida para la duración" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation +#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation +#: view:project.phase:0 +#: view:project.user.allocation:0 +msgid "Planning of Users" +msgstr "Planificación de Usuarios" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the duration." +msgstr "" +" Es calculado por el planificador en función de la fecha de inicio y la " +"duración" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_project +#: field:project.compute.phases,project_id:0 +#: field:project.compute.tasks,project_id:0 +#: view:project.phase:0 +#: field:project.phase,project_id:0 +#: view:project.task:0 +#: view:project.user.allocation:0 +#: field:project.user.allocation,project_id:0 +msgid "Project" +msgstr "Proyecto" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:48 +#, python-format +msgid "Error!" +msgstr "Error!" + +#. module: project_long_term +#: selection:project.phase,state:0 +msgid "Cancelled" +msgstr "Cancelado" + +#. module: project_long_term +#: help:project.user.allocation,date_end:0 +msgid "Ending Date" +msgstr "Fecha de cierre" + +#. module: project_long_term +#: field:project.phase,constraint_date_end:0 +msgid "Deadline" +msgstr "Fecha límite" + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute All My Projects" +msgstr "Calcular todos los proyectos" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "_Cancel" +msgstr "Cancelar" + +#. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:141 +#, python-format +msgid " (copy)" +msgstr " (copiar)" + +#. module: project_long_term +#: view:project.user.allocation:0 +msgid "Project User Allocation" +msgstr "Asignación de usuarios a un proyecto" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,state:0 +msgid "State" +msgstr "Estado" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "C_ompute" +msgstr "C_alcular" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "New" +msgstr "Nuevo" + +#. module: project_long_term +#: help:project.phase,progress:0 +msgid "Computed based on related tasks" +msgstr "Calculo basado en las tareas relacionadas" + +#. module: project_long_term +#: field:project.phase,product_uom:0 +msgid "Duration UoM" +msgstr "UdM duración" + +#. module: project_long_term +#: field:project.phase,constraint_date_start:0 +msgid "Minimum Start Date" +msgstr "Fecha de inicio mínima" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_pm_users_project1 +#: model:ir.ui.menu,name:project_long_term.menu_view_resource +msgid "Resources" +msgstr "Recursos" + +#. module: project_long_term +#: view:project.phase:0 +msgid "My Projects" +msgstr "Mis Proyectos" + +#. module: project_long_term +#: help:project.user.allocation,date_start:0 +msgid "Starting Date" +msgstr "Fecha de inicio" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list +msgid "Related Tasks" +msgstr "Tareas relacionadas" + +#. module: project_long_term +#: view:project.phase:0 +msgid "New Phases" +msgstr "Nueva Fase" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:48 +#, python-format +msgid "Please specify a project to schedule." +msgstr "Por favor, especifique un proyecto para planificar." + +#. module: project_long_term +#: help:project.phase,constraint_date_start:0 +msgid "force the phase to start after this date" +msgstr "Forzar que la fase epiece después de esta fecha" + +#. module: project_long_term +#: field:project.phase,task_ids:0 +msgid "Project Tasks" +msgstr "Tareas del proyecto" + +#. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed by the scheduler according the project date or the end date of " +"the previous phase." +msgstr "" +"Es calculado por el planificador en función de la fecha inicio o fecha fin " +"de la fase anterior" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Month" +msgstr "Mes" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Phase start-date must be lower than phase end-date." +msgstr "La fecha-inicio de la fase debe ser menor que la fecha-fin." + +#. module: project_long_term +#: view:project.phase:0 +msgid "Start Month" +msgstr "Mes de inicio" + +#. module: project_long_term +#: field:project.phase,date_start:0 +#: field:project.user.allocation,date_start:0 +msgid "Start Date" +msgstr "Fecha inicio" + +#. module: project_long_term +#: help:project.phase,constraint_date_end:0 +msgid "force the phase to finish before this date" +msgstr "Forzar que la fase termine antes de esta fecha" + +#. module: project_long_term +#: help:project.phase,user_ids:0 +msgid "" +"The ressources on the project can be computed automatically by the scheduler" +msgstr "" +"Los Recursos del proyecto se puede calcular automáticamente por el " +"planificador" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Draft" +msgstr "Borrador" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Pending Phases" +msgstr "Fases pendientes" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Pending" +msgstr "Pendiente" + +#. module: project_long_term +#: view:project.user.allocation:0 +#: field:project.user.allocation,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_tasks +msgid "Project Compute Tasks" +msgstr "Calcular tareas del proyecto" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Constraints" +msgstr "Restricciones" + +#. module: project_long_term +#: help:project.phase,sequence:0 +msgid "Gives the sequence order when displaying a list of phases." +msgstr "Indica el orden cuando se muestra la lista de fases" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phase +#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list +#: model:ir.ui.menu,name:project_long_term.menu_project_phase +#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list +#: view:project.phase:0 +#: field:project.project,phase_ids:0 +msgid "Project Phases" +msgstr "Fases del proyecto" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Done" +msgstr "Realizado" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "In Progress" +msgstr "En progreso" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Remaining Hours" +msgstr "Horas restantes" + +#. module: project_long_term +#: constraint:project.task:0 +msgid "Error ! Task end-date must be greater then task start-date" +msgstr "" +"Error ! La fecha final de la tarea debe ser mayor que la fecha de inicio" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar +msgid "Working Time" +msgstr "Horario de trabajo" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases +#: model:ir.ui.menu,name:project_long_term.menu_compute_phase +#: view:project.compute.phases:0 +msgid "Schedule Phases" +msgstr "Planificación de fases" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Start Phase" +msgstr "Iniciar fase" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Total Hours" +msgstr "Total horas" + +#. module: project_long_term +#: view:project.user.allocation:0 +msgid "Users" +msgstr "Usuarios" + +#. module: project_long_term +#: view:project.user.allocation:0 +msgid "Phase" +msgstr "Fase" + +#. module: project_long_term +#: help:project.phase,state:0 +msgid "" +"If the phase is created the state 'Draft'.\n" +" If the phase is started, the state becomes 'In Progress'.\n" +" If review is needed the phase is in 'Pending' state. " +" \n" +" If the phase is over, the states is set to 'Done'." +msgstr "" +"Si la fase se crea, el estado es \"Borrador\".\n" +" Si la fase comienza, el estado cambia a \"En Proceso\".\n" +" Si se necesita revisión, la fase está en estado \"Pendiente\".\n" +" Si la fase está terminada, el estado se fija en \"z\"." + +#. module: project_long_term +#: field:project.phase,date_end:0 +#: field:project.user.allocation,date_end:0 +msgid "End Date" +msgstr "Fecha de finalización" + +#. module: project_long_term +#: field:project.phase,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "Detalles de tareas" + +#. module: project_long_term +#: field:project.phase,duration:0 +msgid "Duration" +msgstr "Duración" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Project Users" +msgstr "Usuarios del proyecto" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_phase +#: view:project.phase:0 +#: view:project.task:0 +#: field:project.task,phase_id:0 +#: field:project.user.allocation,phase_id:0 +msgid "Project Phase" +msgstr "Fase del proyecto" + +#. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases +msgid "" +"To schedule phases of all or a specified project. It then open a gantt " +"view.\n" +" " +msgstr "" +"Para planificar las fases en su totalidad o de un proyecto específico. " +"Entonces, abra una vista de Gantt.\n" +" " + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_phases +msgid "Project Compute Phases" +msgstr "Calcular fases del proyecto" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Loops in phases not allowed" +msgstr "No se permiten bucles en fases" + +#. module: project_long_term +#: field:project.phase,sequence:0 +msgid "Sequence" +msgstr "Secuencia" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves +msgid "Resource Leaves" +msgstr "Ausencia de recursos" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks +#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks +#: view:project.compute.tasks:0 +msgid "Schedule Tasks" +msgstr "Planificar tareas" + +#. module: project_long_term +#: help:project.phase,duration:0 +msgid "By default in days" +msgstr "Por defecto en días" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,user_force_ids:0 +msgid "Force Assigned Users" +msgstr "Forzar asignación de usuarios" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule +msgid "Scheduling" +msgstr "Planificación" + +#~ msgid "Displaying settings" +#~ msgstr "Mostrando configuración" diff --git a/addons/report_designer/i18n/nb.po b/addons/report_designer/i18n/nb.po new file mode 100644 index 00000000000..4715435a323 --- /dev/null +++ b/addons/report_designer/i18n/nb.po @@ -0,0 +1,98 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2012-07-24 20:36+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:37+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. module: report_designer +#: model:ir.actions.act_window,name:report_designer.action_report_designer_installer +#: view:report_designer.installer:0 +msgid "Reporting Tools Configuration" +msgstr "Konfigurasjon rapportverktøy" + +#. module: report_designer +#: field:report_designer.installer,base_report_creator:0 +msgid "Query Builder" +msgstr "Avansert søk" + +#. module: report_designer +#: view:report_designer.installer:0 +msgid "Configure" +msgstr "Konfigurer" + +#. module: report_designer +#: view:report_designer.installer:0 +msgid "title" +msgstr "tittel" + +#. module: report_designer +#: model:ir.model,name:report_designer.model_report_designer_installer +msgid "report_designer.installer" +msgstr "report_designer.installer" + +#. module: report_designer +#: field:report_designer.installer,config_logo:0 +msgid "Image" +msgstr "Bilde" + +#. module: report_designer +#: field:report_designer.installer,base_report_designer:0 +msgid "OpenOffice Report Designer" +msgstr "OpenOffice Rapport Designer" + +#. module: report_designer +#: model:ir.module.module,shortdesc:report_designer.module_meta_information +msgid "Reporting Tools" +msgstr "Rapport verktøy" + +#. module: report_designer +#: view:report_designer.installer:0 +msgid "" +"OpenERP's built-in reporting abilities can be improved even further with " +"some of the following applications" +msgstr "" + +#. module: report_designer +#: view:report_designer.installer:0 +msgid "Configure Reporting Tools" +msgstr "Konfigurer rapportverktøy" + +#. module: report_designer +#: help:report_designer.installer,base_report_creator:0 +msgid "" +"Allows you to create any statistic reports on several objects. It's a SQL " +"query builder and browser for end users." +msgstr "" + +#. module: report_designer +#: help:report_designer.installer,base_report_designer:0 +msgid "" +"Adds wizards to Import/Export .SXW report which you can modify in " +"OpenOffice.Once you have modified it you can upload the report using the " +"same wizard." +msgstr "" + +#. module: report_designer +#: model:ir.module.module,description:report_designer.module_meta_information +msgid "" +"Installer for reporting tools selection\n" +" " +msgstr "" + +#. module: report_designer +#: field:report_designer.installer,progress:0 +msgid "Configuration Progress" +msgstr "Konfigurasjonsprosess" diff --git a/addons/stock_invoice_directly/i18n/nb.po b/addons/stock_invoice_directly/i18n/nb.po new file mode 100644 index 00000000000..d9ecfa5b245 --- /dev/null +++ b/addons/stock_invoice_directly/i18n/nb.po @@ -0,0 +1,23 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:37+0000\n" +"PO-Revision-Date: 2012-07-24 20:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:36+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. module: stock_invoice_directly +#: model:ir.model,name:stock_invoice_directly.model_stock_partial_picking +msgid "Partial Picking Processing Wizard" +msgstr "Veiviser for delplukking" diff --git a/addons/web/i18n/fr_CA.po b/addons/web/i18n/fr_CA.po new file mode 100644 index 00000000000..f6426975e7d --- /dev/null +++ b/addons/web/i18n/fr_CA.po @@ -0,0 +1,1563 @@ +# French (Canada) translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-07-02 09:06+0200\n" +"PO-Revision-Date: 2012-07-25 03:30+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: French (Canada) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-25 04:52+0000\n" +"X-Generator: Launchpad (build 15679)\n" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:176 +#: addons/web/static/src/js/chrome.js:202 +#: addons/web/static/src/js/chrome.js:380 +#: addons/web/static/src/js/view_form.js:457 +#: addons/web/static/src/js/view_form.js:1292 +#: addons/web/static/src/xml/base.xml:1701 +msgid "Ok" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:184 +msgid "Send OpenERP Enterprise Report" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:198 +msgid "Dont send" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:1119 +msgid "Client Error" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:260 +#, python-format +msgid "Loading (%d)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:292 +msgid "Invalid database name" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:455 +msgid "Backed" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:456 +msgid "Database backed up successfully" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:499 +msgid "Restored" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:499 +msgid "Database restored successfully" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:783 +#: addons/web/static/src/xml/base.xml:226 +#: addons/web/static/src/xml/base.xml:1735 +msgid "Change Password" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:759 +#: addons/web/static/src/xml/base.xml:356 +msgid "Preferences" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:763 +msgid "Change password" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:762 +#: addons/web/static/src/js/search.js:241 +#: addons/web/static/src/js/search.js:300 +#: addons/web/static/src/js/view_editor.js:95 +#: addons/web/static/src/js/view_editor.js:836 +#: addons/web/static/src/js/view_editor.js:962 +#: addons/web/static/src/js/view_form.js:1287 +#: addons/web/static/src/xml/base.xml:743 +#: addons/web/static/src/xml/base.xml:1502 +#: addons/web/static/src/xml/base.xml:1512 +#: addons/web/static/src/xml/base.xml:1521 +msgid "Cancel" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:764 +#: addons/web/static/src/js/view_editor.js:73 +#: addons/web/static/src/js/views.js:967 addons/web/static/src/xml/base.xml:742 +#: addons/web/static/src/xml/base.xml:1506 +#: addons/web/static/src/xml/base.xml:1520 +msgid "Save" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:680 +#: addons/web/static/src/xml/base.xml:359 +msgid "About" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/chrome.js:1052 +msgid "OpenERP - Unsupported/Community Version" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:619 +msgid "less than a minute ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:620 +msgid "about a minute ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:621 +#, python-format +msgid "%d minutes ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:622 +msgid "about an hour ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:623 +#, python-format +msgid "%d hours ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:624 +msgid "a day ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:625 +#, python-format +msgid "%d days ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:626 +msgid "about a month ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:627 +#, python-format +msgid "%d months ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:628 +msgid "about a year ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/coresetup.js:629 +#, python-format +msgid "%d years ago" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:6 +msgid "Export Data" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:19 +#: addons/web/static/src/js/data_import.js:70 +#: addons/web/static/src/js/view_editor.js:49 +#: addons/web/static/src/js/view_editor.js:398 +#: addons/web/static/src/js/view_form.js:734 +#: addons/web/static/src/js/view_form.js:3298 +#: addons/web/static/src/js/views.js:968 +msgid "Close" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:20 +msgid "Export To File" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:126 +msgid "Please enter save field list name" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:362 +msgid "Please select fields to save export list..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_export.js:375 +msgid "Please select fields to export..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_import.js:34 +msgid "Import Data" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_import.js:71 +msgid "Import File" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_import.js:106 +msgid "External ID" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_import.js:346 +msgid "" +"Destination fields should only be selected once, some fields are selected " +"more than once:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/data_import.js:383 +msgid "*Required Fields are not selected :" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/formats.js:139 +#, python-format +msgid "(%d records)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/formats.js:325 +#: addons/web/static/src/js/view_page.js:268 +msgid "Download" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/formats.js:330 +#, python-format +msgid "Download \"%s\"" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:437 +msgid "Invalid Search" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:437 +msgid "triggered from search view" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:528 +#, python-format +msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:948 +#, python-format +msgid "Filter on: %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:999 +msgid "Filter" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1108 +#, python-format +msgid "Group by: %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1132 +msgid "GroupBy" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1267 +#, python-format +msgid "Search %(field)s for: %(value)s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:869 +msgid "not a valid integer" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:883 +msgid "not a valid number" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:962 +#: addons/web/static/src/xml/base.xml:973 +msgid "Yes" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:963 +msgid "No" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1416 +#, python-format +msgid "Search %(field)s at: %(value)s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1286 +msgid "Filters" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1762 +msgid "Advanced" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1853 +#, python-format +msgid "%(field)s %(operator)s \"%(value)s\"" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1341 +msgid "contains" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1342 +msgid "doesn't contain" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1343 +#: addons/web/static/src/js/search.js:1359 +#: addons/web/static/src/js/search.js:1380 +#: addons/web/static/src/js/search.js:1401 +#: addons/web/static/src/js/search.js:1424 +msgid "is equal to" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1344 +#: addons/web/static/src/js/search.js:1360 +#: addons/web/static/src/js/search.js:1381 +#: addons/web/static/src/js/search.js:1402 +#: addons/web/static/src/js/search.js:1425 +msgid "is not equal to" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1345 +#: addons/web/static/src/js/search.js:1361 +#: addons/web/static/src/js/search.js:1382 +#: addons/web/static/src/js/search.js:1403 +#: addons/web/static/src/js/search.js:1426 +msgid "greater than" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1346 +#: addons/web/static/src/js/search.js:1362 +#: addons/web/static/src/js/search.js:1383 +#: addons/web/static/src/js/search.js:1404 +#: addons/web/static/src/js/search.js:1427 +msgid "less than" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1347 +#: addons/web/static/src/js/search.js:1363 +#: addons/web/static/src/js/search.js:1384 +#: addons/web/static/src/js/search.js:1405 +#: addons/web/static/src/js/search.js:1428 +msgid "greater or equal than" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1348 +#: addons/web/static/src/js/search.js:1364 +#: addons/web/static/src/js/search.js:1385 +#: addons/web/static/src/js/search.js:1406 +#: addons/web/static/src/js/search.js:1429 +msgid "less or equal than" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1419 +#: addons/web/static/src/js/search.js:1444 +msgid "is" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1445 +msgid "is not" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1459 +msgid "is true" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:1460 +msgid "is false" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:20 +#, python-format +msgid "Manage Views (%s)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:46 +#: addons/web/static/src/js/view_list.js:17 +#: addons/web/static/src/xml/base.xml:100 +#: addons/web/static/src/xml/base.xml:327 +#: addons/web/static/src/xml/base.xml:761 +msgid "Create" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:47 +#: addons/web/static/src/xml/base.xml:483 +#: addons/web/static/src/xml/base.xml:760 +msgid "Edit" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:48 +#: addons/web/static/src/xml/base.xml:1653 +msgid "Remove" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:71 +#, python-format +msgid "Create a view (%s)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:168 +msgid "Do you really want to remove this view?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:364 +#, python-format +msgid "View Editor %d - %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:367 +msgid "Inherited View" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:371 +msgid "Do you really wants to create an inherited view here?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:381 +msgid "Preview" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:501 +msgid "Do you really want to remove this node?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:815 +#: addons/web/static/src/js/view_editor.js:939 +msgid "Properties" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_editor.js:818 +#: addons/web/static/src/js/view_editor.js:942 +msgid "Update" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:16 +#: addons/web/static/src/js/view_form.js:210 +msgid "Form" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:632 +#: addons/web/static/src/xml/base.xml:763 +#: addons/web/static/src/xml/base.xml:1714 +msgid "Delete" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:762 +msgid "Duplicate" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:133 +#: addons/web/static/src/js/view_form.js:728 +msgid "Set Default" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_page.js:59 +msgid "Do you really want to delete this record?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:508 +msgid "" +"Warning, the record has been modified, your changes will be discarded." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:735 +msgid "Save default" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:867 +#, python-format +msgid "Unknown operator %s in domain %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:875 +#, python-format +msgid "Unknown field %s in domain %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:913 +#, python-format +msgid "Unsupported operator %s in domain %s" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:1284 +msgid "Confirm" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2193 +msgid "   Search More..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2211 +#, python-format +msgid "   Create \"%s\"" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2217 +msgid "   Create and Edit..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2250 +#: addons/web/static/src/js/views.js:680 +msgid "Search: " +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2250 +#: addons/web/static/src/js/view_form.js:2738 +msgid "Create: " +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2040 +#: addons/web/static/src/js/view_form.js:2766 +#: addons/web/static/src/js/view_form.js:2991 +msgid "Open: " +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2911 +#: addons/web/static/src/xml/base.xml:755 +#: addons/web/static/src/xml/base.xml:777 +#: addons/web/static/src/xml/base.xml:1652 +msgid "Add" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:2971 +msgid "Add: " +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:4230 +msgid "Save As..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:4230 +msgid "The field is empty, there's nothing to save !" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:8 +msgid "List" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:277 +msgid "Unlimited" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:819 +#: addons/web/static/src/xml/base.xml:1742 +msgid "Import" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:822 +#: addons/web/static/src/xml/base.xml:1612 +msgid "Export" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:374 +msgid "Group" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:549 +msgid "Do you really want to remove these records?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:925 +msgid "Warning" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:716 +msgid "You must select at least one record." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:1243 +msgid "Undefined" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_list.js:1342 +#, python-format +msgid "%(page)d/%(page_count)d" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_tree.js:11 +msgid "Tree" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:570 addons/web/static/src/xml/base.xml:480 +msgid "Fields View Get" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:578 +#, python-format +msgid "View Log (%s)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:605 +#, python-format +msgid "Model %s fields" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:615 addons/web/static/src/xml/base.xml:482 +msgid "Manage Views" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:616 +msgid "Could not find current view declaration" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:716 +msgid "Print" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:717 +msgid "Attachment" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:718 addons/web/static/src/xml/base.xml:276 +msgid "More" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:810 +msgid "Translate" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:812 +msgid "Technical translation" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:924 +msgid "You must choose at least one record." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:875 +msgid "Uploading..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:885 +msgid "Do you really want to delete this attachment ?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/views.js:962 +msgid "Translations" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:52 +msgid "Loading..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:251 +msgid "" +"Your version of OpenERP is unsupported. Support & maintenance services are " +"available here:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:251 +msgid "OpenERP Entreprise" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:256 +msgid "OpenERP Enterprise Contract." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:257 +msgid "Your report will be sent to the OpenERP Enterprise team." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:259 +msgid "Summary:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:263 +msgid "Description:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:267 +msgid "What you did:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:297 +msgid "Invalid username or password" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:116 +#: addons/web/static/src/xml/base.xml:150 +#: addons/web/static/src/xml/base.xml:301 +msgid "Database:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:306 +msgid "Username" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:308 +#: addons/web/static/src/xml/base.xml:331 +msgid "Password" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:310 +msgid "Log in" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:314 +msgid "Manage Databases" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315 +msgid "Powered by" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315 +#: addons/web/static/src/xml/base.xml:1819 +msgid "OpenERP" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:132 +#: addons/web/static/src/xml/base.xml:328 +msgid "Drop" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:166 +#: addons/web/static/src/xml/base.xml:329 +msgid "Backup" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:195 +#: addons/web/static/src/xml/base.xml:330 +msgid "Restore" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:332 +msgid "Back to Login" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:61 +msgid "CREATE DATABASE" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:68 addons/web/static/src/xml/base.xml:211 +msgid "Master password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:72 addons/web/static/src/xml/base.xml:191 +msgid "New database name:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:77 +msgid "Load Demonstration data:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:81 +msgid "Default language:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:91 +msgid "Admin password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:95 +msgid "Confirm password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:109 +msgid "DROP DATABASE" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:128 +#: addons/web/static/src/xml/base.xml:162 +#: addons/web/static/src/xml/base.xml:187 +msgid "Master Password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:143 +msgid "BACKUP DATABASE" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:175 +msgid "RESTORE DATABASE" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:182 +msgid "File:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:204 +msgid "CHANGE MASTER PASSWORD" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:216 +msgid "New master password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:221 +msgid "Confirm new master password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:325 +msgid "About OpenERP" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:327 +msgid "Log out" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:333 +msgid "Activate the developer mode" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1820 +msgid "Version" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1821 +msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1822 +msgid "OpenERP is a trademark of the" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1823 +msgid "OpenERP SA Company" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1825 +msgid "Licenced under the terms of" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1826 +msgid "GNU Affero General Public License" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1828 +msgid "For more information visit" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1829 +msgid "OpenERP.com" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1720 +msgid "Old Password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1725 +msgid "New Password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1730 +msgid "Confirm Password:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:390 +msgid "Open" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:390 +msgid "ERP" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:477 +msgid "Debug View#" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:478 +msgid "View Log (perm_read)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:450 +msgid "Toggle Form Layout Outline" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:479 +msgid "View Fields" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1300 +msgid "Manage Filters" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:483 +msgid "View" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:484 +msgid "Edit SearchView" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:485 +msgid "Edit Action" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:486 +msgid "Edit Workflow" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:491 +msgid "ID:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:494 +msgid "XML ID:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:497 +msgid "Creation User:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:500 +msgid "Creation Date:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:503 +msgid "Latest Modification by:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:506 +msgid "Latest Modification Date:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:518 +msgid "Delete this attachment" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:523 +msgid "/web/binary/upload_attachment" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:527 +msgid "Add..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:622 +#: addons/web/static/src/xml/base.xml:687 +msgid "or" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:687 +msgid "Discard" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:806 +msgid "Default:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:823 +msgid "Condition:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:842 +msgid "Only you" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:849 +msgid "All users" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:856 +msgid "Unhandled widget" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:936 +msgid "(nolabel)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:941 +msgid "Field:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:945 +msgid "Object:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:949 +msgid "Type:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:953 +msgid "Widget:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:957 +msgid "Size:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:961 +msgid "Context:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:965 +msgid "Domain:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:910 +#: addons/web/static/src/xml/base.xml:969 +msgid "Modifiers:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:973 +msgid "Change default:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:977 +msgid "On change:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:981 +msgid "Relation:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:985 +msgid "Selection:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1040 +msgid "Open this resource" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1063 +msgid "Select date" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:948 +msgid "Open Resource" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1162 +#: addons/web/static/src/xml/base.xml:1205 +msgid "Set Image" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/view_form.js:1620 +#: addons/web/static/src/xml/base.xml:1170 +#: addons/web/static/src/xml/base.xml:1220 +#: addons/web/static/src/xml/base.xml:1222 +#: addons/web/static/src/xml/base.xml:1279 +msgid "Clear" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1179 +#: addons/web/static/src/xml/base.xml:1230 +msgid "Uploading ..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1066 +msgid "width: 83px;" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1207 +#: addons/web/static/src/xml/base.xml:1501 +msgid "Select" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1214 +#: addons/web/static/src/xml/base.xml:1216 +msgid "Save As" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1245 +msgid "Button" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1248 +msgid "(no string)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1255 +msgid "Special:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1260 +msgid "Button Type:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1264 +msgid "Method:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1268 +msgid "Action ID:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:542 +msgid "Field" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1205 +msgid "Advanced Search..." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1287 +msgid "-- Filters --" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1296 +msgid "-- Actions --" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1297 +msgid "Add Advanced Filter" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1298 +msgid "Save Filter" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1305 +msgid "Filter Name:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1307 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1376 +msgid "Custom Filters" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1379 +msgid "Save current filter" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1381 +msgid "Filter name" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1383 +msgid "Share with all users" +msgstr "" + +#. openerp-web +#: addons/web/static/src/js/search.js:298 +#: addons/web/static/src/xml/base.xml:1299 +msgid "Add to Dashboard" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1394 +msgid "Title of new Dashboard item" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1395 +msgid "save" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1399 +msgid "Select Dashboard to add this filter to" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1406 +msgid "Advanced Search" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1411 +msgid "Add a condition" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1412 +msgid "Apply" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1509 +msgid "Save & New" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1510 +msgid "Save & Close" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1617 +msgid "" +"This wizard will export all data that matches the current search criteria to " +"a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1624 +msgid "Export Type:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1626 +msgid "Import Compatible Export" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1627 +msgid "Export all Data" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1630 +msgid "Export Formats" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1636 +msgid "Available fields" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1638 +msgid "Fields to export" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1640 +msgid "Save fields list" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1654 +msgid "Remove All" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1666 +msgid "Name" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1699 +msgid "Save as:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1706 +msgid "Saved exports:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1748 +msgid "1. Import a .CSV file" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1749 +msgid "" +"Select a .CSV file to import. If you need a sample of file to import,\n" +" you should use the export tool with the \"Import Compatible\" option." +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1753 +msgid "CSV File:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1756 +msgid "2. Check your file format" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1759 +msgid "Import Options" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1763 +msgid "Does your file have titles?" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1769 +msgid "Separator:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1771 +msgid "Delimiter:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1775 +msgid "Encoding:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1778 +msgid "UTF-8" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1779 +msgid "Latin 1" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1782 +msgid "Lines to skip" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1782 +msgid "" +"For use if CSV files have titles on multiple lines, skips more than a single " +"line during import" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1713 +msgid "--- Don't Import ---" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1809 +msgid "The import failed due to:" +msgstr "" + +#. openerp-web +#: addons/web/static/src/xml/base.xml:1811 +msgid "Here is a preview of the file we could not import:" +msgstr "" diff --git a/addons/web_process/i18n/nb.po b/addons/web_process/i18n/nb.po index 021bbfbf3f4..977d690db7d 100644 --- a/addons/web_process/i18n/nb.po +++ b/addons/web_process/i18n/nb.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-07-02 09:06+0200\n" -"PO-Revision-Date: 2012-03-29 11:39+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-07-24 06:25+0000\n" +"Last-Translator: Tor Syversen \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-03 05:55+0000\n" -"X-Generator: Launchpad (build 15531)\n" +"X-Launchpad-Export-Date: 2012-07-25 04:52+0000\n" +"X-Generator: Launchpad (build 15679)\n" #. openerp-web #: addons/web_process/static/src/js/process.js:261 @@ -85,12 +85,12 @@ msgstr "Notater:" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:59 msgid "Last modified by:" -msgstr "" +msgstr "Sist revidert av:" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:59 msgid "N/A" -msgstr "" +msgstr "N/A" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:62 @@ -105,7 +105,7 @@ msgstr "" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:88 msgid "Select Process" -msgstr "" +msgstr "Velg prosess" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:98 @@ -115,4 +115,4 @@ msgstr "Velg" #. openerp-web #: addons/web_process/static/src/xml/web_process.xml:109 msgid "Edit Process" -msgstr "" +msgstr "Rediger prosess" From a4f1ce69ab01818fce1a23fc3744865bcc4fd85c Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 25 Jul 2012 10:04:39 +0200 Subject: [PATCH 102/112] [FIX] throbber use an image. fva will fix the aliasing. Also check http://commons.wikimedia.org/wiki/Category:Throbbers bzr revid: al@openerp.com-20120725080439-j7f44tb0fbp90cm0 --- addons/web/__openerp__.py | 1 - addons/web/static/src/img/throbber.gif | Bin 673 -> 7625 bytes addons/web/static/src/js/coresetup.js | 28 ++----------------------- 3 files changed, 2 insertions(+), 27 deletions(-) diff --git a/addons/web/__openerp__.py b/addons/web/__openerp__.py index 4051e607e21..9e8e258dedc 100644 --- a/addons/web/__openerp__.py +++ b/addons/web/__openerp__.py @@ -20,7 +20,6 @@ "static/lib/jquery.form/jquery.form.js", "static/lib/jquery.validate/jquery.validate.js", "static/lib/jquery.ba-bbq/jquery.ba-bbq.js", - "static/lib/spinjs/spin.js", "static/lib/jquery.blockUI/jquery.blockUI.js", "static/lib/jquery.ui/js/jquery-ui-1.8.17.custom.min.js", "static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js", diff --git a/addons/web/static/src/img/throbber.gif b/addons/web/static/src/img/throbber.gif index ded8d36d48686558e7fd498eff3b6cc47b8a648a..7ab8346ce0957a729a712adc2a61a97166f4252c 100644 GIT binary patch literal 7625 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 Xg4?%qdPUWwYT9a|!Y_kc)<66=+QS-Y literal 673 zcmZ?wbhEHb6krfw_{6~Q|NnnuW8-t@&ZVcP0~w8tjk9LWTE2X_;(u;G*N|Xm#{gF& zJp*P&1_lPje^Smxsfi`2DGKG8B^e5dS&0=n`H3ldnR#jX42nNlIJtnTbbuIWv;YGG zvoXi6JO2z$d1ebIb69am&SCePk;dt|(eThNk(md#=_MRFRCqx*TEg<~GImP|9(J$n z=N>>?FwHRmnd8@^s36_KvwOp{E|)^5z>ow(NreO-*J!B~H8NXE@4royU~f>kF7c?% zS#p!Aik1*IgUmQ~87XU@ay&8N%#<*Fw$@}BzAut~A3dECXRI!e`M`B%^In-_E3}y+ z--`cXY(C6yv@%6%{(cs0Mgjenq^f<&sBPk#Ibrdw-OD&z6?s?;UD^|61XsB=ZMZ1U zoD>xM*;d}bLPx6q#F8RQAFO^e;@DNBuI=?aMdX9TXP-tMwX(wrF-aj)T3dF?Wkfn@ zoe-L1lcsR Date: Wed, 25 Jul 2012 10:25:39 +0200 Subject: [PATCH 103/112] [FIX] account: bank statement, fixed some glitches in previous refactoring (unknown variables 'st' and 'res_currency_obj') + code optimization and refactoring bzr revid: qdp-launchpad@openerp.com-20120725082539-qqi2jrr35xgz37z5 --- addons/account/account_bank_statement.py | 75 ++++++++---------------- 1 file changed, 26 insertions(+), 49 deletions(-) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index b9fbc3727a0..11bcf565260 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -184,15 +184,14 @@ class account_bank_statement(osv.osv): :param char st_line_number: will be used as the name of the generated account move :return: dict of value to create() the account.move """ - move_vals = { + return { 'journal_id': st_line.statement_id.journal_id.id, 'period_id': st_line.statement_id.period_id.id, 'date': st_line.date, 'name': st_line_number, 'ref': st_line.ref, } - return move_vals - + def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, context=None): """Compute the args to build the dict of values to create the bank move line from a @@ -213,17 +212,15 @@ class account_bank_statement(osv.osv): cur_id = False amt_cur = False if st_line.statement_id.currency.id <> company_currency_id: - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st.currency.id, amount, context=context) - amt_cur = -amount_cur + cur_id = st_line.statement_id.currency.id if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id: cur_id = st_line.account_id.currency_id.id - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st_line.account_id.currency_id.id, amount, context=context) - amt_cur = -amount_cur - + if cur_id: + res_currency_obj = self.pool.get('res.currency') + amt_cur = -res_currency_obj.compute(cr, uid, company_currency_id, cur_id, amount, context=context) + res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, - amount_currency=amt_cur, currency_id=cur_id, analytic_id = anl_id, context=context) + amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context) return res def _get_counter_part_account(sefl, cr, uid, st_line, context=None): @@ -235,12 +232,9 @@ class account_bank_statement(osv.osv): create the move from. :return: int/long of the account.account to use as counterpart """ - account_id = False if st_line.amount >= 0: - account_id = st_line.statement_id.journal_id.default_credit_account_id.id - else: - account_id = st_line.statement_id.journal_id.default_debit_account_id.id - return account_id + return st_line.statement_id.journal_id.default_credit_account_id.id + return st_line.statement_id.journal_id.default_debit_account_id.id def _get_counter_part_partner(sefl, cr, uid, st_line, context=None): """Retrieve the partner to use in the counterpart move. @@ -251,9 +245,7 @@ class account_bank_statement(osv.osv): create the move from. :return: int/long of the res.partner to use as counterpart """ - partner_id = ((st_line.partner_id) and st_line.partner_id.id) or False - return partner_id - + return st_line.partner_id and st_line.partner_id.id or False def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, context=None): @@ -279,11 +271,10 @@ class account_bank_statement(osv.osv): if st_line.statement_id.currency.id <> company_currency_id: amt_cur = st_line.amount cur_id = st_line.statement_id.currency.id - res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, + return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, amount_currency = amt_cur, currency_id = cur_id, account_id = account_id, partner_id = partner_id, context=context) - return res - + def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False, amount_currency= False, account_id = False, analytic_id = False, partner_id = False, context=None): @@ -305,23 +296,10 @@ class account_bank_statement(osv.osv): :param int/long partner_id: ID of the partner to put on the move line :return: dict of value to create() the account.move.line """ - acc_id = (st_line.account_id) and st_line.account_id.id - cur_id = st_line.statement_id.currency.id - par_id = ((st_line.partner_id) and st_line.partner_id.id) or False - anl_acc_id = False - am_curr = False - amount_currency = False - if account_id: - acc_id = account_id - if currency_id: - cur_id = currency_id - if amount_currency: - am_curr = amount_currency - if analytic_id: - anl_acc_id = analytic_id - if partner_id: - par_id = partner_id - ml_val = { + acc_id = account_id or st_line.account_id.id + cur_id = currency_id or st_line.statement_id.currency.id + par_id = partner_id or (((st_line.partner_id) and st_line.partner_id.id) or False) + return { 'name': st_line.name, 'date': st_line.date, 'ref': st_line.ref, @@ -334,15 +312,14 @@ class account_bank_statement(osv.osv): 'journal_id': st_line.statement_id.journal_id.id, 'period_id': st_line.statement_id.period_id.id, 'currency_id': cur_id, - 'amount_currency': am_curr, - 'analytic_account_id': anl_acc_id, + 'amount_currency': amount_currency, + 'analytic_account_id': analytic_id, } - return ml_val def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None): - """Create the account move from the statement line using the _prepare_bank_move_line and - _prepare_counterpart_move_line hook methods. - :param int/long st_line: ID of the account.bank.statement.line to create the move from. + """Create the account move from the statement line. + + :param int/long st_line_id: ID of the account.bank.statement.line to create the move from. :param int/long company_currency_id: ID of the res.currency of the company :param char st_line_number: will be used as the name of the generated account move :return: ID of the account.move created @@ -373,14 +350,14 @@ class account_bank_statement(osv.osv): amount = res_currency_obj.compute(cr, uid, st.currency.id, company_currency_id, st_line.amount, context=context) - bank_move_val = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount, + bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount, company_currency_id, context=context) - move_line_id = account_move_line_obj.create(cr, uid, bank_move_val, context=context) + move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context) torec.append(move_line_id) - counterpart_move_val = self._prepare_counterpart_move_line(cr, uid, st_line, move_id, + counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id, amount, company_currency_id, context=context) - account_move_line_obj.create(cr, uid, counterpart_move_val, context=context) + account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context) for line in account_move_line_obj.browse(cr, uid, [x.id for x in account_move_obj.browse(cr, uid, move_id, From 175d5ff509e66d9d9014a19a6a4493c4a8d1d182 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 25 Jul 2012 14:35:43 +0200 Subject: [PATCH 104/112] [IMP] added option "no_open" in m2o bzr revid: nicolas.vanhoren@openerp.com-20120725123543-fzzefu57lwy5xksd --- addons/web/static/src/js/view_form.js | 7 ++++--- addons/web/static/src/xml/base.xml | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 835527b3135..f8f09ae2762 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2818,10 +2818,11 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc if (follow) link += "
"; } - this.$element.find('a') + var $link = this.$element.find('.oe_form_uri') .unbind('click') - .html(link) - .click(function () { + .html(link); + if (! this.get_definition_options().no_open) + $link.click(function () { self.do_action({ type: 'ir.actions.act_window', res_model: self.field.relation, diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 5d55a0ece15..4ce36fe86d4 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -955,11 +955,13 @@ - + + - / + /
Date: Wed, 25 Jul 2012 14:36:34 +0200 Subject: [PATCH 105/112] [FIX] forgot to add spin.js bzr revid: nicolas.vanhoren@openerp.com-20120725123634-y3qy8epzkps3gxi6 --- addons/web/static/lib/spinjs/spin.js | 306 +++++++++++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 addons/web/static/lib/spinjs/spin.js diff --git a/addons/web/static/lib/spinjs/spin.js b/addons/web/static/lib/spinjs/spin.js new file mode 100644 index 00000000000..d8e21786a1f --- /dev/null +++ b/addons/web/static/lib/spinjs/spin.js @@ -0,0 +1,306 @@ +//fgnass.github.com/spin.js#v1.2.5 +(function(window, document, undefined) { + +/** + * Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de] + * Licensed under the MIT license + */ + + var prefixes = ['webkit', 'Moz', 'ms', 'O']; /* Vendor prefixes */ + var animations = {}; /* Animation rules keyed by their name */ + var useCssAnimations; + + /** + * Utility function to create elements. If no tag name is given, + * a DIV is created. Optionally properties can be passed. + */ + function createEl(tag, prop) { + var el = document.createElement(tag || 'div'); + var n; + + for(n in prop) { + el[n] = prop[n]; + } + return el; + } + + /** + * Appends children and returns the parent. + */ + function ins(parent /* child1, child2, ...*/) { + for (var i=1, n=arguments.length; i> 1) : o.left+mid) + 'px', + top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : o.top+mid) + 'px' + }); + } + + el.setAttribute('aria-role', 'progressbar'); + self.lines(el, self.opts); + + if (!useCssAnimations) { + // No CSS animation support, use setTimeout() instead + var i = 0; + var fps = o.fps; + var f = fps/o.speed; + var ostep = (1-o.opacity)/(f*o.trail / 100); + var astep = f/o.lines; + + !function anim() { + i++; + for (var s=o.lines; s; s--) { + var alpha = Math.max(1-(i+s*astep)%f * ostep, o.opacity); + self.opacity(el, o.lines-s, alpha, o); + } + self.timeout = self.el && setTimeout(anim, ~~(1000/fps)); + }(); + } + return self; + }, + stop: function() { + var el = this.el; + if (el) { + clearTimeout(this.timeout); + if (el.parentNode) el.parentNode.removeChild(el); + this.el = undefined; + } + return this; + }, + lines: function(el, o) { + var i = 0; + var seg; + + function fill(color, shadow) { + return css(createEl(), { + position: 'absolute', + width: (o.length+o.width) + 'px', + height: o.width + 'px', + background: color, + boxShadow: shadow, + transformOrigin: 'left', + transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)', + borderRadius: (o.width>>1) + 'px' + }); + } + for (; i < o.lines; i++) { + seg = css(createEl(), { + position: 'absolute', + top: 1+~(o.width/2) + 'px', + transform: o.hwaccel ? 'translate3d(0,0,0)' : '', + opacity: o.opacity, + animation: useCssAnimations && addAnimation(o.opacity, o.trail, i, o.lines) + ' ' + 1/o.speed + 's linear infinite' + }); + if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'})); + ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)'))); + } + return el; + }, + opacity: function(el, i, val) { + if (i < el.childNodes.length) el.childNodes[i].style.opacity = val; + } + }); + + ///////////////////////////////////////////////////////////////////////// + // VML rendering for IE + ///////////////////////////////////////////////////////////////////////// + + /** + * Check and init VML support + */ + !function() { + + function vml(tag, attr) { + return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr); + } + + var s = css(createEl('group'), {behavior: 'url(#default#VML)'}); + + if (!vendor(s, 'transform') && s.adj) { + + // VML support detected. Insert CSS rule ... + sheet.addRule('.spin-vml', 'behavior:url(#default#VML)'); + + Spinner.prototype.lines = function(el, o) { + var r = o.length+o.width; + var s = 2*r; + + function grp() { + return css(vml('group', {coordsize: s +' '+s, coordorigin: -r +' '+-r}), {width: s, height: s}); + } + + var margin = -(o.width+o.length)*2+'px'; + var g = css(grp(), {position: 'absolute', top: margin, left: margin}); + + var i; + + function seg(i, dx, filter) { + ins(g, + ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}), + ins(css(vml('roundrect', {arcsize: 1}), { + width: r, + height: o.width, + left: o.radius, + top: -o.width>>1, + filter: filter + }), + vml('fill', {color: o.color, opacity: o.opacity}), + vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change + ) + ) + ); + } + + if (o.shadow) { + for (i = 1; i <= o.lines; i++) { + seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)'); + } + } + for (i = 1; i <= o.lines; i++) seg(i); + return ins(el, g); + }; + Spinner.prototype.opacity = function(el, i, val, o) { + var c = el.firstChild; + o = o.shadow && o.lines || 0; + if (c && i+o < c.childNodes.length) { + c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild; + if (c) c.opacity = val; + } + }; + } + else { + useCssAnimations = vendor(s, 'animation'); + } + }(); + + window.Spinner = Spinner; + +})(window, document); \ No newline at end of file From 03ea71a4aa199b7a60628d8e22fdd196c2cbceb9 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 25 Jul 2012 14:47:57 +0200 Subject: [PATCH 106/112] [IMP] cosmetic improvement in partner view bzr revid: nicolas.vanhoren@openerp.com-20120725124757-hwd01ddf5emsudau --- openerp/addons/base/res/res_partner_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index 3cced9eb64a..8c883301f11 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -149,7 +149,7 @@ + options='{"no_open": true}' attrs="{'invisible': [('is_company','=', True)]}" /> From 00ca8067a9e953fa4aa21080fbf91e98516c222d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 25 Jul 2012 15:37:40 +0200 Subject: [PATCH 107/112] [FIX] re-enable thobber that was desactivated due to previous bug bzr revid: nicolas.vanhoren@openerp.com-20120725133740-m06but4htp4bkb1q --- addons/web/__openerp__.py | 1 + addons/web/static/src/img/throbber.gif | Bin 7625 -> 673 bytes addons/web/static/src/js/coresetup.js | 28 +++++++++++++++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/addons/web/__openerp__.py b/addons/web/__openerp__.py index 9e8e258dedc..4051e607e21 100644 --- a/addons/web/__openerp__.py +++ b/addons/web/__openerp__.py @@ -20,6 +20,7 @@ "static/lib/jquery.form/jquery.form.js", "static/lib/jquery.validate/jquery.validate.js", "static/lib/jquery.ba-bbq/jquery.ba-bbq.js", + "static/lib/spinjs/spin.js", "static/lib/jquery.blockUI/jquery.blockUI.js", "static/lib/jquery.ui/js/jquery-ui-1.8.17.custom.min.js", "static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js", diff --git a/addons/web/static/src/img/throbber.gif b/addons/web/static/src/img/throbber.gif index 7ab8346ce0957a729a712adc2a61a97166f4252c..ded8d36d48686558e7fd498eff3b6cc47b8a648a 100644 GIT binary patch literal 673 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 Xg4?%qdPUWwYT9a|!Y_kc)<66=+QS-Y diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js index 9d365a0a2b3..24441dc509f 100644 --- a/addons/web/static/src/js/coresetup.js +++ b/addons/web/static/src/js/coresetup.js @@ -550,14 +550,38 @@ $.async_when = function() { /** Setup blockui */ if ($.blockUI) { $.blockUI.defaults.baseZ = 1100; - $.blockUI.defaults.message = ''; + $.blockUI.defaults.message = '
'; $.blockUI.defaults.css.border = '0'; $.blockUI.defaults.css["background-color"] = ''; + $.blockUI.spinners = []; } instance.web.blockUI = function() { - $.blockUI.apply($, arguments); + var tmp = $.blockUI.apply($, arguments); + var target = $(".oe_blockui_spin")[0]; + var opts = { + lines: 13, // The number of lines to draw + length: 7, // The length of each line + width: 4, // The line thickness + radius: 10, // The radius of the inner circle + rotate: 0, // The rotation offset + color: '#FFF', // #rgb or #rrggbb + speed: 1, // Rounds per second + trail: 60, // Afterglow percentage + shadow: false, // Whether to render a shadow + hwaccel: false, // Whether to use hardware acceleration + className: 'spinner', // The CSS class to assign to the spinner + zIndex: 2e9, // The z-index (defaults to 2000000000) + top: 'auto', // Top position relative to parent in px + left: 'auto' // Left position relative to parent in px + }; + var spinner = new Spinner(opts).spin(target); + $.blockUI.spinners.push(spinner); + return tmp; } instance.web.unblockUI = function() { + _.each($.blockUI.spinners, function(el) { + el.stop(); + }); return $.unblockUI.apply($, arguments); } From 82f87ca7f99ae0eb142dc9eaebba995e1447634a Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 25 Jul 2012 15:51:27 +0200 Subject: [PATCH 108/112] [IMP] stock: simplify double browse used for chaining relations bzr revid: rco@openerp.com-20120725135127-6y3km4b35ebx96lr --- addons/stock/stock.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 59ca3af6287..6d8f6bb6fec 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1728,9 +1728,8 @@ class stock_move(osv.osv): return location_id def _default_destination_address(self, cr, uid, context=None): - company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id - partner_id = self.pool.get('res.company').browse(cr, uid, company_id, context=context).partner_id.id - return partner_id + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + return user.company_id.partner_id.id _defaults = { 'location_id': _default_location_source, From c24ce8448d7c03f842a0c56c9f224a201884b6a4 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 25 Jul 2012 16:30:16 +0200 Subject: [PATCH 109/112] [IMP] stock: fix groups in views bzr revid: rco@openerp.com-20120725143016-aukz7yf3ksw94qsx --- addons/stock/stock_view.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index f23437de3dc..d4acd4906ad 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -1266,21 +1266,23 @@ - + - -