[MERGE]: merging from the same branch

bzr revid: mga@tinyerp.com-20100624082525-1dx0uj8fq5o5pddh
This commit is contained in:
Mantavya Gajjar
2010-06-24 13:55:25 +05:30
71 changed files with 2419 additions and 699 deletions
+47 -46
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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>
+5 -4
View File
@@ -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
+5 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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:
+18 -16
View File
@@ -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>
+30 -28
View File
@@ -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
+3 -1
View File
@@ -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',
+99 -9
View File
@@ -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>
+2
View File
@@ -20,5 +20,7 @@
##############################################################################
import base_contact
import base_contact_installer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1
View File
@@ -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>
+187
View File
@@ -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 "Ποιότητα"
+6 -5
View File
@@ -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:
+8 -5
View File
@@ -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
+71
View File
@@ -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 "Καταχωρήσεις ανά Συμβάν"
+125
View File
@@ -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 "Τα Τελευταία μου Αντικείμενα"
+122
View File
@@ -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 "Οι Σύνδεσμοί μου"
+92
View File
@@ -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 "Πίνακας εγγράφου"
+142
View File
@@ -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 "Το Φύλλο Χρόνου μου"
+3 -10
View File
@@ -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>
-1
View File
@@ -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',
-13
View File
@@ -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>
+3 -4
View File
@@ -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 = {
+1 -2
View File
@@ -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):
"""
+3 -4
View File
@@ -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'),
+3 -3
View File
@@ -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 = {
+9 -8
View File
@@ -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="&quot;&quot;&quot;Contract&quot;&quot;&quot;" name="name"/>
</record>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Contract&quot;&quot;&quot;" 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="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Leads&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Very first contact with new prospect&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_leads0" model="process.node">
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Leads&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Very first contact with new prospect&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" 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="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Partner&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Convert to prospect to business partner&quot;&quot;&quot;" 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="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Partner&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Convert to prospect to business partner&quot;&quot;&quot;" 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="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Opportunities&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When a real project/opportunity is detected&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_opportunities0" model="process.node">
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Opportunities&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;When a real project/opportunity is detected&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" 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="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Meeting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Schedule a normal or phone meeting&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_meeting0" model="process.node">
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Meeting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Schedule a normal or phone meeting&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_contractprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'done', 'cancel')&quot;&quot;&quot;" 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="&quot;&quot;&quot;Prospect Opportunity&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Creating business opportunities from Leads&quot;&quot;&quot;" 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="&quot;&quot;&quot;Prospect Opportunity&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Creating business opportunities from Leads&quot;&quot;&quot;" 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="&quot;&quot;&quot;Prospect Partner&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Prospect is converting to business partner&quot;&quot;&quot;" 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="&quot;&quot;&quot;Prospect Partner&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Prospect is converting to business partner&quot;&quot;&quot;" 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="&quot;&quot;&quot;Opportunity Meeting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Normal or phone meeting for opportunity&quot;&quot;&quot;" 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="&quot;&quot;&quot;Opportunity Meeting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Normal or phone meeting for opportunity&quot;&quot;&quot;" 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>
+1 -2
View File
@@ -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,
+6 -17
View File
@@ -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 {}
+7 -10
View File
@@ -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})
+8 -6
View File
@@ -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" />
+3 -3
View File
@@ -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 = {
+3 -3
View File
@@ -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 = {
+1 -3
View File
@@ -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),
+4 -4
View File
@@ -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
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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
+31
View File
@@ -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"
+5 -5
View File
@@ -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
+4 -4
View File
@@ -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
+9 -5
View File
@@ -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
+38 -3
View File
@@ -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
+3 -3
View File
@@ -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', \
+5 -5
View File
@@ -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
+4 -4
View File
@@ -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
+8 -23
View File
@@ -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')
+1 -1
View File
@@ -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
+6 -4
View File
@@ -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
+7 -3
View File
@@ -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
+5 -4
View File
@@ -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 -7
View File
@@ -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
+3 -2
View File
@@ -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):
+5 -4
View File
@@ -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"
+347
View File
@@ -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"
+269
View File
@@ -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"
+6 -6
View File
@@ -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
View File
@@ -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),
+5 -4
View File
@@ -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
+5 -4
View File
@@ -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"