[MERGE]: merging from the same branch
bzr revid: mga@tinyerp.com-20100624082525-1dx0uj8fq5o5pddh
This commit is contained in:
+47
-46
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-04-11 21:46+0000\n"
|
||||
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:24+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:06+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
@@ -60,7 +61,7 @@ msgstr "Nombre de modelo inválido en la definición de acción."
|
||||
#. module: account
|
||||
#: help:account.journal,currency:0
|
||||
msgid "The currency used to enter statement"
|
||||
msgstr "La moneda utilizada para introducir asientos"
|
||||
msgstr "La divisa utilizada para introducir asientos."
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account_use_models,init_form:0
|
||||
@@ -456,7 +457,7 @@ msgstr "Estado"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree13
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree13
|
||||
msgid "Unpaid Supplier Refunds"
|
||||
msgstr "Facturas de abono de proveedor sin pagar"
|
||||
msgstr "Facturas rectificativas (abono) de proveedor sin pagar"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
@@ -1232,10 +1233,10 @@ msgid ""
|
||||
"software system you may have to use the rate at date. Incoming transactions "
|
||||
"always use the rate at date."
|
||||
msgstr ""
|
||||
"Permite seleccionar la forma en que la tasa de la moneda actual de las "
|
||||
"transacciones de salida se calcula. En la mayoría de los países el método "
|
||||
"legal es \"Promedio\", pero sólo unos pocos sistemas de software son capaces "
|
||||
"de gestionarlo. Por lo tanto, si la importación procede de otro sistema de "
|
||||
"Permite seleccionar la forma en que se calcula la tasa de la divisa actual "
|
||||
"en las transacciones de salida. En la mayoría de los países el método legal "
|
||||
"es \"Promedio\", pero sólo unos pocos sistemas de software son capaces de "
|
||||
"gestionarlo. Por lo tanto, si la importación procede de otro sistema de "
|
||||
"software, es posible que tenga que utilizar la tasa \"En fecha\". Las "
|
||||
"transacciones de entrada siempre utilizan la tasa \"En fecha\"."
|
||||
|
||||
@@ -1887,7 +1888,7 @@ msgstr "Fecha inicial"
|
||||
#. module: account
|
||||
#: model:account.journal,name:account.refund_expenses_journal
|
||||
msgid "x Expenses Credit Notes Journal"
|
||||
msgstr "x Diario facturas de abono de gastos"
|
||||
msgstr "x Diario facturas rectificativas (abono) de gastos"
|
||||
|
||||
#. module: account
|
||||
#: field:account.analytic.journal,type:0
|
||||
@@ -1914,7 +1915,7 @@ msgstr "Base imponible"
|
||||
#: field:account.tax,account_collected_id:0
|
||||
#: field:account.tax.template,account_collected_id:0
|
||||
msgid "Invoice Tax Account"
|
||||
msgstr "Cuenta impuestos de factura"
|
||||
msgstr "Cuenta impuestos de facturas"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.line:0
|
||||
@@ -2026,7 +2027,7 @@ msgstr "Informe analítico de diario"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree3
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree3
|
||||
msgid "Customer Refunds"
|
||||
msgstr "Facturas de abono de cliente"
|
||||
msgstr "Facturas rectificativas (abono) de cliente"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.vat.declaration:0
|
||||
@@ -2047,7 +2048,7 @@ msgstr "Nombre diario-período"
|
||||
#: field:account.tax.code,name:0
|
||||
#: field:account.tax.code.template,name:0
|
||||
msgid "Tax Case Name"
|
||||
msgstr "Nombre impuesto del caso"
|
||||
msgstr "Nombre código de impuesto"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal,entry_posted:0
|
||||
@@ -2114,7 +2115,7 @@ msgstr "Comentario situacion fiscal"
|
||||
#. module: account
|
||||
#: wizard_field:account.fiscalyear.close,init,period_id:0
|
||||
msgid "Opening Entries Period"
|
||||
msgstr "Periodo asientos de apertura"
|
||||
msgstr "Período asientos de apertura"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves
|
||||
@@ -2145,7 +2146,7 @@ msgstr "Anterior"
|
||||
#: field:account.model.line,currency_id:0
|
||||
#: field:account.move.line,currency_id:0
|
||||
msgid "Currency"
|
||||
msgstr "Moneda"
|
||||
msgstr "Divisa"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened
|
||||
@@ -2225,7 +2226,7 @@ msgstr "Facturas de proveedor en borrador"
|
||||
#. module: account
|
||||
#: wizard_field:account.invoice.refund,init,period:0
|
||||
msgid "Force period"
|
||||
msgstr "Forzar periodo"
|
||||
msgstr "Forzar período"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account.type,close_method:0
|
||||
@@ -2306,7 +2307,7 @@ msgstr "Fecha factura"
|
||||
#: help:account.third_party_ledger.report,init,periods:0
|
||||
#: help:account.vat.declaration,init,periods:0
|
||||
msgid "All periods if empty"
|
||||
msgstr "Todos los periodos si está vacío"
|
||||
msgstr "Todos los períodos si está vacío."
|
||||
|
||||
#. module: account
|
||||
#: model:account.account.type,name:account.account_type_liability
|
||||
@@ -2530,7 +2531,7 @@ msgstr "Asientos conciliados"
|
||||
#. module: account
|
||||
#: help:account.bank.statement.reconcile,total_second_amount:0
|
||||
msgid "The amount in the currency of the journal"
|
||||
msgstr "La cantidad en la moneda del diario"
|
||||
msgstr "El importe en la divisa del diario."
|
||||
|
||||
#. module: account
|
||||
#: wizard_field:account.general.ledger.report,checktype,landscape:0
|
||||
@@ -2928,7 +2929,7 @@ msgstr "Estado abierto"
|
||||
#. module: account
|
||||
#: field:account.journal,entry_posted:0
|
||||
msgid "Skip 'Draft' State for Created Entries"
|
||||
msgstr "Omitir el estado 'Borrador ' para los asientos creados"
|
||||
msgstr "Omitir estado 'Borrador ' al crear asientos"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.tax,account_id:0
|
||||
@@ -2964,7 +2965,7 @@ msgstr "1cm 27.7cm 20cm 27.7cm"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree12
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree12
|
||||
msgid "Draft Supplier Refunds"
|
||||
msgstr "Facturas de abono de proveedor en borrador"
|
||||
msgstr "Facturas rectificativas (abono) de proveedor en borrador"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,name:account.process_node_accountingstatemententries0
|
||||
@@ -3051,7 +3052,7 @@ msgstr "Tasa de divisas de salida"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree10
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree10
|
||||
msgid "Draft Customer Refunds"
|
||||
msgstr "Facturas de abono de cliente en borrador"
|
||||
msgstr "Facturas rectificativas (abono) de cliente en borrador"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal.column,readonly:0
|
||||
@@ -3084,7 +3085,7 @@ msgstr "Documento"
|
||||
#. module: account
|
||||
#: help:account.move.line,move_id:0
|
||||
msgid "The move of this entry line."
|
||||
msgstr "El movimiento de esta línea del asiento."
|
||||
msgstr "El asiento de este apunte."
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.line,uos_id:0
|
||||
@@ -3234,7 +3235,7 @@ msgstr "Diario de banco"
|
||||
#: selection:account.partner.balance.report,init,state:0
|
||||
#: selection:account.third_party_ledger.report,init,state:0
|
||||
msgid "By Date and Period"
|
||||
msgstr "Por fecha y periodo"
|
||||
msgstr "Por fecha y período"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -3343,7 +3344,7 @@ msgstr "Nombre impuesto"
|
||||
#. module: account
|
||||
#: wizard_view:account.fiscalyear.close.state,init:0
|
||||
msgid " Close states of Fiscal year and periods"
|
||||
msgstr " Cerrar estados de ejercicio fiscal y periodos"
|
||||
msgstr " Cerrar estados de ejercicio fiscal y períodos"
|
||||
|
||||
#. module: account
|
||||
#: model:account.payment.term,name:account.account_payment_term
|
||||
@@ -3540,7 +3541,7 @@ msgstr "Titular de la cuenta bancaria"
|
||||
#: wizard_view:account.partner.balance.report,init:0
|
||||
#: wizard_view:account.third_party_ledger.report,init:0
|
||||
msgid "Filter on Periods"
|
||||
msgstr "Filtrar por periodos"
|
||||
msgstr "Filtrar por períodos"
|
||||
|
||||
#. module: account
|
||||
#: field:res.partner,property_account_receivable:0
|
||||
@@ -3608,7 +3609,7 @@ msgstr "Impreso"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree4_new
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree4_new
|
||||
msgid "New Supplier Refund"
|
||||
msgstr "Nueva factura de abono de proveedor"
|
||||
msgstr "Nueva factura rectificativa (abono) de proveedor"
|
||||
|
||||
#. module: account
|
||||
#: view:account.model:0
|
||||
@@ -3618,7 +3619,7 @@ msgstr "Modelo de asiento"
|
||||
#. module: account
|
||||
#: wizard_field:account.general.ledger.report,checktype,amount_currency:0
|
||||
msgid "With Currency"
|
||||
msgstr "Con moneda"
|
||||
msgstr "Con divisa"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -3723,7 +3724,7 @@ msgstr "Codificación asiento"
|
||||
#: wizard_view:account.invoice.refund,init:0
|
||||
#: model:ir.actions.wizard,name:account.wizard_invoice_refund
|
||||
msgid "Credit Note"
|
||||
msgstr "Factura de abono"
|
||||
msgstr "Factura rectificativa (abono)"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.todo,note:account.config_fiscalyear
|
||||
@@ -3869,7 +3870,7 @@ msgstr "Secuencia del asiento"
|
||||
#: selection:account.account,type:0
|
||||
#: selection:account.account.template,type:0
|
||||
msgid "Closed"
|
||||
msgstr "Cerrado"
|
||||
msgstr "Cierre"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,name:account.process_node_paymententries0
|
||||
@@ -3925,7 +3926,7 @@ msgstr "Movimiento"
|
||||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
msgid "These periods can overlap."
|
||||
msgstr "Estos periodos se pueden solapar."
|
||||
msgstr "Estos períodos se pueden solapar."
|
||||
|
||||
#. module: account
|
||||
#: help:product.template,property_account_expense:0
|
||||
@@ -3953,7 +3954,7 @@ msgstr "Diarios financieros"
|
||||
#: selection:account.partner.balance.report,init,state:0
|
||||
#: selection:account.third_party_ledger.report,init,state:0
|
||||
msgid "By Period"
|
||||
msgstr "Por periodo"
|
||||
msgstr "Por período"
|
||||
|
||||
#. module: account
|
||||
#: help:account.invoice,date_invoice:0
|
||||
@@ -4051,7 +4052,7 @@ msgstr "Cuenta a pagar"
|
||||
#: field:account.account,currency_id:0
|
||||
#: field:account.account.template,currency_id:0
|
||||
msgid "Secondary Currency"
|
||||
msgstr "Moneda secundaria"
|
||||
msgstr "Divisa secundaria"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account,credit:0
|
||||
@@ -4086,7 +4087,7 @@ msgstr ""
|
||||
#: field:account.tax,account_paid_id:0
|
||||
#: field:account.tax.template,account_paid_id:0
|
||||
msgid "Refund Tax Account"
|
||||
msgstr "Cuenta impuestos de devoluciones"
|
||||
msgstr "Cuenta impuestos de reintegros"
|
||||
|
||||
#. module: account
|
||||
#: field:account.tax.code,child_ids:0
|
||||
@@ -4166,7 +4167,7 @@ msgstr "Límite a pagar"
|
||||
#: wizard_field:account.partner.balance.report,init,state:0
|
||||
#: wizard_field:account.third_party_ledger.report,init,state:0
|
||||
msgid "Date/Period Filter"
|
||||
msgstr "Filtrar fecha/periodo"
|
||||
msgstr "Filtrar por fecha/período"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.journal:0
|
||||
@@ -4189,7 +4190,7 @@ msgstr "Secuencias de diarios separadas"
|
||||
#. module: account
|
||||
#: help:account.bank.statement.reconcile,total_second_currency:0
|
||||
msgid "The currency of the journal"
|
||||
msgstr "La moneda del diario"
|
||||
msgstr "La divisa del diario"
|
||||
|
||||
#. module: account
|
||||
#: view:account.journal.column:0
|
||||
@@ -4432,7 +4433,7 @@ msgstr "Fijado"
|
||||
#: view:account.tax:0
|
||||
#: view:account.tax.template:0
|
||||
msgid "Credit Notes"
|
||||
msgstr "Facturas de abono"
|
||||
msgstr "Facturas rectificativas (abono)"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.wizard,date2:0
|
||||
@@ -4502,7 +4503,7 @@ msgstr "Línea del modelo de asiento"
|
||||
#. module: account
|
||||
#: view:account.tax.template:0
|
||||
msgid "Account Tax Template"
|
||||
msgstr "Plantilla de impuesto"
|
||||
msgstr "Plantilla de impuestos"
|
||||
|
||||
#. module: account
|
||||
#: help:account.model,name:0
|
||||
@@ -4624,7 +4625,7 @@ msgstr "Por fecha"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree4
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree4
|
||||
msgid "Supplier Refunds"
|
||||
msgstr "Facturas de abono de proveedor"
|
||||
msgstr "Facturas rectificativas (abono) de proveedor"
|
||||
|
||||
#. module: account
|
||||
#: help:account.model.line,date:0
|
||||
@@ -5129,7 +5130,7 @@ msgstr "Cuenta de ingresos en plantilla producto"
|
||||
#: help:account.account.template,currency_id:0
|
||||
msgid "Force all moves for this account to have this secondary currency."
|
||||
msgstr ""
|
||||
"Fuerza a todos los movimientos de esta cuenta que tengan esta moneda "
|
||||
"Fuerza a todos los movimientos de esta cuenta que tengan esta divisa "
|
||||
"secundaria."
|
||||
|
||||
#. module: account
|
||||
@@ -5143,7 +5144,7 @@ msgstr "_Cancelar"
|
||||
#: wizard_view:account.partner.balance.report,init:0
|
||||
#: wizard_view:account.third_party_ledger.report,init:0
|
||||
msgid "Select Date-Period"
|
||||
msgstr "Seleccionar fecha-periodo"
|
||||
msgstr "Seleccionar fecha-período"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.inverted.balance:0
|
||||
@@ -5172,7 +5173,7 @@ msgstr "Grupo de Impuestos"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree3_new
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree3_new
|
||||
msgid "New Customer Refund"
|
||||
msgstr "Nueva factura de abono de cliente"
|
||||
msgstr "Nueva factura rectificativa (abono) de cliente"
|
||||
|
||||
#. module: account
|
||||
#: help:wizard.multi.charts.accounts,seq_journal:0
|
||||
@@ -5370,7 +5371,7 @@ msgstr "Pagado"
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree11
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree11
|
||||
msgid "Unpaid Customer Refunds"
|
||||
msgstr "Facturas de abono de cliente sin pagar"
|
||||
msgstr "Facturas rectificativas (abono) de cliente sin pagar"
|
||||
|
||||
#. module: account
|
||||
#: help:account.invoice,residual:0
|
||||
@@ -5558,7 +5559,7 @@ msgstr "Saldo pendiente"
|
||||
#. module: account
|
||||
#: rml:account.invoice:0
|
||||
msgid "Refund"
|
||||
msgstr "Factura de abono"
|
||||
msgstr "Factura rectificativa (abono)"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_invoice_tax
|
||||
@@ -5795,7 +5796,7 @@ msgstr ""
|
||||
#: field:account.tax.code,code:0
|
||||
#: field:account.tax.code.template,code:0
|
||||
msgid "Case Code"
|
||||
msgstr "Código caso"
|
||||
msgstr "Código"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.automatic.reconcile,init,power:0
|
||||
@@ -5811,7 +5812,7 @@ msgstr "Cuenta de ingresos"
|
||||
#. module: account
|
||||
#: field:account.period,special:0
|
||||
msgid "Opening/Closing Period"
|
||||
msgstr "Periodo de apertura/cierre"
|
||||
msgstr "Período de apertura/cierre"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.balance:0
|
||||
@@ -5919,7 +5920,7 @@ msgstr "Dejarlo vacío para todos los ejercicios fiscales abiertos"
|
||||
#: rml:account.invoice:0
|
||||
#: selection:account.invoice,type:0
|
||||
msgid "Supplier Refund"
|
||||
msgstr "Factura de abono de proveedor"
|
||||
msgstr "Factura rectificativa (abono) de proveedor"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,note:account.process_transition_entriesreconcile0
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-23 03:52+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
||||
@@ -70,8 +70,8 @@
|
||||
<field name="priority">2</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<notebook>
|
||||
<page string="Accounting" position="inside">
|
||||
<page string="Notes" position="before">
|
||||
<page string="Accounting">
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Customer Accounting Properties" colspan="2"/>
|
||||
<field name="property_account_receivable" groups="account.group_account_user" />
|
||||
@@ -119,7 +119,7 @@
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 09:34+0000\n"
|
||||
"Last-Translator: Ana Juaristi Olalde <ajuaristio@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:05+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:18+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_budget
|
||||
@@ -460,7 +461,7 @@ msgstr "Cuentas"
|
||||
#. module: account_budget
|
||||
#: model:ir.actions.report.xml,name:account_budget.account_budget
|
||||
msgid "Print Budget"
|
||||
msgstr "Imprimir Presupuestos"
|
||||
msgstr "Imprimir presupuestos"
|
||||
|
||||
#. module: account_budget
|
||||
#: view:account.analytic.account:0
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-25 16:54+0000\n"
|
||||
"Last-Translator: Paco Molinero <paco@byasl.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:09+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:10+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_payment
|
||||
@@ -351,7 +352,7 @@ msgstr "Total haber"
|
||||
#. module: account_payment
|
||||
#: model:ir.actions.wizard,name:account_payment.wizard_populate_payment
|
||||
msgid "Populate payment"
|
||||
msgstr "Propagar el pago"
|
||||
msgstr "Rellenar la orden"
|
||||
|
||||
#. module: account_payment
|
||||
#: field:payment.order,user_id:0
|
||||
|
||||
+42
-42
@@ -8,29 +8,29 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-10-18 06:57+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-06-24 02:48+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:12+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: auction
|
||||
#: field:report.deposit.border,total_marge:0
|
||||
msgid "Total margin"
|
||||
msgstr ""
|
||||
msgstr "Συνολικό περιθώριο"
|
||||
|
||||
#. module: auction
|
||||
#: wizard_view:auction.lots.sms_send,init:0
|
||||
msgid "SMS - Gateway: clickatell"
|
||||
msgstr ""
|
||||
msgstr "Κέντρο μηνυμάτων SMS: clickatell"
|
||||
|
||||
#. module: auction
|
||||
#: view:auction.lots:0
|
||||
msgid "Set to draft"
|
||||
msgstr ""
|
||||
msgstr "Ρύθμιση ως πρόχειρο"
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.deposit,partner_id:0
|
||||
@@ -40,55 +40,55 @@ msgstr ""
|
||||
#: field:report.seller.auction,seller:0
|
||||
#: field:report.seller.auction2,seller:0
|
||||
msgid "Seller"
|
||||
msgstr ""
|
||||
msgstr "Πωλητής"
|
||||
|
||||
#. module: auction
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lots.send.aie,date_ask,numerotation:0
|
||||
#: selection:auction.lots.send.aie,init,numerotation:0
|
||||
msgid "Provisoire"
|
||||
msgstr ""
|
||||
msgstr "Προσωρινός"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lots.send.aie,date_ask,numerotation:0
|
||||
#: selection:auction.lots.send.aie,init,numerotation:0
|
||||
msgid "Definitive (ordre catalogue)"
|
||||
msgstr ""
|
||||
msgstr "Οριστικά (κατάλογος παραγγελίας)"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.ui.menu,name:auction.menu_report_auction_object_date_tree1_my
|
||||
msgid "My Encoded Objects Per Day"
|
||||
msgstr ""
|
||||
msgstr "Τα κωδικοποιημένα αντικείμενά μου ανά ημέρα"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.model,name:auction.model_auction_lot_history
|
||||
msgid "Lot history"
|
||||
msgstr ""
|
||||
msgstr "Ιστορικό Lot"
|
||||
|
||||
#. module: auction
|
||||
#: field:report.seller.auction,avg_estimation:0
|
||||
msgid "Avg estimation"
|
||||
msgstr ""
|
||||
msgstr "Υπολογισμός μέσου όρου"
|
||||
|
||||
#. module: auction
|
||||
#: field:report.auction.object.date,obj_num:0
|
||||
#: field:report.auction.view2,obj_number:0
|
||||
msgid "# of Objects"
|
||||
msgstr ""
|
||||
msgstr "# αντικειμένων"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.ui.menu,name:auction.menu_action_bids_form
|
||||
msgid "Bids line"
|
||||
msgstr ""
|
||||
msgstr "Γραμμή προσφορών"
|
||||
|
||||
#. module: auction
|
||||
#: xsl:report.auction.deposit:0
|
||||
msgid "Deposit Form"
|
||||
msgstr ""
|
||||
msgstr "Φόρμα κατάθεσης"
|
||||
|
||||
#. module: auction
|
||||
#: rml:auction.bids:0
|
||||
@@ -103,81 +103,81 @@ msgstr ""
|
||||
#: field:report.buyer.auction,buyer:0
|
||||
#: field:report.buyer.auction2,buyer:0
|
||||
msgid "Buyer"
|
||||
msgstr ""
|
||||
msgstr "Αγοραστής"
|
||||
|
||||
#. module: auction
|
||||
#: field:report.auction.view,nobjects:0
|
||||
#: field:report.buyer.auction,object:0
|
||||
msgid "No of objects"
|
||||
msgstr ""
|
||||
msgstr "Αριθμόες αντικειμένων"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.ui.menu,name:auction.menu_report_auction_adjudication_tree
|
||||
msgid "Adjudication by Auction"
|
||||
msgstr ""
|
||||
msgstr "Δικάζεται από Δημοπρασία"
|
||||
|
||||
#. module: auction
|
||||
#: rml:auction.total.rml:0
|
||||
msgid "# of paid items (based on invoices):"
|
||||
msgstr ""
|
||||
msgstr "# πληρωμένων αντικειμένων (βασισμένο στα τιμολόγια):"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.actions.wizard,name:auction.wizard_numerotate_lot
|
||||
msgid "Numerotation (per lot)"
|
||||
msgstr ""
|
||||
msgstr "Αρίθμιση (ανα παρτίδα)"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lot.category,aie_categ:0
|
||||
msgid "Antique/Books, manuscripts, eso."
|
||||
msgstr ""
|
||||
msgstr "Αντίκες/Βιβλία, χειρόγραφα,κα."
|
||||
|
||||
#. module: auction
|
||||
#: view:auction.deposit:0
|
||||
#: model:ir.model,name:auction.model_auction_deposit
|
||||
msgid "Deposit Border"
|
||||
msgstr ""
|
||||
msgstr "Κατάθεση ορίων"
|
||||
|
||||
#. module: auction
|
||||
#: wizard_field:auction.lots.make_invoice,init,amount:0
|
||||
#: wizard_field:auction.lots.make_invoice_buyer,init,amount:0
|
||||
msgid "Invoiced Amount"
|
||||
msgstr ""
|
||||
msgstr "Αξία Τιμολογίου"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lot.category,aie_categ:0
|
||||
msgid "Antique/Tin / Copper wares"
|
||||
msgstr ""
|
||||
msgstr "Αντίκες / τσίγκινα / χάλκινα σκεύη"
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.lots,paid_ach:0
|
||||
msgid "Buyer invoice reconciled"
|
||||
msgstr ""
|
||||
msgstr "Διασταύρωση τιμολογίων αγορών"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.actions.wizard,name:auction.auction_wizard_able_taken
|
||||
msgid "Mark as taken away"
|
||||
msgstr ""
|
||||
msgstr "Σημαδέψτε καθώς αφαιρείται"
|
||||
|
||||
#. module: auction
|
||||
#: xsl:report.auction.seller.list:0
|
||||
msgid "Inv."
|
||||
msgstr ""
|
||||
msgstr "Τιμ."
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.deposit.cost,amount:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
msgstr "Ποσό"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.actions.act_window,name:auction.action_deposit_border
|
||||
#: model:ir.ui.menu,name:auction.menu_auction_deposit_border
|
||||
msgid "Deposit border"
|
||||
msgstr ""
|
||||
msgstr "Όριο κατάθεσης"
|
||||
|
||||
#. module: auction
|
||||
#: xsl:report.auction.deposit:0
|
||||
msgid "VAT"
|
||||
msgstr ""
|
||||
msgstr "ΦΠΑ"
|
||||
|
||||
#. module: auction
|
||||
#: view:auction.lots:0
|
||||
@@ -187,58 +187,58 @@ msgstr ""
|
||||
#. module: auction
|
||||
#: xsl:flagey.huissier:0
|
||||
msgid "Adjudication"
|
||||
msgstr ""
|
||||
msgstr "Δικαστική απόφαση"
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.dates,account_analytic_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
msgstr "Αναλυτικός Λογαριασμός"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lot.category,aie_categ:0
|
||||
msgid "Unclassifieds"
|
||||
msgstr ""
|
||||
msgstr "Αταξινόμητα"
|
||||
|
||||
#. module: auction
|
||||
#: model:ir.ui.menu,name:auction.menu_auction_dates_next_by_auction
|
||||
msgid "Objects by Auction"
|
||||
msgstr ""
|
||||
msgstr "Αντικείμενα σε Δημοπρασία"
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.lots,lot_num:0
|
||||
#: field:report.unclassified.objects,lot_num:0
|
||||
msgid "List Number"
|
||||
msgstr ""
|
||||
msgstr "Αριθμός καταλόγου"
|
||||
|
||||
#. module: auction
|
||||
#: field:auction.deposit.cost,name:0
|
||||
msgid "Cost Name"
|
||||
msgstr ""
|
||||
msgstr "Όνομα κόστους"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lot.category,aie_categ:0
|
||||
msgid "Antiques"
|
||||
msgstr ""
|
||||
msgstr "Αντίκες"
|
||||
|
||||
#. module: auction
|
||||
#: view:auction.dates:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Κατάσταση"
|
||||
|
||||
#. module: auction
|
||||
#: field:report.auction.estimation.adj.category,lot_type:0
|
||||
msgid "Object Type"
|
||||
msgstr ""
|
||||
msgstr "Τύπος αντικειμένου"
|
||||
|
||||
#. module: auction
|
||||
#: wizard_field:auction.lots.sms_send,init,text:0
|
||||
msgid "SMS Message"
|
||||
msgstr ""
|
||||
msgstr "Μήνυμα SMS"
|
||||
|
||||
#. module: auction
|
||||
#: selection:auction.lot.category,aie_categ:0
|
||||
msgid "Contemporary Art"
|
||||
msgstr ""
|
||||
msgstr "Σύγχρονη Τέχνη"
|
||||
|
||||
#. module: auction
|
||||
#: view:auction.lots:0
|
||||
|
||||
+335
-230
@@ -25,6 +25,7 @@ from tools.translate import _
|
||||
import ir
|
||||
import pooler
|
||||
import time
|
||||
import tools
|
||||
|
||||
class audittrail_rule(osv.osv):
|
||||
"""
|
||||
@@ -33,25 +34,28 @@ class audittrail_rule(osv.osv):
|
||||
_name = 'audittrail.rule'
|
||||
_description = "Audittrail Rule"
|
||||
_columns = {
|
||||
"name": fields.char("Rule Name", size=32, required=True),
|
||||
"object_id": fields.many2one('ir.model', 'Object', required=True),
|
||||
"user_id": fields.many2many('res.users', 'audittail_rules_users',
|
||||
'user_id', 'rule_id', 'Users'),
|
||||
"log_read": fields.boolean("Log reads"),
|
||||
"log_write": fields.boolean("Log writes"),
|
||||
"log_unlink": fields.boolean("Log deletes"),
|
||||
"log_create": fields.boolean("Log creates"),
|
||||
"state": fields.selection((("draft", "Draft"),
|
||||
("subscribed", "Subscribed")),
|
||||
"State", required=True),
|
||||
"action_id": fields.many2one('ir.actions.act_window', "Action ID"),
|
||||
"name": fields.char("Rule Name", size=32, required=True),
|
||||
"object_id": fields.many2one('ir.model', 'Object', required=True),
|
||||
"user_id": fields.many2many('res.users', 'audittail_rules_users',
|
||||
'user_id', 'rule_id', 'Users', help="if User is not added then it will applicable for all users"),
|
||||
"log_read": fields.boolean("Log Reads"),
|
||||
"log_write": fields.boolean("Log Writes"),
|
||||
"log_unlink": fields.boolean("Log Deletes"),
|
||||
"log_create": fields.boolean("Log Creates"),
|
||||
"log_action": fields.boolean("Log Action"),
|
||||
"log_workflow": fields.boolean("Log Workflow"),
|
||||
"state": fields.selection((("draft", "Draft"),
|
||||
("subscribed", "Subscribed")),
|
||||
"State", required=True),
|
||||
"action_id": fields.many2one('ir.actions.act_window', "Action ID"),
|
||||
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'state': lambda *a: 'draft',
|
||||
'log_create': lambda *a: 1,
|
||||
'log_unlink': lambda *a: 1,
|
||||
'log_write': lambda *a: 1,
|
||||
'state': lambda *a: 'draft',
|
||||
'log_create': lambda *a: 1,
|
||||
'log_unlink': lambda *a: 1,
|
||||
'log_write': lambda *a: 1,
|
||||
}
|
||||
|
||||
_sql_constraints = [
|
||||
@@ -65,7 +69,7 @@ class audittrail_rule(osv.osv):
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Auddittrail Rule’s IDs.
|
||||
@return: True
|
||||
@return: True
|
||||
"""
|
||||
obj_action = self.pool.get('ir.actions.act_window')
|
||||
obj_model = self.pool.get('ir.model.data')
|
||||
@@ -74,20 +78,20 @@ class audittrail_rule(osv.osv):
|
||||
obj = self.pool.get(thisrule.object_id.model)
|
||||
if not obj:
|
||||
raise osv.except_osv(
|
||||
_('WARNING: audittrail is not part of the pool'),
|
||||
_('WARNING: audittrail is not part of the pool'),
|
||||
_('Change audittrail depends -- Setting rule as DRAFT'))
|
||||
self.write(cr, uid, [thisrule.id], {"state": "draft"})
|
||||
val = {
|
||||
"name": 'View Log',
|
||||
"res_model": 'audittrail.log',
|
||||
"src_model": thisrule.object_id.model,
|
||||
"name": 'View Log',
|
||||
"res_model": 'audittrail.log',
|
||||
"src_model": thisrule.object_id.model,
|
||||
"domain": "[('object_id','=', " + str(thisrule.object_id.id) + "), ('res_id', '=', active_id)]"
|
||||
|
||||
}
|
||||
id = obj_action.create(cr, uid, val)
|
||||
self.write(cr, uid, [thisrule.id], {"state": "subscribed", "action_id": id})
|
||||
action_id = obj_action.create(cr, uid, val)
|
||||
self.write(cr, uid, [thisrule.id], {"state": "subscribed", "action_id": action_id})
|
||||
keyword = 'client_action_relate'
|
||||
value = 'ir.actions.act_window,' + str(id)
|
||||
value = 'ir.actions.act_window,' + str(action_id)
|
||||
res = obj_model.ir_set(cr, uid, 'action', keyword, 'View_log_' + thisrule.object_id.model, [thisrule.object_id.model], value, replace=True, isobject=True, xml_id=False)
|
||||
#End Loop
|
||||
return True
|
||||
@@ -98,7 +102,7 @@ class audittrail_rule(osv.osv):
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Auddittrail Rule’s IDs.
|
||||
@return: True
|
||||
@return: True
|
||||
"""
|
||||
obj_action = self.pool.get('ir.actions.act_window')
|
||||
val_obj = self.pool.get('ir.values')
|
||||
@@ -127,17 +131,28 @@ class audittrail_log(osv.osv):
|
||||
_name = 'audittrail.log'
|
||||
_description = "Audittrail Log"
|
||||
|
||||
def _name_get_resname(self, cr, uid, ids, *args):
|
||||
data = {}
|
||||
for resname in self.browse(cr, uid, ids,[]):
|
||||
model_object = resname.object_id
|
||||
res_id = resname.res_id
|
||||
if model_object and res_id:
|
||||
model_pool = self.pool.get(model_object.model)
|
||||
res = model_pool.read(cr, uid, res_id, ['name'])
|
||||
data[resname.id] = res['name']
|
||||
else:
|
||||
data[resname.id] = False
|
||||
return data
|
||||
|
||||
_columns = {
|
||||
"name": fields.char("Name", size=32),
|
||||
"object_id": fields.many2one('ir.model', 'Object'),
|
||||
"user_id": fields.many2one('res.users', 'User'),
|
||||
"method": fields.selection((('read', 'Read'),
|
||||
('write', 'Write'),
|
||||
('unlink', 'Delete'),
|
||||
('create', 'Create')), "Method"),
|
||||
"timestamp": fields.datetime("Date"),
|
||||
"res_id": fields.integer('Resource Id'),
|
||||
"line_ids": fields.one2many('audittrail.log.line', 'log_id', 'Log lines'),
|
||||
"name": fields.char("Resource Name",size=64),
|
||||
# "name": fields.function(_name_get_resname, type='char', string='Resource Name', method=True),
|
||||
"object_id": fields.many2one('ir.model', 'Object'),
|
||||
"user_id": fields.many2one('res.users', 'User'),
|
||||
"method": fields.char("Method", size=64),
|
||||
"timestamp": fields.datetime("Date"),
|
||||
"res_id": fields.integer('Resource Id'),
|
||||
"line_ids": fields.one2many('audittrail.log.line', 'log_id', 'Log lines'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
@@ -155,14 +170,14 @@ class audittrail_log_line(osv.osv):
|
||||
_name = 'audittrail.log.line'
|
||||
_description = "Log Line"
|
||||
_columns = {
|
||||
'field_id': fields.many2one('ir.model.fields', 'Fields', required=True),
|
||||
'log_id': fields.many2one('audittrail.log', 'Log'),
|
||||
'log': fields.integer("Log ID"),
|
||||
'old_value': fields.text("Old Value"),
|
||||
'new_value': fields.text("New Value"),
|
||||
'old_value_text': fields.text('Old value Text'),
|
||||
'new_value_text': fields.text('New value Text'),
|
||||
'field_description': fields.char('Field Description', size=64),
|
||||
'field_id': fields.many2one('ir.model.fields', 'Fields', required=True),
|
||||
'log_id': fields.many2one('audittrail.log', 'Log'),
|
||||
'log': fields.integer("Log ID"),
|
||||
'old_value': fields.text("Old Value"),
|
||||
'new_value': fields.text("New Value"),
|
||||
'old_value_text': fields.text('Old value Text'),
|
||||
'new_value_text': fields.text('New value Text'),
|
||||
'field_description': fields.char('Field Description', size=64),
|
||||
}
|
||||
|
||||
audittrail_log_line()
|
||||
@@ -170,276 +185,366 @@ audittrail_log_line()
|
||||
|
||||
class audittrail_objects_proxy(osv_pool):
|
||||
""" Uses Object proxy for auditing changes on object of subscribed Rules"""
|
||||
|
||||
def get_value_text(self, cr, uid, field_name, values, object, context=None):
|
||||
|
||||
def get_value_text(self, cr, uid, field_name, values, model, context=None):
|
||||
"""
|
||||
Gets textual values for the fields
|
||||
e.g.: For field of type many2one it gives its name value instead of id
|
||||
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param field_name: List of fields for text values
|
||||
@param values: Values for field to be converted into textual values
|
||||
@return: values: List of textual values for given fields
|
||||
@param field_name: List of fields for text values
|
||||
@param values: Values for field to be converted into textual values
|
||||
@return: values: List of textual values for given fields
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
f_id = pool.get('ir.model.fields').search(cr, uid, [('name', '=', field_name), ('model_id', '=', object.id)])
|
||||
if f_id:
|
||||
field = pool.get('ir.model.fields').read(cr, uid, f_id)[0]
|
||||
model = field['relation']
|
||||
field_pool = pool.get('ir.model.fields')
|
||||
model_pool = pool.get('ir.model')
|
||||
obj_pool = pool.get(model.model)
|
||||
if obj_pool._inherits:
|
||||
inherits_ids = model_pool.search(cr, uid, [('model', '=', obj_pool._inherits.keys()[0])])
|
||||
field_ids = field_pool.search(cr, uid, [('name', '=', field_name), ('model_id', 'in', (model.id, inherits_ids[0]))])
|
||||
else:
|
||||
field_ids = field_pool.search(cr, uid, [('name', '=', field_name), ('model_id', '=', model.id)])
|
||||
field_id = field_ids and field_ids[0] or False
|
||||
assert field_id, _("'%s' field is not exits in '%s' model" %(field_name, model.model))
|
||||
|
||||
if field['ttype'] == 'many2one':
|
||||
if values:
|
||||
if type(values) == tuple:
|
||||
values = values[0]
|
||||
val = pool.get(model).read(cr, uid, [values], [pool.get(model)._rec_name])
|
||||
if val:
|
||||
return val[0][pool.get(model)._rec_name]
|
||||
elif field['ttype'] == 'many2many':
|
||||
value = []
|
||||
if values:
|
||||
for id in values:
|
||||
val = pool.get(model).read(cr, uid, [id], [pool.get(model)._rec_name])
|
||||
if val:
|
||||
value.append(val[0][pool.get(model)._rec_name])
|
||||
return value
|
||||
field = field_pool.read(cr, uid, field_id)
|
||||
relation_model = field['relation']
|
||||
relation_model_pool = relation_model and pool.get(relation_model) or False
|
||||
|
||||
elif field['ttype'] == 'one2many':
|
||||
if values:
|
||||
value = []
|
||||
for id in values:
|
||||
val = pool.get(model).read(cr, uid, [id], [pool.get(model)._rec_name])
|
||||
if field['ttype'] == 'many2one':
|
||||
res = False
|
||||
relation_id = False
|
||||
if values and type(values) == tuple:
|
||||
relation_id = values[0]
|
||||
if relation_id and relation_model_pool:
|
||||
relation_model_object = relation_model_pool.read(cr, uid, relation_id, [relation_model_pool._rec_name])
|
||||
res = relation_model_object[relation_model_pool._rec_name]
|
||||
return res
|
||||
|
||||
if val:
|
||||
value.append(val[0][pool.get(model)._rec_name])
|
||||
return value
|
||||
return values
|
||||
elif field['ttype'] in ('many2many','one2many'):
|
||||
res = []
|
||||
for relation_model_object in relation_model_pool.read(cr, uid, values, [relation_model_pool._rec_name]):
|
||||
res.append(relation_model_object[relation_model_pool._rec_name])
|
||||
return res
|
||||
|
||||
def create_log_line(self, cr, uid, id, object, lines=[]):
|
||||
return values
|
||||
|
||||
def create_log_line(self, cr, uid, log_id, model, lines=[]):
|
||||
"""
|
||||
Creates lines for changed fields with its old and new values
|
||||
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param object: Object who's values are being changed
|
||||
@param model: Object who's values are being changed
|
||||
@param lines: List of values for line is to be created
|
||||
"""
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
obj = pool.get(object.model)
|
||||
obj_pool = pool.get(model.model)
|
||||
model_pool = pool.get('ir.model')
|
||||
field_pool = pool.get('ir.model.fields')
|
||||
log_line_pool = pool.get('audittrail.log.line')
|
||||
#start Loop
|
||||
for line in lines:
|
||||
if obj._inherits:
|
||||
inherits_ids = pool.get('ir.model').search(cr, uid, [('model', '=', obj._inherits.keys()[0])])
|
||||
f_id = pool.get('ir.model.fields').search(cr, uid, [('name', '=', line['name']), ('model_id', 'in', (object.id, inherits_ids[0]))])
|
||||
if obj_pool._inherits:
|
||||
inherits_ids = model_pool.search(cr, uid, [('model', '=', obj_pool._inherits.keys()[0])])
|
||||
field_ids = field_pool.search(cr, uid, [('name', '=', line['name']), ('model_id', 'in', (model.id, inherits_ids[0]))])
|
||||
else:
|
||||
f_id = pool.get('ir.model.fields').search(cr, uid, [('name', '=', line['name']), ('model_id', '=', object.id)])
|
||||
if f_id:
|
||||
fields = pool.get('ir.model.fields').read(cr, uid, f_id)
|
||||
old_value = 'old_value' in line and line['old_value'] or ''
|
||||
new_value = 'new_value' in line and line['new_value'] or ''
|
||||
old_value_text = 'old_value_text' in line and line['old_value_text'] or ''
|
||||
new_value_text = 'new_value_text' in line and line['new_value_text'] or ''
|
||||
|
||||
if old_value_text == new_value_text:
|
||||
continue
|
||||
if fields[0]['ttype'] == 'many2one':
|
||||
if type(old_value) == tuple:
|
||||
old_value = old_value[0]
|
||||
if type(new_value) == tuple:
|
||||
new_value = new_value[0]
|
||||
vals = {
|
||||
"log_id": id,
|
||||
"field_id": f_id[0],
|
||||
"old_value": old_value,
|
||||
"new_value": new_value,
|
||||
"old_value_text": old_value_text,
|
||||
"new_value_text": new_value_text,
|
||||
"field_description": fields[0]['field_description']
|
||||
}
|
||||
line_id = pool.get('audittrail.log.line').create(cr, uid, vals)
|
||||
cr.commit()
|
||||
#End Loop
|
||||
field_ids = field_pool.search(cr, uid, [('name', '=', line['name']), ('model_id', '=', model.id)])
|
||||
field_id = field_ids and field_ids[0] or False
|
||||
assert field_id, _("'%s' field is not exits in '%s' model" %(line['name'], model.model))
|
||||
|
||||
field = field_pool.read(cr, uid, field_id)
|
||||
old_value = 'old_value' in line and line['old_value'] or ''
|
||||
new_value = 'new_value' in line and line['new_value'] or ''
|
||||
old_value_text = 'old_value_text' in line and line['old_value_text'] or ''
|
||||
new_value_text = 'new_value_text' in line and line['new_value_text'] or ''
|
||||
|
||||
if old_value_text == new_value_text:
|
||||
continue
|
||||
if field['ttype'] == 'many2one':
|
||||
if type(old_value) == tuple:
|
||||
old_value = old_value[0]
|
||||
if type(new_value) == tuple:
|
||||
new_value = new_value[0]
|
||||
vals = {
|
||||
"log_id": log_id,
|
||||
"field_id": field_id,
|
||||
"old_value": old_value,
|
||||
"new_value": new_value,
|
||||
"old_value_text": old_value_text,
|
||||
"new_value_text": new_value_text,
|
||||
"field_description": field['field_description']
|
||||
}
|
||||
line_id = log_line_pool.create(cr, uid, vals)
|
||||
#End Loop
|
||||
return True
|
||||
|
||||
def log_fct(self, db, uid, object, method, fct_src, *args):
|
||||
|
||||
def log_fct(self, db, uid, model, method, fct_src, *args):
|
||||
"""
|
||||
Logging function: This function is performs logging oprations according to method
|
||||
@param db: the current database
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param object: Object who's values are being changed
|
||||
@param method: method to log: create, read, write, unlink
|
||||
@param method: method to log: create, read, write, unlink
|
||||
@param fct_src: execute method of Object proxy
|
||||
|
||||
@return: Returns result as per method of Object proxy
|
||||
|
||||
@return: Returns result as per method of Object proxy
|
||||
"""
|
||||
logged_uids = []
|
||||
res2 = args
|
||||
pool = pooler.get_pool(db)
|
||||
cr = pooler.get_db(db).cursor()
|
||||
obj_ids = pool.get('ir.model').search(cr, uid, [('model', '=', object)])
|
||||
model_object = pool.get('ir.model').browse(cr, uid, obj_ids)[0]
|
||||
resource_pool = pool.get(model)
|
||||
log_pool = pool.get('audittrail.log')
|
||||
model_pool = pool.get('ir.model')
|
||||
|
||||
model_ids = model_pool.search(cr, uid, [('model', '=', model)])
|
||||
model_id = model_ids and model_ids[0] or False
|
||||
assert model_id, _("'%s' Model is not exits..." %(model))
|
||||
model = model_pool.browse(cr, uid, model_id)
|
||||
|
||||
if method in ('create'):
|
||||
res_id = fct_src(db, uid, object, method, *args)
|
||||
res_id = fct_src(db, uid, model.model, method, *args)
|
||||
cr.commit()
|
||||
new_value = pool.get(model_object.model).read(cr, uid, [res_id], args[0].keys())[0]
|
||||
if 'id' in new_value:
|
||||
del new_value['id']
|
||||
if not logged_uids or uid in logged_uids:
|
||||
resource_name = pool.get(model_object.model).name_get(cr, uid, [res_id])
|
||||
resource_name = resource_name and resource_name[0][1] or ''
|
||||
vals = {
|
||||
"method": method,
|
||||
"object_id": model_object.id,
|
||||
"user_id": uid, "res_id": res_id,
|
||||
"name": resource_name
|
||||
}
|
||||
id = pool.get('audittrail.log').create(cr, uid, vals)
|
||||
lines = []
|
||||
for field in new_value:
|
||||
if new_value[field]:
|
||||
line = {
|
||||
'name': field,
|
||||
'new_value': new_value[field],
|
||||
'new_value_text': self.get_value_text(cr, uid, field, new_value[field], model_object)
|
||||
}
|
||||
lines.append(line)
|
||||
self.create_log_line(cr, uid, id, model_object, lines)
|
||||
resource = resource_pool.read(cr, uid, res_id, args[0].keys())
|
||||
vals = {
|
||||
"method": method,
|
||||
"object_id": model.id,
|
||||
"user_id": uid,
|
||||
"res_id": resource['id'],
|
||||
}
|
||||
if 'id' in resource:
|
||||
del resource['id']
|
||||
log_id = log_pool.create(cr, uid, vals)
|
||||
lines = []
|
||||
for field in resource:
|
||||
line = {
|
||||
'name': field,
|
||||
'new_value': resource[field],
|
||||
'new_value_text': self.get_value_text(cr, uid, field, resource[field], model)
|
||||
}
|
||||
lines.append(line)
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res_id
|
||||
|
||||
if method in ('write'):
|
||||
res_ids = args[0]
|
||||
for res_id in res_ids:
|
||||
old_values = pool.get(model_object.model).read(cr, uid, res_id, args[1].keys())
|
||||
old_values_text = {}
|
||||
for field in args[1].keys():
|
||||
old_values_text[field] = self.get_value_text(cr, uid, field, old_values[field], model_object)
|
||||
res = fct_src(db, uid, object, method, *args)
|
||||
cr.commit()
|
||||
if res:
|
||||
new_values = pool.get(model_object.model).read(cr, uid, res_ids, args[1].keys())[0]
|
||||
if not logged_uids or uid in logged_uids:
|
||||
resource_name = pool.get(model_object.model).name_get(cr, uid, [res_id])
|
||||
resource_name = resource_name and resource_name[0][1] or ''
|
||||
id = pool.get('audittrail.log').create(cr, uid, {"method": method, "object_id": model_object.id, "user_id": uid, "res_id": res_id, "name": resource_name})
|
||||
lines = []
|
||||
for field in args[1].keys():
|
||||
if args[1].keys():
|
||||
line = {
|
||||
'name': field,
|
||||
'new_value': field in new_values and new_values[field] or '',
|
||||
'old_value': field in old_values and old_values[field] or '',
|
||||
'new_value_text': self.get_value_text(cr, uid, field, new_values[field], model_object),
|
||||
'old_value_text': old_values_text[field]
|
||||
}
|
||||
lines.append(line)
|
||||
cr.commit()
|
||||
self.create_log_line(cr, uid, id, model_object, lines)
|
||||
cr.close()
|
||||
return res
|
||||
|
||||
if method in ('read'):
|
||||
elif method in ('read'):
|
||||
res_ids = args[0]
|
||||
old_values = {}
|
||||
res = fct_src(db, uid, object, method, *args)
|
||||
res = fct_src(db, uid, model.model, method, *args)
|
||||
if type(res) == list:
|
||||
|
||||
for v in res:
|
||||
old_values[v['id']] = v
|
||||
else:
|
||||
old_values[res['id']] = res
|
||||
for res_id in old_values:
|
||||
if not logged_uids or uid in logged_uids:
|
||||
resource_name = pool.get(model_object.model).name_get(cr, uid, [res_id])
|
||||
resource_name = resource_name and resource_name[0][1] or ''
|
||||
id = pool.get('audittrail.log').create(cr, uid, {"method": method, "object_id": model_object.id, "user_id": uid, "res_id": res_id, "name": resource_name})
|
||||
lines = []
|
||||
for field in old_values[res_id]:
|
||||
if old_values[res_id][field]:
|
||||
line = {
|
||||
'name': field,
|
||||
'old_value': old_values[res_id][field],
|
||||
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model_object)
|
||||
}
|
||||
lines.append(line)
|
||||
cr.commit()
|
||||
self.create_log_line(cr, uid, id, model_object, lines)
|
||||
vals = {
|
||||
"method": method,
|
||||
"object_id": model.id,
|
||||
"user_id": uid,
|
||||
"res_id": res_id,
|
||||
|
||||
}
|
||||
log_id = log_pool.create(cr, uid, vals)
|
||||
lines = []
|
||||
for field in old_values[res_id]:
|
||||
line = {
|
||||
'name': field,
|
||||
'old_value': old_values[res_id][field],
|
||||
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model)
|
||||
}
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
|
||||
cr.close()
|
||||
return res
|
||||
|
||||
if method in ('unlink'):
|
||||
elif method in ('unlink'):
|
||||
res_ids = args[0]
|
||||
old_values = {}
|
||||
for res_id in res_ids:
|
||||
old_values[res_id] = pool.get(model_object.model).read(cr, uid, res_id, [])
|
||||
old_values[res_id] = resource_pool.read(cr, uid, res_id)
|
||||
|
||||
for res_id in res_ids:
|
||||
if not logged_uids or uid in logged_uids:
|
||||
resource_name = pool.get(model_object.model).name_get(cr, uid, [res_id])
|
||||
resource_name = resource_name and resource_name[0][1] or ''
|
||||
id = pool.get('audittrail.log').create(cr, uid, {"method": method, "object_id": model_object.id, "user_id": uid, "res_id": res_id, "name": resource_name})
|
||||
lines = []
|
||||
for field in old_values[res_id]:
|
||||
if old_values[res_id][field]:
|
||||
line = {
|
||||
'name': field,
|
||||
'old_value': old_values[res_id][field],
|
||||
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model_object)
|
||||
}
|
||||
lines.append(line)
|
||||
cr.commit()
|
||||
self.create_log_line(cr, uid, id, model_object, lines)
|
||||
res = fct_src(db, uid, object, method, *args)
|
||||
vals = {
|
||||
"method": method,
|
||||
"object_id": model.id,
|
||||
"user_id": uid,
|
||||
"res_id": res_id,
|
||||
|
||||
}
|
||||
log_id = log_pool.create(cr, uid, vals)
|
||||
lines = []
|
||||
for field in old_values[res_id]:
|
||||
if field in ('id'):
|
||||
continue
|
||||
line = {
|
||||
'name': field,
|
||||
'old_value': old_values[res_id][field],
|
||||
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model)
|
||||
}
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
res = fct_src(db, uid, model.model, method, *args)
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res
|
||||
cr.close()
|
||||
else:
|
||||
res_ids = args[0]
|
||||
old_values = {}
|
||||
fields = []
|
||||
if len(args)>1 and type(args[1]) == dict:
|
||||
fields = args[1].keys()
|
||||
if type(res_ids) in (long, int):
|
||||
res_ids = [res_ids]
|
||||
if res_ids:
|
||||
for resource in resource_pool.read(cr, uid, res_ids):
|
||||
resource_id = resource['id']
|
||||
if 'id' in resource:
|
||||
del resource['id']
|
||||
old_values_text = {}
|
||||
old_value = {}
|
||||
for field in resource.keys():
|
||||
old_value[field] = resource[field]
|
||||
old_values_text[field] = self.get_value_text(cr, uid, field, resource[field], model)
|
||||
old_values[resource_id] = {'text':old_values_text, 'value': old_value}
|
||||
|
||||
def execute(self, db, uid, object, method, *args, **kw):
|
||||
res = fct_src(db, uid, model.model, method, *args)
|
||||
cr.commit()
|
||||
|
||||
if res_ids:
|
||||
for resource in resource_pool.read(cr, uid, res_ids):
|
||||
resource_id = resource['id']
|
||||
if 'id' in resource:
|
||||
del resource['id']
|
||||
vals = {
|
||||
"method": method,
|
||||
"object_id": model.id,
|
||||
"user_id": uid,
|
||||
"res_id": resource_id,
|
||||
}
|
||||
|
||||
|
||||
log_id = log_pool.create(cr, uid, vals)
|
||||
lines = []
|
||||
for field in resource.keys():
|
||||
line = {
|
||||
'name': field,
|
||||
'new_value': resource[field],
|
||||
'old_value': old_values[resource_id]['value'][field],
|
||||
'new_value_text': self.get_value_text(cr, uid, field, resource[field], model),
|
||||
'old_value_text': old_values[resource_id]['text'][field]
|
||||
}
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def execute(self, db, uid, model, method, *args, **kw):
|
||||
"""
|
||||
Overrides Object Proxy execute method
|
||||
@param db: the current database
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param object: Object who's values are being changed
|
||||
@param method: method to log: create, read, write, unlink
|
||||
|
||||
@return: Returns result as per method of Object proxy
|
||||
@param method: get any method and create log
|
||||
|
||||
@return: Returns result as per method of Object proxy
|
||||
"""
|
||||
pool = pooler.get_pool(db)
|
||||
model_pool = pool.get('ir.model')
|
||||
rule_pool = pool.get('audittrail.rule')
|
||||
cr = pooler.get_db(db).cursor()
|
||||
cr.autocommit(True)
|
||||
logged_uids = []
|
||||
fct_src = super(audittrail_objects_proxy, self).execute
|
||||
|
||||
def my_fct(db, uid, object, method, *args):
|
||||
field = method
|
||||
def my_fct(db, uid, model, method, *args):
|
||||
rule = False
|
||||
obj_ids = pool.get('ir.model').search(cr, uid, [('model', '=', object)])
|
||||
for obj_name in pool.obj_list():
|
||||
if obj_name == 'audittrail.rule':
|
||||
model_ids = model_pool.search(cr, uid, [('model', '=', model)])
|
||||
model_id = model_ids and model_ids[0] or False
|
||||
|
||||
for model_name in pool.obj_list():
|
||||
if model_name == 'audittrail.rule':
|
||||
rule = True
|
||||
if not rule:
|
||||
return fct_src(db, uid, object, method, *args)
|
||||
if not obj_ids:
|
||||
return fct_src(db, uid, object, method, *args)
|
||||
rule_ids = pool.get('audittrail.rule').search(cr, uid, [('object_id', '=', obj_ids[0]), ('state', '=', 'subscribed')])
|
||||
if not rule_ids:
|
||||
return fct_src(db, uid, object, method, *args)
|
||||
return fct_src(db, uid, model, method, *args)
|
||||
if not model_id:
|
||||
return fct_src(db, uid, model, method, *args)
|
||||
|
||||
for thisrule in pool.get('audittrail.rule').browse(cr, uid, rule_ids):
|
||||
rule_ids = rule_pool.search(cr, uid, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
|
||||
if not rule_ids:
|
||||
return fct_src(db, uid, model, method, *args)
|
||||
|
||||
for thisrule in rule_pool.browse(cr, uid, rule_ids):
|
||||
for user in thisrule.user_id:
|
||||
logged_uids.append(user.id)
|
||||
if not logged_uids or uid in logged_uids:
|
||||
if field in ('read', 'write', 'create', 'unlink'):
|
||||
if getattr(thisrule, 'log_' + field):
|
||||
return self.log_fct(db, uid, object, method, fct_src, *args)
|
||||
return fct_src(db, uid, object, method, *args)
|
||||
res = my_fct(db, uid, object, method, *args)
|
||||
if method in ('read', 'write', 'create', 'unlink'):
|
||||
if getattr(thisrule, 'log_' + method):
|
||||
return self.log_fct(db, uid, model, method, fct_src, *args)
|
||||
|
||||
elif method not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink', 'write', 'create'):
|
||||
if thisrule.log_action:
|
||||
return self.log_fct(db, uid, model, method, fct_src, *args)
|
||||
|
||||
return fct_src(db, uid, model, method, *args)
|
||||
res = my_fct(db, uid, model, method, *args)
|
||||
cr.close()
|
||||
return res
|
||||
|
||||
|
||||
def exec_workflow(self, db, uid, model, method, *args, **argv):
|
||||
pool = pooler.get_pool(db)
|
||||
cr = pooler.get_db(db).cursor()
|
||||
cr.autocommit(True)
|
||||
logged_uids = []
|
||||
fct_src = super(audittrail_objects_proxy, self).exec_workflow
|
||||
field = method
|
||||
rule = False
|
||||
model_pool = pool.get('ir.model')
|
||||
rule_pool = pool.get('audittrail.rule')
|
||||
model_ids = model_pool.search(cr, uid, [('model', '=', model)])
|
||||
for obj_name in pool.obj_list():
|
||||
if obj_name == 'audittrail.rule':
|
||||
rule = True
|
||||
if not rule:
|
||||
cr.close()
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid, model, method, *args, **argv)
|
||||
if not model_ids:
|
||||
cr.close()
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid, model, method, *args, **argv)
|
||||
|
||||
rule_ids = rule_pool.search(cr, uid, [('object_id', 'in', model_ids), ('state', '=', 'subscribed')])
|
||||
if not rule_ids:
|
||||
cr.close()
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid, model, method, *args, **argv)
|
||||
|
||||
for thisrule in rule_pool.browse(cr, uid, rule_ids):
|
||||
for user in thisrule.user_id:
|
||||
logged_uids.append(user.id)
|
||||
if not logged_uids or uid in logged_uids:
|
||||
if thisrule.log_workflow:
|
||||
cr.close()
|
||||
return self.log_fct(db, uid, model, method, fct_src, *args)
|
||||
cr.close()
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid, model, method, *args, **argv)
|
||||
|
||||
cr.close()
|
||||
return True
|
||||
|
||||
audittrail_objects_proxy()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -12,12 +12,15 @@
|
||||
<form string="AuditTrail Rule">
|
||||
<field name="name" select="1" required="1"/>
|
||||
<field name="object_id" select="1"/>
|
||||
<field name="log_read" />
|
||||
<field name="log_write" />
|
||||
<field name="log_unlink" />
|
||||
<field name="log_create" />
|
||||
<field name="action_id" colspan="4" readonly="1"/>
|
||||
<field name="user_id" select="1" colspan="4"/>
|
||||
<field name="log_read"/>
|
||||
<field name="log_write"/>
|
||||
<field name="log_unlink"/>
|
||||
<field name="log_create"/>
|
||||
<field name="log_action"/>
|
||||
<field name="log_workflow"/>
|
||||
<separator string="Users (if User is not added then it will applicable for all users)" colspan="4" />
|
||||
<field name="user_id" select="1" colspan="4" nolabel="1" />
|
||||
<field name="action_id" colspan="4" readonly="1" groups="base.group_extended"/>
|
||||
<field name="state" select="1" readonly="1" />
|
||||
<group colspan="2" col="2">
|
||||
<button string="Subscribe" name="subscribe"
|
||||
@@ -42,6 +45,8 @@
|
||||
<field name="log_write" />
|
||||
<field name="log_unlink" />
|
||||
<field name="log_create" />
|
||||
<field name="log_action"/>
|
||||
<field name="log_workflow"/>
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
@@ -58,9 +63,10 @@
|
||||
<!--<field name="view_id" ref="view_audittrail_rule_form" />-->
|
||||
</record>
|
||||
|
||||
<menuitem name="Audittrails" id="menu_action_audittrail"
|
||||
<menuitem name="Audittrail" id="menu_action_audittrail"
|
||||
groups="base.group_extended"
|
||||
parent="base.menu_administration" />
|
||||
|
||||
<menuitem name="Rules" id="menu_action_audittrail_rule_tree"
|
||||
action="action_audittrail_rule_tree" parent="menu_action_audittrail" />
|
||||
|
||||
@@ -83,13 +89,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="AuditTrail Logs">
|
||||
<field name="timestamp" select="1" required="1" readonly="1"/>
|
||||
<field name="object_id" select="1" readonly="1"/>
|
||||
<field name="method" select="1" readonly="1"/>
|
||||
<field name="user_id" select="1" readonly="1"/>
|
||||
<field name="res_id" readonly="1"/>
|
||||
<field name="method" select="1" readonly="1"/>
|
||||
<field name="name" readonly="1" select="1"/>
|
||||
<field name="res_id" readonly="1"/>
|
||||
<field name="object_id" select="1" readonly="1"/>
|
||||
<field name="line_ids" colspan="4" mode="tree,form"
|
||||
widget="one2many_list" readonly="1">
|
||||
widget="one2many_list" readonly="1" nolabel="1">
|
||||
<form string="Log Lines">
|
||||
<field name="field_id" colspan="4"
|
||||
readonly="1" />
|
||||
@@ -151,11 +157,7 @@
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
<menuitem name="Logs" id="menu_action_audittrail_log_tree"
|
||||
action="action_audittrail_log_tree" parent="menu_action_audittrail" />
|
||||
|
||||
<!-- <wizard string="View log" menu="False" model="audittrail.log" name="audittrail.view.log" id="wizard_audittrail_log"/>-->
|
||||
<menuitem name="View Logs" id="menu_action_log_tree2"
|
||||
action="action_audittrail_view_log" parent="menu_action_audittrail" />
|
||||
action="action_audittrail_log_tree" parent="menu_action_audittrail" />
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -8,146 +8,148 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-10-18 06:58+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-06-24 02:58+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:16+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.module.module,shortdesc:audittrail.module_meta_information
|
||||
msgid "Audit Trail"
|
||||
msgstr ""
|
||||
msgstr "Ίχνος"
|
||||
|
||||
#. module: audittrail
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Το όνομα του αντικειμένου πρέπει να ξεκινάει από x_ και να μην περιέχει "
|
||||
"ειδικούς χαρακτήρες!"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log.line,log_id:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
msgstr "Καταγραφή"
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.rule,state:0
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
msgstr "Εγγεγραμμένος"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.log:0
|
||||
msgid "Old Value : "
|
||||
msgstr ""
|
||||
msgstr "Παλιά τιμή: "
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.log,method:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "Δημιουργώ"
|
||||
|
||||
#. module: audittrail
|
||||
#: wizard_view:audittrail.view.log,init:0
|
||||
msgid "Audit Logs"
|
||||
msgstr ""
|
||||
msgstr "Καταγραφή ίχνους"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.rule,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Κατάσταση"
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.rule,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
msgstr "Πρόχειρο"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log.line,old_value:0
|
||||
msgid "Old Value"
|
||||
msgstr ""
|
||||
msgstr "Παλιά τιμή"
|
||||
|
||||
#. module: audittrail
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.actions.wizard,name:audittrail.wizard_audittrail_log
|
||||
msgid "View log"
|
||||
msgstr ""
|
||||
msgstr "Προβολή καταγραφής"
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.model,name:audittrail.model_audittrail_log_line
|
||||
msgid "audittrail.log.line"
|
||||
msgstr ""
|
||||
msgstr "audittrail.log.line"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log,method:0
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
msgstr "Μέθοδος"
|
||||
|
||||
#. module: audittrail
|
||||
#: wizard_field:audittrail.view.log,init,from:0
|
||||
msgid "Log From"
|
||||
msgstr ""
|
||||
msgstr "Καταγραφή απο"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log.line,log:0
|
||||
msgid "Log ID"
|
||||
msgstr ""
|
||||
msgstr "Ταυτότητα καταγραφής"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log,res_id:0
|
||||
msgid "Resource Id"
|
||||
msgstr ""
|
||||
msgstr "Ταυτότητα πηγής"
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.log,method:0
|
||||
msgid "Write"
|
||||
msgstr ""
|
||||
msgstr "Εγγραφή"
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail
|
||||
msgid "Audittrails"
|
||||
msgstr ""
|
||||
msgstr "Audittrails"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.log:0
|
||||
msgid "Log Lines"
|
||||
msgstr ""
|
||||
msgstr "Γραμμές καταγραφής"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.rule:0
|
||||
msgid "Subscribe"
|
||||
msgstr ""
|
||||
msgstr "Εγγράφομαι"
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.log,method:0
|
||||
msgid "Read"
|
||||
msgstr ""
|
||||
msgstr "Ανάγνωση"
|
||||
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log,object_id:0
|
||||
#: field:audittrail.rule,object_id:0
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
msgstr "Αντικείμενο"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.rule:0
|
||||
msgid "AuditTrail Rule"
|
||||
msgstr ""
|
||||
msgstr "Κανόνες καταγραφής"
|
||||
|
||||
#. module: audittrail
|
||||
#: wizard_field:audittrail.view.log,init,to:0
|
||||
msgid "Log To"
|
||||
msgstr ""
|
||||
msgstr "Σύνδεση με"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.log:0
|
||||
msgid "New Value Text: "
|
||||
msgstr ""
|
||||
msgstr "Νέα τιμή κειμένου: "
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.module.module,description:audittrail.module_meta_information
|
||||
|
||||
@@ -27,7 +27,9 @@
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base'],
|
||||
'init_xml': [],
|
||||
'init_xml': [
|
||||
'base_action_rule_data.xml'
|
||||
],
|
||||
'update_xml': [
|
||||
'base_action_rule_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -19,14 +19,16 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import mx.DateTime
|
||||
import re
|
||||
|
||||
import tools
|
||||
from datetime import datetime
|
||||
from osv import fields, osv, orm
|
||||
from osv.orm import except_orm
|
||||
from osv.osv import osv_pool
|
||||
from tools.translate import _
|
||||
import mx.DateTime
|
||||
import pooler
|
||||
import re
|
||||
import time
|
||||
import tools
|
||||
|
||||
class base_action_rule(osv.osv):
|
||||
""" Base Action Rules """
|
||||
@@ -132,6 +134,71 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
|
||||
_order = 'sequence'
|
||||
|
||||
def pre_action(self, cr, uid, ids, model, context=None):
|
||||
# Searching for action rules
|
||||
cr.execute("SELECT model.model, rule.id FROM base_action_rule rule LEFT JOIN ir_model model on (model.id = rule.name)")
|
||||
res = cr.fetchall()
|
||||
# Check if any rule matching with current object
|
||||
for obj_name, rule_id in res:
|
||||
if not (model == obj_name):
|
||||
continue
|
||||
else:
|
||||
obj = self.pool.get(obj_name)
|
||||
self._action(cr, uid, [rule_id], obj.browse(cr, uid, ids, context=context))
|
||||
return True
|
||||
|
||||
def _create(self, old_create, model, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
def make_call_old(cr, uid, vals, context=context):
|
||||
new_id = old_create(cr, uid, vals, context=context)
|
||||
if not context.get('action'):
|
||||
self.pre_action(cr, uid, [new_id], model, context=context)
|
||||
return new_id
|
||||
return make_call_old
|
||||
|
||||
def _write(self, old_write, model, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
def make_call_old(cr, uid, ids, vals, context=context):
|
||||
if isinstance(ids, (str, int, long)):
|
||||
ids = [ids]
|
||||
if not context.get('action'):
|
||||
self.pre_action(cr, uid, ids, model, context=context)
|
||||
return old_write(cr, uid, ids, vals, context=context)
|
||||
return make_call_old
|
||||
|
||||
def _register_hook(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
model_pool = self.pool.get('ir.model')
|
||||
for action_rule in self.browse(cr, uid, ids, context=context):
|
||||
model = action_rule.name.model
|
||||
obj_pool = self.pool.get(model)
|
||||
obj_pool.__setattr__('create', self._create(obj_pool.create, model, context=context))
|
||||
obj_pool.__setattr__('write', self._write(obj_pool.write, model, context=context))
|
||||
return True
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
res_id = super(base_action_rule, self).create(cr, uid, vals, context)
|
||||
self._register_hook(cr, uid, [res_id], context=context)
|
||||
return res_id
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
res = super(base_action_rule, self).write(cr, uid, ids, vals, context)
|
||||
self._register_hook(cr, uid, ids, context=context)
|
||||
return res
|
||||
|
||||
def _check(self, cr, uid, automatic=False, use_new_cursor=False, \
|
||||
context=None):
|
||||
"""
|
||||
This Function is call by scheduler.
|
||||
"""
|
||||
rule_pool= self.pool.get('base.action.rule')
|
||||
rule_ids = rule_pool.search(cr, uid, [], context=context)
|
||||
return self._register_hook(cr, uid, rule_ids, context=context)
|
||||
|
||||
|
||||
def format_body(self, body):
|
||||
""" Foramat Action rule's body
|
||||
@param self: The object pointer """
|
||||
@@ -235,6 +302,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
context.update({'active_id':obj.id, 'active_ids':[obj.id]})
|
||||
self.pool.get('ir.actions.server').run(cr, uid, [action.server_action_id.id], context)
|
||||
write = {}
|
||||
|
||||
if hasattr(obj, 'user_id') and action.act_user_id:
|
||||
obj.user_id = action.act_user_id
|
||||
write['user_id'] = action.act_user_id.id
|
||||
@@ -279,12 +347,10 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
@param ids: List of Basic Action Rule’s IDs,
|
||||
@param objects: pass objects
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
context.update({'action': True})
|
||||
if not scrit:
|
||||
scrit = []
|
||||
cr.execute("select id from base_action_rule order by sequence")
|
||||
rule_ids = map(lambda x: x[0], cr.fetchall())
|
||||
for action in self.browse(cr, uid, rule_ids):
|
||||
for action in self.browse(cr, uid, ids):
|
||||
level = action.max_level
|
||||
if not level:
|
||||
break
|
||||
@@ -333,6 +399,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
self.do_action(cr, uid, action, model_obj, obj, context)
|
||||
break
|
||||
level -= 1
|
||||
context.update({'action': False})
|
||||
return True
|
||||
|
||||
def _check_mail(self, cr, uid, ids, context=None):
|
||||
@@ -359,4 +426,27 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
|
||||
base_action_rule()
|
||||
|
||||
|
||||
class ir_cron(osv.osv):
|
||||
_inherit = 'ir.cron'
|
||||
|
||||
def _poolJobs(self, db_name, check=False):
|
||||
try:
|
||||
db, pool = pooler.get_db_and_pool(db_name)
|
||||
except:
|
||||
return False
|
||||
cr = db.cursor()
|
||||
try:
|
||||
next = datetime.now().strftime('%Y-%m-%d %H:00:00')
|
||||
# Putting nextcall always less than current time in order to call it every time
|
||||
cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next))
|
||||
cr.commit()
|
||||
res = super(ir_cron, self)._poolJobs(db_name, check=check)
|
||||
finally:
|
||||
cr.commit()
|
||||
cr.close()
|
||||
|
||||
ir_cron()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="ir_cron_crm_action" model="ir.cron">
|
||||
<field name="name">Check Action Rules</field>
|
||||
<field name="interval_number">4</field>
|
||||
<field name="interval_type">hours</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'base.action.rule'" name="model"/>
|
||||
<field eval="'_check'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -20,5 +20,7 @@
|
||||
##############################################################################
|
||||
|
||||
import base_contact
|
||||
import base_contact_installer
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
'base_contact_view.xml',
|
||||
'base_contact_installer_view.xml',
|
||||
'process/base_contact_process.xml'
|
||||
],
|
||||
'demo_xml': ['base_contact_demo.xml'],
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from lxml import etree
|
||||
from osv import fields, osv
|
||||
|
||||
class base_contact_installer(osv.osv_memory):
|
||||
_name = 'base.contact.installer'
|
||||
_inherit = 'res.config.installer'
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64),
|
||||
'migrate': fields.boolean('Migrate', help="If you select this, all addresses will be migrated."),
|
||||
}
|
||||
|
||||
def execute(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
This function is used to create contact and address from existing partner address
|
||||
"""
|
||||
cr.execute("""DROP TRIGGER IF EXISTS contactjob on res_partner_contact;
|
||||
DROP LANGUAGE IF EXISTS plpgsql CASCADE;
|
||||
CREATE LANGUAGE plpgsql ;
|
||||
CREATE OR REPLACE FUNCTION add_to_job() RETURNS TRIGGER AS $contactjob$
|
||||
DECLARE
|
||||
new_name varchar;
|
||||
new_phonenum varchar;
|
||||
BEGIN
|
||||
IF(TG_OP='INSERT') THEN
|
||||
INSERT INTO res_partner_job(contact_id, address_id, function, state) VALUES(NEW.id, NEW.website::integer,NEW.first_name, 'current');
|
||||
UPDATE res_partner_contact set first_name=Null, website=Null, active=True where id=NEW.id;
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$contactjob$ LANGUAGE plpgsql;
|
||||
CREATE TRIGGER contactjob AFTER INSERT ON res_partner_contact FOR EACH ROW EXECUTE PROCEDURE add_to_job();""")
|
||||
cr.commit()
|
||||
|
||||
cr.execute("INSERT into res_partner_contact (name, title, email, first_name, website) (SELECT coalesce(name, 'Noname'), title, email, function , to_char(id, '99999999') from res_partner_address)")
|
||||
cr.commit()
|
||||
|
||||
cr.execute("DROP TRIGGER IF EXISTS contactjob on res_partner_contact")
|
||||
cr.execute("DROP LANGUAGE IF EXISTS plpgsql CASCADE;")
|
||||
cr.execute("DROP FUNCTION IF EXISTS add_to_job()")
|
||||
cr.commit()
|
||||
|
||||
base_contact_installer()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,56 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_base_contact_installer" model="ir.ui.view">
|
||||
<field name="name">base.contact.installer.view</field>
|
||||
<field name="model">base.contact.installer</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.res_config_installer"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<form position="attributes">
|
||||
<attribute name="string">Address's Migration to Contacts</attribute>
|
||||
</form>
|
||||
|
||||
<separator string="title" position="attributes">
|
||||
<attribute name="string">Select the Option for Addresses Migration</attribute>
|
||||
</separator>
|
||||
<xpath expr="//label[@string='description']"
|
||||
position="attributes">
|
||||
<attribute name="string">You can migrate Partner's current addresses to the contact.</attribute>
|
||||
</xpath>
|
||||
<xpath expr='//separator[@string="vsep"]' position='attributes'>
|
||||
<attribute name='rowspan'>13</attribute>
|
||||
<attribute name='string'></attribute>
|
||||
</xpath>
|
||||
<xpath expr="//button[@string='Install Modules']" position="attributes">
|
||||
<attribute name="string">Migrate</attribute>
|
||||
</xpath>
|
||||
<group colspan="8">
|
||||
<group colspan="2" col="2">
|
||||
<label string="Due to changes in Address and Partner's relation, some of the details from address are needed to migrated into contact information." colspan="4"/>
|
||||
<label string="Otherwise these details will not be visible from address/contact." colspan="4"/>
|
||||
<label string="Do you want to migrate your Address data in Contact Data?" colspan="4" />
|
||||
<field name="migrate" string="Yes/No" />
|
||||
</group>
|
||||
</group>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_base_contact_installer" model="ir.actions.act_window">
|
||||
<field name="name">Address Migration</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">base.contact.installer</field>
|
||||
<field name="view_id" ref="view_base_contact_installer"/>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record id="base_contact_installer_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_base_contact_installer"/>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,187 @@
|
||||
# Greek 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 <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 02:30+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.check,final_score:0
|
||||
msgid "Final Score (%)"
|
||||
msgstr "Τελικό σκορ (%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Το όνομα του αντικειμένου πρέπει να ξεκινάει από x_ και να μην περιέχει "
|
||||
"ειδικούς χαρακτήρες!"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.module.module,shortdesc:base_module_quality.module_meta_information
|
||||
msgid "Base module quality"
|
||||
msgstr "Βασική Μονάδα Ποιότητας"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.check,name:0
|
||||
msgid "Rated Module"
|
||||
msgstr "Βαθμολογημένη Μονάδα"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.detail:0
|
||||
msgid "Detail"
|
||||
msgstr "Λεπτομέρεια"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,note:0
|
||||
msgid "Note"
|
||||
msgstr "Σημείωση"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,state:0
|
||||
msgid "State"
|
||||
msgstr "Κατάσταση"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,detail:0
|
||||
msgid "Details"
|
||||
msgstr "Λεπτομέρειες"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,ponderation:0
|
||||
msgid "Ponderation"
|
||||
msgstr "Συντελεστής"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:module.quality.detail,ponderation:0
|
||||
msgid ""
|
||||
"Some tests are more critical than others, so they have a bigger weight in "
|
||||
"the computation of final rating"
|
||||
msgstr ""
|
||||
"Μερικά τέστ είναι πιο σημαντικά απο κάποια άλλα και επομένως έχουν "
|
||||
"μεγαλύτερη βαρύτητα στον υπολογισμό της τελικής βαθμολογίας"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.check:0
|
||||
#: field:module.quality.check,check_detail_ids:0
|
||||
msgid "Tests"
|
||||
msgstr "Tests"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: selection:module.quality.detail,state:0
|
||||
msgid "Skipped"
|
||||
msgstr "Προσπεράστηκε"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:module.quality.detail,state:0
|
||||
msgid ""
|
||||
"The test will be completed only if the module is installed or if the test "
|
||||
"may be processed on uninstalled module."
|
||||
msgstr ""
|
||||
"Το τεστ θα ολοκληρωθεί μόνο όταν η μονάδα εγκαθίσταται ή εάν το τέστ μπορεί "
|
||||
"να επεξεργαστεί σε απεγκαταστημένες μονάδες."
|
||||
|
||||
#. module: base_module_quality
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_module_quality_check
|
||||
msgid "module.quality.check"
|
||||
msgstr "μονάδα.ποιότητα.έλεγχος"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,name:0
|
||||
msgid "Name"
|
||||
msgstr "Όνομα"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: wizard_field:quality_detail_save,init,module_file:0
|
||||
msgid "Save report"
|
||||
msgstr "Αποθήκευση αναφοράς"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: wizard_field:quality_detail_save,init,name:0
|
||||
msgid "File name"
|
||||
msgstr "Όνομα αρχείου"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,score:0
|
||||
msgid "Score (%)"
|
||||
msgstr "Σκόρ (%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:quality_detail_save,init,name:0
|
||||
msgid "Save report as .html format"
|
||||
msgstr "Αποθήκευση αναφοράς σε φορμάτ .html"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.detail:0
|
||||
#: field:module.quality.detail,summary:0
|
||||
msgid "Summary"
|
||||
msgstr "Περίληψη"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.actions.wizard,name:base_module_quality.quality_detail_save
|
||||
msgid "Report Save"
|
||||
msgstr "Αποθήκευση Αναφοράς"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: wizard_view:quality_detail_save,init:0
|
||||
msgid "Standard entries"
|
||||
msgstr "Τυπικές εγγραφές"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.detail:0
|
||||
msgid "Save Report"
|
||||
msgstr "Αποθήκευση αναφοράς"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.actions.wizard,name:base_module_quality.create_quality_check_id
|
||||
msgid "Quality Check"
|
||||
msgstr "Έλεγχος ποιότητας"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_module_quality_detail
|
||||
msgid "module.quality.detail"
|
||||
msgstr "Μονάδα.ποιότητα.λεπτομέρεια"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: selection:module.quality.detail,state:0
|
||||
msgid "Done"
|
||||
msgstr "Ολοκληρώθηκε"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.check:0
|
||||
#: view:module.quality.detail:0
|
||||
msgid "Result"
|
||||
msgstr "Αποτέλεσμα"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: wizard_button:quality_detail_save,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Ακύρωση"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,message:0
|
||||
msgid "Message"
|
||||
msgstr "Μήνυμα"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,quality_check_id:0
|
||||
msgid "Quality"
|
||||
msgstr "Ποιότητα"
|
||||
@@ -8,13 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-11 12:21+0000\n"
|
||||
"Last-Translator: jaredbetis <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:16+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
@@ -71,8 +72,8 @@ msgid ""
|
||||
"Some tests are more critical than others, so they have a bigger weight in "
|
||||
"the computation of final rating"
|
||||
msgstr ""
|
||||
"Algunos exámenes son analíticos que otros, por lo que tienen un mayor peso "
|
||||
"en la computación de la nota final"
|
||||
"Algunas pruebas son más críticas que otras, por lo que tienen un mayor peso "
|
||||
"en el cálculo de la valoración final."
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.check:0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -48,7 +48,7 @@ PEP-8 Test , copyright of py files check, method can not call from loops
|
||||
list_files.append(os.path.join(i, j))
|
||||
py_list = []
|
||||
for file_py in list_files:
|
||||
if file_py.split('.')[-1] == 'py' and not file_py.endswith('__init__.py') and not file_py.endswith('__terp__.py'):
|
||||
if file_py.split('.')[-1] == 'py' and not file_py.endswith('__init__.py') and not file_py.endswith('__openerp__.py'):
|
||||
file_path = os.path.join(module_path, file_py)
|
||||
py_list.append(file_path)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -50,7 +50,7 @@ class quality_test(base_module_quality.abstract_quality_check):
|
||||
flag = False
|
||||
self.result_details += '''<html><body><head>%s</head>'''%(self.get_style())
|
||||
for file_py in list_files:
|
||||
if file_py.split('.')[-1] == 'py' and not file_py.endswith('__init__.py') and not file_py.endswith('__terp__.py'):
|
||||
if file_py.split('.')[-1] == 'py' and not file_py.endswith('__init__.py') and not file_py.endswith('__openerp__.py'):
|
||||
if not flag:
|
||||
flag = True
|
||||
file_path = os.path.join(module_path, file_py)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -82,7 +82,7 @@ This test checks if the module satisfy tiny structure
|
||||
# module files calculation (module.py,module_view.xml,etc..)
|
||||
com_list = ['_unit_test.xml', '.py', '_view.xml', '_workflow.xml' , '_wizard.xml', '_report.xml', '_data.xml', '_demo.xml', '_security.xml', '_sequence.xml', '_graph.xml']
|
||||
com_list = map(lambda x: module_name + x, com_list)
|
||||
main_file = ['__init__.py', '__terp__.py']
|
||||
main_file = ['__init__.py', '__openerp__.py']
|
||||
com_list.extend(main_file)
|
||||
module_dict['module'] = filter(lambda x: len(x.split(".")) > 1, module_dict['module'])
|
||||
score = self.get_score(module_dict['module'], com_list)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -49,13 +49,13 @@ class quality_test(base_module_quality.abstract_quality_check):
|
||||
score = 1.0
|
||||
feel_good_factor = 0
|
||||
feel_bad_factor = 0
|
||||
if '__terp__.py' not in list_files:
|
||||
if '__openerp__.py' not in list_files:
|
||||
self.no_terp = True
|
||||
self.result += _("The module does not contain the __terp__.py file")
|
||||
self.result += _("The module does not contain the __openerp__.py file")
|
||||
return None
|
||||
result_dict = {}
|
||||
result_dict1 = {}
|
||||
terp_file = os.path.join(module_path,'__terp__.py')
|
||||
terp_file = os.path.join(module_path,'__openerp__.py')
|
||||
res = eval(tools.file_open(terp_file).read())
|
||||
terp_keys = ['category', 'name', 'description', 'author', 'website', 'update_xml', 'init_xml', 'depends', 'version', 'active', 'installable', 'demo_xml']
|
||||
for key in terp_keys:
|
||||
@@ -117,7 +117,7 @@ class quality_test(base_module_quality.abstract_quality_check):
|
||||
|
||||
self.result_details += self.get_result_details(result_dict)
|
||||
self.result_details += self.get_result_details(result_dict1)
|
||||
return [_('__terp__.py file'), score]
|
||||
return [_('__openerp__.py file'), score]
|
||||
|
||||
def run_test(self, cr, uid, module_path):
|
||||
terp_score = self.run_test_terp(cr, uid, module_path)
|
||||
@@ -125,7 +125,7 @@ class quality_test(base_module_quality.abstract_quality_check):
|
||||
if self.score*100 < self.min_score:
|
||||
self.message = 'Score is below than minimal score(%s%%)' % self.min_score
|
||||
if terp_score:
|
||||
self.result = self.get_result({'__terp__.py': terp_score})
|
||||
self.result = self.get_result({'__openerp__.py': terp_score})
|
||||
return None
|
||||
|
||||
def get_result(self, dict_terp):
|
||||
@@ -144,4 +144,4 @@ class quality_test(base_module_quality.abstract_quality_check):
|
||||
return res
|
||||
return ""
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-06-15 07:18+0000\n"
|
||||
"Last-Translator: Panagiotis Kranidiotis <kranidiotis@vatica.org>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:21+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -26,6 +26,9 @@ msgid ""
|
||||
"records.\n"
|
||||
" e.g. res_partner.id=3"
|
||||
msgstr ""
|
||||
"Δώστε μια έκφραση ιγα τον τομέα με βάση το πως θέλετε να φιλτράρετε τα "
|
||||
"αρχεία.\n"
|
||||
" π.χ. res_partner.id=3"
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_graph_type:0
|
||||
@@ -50,7 +53,7 @@ msgstr "Mode Γραφήματος"
|
||||
#. module: base_report_creator
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
@@ -161,7 +164,7 @@ msgstr "Δημιουργία Μενού Αναφοράς"
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
msgid "Form"
|
||||
msgstr ""
|
||||
msgstr "Φόρμα"
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * board_association
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:15+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: board_association
|
||||
#: model:ir.ui.menu,name:board_association.menu_board_associations_manager
|
||||
msgid "Associations"
|
||||
msgstr "Συνεταιρισμοί"
|
||||
|
||||
#. module: board_association
|
||||
#: model:ir.module.module,shortdesc:board_association.module_meta_information
|
||||
msgid "Dashboard for Associations"
|
||||
msgstr "Πίνακας για Συνεταιρισμούς"
|
||||
|
||||
#. module: board_association
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_association.open_board_associations_manager
|
||||
msgid "Association Dashboard"
|
||||
msgstr "Πίνακας Συνεταιρισμών"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
msgid "My tasks"
|
||||
msgstr "Οι αναθέσεις μου"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
msgid "New members"
|
||||
msgstr "Νέα μέλη"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
msgid "Unpaid Invoices"
|
||||
msgstr "Απλήρωτα Τιμολόγια"
|
||||
|
||||
#. module: board_association
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
msgid "Next Events"
|
||||
msgstr "Επόμενα Συμβάντα"
|
||||
|
||||
#. module: board_association
|
||||
#: view:board.board:0
|
||||
msgid "Registrations by Events"
|
||||
msgstr "Καταχωρήσεις ανά Συμβάν"
|
||||
@@ -0,0 +1,125 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * board_auction
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:15+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: board_auction
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Invalid XML for View Architecture!"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Objects by day"
|
||||
msgstr "Αντικείμενα ανά Ημέρα"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Objects statistics"
|
||||
msgstr "Στατιστικά Αντικειμένων"
|
||||
|
||||
#. module: board_auction
|
||||
#: model:ir.ui.menu,name:board_auction.menu_board_auction_manager
|
||||
msgid "Auction Manager"
|
||||
msgstr "Υπεύθυνος Δημοπρασίας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Summary pointing by user"
|
||||
msgstr "Περίληψη χτυπημάτων ανά χρήστη"
|
||||
|
||||
#. module: board_auction
|
||||
#: model:ir.ui.menu,name:board_auction.menu_board_auction
|
||||
msgid "Auction Member"
|
||||
msgstr "Μέλος Δημοπρασίας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "My Latest Deposits"
|
||||
msgstr "Οι Τελευταίες Καταθέσεις μου"
|
||||
|
||||
#. module: board_auction
|
||||
#: model:ir.actions.act_window,name:board_auction.open_board_auction
|
||||
msgid "Auction member board"
|
||||
msgstr "Πίνακας μέλους δημοπρασίας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Auction manager "
|
||||
msgstr "Υπεύθυνος Δημοπρασίας "
|
||||
|
||||
#. module: board_auction
|
||||
#: model:ir.module.module,shortdesc:board_auction.module_meta_information
|
||||
msgid "Board for Auction"
|
||||
msgstr "Πίνακας Δημοπρασίας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Estimations/Adjudication"
|
||||
msgstr "Εκτιμήσεις/Κατακυρώσεις"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Total Adjudications"
|
||||
msgstr "Σύνολο Κατακυρώσεων"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Latest objects"
|
||||
msgstr "Τελευταία αντικείμενα"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Latest deposits"
|
||||
msgstr "Τελευταίες καταθέσεις"
|
||||
|
||||
#. module: board_auction
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Menu"
|
||||
msgstr "Μενού"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "My objects By Day"
|
||||
msgstr "Τα Ανικείμενά μου ανά Ημέρα"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "My board"
|
||||
msgstr "Ο Πίνακάς μου"
|
||||
|
||||
#. module: board_auction
|
||||
#: model:ir.actions.act_window,name:board_auction.open_board_auction_manager
|
||||
msgid "Auction manager board"
|
||||
msgstr "Πίνακας Υπεύθυνου Δημοπρασίας"
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "Min/Adj/Max"
|
||||
msgstr "Ελαχ./Επικ./Μέγ."
|
||||
|
||||
#. module: board_auction
|
||||
#: view:board.board:0
|
||||
msgid "My Latest Objects"
|
||||
msgstr "Τα Τελευταία μου Αντικείμενα"
|
||||
@@ -0,0 +1,122 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * board_crm_configuration
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:16+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: model:ir.module.module,shortdesc:board_crm_configuration.module_meta_information
|
||||
msgid "Dashboard for CRM Configuration"
|
||||
msgstr "Πίνακας Ρυθμίσεων CRM"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.ui.menu,name:board_crm_configuration.menu_board_statistics_dash
|
||||
msgid "Statistics Dashboard"
|
||||
msgstr "Πίνακας Στατιστικών Μεγεθών"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.act_oppor_categ
|
||||
msgid "Opportunities By Categories"
|
||||
msgstr "Ευκαιρίες ανά Κατηγορίες"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.act_my_cases
|
||||
msgid "My Cases"
|
||||
msgstr "Τα Θέματά μου"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.open_board_crm
|
||||
msgid "CRM Dashboard"
|
||||
msgstr "Πίνακας Αναφορών CRM"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.ui.menu,name:board_crm_configuration.menu_board_crm
|
||||
msgid "Connecting Dashboard"
|
||||
msgstr "Σύνδεση Πινάκων Αναφορών"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.act_leads_month_user
|
||||
msgid "Leads Of The Month By User"
|
||||
msgstr "Σύνδεσμοι Μηνός ανά Χρήστη"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: view:report.crm.case.section.stage:0
|
||||
msgid "Leads By Stage"
|
||||
msgstr "Σύνδεσμοι ανά Στάδιο"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
msgid "My Meetings"
|
||||
msgstr "Οι Συσκέψεις μου"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: model:ir.ui.menu,name:board_crm_configuration.menu_board_crm_config
|
||||
msgid "CRM Configuration"
|
||||
msgstr "Ρυθμίσεις CRM"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.act_jobs_categ
|
||||
msgid "Jobs Requests Of The Month by Applied Job"
|
||||
msgstr "Αιτήσεις Εργασίας του Μήνα ανά Θέση Αίτησης"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
msgid "My Sales Pipeline"
|
||||
msgstr "Το Κανάλι Πωλήσεών μου"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:report.crm.case.user:0
|
||||
msgid "Cases by User and Section"
|
||||
msgstr "Θέματα ανά Χρήστη και Τμήμα"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
msgid "My Leads By Stage"
|
||||
msgstr "Οι Σύνδεσμοί μου ανά Στάδιο"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:report.crm.case.categ:0
|
||||
msgid "Cases by Sections and Categories"
|
||||
msgstr "Θέματα ανά Τμήμα και Κατηγορίες"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: model:ir.actions.act_window,name:board_crm_configuration.open_board_statistical_dash
|
||||
msgid "CRM - Statistics Dashboard"
|
||||
msgstr "CRM - Πίνακας Στατιστικών Μεγεθών"
|
||||
|
||||
#. module: board_crm_configuration
|
||||
#: view:board.board:0
|
||||
msgid "My Leads"
|
||||
msgstr "Οι Σύνδεσμοί μου"
|
||||
@@ -0,0 +1,92 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * board_document
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:21+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: board_document
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "New Files"
|
||||
msgstr "Νέα Αρχεία"
|
||||
|
||||
#. module: board_document
|
||||
#: model:ir.actions.act_window,name:board_document.open_board_document_manager
|
||||
#: model:ir.ui.menu,name:board_document.menu_board_document_manager
|
||||
msgid "Document Dashboard"
|
||||
msgstr "Πίνακας Εγγραφών"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Wall of Shame"
|
||||
msgstr "Τείχος της Ντροπής"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "File Size by Month"
|
||||
msgstr "Μέγεθος Αρχείων ανά Μήνα"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Files by Month"
|
||||
msgstr "Αρχεία ανά Μήνα"
|
||||
|
||||
#. module: board_document
|
||||
#: model:ir.actions.act_window,name:board_document.open_board_document_manager1
|
||||
#: model:ir.ui.menu,name:board_document.menu_board_document_manager1
|
||||
msgid "Statistics by User"
|
||||
msgstr "Στατιστικά ανά Χρήστη"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Files by Resource Type"
|
||||
msgstr "Αρχεία ανά Τύπο Προέλευσης"
|
||||
|
||||
#. module: board_document
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: board_document
|
||||
#: model:ir.module.module,shortdesc:board_document.module_meta_information
|
||||
msgid "Dashboard for Document Management"
|
||||
msgstr "Πίνακας Διαχείρισης Εγγραφών"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Files by Partner"
|
||||
msgstr "Αρχεία ανά Συνεργάτη"
|
||||
|
||||
#. module: board_document
|
||||
#: model:ir.ui.menu,name:board_document.menu_board_document
|
||||
msgid "Document"
|
||||
msgstr "Έγγραφο"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Files by Users"
|
||||
msgstr "Αρχεία ανά Χρήστη"
|
||||
|
||||
#. module: board_document
|
||||
#: view:board.board:0
|
||||
msgid "Document board"
|
||||
msgstr "Πίνακας εγγράφου"
|
||||
@@ -0,0 +1,142 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * board_project
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:22+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My project's planning"
|
||||
msgstr "Σχεδιασμός Έργων μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:hr_timesheet_sheet.sheet:0
|
||||
#: model:ir.actions.act_window,name:board_project.act_hr_timesheet_sheet
|
||||
msgid "Timesheets"
|
||||
msgstr "Φύλλα Χρόνου Εργασίας"
|
||||
|
||||
#. module: board_project
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_project.act_my_project
|
||||
msgid "My projects"
|
||||
msgstr "Τα Έργα μου"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.actions.act_window,name:board_project.action_view_task_tree_deadline
|
||||
msgid "My Task's Deadlines"
|
||||
msgstr "Προθεσμίες Αναθέσεών μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:project.task:0
|
||||
msgid "My Tasks"
|
||||
msgstr "Οι Αναθέσεις μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_project.action_view_board_note_tree
|
||||
msgid "Public Notes"
|
||||
msgstr "Κοινοποιημένες Σημειώσεις"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.actions.act_window,name:board_project.open_board_project
|
||||
#: model:ir.ui.menu,name:board_project.menu_board_project
|
||||
msgid "Project Dashboard"
|
||||
msgstr "Πίνακας Έργων"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.module.module,shortdesc:board_project.module_meta_information
|
||||
msgid "Board for project users"
|
||||
msgstr "Πίνακας Χρηστών Έργου"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.actions.act_window,name:board_project.action_project_pipeline_user
|
||||
msgid "Pipeline of tasks"
|
||||
msgstr "Κανάλι Αναθέσεων"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My Planning"
|
||||
msgstr "Ο Σχεδιασμός μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_project.act_my_account
|
||||
msgid "My accounts to invoice"
|
||||
msgstr "Οι λογαριασμοί μου προς τιμολόγηση"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.actions.act_window,name:board_project.open_board_project_manager
|
||||
#: model:ir.ui.menu,name:board_project.menu_board_project_manager
|
||||
msgid "Project Manager Dashboard"
|
||||
msgstr "Πίνακας Αναφορών Διευθυντή Έργου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My Deadlines"
|
||||
msgstr "Οι Προθεσμίες μου"
|
||||
|
||||
#. module: board_project
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "User's timesheets"
|
||||
msgstr "Φύλλα χρόνου χρηστών"
|
||||
|
||||
#. module: board_project
|
||||
#: model:ir.ui.menu,name:board_project.next_id_86
|
||||
msgid "Project"
|
||||
msgstr "Έργο"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "Project manager board"
|
||||
msgstr "Πίνακας διευθυντή έργου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board_project.action_view_task_tree
|
||||
msgid "My Open Tasks"
|
||||
msgstr "Οι Ανοικτές Αναθέσεις μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My Board"
|
||||
msgstr "Ο Πίνακάς μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My tasks board"
|
||||
msgstr "Ο πίνακας αναθέσεών μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My user's pipeline"
|
||||
msgstr "Το κανάλι μου"
|
||||
|
||||
#. module: board_project
|
||||
#: view:board.board:0
|
||||
msgid "My Timesheet"
|
||||
msgstr "Το Φύλλο Χρόνου μου"
|
||||
@@ -32,16 +32,6 @@ class calendar_event_export(osv.osv_memory):
|
||||
"""
|
||||
Export Calendar Event.
|
||||
"""
|
||||
def process_export_ics(self, cr, uid, ids, context):
|
||||
"""
|
||||
Get Default value for file_path field.
|
||||
"""
|
||||
model = context.get('model', 'basic.calendar')
|
||||
model_obj = self.pool.get(model)
|
||||
|
||||
calendar = model_obj.export_cal(cr, uid, context['active_ids'], context)
|
||||
self.write(cr, uid, ids, {'file_path': base64.encodestring(calendar)})
|
||||
return False
|
||||
|
||||
def default_get(self, cr, uid, fields, context):
|
||||
"""
|
||||
@@ -54,6 +44,9 @@ class calendar_event_export(osv.osv_memory):
|
||||
name = 'OpenERP %s.ics' % (model_obj._description)
|
||||
if 'name' in fields:
|
||||
res.update({'name': name})
|
||||
if 'file_path' in fields:
|
||||
calendar = model_obj.export_cal(cr, uid, context['active_ids'], context)
|
||||
res.update({'file_path': base64.encodestring(calendar)})
|
||||
return res
|
||||
|
||||
_name = "calendar.event.export"
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<button name="process_export_ics" icon="gtk-execute" string="Genetate ics" type="object"/>
|
||||
<button icon="gtk-cancel" special="cancel" string="_Cancel"/>
|
||||
<label string=""/>
|
||||
<button icon="gtk-close" special="cancel" string="_Close"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -69,7 +69,6 @@ Create dashboard for CRM that includes:
|
||||
'crm_opportunity_data.xml',
|
||||
'crm_phonecall_data.xml',
|
||||
],
|
||||
|
||||
'update_xml': [
|
||||
'wizard/crm_lead_to_partner_view.xml',
|
||||
'wizard/crm_lead_to_opportunity_view.xml',
|
||||
|
||||
@@ -5,18 +5,5 @@
|
||||
<field name="name">Sales Department</field>
|
||||
<field name="code">Sales</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="ir_cron_crm_action" model="ir.cron">
|
||||
<field name="name">Check cases rules</field>
|
||||
<field name="interval_number">4</field>
|
||||
<field name="interval_type">hours</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'crm.case'" name="model"/>
|
||||
<field eval="'_check'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -30,12 +30,10 @@ from crm import crm_case
|
||||
|
||||
class crm_lead(osv.osv, crm_case):
|
||||
""" CRM Lead Case """
|
||||
|
||||
_name = "crm.lead"
|
||||
_description = "Lead"
|
||||
_order = "priority, id desc"
|
||||
_inherit = ['res.partner.address']
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
_inherit = ['mailgate.thread','res.partner.address']
|
||||
|
||||
def _compute_day(self, cr, uid, ids, fields, args, context={}):
|
||||
"""
|
||||
@@ -112,7 +110,6 @@ and users by email"),
|
||||
'write_date': fields.datetime('Update Date' , readonly=True),
|
||||
|
||||
# Lead fields
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Lead Source', \
|
||||
domain="[('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.lead')]"),
|
||||
@@ -142,6 +139,8 @@ and users by email"),
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -38,9 +38,8 @@ from tools import command_re
|
||||
|
||||
class mailgate_thread(osv.osv):
|
||||
""" mailgate_thread """
|
||||
|
||||
_name = "mailgate.thread"
|
||||
_inherit = "mailgate.thread"
|
||||
_inherit = "mailgate.thread"
|
||||
|
||||
def message_new(self, cr, uid, msg, context):
|
||||
"""
|
||||
|
||||
@@ -43,9 +43,7 @@ class crm_meeting(osv.osv, crm_case):
|
||||
_name = 'crm.meeting'
|
||||
_description = "Meeting"
|
||||
_order = "id desc"
|
||||
_inherit = ["calendar.event"]
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread',"calendar.event"]
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'name': fields.char('Summary', size=124, required=True),
|
||||
@@ -59,7 +57,6 @@ class crm_meeting(osv.osv, crm_case):
|
||||
'id': fields.integer('ID'),
|
||||
|
||||
# Meeting fields
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \
|
||||
domain="[('object_id.model', '=', 'crm.meeting')]", \
|
||||
),
|
||||
@@ -69,6 +66,8 @@ class crm_meeting(osv.osv, crm_case):
|
||||
'event_id', 'attendee_id', 'Attendees'),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date_deadline': fields.datetime('Deadline'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
'state': fields.selection([('open', 'Confirmed'),
|
||||
('draft', 'Unconfirmed'),
|
||||
('cancel', 'Cancelled'),
|
||||
|
||||
@@ -31,13 +31,11 @@ class crm_phonecall(osv.osv, crm_case):
|
||||
_name = "crm.phonecall"
|
||||
_description = "Phonecall"
|
||||
_order = "id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread']
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'name': fields.char('Name', size=64),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
'date_action_next': fields.datetime('Next Action', readonly=1),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
@@ -84,6 +82,8 @@ class crm_phonecall(osv.osv, crm_case):
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'opportunity_id': fields.many2one ('crm.lead', 'Opportunity'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-06-22 17:47+0000\n"
|
||||
"Last-Translator: Roberto Lizana <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:20+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-23 03:52+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -84,7 +85,7 @@ msgstr "Costos previstos"
|
||||
#. module: crm
|
||||
#: wizard_field:crm.job.partner_create,init,close:0
|
||||
msgid "Close job request"
|
||||
msgstr "Requerimiento de trabajo a finalizar"
|
||||
msgstr "Cerrar solicitud de empleo"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.stage,name:0
|
||||
@@ -2291,7 +2292,7 @@ msgstr "Julio"
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_oppor1
|
||||
msgid "Prospecting"
|
||||
msgstr ""
|
||||
msgstr "Prospección"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,partner_name2:0
|
||||
@@ -2406,7 +2407,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Search Jobs"
|
||||
msgstr ""
|
||||
msgstr "Buscar empleos"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.history,log_id:0
|
||||
@@ -2429,7 +2430,7 @@ msgstr "Restablecer a no confirmado"
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
msgid "Helpdesk Support"
|
||||
msgstr ""
|
||||
msgstr "Asistencia técnica"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,email_cc:0
|
||||
@@ -2447,7 +2448,7 @@ msgstr "Nota"
|
||||
#: field:report.crm.case.section.categ2,delay_close:0
|
||||
#: field:report.crm.case.section.stage,delay_close:0
|
||||
msgid "Delay Close"
|
||||
msgstr ""
|
||||
msgstr "Retrasar cierre"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.case,priority:0
|
||||
|
||||
@@ -1,91 +1,87 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
<record id="process_process_contractprocess0" model="process.process">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="model_id" ref="mail_gateway.model_mailgate_thread"/>
|
||||
<field eval=""""Contract"""" name="name"/>
|
||||
</record>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval=""""Contract"""" name="name"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
<record id="process_node_leads0" model="process.node">
|
||||
<field name="model_id" ref="mail_gateway.model_mailgate_thread"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Leads"""" name="name"/>
|
||||
<field eval=""""Very first contact with new prospect"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_leads0" model="process.node">
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Leads"""" name="name"/>
|
||||
<field eval=""""Very first contact with new prospect"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_partner0" model="process.node">
|
||||
<field name="menu_id" ref="base.menu_partner_form"/>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Partner"""" name="name"/>
|
||||
<field eval=""""Convert to prospect to business partner"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_partner0" model="process.node">
|
||||
<field name="menu_id" ref="base.menu_partner_form"/>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Partner"""" name="name"/>
|
||||
<field eval=""""Convert to prospect to business partner"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_opportunities0" model="process.node">
|
||||
<field name="model_id" ref="mail_gateway.model_mailgate_thread"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Opportunities"""" name="name"/>
|
||||
<field eval=""""When a real project/opportunity is detected"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_opportunities0" model="process.node">
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Opportunities"""" name="name"/>
|
||||
<field eval=""""When a real project/opportunity is detected"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_meeting0" model="process.node">
|
||||
<field name="model_id" ref="mail_gateway.model_mailgate_thread"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Meeting"""" name="name"/>
|
||||
<field eval=""""Schedule a normal or phone meeting"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_meeting0" model="process.node">
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Meeting"""" name="name"/>
|
||||
<field eval=""""Schedule a normal or phone meeting"""" name="note"/>
|
||||
<field name="process_id" ref="process_process_contractprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'done', 'cancel')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
<record id="process_transition_leadopportunity0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Prospect Opportunity"""" name="name"/>
|
||||
<field eval=""""Creating business opportunities from Leads"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_opportunities0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
||||
</record>
|
||||
<record id="process_transition_leadopportunity0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Prospect Opportunity"""" name="name"/>
|
||||
<field eval=""""Creating business opportunities from Leads"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_opportunities0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_leadpartner0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Prospect Partner"""" name="name"/>
|
||||
<field eval=""""Prospect is converting to business partner"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_partner0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
||||
</record>
|
||||
<record id="process_transition_leadpartner0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Prospect Partner"""" name="name"/>
|
||||
<field eval=""""Prospect is converting to business partner"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_partner0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_leads0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_opportunitymeeting0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Opportunity Meeting"""" name="name"/>
|
||||
<field eval=""""Normal or phone meeting for opportunity"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_meeting0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_opportunities0"/>
|
||||
</record>
|
||||
<record id="process_transition_opportunitymeeting0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Opportunity Meeting"""" name="name"/>
|
||||
<field eval=""""Normal or phone meeting for opportunity"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_meeting0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_opportunities0"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -109,7 +109,6 @@ class crm_lead_report(osv.osv):
|
||||
'date_closed': fields.date('Close Date', readonly=True),
|
||||
'company_id': fields.many2one('res.company', 'Company', readonly=True),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
|
||||
|
||||
'type':fields.selection([
|
||||
('lead','Lead'),
|
||||
('opportunity','Opportunity'),
|
||||
@@ -148,7 +147,7 @@ class crm_lead_report(osv.osv):
|
||||
0 as avg_answers,
|
||||
0.0 as perc_done,
|
||||
0.0 as perc_cancel,
|
||||
(select count(id) from mailgate_message where thread_id=c.id) as email,
|
||||
(select count(id) from mailgate_message where res_id=c.id and res_model='crm.lead') as email,
|
||||
date_trunc('day',c.create_date) as create_date,
|
||||
avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close,
|
||||
avg(extract('epoch' from (c.date_deadline - c.date_closed)))/(3600*24) as delay_expected,
|
||||
|
||||
@@ -185,23 +185,12 @@ class crm_lead_forward_to_partner(osv.osv_memory):
|
||||
email_from = this.email_from or False
|
||||
case_pool._history(cr, uid, [case], _('Forward'), history=True, email=this.email_to, details=body, email_from=email_from)
|
||||
|
||||
flag = False
|
||||
if case.section_id and case.section_id.server_id:
|
||||
flag = smtp_pool.send_email(
|
||||
cr=cr,
|
||||
uid=uid,
|
||||
server_id=case.section_id.server_id.id,
|
||||
emailto=emails,
|
||||
subject=this.subject,
|
||||
body="<pre>%s</pre>" % body,
|
||||
)
|
||||
else:
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
this.subject,
|
||||
body,
|
||||
)
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
this.subject,
|
||||
body,
|
||||
)
|
||||
if this.add_cc:
|
||||
case_pool.write(cr, uid, case.id, {'email_cc' : case.email_cc and case.email_cc + ', ' + this.email_to or this.email_to})
|
||||
return {}
|
||||
|
||||
@@ -96,11 +96,10 @@ class crm_send_new_email(osv.osv_memory):
|
||||
else:
|
||||
hist = hist_obj.browse(cr, uid, res_id)
|
||||
message_id = hist.message_id
|
||||
model = hist.model_id.model
|
||||
model = hist.res_model
|
||||
model_pool = self.pool.get(model)
|
||||
res_ids = model_pool.search(cr, uid, [('thread_id','=', hist.thread_id.id)])
|
||||
res_id = res_ids and res_ids[0] or False
|
||||
case = model_pool.browse(cr, uid, res_id)
|
||||
case = model_pool.browse(cr, uid, hist.res_id)
|
||||
res_id = hist.res_id
|
||||
emails = [obj.email_to] + (obj.email_cc or '').split(',')
|
||||
emails = filter(None, emails)
|
||||
body = obj.text
|
||||
@@ -120,15 +119,14 @@ class crm_send_new_email(osv.osv_memory):
|
||||
if message_id:
|
||||
x_headers['References'] = "%s" % (message_id)
|
||||
|
||||
flag = False
|
||||
|
||||
print case.section_id
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
obj.subject,
|
||||
body,
|
||||
attach=attach,
|
||||
reply_to=case.section_id.reply_to,
|
||||
reply_to=case.section_id and case.section_id.reply_to or email_from,
|
||||
openobject_id=str(case.id),
|
||||
x_headers=x_headers
|
||||
)
|
||||
@@ -196,15 +194,14 @@ class crm_send_new_email(osv.osv_memory):
|
||||
include_original = context and context.get('include_original', False) or False
|
||||
res = {}
|
||||
for hist in hist_obj.browse(cr, uid, res_ids, context=context):
|
||||
model = hist.model_id.model
|
||||
model = hist.res_model
|
||||
|
||||
# In the case where the crm.case does not exist in the database
|
||||
if not model:
|
||||
return {}
|
||||
|
||||
model_pool = self.pool.get(model)
|
||||
res_ids = model_pool.search(cr, uid, [('thread_id','=', hist.thread_id.id)])
|
||||
res_id = res_ids and res_ids[0] or False
|
||||
res_id = hist.res_id or False
|
||||
case = model_pool.browse(cr, uid, res_id)
|
||||
if 'email_to' in fields:
|
||||
res.update({'email_to': case.email_from or hist.email_from or False})
|
||||
|
||||
@@ -9,13 +9,15 @@
|
||||
<field name="model">crm.send.mail</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send New Mail" col="2">
|
||||
<separator string="Send New Mail" colspan="2"/>
|
||||
<form string="Send New Mail" col="4">
|
||||
<separator string="Send New Mail" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<notebook colspan="2">
|
||||
<field name="subject" colspan="6"/>
|
||||
</group>
|
||||
<notebook colspan="6">
|
||||
<page string="Message">
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
</page>
|
||||
@@ -31,8 +33,8 @@
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<separator string="" colspan="2"/>
|
||||
<group colspan="2" col="4" >
|
||||
<separator string="" colspan="6"/>
|
||||
<group colspan="6" col="4" >
|
||||
<field name="state" />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send" icon="gtk-go-forward" />
|
||||
|
||||
@@ -29,10 +29,8 @@ class crm_claim(osv.osv, crm.crm_case):
|
||||
_name = "crm.claim"
|
||||
_description = "Claim Cases"
|
||||
_order = "id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread']
|
||||
_columns = {
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
@@ -90,6 +88,8 @@ class crm_claim(osv.osv, crm.crm_case):
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -28,10 +28,8 @@ class crm_fundraising(osv.osv, crm.crm_case):
|
||||
_name = "crm.fundraising"
|
||||
_description = "Fund Raising Cases"
|
||||
_order = "id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread']
|
||||
_columns = {
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'id': fields.integer('ID'),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
@@ -87,6 +85,8 @@ class crm_fundraising(osv.osv, crm.crm_case):
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -28,10 +28,8 @@ class crm_helpdesk(osv.osv, crm.crm_case):
|
||||
_name = "crm.helpdesk"
|
||||
_description = "Helpdesk Cases"
|
||||
_order = "id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread']
|
||||
_columns = {
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-06-15 07:19+0000\n"
|
||||
"Last-Translator: Panagiotis Kranidiotis <kranidiotis@vatica.org>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:23+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:16+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -51,7 +51,7 @@ msgstr "crm_profiling management"
|
||||
#. module: crm_profiling
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: field:crm_profiling.answer,name:0
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 12:23+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:24+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:18+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: document
|
||||
@@ -106,7 +106,7 @@ msgstr "Επισυνάψεις"
|
||||
#. module: document
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: document
|
||||
#: selection:document.directory,type:0
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-28 07:56+0000\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:25+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:18+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: document
|
||||
@@ -53,7 +53,7 @@ msgstr "¡Error! No puede crear directorios recursivos."
|
||||
#. module: document
|
||||
#: model:ir.ui.menu,name:document.menu_document_configuration
|
||||
msgid "Document Configuration"
|
||||
msgstr "Configuración documento"
|
||||
msgstr "Configuración de documentos"
|
||||
|
||||
#. module: document
|
||||
#: view:ir.attachment:0
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# Greek 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 <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-05-30 15:14+0000\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:29+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: document_webdav_old
|
||||
#: model:ir.module.module,description:document_webdav_old.module_meta_information
|
||||
msgid ""
|
||||
"This is a complete document management system:\n"
|
||||
"\t* WebDav Interface\n"
|
||||
"\t* User Authentification\n"
|
||||
"\t* Document Indexation\n"
|
||||
msgstr ""
|
||||
"Αυτό είναι ένα ολοκληρωνένο σύστημα διαχείρισης εγγράφων:\n"
|
||||
"\t * WebDav περιβάλλον\n"
|
||||
"\t * Γνησιότητα Χρήστη\n"
|
||||
"\t * Ευρετιριασμός εγγράφων\n"
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-17 18:59+0000\n"
|
||||
"Last-Translator: Andreas Porevopoulos <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:36+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -55,7 +55,7 @@ msgstr "Κυριακή"
|
||||
#. module: hr
|
||||
#: view:res.users:0
|
||||
msgid "Parents"
|
||||
msgstr ""
|
||||
msgstr "Μητρικοί"
|
||||
|
||||
#. module: hr
|
||||
#: constraint:ir.actions.act_window:0
|
||||
@@ -359,7 +359,7 @@ msgstr "Ημερ/νία Εκκίνησης"
|
||||
#. module: hr
|
||||
#: field:res.users,parent_id:0
|
||||
msgid "Parent Users"
|
||||
msgstr ""
|
||||
msgstr "Μητρικοί χρήστες"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_id:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-05-16 08:14+0000\n"
|
||||
"Last-Translator: Panagiotis Kranidiotis <kranidiotis@vatica.org>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:16+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:13+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -60,7 +60,7 @@ msgstr "Τύποι Αποδοχών"
|
||||
#. module: hr_contract
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,employee_id:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-21 16:01+0000\n"
|
||||
"Last-Translator: Μάριος Ζηντίλης <m.zindilis@dmajor.org>\n"
|
||||
"PO-Revision-Date: 2010-06-24 01:34+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -109,6 +109,8 @@ msgid ""
|
||||
"Determine if the product can be visible in the list of product within a "
|
||||
"selection from an HR expense sheet line."
|
||||
msgstr ""
|
||||
"Προσδιορίστε αν το προϊόν μπορεί να είναι ορατό στον κατάλογο των προϊόντων "
|
||||
"σε μια επιλογή από μια σειρά φύλλου δαπάνη HR."
|
||||
|
||||
#. module: hr_expense
|
||||
#: selection:hr.expense.expense,state:0
|
||||
@@ -204,7 +206,7 @@ msgstr "Απόδοση Εξόδων"
|
||||
#. module: hr_expense
|
||||
#: field:hr.expense.expense,journal_id:0
|
||||
msgid "Force Journal"
|
||||
msgstr ""
|
||||
msgstr "Force Journal"
|
||||
|
||||
#. module: hr_expense
|
||||
#: model:ir.actions.act_window,name:hr_expense.expense_my_new
|
||||
@@ -420,6 +422,8 @@ msgstr "Αποδοχή"
|
||||
#: rml:hr.expense:0
|
||||
msgid "This document must be dated and signed for reimbursement"
|
||||
msgstr ""
|
||||
"Το έγγραφο αυτό πρέπει να φέρει ημερομηνία και υπογραφή για την επιστροφή-"
|
||||
"αποζημείωση."
|
||||
|
||||
#. module: hr_expense
|
||||
#: model:process.transition,note:hr_expense.process_transition_refuseexpense0
|
||||
@@ -467,7 +471,7 @@ msgstr "Απορριφθέντα"
|
||||
#. module: hr_expense
|
||||
#: field:product.product,hr_expense_ok:0
|
||||
msgid "Can be Expensed"
|
||||
msgstr ""
|
||||
msgstr "Μπορούν να δαπανηθούν"
|
||||
|
||||
#. module: hr_expense
|
||||
#: rml:hr.expense:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-19 13:38+0000\n"
|
||||
"Last-Translator: Andreas Porevopoulos <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-24 02:09+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -424,6 +424,41 @@ msgid ""
|
||||
" Administration / Users / Users\n"
|
||||
" for example, you maybe will do it for the user 'admin'.\n"
|
||||
msgstr ""
|
||||
"Ανθρώπινο Δυναμικό: Εντοπισμός διακοπών και ροή εργασίας\n"
|
||||
"\n"
|
||||
" Η μονάδα αυτή σας επιτρέπει να διαχειρίζεστε τα αιτήματα για ρεπό και "
|
||||
"τις αργίες. Για κάθε εργαζόμενο, μπορείτε επίσης να καθορίσετε έναν αριθμό "
|
||||
"διαθέσιμων ρεπό ανά κατάσταση διακοπών.\n"
|
||||
"\n"
|
||||
" Σημειώστε ότι:\n"
|
||||
" - Ένας συγχρονισμό με μια εσωτερική αντζέντα (χρήση της μονάδας CRM) "
|
||||
"είναι δυνατός: για να δημιουργηθεί αυτόματα μια περίπτωση, όταν ένα αίτημα "
|
||||
"διακοπών γίνεται αποδεκτό, θα πρέπει να συνδέσετε την κατάσταση διακοπών σε "
|
||||
"ένα τμήμα υπόθεσης. Μπορείτε να ρυθμίσετε αυτές τις πληροφορίες και το χρώμα "
|
||||
"προτίμησής σας στο\n"
|
||||
" ΑΔ / Διαμόρφωση / Κατάσταση Διακοπών\n"
|
||||
" - Ένας εργαζόμενος μπορεί να κάνει ένα αρνητικό αίτημα διακοπών (αίτηση "
|
||||
"διακοπών για -2 ημέρες για παράδειγμα), αυτό θεωρείται από το σύστημα ως "
|
||||
"ζήτηση για περισσότερες ημέρες αργιών. Θα αυξήσει τη συνολική διαθέσιμη "
|
||||
"κατάσταση διακοπών (αν γίνει αποδεκτή η αίτηση).\n"
|
||||
" - Υπάρχουν δύο τρόποι για να εκτυπώσετε τις διακοπές του εργαζομένου:\n"
|
||||
" * Η πρώτη θα επιτρέψει να επιλεγούν εργαζόμενοι ανά τμήμα και "
|
||||
"χρησιμοποιείται κάνοντας κλικ στο στοιχείο του μενού που βρίσκεται στο\n"
|
||||
" ΑΔ / Αίτηση Διακοπών / Εκτύπωση περίληψης διακοπών\n"
|
||||
" * Ο δεύτερος θα σας επιτρέψει να επιλέξετε την έκθεση διακοπών για "
|
||||
"συγκεκριμένα άτομα. Πηγαίνετε στον κατάλογο\n"
|
||||
" ΑΔ / Εργαζόμενοι / Εργαζόμενοι\n"
|
||||
" στη συνέχεια, επιλέξτε αυτούς που θέλετε να επιλέξετε, κάντε "
|
||||
"κλικ στο εικονίδιο εκτύπωσης και επιλέξτε την επιλογή\n"
|
||||
" «Συνοπτική Εκτύπωση των διακοπών των εργαζομένων»\n"
|
||||
" Ο οδηγός σας επιτρέπει να επιλέξετε αν θέλετε να εκτυπώσετε είτε τις "
|
||||
"επιβεβαίομένες & Επικυρωμένες διακοπές ή μόνο τις Επικυρωμένες. Αυτές οι "
|
||||
"καταστάσεις πρέπει να καθοριστούν από ένα χρήστη από την ομάδα «ΑΔ» και με "
|
||||
"το ρόλο «διακοπές. Μπορείτε να ορίσετε τα χαρακτηριστικά αυτά στην καρτέλα "
|
||||
"ασφάλειας από τα δεδομένα ενός χρήστη στη\n"
|
||||
" Διαχείριση / Χρήστες / Χρήστες\n"
|
||||
" Για παράδειγμα, μπορείτε ίσως να το κάνετε για τον χρήστη "
|
||||
"'admin'.\n"
|
||||
|
||||
#. module: hr_holidays
|
||||
#: wizard_view:hr.holidays.summary,notify:0
|
||||
|
||||
@@ -57,11 +57,11 @@ class hr_applicant(osv.osv, crm.crm_case):
|
||||
_name = "hr.applicant"
|
||||
_description = "Applicant"
|
||||
_order = "id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
|
||||
_inherit = ['mailgate.thread']
|
||||
_columns = {
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
|
||||
'description': fields.text('Description'),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-05 10:40+0000\n"
|
||||
"Last-Translator: Albert Cervera i Areny - http://www.NaN-tic.com <albert@nan-"
|
||||
"tic.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:14+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:11+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr_timesheet_invoice
|
||||
@@ -358,7 +358,7 @@ msgstr "Saldo pendiente"
|
||||
#. module: hr_timesheet_invoice
|
||||
#: field:account.analytic.account,to_invoice:0
|
||||
msgid "Reinvoice Costs"
|
||||
msgstr "Refacturar costes"
|
||||
msgstr "Tipo de facturación"
|
||||
|
||||
#. module: hr_timesheet_invoice
|
||||
#: rml:account.analytic.profit:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-05-16 08:54+0000\n"
|
||||
"Last-Translator: Panagiotis Kranidiotis <kranidiotis@vatica.org>\n"
|
||||
"PO-Revision-Date: 2010-06-24 02:09+0000\n"
|
||||
"Last-Translator: Panayiotis Konstantinidis <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:12+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
@@ -45,7 +45,7 @@ msgstr "Φύλλο"
|
||||
#. module: hr_timesheet_sheet
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας"
|
||||
|
||||
#. module: hr_timesheet_sheet
|
||||
#: field:hr_timesheet_sheet.sheet,total_attendance:0
|
||||
|
||||
@@ -30,14 +30,10 @@ class mailgate_thread(osv.osv):
|
||||
'''
|
||||
_name = 'mailgate.thread'
|
||||
_description = 'Mailgateway Thread'
|
||||
_rec_name = 'thread'
|
||||
|
||||
_columns = {
|
||||
'thread': fields.char('Thread', size=32, required=False),
|
||||
'message_ids': fields.one2many('mailgate.message', 'thread_id', 'Messages', domain=[('history', '=', True)], required=False),
|
||||
'log_ids': fields.one2many('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False)]),
|
||||
}
|
||||
|
||||
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=None, context=None):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@@ -60,18 +56,16 @@ class mailgate_thread(osv.osv):
|
||||
if all(isinstance(case_id, (int, long)) for case_id in cases):
|
||||
cases = self.browse(cr, uid, cases, context=context)
|
||||
|
||||
model_obj = self.pool.get('ir.model')
|
||||
att_obj = self.pool.get('ir.attachment')
|
||||
obj = self.pool.get('mailgate.message')
|
||||
|
||||
for case in cases:
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', case._name)])
|
||||
data = {
|
||||
'name': keyword,
|
||||
'user_id': uid,
|
||||
'model_id' : model_ids and model_ids[0] or False,
|
||||
'res_model' : case._name,
|
||||
'res_id': case.id,
|
||||
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'thread_id': case.thread_id.id,
|
||||
'message_id': message_id,
|
||||
}
|
||||
attachments = []
|
||||
@@ -83,7 +77,7 @@ class mailgate_thread(osv.osv):
|
||||
'name': subject or 'History',
|
||||
'history': True,
|
||||
'user_id': uid,
|
||||
'model_id' : model_ids and model_ids[0] or False,
|
||||
'res_model' : case._name,
|
||||
'res_id': case.id,
|
||||
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'description': details or (hasattr(case, 'description') and case.description or False),
|
||||
@@ -94,16 +88,11 @@ class mailgate_thread(osv.osv):
|
||||
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from', False),
|
||||
'partner_id': hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False,
|
||||
'thread_id': case.thread_id.id,
|
||||
'message_id': message_id,
|
||||
'attachment_ids': [(6, 0, attachments)]
|
||||
}
|
||||
res = obj.create(cr, uid, data, context)
|
||||
return True
|
||||
|
||||
__history = history = _history
|
||||
|
||||
|
||||
mailgate_thread()
|
||||
|
||||
class mailgate_message(osv.osv):
|
||||
@@ -112,15 +101,13 @@ class mailgate_message(osv.osv):
|
||||
'''
|
||||
_name = 'mailgate.message'
|
||||
_description = 'Mailgateway Message'
|
||||
_order = 'date desc'
|
||||
|
||||
_order = 'id desc'
|
||||
_columns = {
|
||||
'name':fields.char('Message', size=64),
|
||||
'model_id': fields.many2one('ir.model', 'Model'),
|
||||
'res_model': fields.char('Object Name', size=128),
|
||||
'res_id': fields.integer('Resource ID'),
|
||||
'thread_id':fields.many2one('mailgate.thread', 'Thread'),
|
||||
'date': fields.datetime('Date'),
|
||||
'history': fields.boolean('Is History?', required=False),
|
||||
'history': fields.boolean('Is History?'),
|
||||
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
|
||||
'message': fields.text('Description'),
|
||||
'email_from': fields.char('Email From', size=84),
|
||||
@@ -135,5 +122,3 @@ class mailgate_message(osv.osv):
|
||||
|
||||
mailgate_message()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -127,13 +127,11 @@ class rpc_proxy(object):
|
||||
return self.rpc.execute(self.dbname, self.user_id, self.passwd, *request, **kwargs)
|
||||
|
||||
class email_parser(object):
|
||||
def __init__(self, uid, password, model, email, email_default, dbname, host, port):
|
||||
def __init__(self, uid, password, model, email, email_default, dbname, host, port):
|
||||
self.rpc = rpc_proxy(uid, password, host=host, port=port, dbname=dbname)
|
||||
try:
|
||||
self.model_id = int(model)
|
||||
self.model = str(model)
|
||||
except:
|
||||
self.model_id = self.rpc('ir.model', 'search', [('model', '=', model)])[0]
|
||||
self.model = str(model)
|
||||
self.email = email
|
||||
self.email_default = email_default
|
||||
@@ -188,7 +186,7 @@ class email_parser(object):
|
||||
values = {
|
||||
'message_ids' : [
|
||||
(0, 0, {
|
||||
'model_id' : self.rpc('ir.model', 'search', [('name', '=', self.model)])[0],
|
||||
'res_model' : self.model,
|
||||
'date' : time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'description' : message['body'],
|
||||
'email_from' : msg_from,
|
||||
@@ -200,8 +198,6 @@ class email_parser(object):
|
||||
)
|
||||
]
|
||||
}
|
||||
thread_id = self.rpc('mailgate.thread', 'create', values)
|
||||
data['thread_id'] = thread_id
|
||||
oid = self.rpc(self.model, 'create', data)
|
||||
|
||||
attachments = message['attachment']
|
||||
@@ -216,7 +212,7 @@ class email_parser(object):
|
||||
}
|
||||
self.rpc('ir.attachment', 'create', data_attach)
|
||||
|
||||
return (oid, thread_id,)
|
||||
return (oid, )
|
||||
|
||||
def msg_body_get(self, msg):
|
||||
message = {
|
||||
@@ -320,8 +316,7 @@ class email_parser(object):
|
||||
> create_message(id, msg['From'], msg['To'], 'Send', message['body'])
|
||||
"""
|
||||
values = {
|
||||
'thread_id' : self.rpc(self.model, 'read', [oid], ['thread_id'])[0]['thread_id'][0],
|
||||
'model_id' : self.rpc('ir.model', 'search', [('name', '=', self.model)])[0],
|
||||
'res_model' : self.model,
|
||||
'res_id' : oid,
|
||||
'date' : time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'description' : body,
|
||||
@@ -390,13 +385,7 @@ class email_parser(object):
|
||||
|
||||
logging.info("email: %s -> %s -- %s", msg['From'], self.email, msg['Subject'])
|
||||
(case_id, emails) = self.msg_test(msg, case_str)
|
||||
thread_id = None
|
||||
if case_id:
|
||||
values = self.rpc(self.model, 'read', [case_id], ['thread_id'])
|
||||
if values:
|
||||
thread_id = values[0]['thread_id'][0]
|
||||
emails = emails[str(thread_id)]
|
||||
|
||||
user_email = filter(None, emails['user_email'])[0]
|
||||
|
||||
if user_email and self.email_get(user_email) == self.email_get(self._decode_header(msg['From'])):
|
||||
@@ -404,13 +393,12 @@ class email_parser(object):
|
||||
else:
|
||||
self.msg_partner(msg, case_id)
|
||||
else:
|
||||
case_id, thread_id = self.msg_new(msg)
|
||||
case_id = self.msg_new(msg)
|
||||
subject = self._decode_header(msg['Subject'])
|
||||
msg['Subject'] = "[%s] %s" % (case_id, subject,)
|
||||
msg['Message-Id'] = "<%s-openerpcrm-%s@%s>" % (time.time(), case_id, socket.gethostname(),)
|
||||
|
||||
logging.info(" case: %r", case_id)
|
||||
logging.info(" thread: %r", thread_id)
|
||||
|
||||
values = self.rpc(self.model, 'emails_get', [case_id])
|
||||
|
||||
@@ -431,7 +419,7 @@ class email_parser(object):
|
||||
a = self._decode_header(msg['Subject'])
|
||||
msg['Subject'] = '[OpenERP-CaseError] ' + a
|
||||
self.msg_send(msg, self.email_default.split(','))
|
||||
return case_id, thread_id, emails
|
||||
return case_id, emails
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.0')
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-23 03:52+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-04-11 21:57+0000\n"
|
||||
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:13+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:16+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp_operations
|
||||
@@ -286,7 +287,8 @@ msgstr "Producto"
|
||||
#. module: mrp_operations
|
||||
#: model:process.transition,note:mrp_operations.process_transition_workstartoperation0
|
||||
msgid "From work order, define the cycles and hour for creating product"
|
||||
msgstr "Desde orden de trabajo, define los ciclos y hora para crear producto"
|
||||
msgstr ""
|
||||
"Desde orden de producción, define los ciclos y hora para crear producto"
|
||||
|
||||
#. module: mrp_operations
|
||||
#: field:mrp.production.workcenter.line,delay:0
|
||||
|
||||
@@ -8,13 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-26 05:24+0000\n"
|
||||
"PO-Revision-Date: 2010-06-08 14:19+0000\n"
|
||||
"Last-Translator: victor tejada yau <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:27+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:20+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: olap
|
||||
@@ -53,6 +54,9 @@ msgid ""
|
||||
"qualified column name like (sum,avg ...)(tablename.columnname (+,- ...) "
|
||||
"tablename.columnname)"
|
||||
msgstr ""
|
||||
"Debe proporcionar una expresión SQL válida. Asegúrese que contenga una "
|
||||
"función con un nombre de columna correcto como (sum,avg "
|
||||
"...)(tablename.columnname (+,- ...) tablename.columnname)"
|
||||
|
||||
#. module: olap
|
||||
#: field:olap.cube.table,schema_id:0
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-03-07 17:27+0000\n"
|
||||
"Last-Translator: Edgardo Ramos Roque <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:28+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 03:59+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: point_of_sale
|
||||
@@ -204,7 +205,7 @@ msgstr "Código"
|
||||
#: field:pos.order,date_validity:0
|
||||
#: wizard_field:pos.refund_order,init,date_validity:0
|
||||
msgid "Validity Date"
|
||||
msgstr "Fecha validación"
|
||||
msgstr "Fecha caducidad"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-31 12:49+0000\n"
|
||||
"Last-Translator: Albert Cervera i Areny - http://www.NaN-tic.com <albert@nan-"
|
||||
"tic.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:31+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project
|
||||
@@ -185,7 +185,7 @@ msgstr ""
|
||||
#: model:ir.actions.act_window,name:project.action_view_task5_prog_prog
|
||||
#: model:ir.ui.menu,name:project.menu_tasks_yours_prog_prog
|
||||
msgid "My Tasks in Progress"
|
||||
msgstr "Mis tareas en proceso"
|
||||
msgstr "Mis tareas en progreso"
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
@@ -480,7 +480,7 @@ msgstr "Mis tareas pendientes"
|
||||
#: model:ir.actions.act_window,name:project.action_view_task6_prog
|
||||
#: model:ir.ui.menu,name:project.menu_action_view_task6_prog
|
||||
msgid "Tasks in Progress"
|
||||
msgstr "Tareas en proceso"
|
||||
msgstr "Tareas en progreso"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.action_view_task7
|
||||
@@ -1043,7 +1043,7 @@ msgstr "Trabajo realizado"
|
||||
#. module: project
|
||||
#: selection:project.project,state:0
|
||||
msgid "Running"
|
||||
msgstr "En proceso"
|
||||
msgstr "En progreso"
|
||||
|
||||
#. module: project
|
||||
#: help:project.project,parent_id:0
|
||||
|
||||
@@ -36,7 +36,7 @@ class project_issue(osv.osv, crm.crm_case):
|
||||
_name = "project.issue"
|
||||
_description = "Project Issue"
|
||||
_order = "priority, id desc"
|
||||
_inherits = {'mailgate.thread': 'thread_id'}
|
||||
_inherit = ['mailgate.thread']
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
"""
|
||||
@@ -121,7 +121,6 @@ class project_issue(osv.osv, crm.crm_case):
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False),
|
||||
'id': fields.integer('ID'),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
@@ -179,6 +178,8 @@ class project_issue(osv.osv, crm.crm_case):
|
||||
method=True, multi='working_days_open', type="float", store=True),
|
||||
'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \
|
||||
method=True, multi='working_days_close', type="float", store=True),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
|
||||
}
|
||||
|
||||
def _get_project(self, cr, uid, context):
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-09 19:37+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:32+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project_timesheet
|
||||
@@ -24,4 +25,4 @@ msgstr "Parte de horas de proyectos"
|
||||
#. module: project_timesheet
|
||||
#: field:project.task.work,hr_analytic_timesheet_id:0
|
||||
msgid "Related Timeline Id"
|
||||
msgstr "Id relacionado con el tiempo"
|
||||
msgstr "Id de la línea de tiempos asociada"
|
||||
|
||||
@@ -0,0 +1,347 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * report_analytic_planning
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:32+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "To:"
|
||||
msgstr "Hasta:"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Planning by Account"
|
||||
msgstr "Planificación por cuenta"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Summary by project"
|
||||
msgstr "Resumen por proyecto"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.line,amount_unit:0
|
||||
msgid "Qty UoM"
|
||||
msgstr "Ctdad UdM"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Responsable"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat
|
||||
msgid "Planning stat"
|
||||
msgstr "Estad. planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,state:0
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.line,account_id:0
|
||||
msgid "Analytic account"
|
||||
msgstr "Cuenta analítica"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Nombre de modelo no válido en la definición de acción."
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
|
||||
"especial!"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_form
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat
|
||||
msgid "Planning Statistics"
|
||||
msgstr "Estadísticas de planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat_account
|
||||
msgid "Planning account stat"
|
||||
msgstr "Estad. cuenta planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.stat,sum_amount:0
|
||||
msgid "Planned hours"
|
||||
msgstr "Horas planeadas"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Real"
|
||||
msgstr "Real"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_my_form
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat_my
|
||||
msgid "My Planning Statistics"
|
||||
msgstr "Mis estadísticas de planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.module.module,description:report_analytic_planning.module_meta_information
|
||||
msgid "Planning on analytic accounts."
|
||||
msgstr "Planificación a partir de cuentas analíticas."
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,name:0
|
||||
msgid "Planning Name"
|
||||
msgstr "Nombre planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Quantities"
|
||||
msgstr "Cantidades"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "HR Planning"
|
||||
msgstr "Planificación RRHH"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.stat,sum_amount_real:0
|
||||
#: field:report_account_analytic.planning.stat.account,sum_amount_real:0
|
||||
#: field:report_account_analytic.planning.stat.user,sum_amount_real:0
|
||||
msgid "Timesheet"
|
||||
msgstr "Hoja de asistencia"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_line
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Planning Line"
|
||||
msgstr "Línea de planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Responsible:"
|
||||
msgstr "Responsable:"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.line,amount:0
|
||||
msgid "Quantity"
|
||||
msgstr "Cantidad"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Quantities by Account"
|
||||
msgstr "Cantidades por cuenta"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "From:"
|
||||
msgstr "Desde:"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Time by Account"
|
||||
msgstr "Tiempo por cuenta"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr "Fecha final"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Time by User"
|
||||
msgstr "Tiempo por usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_my_manager_form
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat_my_manager
|
||||
msgid "Planning Statistics of My Projects"
|
||||
msgstr "Estadísticas de planificación de mis proyectos"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_current
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_current
|
||||
msgid "Current Planning"
|
||||
msgstr "Planificación actual"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Summary by user"
|
||||
msgstr "Resumen por usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Analysis"
|
||||
msgstr "Análisis"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.line,user_id:0
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
#: field:report_account_analytic.planning.stat,user_id:0
|
||||
#: field:report_account_analytic.planning.stat.user,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Project"
|
||||
msgstr "Proyecto"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Total Timesheet"
|
||||
msgstr "Total hoja de servicios"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "Details of user's time by projects"
|
||||
msgstr "Detalle del tiempo del usuario por proyectos"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat_user
|
||||
msgid "Planning user stat"
|
||||
msgstr "Estad. planificación del usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
#: field:report_account_analytic.planning.stat.account,quantity:0
|
||||
#: field:report_account_analytic.planning.stat.user,quantity:0
|
||||
msgid "Planned"
|
||||
msgstr "Planificado"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,stat_ids:0
|
||||
msgid "Planning analysis"
|
||||
msgstr "Análisis planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "["
|
||||
msgstr "["
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,line_ids:0
|
||||
msgid "Planning lines"
|
||||
msgstr "Líneas planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.module.module,shortdesc:report_analytic_planning.module_meta_information
|
||||
msgid "Analytic planning - Reporting"
|
||||
msgstr "Informes - Planificación analítica"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
msgid "]"
|
||||
msgstr "]"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_my
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_my2
|
||||
msgid "My Planning"
|
||||
msgstr "Mi planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,stat_user_ids:0
|
||||
msgid "Planning by user"
|
||||
msgstr "Planificación por usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.line,note:0
|
||||
msgid "Note"
|
||||
msgstr "Nota"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: rml:report_account_analytic.planning.print:0
|
||||
#: field:report_account_analytic.planning.stat,sum_amount_tasks:0
|
||||
msgid "Tasks"
|
||||
msgstr "Tareas"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,stat_account_ids:0
|
||||
msgid "Planning by account"
|
||||
msgstr "Planificación por cuenta"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Quantities by User"
|
||||
msgstr "Cantidades por usuario"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_current_my
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_current_my
|
||||
msgid "My Current Planning"
|
||||
msgstr "Mi planificación actual"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.stat.account,account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "Cuenta analítica"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning.stat,manager_id:0
|
||||
msgid "Manager"
|
||||
msgstr "Responsable"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form
|
||||
#: model:ir.actions.report.xml,name:report_analytic_planning.report_planning
|
||||
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.next_id_85
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.planning_main
|
||||
#: view:report_account_analytic.planning:0
|
||||
#: field:report_account_analytic.planning.line,planning_id:0
|
||||
#: field:report_account_analytic.planning.stat,planning_id:0
|
||||
#: field:report_account_analytic.planning.stat.account,planning_id:0
|
||||
#: field:report_account_analytic.planning.stat.user,planning_id:0
|
||||
msgid "Planning"
|
||||
msgstr "Planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: selection:report_account_analytic.planning,state:0
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning:0
|
||||
msgid "Total Planned"
|
||||
msgstr "Total planeado"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: field:report_account_analytic.planning,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr "Fecha inicial"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: view:report_account_analytic.planning.stat:0
|
||||
msgid "Planning statistics"
|
||||
msgstr "Estadísticas de planificación"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: selection:report_account_analytic.planning,state:0
|
||||
msgid "Open"
|
||||
msgstr "Abierto"
|
||||
|
||||
#. module: report_analytic_planning
|
||||
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_new
|
||||
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_new
|
||||
msgid "New Planning"
|
||||
msgstr "Nueva planificación"
|
||||
@@ -0,0 +1,269 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * report_task
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:33+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,state:0
|
||||
msgid "In Progress"
|
||||
msgstr "En proceso"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.actions.act_window,name:report_task.action_project_task
|
||||
#: model:ir.ui.menu,name:report_task.menu_project_task_user_tree
|
||||
#: view:report.task.user.pipeline.open:0
|
||||
msgid "Tasks by User"
|
||||
msgstr "Tareas por usuario"
|
||||
|
||||
#. module: report_task
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
|
||||
"especial!"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,remaining_hours:0
|
||||
msgid "Remaining Hours"
|
||||
msgstr "Horas restantes"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "No Task"
|
||||
msgstr "No hay tarea"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.module.module,shortdesc:report_task.module_meta_information
|
||||
msgid "Report on tasks by user for projects"
|
||||
msgstr "Informe de tareas por usuario para proyectos"
|
||||
|
||||
#. module: report_task
|
||||
#: view:report.closed.task:0
|
||||
msgid "Delay"
|
||||
msgstr "Retraso"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,priority:0
|
||||
msgid "Very Low"
|
||||
msgstr "Muy baja"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,state:0
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,priority:0
|
||||
msgid "Low"
|
||||
msgstr "Baja"
|
||||
|
||||
#. module: report_task
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Nombre de modelo no válido en la definición de acción."
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,name:0
|
||||
msgid "Task summary"
|
||||
msgstr "Resumen de tarea"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,state:0
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,state:0
|
||||
#: field:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,priority:0
|
||||
msgid "Medium"
|
||||
msgstr "Media"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.actions.act_window,name:report_task.action_report_timesheet_task_user
|
||||
#: model:ir.ui.menu,name:report_task.menu_timesheet_task_user
|
||||
msgid "Timesheet / Task Hours Per Month"
|
||||
msgstr "Tiempo / Horas de tareas por mes"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,progress:0
|
||||
msgid "Progress (%)"
|
||||
msgstr "Progreso (%)"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,priority:0
|
||||
msgid "Importance"
|
||||
msgstr "Importancia"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.task.user.pipeline.open,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.ui.menu,name:report_task.next_id_57
|
||||
msgid "Reporting"
|
||||
msgstr "Informe"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.module.module,description:report_task.module_meta_information
|
||||
msgid ""
|
||||
"Gives statistics on tasks by user on projects to check the pipeline of users."
|
||||
msgstr ""
|
||||
"Proporciona estadísticas de tareas por usuario en proyectos para comprobar "
|
||||
"el trabajo encadenado de los usuarios."
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.task.user.pipeline.open,user_id:0
|
||||
#: field:report.timesheet.task.user,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.actions.act_window,name:report_task.action_closed_task_board
|
||||
msgid "Task Closed Within Past 15 Days"
|
||||
msgstr "Tareas cerradas en los últimos 15 días"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,priority:0
|
||||
msgid "Very urgent"
|
||||
msgstr "Muy urgente"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,state:0
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Done"
|
||||
msgstr "Realizada"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.task.user.pipeline.open,task_hrs:0
|
||||
#: field:report.timesheet.task.user,task_hrs:0
|
||||
msgid "Task Hours"
|
||||
msgstr "Horas de tarea"
|
||||
|
||||
#. module: report_task
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,delay_hours:0
|
||||
msgid "Delay Hours"
|
||||
msgstr "Horas de retraso"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,project_id:0
|
||||
msgid "Project"
|
||||
msgstr "Proyecto"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.task.user.pipeline.open,task_nbr:0
|
||||
msgid "Task Number"
|
||||
msgstr "Número de tarea"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.model,name:report_task.model_report_timesheet_task_user
|
||||
msgid "report.timesheet.task.user"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.model,name:report_task.model_report_task_user_pipeline_open
|
||||
msgid "Tasks by user and project"
|
||||
msgstr "Tareas por usuario y proyecto"
|
||||
|
||||
#. module: report_task
|
||||
#: view:report.closed.task:0
|
||||
msgid "Planned"
|
||||
msgstr "Planificado"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,state:0
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancelado"
|
||||
|
||||
#. module: report_task
|
||||
#: view:report.timesheet.task.user:0
|
||||
msgid "Timesheet/Task hours Report Per Month"
|
||||
msgstr "Horario / Informe de horas de trabajo por mes"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.task.user.pipeline.open,task_progress:0
|
||||
msgid "Task Progress"
|
||||
msgstr "Progreso de la tarea"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,date_close:0
|
||||
msgid "Date Closed"
|
||||
msgstr "Fecha de cierre"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,user_id:0
|
||||
msgid "Assigned to"
|
||||
msgstr "Asignado a"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Secuencia"
|
||||
|
||||
#. module: report_task
|
||||
#: model:ir.model,name:report_task.model_report_closed_task
|
||||
msgid "Closed Task Report"
|
||||
msgstr "Informe de tareas cerradas"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.timesheet.task.user,name:0
|
||||
msgid "Month"
|
||||
msgstr "Mes"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.closed.task,priority:0
|
||||
msgid "Urgent"
|
||||
msgstr "Urgente"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,date_deadline:0
|
||||
msgid "Deadline"
|
||||
msgstr "Fecha límite"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.timesheet.task.user,timesheet_hrs:0
|
||||
msgid "Timesheet Hours"
|
||||
msgstr "Horas del horario"
|
||||
|
||||
#. module: report_task
|
||||
#: view:report.closed.task:0
|
||||
msgid "Closed Tasks"
|
||||
msgstr "Tareas cerradas"
|
||||
|
||||
#. module: report_task
|
||||
#: selection:report.task.user.pipeline.open,task_state:0
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: report_task
|
||||
#: field:report.closed.task,planned_hours:0
|
||||
msgid "Planned Hours"
|
||||
msgstr "Horas planeadas"
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-31 12:52+0000\n"
|
||||
"Last-Translator: Albert Cervera i Areny - http://www.NaN-tic.com <albert@nan-"
|
||||
"tic.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:33+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale
|
||||
@@ -578,7 +578,7 @@ msgstr "Línea del pedido"
|
||||
#. module: sale
|
||||
#: field:sale.config.picking_policy,picking_policy:0
|
||||
msgid "Packing Default Policy"
|
||||
msgstr "Política de envío por defecto"
|
||||
msgstr "Forma de envío por defecto"
|
||||
|
||||
#. module: sale
|
||||
#: model:process.node,note:sale.process_node_saleorder0
|
||||
@@ -748,7 +748,7 @@ msgstr "Estado"
|
||||
#. module: sale
|
||||
#: field:sale.order,picking_policy:0
|
||||
msgid "Packing Policy"
|
||||
msgstr "Política de envío"
|
||||
msgstr "Forma de envío"
|
||||
|
||||
#. module: sale
|
||||
#: model:ir.actions.act_window,name:sale.action_order_line_product_tree
|
||||
|
||||
+2
-1
@@ -204,7 +204,8 @@ class sale_order(osv.osv):
|
||||
return result.keys()
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Order Reference', size=64, required=True, select=True),
|
||||
'name': fields.char('Order Reference', size=64, required=True,
|
||||
readonly=True, states={'draft': [('readonly', False)]}, select=True),
|
||||
'shop_id': fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'origin': fields.char('Source document', size=64, help="Reference of the document that generated this sale order request."),
|
||||
'client_order_ref': fields.char('Customer Reference', size=64),
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-06-17 23:43+0000\n"
|
||||
"Last-Translator: mikel <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:34+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 03:54+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock
|
||||
@@ -1086,7 +1087,7 @@ msgstr "Lotes seguimiento de stock"
|
||||
#: rml:lot.stock.overview_all:0
|
||||
#: field:stock.move,price_unit:0
|
||||
msgid "Unit Price"
|
||||
msgstr "Precio unidad"
|
||||
msgstr "Precio un."
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
|
||||
@@ -7,13 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-16 17:43+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-06-23 17:34+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:18+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock_location
|
||||
@@ -120,4 +121,4 @@ msgstr "Retraso (días)"
|
||||
#. module: stock_location
|
||||
#: view:product.product:0
|
||||
msgid "Procurement & Locations"
|
||||
msgstr "Abastecimiento & Ubicaciones"
|
||||
msgstr "Abastecimiento y Ubicaciones"
|
||||
|
||||
Reference in New Issue
Block a user