diff options
| author | Mustufa Rangwala <mra@mra-laptop> | 2010-06-26 12:39:39 +0530 |
|---|---|---|
| committer | Mustufa Rangwala <mra@mra-laptop> | 2010-06-26 12:39:39 +0530 |
| commit | 403bf5f236a76df4bdd4de374de2f3430532f281 (patch) | |
| tree | 2e0f1706edde2422c3c25462a3bf51619c6df302 | |
| parent | f32f30aefb7db4b9f3ebfb23b1c15ee2ca9e99c2 (diff) | |
| parent | 5ee9f602a6fbcbae0531cd33908e57cfaa8edf31 (diff) | |
[MERGE] merge with trunk addons
bzr revid: mra@mra-laptop-20100626070939-6whcffnrj4x8ndsi
184 files changed, 6146 insertions, 2199 deletions
diff --git a/addons/account/account_unit_test.xml b/addons/account/account_unit_test.xml index 95b0a544c62..77b461a6fdd 100644 --- a/addons/account/account_unit_test.xml +++ b/addons/account/account_unit_test.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> + <data> <!-- This file must be loaded _after_ account_demo.xml ! --> <record id="test_invoice_1" model="account.invoice"> <field name="currency_id" ref="base.EUR"/> @@ -44,14 +44,14 @@ <test expr="state">open</test> </assert> <function model="account.invoice" name="pay_and_reconcile"> - <!-- ids = --> <value eval="[ref('test_invoice_1')]"/> - <!-- pay_amount = --> <value eval="1850"/> - <!-- pay_account_id = --> <value eval="ref('cash')"/> - <!-- period_id = --> <value eval="ref('account.period_' + str(int(time.strftime('%m'))))"/> - <!-- pay_journal_id = --> <value eval="ref('bank_journal')"/> - <!-- writeoff_acc_id = --> <value eval="ref('cash')"/> - <!-- writeoff_period_id = --> <value eval="ref('account.period_' + str(int(time.strftime('%m'))))"/> - <!-- writeoff_journal_id = --> <value eval="ref('bank_journal')"/> + <!-- ids = --> <value eval="[ref('test_invoice_1')]"/> + <!-- pay_amount = --> <value eval="1850"/> + <!-- pay_account_id = --> <value eval="ref('cash')"/> + <!-- period_id = --> <value eval="ref('account.period_' + str(int(time.strftime('%m'))))"/> + <!-- pay_journal_id = --> <value eval="ref('bank_journal')"/> + <!-- writeoff_acc_id = --> <value eval="ref('cash')"/> + <!-- writeoff_period_id = --> <value eval="ref('account.period_' + str(int(time.strftime('%m'))))"/> + <!-- writeoff_journal_id = --> <value eval="ref('bank_journal')"/> </function> <assert id="test_invoice_1" model="account.invoice" string="Test invoice 1 is now paid"> diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index aeb7172aafc..c241fe8063d 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -1760,8 +1760,6 @@ <act_window domain="[('journal_id', '=', active_id)]" id="act_account_journal_2_account_move_line" name="Entry lines" res_model="account.move.line" src_model="account.journal"/> - <act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_partner_account_move_unreconciled" name="Unreconciled Receivables & Payables" res_model="account.move.line" src_model="res.partner"/> - <act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable'])]" id="act_account_partner_account_move_all" name="Receivables & Payables" res_model="account.move.line" src_model="res.partner"/> <act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="All Account Entries" res_model="account.move.line" src_model="res.partner"/> diff --git a/addons/account/board_account_demo.xml b/addons/account/board_account_demo.xml index 98eb64cb411..cfcebdbcdf1 100644 --- a/addons/account/board_account_demo.xml +++ b/addons/account/board_account_demo.xml @@ -5,16 +5,16 @@ Administrator shortcut Demo user startup menu --> - <record id="sc_account_dash" model="ir.ui.view_sc"> + <!-- <record id="sc_account_dash" model="ir.ui.view_sc"> <field name="name">Accounting dashboard</field> <field name="user_id" ref="base.user_root"/> <field name="resource">ir.ui.menu</field> <field name="sequence">0</field> <field name="res_id" ref="menu_board_account"/> - </record> + </record> --> <record id="base.user_root" model="res.users"> <field name="action_id" ref="open_board_account"/> </record> - + </data> </openerp> diff --git a/addons/account/configurable_account_chart.xml b/addons/account/configurable_account_chart.xml index 658cf2907af..b9e063dc509 100644 --- a/addons/account/configurable_account_chart.xml +++ b/addons/account/configurable_account_chart.xml @@ -1,72 +1,72 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> - - <!-- Types --> - <record model="account.account.type" id="conf_account_type_receivable" > - <field name="name">Receivable</field> - <field name="code">receivable</field> - <field name="close_method">unreconciled</field> - </record> - - <record model="account.account.type" id="conf_account_type_payable" > - <field name="name">Payable</field> - <field name="code">payable</field> - <field name="close_method">unreconciled</field> - </record> - - <record model="account.account.type" id="conf_account_type_view"> - <field name="name">View</field> - <field name="code">view</field> - <field name="close_method">none</field> - </record> - - <record model="account.account.type" id="conf_account_type_income" > - <field name="name">Income</field> - <field name="code">income</field> - <field name="close_method">none</field> - </record> - - <record model="account.account.type" id="conf_account_type_expense"> - <field name="name">Expense</field> - <field name="code">expense</field> - <field name="close_method">none</field> - </record> - - <record model="account.account.type" id="conf_account_type_tax"> - <field name="name">Tax</field> - <field name="code">tax</field> - <field name="close_method">unreconciled</field> - </record> - - <record model="account.account.type" id="conf_account_type_cash"> - <field name="name">Cash</field> - <field name="code">cash</field> - <field name="close_method">balance</field> - </record> - - <record model="account.account.type" id="conf_account_type_asset"> - <field name="name">Asset</field> - <field name="code">asset</field> - <field name="close_method">balance</field> - </record> - - <record model="account.account.type" id="conf_account_type_equity"> - <field name="name">Equity</field> - <field name="code">equity</field> - <field name="close_method">balance</field> - </record> - - <record model="account.account.type" id="conf_account_type_bnk"> - <field name="name">Bank</field> - <field name="code">bank</field> - <field name="close_method">balance</field> - </record> - <record model="account.account.type" id="conf_account_type_chk"> - <field name="name">Check</field> - <field name="code">check</field> - <field name="close_method">balance</field> - </record> + <data> + + <!-- Types --> + <record model="account.account.type" id="conf_account_type_receivable" > + <field name="name">Receivable</field> + <field name="code">receivable</field> + <field name="close_method">unreconciled</field> + </record> + + <record model="account.account.type" id="conf_account_type_payable" > + <field name="name">Payable</field> + <field name="code">payable</field> + <field name="close_method">unreconciled</field> + </record> + + <record model="account.account.type" id="conf_account_type_view"> + <field name="name">View</field> + <field name="code">view</field> + <field name="close_method">none</field> + </record> + + <record model="account.account.type" id="conf_account_type_income" > + <field name="name">Income</field> + <field name="code">income</field> + <field name="close_method">none</field> + </record> + + <record model="account.account.type" id="conf_account_type_expense"> + <field name="name">Expense</field> + <field name="code">expense</field> + <field name="close_method">none</field> + </record> + + <record model="account.account.type" id="conf_account_type_tax"> + <field name="name">Tax</field> + <field name="code">tax</field> + <field name="close_method">unreconciled</field> + </record> + + <record model="account.account.type" id="conf_account_type_cash"> + <field name="name">Cash</field> + <field name="code">cash</field> + <field name="close_method">balance</field> + </record> + + <record model="account.account.type" id="conf_account_type_asset"> + <field name="name">Asset</field> + <field name="code">asset</field> + <field name="close_method">balance</field> + </record> + + <record model="account.account.type" id="conf_account_type_equity"> + <field name="name">Equity</field> + <field name="code">equity</field> + <field name="close_method">balance</field> + </record> + + <record model="account.account.type" id="conf_account_type_bnk"> + <field name="name">Bank</field> + <field name="code">bank</field> + <field name="close_method">balance</field> + </record> + <record model="account.account.type" id="conf_account_type_chk"> + <field name="name">Check</field> + <field name="code">check</field> + <field name="close_method">balance</field> + </record> @@ -82,7 +82,7 @@ <!-- Balance Sheet --> <record id="conf_bal" model="account.account.template"> - <field name="code">1</field> + <field name="code">1</field> <field name="name">Balance Sheet</field> <field ref="conf_chart0" name="parent_id"/> <field name="type">view</field> @@ -90,7 +90,7 @@ </record> <record id="conf_fas" model="account.account.template"> - <field name="code">10</field> + <field name="code">10</field> <field name="name">Fixed Assets</field> <field ref="conf_bal" name="parent_id"/> <field name="type">view</field> @@ -98,7 +98,7 @@ </record> <record id="conf_xfa" model="account.account.template"> - <field name="code">100</field> + <field name="code">100</field> <field name="name">Fixed Asset Account</field> <field ref="conf_fas" name="parent_id"/> <field name="type">other</field> @@ -106,7 +106,7 @@ </record> <record id="conf_nca" model="account.account.template"> - <field name="code">11</field> + <field name="code">11</field> <field name="name">Net Current Assets</field> <field ref="conf_bal" name="parent_id"/> <field name="type">view</field> @@ -114,9 +114,9 @@ </record> <record id="conf_cas" model="account.account.template"> - <field name="code">110</field> + <field name="code">110</field> <field name="name">Current Assets</field> - <field ref="conf_nca" name="parent_id"/> + <field ref="conf_nca" name="parent_id"/> <field name="type">view</field> <field name="user_type" ref="conf_account_type_view"/> </record> @@ -143,7 +143,7 @@ </record> --> <record id="conf_ova" model="account.account.template"> - <field name="code">1103</field> + <field name="code">1103</field> <field name="name">Output VAT</field> <field ref="conf_cas" name="parent_id"/> <field name="type">other</field> @@ -151,7 +151,7 @@ </record> <record id="conf_bnk" model="account.account.template"> - <field name="code">1104</field> + <field name="code">1104</field> <field name="name">Bank Current Account</field> <field ref="conf_cas" name="parent_id"/> <field name="type">view</field> @@ -167,7 +167,7 @@ </record> <record id="conf_cli" model="account.account.template"> - <field name="code">111</field> + <field name="code">111</field> <field name="name">Current Liabilities</field> <field ref="conf_nca" name="parent_id"/> <field name="type">view</field> @@ -188,7 +188,7 @@ </record>--> <record id="conf_iva" model="account.account.template"> - <field name="code">1112</field> + <field name="code">1112</field> <field name="name">Input VAT</field> <field ref="conf_cli" name="parent_id"/> <field name="type">other</field> @@ -198,7 +198,7 @@ <!-- Profit and Loss --> <record id="conf_gpf" model="account.account.template"> - <field name="code">2</field> + <field name="code">2</field> <field name="name">Profit and Loss</field> <field ref="conf_chart0" name="parent_id"/> <field name="type">view</field> @@ -206,7 +206,7 @@ </record> <record id="conf_rev" model="account.account.template"> - <field name="code">20</field> + <field name="code">20</field> <field name="name">Revenue</field> <field ref="conf_gpf" name="parent_id"/> <field name="type">view</field> @@ -226,7 +226,7 @@ </record> --> <record id="conf_cos" model="account.account.template"> - <field name="code">21</field> + <field name="code">21</field> <field name="name">Cost of Sales</field> <field ref="conf_gpf" name="parent_id"/> <field name="type">view</field> @@ -242,7 +242,7 @@ </record> <record id="conf_ovr" model="account.account.template"> - <field name="code">22</field> + <field name="code">22</field> <field name="name">Overheads</field> <field ref="conf_gpf" name="parent_id"/> <field name="type">view</field> @@ -381,22 +381,22 @@ <field name="parent_id" ref="vat_code_base_sales"/> </record> - <record id="configurable_chart_template" model="account.chart.template"> + <record id="configurable_chart_template" model="account.chart.template"> <field name="name">Configurable Account Chart Template</field> <field name="account_root_id" ref="conf_chart0"/> <field name="tax_code_root_id" ref="vat_code_chart_root"/> - <field name="bank_account_view_id" ref="conf_bnk"/> + <field name="bank_account_view_id" ref="conf_bnk"/> <field name="property_account_receivable" ref="conf_a_recv"/> <field name="property_account_payable" ref="conf_a_pay"/> <field name="property_account_expense_categ" ref="conf_a_expense"/> <field name="property_account_income_categ" ref="conf_a_sale"/> </record> - <!-- VAT Codes --> + <!-- VAT Codes --> <!-- Purchases + Input VAT --> <record id="ivats" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">IVAT S</field> <field eval="0.15" name="amount"/> <field name="type">percent</field> @@ -410,7 +410,7 @@ </record> <record id="ivatr" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">IVAT R</field> <field eval="0.005" name="amount"/> <field name="type">percent</field> @@ -424,7 +424,7 @@ </record> <record id="ivatz" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">IVAT Z</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> @@ -434,7 +434,7 @@ </record> <record id="ivatx" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">IVAT X</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> @@ -444,7 +444,7 @@ </record> <record id="ivato" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">IVAT O</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> @@ -456,7 +456,7 @@ <!-- Sales + Output VAT --> <record id="ovats" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">OVAT S</field> <field eval="0.15" name="amount"/> <field name="type">percent</field> @@ -470,7 +470,7 @@ </record> <record id="ovatr" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">OVAT R</field> <field eval="0.005" name="amount"/> <field name="type">percent</field> @@ -484,7 +484,7 @@ </record> <record id="ovatz" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">OVAT Z</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> @@ -494,7 +494,7 @@ </record> <record id="ovatx" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">OVAT X</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> @@ -504,7 +504,7 @@ </record> <record id="ovato" model="account.tax.template"> - <field name="chart_template_id" ref="configurable_chart_template"/> + <field name="chart_template_id" ref="configurable_chart_template"/> <field name="name">OVAT O</field> <field eval="0.0" name="amount"/> <field name="type">percent</field> diff --git a/addons/account/i18n/es.po b/addons/account/i18n/es.po index 4779ae32dd5..f576c8ffa45 100644 --- a/addons/account/i18n/es.po +++ b/addons/account/i18n/es.po @@ -7,14 +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-06-23 17:24+0000\n" -"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " -"<jesteve@zikzakmedia.com>\n" +"PO-Revision-Date: 2010-06-24 10:03+0000\n" +"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\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-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -806,7 +805,7 @@ msgstr "Cuenta de la empresa" #. module: account #: wizard_view:account.subscription.generate,init:0 msgid "Generate entries before:" -msgstr "Generar asientos antes:" +msgstr "Generar asientos hasta:" #. module: account #: rml:account.analytic.account.cost_ledger:0 @@ -3680,7 +3679,7 @@ msgstr "" #: wizard_field:account.invoice.pay,addendum,comment:0 #: wizard_field:account.invoice.pay,init,name:0 msgid "Entry Name" -msgstr "Núm. asiento" +msgstr "Descripción" #. module: account #: help:account.invoice,account_id:0 diff --git a/addons/account/i18n/et.po b/addons/account/i18n/et.po index 48ddc147633..c99f2249ff4 100644 --- a/addons/account/i18n/et.po +++ b/addons/account/i18n/et.po @@ -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-05-09 18:34+0000\n" +"PO-Revision-Date: 2010-06-25 18:22+0000\n" "Last-Translator: lyyser <logard.1961@gmail.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:04+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -466,7 +466,7 @@ msgstr "Panga võrdlus" #. module: account #: rml:account.invoice:0 msgid "Disc.(%)" -msgstr "" +msgstr "Allah. (%)" #. module: account #: rml:account.general.ledger:0 @@ -732,7 +732,7 @@ msgstr "Välja nimi" #: field:account.tax.code,sign:0 #: field:account.tax.code.template,sign:0 msgid "Sign for parent" -msgstr "" +msgstr "Logi vanemana" #. module: account #: field:account.fiscalyear,end_journal_period_id:0 diff --git a/addons/account/i18n/gl.po b/addons/account/i18n/gl.po index 9ae3edbd1f1..28939b7d6ac 100644 --- a/addons/account/i18n/gl.po +++ b/addons/account/i18n/gl.po @@ -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: 2010-05-14 17:04+0000\n" +"PO-Revision-Date: 2010-06-24 09:57+0000\n" "Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\n" "Language-Team: Galician <gl@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:04+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -2047,7 +2047,7 @@ msgstr "" #. module: account #: field:account.journal,invoice_sequence_id:0 msgid "Invoice Sequence" -msgstr "" +msgstr "Secuencia de factura" #. module: account #: wizard_view:account.automatic.reconcile,init:0 @@ -3597,7 +3597,7 @@ msgstr "" #: wizard_field:account.invoice.pay,addendum,comment:0 #: wizard_field:account.invoice.pay,init,name:0 msgid "Entry Name" -msgstr "" +msgstr "Descripción" #. module: account #: help:account.invoice,account_id:0 @@ -5064,7 +5064,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_fiscalyear_seq msgid "Maintains Invoice sequences with Fiscal Year" -msgstr "" +msgstr "Mantén secuencias de facturas con exercicio fiscal" #. module: account #: selection:account.account.balance.report,checktype,display_account:0 diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index 99660f05218..7dba566772d 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/report/account_balance_landscape.rml b/addons/account/report/account_balance_landscape.rml index 13a00655d5e..13a00655d5e 100755..100644 --- a/addons/account/report/account_balance_landscape.rml +++ b/addons/account/report/account_balance_landscape.rml diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index 448f2abaf6d..e3f1321d02f 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -18,8 +18,6 @@ <field name="product_id" invisible="1"/> <field name="uom_name" invisible="not context.get('set_visible',False)"/> <field name="categ_id" invisible="1"/> - <field name="nbr" sum="# of Lines"/> - <field name="product_qty"/> <field name="state" invisible="1"/> <field name="period_id" invisible="1"/> <field name="currency_id" invisible="1"/> @@ -29,6 +27,8 @@ <field name="address_invoice_id" invisible="1"/> <field name="partner_bank" invisible="1"/> <field name="account_id" invisible="1"/> + <field name="nbr" sum="# of Lines"/> + <field name="product_qty"/> <field name="reconciled" sum="# Reconciled"/> <field name="price_average" avg="Average Price"/> <field name="price_total" sum="Total Price"/> @@ -57,31 +57,31 @@ <field name="arch" type="xml"> <search string="Invoices Analysis"> <group col="10" colspan="12"> - <filter icon="terp-go-year" string=" 365 Days " - domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" - help="Invoices of last 365 days"/> - <filter icon="terp-go-month" string=" 30 Days " - name="month" - domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" - help="Invoices of last 30 days"/> - <filter icon="terp-go-week" - string=" 7 Days " - separator="1" - domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" - help="Invoices during last 7 days"/> - <separator orientation="vertical"/> + <filter icon="terp-go-year" string=" 365 Days " + domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" + help="Invoices of last 365 days"/> + <filter icon="terp-go-month" string=" 30 Days " + name="month" + domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" + help="Invoices of last 30 days"/> + <filter icon="terp-go-week" + string=" 7 Days " + separator="1" + domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" + help="Invoices during last 7 days"/> + <separator orientation="vertical"/> <filter string="Current" - icon="terp-check" - domain="[('state','in',('draft','open'))]" - help = "Draft and Open Invoices"/> - <filter string="Pro-forma" - icon="terp-check" - domain="[('state','=','proforma'),('state','=','proforma2')]" - help = "Pro-forma Invoices"/> - <filter string="Current" - domain="[('state', '=' ,'open')]" - help = "open Invoices"/> - <filter string="Done" + icon="terp-check" + domain="[('state','in',('draft','open'))]" + help = "Draft and Open Invoices"/> + <filter string="Pro-forma" + icon="terp-check" + domain="[('state','=','proforma'),('state','=','proforma2')]" + help = "Pro-forma Invoices"/> + <filter string="Current" + domain="[('state', '=' ,'open')]" + help = "open Invoices"/> + <filter string="Done" icon="terp-dialog-close" domain="[('state','=','paid')]" help = "Done Invoices"/> @@ -89,14 +89,14 @@ <field name="partner_id"/> <field name="user_id" widget="selection"> <filter icon="terp-dolar" - string="My Invoices" - help="My Invoices" - domain="[('user_id','=',uid)]"/> + string="My Invoices" + help="My Invoices" + domain="[('user_id','=',uid)]"/> </field> - </group> - <newline/> + </group> + <newline/> <group expand="0" string="Group By..."> - <filter string="Salesman" name='User' icon="terp-personal" context="{'group_by':'user_id'}"/> + <filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/> <filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/> <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True}"/> <separator orientation="vertical"/> @@ -111,9 +111,9 @@ <separator orientation="vertical"/> <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> <newline/> - <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> + <filter string="Day" name="day" icon="terp-go-today" context="{'group_by':'day'}"/> + <filter string="Month" name="month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" name="year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> <newline/> <group expand="0" string="Extended options..." groups="base.group_extended"> @@ -139,11 +139,19 @@ <field name="res_model">account.invoice.report</field> <field name="view_type">form</field> <field name="view_mode">tree,graph</field> - <field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}</field> + <field name="context">{'search_default_month':1,'search_default_product':1,'group_by_no_leaf':1,'group_by':[]}</field> <field name="search_view_id" ref="view_account_invoice_report_search"/> </record> <menuitem action="action_account_invoice_report_all" id="menu_action_account_invoice_report_all" parent="account.menu_finance_statistic_report_statement" sequence="0"/> + <act_window + domain="[('partner_id', '=', active_id)]" + id="act_account_invoice_partner_relation" + name="Monthly Turnover" + context="{'search_default_month':1,'search_default_user':1,'group_by_no_leaf':1,'group_by':[]}" + res_model="account.invoice.report" + src_model="res.partner"/> + </data> </openerp> diff --git a/addons/account/report/compare_account_balance.rml b/addons/account/report/compare_account_balance.rml index ac17ea930a8..ac17ea930a8 100755..100644 --- a/addons/account/report/compare_account_balance.rml +++ b/addons/account/report/compare_account_balance.rml diff --git a/addons/account/report/voucher_print.py b/addons/account/report/voucher_print.py index 829f0f7e397..829f0f7e397 100755..100644 --- a/addons/account/report/voucher_print.py +++ b/addons/account/report/voucher_print.py diff --git a/addons/account/report/voucher_print.rml b/addons/account/report/voucher_print.rml index 795fd678645..795fd678645 100755..100644 --- a/addons/account/report/voucher_print.rml +++ b/addons/account/report/voucher_print.rml diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index 67f3bf65f61..391d7371bbe 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -1,4 +1,5 @@ -<?xml version="1.0" encoding="utf-8"?><openerp><data noupdate="0"> +<?xml version="1.0" encoding="utf-8"?> +<openerp><data> <record id="group_account_invoice" model="res.groups"> <field name="name">Finance / Invoice</field> diff --git a/addons/account_budget/i18n/es.po b/addons/account_budget/i18n/es.po index 22fe5f58d28..5dff8e386d5 100644 --- a/addons/account_budget/i18n/es.po +++ b/addons/account_budget/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_budget diff --git a/addons/account_chart/account_chart.xml b/addons/account_chart/account_chart.xml index 0a887345ea9..13935f46763 100644 --- a/addons/account_chart/account_chart.xml +++ b/addons/account_chart/account_chart.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="True"> - + <data> + <!-- deactivate minimal account --> <record id="account.minimal_0" model="account.account"> <field eval="False" name="active"/> @@ -21,6 +21,6 @@ <record id="account.a_sale" model="account.account"> <field eval="False" name="active"/> </record> - + </data> </openerp> diff --git a/addons/account_coda/i18n/es.po b/addons/account_coda/i18n/es.po new file mode 100644 index 00000000000..16ee0e94aab --- /dev/null +++ b/addons/account_coda/i18n/es.po @@ -0,0 +1,167 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2009-11-24 13:11+0000\n" +"PO-Revision-Date: 2010-06-24 09:42+0000\n" +"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_coda +#: field:account.coda,journal_id:0 +#: wizard_field:account.coda_import,init,journal_id:0 +msgid "Bank Journal" +msgstr "Diario bancario" + +#. module: account_coda +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"¡El objeto debe empezar con x_ y no puede contener ningún carácter especial!" + +#. module: account_coda +#: wizard_field:account.coda_import,extraction,note:0 +msgid "Log" +msgstr "Registro" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,open:0 +msgid "_Open Statement" +msgstr "" + +#. module: account_coda +#: model:ir.module.module,shortdesc:account_coda.module_meta_information +msgid "Account CODA" +msgstr "" + +#. module: account_coda +#: field:account.coda,name:0 +msgid "Coda file" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Clic on 'New' to select your file :" +msgstr "" + +#. module: account_coda +#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import +msgid "Import Coda File" +msgstr "" + +#. module: account_coda +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nombre de modelo inválido en la definición de acción." + +#. module: account_coda +#: field:account.coda,note:0 +msgid "Import log" +msgstr "Registro de importación" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_receivable:0 +msgid "Default receivable Account" +msgstr "Cuenta a recibir por defecto" + +#. module: account_coda +#: model:ir.module.module,description:account_coda.module_meta_information +msgid "" +"Module provides functionality to import\n" +" bank statements from .csv file.\n" +" Import coda file wizard is used to import bank statements." +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,end:0 +msgid "_Close" +msgstr "_Cerrar" + +#. module: account_coda +#: field:account.coda,statement_id:0 +msgid "Generated Bank Statement" +msgstr "Extracto bancario generado" + +#. module: account_coda +#: view:account.coda:0 +#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement +#: model:ir.actions.act_window,name:account_coda.action_account_coda +msgid "Coda import" +msgstr "" + +#. module: account_coda +#: field:account.coda,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: account_coda +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "¡XML inválido para la estructura de la vista!" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_coda +msgid "coda for an Account" +msgstr "" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_payable:0 +msgid "Default Payable Account" +msgstr "Cuenta a pagar por defecto" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda +msgid "Coda Statements" +msgstr "" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard +msgid "Import Coda Statements" +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,init,extraction:0 +msgid "_Ok" +msgstr "_Aceptar" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +#: wizard_view:account.coda_import,init:0 +msgid "Import Coda Statement" +msgstr "" + +#. module: account_coda +#: field:account.bank.statement,coda_id:0 +msgid "Coda" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +msgid "Results :" +msgstr "Resultados :" + +#. module: account_coda +#: wizard_field:account.coda_import,init,coda:0 +msgid "Coda File" +msgstr "" + +#. module: account_coda +#: field:account.coda,date:0 +msgid "Import Date" +msgstr "Fecha de importación" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Select your bank journal :" +msgstr "Seleccione su diario bancario :" diff --git a/addons/account_followup/wizard/account_followup_print_view.xml b/addons/account_followup/wizard/account_followup_print_view.xml index 021fc52f63c..9e0c34c8bf5 100644 --- a/addons/account_followup/wizard/account_followup_print_view.xml +++ b/addons/account_followup/wizard/account_followup_print_view.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="0"> + <data noupdate="0"> <!--<wizard string="Send followups" name="account_followup.followup.print.all" @@ -13,23 +13,23 @@ type="wizard" />--> - <record id="view_account_followup_print" model="ir.ui.view"> + <record id="view_account_followup_print" model="ir.ui.view"> <field name="name">account.followup.print.form</field> <field name="model">account.followup.print</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Send followups"> - <group col="4" colspan="6"> - <field name="followup_id"/> - <field name="date"/> - <newline/> - </group> - <separator colspan="4"/> - <group col="2" colspan="4"> - <button special="cancel" string="Cancel" icon='gtk-cancel'/> - <button name="do_continue" string="Continue" colspan="1" type="object" icon="gtk-ok"/> - </group> - </form> + <form string="Send followups"> + <group col="4" colspan="6"> + <field name="followup_id"/> + <field name="date"/> + <newline/> + </group> + <separator colspan="4"/> + <group col="2" colspan="4"> + <button special="cancel" string="Cancel" icon='gtk-cancel'/> + <button name="do_continue" string="Continue" colspan="1" type="object" icon="gtk-ok"/> + </group> + </form> </field> </record> @@ -42,7 +42,7 @@ <field name="target">new</field> </record> - <record model="ir.values" id="account_followup_print_values"> + <record model="ir.values" id="account_followup_print_values"> <field name="model_id" ref="model_account_followup_followup" /> <field name="object" eval="1" /> <field name="name">Send followups</field> @@ -60,61 +60,61 @@ <!-- Screen2 --> - <record id="view_account_followup_print_all" model="ir.ui.view"> + <record id="view_account_followup_print_all" model="ir.ui.view"> <field name="name">account.followup.print.all.form</field> <field name="model">account.followup.print.all</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Send followups"> - <group col="4" colspan="6"> - <notebook> - <page string="Partner Selection"> - <separator string="Select partners to remind" colspan="4"/> - <field name="partner_ids" colspan="4" nolabel="1"/> - </page> - <page string="Email Settings"> - <field name="email_conf" colspan="4"/> - <field name="partner_lang" colspan="4"/> - <field name="email_subject" colspan="4"/> - <!--<separator string="Email body" colspan="4" attrs="{'readonly':[('partner_lang','=',True)]}"/>--> - <separator string="Email body" colspan="4" /> - <field name="email_body" colspan="4" nolabel="1"/> - <separator string="Legend" colspan="4"/> - <label string="%%(partner_name)s: Partner name" colspan="2"/> - <label string="%%(user_signature)s: User name" colspan="2"/> - <label string="%%(followup_amount)s: Total Amount Due" colspan="2"/> - <label string="%%(date)s: Current Date" colspan="2"/> - <label string="%%(company_name)s: User's Company name" colspan="2"/> - <label string="%%(company_currency)s: User's Company Currency" colspan="2"/> - <label string="%%(heading)s: Move line header" colspan="2"/> - <label string="%%(line)s: Ledger Posting lines" colspan="2"/> - </page> - </notebook> - </group> - <separator colspan="4"/> - <group> - <button special="cancel" string="Cancel" icon='gtk-cancel'/> - <button name="do_print" string="Print Follow Ups" colspan="1" type="object" icon="gtk-print"/> - <button name="do_mail" string="Send Mails" colspan="1" type="object" icon="gtk-execute"/> - </group> - </form> + <form string="Send followups"> + <group col="4" colspan="6"> + <notebook> + <page string="Partner Selection"> + <separator string="Select partners to remind" colspan="4"/> + <field name="partner_ids" colspan="4" nolabel="1"/> + </page> + <page string="Email Settings"> + <field name="email_conf" colspan="4"/> + <field name="partner_lang" colspan="4"/> + <field name="email_subject" colspan="4"/> + <!--<separator string="Email body" colspan="4" attrs="{'readonly':[('partner_lang','=',True)]}"/>--> + <separator string="Email body" colspan="4" /> + <field name="email_body" colspan="4" nolabel="1"/> + <separator string="Legend" colspan="4"/> + <label string="%%(partner_name)s: Partner name" colspan="2"/> + <label string="%%(user_signature)s: User name" colspan="2"/> + <label string="%%(followup_amount)s: Total Amount Due" colspan="2"/> + <label string="%%(date)s: Current Date" colspan="2"/> + <label string="%%(company_name)s: User's Company name" colspan="2"/> + <label string="%%(company_currency)s: User's Company Currency" colspan="2"/> + <label string="%%(heading)s: Move line header" colspan="2"/> + <label string="%%(line)s: Ledger Posting lines" colspan="2"/> + </page> + </notebook> + </group> + <separator colspan="4"/> + <group> + <button special="cancel" string="Cancel" icon='gtk-cancel'/> + <button name="do_print" string="Print Follow Ups" colspan="1" type="object" icon="gtk-print"/> + <button name="do_mail" string="Send Mails" colspan="1" type="object" icon="gtk-execute"/> + </group> + </form> </field> </record> - <record id="view_account_followup_print_all_msg" model="ir.ui.view"> + <record id="view_account_followup_print_all_msg" model="ir.ui.view"> <field name="name">account.followup.print.all.msg.form</field> <field name="model">account.followup.print.all</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Summary"> - <group col="4" colspan="6"> - <field name="summary" height="300" width="800"/> - </group> - <separator colspan="4"/> - <group> - <button special="cancel" string="Ok" icon='gtk-cancel'/> - </group> - </form> + <form string="Summary"> + <group col="4" colspan="6"> + <field name="summary" height="300" width="800"/> + </group> + <separator colspan="4"/> + <group> + <button special="cancel" string="Ok" icon='gtk-cancel'/> + </group> + </form> </field> </record> @@ -128,5 +128,5 @@ </record> - </data> -</openerp>
\ No newline at end of file + </data> +</openerp> diff --git a/addons/account_payment/i18n/es.po b/addons/account_payment/i18n/es.po index 96b1e86eeb9..a874084f3f3 100644 --- a/addons/account_payment/i18n/es.po +++ b/addons/account_payment/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_payment diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index f52dd23caa0..77a881744bc 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -153,13 +153,15 @@ class account_analytic_account(osv.osv): def name_get(self, cr, uid, ids, context={}): if not len(ids): return [] - reads = self.read(cr, uid, ids, ['name','parent_id'], context) res = [] - for record in reads: - name = record['name'] - if record['parent_id']: - name = record['parent_id'][1]+' / '+name - res.append((record['id'], name)) + for account in self.browse(cr, uid, ids, context=context): + data = [] + acc = account + while acc: + data.insert(0, acc.name) + acc = acc.parent_id + data = ' / '.join(data) + res.append((account.id, data)) return res def _complete_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict): @@ -197,7 +199,7 @@ class account_analytic_account(osv.osv): 'date': fields.date('Date End'), 'company_id': fields.many2one('res.company', 'Company', required=True), 'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Currency'), - 'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Closed'),('template', 'Template')], 'State', required=True,readonly=True, + 'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Closed'),('template', 'Template')], 'State', required=True, help='* When an account is created its in \'Draft\' state.\ \n* If any associated partner is there, it can be in \'Open\' state.\ \n* If any pending balance is there it can be in \'Pending\'. \ @@ -314,7 +316,7 @@ class account_analytic_line(osv.osv): _columns = { 'name' : fields.char('Description', size=256, required=True), - 'date' : fields.date('Date', required=True), + 'date' : fields.date('Date', required=True, select=1), 'amount' : fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price.'), 'unit_amount' : fields.float('Quantity', help='Specifies the amount of quantity to count.'), 'account_id' : fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True), diff --git a/addons/auction/auction_sequence.xml b/addons/auction/auction_sequence.xml index a25bbfe8c1a..6cd27d256f3 100644 --- a/addons/auction/auction_sequence.xml +++ b/addons/auction/auction_sequence.xml @@ -2,30 +2,30 @@ <openerp> <data noupdate="1"> - # - # Sequences for sale.order - # + # + # Sequences for sale.order + # - <record model="ir.sequence.type" id="seq_type_auction_deposit"> - <field name="name">Auction deposit</field> - <field name="code">auction.deposit</field> - </record> - <record model="ir.sequence" id="seq_sale_order"> - <field name="name">Auction deposit</field> - <field name="code">auction.deposit</field> - <field name="prefix">AD/</field> - <field name="padding">3</field> - </record> - <record model="ir.sequence.type" id="seq_type_bid"> - <field name="name">Auction bid </field> - <field name="code">auction.bid</field> - </record> - <record model="ir.sequence" id="seq_auction_bid"> - <field name="name">Auction bid</field> - <field name="code">auction.bid</field> - <field name="prefix">bid/</field> - <field name="padding">3</field> - </record> + <record model="ir.sequence.type" id="seq_type_auction_deposit"> + <field name="name">Auction deposit</field> + <field name="code">auction.deposit</field> + </record> + <record model="ir.sequence" id="seq_sale_order"> + <field name="name">Auction deposit</field> + <field name="code">auction.deposit</field> + <field name="prefix">AD/</field> + <field name="padding">3</field> + </record> + <record model="ir.sequence.type" id="seq_type_bid"> + <field name="name">Auction bid </field> + <field name="code">auction.bid</field> + </record> + <record model="ir.sequence" id="seq_auction_bid"> + <field name="name">Auction bid</field> + <field name="code">auction.bid</field> + <field name="prefix">bid/</field> + <field name="padding">3</field> + </record> </data> </openerp> diff --git a/addons/auction/board_auction_demo.xml b/addons/auction/board_auction_demo.xml index 504a02263da..f260f8bb1fc 100644 --- a/addons/auction/board_auction_demo.xml +++ b/addons/auction/board_auction_demo.xml @@ -2,13 +2,13 @@ <openerp> <data noupdate="1"> - <record model="ir.ui.view_sc" id="sc_auction_dash"> - <field name="name">Auction dashboard</field> - <field name="user_id" ref="base.user_root"/> - <field name="resource">ir.ui.menu</field> - <field name="sequence">4</field> - <field name="res_id" ref="menu_board_auction"/> - </record> +<!-- <record model="ir.ui.view_sc" id="sc_auction_dash">--> +<!-- <field name="name">Auction dashboard</field>--> +<!-- <field name="user_id" ref="base.user_root"/>--> +<!-- <field name="resource">ir.ui.menu</field>--> +<!-- <field name="sequence">4</field>--> +<!-- <field name="res_id" ref="menu_board_auction"/>--> +<!-- </record>--> </data> </openerp> diff --git a/addons/auction/i18n/el.po b/addons/auction/i18n/el.po index ee0853b10fc..659ea3aff63 100644 --- a/addons/auction/i18n/el.po +++ b/addons/auction/i18n/el.po @@ -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: 2010-06-24 02:48+0000\n" +"PO-Revision-Date: 2010-06-26 01:08+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-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction @@ -182,7 +182,7 @@ msgstr "ΦΠΑ" #. module: auction #: view:auction.lots:0 msgid "Statements" -msgstr "" +msgstr "Καταστάσεις" #. module: auction #: xsl:flagey.huissier:0 @@ -244,33 +244,34 @@ msgstr "Σύγχρονη Τέχνη" #: view:auction.lots:0 #: view:report.unclassified.objects:0 msgid "Ref" -msgstr "" +msgstr "Αναφορά" #. module: auction #: field:report.auction.view,nseller:0 msgid "No of sellers" -msgstr "" +msgstr "Αριθμός πωλητών" #. module: auction #: selection:auction.lots.send.aie,date_ask,lang:0 msgid "ned" -msgstr "" +msgstr "Κανονική ισοδύναμη απόκλιση" #. module: auction #: constraint:hr.attendance:0 msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)" msgstr "" +"Σφάλμα: Η Είσοδος (ή Έξοδος) πρέπει να ακολουθείται από Έξοδο (Είσοδο)" #. module: auction #: view:auction.lots:0 #: field:report.buyer.auction,total_price:0 msgid "Total Adj." -msgstr "" +msgstr "Συνολική προσαρμογή" #. module: auction #: field:report.auction.view2,obj_margin_procent:0 msgid "Net margin (%)" -msgstr "" +msgstr "Καθαρό περιθώριο (%)" #. module: auction #: selection:auction.lots,state:0 @@ -278,28 +279,28 @@ msgstr "" #: selection:report.seller.auction,state:0 #: selection:report.unclassified.objects,state:0 msgid "Unsold" -msgstr "" +msgstr "Αδιάθετο" #. module: auction #: view:auction.dates:0 msgid "Dates" -msgstr "" +msgstr "Ημερομηνίες" #. module: auction #: constraint:product.template:0 msgid "Error: UOS must be in a different category than the UOM" -msgstr "" +msgstr "Error: UOS must be in a different category than the UOM" #. module: auction #: rml:auction.total.rml:0 msgid "Items" -msgstr "" +msgstr "Αντικείμενα" #. module: auction #: model:account.tax,name:auction.auction_tax5 #: field:auction.dates,seller_costs:0 msgid "Seller Costs" -msgstr "" +msgstr "Έξοδα πωλητών" #. module: auction #: view:auction.bid:0 @@ -309,75 +310,75 @@ msgstr "" #: model:ir.actions.report.xml,name:auction.bid_auction #: model:ir.ui.menu,name:auction.menu_action_bid_open msgid "Bids" -msgstr "" +msgstr "Προσφορές" #. module: auction #: model:ir.ui.menu,name:auction.auction_all_objects_menu msgid "All objects" -msgstr "" +msgstr "Όλα τα αντικείμενα" #. module: auction #: model:ir.actions.act_window,name:auction.action_auction_buyer_reporting_all2 msgid "Buyer's auction for all months" -msgstr "" +msgstr "Πληστηριασμοί αγοραστή για όλους τους μήνες" #. module: auction #: field:auction.bid,contact_tel:0 msgid "Contact" -msgstr "" +msgstr "Επικοινωνία" #. module: auction #: field:report.auction.view,obj_ret:0 #: field:report.object.encoded,obj_ret:0 #: field:report.object.encoded.manager,obj_ret:0 msgid "# obj ret" -msgstr "" +msgstr "Αριθμός αντικειμένων που επεστράφησαν" #. module: auction #: wizard_button:auction.lots.sms_send,init,send:0 msgid "Send SMS" -msgstr "" +msgstr "Αποστολή SMS" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Painting" -msgstr "" +msgstr "Cont. Τέχνη/Ζωγραφική" #. module: auction #: field:auction.lots,sel_inv_id:0 msgid "Seller Invoice" -msgstr "" +msgstr "Τιμολόγιο πωλητή" #. module: auction #: view:auction.dates:0 msgid "Commissions" -msgstr "" +msgstr "Προμήθειες" #. module: auction #: wizard_button:auction.lots.numerotate,search,init:0 msgid "Back" -msgstr "" +msgstr "Πίσω" #. module: auction #: model:ir.actions.act_window,name:auction.action_all_objects_unsold msgid "Unsold objects" -msgstr "" +msgstr "Αδιάθετα αντικείμενα" #. module: auction #: model:ir.ui.menu,name:auction.menu_all_objects_sold1 msgid "Sold Objects" -msgstr "" +msgstr "Πουλημένα αντικείμενα" #. module: auction #: view:report.buyer.auction2:0 #: view:report.seller.auction2:0 msgid "Sum net margin" -msgstr "" +msgstr "Σύνολο καθαρού περιθωρίου" #. module: auction #: view:auction.deposit:0 msgid "Deposit Border Form" -msgstr "" +msgstr "Κατάθεση φόρμας συνόρων" #. module: auction #: field:auction.bid,bid_lines:0 @@ -385,12 +386,12 @@ msgstr "" #: rml:bids.lots:0 #: model:ir.model,name:auction.model_auction_bid_line msgid "Bid" -msgstr "" +msgstr "Προσφορά" #. module: auction #: wizard_field:auction.lots.send.aie,date_ask,lang:0 msgid "Langage" -msgstr "" +msgstr "Γλώσσα" #. module: auction #: field:auction.bid_line,lot_id:0 @@ -398,17 +399,17 @@ msgstr "" #: view:auction.lots:0 #: model:ir.model,name:auction.model_auction_lots msgid "Object" -msgstr "" +msgstr "Αντικείμενο" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_map_user msgid "Map buyer username to Partners" -msgstr "" +msgstr "Καταγραφή του ονόματος χρήστη στους 'Συνεργάτες'" #. module: auction #: wizard_field:auction.lots.numerotate,search,lot_num:0 msgid "Inventory Number" -msgstr "" +msgstr "Αριθμός απογραφής" #. module: auction #: wizard_button:auction.lots.buyer_map,check,end:0 @@ -416,17 +417,17 @@ msgstr "" #: wizard_button:auction.lots.numerotate,search,end:0 #: wizard_button:auction.lots.numerotate_cont,init,end:0 msgid "Exit" -msgstr "" +msgstr "Έξοδος" #. module: auction #: field:report.buyer.auction2,net_revenue:0 msgid "Net Revenue" -msgstr "" +msgstr "Καθαρό έσοδο" #. module: auction #: view:report.buyer.auction:0 msgid "Auction buyer reporting form view" -msgstr "" +msgstr "Έντυπο έκθεσης άποψης των αγοραστών δημοπρασιών" #. module: auction #: field:auction.dates,state:0 @@ -436,17 +437,17 @@ msgstr "" #: field:report.seller.auction,state:0 #: field:report.unclassified.objects,state:0 msgid "Status" -msgstr "" +msgstr "Κατάσταση" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_sms msgid "SMS Send" -msgstr "" +msgstr "Αποστολή γραπτού μηνύματος" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Cartoons" -msgstr "" +msgstr "Αντίκες/Γελοιογραφίες" #. module: auction #: view:auction.lots:0 @@ -454,42 +455,43 @@ msgstr "" #: selection:report.seller.auction,state:0 #: selection:report.unclassified.objects,state:0 msgid "Sold" -msgstr "" +msgstr "Πουλημένο" #. module: auction #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." msgstr "" +"Σφάλμα! Δε μπορείται να δημιουργήσετε αναδρομική ιεραρχία στους εργαζομένους" #. module: auction #: field:auction.bid_line,name:0 msgid "Bid date" -msgstr "" +msgstr "Ημερομηνία προσφορών" #. module: auction #: field:auction.dates,acc_expense:0 msgid "Expense Account" -msgstr "" +msgstr "Λογαριασμός Εξόδων" #. module: auction #: model:ir.ui.menu,name:auction.menu_wizard_emporte msgid "Deliveries Management" -msgstr "" +msgstr "Διαχείριση Παραδόσεων" #. module: auction #: field:auction.lots,obj_desc:0 msgid "Object Description" -msgstr "" +msgstr "Περιγραφή αντικειμένου" #. module: auction #: selection:auction.deposit,method:0 msgid "Contact the Seller" -msgstr "" +msgstr "Επικοινωνήστε με τον πωλητή" #. module: auction #: view:auction.lots:0 msgid "Auction Objects" -msgstr "" +msgstr "Δημοπρατημένα αντικείμενα" #. module: auction #: field:auction.lots,gross_revenue:0 @@ -497,60 +499,60 @@ msgstr "" #: field:report.object.encoded.manager,gross_revenue:0 #: field:report.seller.auction2,gross_revenue:0 msgid "Gross revenue" -msgstr "" +msgstr "Μικτό έσοδο" #. module: auction #: view:report.seller.auction2:0 msgid "Auction reporting2 form view" -msgstr "" +msgstr "Έντυπο αναφοράς άποψης Δημοπρασίας" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_pay msgid "Pay objects of the buyer" -msgstr "" +msgstr "Πληρωμή αντικειμένων του αγοραστή" #. module: auction #: view:report.deposit.border:0 msgid "Depositer's statistics" -msgstr "" +msgstr "Στατιστικά αποταμιευτή" #. module: auction #: view:auction.lots:0 msgid "Buyer information" -msgstr "" +msgstr "Πληροφορίες Αγοραστή" #. module: auction #: model:ir.model,name:auction.model_report_seller_auction msgid "Auction Reporting on seller view" -msgstr "" +msgstr "Έντυπο αναφοράς άποψης των πωλητών για τη δημοπρασία" #. module: auction #: field:auction.lots,name2:0 msgid "Short Description (2)" -msgstr "" +msgstr "Σύντομη περιγραφή (2)" #. module: auction #: model:ir.model,name:auction.model_auction_dates msgid "auction.dates" -msgstr "" +msgstr "Δημοπρασίες.Ημερομηνίες" #. module: auction #: rml:auction.total.rml:0 #: model:ir.ui.menu,name:auction.auction_buyers_menu msgid "Buyers" -msgstr "" +msgstr "Αγοραστές" #. module: auction #: wizard_field:auction.pay.buy,init,amount:0 #: wizard_field:auction.pay.buy,init,amount2:0 #: wizard_field:auction.pay.buy,init,amount3:0 msgid "Amount paid" -msgstr "" +msgstr "Ποσό που πληρώθηκε" #. module: auction #: model:ir.ui.menu,name:auction.menu_report_latest_doposit_tree msgid "My Latest Deposits" -msgstr "" +msgstr "Οι Τελευταίες Καταθέσεις μου" #. module: auction #: field:auction.lots,lot_est1:0 @@ -559,105 +561,105 @@ msgstr "" #: field:report.auction.view,min_est:0 #: field:report.unclassified.objects,lot_est1:0 msgid "Minimum Estimation" -msgstr "" +msgstr "Ελάχιστος υπολογισμός" #. module: auction #: view:auction.dates:0 msgid "Accounting" -msgstr "" +msgstr "Λογιστική" #. module: auction #: model:ir.ui.menu,name:auction.menu_buyer_allmonth_view2 msgid "Buyer's Revenues" -msgstr "" +msgstr "Έσοδα του Αγοραστή" #. module: auction #: model:ir.model,name:auction.model_report_auction_adjudication msgid "report_auction_adjudication" -msgstr "" +msgstr "Αναφορά_δημοπρασίες_Διαγωνισμοί" #. module: auction #: field:auction.bid_line,price:0 msgid "Maximum Price" -msgstr "" +msgstr "Μέγιστη τιμή" #. module: auction #: selection:auction.lots.send.aie,date_ask,lang:0 msgid "eng" -msgstr "" +msgstr "Αγγλική" #. module: auction #: view:report.buyer.auction2:0 msgid "Auction buyer reporting tree view2" -msgstr "" +msgstr "Προβολή δέντρου εκθέσεων αγοραστή δημοπρασιών" #. module: auction #: wizard_view:auction.lots.sms_send,init:0 msgid "Bulk SMS send" -msgstr "" +msgstr "Μαζική αποστολή γραπτών μηνυμάτων" #. module: auction #: wizard_view:auction.taken,init:0 msgid "Select lots which are Sold" -msgstr "" +msgstr "Επιλέξτε παρτίδες που έχουν πουληθεί" #. module: auction #: field:auction.lots,statement_id:0 msgid "Payment" -msgstr "" +msgstr "Πληρωμή" #. module: auction #: selection:auction.lots.send.aie,date_ask,lang:0 msgid "fr" -msgstr "" +msgstr "Γαλλική" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Old weapons and militaria" -msgstr "" +msgstr "Αντίκες/ παλαιά όπλα και στρατιωτικά είδη" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Oriental Arts/Chineese furnitures" -msgstr "" +msgstr "Αντίκεςς/Ανατολίτικη τέχνη/Κινέζικα έπιπλα" #. module: auction #: selection:auction.deposit,method:0 msgid "Keep until sold" -msgstr "" +msgstr "Διατήρηση μέχρι να πουληθεί" #. module: auction #: wizard_button:auction.lots.numerotate,init,choice:0 #: wizard_button:auction.lots.send.aie,init,date_ask:0 #: wizard_button:auction.lots.send.aie.results,init,date_ask:0 msgid "Continue" -msgstr "" +msgstr "Συνεχίστε" #. module: auction #: field:report.object.encoded,obj_num:0 #: field:report.object.encoded.manager,obj_num:0 msgid "# of Encoded obj." -msgstr "" +msgstr "Πλήθος κωδικοποιημένων αντικειμένων" #. module: auction #: xsl:report.auction.vnd_bordereau:0 msgid "List N." -msgstr "" +msgstr "Λίστα Ν." #. module: auction #: field:report.deposit.border,moy_est:0 msgid "Avg. Est" -msgstr "" +msgstr "Μέσος υπολογισμός" #. module: auction #: rml:auction.total.rml:0 msgid "# of sellers:" -msgstr "" +msgstr "Πλήθος πωλητών:" #. module: auction #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "Σφάλμα: Άκυρος κωδικός EAN" #. module: auction #: model:ir.module.module,description:auction.module_meta_information @@ -668,26 +670,33 @@ msgid "" " Delivery Management. \n" " " msgstr "" +"Αυτή η μονάδα παρέχει λειτουργικότητα στη \n" +" Διαχείριση καλλιτεχνών, αντικειμένων, πωλητών, αγοραστών και " +"δημοπρασίας.\n" +" Διαχείριση προσφορών, ιχνηλάτιση πουλημένων, πληρωμένων και απλήρωτων " +"αντικειμένων.\n" +" Διαχείριση παραδόσεων. \n" +" " #. module: auction #: rml:auction.total.rml:0 msgid "# of items taken away:" -msgstr "" +msgstr "πλήθος αντικειμένων που παραδόθηκαν:" #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_allmonth_view1 msgid "Auction's Summary" -msgstr "" +msgstr "Περίληψη Δημοπρασίας" #. module: auction #: rml:buyer.list:0 msgid "%)" -msgstr "" +msgstr "%)" #. module: auction #: wizard_view:auction.lots.able,init:0 msgid "Confirmation set taken away" -msgstr "" +msgstr "Επιβεβαίωση αυτών που έχουν σταλθεί" #. module: auction #: wizard_field:auction.lots.make_invoice,init,objects:0 @@ -696,7 +705,7 @@ msgstr "" #: wizard_field:auction.lots.send.aie.results,date_ask,objects:0 #: field:report.deposit.border,nb_obj:0 msgid "# of objects" -msgstr "" +msgstr "ΠΛήθος αντικειμένων" #. module: auction #: field:auction.lots,lot_est2:0 @@ -705,282 +714,283 @@ msgstr "" #: field:report.auction.view,max_est:0 #: field:report.unclassified.objects,lot_est2:0 msgid "Maximum Estimation" -msgstr "" +msgstr "Μέγιστος υπολογισμός" #. module: auction #: field:auction.lots,buyer_price:0 msgid "Buyer price" -msgstr "" +msgstr "Τιμή αγοραστή" #. module: auction #: model:ir.actions.wizard,name:auction.auction_wizard_payer_sel msgid "Mark as paid for seller" -msgstr "" +msgstr "Σημειώστε το ως πληρωμένο για τον πωλητή" #. module: auction #: model:ir.actions.report.xml,name:auction.seller_form_id msgid "Seller List" -msgstr "" +msgstr "Λίστα πωλητών" #. module: auction #: field:auction.lots,is_ok:0 msgid "Buyer's payment" -msgstr "" +msgstr "ΠΛηρωμή αγοραστή" #. module: auction #: view:auction.dates:0 msgid "Close + Create all invoices" -msgstr "" +msgstr "Κλείσιμο + Δημιουργεία όλων των τιμολογίων" #. module: auction #: model:ir.actions.wizard,name:auction.auction_catalog_flagy msgid "Auction Catalog Flagey" -msgstr "" +msgstr "Κατάλογος δημοπρασιών Flagey" #. module: auction #: field:auction.lot.history,price:0 msgid "Withdrawn price" -msgstr "" +msgstr "Απόσυρση τιμής" #. module: auction #: model:account.tax,name:auction.auction_tax4 msgid "Seller Costs1" -msgstr "" +msgstr "Έξοδα πωλητή1" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Verreries" -msgstr "" +msgstr "Αντίκες/Υαλικά" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Toys" -msgstr "" +msgstr "Αντίκες/Παιχνίδια" #. module: auction #: field:auction.deposit,create_uid:0 #: field:auction.lots,create_uid:0 msgid "Created by" -msgstr "" +msgstr "Δημιουργήθηκε από" #. module: auction #: xsl:report.auction.ach_bordereau:0 msgid "Buyer form" -msgstr "" +msgstr "Φόρμα αγοραστή" #. module: auction #: xsl:report.auction.deposit:0 msgid "Estimate" -msgstr "" +msgstr "Εκτιμώ" #. module: auction #: rml:auction.total.rml:0 msgid "# of buyers:" -msgstr "" +msgstr "Πλήθος αγοραστών" #. module: auction #: field:auction.lots,costs:0 msgid "Indirect costs" -msgstr "" +msgstr "Έμμεσα έξοδα" #. module: auction #: xsl:report.auction.ach_bordereau:0 msgid "Cat" -msgstr "" +msgstr "Cat" #. module: auction #: constraint:account.tax.code:0 msgid "Error ! You can not create recursive accounts." msgstr "" +"Σφάλμα! Δεν μπορείτε να χρησιμοποιήσετε επαναλαμβανόμενους λογαριασμούς." #. module: auction #: model:ir.ui.menu,name:auction.auction_menu_root msgid "Auction Management" -msgstr "" +msgstr "Διαχείριση Δημοπρασιών" #. module: auction #: field:auction.dates,journal_seller_id:0 msgid "Seller Journal" -msgstr "" +msgstr "Ημερολόγιο πωλητή" #. module: auction #: view:report.buyer.auction:0 msgid "Auction buyer reporting tree view" -msgstr "" +msgstr "Προβολή δέντρου εκθέσεων αγοραστή δημοπρασιών" #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_artist msgid "Define Artists" -msgstr "" +msgstr "Ορίστε Καλλιτέχνες" #. module: auction #: field:auction.lot.category,name:0 msgid "Category Name" -msgstr "" +msgstr "Όνομα Κατηγορίας" #. module: auction #: model:ir.ui.menu,name:auction.menu_report_auction_estimation_adj_category_manager #: model:ir.ui.menu,name:auction.menu_report_auction_estimation_adj_category_member msgid "Comparison of estimations" -msgstr "" +msgstr "Σύγκριση υπολογισμών" #. module: auction #: model:ir.actions.report.xml,name:auction.v_report_barcode_lot msgid "Code barres du lot" -msgstr "" +msgstr "Barcode παρτίδας" #. module: auction #: wizard_button:auction.lots.numerotate,not_exist,init:0 msgid "Retry" -msgstr "" +msgstr "Επανάληψη" #. module: auction #: field:auction.artists,birth_death_dates:0 msgid "Birth / Death dates" -msgstr "" +msgstr "Δημιουργία / κλείσιμο ημερομηνιών" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Jewelry" -msgstr "" +msgstr "Αντίκες/Κοσμήματα" #. module: auction #: model:ir.model,name:auction.model_report_unclassified_objects msgid "Unclassified objects " -msgstr "" +msgstr "Αντικείμενα μη ταξινομημένα " #. module: auction #: wizard_button:auction.lots.numerotate_cont,init,set_number:0 #: wizard_field:auction.lots.send.aie,date_ask,numerotation:0 #: wizard_field:auction.lots.send.aie,init,numerotation:0 msgid "Numerotation" -msgstr "" +msgstr "Αρίθμιση" #. module: auction #: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit msgid "Bordereau de dépôt" -msgstr "" +msgstr "Φύλλο κατάθεσης" #. module: auction #: xsl:report.auction.deposit:0 msgid "Document type" -msgstr "" +msgstr "Τύπος εγγράφου" #. module: auction #: model:ir.model,name:auction.model_report_auction_estimation_adj_category msgid "comparaison estimate/adjudication " -msgstr "" +msgstr "εκτίμηση σύγκριση / προσφορών " #. module: auction #: rml:buyer.list:0 msgid "Adj(EUR)" -msgstr "" +msgstr "Μετατροπη σε Ευρώ" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Other Media" -msgstr "" +msgstr "Cont. Art/Other Media" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_emporte msgid "Gestion emporte" -msgstr "" +msgstr "Διαχείριση Κερδισμένων" #. module: auction #: xsl:report.auction.lots.list.landscape:0 #: xsl:report.auction.vnd_bordereau:0 msgid "Cat. N." -msgstr "" +msgstr "Cat. N." #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_object_cat msgid "Object Categories" -msgstr "" +msgstr "Κατηγορίες αντικειμένων" #. module: auction #: wizard_field:auction.lots.send.aie,date_ask,img_send:0 msgid "Send Image also ?" -msgstr "" +msgstr "Να αποσταλεί και εικόνα;" #. module: auction #: view:auction.deposit:0 msgid "General Informations" -msgstr "" +msgstr "Γενικές Πληροφορίες" #. module: auction #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "Λανθασμένο XML για προβολή αρχιτεκτονικής!" #. module: auction #: view:report.auction.view:0 msgid "Auctions results" -msgstr "" +msgstr "Αποτελέσματα δημοπρασιών" #. module: auction #: wizard_field:auction.lots.sms_send,init,app_id:0 msgid "API ID" -msgstr "" +msgstr "API ID" #. module: auction #: field:auction.bid,name:0 #: field:auction.bid_line,bid_id:0 msgid "Bid ID" -msgstr "" +msgstr "Ταυτότητα προσφοράς" #. module: auction #: rml:auction.total.rml:0 msgid "Min Estimate:" -msgstr "" +msgstr "Ελάχιστος εκτίμηση:" #. module: auction #: field:report.buyer.auction2,net_margin:0 msgid "Net Margin" -msgstr "" +msgstr "Καθαρό περιθώριο" #. module: auction #: field:auction.lots,vnd_lim_net:0 msgid "Net limit ?" -msgstr "" +msgstr "Καθαρό όριο ;" #. module: auction #: rml:auction.total.rml:0 msgid "# of commissions:" -msgstr "" +msgstr "Πλήθος προμηθειών" #. module: auction #: model:ir.actions.act_window,name:auction.action_unclassified_objects #: model:ir.ui.menu,name:auction.menu_all_objects_unclassified #: view:report.unclassified.objects:0 msgid "Unclassified objects" -msgstr "" +msgstr "Μη ταξινομημένα αντικείμενα" #. module: auction #: wizard_view:auction.lots.make_invoice_buyer,init:0 msgid "(Keep empty for automatic number)" -msgstr "" +msgstr "( Αφήστε το κενό για αυτόματη αρίθμιση )" #. module: auction #: model:ir.model,name:auction.model_report_auction_object_date #: view:report.auction.object.date:0 msgid "Objects per day" -msgstr "" +msgstr "Αντικείμενα ανα ημέρα" #. module: auction #: model:product.template,name:auction.monproduit_product_template msgid "Oeuvres a 21%" -msgstr "" +msgstr "Έργα σε 21%" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Carpet and textilles" -msgstr "" +msgstr "Αντίκες/Χαλιά και υφάσματα" #. module: auction #: xsl:report.auction.seller.list:0 #: field:report.object.encoded.manager,adj:0 msgid "Adj." -msgstr "" +msgstr "Προσαρμογή" #. module: auction #: field:auction.lot.history,name:0 @@ -989,91 +999,91 @@ msgstr "" #: xsl:report.auction.deposit:0 #: field:report.auction.estimation.adj.category,date:0 msgid "Date" -msgstr "" +msgstr "Ημερομηνία" #. module: auction #: field:auction.lots,obj_ret:0 msgid "Price retired" -msgstr "" +msgstr "Απόσυρση τιμής" #. module: auction #: view:auction.deposit:0 msgid "Extra Costs" -msgstr "" +msgstr "Επιπλέον έξοδα" #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_dates_new msgid "New Auction Dates" -msgstr "" +msgstr "Ημερομηνία νέας δημοπρασίας" #. module: auction #: field:auction.lots,paid_vnd:0 msgid "Seller Paid" -msgstr "" +msgstr "Αμειβόμενος Πωλητής" #. module: auction #: field:auction.deposit,date_dep:0 msgid "Deposit date" -msgstr "" +msgstr "Ημερομηνία κατάθεσης" #. module: auction #: model:ir.actions.report.xml,name:auction.id_deposit msgid "Deposits" -msgstr "" +msgstr "Αποθέματα" #. module: auction #: field:auction.deposit,specific_cost_ids:0 msgid "Specific Costs" -msgstr "" +msgstr "Ειδικά έξοδα" #. module: auction #: view:report.buyer.auction2:0 #: view:report.seller.auction2:0 msgid "Sum adj" -msgstr "" +msgstr "Προσαρμογή συνόλου" #. module: auction #: view:auction.dates:0 #: view:report.auction.view2:0 msgid "Auctions" -msgstr "" +msgstr "Δημοπρασίες" #. module: auction #: field:report.seller.auction,object_number:0 msgid "No of Objects" -msgstr "" +msgstr "Αριθμός αντικειμένων" #. module: auction #: view:auction.lots:0 msgid "History" -msgstr "" +msgstr "Ιστορικό" #. module: auction #: field:auction.lot.category,priority:0 msgid "Priority" -msgstr "" +msgstr "Προτεραιότητα" #. module: auction #: rml:auction.code_bar_lot:0 msgid "Nr." -msgstr "" +msgstr "Νο." #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Painting" -msgstr "" +msgstr "Αντίκες/Πίνακες Ζωγραφικής" #. module: auction #: field:auction.lot.category,aie_categ:0 msgid "Aie Category" -msgstr "" +msgstr "Σε κατηγορία" #. module: auction #: xsl:flagey.huissier:0 #: rml:report.auction.buyer.result:0 #: xsl:report.auction.deposit:0 msgid "Num" -msgstr "" +msgstr "Num" #. module: auction #: wizard_button:auction.lots.able,init,end:0 @@ -1090,110 +1100,110 @@ msgstr "" #: wizard_button:auction.pay.buy,init,end:0 #: wizard_button:auction.payer.sel,init,end:0 msgid "Cancel" -msgstr "" +msgstr "Ακύρωση" #. module: auction #: view:auction.dates:0 msgid "Beginning of the auction" -msgstr "" +msgstr "Έναρξη της Δημοπρασίας" #. module: auction #: field:auction.artists,biography:0 msgid "Biography" -msgstr "" +msgstr "Βιογραφία" #. module: auction #: field:auction.lots,lot_local:0 msgid "Location" -msgstr "" +msgstr "Τοποθεσία" #. module: auction #: wizard_view:auction.payer.sel,init:0 msgid "Check payment for seller" -msgstr "" +msgstr "Έλεγχος πληρωμής πωλητή" #. module: auction #: model:ir.actions.act_window,name:auction.view_report_object_by_auction msgid "Detailed lots" -msgstr "" +msgstr "Λεπτομέρειες παρτίδων" #. module: auction #: view:report.object.encoded:0 #: view:report.object.encoded.manager:0 msgid "Objects statistics" -msgstr "" +msgstr "Στατιστικά Αντικειμένων" #. module: auction #: view:auction.dates:0 msgid "Analytic" -msgstr "" +msgstr "Αναλυτικοί" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_results msgid "Send results to Auction-in-europe.com" -msgstr "" +msgstr "Αποστολή αποτελεσμάτων στο Auction-in-europe.com" #. module: auction #: rml:bids.lots:0 #: rml:bids.phones.details:0 msgid "Cat.N" -msgstr "" +msgstr "Cat.N" #. module: auction #: selection:auction.deposit,method:0 msgid "Decrease limit of 10%" -msgstr "" +msgstr "Μείωση ορίου 10%" #. module: auction #: field:auction.dates,adj_total:0 #: field:report.auction.adjudication,adj_total:0 #: field:report.auction.estimation.adj.category,adj_total:0 msgid "Total Adjudication" -msgstr "" +msgstr "Σύνολο προσφορών" #. module: auction #: model:ir.actions.act_window,name:auction.action_auction_reporting1 #: model:ir.actions.act_window,name:auction.action_auction_reporting_all1 #: model:ir.actions.act_window,name:auction.action_auction_reporting_all2 msgid "Seller's auction" -msgstr "" +msgstr "Δημοπρασία του Πωλητή" #. module: auction #: model:ir.actions.wizard,name:auction.wizard_invoice_buyer1 msgid "Invoice Buyer objects" -msgstr "" +msgstr "Τιμολόγηση αντικειμένων αγοραστή" #. module: auction #: model:ir.ui.menu,name:auction.menu_seller_allmonth_view2 msgid "Seller's Revenues" -msgstr "" +msgstr "Έσοδα Πωλητή" #. module: auction #: xsl:flagey.huissier:0 msgid "Price" -msgstr "" +msgstr "Τιμή" #. module: auction #: rml:bids.phones.details:0 msgid "-" -msgstr "" +msgstr "-" #. module: auction #: xsl:report.auction.ach_bordereau:0 #: xsl:report.auction.vnd_bordereau:0 msgid "Subtotal:" -msgstr "" +msgstr "Μερικό σύνολο:" #. module: auction #: view:auction.deposit:0 msgid "Photos" -msgstr "" +msgstr "Φωτογραφίες" #. module: auction #: wizard_field:auction.lots.make_invoice,init,number:0 #: wizard_field:auction.lots.make_invoice_buyer,init,number:0 msgid "Invoice Number" -msgstr "" +msgstr "Αριθμός Τιμολογίου" #. module: auction #: field:report.buyer.auction,date:0 @@ -1202,22 +1212,22 @@ msgstr "" #: field:report.object.encoded.manager,date:0 #: field:report.seller.auction,date:0 msgid "Create Date" -msgstr "" +msgstr "Ημερομηνία Δημιουργίας" #. module: auction #: model:ir.ui.menu,name:auction.menu_buyer_allmonth_view1 msgid "Buyer's Summary" -msgstr "" +msgstr "Σύνοψη Αγοραστή" #. module: auction #: xsl:report.auction.ach_bordereau:0 msgid "Customer Reference" -msgstr "" +msgstr "Αναφορά πελάτη" #. module: auction #: rml:bids.lots:0 msgid "Name" -msgstr "" +msgstr "Όνομα" #. module: auction #: field:auction.deposit,name:0 @@ -1226,18 +1236,18 @@ msgstr "" #: field:report.deposit.border,bord:0 #: field:report.unclassified.objects,bord_vnd_id:0 msgid "Depositer Inventory" -msgstr "" +msgstr "Απογραφή αποταμιευτών" #. module: auction #: model:ir.ui.menu,name:auction.menu_report_deposit_tree_m #: model:ir.ui.menu,name:auction.menu_report_deposit_tree_member msgid "Depositer's Statistics" -msgstr "" +msgstr "Στατιστικά στοιχεία αποταμιευτών" #. module: auction #: view:report.object.encoded.manager:0 msgid "Total adj." -msgstr "" +msgstr "Συνολική προσαρμογή" #. module: auction #: wizard_field:auction.lots.send.aie,date_ask,uname:0 @@ -1246,39 +1256,39 @@ msgstr "" #: wizard_field:auction.lots.send.aie.results,init,uname:0 #: wizard_field:auction.lots.sms_send,init,user:0 msgid "Login" -msgstr "" +msgstr "Είσοδος" #. module: auction #: rml:buyer.list:0 #: xsl:report.auction.seller.list:0 msgid "To pay" -msgstr "" +msgstr "Για πληρωμή" #. module: auction #: wizard_button:auction.lots.enable,init,go:0 msgid "Enable Taken away" -msgstr "" +msgstr "Ενεργοποίηση απομάκρυνσης" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Others" -msgstr "" +msgstr "Αντίκες/Άλλα" #. module: auction #: model:ir.actions.report.xml,name:auction.seller_lots_3 msgid "Seller Form" -msgstr "" +msgstr "Φόρμα πωλητή" #. module: auction #: field:auction.lots,lot_type:0 #: field:report.unclassified.objects,lot_type:0 msgid "Object category" -msgstr "" +msgstr "Κατηγορία αντικειμένου" #. module: auction #: wizard_view:auction.taken,init:0 msgid "Mark Lots" -msgstr "" +msgstr "Σημείωσε τις παρτίδες" #. module: auction #: field:auction.lots,obj_num:0 @@ -1286,131 +1296,131 @@ msgstr "" #: wizard_field:auction.lots.numerotate,search,obj_num:0 #: field:report.unclassified.objects,obj_num:0 msgid "Catalog Number" -msgstr "" +msgstr "Αριθμός καταλόγου" #. module: auction #: view:report.auction.view2:0 msgid "Auction Reporting tree view2" -msgstr "" +msgstr "προβολή δένδρου αναφοράς της δημοπρασίας 2" #. module: auction #: view:report.buyer.auction2:0 msgid "Auction buyer reporting form view2" -msgstr "" +msgstr "Προβολή φόρμας αναφοράς αγοραστών της δημοπρασίας 2" #. module: auction #: model:ir.actions.report.xml,name:auction.bid_phone msgid "Bids phones" -msgstr "" +msgstr "Προσφορές δια τηλεφώνου" #. module: auction #: model:ir.actions.act_window,name:auction.action_report_object_by_auction msgid "Auction dates" -msgstr "" +msgstr "Ημερομηνίες δημοπρασίας" #. module: auction #: view:report.seller.auction2:0 msgid "Auction seller reporting2 graph view" -msgstr "" +msgstr "Προβολη διαγραμμάτων αναφοράς πωλητή της δημοπρασίας" #. module: auction #: model:ir.ui.menu,name:auction.menu_report_auction_object_date_tree msgid "Encoded Objects Per Day" -msgstr "" +msgstr "Κωδικοποιημένα Αντικείμενα ανά ημέρα" #. module: auction #: model:ir.model,name:auction.model_report_buyer_auction #: model:ir.model,name:auction.model_report_buyer_auction2 msgid "Auction Reporting on buyer view" -msgstr "" +msgstr "Υποβολή έκθεσης δημοπρασίας στη θέση του πωλητή" #. module: auction #: rml:auction.total.rml:0 msgid "Debit:" -msgstr "" +msgstr "Χρέωση:" #. module: auction #: field:auction.lots,author_right:0 msgid "Author rights" -msgstr "" +msgstr "Δικαιώματα πνευματικής ιδιοκτησίας" #. module: auction #: view:auction.lots:0 msgid "Payment's history" -msgstr "" +msgstr "Ιστορικό πληρωμών" #. module: auction #: xsl:report.auction.ach_bordereau:0 #: xsl:report.auction.vnd_bordereau:0 msgid "Document" -msgstr "" +msgstr "Έγγραφο" #. module: auction #: xsl:report.auction.lots.list.landscape:0 msgid ", TEL:" -msgstr "" +msgstr ", Τηλέφωνο:" #. module: auction #: view:report.auction.view:0 msgid "Auction results" -msgstr "" +msgstr "Αποτελέσματα Δημοπρασίας" #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_allmonth_view2 msgid "Auction's Revenues" -msgstr "" +msgstr "Έσοδα Δημοπρασίας" #. module: auction #: view:report.object.encoded.manager:0 msgid "Total net rev." -msgstr "" +msgstr "Συνολικά καθαρά έσοδα." #. module: auction #: wizard_button:auction.lots.buyer_map,check,set_buyer:0 msgid "Update" -msgstr "" +msgstr "Ενημέρωση" #. module: auction #: rml:auction.total.rml:0 #: model:ir.ui.menu,name:auction.auction_report_seller_menu #: model:ir.ui.menu,name:auction.auction_seller_menu msgid "Sellers" -msgstr "" +msgstr "Πωλητές" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Metal Ware" -msgstr "" +msgstr "Αντίκες/Μεταλικά αντικείμενα" #. module: auction #: model:ir.actions.report.xml,name:auction.res_w_buyer msgid "Results with buyer" -msgstr "" +msgstr "Αποτελέσματα με τον αγοραστή" #. module: auction #: selection:auction.lots.send.aie,date_ask,lang:0 msgid "de" -msgstr "" +msgstr "de" #. module: auction #: wizard_button:auction.lots.auction_move,init,set_date:0 msgid "Move to Auction date" -msgstr "" +msgstr "Μεταφορά στην ημερομηνία δημοπρασίας" #. module: auction #: model:ir.actions.act_window,name:auction.action_auction_dates_old msgid "Old Auctions" -msgstr "" +msgstr "Παλαιότερες Δημοπρασίες" #. module: auction #: rml:auction.total.rml:0 msgid "# of unsold items:" -msgstr "" +msgstr "Πλήθος Αδιάθετων αντικειμένων" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Curiosa" -msgstr "" +msgstr "Cont. Art/Curiosa" #. module: auction #: field:auction.bid,auction_id:0 @@ -1421,187 +1431,189 @@ msgstr "" #: wizard_field:auction.lots.send.aie.results,date_ask,dates:0 #: wizard_field:auction.lots.send.aie.results,init,dates:0 msgid "Auction Date" -msgstr "" +msgstr "Ημερομηνία Δημοπρασίας" #. module: auction #: rml:auction.code_bar_lot:0 msgid ", ID" -msgstr "" +msgstr ", Ταυτότητα" #. module: auction #: model:ir.module.module,shortdesc:auction.module_meta_information msgid "Auction module" -msgstr "" +msgstr "Ενότητα Δημοπρασιών" #. module: auction #: field:auction.bid_line,auction:0 msgid "Auction Name" -msgstr "" +msgstr "Όνομα Δημοπρασίας" #. module: auction #: model:ir.ui.menu,name:auction.menu_report_auction_sign_in_out_manager_tree1 #: model:ir.ui.menu,name:auction.menu_report_auction_sign_in_out_member_tree1 msgid "Attendance" -msgstr "" +msgstr "Ακροατήριο" #. module: auction #: view:auction.lots:0 msgid "Seller information" -msgstr "" +msgstr "Πληροφορίες Πωλητή" #. module: auction #: field:auction.lots,ach_login:0 #: wizard_field:auction.lots.buyer_map,check,ach_login:0 #: field:report.unclassified.objects,ach_login:0 msgid "Buyer Username" -msgstr "" +msgstr "Όνομα χρήστη αγοραστή" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Jewelry" -msgstr "" +msgstr "Συνέχεια σε Τέχνη/Κοσμήματα" #. module: auction #: xsl:report.auction.deposit:0 #: xsl:report.auction.vnd_bordereau:0 msgid "Inventory" -msgstr "" +msgstr "Απογραφή" #. module: auction #: model:ir.actions.act_window,name:auction.action_auction_dates_next msgid "Next Auctions" -msgstr "" +msgstr "Επόμενες Δημοπρασίες" #. module: auction #: rml:buyer.list:0 #: xsl:report.auction.seller.list:0 msgid "#" -msgstr "" +msgstr "#" #. module: auction #: field:auction.lots,ach_emp:0 msgid "Taken Away" -msgstr "" +msgstr "Απομάκρυνση" #. module: auction #: view:report.object.encoded.manager:0 msgid "Total gross rev." -msgstr "" +msgstr "Συνολικά μικτά έσοδα" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Miniatures / Collections" -msgstr "" +msgstr "Αντίκες / Μικρογραφίες / Συλλογές" #. module: auction #: wizard_view:auction.lots.numerotate,not_exist:0 msgid "This lot does not exist !" -msgstr "" +msgstr "Αυτή η παρτίδα δεν υπάρχει !" #. module: auction #: view:auction.dates:0 msgid "End of auction" -msgstr "" +msgstr "Τέλος Δημοπρασίας" #. module: auction #: field:auction.bid_line,call:0 msgid "To be Called" -msgstr "" +msgstr "Να ονομάζεται" #. module: auction #: model:ir.actions.act_window,name:auction.action_report_auction_estimation_adj_category_manager_tree #: model:ir.actions.act_window,name:auction.action_report_auction_estimation_adj_category_member_tree #: view:report.auction.estimation.adj.category:0 msgid "Min est/Adj/Max est" -msgstr "" +msgstr "Ελάχιστη εκτίμηση / προσαρμογή / Μέγιστη εκτίμηση" #. module: auction #: model:ir.actions.report.xml,name:auction.lot_list_inv msgid "Lots List - Landscape" -msgstr "" +msgstr "Λίστα παρτίδων - Τοπία" #. module: auction #: view:report.seller.auction:0 msgid "Auction reporting tree view" -msgstr "" +msgstr "Προβολή δένδρου αναφοράς δημοπρασίας" #. module: auction #: wizard_view:auction.lots.auction_move,init:0 #: model:ir.actions.wizard,name:auction.wizard_change_auction msgid "Change Auction Date" -msgstr "" +msgstr "Αλλαγή ημερομηνίας δημοπρασίας" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Photo" -msgstr "" +msgstr "Συνέχεια σε Τέχνη / Φωτογραφίες" #. module: auction #: field:auction.deposit,method:0 msgid "Withdrawned method" -msgstr "" +msgstr "Μέθοδος Απόσυρσης" #. module: auction #: rml:auction.total.rml:0 msgid "Max Estimate:" -msgstr "" +msgstr "Μέγιστη εκτίμηση:" #. module: auction #: model:ir.model,name:auction.model_auction_bid msgid "Bid auctions" -msgstr "" +msgstr "Προσφορά δημοπρασιών" #. module: auction #: field:report.auction.view2,obj_margin:0 msgid "Avg margin" -msgstr "" +msgstr "Μέσο όρος περιθωρίου" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Art from the Ivory Coast" -msgstr "" +msgstr "Αντίκες / Τέχνη από την Ακτή του Ελεφαντοστού" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Religiosa" -msgstr "" +msgstr "Αντίκες / Θρησκευτικά" #. module: auction #: wizard_button:auction.lots.make_invoice,init,invoice:0 #: wizard_button:auction.lots.make_invoice_buyer,init,invoice:0 msgid "Create invoices" -msgstr "" +msgstr "Δημιουργία Τιμολογίων" #. module: auction #: constraint:product.template:0 msgid "" "Error: The default UOM and the purchase UOM must be in the same category." msgstr "" +"Σφάλμα: Η προκαθορισμένη Μονάδα Μέτρησης και η Μονάδα Μέτρησης αγοράς πρέπει " +"να είναι στην ίδια κατηγορία." #. module: auction #: xsl:report.auction.vnd_bordereau:0 msgid "Lot" -msgstr "" +msgstr "Παρτίδα" #. module: auction #: model:ir.ui.menu,name:auction.menu_all_objects_unplanned1 msgid "Unplanned objects" -msgstr "" +msgstr "Απρόβλεπτα αντικείμενα" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Cont. Art/Sculpture" -msgstr "" +msgstr "Συνέχεια σε Τέχνη / Γλυπτική" #. module: auction #: model:ir.model,name:auction.model_auction_artists msgid "auction.artists" -msgstr "" +msgstr "Δημοπρασίες.Καλλιτέχνες" #. module: auction #: field:auction.dates,journal_id:0 msgid "Buyer Journal" -msgstr "" +msgstr "Ημερολόγιο Αγοραστή" #. module: auction #: selection:auction.lots,state:0 @@ -1609,18 +1621,18 @@ msgstr "" #: selection:report.object.encoded,state:0 #: selection:report.unclassified.objects,state:0 msgid "Paid" -msgstr "" +msgstr "Πληρωμένα" #. module: auction #: rml:bids.lots:0 #: rml:bids.phones.details:0 msgid "Phone" -msgstr "" +msgstr "Τηλέφωνο" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Antique/Argenterie" -msgstr "" +msgstr "Αντίκες / Ασημικά" #. module: auction #: wizard_button:auction.pay.buy,init,pay:0 diff --git a/addons/audittrail/i18n/el.po b/addons/audittrail/i18n/el.po index 6abb75f9b34..bc7c28dcb83 100644 --- a/addons/audittrail/i18n/el.po +++ b/addons/audittrail/i18n/el.po @@ -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: 2010-06-24 02:58+0000\n" +"PO-Revision-Date: 2010-06-24 21:17+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-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: audittrail @@ -159,153 +159,157 @@ msgid "" " Subscribe Rules for read, write, create and delete on objects and check " "logs" msgstr "" +"Επιστρέπει στον Διαχειριστή να ακολουθεί τα ίχνη κάθε λειτουργίας του χρήστη " +"σε όλα τα αντικείμενα του συστήματος.\n" +" Εισάγεται κανόνες για ανάγνωση, εγγραφή, δημιουργία και διαγραφή στα " +"αντικείμενα και τα ημερολόγια ελέγχου." #. module: audittrail #: field:audittrail.log,timestamp:0 msgid "Date" -msgstr "" +msgstr "Ημερομηνία" #. module: audittrail #: field:audittrail.log,user_id:0 msgid "User" -msgstr "" +msgstr "Χρήστης" #. module: audittrail #: view:audittrail.log:0 msgid "Old Value Text : " -msgstr "" +msgstr "Παλιά τιμή κειμένου: " #. module: audittrail #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!" #. module: audittrail #: field:audittrail.log,name:0 msgid "Name" -msgstr "" +msgstr "Όνομα" #. module: audittrail #: field:audittrail.log,line_ids:0 msgid "Log lines" -msgstr "" +msgstr "Γραμμές ημερολογίου" #. module: audittrail #: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree_sub msgid "Subscribed Rules" -msgstr "" +msgstr "Εγγεγραμμένοι Κανόνες" #. module: audittrail #: field:audittrail.log.line,field_id:0 msgid "Fields" -msgstr "" +msgstr "Πεδία" #. module: audittrail #: view:audittrail.rule:0 msgid "AuditTrail Rules" -msgstr "" +msgstr "Κανόνες διαδρομής ελέγχου" #. module: audittrail #: model:ir.model,name:audittrail.model_audittrail_rule msgid "audittrail.rule" -msgstr "" +msgstr "ελεγκτική ιχνηλάτηση.κανόνες" #. module: audittrail #: view:audittrail.rule:0 msgid "UnSubscribe" -msgstr "" +msgstr "Διαγραφείτε" #. module: audittrail #: field:audittrail.rule,log_write:0 msgid "Log writes" -msgstr "" +msgstr "Εγγραφές ημερολογίου" #. module: audittrail #: model:ir.model,name:audittrail.model_audittrail_log msgid "audittrail.log" -msgstr "" +msgstr "ελεγκτική ιχνηλάτηση.ημερολόγιο" #. module: audittrail #: field:audittrail.log.line,field_description:0 msgid "Field Description" -msgstr "" +msgstr "Περιγραφή πεδίου" #. module: audittrail #: selection:audittrail.log,method:0 msgid "Delete" -msgstr "" +msgstr "Διαγραφή" #. module: audittrail #: wizard_button:audittrail.view.log,init,open:0 msgid "Open Logs" -msgstr "" +msgstr "Άνοιγμα ημερολογίων" #. module: audittrail #: field:audittrail.log.line,new_value_text:0 msgid "New value Text" -msgstr "" +msgstr "Νέα τιμή κειμένου" #. module: audittrail #: field:audittrail.rule,name:0 msgid "Rule Name" -msgstr "" +msgstr "Όνομα Κανόνα" #. module: audittrail #: field:audittrail.rule,log_read:0 msgid "Log reads" -msgstr "" +msgstr "Αναγνώσεις ημερολογίων" #. module: audittrail #: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree msgid "Logs" -msgstr "" +msgstr "Αρχεία καταγραφής" #. module: audittrail #: field:audittrail.log.line,new_value:0 msgid "New Value" -msgstr "" +msgstr "Νέα τιμή" #. module: audittrail #: model:ir.ui.menu,name:audittrail.menu_action_log_tree2 msgid "View Logs" -msgstr "" +msgstr "Δείτε τα αρχεία καταγραφής" #. module: audittrail #: field:audittrail.rule,log_create:0 msgid "Log creates" -msgstr "" +msgstr "Δημιουργία αρχείων καταγραφής" #. module: audittrail #: view:audittrail.log:0 msgid "AuditTrail Logs" -msgstr "" +msgstr "παρακολούθηση της πόρειας των αρχείων καταγραφής" #. module: audittrail #: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree msgid "Rules" -msgstr "" +msgstr "Κανόνες" #. module: audittrail #: view:audittrail.log:0 msgid "New Value : " -msgstr "" +msgstr "Νέα τιμή : " #. module: audittrail #: field:audittrail.rule,user_id:0 msgid "Users" -msgstr "" +msgstr "Χρήστες" #. module: audittrail #: field:audittrail.log.line,old_value_text:0 msgid "Old value Text" -msgstr "" +msgstr "Παλιά τιμή κειμένου" #. module: audittrail #: wizard_button:audittrail.view.log,init,end:0 msgid "Cancel" -msgstr "" +msgstr "Ακύρωση" #. module: audittrail #: field:audittrail.rule,log_unlink:0 msgid "Log deletes" -msgstr "" +msgstr "Διαγραφή αρχείων καταγραφής" diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 8b9e6f700e8..405c3155619 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -233,7 +233,6 @@ the rule to mark CC(mail to any other person defined in actions)."), @param email: pass the emails @param emailfrom: Pass name the email From else False @param context: A standard dictionary for contextual values """ - body = self.format_mail(obj, body) if not emailfrom: if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and\ @@ -255,8 +254,7 @@ the rule to mark CC(mail to any other person defined in actions)."), @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param context: A standard dictionary for contextual values """ - - ok = True + ok = True if eval(action.domain): obj_ids = obj._table.search(cr, uid, eval(action.domain), context=context) if not obj.id in obj_ids: @@ -277,7 +275,8 @@ the rule to mark CC(mail to any other person defined in actions)."), ok = ok and (not action.trg_state_from or action.trg_state_from==obj.state) if state_to: ok = ok and (not action.trg_state_to or action.trg_state_to==state_to) - + elif action.trg_state_to: + ok = False reg_name = action.regex_name result_name = True if reg_name: diff --git a/addons/base_contact/base_contact_demo.xml b/addons/base_contact/base_contact_demo.xml index 6acdd08cf14..2c76b1844e8 100644 --- a/addons/base_contact/base_contact_demo.xml +++ b/addons/base_contact/base_contact_demo.xml @@ -179,7 +179,7 @@ <record id="res_partner_job_2" model="res.partner.job"> <field name="address_id" ref="base.res_partner_address_3"/> <field name="function">CTO</field> - <field eval=""""info@mediapole.net"""" name="email"/> + <field eval=""""info@mycompany.com"""" name="email"/> <field name="contact_id" ref="res_partner_contact_passot0"/> </record> <record id="res_partner_job_3" model="res.partner.job"> diff --git a/addons/base_module_quality/i18n/el.po b/addons/base_module_quality/i18n/el.po index 9ae13c3add3..1d65ed479be 100644 --- a/addons/base_module_quality/i18n/el.po +++ b/addons/base_module_quality/i18n/el.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: base_module_quality diff --git a/addons/base_module_quality/i18n/es.po b/addons/base_module_quality/i18n/es.po index fbb4ecf48fb..c68bb5d0a60 100644 --- a/addons/base_module_quality/i18n/es.po +++ b/addons/base_module_quality/i18n/es.po @@ -15,7 +15,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: base_module_quality diff --git a/addons/base_report_creator/i18n/el.po b/addons/base_report_creator/i18n/el.po index a914194a57b..ea439e5dad8 100644 --- a/addons/base_report_creator/i18n/el.po +++ b/addons/base_report_creator/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/board_association/i18n/el.po b/addons/board_association/i18n/el.po index 35fcc48ad27..9ef871e24af 100644 --- a/addons/board_association/i18n/el.po +++ b/addons/board_association/i18n/el.po @@ -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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/board_auction/i18n/el.po b/addons/board_auction/i18n/el.po index f99a794521e..990647cd866 100644 --- a/addons/board_auction/i18n/el.po +++ b/addons/board_auction/i18n/el.po @@ -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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/board_crm_configuration/i18n/el.po b/addons/board_crm_configuration/i18n/el.po index e2f697e23fd..93c5529b516 100644 --- a/addons/board_crm_configuration/i18n/el.po +++ b/addons/board_crm_configuration/i18n/el.po @@ -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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/board_document/i18n/el.po b/addons/board_document/i18n/el.po index 338203acd35..f2d2a47d093 100644 --- a/addons/board_document/i18n/el.po +++ b/addons/board_document/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/board_project/i18n/el.po b/addons/board_project/i18n/el.po index 4b6cc7b8820..a51277747be 100644 --- a/addons/board_project/i18n/el.po +++ b/addons/board_project/i18n/el.po @@ -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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 69ca8e964e9..4729ab7283d 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -19,15 +19,16 @@ <field name="res_model">crm.lead</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="view_id" ref="crm.crm_case_tree_view_leads"/> + <field name="view_id" ref="crm.crm_case_tree_view_oppor"/> <field name="domain">[('user_id','=',uid),('state','!=','pending'),('state','!=','cancel')]</field> </record> + <record model="ir.actions.act_window" id="act_my_meetings"> <field name="res_model">crm.meeting</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="view_id" ref="crm.crm_case_tree_view_meet"/> - <field name="domain">[('user_id','=',uid),('state','!=','pending'),('state','!=','cancel')]</field> + <field name="domain">[('user_id','=',uid),('state','!=','cancel'),('date','ilike',time.strftime("%Y-%m"))]</field> </record> <record model="ir.actions.act_window" id="act_my_leads_stage"> @@ -53,34 +54,28 @@ <field name="arch" type="xml"> <form string="Connecting Dashboard"> <hpaned> - <child1> - <action + string="My Opportunities" name="%(act_my_leads)d" colspan="4" height="150" width="510"/> - <action string="My Meetings" name="%(act_my_meetings)d" height="150" colspan="4"/> - </child1> - <child2> <action - string="My Leads By Stage" + string="Revenues by stage" name="%(act_my_leads_stage)d" colspan="4"/> - <action string="My Sales Pipeline" name="%(act_sales_pipeline)d" colspan="4"/> - </child2> </hpaned> </form> @@ -105,7 +100,5 @@ action="open_board_crm" sequence="1" id="menu_board_crm" icon="terp-graph"/> - - </data> </openerp> diff --git a/addons/crm/crm.py b/addons/crm/crm.py index feb49ba7ae7..c46519cdb97 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -118,20 +118,18 @@ class crm_case(object): @param context: A standard dictionary for contextual values""" if not context: context = {} - s = self.get_stage_dict(cr, uid, ids, context=context) section = self._name + stage = False stage_pool = self.pool.get('crm.case.stage') for case in self.browse(cr, uid, ids, context): if section in s: st = case.stage_id.id or False if st in s[section]: data = {'stage_id': s[section][st]} - stage = stage_pool.browse(cr, uid, s[section][st], context=context) - if stage.on_change: - data.update({'probability': stage.probability}) + stage = s[section][st] self.write(cr, uid, [case.id], data) - return True + return stage def get_stage_dict(self, cr, uid, ids, context=None): """This function gives dictionary for stage according to stage levels @@ -174,9 +172,10 @@ class crm_case(object): s[section] = dict([(v, k) for (k, v) in s[section].iteritems()]) if st in s[section]: data = {'stage_id': s[section][st]} - stage = stage_pool.browse(cr, uid, s[section][st], context=context) - if stage.on_change: - data.update({'probability': stage.probability}) + if s[section][st]: + stage = stage_pool.browse(cr, uid, s[section][st], context=context) + if stage.on_change: + data.update({'probability': stage.probability}) self.write(cr, uid, [case.id], data) return True diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py index 9092efef8e8..2c0c5327e5d 100644 --- a/addons/crm/crm_action_rule.py +++ b/addons/crm/crm_action_rule.py @@ -69,12 +69,10 @@ this if you want the rule to send an email to the partner."), return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id)) def do_check(self, cr, uid, action, obj, context={}): - """ @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param context: A standard dictionary for contextual values""" - ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context) if hasattr(obj, 'section_id'): @@ -89,7 +87,6 @@ this if you want the rule to send an email to the partner."), @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param context: A standard dictionary for contextual values """ - res = super(base_action_rule, self).do_action(cr, uid, action, model_obj, obj, context=context) write = {} @@ -125,7 +122,7 @@ this if you want the rule to send an email to the partner."), @param context: A standard dictionary for contextual values """ res = super(base_action_rule, self).state_get(cr, uid, context=context) - return res + [('escalate', 'Escalate')] + crm.AVAILABLE_STATES + return res + crm.AVAILABLE_STATES def priority_get(self, cr, uid, context={}): diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml index e8d5965a4c0..e494db325e5 100644 --- a/addons/crm/crm_data.xml +++ b/addons/crm/crm_data.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> - <record model="crm.case.section" id="section_sales_department"> - <field name="name">Sales Department</field> - <field name="code">Sales</field> - </record> + <record model="crm.case.section" id="section_sales_department"> + <field name="name">Sales Department</field> + <field name="code">Sales</field> + </record> </data> </openerp> diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 2700581d6cc..bf6d391ab82 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -37,7 +37,6 @@ class crm_lead(osv.osv, crm_case): _description = "Lead" _order = "priority, id desc" _inherit = ['mailgate.thread','res.partner.address'] - def _compute_day(self, cr, uid, ids, fields, args, context={}): """ @param cr: the current row, from the database cursor, @@ -97,20 +96,20 @@ class crm_lead(osv.osv, crm_case): _columns = { # From crm.case - 'name': fields.char('Name', size=64), - 'active': fields.boolean('Active', required=False), + 'name': fields.char('Name', size=64), + 'active': fields.boolean('Active', required=False), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), - 'email_from': fields.char('Email', size=128, help="These people will receive email."), + 'email_from': fields.char('Email', size=128, help="E-mail address of the contact"), 'section_id': fields.many2one('crm.case.section', 'Sales Team', \ - select=True, help='Sales team to which Case belongs to.\ - Define Responsible user and Email account for mail gateway.'), + select=True, help='Sales team to which this case belongs to.\ + Defines responsible user and e-mail address for the mail gateway.'), 'create_date': fields.datetime('Creation Date' , readonly=True), 'email_cc': fields.text('Watchers Emails', size=252 , help="These \ -people will receive a copy of the future communication between partner \ -and users by email"), +addresses will receive a copy of the future e-mail communication between partner \ +and users"), 'description': fields.text('Notes'), - 'write_date': fields.datetime('Update Date' , readonly=True), + 'write_date': fields.datetime('Update Date' , readonly=True), # Lead fields 'categ_id': fields.many2one('crm.case.categ', 'Lead Source', \ @@ -120,8 +119,8 @@ and users by email"), domain="[('section_id','=',section_id),\ ('object_id.model', '=', 'crm.lead')]"), 'partner_name': fields.char("Partner Name", size=64), - 'optin': fields.selection([('yes','Yes'),('no','No'),('unknown','/')],'Opt-In'), - 'optout': fields.selection([('yes','Yes'),('no','No'),('unknown','/')],'Opt-Out'), + 'optin': fields.boolean('Opt-In'), + 'optout': fields.boolean('Opt-Out'), 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), @@ -153,8 +152,7 @@ and users by email"), 'user_id': crm_case._get_default_user, 'email_from': crm_case._get_default_email, 'state': lambda *a: 'draft', - 'optin': lambda *a: 'unknown', - 'optout': lambda *a: 'unknown', + 'type': lambda *a: 'lead', 'section_id': crm_case._get_section, 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], @@ -238,10 +236,19 @@ and users by email"), } return value + def stage_next(self, cr, uid, ids, context=None): + stage = super(crm_lead, self).stage_next(cr, uid, ids, context) + if stage: + stage_obj = self.pool.get('crm.case.stage').browse(cr, uid, stage, context=context) + if stage_obj.on_change: + data = {'probability': stage_obj.probability} + self.write(cr, uid, ids, data) + return stage + def message_new(self, cr, uid, msg, context): """ Automatically calls when new email message arrives - + @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks @@ -253,7 +260,7 @@ and users by email"), body = msg.get('body') msg_from = msg.get('from') priority = msg.get('priority') - + vals = { 'name': subject, 'email_from': msg_from, @@ -263,13 +270,13 @@ and users by email"), } if msg.get('priority', False): vals['priority'] = priority - - res = mailgate_pool.get_partner(cr, uid, msg.get('from')) + + res = mailgate_pool.get_partner(cr, uid, msg.get('from') or msg.get_unixfrom()) if res: vals.update(res) + res = self.create(cr, uid, vals, context) - - + attachents = msg.get('attachments', []) for attactment in attachents or []: data_attach = { @@ -285,21 +292,18 @@ and users by email"), return res def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context={}): - """ + """ @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param ids: List of update mail’s IDs """ - + if isinstance(ids, (str, int, long)): ids = [ids] - + msg_from = msg['from'] - vals.update({ - 'description': msg['body'] - }) - if msg.get('priority', False): + if msg.get('priority'): vals['priority'] = msg.get('priority') maps = { @@ -307,46 +311,23 @@ and users by email"), 'revenue': 'planned_revenue', 'probability':'probability' } - vls = { } + vls = {} for line in msg['body'].split('\n'): line = line.strip() res = tools.misc.command_re.match(line) - if res and maps.get(res.group(1).lower(), False): + if res and maps.get(res.group(1).lower()): key = maps.get(res.group(1).lower()) vls[key] = res.group(2).lower() - vals.update(vls) - res = self.write(cr, uid, ids, vals) - return res - def emails_get(self, cr, uid, ids, context=None): - - """ - Get Emails - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of email’s IDs - @param context: A standard dictionary for contextual values - """ - res = {} - - if isinstance(ids, (str, int, long)): - select = [long(ids)] - else: - select = ids - - for thread in self.browse(cr, uid, select, context=context): - values = collections.defaultdict(set) - - for message in thread.message_ids: - user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False - values['user_email'].add(user_email) - values['email_from'].add(message.email_from) - values['email_cc'].add(message.email_cc or False) - values['priority'] = thread.priority - - res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems()) + # Unfortunately the API is based on lists + # but we want to update the state based on the + # previous state, so we have to loop: + for case in self.browse(cr, uid, ids, context=context): + values = dict(vals) + if case.state == crm.AVAILABLE_STATES[4][0]: #pending + values.update(state=crm.AVAILABLE_STATES[1][0]) #open + res = self.write(cr, uid, [case.id], values, context=context) return res @@ -361,7 +342,6 @@ and users by email"), @param **args: Return Dictionary of Keyword Value """ return True - crm_lead() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index 17211a9ef66..2b47140e396 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -2,79 +2,79 @@ <openerp> <data noupdate="1"> - + <!-- CASE STATUS(stage_id) --> <record model="crm.case.stage" id="stage_lead1"> <field name="name">New</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_lead2"> <field name="name">Assigned</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_lead3"> <field name="name">In Process</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_lead4"> <field name="name">Converted</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_lead5"> <field name="name">Recycled</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_lead6"> <field name="name">Dead</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <!-- CASE CATEGORY2(category2_id) --> <record model="crm.case.resource.type" id="type_lead1"> <field name="name">Telesales</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead2"> <field name="name">Mail</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead3"> <field name="name">Email</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead4"> <field name="name">Print</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead5"> <field name="name">Web</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead6"> <field name="name">Radio</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead7"> <field name="name">Television</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.resource.type" id="type_lead8"> <field name="name">Newsletter</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> </data> diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml index cea854427dc..6edce727647 100644 --- a/addons/crm/crm_lead_menu.xml +++ b/addons/crm/crm_lead_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> <record model="ir.actions.act_window" id="crm_case_category_act_leads_all"> <field name="name">Leads</field> diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 0c5afb27739..379644e72b1 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -2,7 +2,7 @@ <openerp> <data> - <!--Lead Stage Form view --> + <!--Lead Stage Form view --> <record id="crm_lead_stage_act" model="ir.actions.act_window"> <field name="name">Lead Stages</field> @@ -18,7 +18,7 @@ parent="menu_crm_config_lead" /> - <!-- Resource Type Form View --> + <!-- Resource Type Form View --> <record id="crm_lead_resource_act" model="ir.actions.act_window"> <field name="name">Lead Resource Type</field> @@ -34,7 +34,7 @@ groups="base.group_extended" sequence="2" parent="menu_crm_config_lead" /> - <!-- CRM Lead Form View --> + <!-- CRM Lead Form View --> <record model="ir.ui.view" id="crm_case_form_view_leads"> <field name="name">CRM - Leads Form</field> @@ -165,9 +165,10 @@ <field name="message_ids" colspan="4" nolabel="1" mode="form,tree"> <form string="Communication history"> <group col="6" colspan="4"> - <field name="date"/> - <field name="email_to"/> <field name="email_from"/> + <field name="email_to"/> + <field name="date"/> + <field name="name" colspan="6"/> </group> <notebook colspan="4"> <page string="Details"> @@ -204,18 +205,19 @@ </field> </record> - <!-- CRM Lead Tree View --> + <!-- CRM Lead Tree View --> <record model="ir.ui.view" id="crm_case_tree_view_leads"> - <field name="name">CRM - Leads Tree</field> + <field name="name">Leads</field> <field name="model">crm.lead</field> <field name="type">tree</field> <field name="arch" type="xml"> - <tree string="Leads Tree" colors="blue:state=='pending';grey:state in ('cancel', 'done');red:date_deadline < current_date"> + <tree string="Leads" colors="blue:state=='pending';grey:state in ('cancel', 'done')"> <field name="date_deadline" invisible="1"/> <field name="create_date"/> - <field name="partner_name"/> <field name="name"/> + <field name="partner_name"/> + <field name="country_id" invisible="context.get('invisible_country', True)" /> <field name="email_from"/> <field name="phone"/> @@ -229,8 +231,7 @@ <button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward" /> - <field name="section_id" - invisible="context.get('invisible_section', True)" /> + <field name="section_id" invisible="context.get('invisible_section', True)" /> <field name="user_id" /> <field name="state" /> <button name="case_open" string="Open" @@ -253,7 +254,7 @@ </field> </record> - <!-- CRM Lead Calendar View --> + <!-- CRM Lead Calendar View --> <record model="ir.ui.view" id="crm_case_calendar_view_leads"> <field name="name">CRM - Leads Calendar</field> @@ -270,7 +271,7 @@ </field> </record> - <!-- CRM Lead Search View --> + <!-- CRM Lead Search View --> <record id="view_crm_case_leads_filter" model="ir.ui.view"> <field name="name">CRM - Leads Search</field> @@ -300,6 +301,7 @@ ('create_date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" /> <separator orientation="vertical"/> + <field name="name"/> <field name="partner_name"/> <field name="email_from"/> <field name="user_id"> @@ -319,6 +321,20 @@ help="Show Sales Team"/> </field> <newline/> + <group expand="0" string="Extended options..." groups="base.group_extended"> + <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <separator orientation="vertical"/> + <field name="country_id" context="{'invisible_country': False}"> + <filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/> + </field> + <separator orientation="vertical"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + <newline/> + <field name="create_date" string="Creation Date"/> + <field name="date_closed"/> + </group> + <newline/> <group expand="0" string="Group By..."> <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/> <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> @@ -334,6 +350,5 @@ </search> </field> </record> - </data> </openerp> diff --git a/addons/crm/crm_meeting_data.xml b/addons/crm/crm_meeting_data.xml index e96e17ac6a9..a7e4b400d76 100644 --- a/addons/crm/crm_meeting_data.xml +++ b/addons/crm/crm_meeting_data.xml @@ -1,30 +1,30 @@ <?xml version="1.0"?> <openerp> - <data noupdate="1"> + <data noupdate="1"> <!-- CASE CATEGORY(categ_id) --> - <record model="crm.case.categ" id="categ_meet1"> - <field name="name">Customer Meeting</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> - </record> + <record model="crm.case.categ" id="categ_meet1"> + <field name="name">Customer Meeting</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> + </record> - <record model="crm.case.categ" id="categ_meet2"> - <field name="name">Internal Meeting</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> - </record> + <record model="crm.case.categ" id="categ_meet2"> + <field name="name">Internal Meeting</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> + </record> - <record model="crm.case.categ" id="categ_meet3"> - <field name="name">Phone Call</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> - </record> + <record model="crm.case.categ" id="categ_meet3"> + <field name="name">Phone Call</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> + </record> <record model="res.request.link" id="request_link_meeting"> - <field name="name">Case Meeting</field> - <field name="object">crm.meeting</field> - </record> - </data> + <field name="name">Case Meeting</field> + <field name="object">crm.meeting</field> + </record> + </data> </openerp> diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml index ec58c116baf..bf1a8459655 100644 --- a/addons/crm/crm_meeting_menu.xml +++ b/addons/crm/crm_meeting_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> <act_window id="crm_case_categ_meet_create_partner" diff --git a/addons/crm/crm_opportunity.py b/addons/crm/crm_opportunity.py index 0adbf2f2489..4faebe37d91 100644 --- a/addons/crm/crm_opportunity.py +++ b/addons/crm/crm_opportunity.py @@ -109,7 +109,7 @@ class crm_opportunity(osv.osv): _defaults = { 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), - 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], + 'priority': crm.AVAILABLE_PRIORITIES[2][0], } def action_makeMeeting(self, cr, uid, ids, context=None): diff --git a/addons/crm/crm_opportunity_data.xml b/addons/crm/crm_opportunity_data.xml index b6b62628e4b..a7cfd2d46ca 100644 --- a/addons/crm/crm_opportunity_data.xml +++ b/addons/crm/crm_opportunity_data.xml @@ -4,91 +4,91 @@ <record model="crm.case.categ" id="categ_oppor1"> <field name="name">Existing Customer</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.categ" id="categ_oppor2"> <field name="name">Self Generated</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <record model="crm.case.categ" id="categ_oppor3"> <field name="name">Employee</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.categ" id="categ_oppor4"> <field name="name">Partner</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.categ" id="categ_oppor5"> <field name="name">Campaign</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <record model="crm.case.categ" id="categ_oppor6"> <field name="name">Website</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <record model="crm.case.categ" id="categ_oppor7"> <field name="name">Word of mouth</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <record model="crm.case.categ" id="categ_oppor8"> <field name="name">Other</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <!-- CASE STATUS(stage_id) --> <record model="crm.case.stage" id="stage_oppor1"> <field name="name">Prospecting</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor2"> <field name="name">Needs Analysis</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor3"> <field name="name">Value Proposition</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor4"> <field name="name">Proposal/Price Quote</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor5"> <field name="name">Negotiation/Review</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor6"> <field name="name">Closed Won</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <record model="crm.case.stage" id="stage_oppor7"> <field name="name">Closed Lost</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> <!-- Case Resource(type_id) --> <record model="crm.case.resource.type" id="type_oppor1"> <field name="name">Existing Business</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> - </record> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + </record> <record model="crm.case.resource.type" id="type_oppor2"> <field name="name">New Business</field> <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> + <field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/> </record> </data> diff --git a/addons/crm/crm_opportunity_demo.xml b/addons/crm/crm_opportunity_demo.xml index aa965a07594..3c06d16dc19 100644 --- a/addons/crm/crm_opportunity_demo.xml +++ b/addons/crm/crm_opportunity_demo.xml @@ -55,7 +55,7 @@ <field name="categ_id" ref="crm.categ_oppor7"/> <field name="stage_id" ref="crm.stage_oppor5"/> <field eval=""Mediapole - 5000 units"" name="name"/> - <field eval=""info@mediapole.net"" name="email_from"/> + <field eval=""info@mycompany.net"" name="email_from"/> </record> <record id="crm_case_abcfuelcounits0" model="crm.lead"> <field eval="40" name="probability"/> diff --git a/addons/crm/crm_opportunity_menu.xml b/addons/crm/crm_opportunity_menu.xml index 36163abfa00..60ade626071 100644 --- a/addons/crm/crm_opportunity_menu.xml +++ b/addons/crm/crm_opportunity_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> <act_window id="act_crm_opportunity_crm_phonecall_new" diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml index 4060337bdd7..7e0042f8944 100644 --- a/addons/crm/crm_opportunity_view.xml +++ b/addons/crm/crm_opportunity_view.xml @@ -154,6 +154,8 @@ <field name="fax"/> <newline/> <field name="mobile"/> + <field name="optin"/> + <field name="optout"/> </group> </page> @@ -246,6 +248,7 @@ <field name="create_date"/> <field name="name" string="Opportunity"/> <field name="partner_id"/> + <field name="country_id" invisible="context.get('invisible_country', True)" /> <field name="date_action"/> <field name="stage_id"/> <button name="stage_previous" string="Previous" @@ -340,6 +343,20 @@ help="Show Sales Team"/> </field> <newline/> + <group expand="0" string="Extended options..." groups="base.group_extended"> + <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <separator orientation="vertical"/> + <field name="country_id" context="{'invisible_country': False}"> + <filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/> + </field> + <separator orientation="vertical"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + <newline/> + <field name="create_date" string="Creation Date"/> + <field name="date_closed"/> + </group> + <newline/> <group expand="0" string="Group By..." colspan="16"> <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" /> @@ -350,7 +367,7 @@ <separator orientation="vertical" /> <filter string="Salesman" icon="terp-personal" - domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}" /> + domain="[]" context="{'group_by':'user_id'}" /> <separator orientation="vertical" /> <filter string="Creation" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" /> diff --git a/addons/crm/crm_phonecall_data.xml b/addons/crm/crm_phonecall_data.xml index 49d02f8848e..723cfeaca26 100644 --- a/addons/crm/crm_phonecall_data.xml +++ b/addons/crm/crm_phonecall_data.xml @@ -2,39 +2,39 @@ <openerp> <data noupdate="1"> -> - - <!-- - Phonecall Categories - --> - <record model="crm.case.categ" id="categ_phone1"> - <field name="name">Inbound</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> - - </record> - <record model="crm.case.categ" id="categ_phone2"> - <field name="name">Outbound</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> - </record> - - <!-- - Case Stage - --> - <record model="crm.case.stage" id="stage_phone1"> - <field name="name">Planned</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> - </record> - <record model="crm.case.stage" id="stage_phone2"> - <field name="name">Held</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> - </record> - <record model="crm.case.stage" id="stage_phone3"> - <field name="name">Not Held</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> - </record> + + <!-- + Phonecall Categories + --> + <record model="crm.case.categ" id="categ_phone1"> + <field name="name">Inbound</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> + + </record> + <record model="crm.case.categ" id="categ_phone2"> + <field name="name">Outbound</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> + </record> + + <!-- + Case Stage + --> + <record model="crm.case.stage" id="stage_phone1"> + <field name="name">Planned</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> + </record> + <record model="crm.case.stage" id="stage_phone2"> + <field name="name">Held</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> + </record> + <record model="crm.case.stage" id="stage_phone3"> + <field name="name">Not Held</field> + <field name="section_id" ref="section_sales_department"/> + <field name="object_id" search="[('model','=','crm.phonecall')]" model="ir.model"/> + </record> </data> -</openerp>
\ No newline at end of file +</openerp> diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml index f1363456e2c..e269cadfaf1 100644 --- a/addons/crm/crm_phonecall_menu.xml +++ b/addons/crm/crm_phonecall_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> <act_window id="crm_case_categ_phone_create_partner" diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index 790debb007f..ef068e122a3 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -38,7 +38,6 @@ <field name="model">crm.phonecall</field> <field name="type">tree</field> <field name="arch" type="xml"> - <tree string="Phone Calls" colors="grey:state in ('cancel','done');blue:state in ('pending',)"> <field name="date" string="Date"/> <field name="name" string="Call Summary"/> diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po index 974671e9272..a5a1074a2fc 100644 --- a/addons/crm/i18n/es.po +++ b/addons/crm/i18n/es.po @@ -14,7 +14,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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: crm diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py index a70bd45875d..f9c39c92403 100644 --- a/addons/crm/report/crm_lead_report.py +++ b/addons/crm/report/crm_lead_report.py @@ -77,7 +77,6 @@ class crm_lead_report(osv.osv): 'name': fields.char('Year', size=64, required=False, readonly=True), 'user_id':fields.many2one('res.users', 'User', readonly=True), 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True), - 'nbr': fields.integer('# of Cases', readonly=True), 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"), 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"), @@ -92,10 +91,10 @@ class crm_lead_report(osv.osv): 'create_date': fields.datetime('Create Date', readonly=True), 'day': fields.char('Day', size=128, readonly=True), 'email': fields.integer('# of Emails', size=128, readonly=True), - 'delay_open': fields.float('Delay to open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), + 'delay_open': fields.float('Delay to Open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), + 'delay_close': fields.float('Delay to Close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"), 'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"), - 'delay_close': fields.float('Delay to close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"), - 'probability': fields.float('Probability',digits=(16,2),readonly=True), + 'probability': fields.float('Probability',digits=(16,2),readonly=True, group_operator="avg"), 'planned_revenue': fields.float('Planned Revenue',digits=(16,2),readonly=True), 'categ_id': fields.many2one('crm.case.categ', 'Category',\ domain="[('section_id','=',section_id),\ @@ -107,6 +106,7 @@ class crm_lead_report(osv.osv): 'opening_date': fields.date('Opening Date', readonly=True), 'creation_date': fields.date('Creation Date', readonly=True), 'date_closed': fields.date('Close Date', readonly=True), + 'nbr': fields.integer('# of Cases', readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), 'type':fields.selection([ diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml index 5292b297c89..c20ea9b48b9 100644 --- a/addons/crm/report/crm_lead_report_view.xml +++ b/addons/crm/report/crm_lead_report_view.xml @@ -23,35 +23,15 @@ <field name="partner_id" invisible="1"/> <field name="day" invisible="1"/> <field name="nbr" sum="# Leads"/> - <field name="email" sum="#Mails"/> - <field name="delay_open" sum='Avg Closing Delay'/> - <field name="delay_close" sum='Avg Closing Delay'/> + <field name="email" sum="# Mails"/> + <field name="delay_open"/> + <field name="delay_close"/> <field name="delay_expected"/> <field name="avg_answers"/> </tree> </field> </record> -<!-- Leads by user and section Form View --> - - <record id="view_report_crm_lead_form" model="ir.ui.view"> - <field name="name">crm.lead.report.form</field> - <field name="model">crm.lead.report</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Leads Analysis"> - <field name="name" select="1"/> - <field name="month" select="1"/> - <field name="user_id" select="1"/> - <field name="section_id" select="1"/> - <field name="nbr" select="1"/> - <field name="delay_close"/> - <field name="stage_id"/> - <field name="state" select="1"/> - </form> - </field> - </record> - <!-- Leads by user and section Graph View --> <record id="view_report_crm_lead_graph" model="ir.ui.view"> @@ -59,9 +39,9 @@ <field name="model">crm.lead.report</field> <field name="type">graph</field> <field name="arch" type="xml"> - <graph orientation="horizontal" string="Leads Analysis" type="bar"> - <field name="state"/> - <field name="nbr" operator="+"/> + <graph orientation="vertical" string="Leads Analysis" type="bar"> + <field name="stage_id"/> + <field name="planned_revenue" operator="+"/> <field group="True" name="user_id"/> </graph> </field> @@ -75,37 +55,49 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Leads Analysis"> - <group col="16" colspan="8"> - <filter string="Last 365 Days" icon="terp-go-year" - domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"/> - <filter string="Last 30 Days" icon="terp-go-month" name="This Month" - domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/> + <group col="20" colspan="8"> + <filter icon="terp-check" + string="Opportunities" + name="opportunity" + domain="[('type','=','opportunity')]"/> + <filter icon="terp-check" + string="Leads" + name="lead" + domain="[('type','=','lead')]"/> + <separator orientation="vertical" /> + <filter string="Last 365 Days" icon="terp-go-year" + domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"/> + <filter string="Last 30 Days" icon="terp-go-month" name="this_month" + domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/> <filter icon="terp-go-week" string="7 Days" separator="1" - domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"/> - <separator orientation="vertical" /> + domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"/> + <separator orientation="vertical" /> <filter icon="terp-check" string="Current" domain="[('state','in',('draft','open')]"/> <filter icon="terp-check" string="Pending" domain="[('state','=','pending')]"/> - <separator orientation="vertical" /> - <field name="section_id" - default="context.get('section_id', False)" - widget="selection" - context="{'invisible_section': False}"> - <filter icon="terp-crm" - context="{'invisible_section': False}" - domain="[('section_id.user_id','=',uid)]" - help="My section" /> - </field> - <field name="user_id" widget="selection"> + <filter icon="terp-check" + string="Closed" + domain="[('state','=','done')]"/> + <separator orientation="vertical" /> + <field name="section_id" + default="context.get('section_id', False)" + widget="selection" + context="{'invisible_section': False}"> + <filter icon="terp-crm" + context="{'invisible_section': False}" + domain="[('section_id.user_id','=',uid)]" + help="My section" /> + </field> + <field name="user_id"> <filter icon="terp-personal+" string="My Case" help="My Case" domain="[('user_id','=',uid)]" /> - </field> + </field> </group> <newline/> <group expand="0" string="Group By..."> - <filter string="User" name="User" icon="terp-personal" + <filter string="User" name="user" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" /> <filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}" /> <separator orientation="vertical" /> @@ -133,19 +125,19 @@ <filter string="Year" icon="terp-go-year" domain="[]" context="{'group_by':'name'}" /> </group> - <newline/> - <group expand="0" string="Extended options..." groups="base.group_extended"> - <field name="partner_id"/> - <separator orientation="vertical"/> - <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> - <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> - <separator orientation="vertical"/> - <field name="company_id" widget="selection" groups="base.group_multi_company"/> - <newline/> - <field name="creation_date"/> - <field name="opening_date"/> - <field name="date_closed"/> - </group> + <newline/> + <group expand="0" string="Extended options..." groups="base.group_extended"> + <field name="partner_id"/> + <separator orientation="vertical"/> + <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/> + <separator orientation="vertical"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + <newline/> + <field name="creation_date"/> + <field name="opening_date"/> + <field name="date_closed"/> + </group> </search> </field> </record> @@ -187,10 +179,9 @@ <field name="name">Leads Analysis</field> <field name="res_model">crm.lead.report</field> <field name="view_type">form</field> - <field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field> + <field name="context">{'search_default_lead':1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field> <field name="view_mode">tree,graph</field> - <field name="domain">['|',('type', '=', 'lead'),('type', '=', False)]</field> - <field name="search_view_id" ref="view_report_crm_lead_filter"/> + <field name="domain">[]</field> </record> <record model="ir.actions.act_window.view" id="action_report_crm_lead_tree"> @@ -211,10 +202,9 @@ <field name="name">Opportunities Analysis</field> <field name="res_model">crm.lead.report</field> <field name="view_type">form</field> - <field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field> + <field name="context">{"search_default_opportunity": 1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field> <field name="view_mode">tree,graph</field> - <field name="domain">[('type', '=', 'opportunity')]</field> - <field name="search_view_id" ref="view_report_crm_lead_filter"/> + <field name="domain">[]</field> </record> <record model="ir.actions.act_window.view" id="action_report_crm_opportunity_tree"> diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml index ccc6cd677f4..c0f812886cf 100644 --- a/addons/crm/report/crm_phonecall_report_view.xml +++ b/addons/crm/report/crm_phonecall_report_view.xml @@ -68,69 +68,69 @@ <!-- Phone calls by user and section Search View --> - <record id="view_report_crm_phonecall_filter" model="ir.ui.view"> + <record id="view_report_crm_phonecall_filter" model="ir.ui.view"> <field name="name">crm.phonecall.report.select</field> <field name="model">crm.phonecall.report</field> <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <group col="16" colspan="8"> - <!-- <filter string="This Year" name="This Year" icon="terp-hr" - domain="[('name','=',time.localtime()[0])]"/>--> - <filter string="This Year" icon="terp-go-year" - domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"/> + <!-- <filter string="This Year" name="This Year" icon="terp-hr" + domain="[('name','=',time.localtime()[0])]"/>--> + <filter string="This Year" icon="terp-go-year" + domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"/> - <!-- <filter string="This Month" name="This Year" icon="terp-hr" - domain="[('month','=',time.strftime('%%m'))]" />--> + <!-- <filter string="This Month" name="This Year" icon="terp-hr" + domain="[('month','=',time.strftime('%%m'))]" />--> <filter string="This Month" icon="terp-go-month" name="This Month" - domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/> + domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/> <filter icon="terp-go-week" string="7 Days" separator="1" domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"/> - <separator orientation="vertical" /> + <separator orientation="vertical" /> <filter icon="terp-check" - string="Current" - domain="[('state','in',('draft','oprn'))]"/> + string="Current" + domain="[('state','in',('draft','oprn'))]"/> <filter icon="terp-hr" - string="Pending" - domain="[('state','=','pending')]"/> + string="Pending" + domain="[('state','=','pending')]"/> <filter icon="terp-sale" - string="Done" - domain="[('state','=','done')]"/> + string="Done" + domain="[('state','=','done')]"/> - <separator orientation="vertical" /> + <separator orientation="vertical" /> <filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}" /> - <filter icon="terp-personal+" - context="{'invisible_section': False}" - domain="[('section_id.user_id','=',uid)]" - help="My section" /> + <filter icon="terp-personal+" + context="{'invisible_section': False}" + domain="[('section_id.user_id','=',uid)]" + help="My section" /> - <field name="user_id" select="1" widget="selection"> - <filter icon="terp-crm" string="My Case" help="My Case" domain="[('user_id','=',uid)]" /> - </field> + <field name="user_id" select="1"> + <filter icon="terp-crm" string="My Case" help="My Case" domain="[('user_id','=',uid)]" /> + </field> </group> - <newline/> + <newline/> <group expand="0" string="Group By..."> <filter string="User" name="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" /> <filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}" /> <separator orientation="vertical" /> <filter string="Section" icon="terp-sale" - domain="[]" - context="{'group_by':'section_id'}" /> + domain="[]" + context="{'group_by':'section_id'}" /> <filter string="Category" icon="terp-stock_symbol-selection" - domain="[]" context="{'group_by':'categ_id'}" /> + domain="[]" context="{'group_by':'categ_id'}" /> <separator orientation="vertical" /> <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/> <separator orientation="vertical"/> <filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" /> <separator orientation="vertical" /> <filter string="State" icon="terp-stock_effects-object-colorize" - domain="[]" context="{'group_by':'state'}" /> + domain="[]" context="{'group_by':'state'}" /> <separator orientation="vertical" /> <filter string="Company" icon="terp-go-home" domain="[]" @@ -147,12 +147,12 @@ <newline/> <group expand="0" string="Extended options..." groups="base.group_extended"> <field name="partner_id"/> - <separator orientation="vertical"/> - <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/> - <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/> + <separator orientation="vertical"/> + <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/> + <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/> <separator orientation="vertical"/> <field name="company_id" groups="base.group_multi_company"/> - <newline/> + <newline/> <field name="creation_date"/> <field name="opening_date"/> <field name="date_closed"/> diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py index 3d2dc0373a5..2dbae32ad98 100644 --- a/addons/crm/res_partner.py +++ b/addons/crm/res_partner.py @@ -24,17 +24,14 @@ from osv import fields,osv class res_partner(osv.osv): """ Inherits partner and adds CRM information in the partner form """ _inherit = 'res.partner' - _columns = { - 'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\ - 'Opportunities', readonly=True, \ - domain=[('type', '=', 'opportunity')]), - 'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\ - 'Meetings', readonly=True), - 'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\ - 'Phonecalls', readonly=True), - } - + 'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\ + 'Leads and Opportunities'), + 'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\ + 'Meetings'), + 'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\ + 'Phonecalls'), + } res_partner() diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml index 769cb5d5c81..3ae772b2b85 100644 --- a/addons/crm/res_partner_view.xml +++ b/addons/crm/res_partner_view.xml @@ -4,62 +4,70 @@ <!-- Partners inherited form --> -<!-- <record id="view_crm_partner_info_form" model="ir.ui.view">--> -<!-- <field name="name">res.partner.crm.info.inherit</field>--> -<!-- <field name="model">res.partner</field>--> -<!-- <field name="type">form</field>--> -<!-- <field name="inherit_id" ref="base.view_partner_form"/>--> -<!-- <field name="arch" type="xml">--> -<!-- <xpath expr="//notebook[last()]" position="after">--> -<!-- <notebook colspan="4">--> -<!-- <page string="CRM">--> -<!-- <field name="meeting_ids" colspan="4" nolabel="1" />--> -<!-- <field name="phonecall_ids" colspan="4" nolabel="1" />--> -<!-- <field name="opportunity_ids" colspan="4" nolabel="1" domain="[('type', '=', 'opportunity')]">--> -<!-- <tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done')">--> -<!-- <field name="create_date"/>--> -<!-- <field name="partner_name"/>--> -<!-- <field name="name"/>--> -<!-- <field name="email_from"/>--> -<!-- <field name="phone"/>--> -<!-- --> -<!-- <field name="categ_id" invisible="1"/>--> -<!-- <field name="type_id" invisible="1"/>--> -<!-- <field name="referred" invisible="1"/>--> -<!-- --> -<!-- <field name="stage_id"/>--> -<!-- <button name="stage_previous" string="Previous"--> -<!-- states="open,pending" type="object" icon="gtk-go-back" />--> -<!-- <button name="stage_next" string="Next"--> -<!-- states="open,pending" type="object"--> -<!-- icon="gtk-go-forward" />--> -<!-- <field name="section_id"--> -<!-- invisible="context.get('invisible_section', True)" />--> -<!-- <field name="user_id" />--> -<!-- <field name="state" />--> -<!-- <button name="case_open" string="Open"--> -<!-- states="draft,pending" type="object"--> -<!-- icon="gtk-go-forward" />--> -<!-- <button name="case_close" string="Close"--> -<!-- states="open,draft,pending" type="object"--> -<!-- icon="gtk-close" />--> -<!-- <button string="Convert to Opportunity"--> -<!-- name="convert_opportunity"--> -<!-- states="draft,open,pending" icon="gtk-index"--> -<!-- type="object" />--> -<!-- <button name="case_escalate" string="Escalate"--> -<!-- states="open,draft,pending" type="object"--> -<!-- icon="gtk-go-up" />--> -<!-- <button name="case_cancel" string="Cancel"--> -<!-- states="draft,open,pending" type="object"--> -<!-- icon="gtk-cancel" />--> -<!-- </tree>--> -<!-- </field>--> -<!-- </page>--> -<!-- </notebook>--> -<!-- </xpath>--> -<!-- </field>--> -<!-- </record>--> - + <record id="view_crm_partner_info_form1" model="ir.ui.view"> + <field name="name">res.partner.crm.info.inherit1</field> + <field name="model">res.partner</field> + <field name="type">form</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <page string="History" position="inside"> + <field name="opportunity_ids" colspan="4" nolabel="1"> + <tree string="Opportunities" colors="blue:state=='pending';grey:state=='cancel')"> + <field name="create_date"/> + <field name="name"/> + <field name="type"/> + <field name="stage_id"/> + <button name="stage_previous" string="Previous" + states="open,pending" type="object" icon="gtk-go-back" /> + <button name="stage_next" string="Next" + states="open,pending" type="object" + icon="gtk-go-forward" /> + <field name="section_id" + invisible="context.get('invisible_section', True)" /> + <field name="user_id" /> + <field name="state" /> + <button name="case_open" string="Open" + states="draft,pending" type="object" + icon="gtk-go-forward" /> + <button name="case_close" string="Close" + states="open,draft,pending" type="object" + icon="gtk-close" /> + <button string="Convert to Opportunity" + name="convert_opportunity" + states="draft,open,pending" icon="gtk-index" + type="object" /> + <button name="case_escalate" string="Escalate" + states="open,draft,pending" type="object" + icon="gtk-go-up" /> + <button name="case_cancel" string="Cancel" + states="draft,open,pending" type="object" + icon="gtk-cancel" /> + </tree> + </field> + <field name="meeting_ids" colspan="4" nolabel="1" > + <tree string="Meetings" colors="gray:state in ('draft', 'cancel','done','pending')"> + <field name="user_id" string="Responsible"/> + <field name="name" string="Subject" /> + <field name="date" string="Start Date" /> + <field name="date_deadline" string="End Date"/> + </tree> + </field> + <field name="phonecall_ids" colspan="4" nolabel="1"> + <tree string="Phone Calls" colors="gray:state in ('draft', 'cancel','done','pending')"> + <field name="date" string="Date"/> + <field name="name" string="Call Summary"/> + <field name="categ_id"/> + <field name="user_id"/> + <field name="state"/> + <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> + <button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/> + <button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-media-pause"/> + <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> + </tree> + </field> + </page> + </field> + </record> </data> </openerp> + diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv index 595e63736bf..3d9921db9ec 100644 --- a/addons/crm/security/ir.model.access.csv +++ b/addons/crm/security/ir.model.access.csv @@ -4,32 +4,27 @@ "access_crm_segmentation","crm.segmentation","model_crm_segmentation","crm.group_crm_manager",1,1,1,1 "access_crm_segmentation_line","crm.segmentation.line","model_crm_segmentation_line","crm.group_crm_manager",1,1,1,1 "access_crm_case_section","crm.case.section","model_crm_case_section","crm.group_crm_user",1,0,0,0 -"access_crm_case_categ","crm.case.categ","model_crm_case_categ","crm.group_crm_user",1,0,0,0 +"access_crm_case_categ","crm.case.categ","model_crm_case_categ","base.group_user",1,0,0,0 "access_crm_meeting","crm.meeting","model_crm_meeting","crm.group_crm_user",1,1,1,1 +"access_crm_meeting_all","crm.meeting"_allll,"model_crm_meeting","base.group_user",1,0,0,0 "access_crm_lead","crm.lead","model_crm_lead","crm.group_crm_user",1,1,1,1 +"access_crm_lead.all","crm.lead.all","model_crm_lead","base.group_user",1,0,0,0 "access_crm_phonecall","crm.phonecall","model_crm_phonecall","crm.group_crm_user",1,1,1,1 +"access_crm_phonecall.all","crm.phonecall.all","model_crm_phonecall","base.group_user",1,0,0,0 "access_crm_case_section_user","crm.case.section.user","model_crm_case_section","crm.group_crm_user",1,0,0,0 "access_crm_case_section_manager","crm.case.section.manager","model_crm_case_section","crm.group_crm_manager",1,1,1,1 "access_crm_case_categ_user","crm.case.categ.user","model_crm_case_categ","crm.group_crm_user",1,0,0,0 "access_crm_case_categ_manager","crm.case.categ.manager","model_crm_case_categ","crm.group_crm_manager",1,1,1,1 -"access_crm_case_stage","crm.case.stage","model_crm_case_stage","crm.group_crm_user",1,0,0,0 +"access_crm_case_stage","crm.case.stage","model_crm_case_stage","base.group_user",1,0,0,0 "access_crm_case_stage_manager","crm.case.stage","model_crm_case_stage","crm.group_crm_manager",1,1,1,1 "access_crm_case_resource_type_user","crm_case_resource_type user","model_crm_case_resource_type","crm.group_crm_user",1,0,0,0 "access_crm_case_resource_type_manager","crm_case_resource_type manager","model_crm_case_resource_type","crm.group_crm_manager",1,1,1,1 "access_crm_lead_report_manager","crm.lead.report","model_crm_lead_report","crm.group_crm_manager",1,0,0,0 "access_crm_phonecall_report_manager","crm.phonecall.report","model_crm_phonecall_report","crm.group_crm_manager",1,0,0,0 -"access_crm_lead2partner","crm.lead2partner","model_crm_lead2partner","crm.group_crm_user",1,1,1,1 -"access_crm_lead2opportunity","crm.lead2opportunity","model_crm_lead2opportunity","crm.group_crm_user",1,1,1,1 -"access_crm_opportunity2phonecall","crm.opportunity2phonecall","model_crm_opportunity2phonecall","crm.group_crm_user",1,1,1,1 -"access_crm_phonecall2phonecall","crm.phonecall2phonecall","model_crm_phonecall2phonecall","crm.group_crm_user",1,1,1,1 -"access_crm_phonecall2partner","crm.phonecall2partner","model_crm_phonecall2partner","crm.group_crm_user",1,1,1,1 -"access_crm_phonecall2opportunity","crm.phonecall2opportunity","model_crm_phonecall2opportunity","crm.group_crm_user",1,1,1,1 "access_crm_send_mail","crm.send.mail","model_crm_send_mail","crm.group_crm_user",1,1,1,1 "access_crm_send_mail_attachment","crm.send.mail.attachment","model_crm_send_mail_attachment","crm.group_crm_user",1,1,1,1 "access_crm_partner2opportunity","crm.partner2opportunity","model_crm_partner2opportunity","crm.group_crm_user",1,1,1,1 -"access_crm_lead2opportunity_partner","crm.lead2opportunity.partner","model_crm_lead2opportunity_partner","crm.group_crm_user",1,1,1,1 "access_crm_installer","crm.installer.rule","model_crm_installer","base.group_system",1,1,1,1 -"access_crm_lead_forward_to_partner","crm.lead.forward.to.partner","model_crm_lead_forward_to_partner","crm.group_crm_user",1,1,1,1 "access_res_partner","res.partner.crm.user","base.model_res_partner","crm.group_crm_user",1,0,0,0 "access_res_partner_address","res.partner.address.crm.user","base.model_res_partner_address","crm.group_crm_user",1,0,0,0 "access_res_partner_category","res.partner.category.crm.user","base.model_res_partner_category","crm.group_crm_user",1,0,0,0 diff --git a/addons/crm/wizard/crm_forward_to_partner.py b/addons/crm/wizard/crm_forward_to_partner.py index afae01ca2fe..f6f43ed7f38 100644 --- a/addons/crm/wizard/crm_forward_to_partner.py +++ b/addons/crm/wizard/crm_forward_to_partner.py @@ -20,10 +20,12 @@ # ############################################################################## -from osv import osv, fields +import base64 +import itertools -from tools.translate import _ +from osv import osv, fields import tools +from tools.translate import _ class crm_lead_forward_to_partner(osv.osv_memory): """Forwards lead history""" @@ -31,20 +33,28 @@ class crm_lead_forward_to_partner(osv.osv_memory): _columns = { 'name': fields.selection([('user', 'User'), ('partner', 'Partner'), \ - ('email', 'Email Address')], 'Send to', required=True), - 'user_id': fields.many2one('res.users', "User"), - 'partner_id' : fields.many2one('res.partner', 'Partner'), - 'address_id' : fields.many2one('res.partner.address', 'Address'), - 'email_from' : fields.char('From', required=True, size=128), - 'email_to' : fields.char('To', required=True, size=128), - 'subject' : fields.char('Subject', required=True, size=128), - 'message' : fields.text('Message', required=True), + ('email', 'Email Address')], 'Send to', required=True), + 'user_id': fields.many2one('res.users', "User"), + 'partner_id' : fields.many2one('res.partner', 'Partner'), + 'address_id' : fields.many2one('res.partner.address', 'Address'), + 'email_from' : fields.char('From', required=True, size=128), + 'email_to' : fields.char('To', required=True, size=128), + 'subject' : fields.char('Subject', required=True, size=128), + 'message' : fields.text('Message', required=True), 'history': fields.selection([('latest', 'Latest email'), ('whole', 'Whole Story'), ('info', 'Case Information')], 'Send history', required=True), - 'add_cc': fields.boolean('Add as CC', required=False, help="Selcect if you want this user to add as cc for this case.This user will receive all future conversations"), + 'add_cc': fields.boolean('Add as CC', required=False, help="Check this box if you want this address to be added in the CC list"\ + " for this case, in order to receive all future conversations"), } - + + _defaults = { + 'name' : 'email', + 'history': 'latest', + 'add_cc': True, + 'email_from': lambda self, cr, uid, *a: self.pool.get('res.users')._get_email_from(cr, uid, uid)[uid] + } + def get_whole_history(self, cr, uid, ids, context=None): - """This function gets whole communication history and returns as top posting style + """This function gets whole communication history and returns as top posting style @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @@ -87,13 +97,10 @@ class crm_lead_forward_to_partner(osv.osv_memory): """ if not user: return {'value': {'email_to': False}} - email = False - addr = self.pool.get('res.users').read(cr, uid, user, ['address_id'])['address_id'] - if addr: - email = self.pool.get('res.partner.address').read(cr, uid, addr[0] , ['email'])['email'] + email = self.pool.get('res.users')._get_email_from(cr, uid, [user])[user] return {'value': {'email_to': email}} - def on_change_history(self, cr, uid, ids, history, context=None): + def on_change_history(self, cr, uid, ids, history_type, context=None): """Gives message body according to type of history selected * info: Forward the case information * whole: Send the whole history @@ -106,31 +113,36 @@ class crm_lead_forward_to_partner(osv.osv_memory): """ #TODO: ids and context are not comming res = False - msg_val = '' res_id = context.get('active_id') - model = context.get('active_model') - model_pool = self.pool.get(model) - if not res_id or not model: - return res - if history == 'info': + msg_val = self._get_case_history(cr, uid, history_type, res_id, context=context) + if msg_val: + res = {'value': {'message' : '\n\n' + msg_val}} + return res + + def _get_case_history(self, cr, uid, history_type, res_id, context=None): + if not res_id: + return + + msg_val = '' + model_pool = self.pool.get('crm.lead') + print history_type + if history_type == 'info': msg_val = self.get_lead_details(cr, uid, res_id, context=context) - if history == 'whole': + elif history_type == 'whole': log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids - log_ids = map(lambda x: x.id, log_ids) + log_ids = [x.id for x in log_ids] if not log_ids: raise osv.except_osv('Warning!', 'There is no history to send') msg_val = self.get_whole_history(cr, uid, log_ids, context=context) - if history == 'latest': + elif history_type == 'latest': log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids if not log_ids: raise osv.except_osv('Warning!', 'There is no history to send') msg_val = self.get_latest_history(cr, uid, log_ids[0].id, context=context) - if msg_val: - res = {'value': {'message' : '\n\n' + msg_val}} - return res + return msg_val def on_change_partner(self, cr, uid, ids, partner_id): """This function fills address information based on partner/user selected @@ -169,7 +181,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): context = {} res_id = context.get('active_id', False) - + model = context.get('active_model', False) if not res_id or not model: return {} @@ -184,19 +196,35 @@ class crm_lead_forward_to_partner(osv.osv_memory): body = case_pool.format_body(this.message) email_from = this.email_from or False - flag = False - flag = tools.email_send( - email_from, - emails, - this.subject, - body, + # extract attachements from case and emails according to mode + attachments = [] + attach_pool = self.pool.get('ir.attachment') + direct_attachments = attach_pool.search(cr, uid, [('res_model', '=', 'crm.lead'), ('res_id', '=', res_id)], context=context) + attachments += attach_pool.browse(cr, uid, direct_attachments, context=context) + if this.history in ['latest', 'whole'] and case.message_ids: + msgs = case.message_ids + if this.history == 'latest': + msgs = msgs[:1] + attachments.extend(itertools.chain(*[m.attachment_ids for m in msgs])) + + result = tools.email_send( + email_from, + emails, + this.subject, + body, + openobject_id=str(case.id), + attach=[(a.datas_fname or a.name, base64.decodestring(a.datas)) for a in attachments if a.datas], + reply_to=case.section_id.reply_to, ) - if flag: + + if result: case_pool._history(cr, uid, [case], _('Forward'), history=True, email=this.email_to, subject=this.subject, details=body, email_from=email_from) - if not flag: - raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.')) - if this.add_cc: + else: + raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.')) + + if this.add_cc and (not case.email_cc or not this.email_to in case.email_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 {} def get_lead_details(self, cr, uid, lead_id, context=None): @@ -209,11 +237,11 @@ class crm_lead_forward_to_partner(osv.osv_memory): 'zip', 'city', 'country_id', 'state_id', 'email_from', 'phone', 'fax', 'mobile' ] - + for field_name in field_names: field_definition = lead_proxy._columns[field_name] value = None - + if field_definition._type == 'selection': if hasattr(field_definition.selection, '__call__'): key = field_definition.selection(lead_proxy, cr, uid, context=context) @@ -225,7 +253,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): value = lead[field_name].name_get()[0][1] else: value = lead[field_name] - + message.append("%s: %s" % (field_definition.string, value or '')) elif lead.type == 'opportunity': pa = lead.partner_address_id @@ -246,7 +274,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): "Mobile: %s" % (pa.mobile or ''), ] return "\n".join(message + ['---']) - + def default_get(self, cr, uid, fields, context=None): """ This function gets default values @@ -254,29 +282,21 @@ class crm_lead_forward_to_partner(osv.osv_memory): if context is None: context = {} - active_ids = context.get('active_ids') - if not active_ids: - return {} + defaults = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context) + + active_id = context.get('active_id') + if not active_id: + return defaults lead_proxy = self.pool.get('crm.lead') - lead = lead_proxy.browse(cr, uid, active_ids[0], context=context) - message = False - - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - email_from = '' - if user.address_id and user.address_id.email: - email_from = "%s <%s>" % (user.name, user.address_id.email) - - message = self.get_lead_details(cr, uid, lead.id, context=context) - - res = { - 'email_from' : email_from, - 'subject' : '[%s-Forward:%06d] %s' % (lead.type.title(), lead.id, lead.name), - 'message' : message, - } - if 'history' in fields: - res.update({'history': 'info'}) - return res + lead = lead_proxy.browse(cr, uid, active_id, context=context) + + message = self._get_case_history(cr, uid, defaults.get('history', 'latest'), lead.id, context=context) + defaults.update({ + 'subject' : '%s: %s' % (_('Fwd'), lead.name), + 'message' : message, + }) + return defaults crm_lead_forward_to_partner() diff --git a/addons/crm/wizard/crm_forward_to_partner_view.xml b/addons/crm/wizard/crm_forward_to_partner_view.xml index b6295cfa3a9..e8a60cea01f 100644 --- a/addons/crm/wizard/crm_forward_to_partner_view.xml +++ b/addons/crm/wizard/crm_forward_to_partner_view.xml @@ -7,28 +7,24 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Forward to Partner"> - <separator string="User" colspan="4" /> + <separator string="Sender" colspan="4" /> <field name="email_from" colspan="2" /> <field name="history" colspan="2" on_change="on_change_history(history, context)"/> - <separator string="Send to" colspan="4" /> + <separator string="Recipient" colspan="4" /> <field name="name" colspan="2" /> - <group col="2" colspan="2" attrs="{ 'invisible' : [('name','!=','user')]}"> + <group col="2" colspan="2" attrs="{ 'invisible' : [('name','!=','user')]}"> <field name="user_id" attrs="{ 'required' : [('name','=','user')]}" on_change="on_change_email(user_id)" /> </group> <group col="4" colspan="4" attrs="{'invisible' : [('name','!=','partner')]}"> - <field name="partner_id" attrs="{'required' : [('name','=','partner')]}" on_change="on_change_partner(partner_id)" colspan="2" /> - <field name="address_id" string="Contact" on_change="on_change_address(address_id)" colspan="2" /> - </group> - <field colspan="4" name="email_to" attrs="{ 'required' : [('name','=','email')]}" /> - <newline/> - <group colspan="2" col="2"> - <field name="add_cc" colspan="2"/> - </group> - <separator string="Email" colspan="4" /> + <field name="partner_id" attrs="{'required' : [('name','=','partner')]}" on_change="on_change_partner(partner_id)" colspan="2" /> + <field name="address_id" string="Contact" on_change="on_change_address(address_id)" colspan="2" /> + </group> + <field colspan="2" name="email_to" attrs="{ 'required' : [('name','=','email')]}" /> + <field name="add_cc"/> + <separator string="Message" colspan="4" /> <field name="subject" colspan="4" /> - <separator string="Mesage body" colspan="4" /> <field name="message" colspan="4" nolabel="1"/> <separator string="" colspan="4" /> <group colspan="4" col="2"> diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py index 12edf5edc6d..5560ec507bf 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity.py +++ b/addons/crm/wizard/crm_lead_to_opportunity.py @@ -81,10 +81,11 @@ class crm_lead2opportunity(osv.osv_memory): 'partner_id': this.partner_id.id, 'type': 'opportunity' } - lead_obj.write(cr, uid, lead.id, vals, context=context) - lead_obj._history(cr, uid, [lead], _('Opportunity'), details='Converted to Opportunity', context=context) + if lead.partner_id: + msg_ids = [ x.id for x in lead.message_ids] + self.pool.get('mailgate.message').write(cr, uid, msg_ids, {'partner_id': lead.partner_id.id}, context=context) value = { 'name': _('Opportunity'), diff --git a/addons/crm/wizard/crm_send_email.py b/addons/crm/wizard/crm_send_email.py index 480ea0f10a1..d790d9b7a0a 100644 --- a/addons/crm/wizard/crm_send_email.py +++ b/addons/crm/wizard/crm_send_email.py @@ -53,7 +53,8 @@ class crm_send_new_email(osv.osv_memory): _columns = { 'email_to' : fields.char('To', size=64, required=True), 'email_from' : fields.char('From', size=64, required=True), - 'email_cc' : fields.char('CC', size=128), + 'email_cc' : fields.char('CC', size=128, help="Carbon Copy: list of recipients that will receive"\ + " a copy of this mail, and future communication related to this case"), 'subject': fields.char('Subject', size=128, required=True), 'text': fields.text('Message', required=True), 'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True), @@ -92,15 +93,14 @@ class crm_send_new_email(osv.osv_memory): case = case_pool.browse(cr, uid, res_id) if context.get('mail', 'new') == 'new': - if len(case.message_ids): + if case.message_ids: message_id = case.message_ids[0].message_id else: hist = hist_obj.browse(cr, uid, res_id) message_id = hist.message_id model = hist.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 + res_id = hist.res_id case = model_pool.browse(cr, uid, res_id) emails = [obj.email_to] email_cc = (obj.email_cc or '').split(',') @@ -109,16 +109,10 @@ class crm_send_new_email(osv.osv_memory): body = case_pool.format_body(body) email_from = getattr(obj, 'email_from', False) - - x_headers = { - 'model': model, - 'resource-id': res_id - } + x_headers = {} if message_id: x_headers['References'] = "%s" % (message_id) - flag = False - flag = tools.email_send( email_from, emails, @@ -126,10 +120,11 @@ class crm_send_new_email(osv.osv_memory): body, email_cc=email_cc, attach=attach, - reply_to=case.section_id and case.section_id.reply_to or email_from, + reply_to=case.section_id and case.section_id.reply_to, openobject_id=str(case.id), x_headers=x_headers ) + if not flag: raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.')) if flag: @@ -170,23 +165,23 @@ class crm_send_new_email(osv.osv_memory): mod_obj = self.pool.get(model) res_id = context and context.get('active_ids', []) or [] + user_obj = self.pool.get('res.users') + user_mail_from = user_obj._get_email_from(cr, uid, [uid], context=context)[uid] + for case in mod_obj.browse(cr, uid, res_id): if 'email_to' in fields: res.update({'email_to': case.email_from}) if 'email_from' in fields: - res.update({'email_from': (case.section_id and case.section_id.reply_to) or \ - (case.user_id and case.user_id.address_id and \ - case.user_id.address_id.email and \ - "%s <%s>" % (case.user_id.name, case.user_id.address_id.email)) or \ - tools.config.get('email_from',False)}) + res.update({'email_from': user_mail_from}) if 'subject' in fields: - res.update({'subject': '[%s] %s' % (str(case.id), context.get('subject', case.name) or '')}) + res.update({'subject': str(context.get('subject', case.name) or '')}) if 'email_cc' in fields: res.update({'email_cc': case.email_cc or ''}) if 'text' in fields: res.update({'text': '\n\n'+(case.user_id.signature or '')}) if 'state' in fields: res.update({'state': 'pending'}) + return res def get_reply_defaults(self, cr, uid, fields, context=None): @@ -196,6 +191,9 @@ class crm_send_new_email(osv.osv_memory): hist_obj = self.pool.get('mailgate.message') res_ids = context and context.get('active_ids', []) or [] + user_obj = self.pool.get('res.users') + user_mail_from = user_obj._get_email_from(cr, uid, [uid], context=context)[uid] + include_original = context and context.get('include_original', False) or False res = {} for hist in hist_obj.browse(cr, uid, res_ids, context=context): @@ -206,15 +204,12 @@ class crm_send_new_email(osv.osv_memory): 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 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}) if 'email_from' in fields: - res.update({'email_from': (case.section_id and case.section_id.reply_to) or \ - (case.user_id and case.user_id.address_id and \ - case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from',False)}) + res.update({'email_from': user_mail_from}) signature = '\n' + (case.user_id.signature or '') original = [signature] @@ -257,13 +252,6 @@ class crm_send_new_email(osv.osv_memory): return True if tools.config.get('email_from'): return True - - for case in mod_obj.browse(cr, uid, context.get('active_ids', [])): - if not case.user_id: - raise osv.except_osv(_('Error'), _('You must define a responsible user for this case in order to use this action!')) - if not case.user_id.address_id.email: - raise osv.except_osv(_('Warning!'), _("Please specify user's email address !")) - return True crm_send_new_email() diff --git a/addons/crm/wizard/crm_send_email_view.xml b/addons/crm/wizard/crm_send_email_view.xml index c0125014c1a..b5af4004801 100644 --- a/addons/crm/wizard/crm_send_email_view.xml +++ b/addons/crm/wizard/crm_send_email_view.xml @@ -10,12 +10,11 @@ <field name="type">form</field> <field name="arch" type="xml"> <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" colspan="6"/> + <group colspan="4" col="2"> + <field name="email_from"/> + <field name="email_to" /> + <field name="email_cc"/> + <field name="subject"/> </group> <notebook colspan="6"> <page string="Message"> diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml index 40f077d49f0..14754ff7857 100644 --- a/addons/crm_claim/crm_claim_menu.xml +++ b/addons/crm_claim/crm_claim_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> - <data noupdate="1"> + <data> <menuitem id="base.menu_aftersale" name="After-Sale Services" groups="base.group_extended" diff --git a/addons/crm_profiling/i18n/el.po b/addons/crm_profiling/i18n/el.po index ce6a20ea15a..e9a707120e7 100644 --- a/addons/crm_profiling/i18n/el.po +++ b/addons/crm_profiling/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/document/__openerp__.py b/addons/document/__openerp__.py index 5e1aa939b54..e8b8b3969e9 100644 --- a/addons/document/__openerp__.py +++ b/addons/document/__openerp__.py @@ -43,10 +43,10 @@ 'depends': ['base', 'process','board'], 'init_xml': [], 'update_xml': [ + 'security/document_security.xml', 'document_view.xml', 'document_data.xml', 'wizard/document_configuration_view.xml', - 'security/document_security.xml', 'security/ir.model.access.csv', 'report/document_report_view.xml', 'board_document_view.xml', diff --git a/addons/document/board_document_demo.xml b/addons/document/board_document_demo.xml index 6f8f8ffa39e..672fb5cb268 100644 --- a/addons/document/board_document_demo.xml +++ b/addons/document/board_document_demo.xml @@ -6,12 +6,12 @@ Administrator shortcut Demo user startup menu --> - <record model="ir.ui.view_sc" id="sc_document_dash"> + <!-- <record model="ir.ui.view_sc" id="sc_document_dash"> <field name="name">Documents dashboard</field> <field name="user_id" ref="base.user_root"/> <field name="resource">ir.ui.menu</field> <field name="sequence">1</field> <field name="res_id" ref="menu_board_document_manager"/> - </record> + </record> --> </data> </openerp> diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 8fcd791144e..f40074df644 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -3,7 +3,7 @@ <!--<menuitem name="Document Management" icon="terp-stock" id="menu_document"/> <menuitem name="Document Configuration" id="menu_document_configuration" parent="menu_document"/>--> - <menuitem name="Knowledge" icon="terp-stock" id="base.menu_document" sequence="19" groups="base.group_user"/> + <menuitem name="Knowledge" icon="terp-stock" id="base.menu_document" sequence="19" groups="group_document_user"/> <menuitem name="Configuration" id="base.menu_document_configuration" parent="base.menu_document" sequence="50"/> <menuitem name="Document Management" id="menu_document_management_configuration" parent="base.menu_document_configuration" sequence="1"/> @@ -288,7 +288,7 @@ <field name="res_model">ir.attachment</field> <field name="view_type">form</field> <field name="domain">[('parent_id','child_of',active_id)]</field> - <field name="context">{'parent_id':'active_id'}</field> + <field name="context">{'parent_id':active_id}</field> </record> <record model="ir.values" id="ir_action_document_file_directory_form"> diff --git a/addons/document/i18n/el.po b/addons/document/i18n/el.po index 9b425c31b89..56b87d3cc6d 100644 --- a/addons/document/i18n/el.po +++ b/addons/document/i18n/el.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: document diff --git a/addons/document/i18n/es.po b/addons/document/i18n/es.po index c491e4daa8d..1c062b61792 100644 --- a/addons/document/i18n/es.po +++ b/addons/document/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: document diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py index d3964fc2d99..2294aacbd10 100644 --- a/addons/document/report/document_report.py +++ b/addons/document/report/document_report.py @@ -53,7 +53,8 @@ class report_document_user(osv.osv): 'partner':fields.char('Partner',size=64,readonly=True), } def init(self, cr): - cr.execute(""" + tools.drop_view_if_exists(cr, 'report_document_user') + cr.execute(""" create or replace view report_document_user as ( select min(f.id) as id, @@ -72,7 +73,7 @@ class report_document_user(osv.osv): inner join res_users u on (f.user_id=u.id) group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,u.name,d.type,f.write_date ) - """) + """) report_document_user() class report_files_partner(osv.osv): @@ -119,7 +120,8 @@ class report_document_file(osv.osv): } _order = "month" def init(self, cr): - cr.execute(""" + tools.drop_view_if_exists(cr, 'report_document_file') + cr.execute(""" create or replace view report_document_file as ( select min(f.id) as id, count(*) as nbr, @@ -128,7 +130,7 @@ class report_document_file(osv.osv): from ir_attachment f group by EXTRACT(MONTH FROM f.create_date) ) - """) + """) report_document_file() @@ -145,7 +147,8 @@ class report_document_wall(osv.osv): } def init(self, cr): - cr.execute(""" + tools.drop_view_if_exists(cr, 'report_document_wall') + cr.execute(""" create or replace view report_document_wall as ( select max(f.id) as id, to_char(min(f.create_date),'YYYY-MM-DD HH24:MI:SS') as last, @@ -159,7 +162,7 @@ class report_document_wall(osv.osv): group by i.user_id) group by f.user_id,f.create_date having (CURRENT_DATE - to_date(to_char(f.create_date,'YYYY-MM-DD'),'YYYY-MM-DD')) > 30 ) - """) + """) report_document_wall() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/document/security/document_security.xml b/addons/document/security/document_security.xml index 4eb257a2325..333cc853542 100644 --- a/addons/document/security/document_security.xml +++ b/addons/document/security/document_security.xml @@ -2,6 +2,10 @@ <openerp> <data noupdate="0"> + <record id="group_document_user" model="res.groups"> + <field name="name">Document / User</field> + </record> + <record id="group_document_manager" model="res.groups"> <field name="name">Document / Manager</field> </record> diff --git a/addons/document_webdav/i18n/el.po b/addons/document_webdav/i18n/el.po index eaf94e5c066..5cda9602def 100644 --- a/addons/document_webdav/i18n/el.po +++ b/addons/document_webdav/i18n/el.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: document_webdav_old diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 133a47563a8..0ca89a5bbb8 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -222,39 +222,41 @@ class email_template(osv.osv): 'template_language' : lambda *a:'mako', } + _sql_constraints = [ ('name', 'unique (name)', _('The template name must be unique !')) ] - def create(self, cr, uid, vals, context=None): - id = super(email_template, self).create(cr, uid, vals, context) - src_obj = self.pool.get('ir.model').read(cr, uid, vals['object_name'], ['model'], context)['model'] + def create_action(self, cr, uid, ids, context): + vals = {} + template_obj = self.browse(cr, uid, ids)[0] + src_obj = template_obj.object_name.model vals['ref_ir_act_window'] = self.pool.get('ir.actions.act_window').create(cr, uid, { - 'name': _("%s Mail Form") % vals['name'], + 'name': template_obj.name, 'type': 'ir.actions.act_window', 'res_model': 'email_template.send.wizard', 'src_model': src_obj, 'view_type': 'form', - 'context': "{'src_model':'%s','template_id':'%d','src_rec_id':active_id,'src_rec_ids':active_ids}" % (src_obj, id), + 'context': "{'src_model':'%s','template_id':'%d','src_rec_id':active_id,'src_rec_ids':active_ids}" % (src_obj, template_obj.id), 'view_mode':'form,tree', 'view_id': self.pool.get('ir.ui.view').search(cr, uid, [('name', '=', 'email_template.send.wizard.form')], context=context)[0], 'target': 'new', 'auto_refresh':1 }, context) vals['ref_ir_value'] = self.pool.get('ir.values').create(cr, uid, { - 'name': _('Send Mail (%s)') % vals['name'], + 'name': _('Send Mail (%s)') % template_obj.name, 'model': src_obj, 'key2': 'client_action_multi', 'value': "ir.actions.act_window," + str(vals['ref_ir_act_window']), 'object': True, }, context) - self.write(cr, uid, id, { + self.write(cr, uid, ids, { 'ref_ir_act_window': vals['ref_ir_act_window'], 'ref_ir_value': vals['ref_ir_value'], }, context) - return id + return True - def unlink(self, cr, uid, ids, context=None): + def unlink_action(self, cr, uid, ids, context): for template in self.browse(cr, uid, ids, context): obj = self.pool.get(template.object_name.model) try: @@ -264,6 +266,13 @@ class email_template(osv.osv): self.pool.get('ir.values').unlink(cr, uid, template.ref_ir_value.id, context) except: raise osv.except_osv(_("Warning"), _("Deletion of Record failed")) + + def delete_action(self, cr, uid, ids, context): + self.unlink_action(cr, uid, ids, context) + return True + + def unlink(self, cr, uid, ids, context=None): + self.unlink_action(cr, uid, ids, context) return super(email_template, self).unlink(cr, uid, ids, context) def copy(self, cr, uid, id, default=None, context=None): diff --git a/addons/email_template/email_template_mailbox.py b/addons/email_template/email_template_mailbox.py index b89a9aeda26..b20fa9f76bf 100644 --- a/addons/email_template/email_template_mailbox.py +++ b/addons/email_template/email_template_mailbox.py @@ -41,6 +41,7 @@ class email_template_mailbox(osv.osv): return True def send_this_mail(self, cr, uid, ids=None, context=None): + result = True for id in (ids or []): try: account_obj = self.pool.get('email_template.account') diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index 1d574ff8675..3346c6c6162 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -108,12 +108,19 @@ </group> </page> <page string="Advanced"> - <field name="ref_ir_act_window" /> - <field name="ref_ir_value" /> - <separator string="Attachments (Report to attach)" colspan="4"/> - <field name="file_name" colspan="2" /> - <field name="report_template" colspan="2" + <group colspan="2" col="2"> + <separator string="Actions" colspan="2"/> + <button name="create_action" string="Create Action" type="object" colspan="2" attrs="{'invisible':[('ref_ir_act_window','!=',False), ('ref_ir_value','!=',False)]}"/> + <field name="ref_ir_act_window"/> + <field name="ref_ir_value"/> + <button name="delete_action" string="Delete Action" type="object" colspan="2" attrs="{'invisible':[('ref_ir_act_window','=',False), ('ref_ir_value','=',False)]}"/> + </group> + <group colspan="2" col="2"> + <separator string="Attachments (Report to attach)" colspan="4"/> + <field name="file_name" colspan="2" /> + <field name="report_template" colspan="2" domain="[('model','=',model_int_name)]" /> + </group> </page> </notebook> </form> diff --git a/addons/event/board_association_demo.xml b/addons/event/board_association_demo.xml index 959f2c1f5a8..c30dad64790 100644 --- a/addons/event/board_association_demo.xml +++ b/addons/event/board_association_demo.xml @@ -6,13 +6,13 @@ Administrator shortcut Demo user startup menu --> - <record model="ir.ui.view_sc" id="sc_association_dash"> - <field name="name">Dashboard</field> - <field name="user_id" ref="base.user_root"/> - <field name="resource">ir.ui.menu</field> - <field name="sequence">1</field> - <field name="res_id" ref="menu_board_associations_manager"/> - </record> +<!-- <record model="ir.ui.view_sc" id="sc_association_dash">--> +<!-- <field name="name">Dashboard</field>--> +<!-- <field name="user_id" ref="base.user_root"/>--> +<!-- <field name="resource">ir.ui.menu</field>--> +<!-- <field name="sequence">1</field>--> +<!-- <field name="res_id" ref="menu_board_associations_manager"/>--> +<!-- </record>--> <record model="res.users" id="base.user_root"> <field name="action_id" ref="open_board_associations_manager"/> </record> diff --git a/addons/event_project/i18n/el.po b/addons/event_project/i18n/el.po new file mode 100644 index 00000000000..e693321250f --- /dev/null +++ b/addons/event_project/i18n/el.po @@ -0,0 +1,88 @@ +# 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 22:21+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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: event_project +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Λανθασμένο XML για προβολή αρχιτεκτονικής!" + +#. module: event_project +#: model:ir.actions.wizard,name:event_project.wizard_event_task +msgid "Tasks" +msgstr "Εργασίες" + +#. module: event_project +#: wizard_button:event.project,init,done:0 +msgid "Ok" +msgstr "Εντάξει" + +#. module: event_project +#: model:ir.module.module,description:event_project.module_meta_information +msgid "" +"Organization and management of events.\n" +"\n" +" This module allow you to create retro planning for managing your " +"events.\n" +msgstr "" +"Οργάνωση και διαχείριση συμβάντων.\n" +"\n" +" Αυτή το τμήμα του προγράμματος σας επιτρέπει να κάνετε ανασχεδιασμό για " +"τη διαχείριση των συμβάντων σας.\n" + +#. module: event_project +#: view:event.event:0 +msgid "Remaining Tasks" +msgstr "Εργασίες που παραμένουν" + +#. module: event_project +#: model:ir.module.module,shortdesc:event_project.module_meta_information +msgid "Event - Project" +msgstr "Συμβάν - Έργο" + +#. module: event_project +#: field:event.event,project_id:0 +#: wizard_field:event.project,init,project_id:0 +#: model:ir.actions.wizard,name:event_project.event_wiz +msgid "Project" +msgstr "Έργο" + +#. module: event_project +#: field:event.event,task_ids:0 +msgid "Project tasks" +msgstr "Εργασίες Έργου" + +#. module: event_project +#: wizard_button:event.project,init,end:0 +msgid "Cancel" +msgstr "Ακύρωση" + +#. module: event_project +#: view:event.event:0 +msgid "Create Retro-Planning" +msgstr "Δημιουργία προγραμματισμού" + +#. module: event_project +#: wizard_view:event.project,init:0 +msgid "Event" +msgstr "Συμβάν" + +#. module: event_project +#: view:event.event:0 +msgid "Tasks management" +msgstr "Διαχείριση εργασιών" diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index 14981c13837..947434052ae 100644 --- a/addons/fetchmail/fetchmail.py +++ b/addons/fetchmail/fetchmail.py @@ -50,7 +50,7 @@ class email_server(osv.osv): 'type':fields.selection([ ('pop', 'POP Server'), ('imap', 'IMAP Server'), - ], 'State', select=True, readonly=False), + ], 'Server Type', select=True, readonly=False), 'is_ssl':fields.boolean('SSL ?', required=False), 'attach':fields.boolean('Add Attachments ?', required=False), 'date': fields.date('Date', readonly=True, states={'draft':[('readonly', False)]}), @@ -107,11 +107,13 @@ class email_server(osv.osv): ids = self.search(cr, uid, []) return self.fetch_mail(cr, uid, ids, context) - def fetch_mail(self, cr, uid, ids, context={}): + def fetch_mail(self, cr, uid, ids, context=None): + if not context: + context = {} email_tool = self.pool.get('email.server.tools') for server in self.browse(cr, uid, ids, context): logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name)) - + context.update({'server_id': server.id, 'server_type': server.type}) count = 0 try: if server.type == 'imap': @@ -123,10 +125,10 @@ class email_server(osv.osv): imap_server.login(server.user, server.password) imap_server.select() - result, data = imap_server.search(None, '(UNSEEN)') + result, data = imap_server.search(None, '(UNSEEN)') for num in data[0].split(): result, data = imap_server.fetch(num, '(RFC822)') - res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, server_id=server.id, server_type=server.type, context=context) + res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, context=context) if res_id and server.action_id: action_pool = self.pool.get('ir.actions.server') action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]}) @@ -154,7 +156,7 @@ class email_server(osv.osv): for num in range(1, numMsgs + 1): (header, msges, octets) = pop_server.retr(num) msg = '\n'.join(msges) - res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, server_id=server.id, server_type=server.type, context=context) + res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, context=context) if res_id and server.action_id: action_pool = self.pool.get('ir.actions.server') action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]}) @@ -182,10 +184,34 @@ class mailgate_message(osv.osv): 'type':fields.selection([ ('pop', 'POP Server'), ('imap', 'IMAP Server'), - ], 'State', select=True, readonly=True), + ], 'Server Type', select=True, readonly=True), } _order = 'id desc' + def create(self, cr, uid, values, context=None): + if not context: + context={} + server_id = context.get('server_id',False) + server_type = context.get('server_type',False) + if server_id: + values['server_id'] = server_id + if server_type: + values['server_type'] = server_type + res = super(mailgate_message,self).create(cr, uid, values, context=context) + return res + + def write(self, cr, uid, ids, values, context=None): + if not context: + context={} + server_id = context.get('server_id',False) + server_type = context.get('server_type',False) + if server_id: + values['server_id'] = server_id + if server_type: + values['server_type'] = server_type + res = super(mailgate_message,self).write(cr, uid, ids, values, context=context) + return res + mailgate_message() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr/i18n/el.po b/addons/hr/i18n/el.po index 5d965fa1178..8e5ce7616dd 100644 --- a/addons/hr/i18n/el.po +++ b/addons/hr/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py index 9f5846601ef..e14a91df084 100644 --- a/addons/hr_attendance/hr_attendance.py +++ b/addons/hr_attendance/hr_attendance.py @@ -54,7 +54,7 @@ class hr_attendance(osv.osv): return res _columns = { - 'name' : fields.datetime('Date', required=True), + 'name' : fields.datetime('Date', required=True, select=1), 'action' : fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'),('action','Action')], 'Action', required=True), 'action_desc' : fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'), 'employee_id' : fields.many2one('hr.employee', "Employee's Name", required=True, select=True), diff --git a/addons/hr_contract/i18n/el.po b/addons/hr_contract/i18n/el.po index afdd0c4c3b8..2595b89be23 100644 --- a/addons/hr_contract/i18n/el.po +++ b/addons/hr_contract/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/hr_expense/i18n/el.po b/addons/hr_expense/i18n/el.po index 7ce942b3ff7..846eb9e17ed 100644 --- a/addons/hr_expense/i18n/el.po +++ b/addons/hr_expense/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/hr_holidays/hr_bel_holidays_2008.xml b/addons/hr_holidays/hr_bel_holidays_2008.xml index 4cc3322f6b7..0c09586cb0c 100644 --- a/addons/hr_holidays/hr_bel_holidays_2008.xml +++ b/addons/hr_holidays/hr_bel_holidays_2008.xml @@ -1,66 +1,66 @@ <?xml version="1.0"?> <openerp> - <data noupdate="1"> + <data> - <record model="hr.holidays"> - <field name="name">New Year</field> - <field name="date_from">2008-01-01 08:00</field> - <field name="date_to">2008-01-01 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Easter Monday</field> - <field name="date_from">2008-03-24 08:00</field> - <field name="date_to">2008-03-24 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Labour Day</field> - <field name="date_from">2008-05-01 08:00</field> - <field name="date_to">2008-05-01 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Ascension</field> - <field name="date_from">2008-05-02 08:00</field> - <field name="date_to">2008-05-02 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Pentecost Monday</field> - <field name="date_from">2008-05-12 08:00</field> - <field name="date_to">2008-05-12 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">National Day</field> - <field name="date_from">2008-07-21 08:00</field> - <field name="date_to">2008-07-21 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Assumption Day</field> - <field name="date_from">2008-08-15 08:00</field> - <field name="date_to">2008-08-15 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">All Saints</field> - <field name="date_from">2008-11-01 08:00</field> - <field name="date_to">2008-11-01 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Armistice</field> - <field name="date_from">2008-11-11 08:00</field> - <field name="date_to">2008-11-11 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - <record model="hr.holidays"> - <field name="name">Christmas</field> - <field name="date_from">2008-12-25 08:00</field> - <field name="date_to">2008-12-25 18:00</field> - <field name="holiday_status" ref="hr.jf" /> - </record> - </data> + <record model="hr.holidays"> + <field name="name">New Year</field> + <field name="date_from">2008-01-01 08:00</field> + <field name="date_to">2008-01-01 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Easter Monday</field> + <field name="date_from">2008-03-24 08:00</field> + <field name="date_to">2008-03-24 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Labour Day</field> + <field name="date_from">2008-05-01 08:00</field> + <field name="date_to">2008-05-01 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Ascension</field> + <field name="date_from">2008-05-02 08:00</field> + <field name="date_to">2008-05-02 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Pentecost Monday</field> + <field name="date_from">2008-05-12 08:00</field> + <field name="date_to">2008-05-12 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">National Day</field> + <field name="date_from">2008-07-21 08:00</field> + <field name="date_to">2008-07-21 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Assumption Day</field> + <field name="date_from">2008-08-15 08:00</field> + <field name="date_to">2008-08-15 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">All Saints</field> + <field name="date_from">2008-11-01 08:00</field> + <field name="date_to">2008-11-01 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Armistice</field> + <field name="date_from">2008-11-11 08:00</field> + <field name="date_to">2008-11-11 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + <record model="hr.holidays"> + <field name="name">Christmas</field> + <field name="date_from">2008-12-25 08:00</field> + <field name="date_to">2008-12-25 18:00</field> + <field name="holiday_status" ref="hr.jf" /> + </record> + </data> </openerp> diff --git a/addons/hr_holidays/i18n/el.po b/addons/hr_holidays/i18n/el.po index 2d0c0fa2310..85f4621e414 100644 --- a/addons/hr_holidays/i18n/el.po +++ b/addons/hr_holidays/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/hr_payroll/i18n/et.po b/addons/hr_payroll/i18n/et.po new file mode 100644 index 00000000000..4c9d55d7434 --- /dev/null +++ b/addons/hr_payroll/i18n/et.po @@ -0,0 +1,1439 @@ +# Estonian 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-11-25 13:16+0000\n" +"PO-Revision-Date: 2010-06-25 17:48+0000\n" +"Last-Translator: lyyser <logard.1961@gmail.com>\n" +"Language-Team: Estonian <et@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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "E-mail Address" +msgstr "E-mail Aadres" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "(Based on type Payroll will calculate basic salary)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,net:0 +#: field:hr.payslip,net:0 +msgid "Net Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,working_days:0 +msgid "Working Days" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "New Slip" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Axis Bank" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,esp_account:0 +msgid "EPS Account" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,analytic_account:0 +msgid "Analytic Account for Salary Analysis" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Allowances with Basic:" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Vigane mudeli nimi toimingu definitsioonis." + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Department" +msgstr "Osakond" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Deductions:" +msgstr "Mahaarvamised:" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,gratuity:0 +msgid "Use for Gratuity ?" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Employee No" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Salary Payment Register" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,paid:0 +msgid "Paid ? " +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report +msgid "Year Salary Report" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Paid Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,flag:0 +msgid "D/C" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,company_id:0 +#: field:hr.payslip,company_id:0 +#: wizard_field:payroll.analysis,init,company_id:0 +msgid "Company" +msgstr "Ettevõte" + +#. module: hr_payroll +#: help:hr.employee,employee_account:0 +msgid "Employee Payable Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Details" +msgstr "Kirja detailid" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "," +msgstr "," + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Set to Draft" +msgstr "Sea mustandiks" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "The Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Half-Pay Holiday" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,other_pay:0 +msgid "Others" +msgstr "Muud" + +#. module: hr_payroll +#: field:hr.payslip.line,slip_id:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip +#: rml:payslip.pdf:0 +msgid "Pay Slip" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Calculations Rules" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,description:hr_payroll.module_meta_information +msgid "" +"\n" +" The Payroll system - India, Manages and depends on,\n" +" * HR Details\n" +" * HR Contracts\n" +" * HR Payslip\n" +" * HR Paysheet\n" +" * HR Attendance\n" +" * HR Holidays\n" +" " +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: rml:salary.structure:0 +msgid "Salary" +msgstr "Palk" + +#. module: hr_payroll +#: field:hr.holidays.status,account_id:0 +msgid "Account" +msgstr "Konto" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Payment From" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous / Statutory" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Leaves" +msgstr "Lehed" + +#. module: hr_payroll +#: field:hr.payslip,register_id:0 +msgid "Register" +msgstr "Registreeri" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Next Month Date" +msgstr "" + +#. module: hr_payroll +#: help:hr.payroll.register,period_id:0 +#: help:hr.payslip,period_id:0 +msgid "Keep empty to use the period of the validation(Payslip) date." +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,value:0 +msgid "Value" +msgstr "Väärtus" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Name of the Employee" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,permit_no:0 +msgid "Work Permit No" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,amount:0 +#: rml:payroll.advice:0 +msgid "Amount" +msgstr "Hulk" + +#. module: hr_payroll +#: field:hr.payslip,line_ids:0 +#: view:hr.payslip.line:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip_line +msgid "Payslip Line" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,country_id:0 +msgid "Country of Issue" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Warning !" +msgstr "Hoiatus!" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please Confirm all Expanse Invoice appear for Reimbursement" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Deduction" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employees Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_expire:0 +msgid "Passport Expire Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Special Allowance and Deductions for Employee" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Un-Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,period_id:0 +#: field:hr.payslip,period_id:0 +msgid "Force Period" +msgstr "Suru periood" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Amount (in words) :" +msgstr "Summa (sõnadega) :" + +#. module: hr_payroll +#: field:hr.holidays.status,type:0 +msgid "Payment" +msgstr "Makse" + +#. module: hr_payroll +#: field:hr.employee,analytic_account:0 +#: field:hr.employee.grade,account_id:0 +#: field:hr.holidays.status,analytic_account_id:0 +#: field:hr.payslip.line,analytic_account_id:0 +#: rml:salary.structure:0 +msgid "Analytic Account" +msgstr "Analüütiline konto" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Expanse To" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,base:0 +msgid "Based on" +msgstr "Põhineb" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Bank" +msgstr "Pank" + +#. module: hr_payroll +#: field:hr.payslip,move_id:0 +msgid "Expanse Entries" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information +msgid "Human Resource Payroll" +msgstr "" + +#. module: hr_payroll +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Viga! Sa ei saa luua rekursiivseid analüütilisi kontosid." + +#. module: hr_payroll +#: field:hr.employee,esi_account:0 +msgid "ESI Account" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_passport +msgid "Passport Detail" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Employee Home Address Along with Partners !!" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,total:0 +msgid "Sub Total" +msgstr "Vahesumma" + +#. module: hr_payroll +#: field:hr.contract,visa_no:0 +msgid "Visa No" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,from:0 +msgid "From" +msgstr "Alates" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,bysal:0 +msgid "By Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary +msgid "Employee Year Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip +msgid "Employee PaySlip" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +msgid "Authorised Signature" +msgstr "Volitatud isiku allkiri" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,umo_id:0 +msgid "Unite" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Salary Detail" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Notes:" +msgstr "Märkused:" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "End Date" +msgstr "Lõppkuupäev" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Accounting Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Amount Information" +msgstr "Summa info" + +#. module: hr_payroll +#: field:hr.contract,passport_id:0 +#: field:hr.employee,passport_id:0 +#: view:hr.passport:0 +msgid "Passport" +msgstr "Pass" + +#. module: hr_payroll +#: field:hr.passport,employee_id:0 +#: field:hr.payroll.advice.line,employee_id:0 +#: field:hr.payslip,employee_id:0 +#: field:hr.payslip.line,employee_id:0 +msgid "Employee" +msgstr "Töötaja" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Start Date" +msgstr "Alguskuupäev" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line +msgid "Bank Advice Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,type:0 +#: field:hr.payslip.line,type:0 +#: wizard_field:payroll.analysis,init,type:0 +#: rml:salary.structure:0 +msgid "Type" +msgstr "Tüüp" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "#" +msgstr "#" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous" +msgstr "Mitmesugune" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Integrity Error !" +msgstr "Terviklikkuse viga !" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Verify Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pan_no:0 +msgid "PAN No" +msgstr "" + +#. module: hr_payroll +#: wizard_button:wizard.employees.detail,init,report:0 +#: wizard_button:wizard.year.salary,init,report:0 +msgid "Print" +msgstr "Trüki" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Informations" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Contributions Configuration" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,grows:0 +#: field:hr.payslip,grows:0 +msgid "Gross Salary" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Payment" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,basic:0 +msgid "Basic Salary - Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "C/D" +msgstr "" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,line_ids:0 +msgid "Employee Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,chaque_nos:0 +msgid "Chaque Nos" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary +msgid "Year Salary Detail" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Fixed Amount" +msgstr "Kindel summa" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Verification" +msgstr "Ootan valideerimist" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Account Lines" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Pay Salary" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Gross SAL" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Partner in Home Address !!" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "For the month of" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Payslip" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,deduction:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,deduction:0 +#: selection:hr.payslip.line,type:0 +msgid "Deduction" +msgstr "Mahaarvamine" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice +msgid "Bank Advice Note" +msgstr "" + +#. module: hr_payroll +#: view:hr.passport:0 +msgid "Passport List" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,payment_id:0 +msgid "Payment Entries" +msgstr "Makse kirjed" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "YTD" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,expanse_id:0 +msgid "Expense" +msgstr "Kulu" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "Fided Value" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan Installment" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete HR Checking" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Yours Sincerely" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Allowances" +msgstr "Toetused" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "SI. No." +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Net Amount" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payroll.advice,state:0 +#: field:hr.payroll.register,state:0 +#: field:hr.payslip,state:0 +msgid "State" +msgstr "Olek" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Salary Structure:" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail +msgid "Employees Salary Detail" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_employee_grade +msgid "Function of the Employee" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Confirm Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Account Verification" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Others:" +msgstr "Ülejäänud:" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.passport,contracts_ids:0 +msgid "Contracts" +msgstr "Lepingud" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Passport and Visa" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employee Code" +msgstr "Töötaja kood" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,amount_type:0 +#: field:hr.payslip.line,amount_type:0 +#: rml:salary.structure:0 +msgid "Amount Type" +msgstr "Summa liik" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,category_id:0 +#: field:hr.payslip.line,category_id:0 +#: rml:salary.structure:0 +msgid "Category" +msgstr "Kategooria" + +#. module: hr_payroll +#: field:hr.payslip,move_line_ids:0 +msgid "Accounting Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,bank_journal_id:0 +#: field:hr.payslip,bank_journal_id:0 +msgid "Bank Journal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Total SAL" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !" + +#. module: hr_payroll +#: field:hr.employee,hospital_id:0 +msgid "ESI Hospital" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,slip_ids:0 +#: view:hr.payroll.register:0 +#: field:hr.payroll.register,line_ids:0 +msgid "Payslips" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Reject" +msgstr "Keeldu" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree +#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree +msgid "All Passports" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "Employee Name" +msgstr "Töötaja nimi" + +#. module: hr_payroll +#: field:hr.employee,salary_account:0 +msgid "Salary Account" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Percentage (%)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,register_id:0 +#: view:hr.payroll.register:0 +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form +#: model:ir.model,name:hr_payroll.model_hr_payroll_register +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register +msgid "Payroll Register" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "For" +msgstr "Kellele" + +#. module: hr_payroll +#: field:hr.payroll.register,journal_id:0 +#: field:hr.payslip,journal_id:0 +msgid "Expanse Journal" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract +#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract +msgid "Employee Contract" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,contribute:0 +msgid "Contribe by Company ?" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,working_days_per_week:0 +msgid "Working Days / Week" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,worked_days:0 +msgid "Worked Day" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete Accountant Checking" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Title" +msgstr "Pealkiri" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "On Attendance" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form +#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree +msgid "Allowance/Deduction Heads" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Compute Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,active:0 +msgid "Active" +msgstr "Aktiivne" + +#. module: hr_payroll +#: field:hr.employee,employee_account:0 +msgid "Employee Account" +msgstr "" + +#. module: hr_payroll +#: rml:year.salary:0 +msgid "Yearly Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,condition:0 +msgid "Condition" +msgstr "Tingimus" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for HR Verification" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pf_account:0 +msgid "PF Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Compute" +msgstr "Arvuta" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payslip:0 +#: field:hr.payslip,move_payment_ids:0 +msgid "Payment Lines" +msgstr "Makseread" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: field:hr.payslip,deg_id:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Designation" +msgstr "Sihtkoht" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "HR Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payslip,basic_before_leaves:0 +#: rml:payslip.pdf:0 +msgid "Basic Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,code:0 +msgid "Categoty Code" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Salary Information" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line +msgid "Allowance Deduction Categoty" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Authorized Signature" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Allowance / Deduction Category" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +msgid "Draft Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,date:0 +#: field:hr.payroll.register,date:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,date:0 +msgid "Date" +msgstr "Kuupäev" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Basic SAL" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,visa_expire:0 +msgid "Visa Expire Date" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Phone No." +msgstr "Telefon nr." + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,include_in_salary:0 +msgid "Included in Salary ?" +msgstr "" + +#. module: hr_payroll +#: field:hr.expense.expense,category_id:0 +#: field:hr.holidays.status,head_id:0 +msgid "Payroll Head" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: field:hr.payroll.advice.line,advice_id:0 +msgid "Bank Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,account_id:0 +#: rml:salary.structure:0 +msgid "General Account" +msgstr "Üldine konto" + +#. module: hr_payroll +#: field:hr.holidays.status,code:0 +#: field:hr.payslip.line,code:0 +#: rml:salary.structure:0 +msgid "Code" +msgstr "Kood" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice +#: rml:payroll.advice:0 +msgid "Payment Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,to:0 +msgid "To" +msgstr "Kuni" + +#. module: hr_payroll +#: wizard_button:payroll.analysis,init,process:0 +msgid "Process" +msgstr "Etapp" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan" +msgstr "Laen" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,sequence:0 +msgid "Sequence" +msgstr "Järjestus" + +#. module: hr_payroll +#: wizard_field:wizard.year.salary,init,salary_on:0 +msgid "Salary On" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,number:0 +#: field:hr.payroll.register,number:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,number:0 +msgid "Number" +msgstr "Number" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Contract Detail:" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "General Information" +msgstr "Üldine info" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Paymeny Lines" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.employee,line_ids:0 +#: view:hr.employee.grade:0 +#: field:hr.employee.grade,line_ids:0 +#: rml:salary.structure:0 +msgid "Salary Structure" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +#: wizard_button:payroll.analysis,init,end:0 +#: wizard_button:wizard.employees.detail,init,end:0 +#: wizard_button:wizard.year.salary,init,end:0 +msgid "Cancel" +msgstr "Katkesta" + +#. module: hr_payroll +#: field:hr.payslip.line,amount:0 +#: rml:salary.structure:0 +msgid "Amount / Percentage" +msgstr "Summa / protsent" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Details" +msgstr "" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Current Month Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract Duration" +msgstr "Lepingu kestus" + +#. module: hr_payroll +#: wizard_view:payroll.analysis,init:0 +msgid "Process Form" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,name:0 +msgid "Passport No" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Account Information" +msgstr "Konto info" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Generalities" +msgstr "Üldine" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "for period" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Allowance / Deduction" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "E-mail" +msgstr "E-post" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register +msgid "Print Statement" +msgstr "Trüki avaldus" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +#: field:hr.allounce.deduction.categoty,line_ids:0 +msgid "Calculations" +msgstr "Arvutused" + +#. module: hr_payroll +#: wizard_view:wizard.year.salary,init:0 +msgid "Salary Deposit Date Option?" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Other Informations" +msgstr "Muu info" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Dynamic Computation" +msgstr "Dünaamiline arvutamine" + +#. module: hr_payroll +#: field:hr.employee.grade,function_id:0 +#: field:hr.payslip.line,function_id:0 +msgid "Function" +msgstr "Funktsioon" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Dear Sir/Madam," +msgstr "Lugupeetud Härra/Proua," + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "PAN No." +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,note:0 +msgid "Description" +msgstr "Kirjeldus" + +#. module: hr_payroll +#: field:hr.employee,pg_joining:0 +msgid "PF Join Date" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting +#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll +msgid "Payroll" +msgstr "" + +#. module: hr_payroll +#: wizard_view:wizard.employees.detail,init:0 +#: wizard_view:wizard.year.salary,init:0 +msgid "Year Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,name:0 +msgid "Categoty Name" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis +msgid "Create Analytic Structure" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Address" +msgstr "Aadress" + +#. module: hr_payroll +#: help:hr.employee,property_bank_account:0 +msgid "Select Bank Account from where Salary Expanse will be Paid" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,salary_account:0 +msgid "Expanse account when Salary Expanse will be recorded" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Notes" +msgstr "Märkused" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.payroll_configure +msgid "Configure Payroll" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Cancel Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Advance" +msgstr "Edenema" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Special Allowances and Deductions For Employee:" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,name:0 +#: field:hr.payroll.advice,name:0 +#: field:hr.payroll.register,name:0 +#: field:hr.payslip,name:0 +#: field:hr.payslip.line,name:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "Name" +msgstr "Nimi" + +#. module: hr_payroll +#: field:hr.payslip,leaves:0 +msgid "Leaved Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Statutory Information" +msgstr "Ametlik info" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function +msgid "Employee Functions" +msgstr "Töötajate ülesanded" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,employee_ids:0 +#: wizard_field:wizard.year.salary,init,employee_ids:0 +msgid "Employees" +msgstr "Töötajad" + +#. module: hr_payroll +#: field:hr.employee,property_bank_account:0 +#: rml:payroll.advice:0 +msgid "Bank Account" +msgstr "Pangakonto" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,name:0 +msgid "Bank Account A/C" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0 +#: wizard_field:wizard.year.salary,init,fiscalyear_id:0 +msgid "Fiscal Year" +msgstr "Majandusaasta" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract" +msgstr "Leping" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Allownce / Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "Payroll Configurtion" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_issue:0 +msgid "Passport Issue Date" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,allounce:0 +#: field:hr.payslip,allounce:0 +#: selection:hr.payslip.line,type:0 +msgid "Allowance" +msgstr "Abiraha" + +#. module: hr_payroll +#: field:hr.payslip,holiday_days:0 +msgid "No of Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Bank Details" +msgstr "Pangadetailid" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Deductions" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form +#: model:ir.ui.menu,name:hr_payroll.menu_department_tree +msgid "Employee Payslip" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Content" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "By Sal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Net SAL" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice +msgid "Bank Payment Advice" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register +msgid "Print Salary Structure" +msgstr "Trüki palgastruktuur" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Deductions" +msgstr "Kokku mahaarvamised" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payroll.advice:0 +#: rml:year.salary:0 +msgid "Total" +msgstr "Kokku" diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 9d6c2cfbbbb..09ad521d24b 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -327,37 +327,6 @@ class hr_applicant(osv.osv, crm.crm_case): res = self.write(cr, uid, ids, vals) return res - def emails_get(self, cr, uid, ids, context=None): - - """ - Get Emails - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of email’s IDs - @param context: A standard dictionary for contextual values - """ - res = {} - - if isinstance(ids, (str, int, long)): - select = [long(ids)] - else: - select = ids - - for thread in self.browse(cr, uid, select, context=context): - values = collections.defaultdict(set) - - for message in thread.message_ids: - user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False - values['user_email'].add(user_email) - values['email_from'].add(message.email_from) - values['email_cc'].add(message.email_cc or False) - values['priority'] = thread.priority - - res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems()) - - return res - def msg_send(self, cr, uid, id, *args, **argv): """ Send The Message diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml index 1723c802b0a..971423d45a7 100644 --- a/addons/hr_recruitment/hr_recruitment_menu.xml +++ b/addons/hr_recruitment/hr_recruitment_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> <menuitem icon="terp-hr" id="base.menu_hr" name="Human Resources"/> ######################## JOB OPPORTUNITIES (menu) ########################### diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py index 930877b77c2..95244d25564 100644 --- a/addons/hr_timesheet/__openerp__.py +++ b/addons/hr_timesheet/__openerp__.py @@ -48,7 +48,7 @@ to set up a management by affair. 'wizard/hr_timesheet_print_employee_view.xml', 'wizard/hr_timesheet_print_users_view.xml', 'wizard/hr_timesheet_sign_in_out_view.xml', - + 'report/hr_timesheet_report_view.xml', ], 'demo_xml': ['hr_timesheet_demo.xml'], 'test': ['test/test_hr_timesheet.yml'], diff --git a/addons/hr_timesheet/report/__init__.py b/addons/hr_timesheet/report/__init__.py index 156a4b83c63..d54615fbd0b 100644 --- a/addons/hr_timesheet/report/__init__.py +++ b/addons/hr_timesheet/report/__init__.py @@ -19,8 +19,7 @@ # ############################################################################## +import hr_timesheet_report import user_timesheet import users_timesheet -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/hr_timesheet/report/hr_timesheet_report.py b/addons/hr_timesheet/report/hr_timesheet_report.py new file mode 100644 index 00000000000..100041ca35a --- /dev/null +++ b/addons/hr_timesheet/report/hr_timesheet_report.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 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/>. +# +############################################################################## + +import tools +from osv import fields,osv + +class hr_timesheet_report(osv.osv): + _name = "hr.timesheet.report" + _description = "Timesheet" + _auto = False + _columns = { + 'year': fields.char('Year',size=64,required=False, readonly=True), + 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), + ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), + ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True), + 'date': fields.date('Date', readonly=True), + 'name': fields.char('Description', size=64,readonly=True), + 'product_id' : fields.many2one('product.product', 'Product',readonly=True), + 'journal_id' : fields.many2one('account.analytic.journal', 'Journal',readonly=True), + 'general_account_id' : fields.many2one('account.account', 'General Account', readonly=True), + 'user_id': fields.many2one('res.users', 'User',readonly=True), + 'account_id': fields.many2one('account.analytic.account', 'Analytic Account',readonly=True), + 'company_id': fields.many2one('res.company', 'Company',readonly=True), + 'cost': fields.float('Cost',readonly=True), + 'quantity': fields.float('Quantity',readonly=True), + } + + def init(self, cr): + tools.drop_view_if_exists(cr, 'hr_timesheet_report') + cr.execute(""" + create or replace view hr_timesheet_report as ( + select + min(t.id) as id, + l.date as date, + to_char(l.date,'YYYY') as year, + to_char(l.date,'MM') as month, + sum(l.amount) as cost, + sum(l.unit_amount) as quantity, + l.account_id as account_id, + l.journal_id as journal_id, + l.product_id as product_id, + l.general_account_id as general_account_id, + l.user_id as user_id, + l.company_id as company_id, + l.currency_id as currency_id + from + hr_analytic_timesheet as t + left join account_analytic_line as l ON (t.line_id=l.id) + group by + l.date, + l.account_id, + l.product_id, + l.general_account_id, + l.journal_id, + l.user_id, + l.company_id, + l.currency_id + ) + """) +hr_timesheet_report() diff --git a/addons/hr_timesheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet/report/hr_timesheet_report_view.xml new file mode 100644 index 00000000000..7f2df2e815e --- /dev/null +++ b/addons/hr_timesheet/report/hr_timesheet_report_view.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record id="view_hr_timesheet_report_graph" model="ir.ui.view"> + <field name="name">hr.timesheet.report.graph</field> + <field name="model">hr.timesheet.report</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <graph string="Timesheet" type="bar"> + <field name="user_id" /> + <field name="quantity" operator = "+"/> + </graph> + </field> + </record> + <record id="view_hr_timesheet_report_tree" model="ir.ui.view"> + <field name="name">hr.timesheet.report.tree</field> + <field name="model">hr.timesheet.report</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Timesheet Analysis"> + <field name="year" invisible="1"/> + <field name="month" invisible="1"/> + <field name="date" invisible="1"/> + + <field name="user_id" invisible="1"/> + <field name="company_id" invisible="1"/> + <field name="journal_id" invisible="1"/> + <field name="product_id" invisible="1"/> + <field name="account_id" invisible="1"/> + <field name="general_account_id" invisible="1"/> + + <field name="quantity" sum="Hours"/> + <field name="cost" sum="Total Cost"/> + </tree> + </field> + </record> + <record id="view_hr_timesheet_report_search" model="ir.ui.view"> + <field name="name">hr.timesheet.report.search</field> + <field name="model">hr.timesheet.report</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Timesheet"> + <group col="10" colspan="12"> + <filter icon="terp-go-year" string="This Year" + name="year" + domain="[('year','=', time.strftime('%%Y'))]" + help="Timesheet in this year"/> + <filter icon="terp-go-month" string="This Month" + name="month" + domain="[('month','=', time.strftime('%%m'))]" + help="Timesheet in this month"/> + <filter icon="terp-go-week" + string="Today" + domain="[('date','=', time.strftime('%%Y-%%m-%%d'))]" + help="Timesheet dof the day"/> + <separator orientation="vertical"/> + <field name="account_id"/> + <field name="user_id" /> + <field name="date" /> + </group> + <newline/> + <group expand="1" string="Group By..."> + <filter string="User" name="group_user_id" icon="terp-personal" context="{'group_by':'user_id'}"/> + <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> + <separator orientation="vertical"/> + <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/> + <filter string="General Account" icon="terp-folder-orange" context="{'group_by':'general_account_id'}"/> + <separator orientation="vertical"/> + <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> + <separator orientation="vertical"/> + <filter string="Day" icon="terp-go-today" context="{'group_by':'date'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> + </group> + <newline/> + <group expand="0" string="Extended options..." groups="base.group_extended"> + <field name="general_account_id"/> + <field name="product_id"/> + <field name="journal_id"/> + <separator orientation="vertical"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + </group> + </search> + </field> + </record> + + <record id="action_hr_timesheet_report_stat_all" model="ir.actions.act_window"> + <field name="name">Timesheet Analysis</field> + <field name="res_model">hr.timesheet.report</field> + <field name="view_type">form</field> + <field name="view_mode">tree,graph</field> + <field name="context">{'search_default_month':1,'search_default_group_user_id':1,'group_by_no_leaf':1,'group_by':[]}</field> + </record> + <menuitem + action="action_hr_timesheet_report_stat_all" + id="menu_hr_timesheet_report_all" + parent="menu_hr_reporting_timesheet" sequence="0"/> + </data> +</openerp> diff --git a/addons/hr_timesheet/report/user_timesheet.py b/addons/hr_timesheet/report/user_timesheet.py index 8dbda07ea76..d444e4a19bc 100644 --- a/addons/hr_timesheet/report/user_timesheet.py +++ b/addons/hr_timesheet/report/user_timesheet.py @@ -101,6 +101,3 @@ class report_custom(report_rml): report_custom('report.hr.analytical.timesheet', 'hr.employee', '', 'addons/hr_timesheet/report/user_timesheet.xsl') - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv index ce340fb4eb9..d0573745208 100644 --- a/addons/hr_timesheet/security/ir.model.access.csv +++ b/addons/hr_timesheet/security/ir.model.access.csv @@ -6,3 +6,4 @@ "access_hr_sign_out_project","hr.sign.out.project","model_hr_sign_out_project","hr.group_hr_user",1,1,1,1 "access_hr_analytal_timesheet_employee","hr.analytical.timesheet.employee","model_hr_analytical_timesheet_employee","hr.group_hr_manager",1,1,1,1 "access_hr_analytal_timesheet_user","hr.analytical.timesheet.user","model_hr_analytical_timesheet_users","hr.group_hr_user",1,1,1,1 +"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","hr.group_hr_manager",1,0,0,0 diff --git a/addons/hr_timesheet_invoice/i18n/es.po b/addons/hr_timesheet_invoice/i18n/es.po index 3a6afaac4ef..53fe459a86e 100644 --- a/addons/hr_timesheet_invoice/i18n/es.po +++ b/addons/hr_timesheet_invoice/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet_invoice diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index 487e3687b36..050b798f16d 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -96,12 +96,15 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet"> - <field name="name"/> - <field name="user_id"/> - <field name="date_from"/> - <field name="date_to"/> - <field name="company_id" select="1" groups="base.group_multi_company"/> - <field name="department_id" groups="base.group_extended"/> + <group colspan="4" col="6"> + <field name="name"/> + <field name="company_id" select="1" groups="base.group_multi_company"/> + <field name="department_id" groups="base.group_extended"/> + <newline/> + <field name="user_id"/> + <field name="date_from"/> + <field name="date_to"/> + </group> <notebook colspan="4"> <page string="Daily View"> <group col="6" colspan="4"> @@ -124,7 +127,6 @@ <button name="sign_in" string="Sign In" type="object" icon="terp-gtk-jump-to-ltr"/> <button name="sign_out" string="Sign Out" type="object" icon="terp-gtk-jump-to-rtl"/> </group> - <field name="state_attendance" groups="hr_attendance.group_hr_attendance"/> <field name="total_attendance_day" widget="float_time" groups="hr_attendance.group_hr_attendance"/> <field colspan="4" context="date=date_current,user_id=user_id" domain="[('name','=',date_current)]" name="timesheet_ids" nolabel="1"> @@ -137,8 +139,8 @@ <field invisible="1" name="journal_id"/> <field invisible="1" name="product_id"/> <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/> - <field name="amount"/> - <field name="general_account_id"/> + <field invisible="1" name="amount"/> + <field invisible="1" name="general_account_id"/> <field invisible="1" name="user_id" required="1"/> </tree> <form string="Timesheet"> @@ -147,9 +149,9 @@ <field name="name"/> <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/> <field name="to_invoice"/> - <field invisible="1" name="journal_id"/> - <field invisible="1" name="product_id"/> - <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/> + <field name="journal_id"/> + <field name="product_id"/> + <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/> <field name="amount"/> <field name="general_account_id"/> <field name="user_id" required="1"/> diff --git a/addons/hr_timesheet_sheet/i18n/el.po b/addons/hr_timesheet_sheet/i18n/el.po index 99558a120ff..e5a6f55bce0 100644 --- a/addons/hr_timesheet_sheet/i18n/el.po +++ b/addons/hr_timesheet_sheet/i18n/el.po @@ -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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml index d628c119530..a5d7d9b420f 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml @@ -8,8 +8,8 @@ <field name="arch" type="xml"> <graph string="Timesheet" type="bar"> <field name="user_id" /> - <field name="quantity" operator = "+"/> - <field name="state" group = "True"/> + <field name="quantity" operator = "+"/> + <field name="state" group = "True"/> </graph> </field> </record> @@ -50,71 +50,71 @@ <search string="Timesheet"> <group col="10" colspan="12"> <filter icon="terp-go-year" string="This Year" - domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')),('date_current','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" - help="Timesheet in this year"/> - <filter icon="terp-go-month" string="This Month" - name="month" - domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" - help="Timesheet in this month"/> - <filter icon="terp-go-week" - string=" 7 Days " - separator="1" - domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" - help="Timesheet during last 7 days"/> - <separator orientation="vertical"/> - <filter icon="terp-document-new" - string="Draft" - domain="[('state','=','draft')]"/> - <filter icon="terp-camera_test" - string="Confirmed" - domain="[('state','=','confirm')]"/> - <filter icon="terp-dialog-close" - string="Done" - domain="[('state','=','done')]"/> - <separator orientation="vertical"/> - <field name="account_id"/> + domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')),('date_current','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" + help="Timesheet in this year"/> + <filter icon="terp-go-month" string="This Month" + name="month" + domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" + help="Timesheet in this month"/> + <filter icon="terp-go-week" + string=" 7 Days " + separator="1" + domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" + help="Timesheet during last 7 days"/> + <separator orientation="vertical"/> + <filter icon="terp-document-new" + string="Draft" + domain="[('state','=','draft')]"/> + <filter icon="terp-camera_test" + string="Confirmed" + domain="[('state','=','confirm')]"/> + <filter icon="terp-dialog-close" + string="Done" + domain="[('state','=','done')]"/> + <separator orientation="vertical"/> + <field name="account_id"/> <field name="user_id" /> </group> <newline/> <group expand="1" string="Group By..."> - <filter string="User" name="User_id" icon="terp-personal" context="{'group_by':'user_id'}"/> - <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> - <separator orientation="vertical"/> - <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> - <separator orientation="vertical"/> - <filter string="Type of Invoicing" icon="terp-stock_symbol-selection" context="{'group_by':'to_invoice'}"/> - <separator orientation="vertical"/> - <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/> - <filter string="General Account" icon="terp-folder-orange" context="{'group_by':'general_account_id'}"/> - <separator orientation="vertical"/> - <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> - <separator orientation="vertical"/> - <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> - <separator orientation="vertical"/> - <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> + <filter string="User" name="User_id" icon="terp-personal" context="{'group_by':'user_id'}"/> + <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> + <separator orientation="vertical"/> + <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> + <separator orientation="vertical"/> + <filter string="Type of Invoicing" icon="terp-stock_symbol-selection" context="{'group_by':'to_invoice'}"/> + <separator orientation="vertical"/> + <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/> + <filter string="General Account" icon="terp-folder-orange" context="{'group_by':'general_account_id'}"/> + <separator orientation="vertical"/> + <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> + <separator orientation="vertical"/> + <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> + <separator orientation="vertical"/> + <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> <newline/> <group expand="0" string="Extended options..." groups="base.group_extended"> - <field name="general_account_id"/> - <field name="to_invoice" widget="selection"/> - <separator orientation="vertical"/> - <field name="product_id"/> - <separator orientation="vertical"/> - <field name="department_id" widget="selection"/> - <separator orientation="vertical"/> - <field name="company_id" widget="selection" groups="base.group_multi_company"/> - <newline/> - <field name="date_to"/> - <field name="date_from"/> - </group> + <field name="general_account_id"/> + <field name="to_invoice" widget="selection"/> + <separator orientation="vertical"/> + <field name="product_id"/> + <separator orientation="vertical"/> + <field name="department_id" widget="selection"/> + <separator orientation="vertical"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + <newline/> + <field name="date_to"/> + <field name="date_from"/> + </group> </search> </field> </record> <record id="action_timesheet_report_stat_all" model="ir.actions.act_window"> - <field name="name">Timesheet</field> + <field name="name">Timesheet Sheet Analysis</field> <field name="res_model">timesheet.report</field> <field name="view_type">form</field> <field name="view_mode">tree,graph</field> diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml index e4a9c52a437..f4fe7969790 100644 --- a/addons/l10n_be/account_pcmn_belgium.xml +++ b/addons/l10n_be/account_pcmn_belgium.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="True"> + <data> <!-- account.account.type --> <record id="user_type_view" model="account.account.type"> diff --git a/addons/l10n_be/fiscal_templates.xml b/addons/l10n_be/fiscal_templates.xml index 47376f8c7ab..e40cd6a3a1b 100644 --- a/addons/l10n_be/fiscal_templates.xml +++ b/addons/l10n_be/fiscal_templates.xml @@ -1,23 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> + <data> - <!-- Fiscal Position Templates --> - - <record id="fiscal_position_template_1" model="account.fiscal.position.template"> + <!-- Fiscal Position Templates --> + + <record id="fiscal_position_template_1" model="account.fiscal.position.template"> <field name="name">Régime National</field> <field name="chart_template_id" ref="l10nbe_chart_template"/> - </record> - - <record id="fiscal_position_template_2" model="account.fiscal.position.template"> + </record> + + <record id="fiscal_position_template_2" model="account.fiscal.position.template"> <field name="name">Régime Extra-Communautaire</field> <field name="chart_template_id" ref="l10nbe_chart_template"/> - </record> + </record> - <record id="fiscal_position_template_3" model="account.fiscal.position.template"> + <record id="fiscal_position_template_3" model="account.fiscal.position.template"> <field name="name">Régime Intra-Communautaire</field> <field name="chart_template_id" ref="l10nbe_chart_template"/> - </record> + </record> <!-- Fiscal Position Tax Templates --> @@ -25,77 +25,77 @@ <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_21" /> <field name="tax_dest_id" ref="l10n_be.vat_XO" /> - </record> + </record> <record id="fiscal_position_tax_template_2" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_12" /> <field name="tax_dest_id" ref="l10n_be.vat_XO" /> - </record> + </record> <record id="fiscal_position_tax_template_3" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_6" /> <field name="tax_dest_id" ref="l10n_be.vat_XO" /> - </record> + </record> <record id="fiscal_position_tax_template_4" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_0" /> <field name="tax_dest_id" ref="l10n_be.vat_XO" /> - </record> + </record> <record id="fiscal_position_tax_template_5" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_0_co" /> <field name="tax_dest_id" ref="l10n_be.vat_XO" /> - </record> + </record> <record id="fiscal_position_tax_template_6" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_bsd" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_7" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_12_buy_bsd" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_8" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_6_buy_bsd" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_9" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_0_buy_bsd" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_10" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_mar" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_10_bis" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_ser" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_11" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_12_buy_mar" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_12" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_6_buy_mar" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_13" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="tax_src_id" ref="l10n_be.vat_0_buy_mar" /> <field name="tax_dest_id" ref="l10n_be.vat_XO_buy" /> - </record> + </record> <record id="fiscal_position_tax_template_15" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_21" /> <field name="tax_dest_id" ref="l10n_be.vat_IO" /> - </record> + </record> <record id="fiscal_position_tax_template_15b" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_21_s" /> @@ -105,37 +105,37 @@ <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_12" /> <field name="tax_dest_id" ref="l10n_be.vat_IO" /> - </record> + </record> <record id="fiscal_position_tax_template_17" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_6" /> <field name="tax_dest_id" ref="l10n_be.vat_IO" /> - </record> + </record> <record id="fiscal_position_tax_template_18" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_0" /> <field name="tax_dest_id" ref="l10n_be.vat_IO" /> - </record> + </record> <record id="fiscal_position_tax_template_19" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_0_co" /> <field name="tax_dest_id" ref="l10n_be.vat_IO" /> - </record> + </record> <record id="fiscal_position_tax_template_20" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_bsd" /> <field name="tax_dest_id" ref="l10n_be.vat_IO_buy_21b" /> - </record> + </record> <record id="fiscal_position_tax_template_21" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_ser" /> <field name="tax_dest_id" ref="l10n_be.vat_IO_buy_21s" /> - </record> + </record> <record id="fiscal_position_tax_template_22" model="account.fiscal.position.tax.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="tax_src_id" ref="l10n_be.vat_21_buy_mar" /> <field name="tax_dest_id" ref="l10n_be.vat_IO_buy_21m" /> - </record> + </record> <!-- Fiscal Position Account Templates --> @@ -144,54 +144,54 @@ <field name="position_id" ref="fiscal_position_template_1" /> <field name="account_src_id" ref="l10n_be.a7000" /> <field name="account_dest_id" ref="l10n_be.a_sale" /> - </record> + </record> - <record id="fiscal_position_account_template_3" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_3" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="account_src_id" ref="l10n_be.a7000" /> <field name="account_dest_id" ref="l10n_be.a7001" /> - </record> - - <record id="fiscal_position_account_template_4" model="account.fiscal.position.account.template"> + </record> + + <record id="fiscal_position_account_template_4" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="account_src_id" ref="l10n_be.a_sale" /> <field name="account_dest_id" ref="l10n_be.a7011" /> - </record> + </record> - <record id="fiscal_position_account_template_5" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_5" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="account_src_id" ref="l10n_be.a7020" /> <field name="account_dest_id" ref="l10n_be.a7021" /> - </record> + </record> - <record id="fiscal_position_account_template_6" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_6" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_3" /> <field name="account_src_id" ref="l10n_be.a7050" /> <field name="account_dest_id" ref="l10n_be.a7051" /> - </record> + </record> - <record id="fiscal_position_account_template_7" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_7" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="account_src_id" ref="l10n_be.a7000" /> <field name="account_dest_id" ref="l10n_be.a7002" /> - </record> - - <record id="fiscal_position_account_template_8" model="account.fiscal.position.account.template"> + </record> + + <record id="fiscal_position_account_template_8" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="account_src_id" ref="l10n_be.a_sale" /> <field name="account_dest_id" ref="l10n_be.a7012" /> - </record> + </record> - <record id="fiscal_position_account_template_9" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_9" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="account_src_id" ref="l10n_be.a7020" /> <field name="account_dest_id" ref="l10n_be.a7022" /> - </record> + </record> - <record id="fiscal_position_account_template_10" model="account.fiscal.position.account.template"> + <record id="fiscal_position_account_template_10" model="account.fiscal.position.account.template"> <field name="position_id" ref="fiscal_position_template_2" /> <field name="account_src_id" ref="l10n_be.a7050" /> <field name="account_dest_id" ref="l10n_be.a7052" /> - </record> + </record> </data> </openerp> diff --git a/addons/l10n_ch/zip_code_default.xml b/addons/l10n_ch/zip_code_default.xml index 4608a1fe5b6..a5ff1a51287 100644 --- a/addons/l10n_ch/zip_code_default.xml +++ b/addons/l10n_ch/zip_code_default.xml @@ -1,5 +1,5 @@ <openerp> -<data noupdate="1"> +<data> <record id="ir_values_1001" model="ir.values"> <field name="name">city</field> <field name="key2">zip=1753</field> diff --git a/addons/l10n_ch_chart_c2c_pcg/account.xml b/addons/l10n_ch_chart_c2c_pcg/account.xml index 1db72015516..da21b30e58d 100644 --- a/addons/l10n_ch_chart_c2c_pcg/account.xml +++ b/addons/l10n_ch_chart_c2c_pcg/account.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <openerp> - <data noupdate="True"> + <data> <record id="account_type_view" model="account.account.type"> diff --git a/addons/l10n_ch_chart_c2c_pcg/vat.xml b/addons/l10n_ch_chart_c2c_pcg/vat.xml index de3643b4a8c..0c8bacbb252 100644 --- a/addons/l10n_ch_chart_c2c_pcg/vat.xml +++ b/addons/l10n_ch_chart_c2c_pcg/vat.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> - <data noupdate="1"> + <data> <!-- # Tax Code Configuration --> @@ -530,4 +530,4 @@ <field name="type_tax_use">purchase</field> </record> </data> -</openerp>
\ No newline at end of file +</openerp> diff --git a/addons/l10n_chart_uk_minimal/account_chart.xml b/addons/l10n_chart_uk_minimal/account_chart.xml index 32ee1cdc0df..804568afecc 100644 --- a/addons/l10n_chart_uk_minimal/account_chart.xml +++ b/addons/l10n_chart_uk_minimal/account_chart.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - - <data noupdate="1"> + <data> <!-- Account Templates--> <record id="chart0" model="account.account.template"> @@ -15,14 +14,14 @@ <!-- Balance Sheet --> <record id="bal" model="account.account.template"> - <field name="code">1</field> + <field name="code">1</field> <field name="name">Balance Sheet</field> <field ref="chart0" name="parent_id"/> <field name="type">view</field> <field name="user_type" ref="account_type_view"/> </record> - - <record model="account.account.template" id="assets_view"> + + <record model="account.account.template" id="assets_view"> <field name="name">Assets</field> <field name="code">10</field> <field name="type">view</field> @@ -41,7 +40,7 @@ </record> <record id="fas" model="account.account.template"> - <field name="code">100</field> + <field name="code">100</field> <field name="name">Fixed Assets</field> <field ref="assets_view" name="parent_id"/> <field name="type">view</field> @@ -49,7 +48,7 @@ </record> <record id="xfa" model="account.account.template"> - <field name="code">1000</field> + <field name="code">1000</field> <field name="name">Fixed Asset Account</field> <field ref="fas" name="parent_id"/> <field name="type">other</field> @@ -57,7 +56,7 @@ </record> <record id="nca" model="account.account.template"> - <field name="code">101</field> + <field name="code">101</field> <field name="name">Net Current Assets</field> <field ref="assets_view" name="parent_id"/> <field name="type">view</field> @@ -65,9 +64,9 @@ </record> <record id="cas" model="account.account.template"> - <field name="code">1100</field> + <field name="code">1100</field> <field name="name">Current Assets</field> - <field ref="nca" name="parent_id"/> + <field ref="nca" name="parent_id"/> <field name="type">view</field> <field name="user_type" ref="account_type_view"/> </record> @@ -94,7 +93,7 @@ </record> --> <record id="ova" model="account.account.template"> - <field name="code">11003</field> + <field name="code">11003</field> <field name="name">Output VAT</field> <field ref="cas" name="parent_id"/> <field name="type">other</field> @@ -102,7 +101,7 @@ </record> <record id="bnk" model="account.account.template"> - <field name="code">11004</field> + <field name="code">11004</field> <field name="name">Bank Current Account</field> <field ref="cas" name="parent_id"/> <field name="type">other</field> @@ -118,7 +117,7 @@ </record> <record id="cli" model="account.account.template"> - <field name="code">110</field> + <field name="code">110</field> <field name="name">Current Liabilities</field> <field ref="liabilities_view" name="parent_id"/> <field name="type">view</field> @@ -139,7 +138,7 @@ </record>--> <record id="iva" model="account.account.template"> - <field name="code">1112</field> + <field name="code">1112</field> <field name="name">Input VAT</field> <field ref="cli" name="parent_id"/> <field name="type">other</field> @@ -149,14 +148,14 @@ <!-- Profit and Loss --> <record id="gpf" model="account.account.template"> - <field name="code">2</field> + <field name="code">2</field> <field name="name">Profit and Loss</field> <field ref="chart0" name="parent_id"/> <field name="type">view</field> <field name="user_type" ref="account_type_view"/> </record> - - <record model="account.account.template" id="income_view"> + + <record model="account.account.template" id="income_view"> <field name="name">Income</field> <field name="code">20</field> <field name="type">view</field> @@ -175,7 +174,7 @@ </record> <record id="rev" model="account.account.template"> - <field name="code">200</field> + <field name="code">200</field> <field name="name">Revenue</field> <field ref="income_view" name="parent_id"/> <field name="type">view</field> @@ -195,7 +194,7 @@ </record> --> <record id="cos" model="account.account.template"> - <field name="code">210</field> + <field name="code">210</field> <field name="name">Cost of Sales</field> <field ref="expense_view" name="parent_id"/> <field name="type">view</field> @@ -211,7 +210,7 @@ </record> <record id="ovr" model="account.account.template"> - <field name="code">211</field> + <field name="code">211</field> <field name="name">Overheads</field> <field ref="expense_view" name="parent_id"/> <field name="type">view</field> diff --git a/addons/l10n_chart_uk_minimal/account_tax.xml b/addons/l10n_chart_uk_minimal/account_tax.xml index 42f214e5685..502cea9b0d2 100644 --- a/addons/l10n_chart_uk_minimal/account_tax.xml +++ b/addons/l10n_chart_uk_minimal/account_tax.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - - <data noupdate="True"> + <data> <!-- VAT Code Definitions --> @@ -257,4 +256,4 @@ </record> </data> -</openerp>
\ No newline at end of file +</openerp> diff --git a/addons/l10n_chart_uk_minimal/account_types.xml b/addons/l10n_chart_uk_minimal/account_types.xml index adecc45c228..f2d773236bf 100644 --- a/addons/l10n_chart_uk_minimal/account_types.xml +++ b/addons/l10n_chart_uk_minimal/account_types.xml @@ -1,26 +1,26 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="True"> + <data> <record model="account.account.type" id="account_type_receivable" > - <field name="name">Receivable</field> - <field name="code">receivable</field> - <field name="close_method">unreconciled</field> - </record> + <field name="name">Receivable</field> + <field name="code">receivable</field> + <field name="close_method">unreconciled</field> + </record> - <record model="account.account.type" id="account_type_payable" > - <field name="name">Payable</field> - <field name="code">payable</field> - <field name="close_method">unreconciled</field> - </record> + <record model="account.account.type" id="account_type_payable" > + <field name="name">Payable</field> + <field name="code">payable</field> + <field name="close_method">unreconciled</field> + </record> - <record model="account.account.type" id="account_type_view"> - <field name="name">View</field> - <field name="code">view</field> - <field name="close_method">none</field> - </record> - - <record model="account.account.type" id="acct_type_income_view"> + <record model="account.account.type" id="account_type_view"> + <field name="name">View</field> + <field name="code">view</field> + <field name="close_method">none</field> + </record> + + <record model="account.account.type" id="acct_type_income_view"> <field name="name">Income View</field> <field name="code">view</field> <field name="report_type">income</field> @@ -40,44 +40,44 @@ <field name="code">liability</field> <field name="report_type">liability</field> </record> - <record model="account.account.type" id="account_type_income" > - <field name="name">Income</field> - <field name="code">income</field> - <field name="close_method">none</field> - <field name="report_type">income</field> - </record> + <record model="account.account.type" id="account_type_income" > + <field name="name">Income</field> + <field name="code">income</field> + <field name="close_method">none</field> + <field name="report_type">income</field> + </record> - <record model="account.account.type" id="account_type_expense"> - <field name="name">Expense</field> - <field name="code">expense</field> - <field name="close_method">none</field> - <field name="report_type">expense</field> - </record> + <record model="account.account.type" id="account_type_expense"> + <field name="name">Expense</field> + <field name="code">expense</field> + <field name="close_method">none</field> + <field name="report_type">expense</field> + </record> - <record model="account.account.type" id="account_type_tax"> - <field name="name">Tax</field> - <field name="code">tax</field> - <field name="close_method">unreconciled</field> - </record> + <record model="account.account.type" id="account_type_tax"> + <field name="name">Tax</field> + <field name="code">tax</field> + <field name="close_method">unreconciled</field> + </record> - <record model="account.account.type" id="account_type_cash"> - <field name="name">Cash</field> - <field name="code">cash</field> - <field name="close_method">balance</field> - </record> + <record model="account.account.type" id="account_type_cash"> + <field name="name">Cash</field> + <field name="code">cash</field> + <field name="close_method">balance</field> + </record> - <record model="account.account.type" id="account_type_asset"> - <field name="name">Asset</field> - <field name="code">asset</field> - <field name="close_method">balance</field> - <field name="report_type">asset</field> - </record> + <record model="account.account.type" id="account_type_asset"> + <field name="name">Asset</field> + <field name="code">asset</field> + <field name="close_method">balance</field> + <field name="report_type">asset</field> + </record> - <record model="account.account.type" id="account_type_equity"> - <field name="name">Equity</field> - <field name="code">equity</field> - <field name="close_method">balance</field> - </record> + <record model="account.account.type" id="account_type_equity"> + <field name="name">Equity</field> + <field name="code">equity</field> + <field name="close_method">balance</field> + </record> </data> </openerp> diff --git a/addons/l10n_fr/fiscal_templates_fr.xml b/addons/l10n_fr/fiscal_templates_fr.xml index 01a7beefc90..d3380581cba 100644 --- a/addons/l10n_fr/fiscal_templates_fr.xml +++ b/addons/l10n_fr/fiscal_templates_fr.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> + <data> <!-- = = = = = = = = = = = = = = = --> <!-- Fiscal Position Templates --> diff --git a/addons/l10n_fr/l10n_fr_pcg_taxes.xml b/addons/l10n_fr/l10n_fr_pcg_taxes.xml index 3d1261df5f5..11f6465096f 100644 --- a/addons/l10n_fr/l10n_fr_pcg_taxes.xml +++ b/addons/l10n_fr/l10n_fr_pcg_taxes.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="True"> - + <data> <!-- Définition des taux de TVA et des Tax Codes diff --git a/addons/l10n_fr/pcg.xml b/addons/l10n_fr/pcg.xml index 545937b8390..9f45b927ffd 100644 --- a/addons/l10n_fr/pcg.xml +++ b/addons/l10n_fr/pcg.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <openerp> - <data noupdate="1"> + <data> <!-- Plan comptable général pour la France. diff --git a/addons/l10n_fr/tax.xml b/addons/l10n_fr/tax.xml index 8632ede419c..154765e9365 100644 --- a/addons/l10n_fr/tax.xml +++ b/addons/l10n_fr/tax.xml @@ -1,9 +1,9 @@ <?xml version="1.0"?> <openerp> - <data noupdate="1"> + <data> <!-- - TVA : + TVA : France métropolitaine : taux normal = 19,6% Réduit = 5,5% Département Outre Mer : 8,5% 2,1% --> diff --git a/addons/l10n_in/i18n/et.po b/addons/l10n_in/i18n/et.po new file mode 100644 index 00000000000..40b02c3415b --- /dev/null +++ b/addons/l10n_in/i18n/et.po @@ -0,0 +1,95 @@ +# Estonian 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-11-25 15:28+0000\n" +"PO-Revision-Date: 2010-06-25 17:49+0000\n" +"Last-Translator: lyyser <logard.1961@gmail.com>\n" +"Language-Team: Estonian <et@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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: l10n_chart_in +#: model:ir.module.module,description:l10n_chart_in.module_meta_information +msgid "" +"\n" +" Indian Accounting : chart of Account\n" +" " +msgstr "" + +#. module: l10n_chart_in +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "Viga ! Sa ei saa luua rekrusiivseid kontomalle." + +#. module: l10n_chart_in +#: model:account.journal,name:l10n_chart_in.opening_journal +msgid "Opening Journal" +msgstr "" + +#. module: l10n_chart_in +#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Genereeri kontoplaan plaanimallist. Sul palutakse valida ettevõte, " +"plaanimall, numbrite arv sinu kontode ja pangakontode koodide " +"genereerimiseks, valuuta päevikute loomiseks. Nii genereeritakse puhas " +"koopia plaanimallist.\n" +"\tSee on sama nõustaja mis käivitub asukohast " +"Finantsjuhtimine/Seadistus/Finantsraamatupidamine/Mallid/Tekita kontoplaan " +"kasutades plaani malli." + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_liability1 +msgid "Liability" +msgstr "Kohustus" + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_asset1 +msgid "Asset" +msgstr "Vara" + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_closed1 +msgid "Closed" +msgstr "Suletud" + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_income1 +msgid "Income" +msgstr "Tulu" + +#. module: l10n_chart_in +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "Viga ! sa ei saa luua rekrusiivseid maksukoode." + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_expense1 +msgid "Expense" +msgstr "Kulu" + +#. module: l10n_chart_in +#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information +msgid "Indian Chart of Account" +msgstr "" + +#. module: l10n_chart_in +#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1 +msgid "View" +msgstr "Vaade" diff --git a/addons/mail_gateway/__init__.py b/addons/mail_gateway/__init__.py index 7380514e45a..6526541a068 100644 --- a/addons/mail_gateway/__init__.py +++ b/addons/mail_gateway/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). # @@ -15,11 +15,12 @@ # 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/>. # ############################################################################## import mail_gateway +import res_partner # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail_gateway/__openerp__.py b/addons/mail_gateway/__openerp__.py index 1584067ea38..aa08c7f190d 100644 --- a/addons/mail_gateway/__openerp__.py +++ b/addons/mail_gateway/__openerp__.py @@ -32,6 +32,7 @@ 'init_xml': [], 'update_xml': [ "mail_gateway_view.xml", + "res_partner_view.xml", 'security/ir.model.access.csv' ], 'demo_xml': [], diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py index edb723a3ba0..3ccde181883 100644 --- a/addons/mail_gateway/mail_gateway.py +++ b/addons/mail_gateway/mail_gateway.py @@ -28,6 +28,9 @@ from email.header import decode_header import base64 import re from tools.translate import _ +import logging + +_logger = logging.getLogger('mailgate') class mailgate_thread(osv.osv): ''' @@ -35,7 +38,6 @@ class mailgate_thread(osv.osv): ''' _name = 'mailgate.thread' _description = 'Mailgateway Thread' - _rec_name = 'thread' _columns = { 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True)]), @@ -46,12 +48,24 @@ class mailgate_thread(osv.osv): raise Exception, _('Method is not implemented') def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context={}): - raise Exception, _('Method is not implemented') + raise Exception, _('Method is not implemented') - def emails_get(self, cr, uid, ids, context=None): - raise Exception, _('Method is not implemented') + def message_followers(self, cr, uid, ids, context=None): + """ Get a list of emails of the people following this thread + """ + res = {} + if isinstance(ids, (str, int, long)): + ids = [long(ids)] + for thread in self.browse(cr, uid, ids, context=context): + l=[] + for message in thread.message_ids: + l.append((message.user_id and message.user_id.email) or '') + l.append(message.email_from or '') + l.append(message.email_cc or '') + res[thread.id] = l + return res - def msg_send(self, cr, uid, id, *args, **argv): + def msg_send(self, cr, uid, id, *args, **argv): raise Exception, _('Method is not implemented') def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, \ @@ -93,7 +107,7 @@ class mailgate_thread(osv.osv): if history: for att in attach: attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])})) - + data = { 'name': subject or 'History', 'history': True, @@ -125,7 +139,7 @@ class mailgate_message(osv.osv): _description = 'Mailgateway Message' _order = 'id desc' _columns = { - 'name':fields.char('Message', size=64), + 'name':fields.char('Subject', size=128), 'model': fields.char('Object Name', size=128), 'res_id': fields.integer('Resource ID'), 'ref_id': fields.char('Reference Id', size=256, readonly=True, help="Message Id in Email Server.", select=True), @@ -150,8 +164,10 @@ class mailgate_tool(osv.osv_memory): _name = 'email.server.tools' _description = "Email Server Tools" - + def _to_decode(self, s, charsets): + if not s: + return s for charset in charsets: if charset: try: @@ -164,19 +180,11 @@ class mailgate_tool(osv.osv_memory): if text: text = decode_header(text.replace('\r', '')) return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), text or [])) - - def to_email(self, text): - _email = re.compile(r'.*<.*@.*\..*>', re.UNICODE) - def record(path): - eml = path.group() - index = eml.index('<') - eml = eml[index:-1].replace('<', '').replace('>', '') - return eml - - bits = _email.sub(record, text) - return bits - - def history(self, cr, uid, model, res_ids, msg, attach): + + def to_email(self,text): + return re.findall(r'([^ ,<@]+@[^> ,]+)',text) + + def history(self, cr, uid, model, res_ids, msg, attach, context=None): """This function creates history for mails fetched @param self: The object pointer @param cr: the current row, from the database cursor, @@ -206,67 +214,42 @@ class mailgate_tool(osv.osv_memory): 'user_id': uid, 'attachment_ids': [(6, 0, attach)] } - msg_id = msg_pool.create(cr, uid, msg_data) + msg_id = msg_pool.create(cr, uid, msg_data, context=context) return True - - def email_send(self, cr, uid, model, res_id, msg, from_email=False, email_default=False): - """This function Sends return email on submission of Fetched email in OpenERP database - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param model: OpenObject Model + + def email_forward(self, cr, uid, model, res_ids, msg, email_error=False): + """Sends an email to all people following the thread @param res_id: Id of the record of OpenObject model created from the Email details @param msg: Email details - @param email_default: Default Email address in case of any Problem + @param email_error: Default Email address in case of any Problem """ - history_pool = self.pool.get('mailgate.message') - model_pool = self.pool.get(model) - from_email = from_email or tools.config.get('email_from', None) - message = email.message_from_string(str(msg)) - subject = "[%s] %s" %(res_id, self._decode_header(message['Subject'])) - #msg_mails = [] - #mails = [self._decode_header(message['From']), self._decode_header(message['To'])] - #mails += self._decode_header(message.get('Cc', '')).split(',') - - values = {} - if hasattr(model_pool, 'emails_get'): - values = model_pool.emails_get(cr, uid, [res_id]) - emails = values.get(res_id, {}) - - priority = emails.get('priority', [3])[0] - em = emails['user_email'] + emails['email_from'] + emails['email_cc'] - msg_mails = map(self.to_email, filter(None, em)) - - #mm = [self._decode_header(message['From']), self._decode_header(message['To'])] - #mm += self._decode_header(message.get('Cc', '')).split(',') - - #msg_mails = map(self.to_email, filter(None, mm)) - - encoding = message.get_content_charset() - message['body'] = message.get_payload(decode=True) - if encoding: - message['body'] = tools.ustr(message['body'].decode(encoding)) - - body = _(""" -Hello %s, - - Your Request ID: %s - -Thanks - --------- Original Message -------- -%s -""") %(self._decode_header(message['From']), res_id, message['body']) - res = None - try: - res = tools.email_send(from_email, msg_mails, subject, body, openobject_id=res_id) - except Exception, e: - if email_default: - temp_msg = '[%s] %s'%(res_id, self._decode_header(message['Subject'])) - del message['Subject'] - message['Subject'] = '[OpenERP-FetchError] %s' %(temp_msg) - tools.email_send(from_email, email_default, message.get('Subject'), message.get('body'), openobject_id=res_id) - return res + for res_id in res_ids: + history_pool = self.pool.get('mailgate.message') + message = email.message_from_string(tools.ustr(msg).encode('utf-8')) + encoding = message.get_content_charset() + message['body'] = message.get_payload(decode=True) + if encoding: + message['body'] = self._to_decode(message['body'], [encoding]) + subject = message['Subject'] + + from_email = self._decode_header(message['From']) + + model_pool = self.pool.get(model) + message_followers = model_pool.message_followers(cr, uid, [res_id])[res_id] + message_followers_emails = self.to_email(','.join(message_followers)) + + message_recipients = self.to_email(','.join([from_email,self._decode_header(message['To']),self._decode_header(message['Cc'])]) ) + message_forward = [i for i in message_followers_emails if (i and (i not in message_recipients))] + + res = None + try: + res = tools.email_send(from_email, message_forward, subject, body, openobject_id=res_id) + except Exception, e: + if email_error: + temp_msg = '[%s] %s'%(res_id, message['Subject']) + del message['Subject'] + message['Subject'] = '[OpenERP-Error] %s' %(temp_msg) + tools.email_send(from_email, email_error, message.get('Subject'), message.get('body'), openobject_id=res_id) def process_email(self, cr, uid, model, message, attach=True, context=None): """This function Processes email and create record for given OpenERP model @@ -275,25 +258,24 @@ Thanks @param uid: the current user’s ID for security checks, @param model: OpenObject Model @param message: Email details - @param attach: Email attachments + @param attach: Email attachments @param context: A standard dictionary for contextual values""" - model_pool = self.pool.get(model) if not context: context = {} res_id = False # Create New Record into particular model - def create_record(msg): + def create_record(msg): if hasattr(model_pool, 'message_new'): res_id = model_pool.message_new(cr, uid, msg, context) else: data = { - 'name': msg.get('subject'), - 'email_from': msg.get('from'), - 'email_cc': msg.get('cc'), - 'user_id': False, - 'description': msg.get('body'), - 'state' : 'draft', + 'name': msg.get('subject'), + 'email_from': msg.get('from'), + 'email_cc': msg.get('cc'), + 'user_id': False, + 'description': msg.get('body'), + 'state' : 'draft', } data.update(self.get_partner(cr, uid, msg.get('from'), context=context)) res_id = model_pool.create(cr, uid, data, context=context) @@ -302,28 +284,35 @@ Thanks if attach: for attachment in msg.get('attachments', []): data_attach = { - 'name': attachment, - 'datas': binascii.b2a_base64(str(attachments.get(attachment))), - 'datas_fname': attachment, - 'description': 'Mail attachment', - 'res_model': model, - 'res_id': res_id, + 'name': attachment, + 'datas': binascii.b2a_base64(str(attachments.get(attachment))), + 'datas_fname': attachment, + 'description': 'Mail attachment', + 'res_model': model, + 'res_id': res_id, } - att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach)) - + att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach)) + return res_id history_pool = self.pool.get('mailgate.message') - msg_txt = email.message_from_string(message) + + # Warning: message_from_string doesn't always work correctly on unicode, + # we must use utf-8 strings here :-( + msg_txt = email.message_from_string(tools.ustr(message).encode('utf-8')) message_id = msg_txt.get('Message-ID', False) msg = {} + if not message_id: - return False + # Very unusual situation, be we should be fault-tolerant here + message_id = time.time() + msg_txt['Message-ID'] = message_id + _logger.info('Message without message-id, generating a random one: %s', message_id) fields = msg_txt.keys() msg['id'] = message_id - msg['message-id'] = message_id - + msg['message-id'] = message_id + if 'Subject' in fields: msg['subject'] = self._decode_header(msg_txt.get('Subject')) @@ -349,19 +338,19 @@ Thanks msg['encoding'] = msg_txt.get('Content-Transfer-Encoding') if 'References' in fields: - msg['references'] = msg_txt.get('References') + msg['references'] = msg_txt.get('References') if 'X-Priority' in fields: msg['priority'] = msg_txt.get('X-priority', '3 (Normal)').split(' ')[0] - if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', None): + if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', ''): encoding = msg_txt.get_content_charset() msg['body'] = msg_txt.get_payload(decode=True) if encoding: msg['body'] = tools.ustr(msg['body']) attachments = {} - if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', None): + if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''): body = "" counter = 1 for part in msg_txt.walk(): @@ -390,14 +379,13 @@ Thanks res = part.get_payload(decode=True) if encoding: res = tools.ustr(res) - body += res msg['body'] = body msg['attachments'] = attachments res_ids = [] new_res_id = False - if msg.get('references', False): + if msg.get('references'): references = msg.get('references') if '\r\n' in references: references = msg.get('references').split('\r\n') @@ -416,27 +404,29 @@ Thanks res_id = int(res_id) res_ids.append(res_id) model_pool = self.pool.get(model) - + vals = {} if hasattr(model_pool, 'message_update'): model_pool.message_update(cr, uid, [res_id], vals, msg, context=context) - + if not len(res_ids): new_res_id = create_record(msg) res_ids = [new_res_id] - # Store messages + # Store messages + context.update({'model' : model}) if hasattr(model_pool, '_history'): - model_pool._history(cr, uid, res_ids, _('Receive'), history=True, - subject = msg.get('subject'), - email = msg.get('to'), - details = msg.get('body'), - email_from = msg.get('from'), - message_id = msg.get('message-id'), + model_pool._history(cr, uid, res_ids, _('Receive'), history=True, + subject = msg.get('subject'), + email = msg.get('to'), + details = msg.get('body'), + email_from = msg.get('from'), + message_id = msg.get('message-id'), references = msg.get('references', False), - attach = msg.get('attachments', {}).items(), - context = {'model' : model}) + attach = msg.get('attachments', {}).items(), + context = context) else: - self.history(cr, uid, model, res_ids, msg, att_ids) + self.history(cr, uid, model, res_ids, msg, att_ids, context=context) + self.email_forward(cr, uid, model, res_ids, message) return new_res_id def get_partner(self, cr, uid, from_email, context=None): @@ -448,10 +438,10 @@ Thanks """ address_pool = self.pool.get('res.partner.address') res = { - 'partner_address_id': False, + 'partner_address_id': False, 'partner_id': False } - from_email = self.to_email(from_email) + from_email = self.to_email(from_email)[0] address_ids = address_pool.search(cr, uid, [('email', '=', from_email)]) if address_ids: address = address_pool.browse(cr, uid, address_ids[0]) @@ -461,5 +451,3 @@ Thanks return res mailgate_tool() - - diff --git a/addons/mail_gateway/mail_gateway_view.xml b/addons/mail_gateway/mail_gateway_view.xml index 09a24f92772..c73d62b08ad 100644 --- a/addons/mail_gateway/mail_gateway_view.xml +++ b/addons/mail_gateway/mail_gateway_view.xml @@ -8,28 +8,28 @@ <field name="arch" type="xml"> <form string="mailgate message"> <group colspan="4" col="6"> - <field name="name" string="Subject" required="1" select="1"/> - <field name="date" required="1" select="1"/> - <field name="user_id" string="Responsible" select="1"/> - <field name="partner_id" readonly="1" /> - </group> + <field name="name" string="Subject" required="1" select="1"/> + <field name="date" required="1" select="1"/> + <field name="user_id" string="Responsible" select="1"/> + <field name="partner_id" readonly="1" /> + </group> <notebook colspan="4"> - <page string="Details"> - <group col="2" colspan="2"> - <separator string="Email Details" colspan="4"/> - <field name="email_from" /> - <field name="email_to" /> - <field name="email_cc" /> - <field name="email_bcc" groups="base.group_extended"/> - </group> - <group col="2" colspan="2"> + <page string="Details"> + <group col="2" colspan="2"> + <separator string="Email Details" colspan="4"/> + <field name="email_from" /> + <field name="email_to" /> + <field name="email_cc" /> + <field name="email_bcc" groups="base.group_extended"/> + </group> + <group col="2" colspan="2"> <separator string="Message Details" colspan="4"/> <field name="model" readonly="1"/> <field name="res_id" readonly="1"/> <field name="message_id" /> <field name="ref_id" /> </group> - <separator string="Description" colspan="4"/> + <separator string="Description" colspan="4"/> <field name="description" nolabel="1" colspan="4" /> </page> <page string="Attachments"> @@ -46,7 +46,7 @@ <field name="model">mailgate.message</field> <field name="type">tree</field> <field name="arch" type="xml"> - <tree string="Mailgateway Message"> + <tree string="Emails"> <field name="date" /> <field name="name" string="Subject"/> <field name="email_from" string="From"/> @@ -60,7 +60,7 @@ <field name="model">mailgate.message</field> <field name="type">search</field> <field name="arch" type="xml"> - <search string="Mailgateway Message Search"> + <search string="Email Search"> <field name="name" string="Subject"/> <field name="date" /> <field name="user_id" /> @@ -81,25 +81,25 @@ </group> <separator string="Logs" colspan="4"/> <field name="log_ids" nolabel="1" colspan="4" domain="[('history', '=', True)]"> - <tree string="Mailgateway Logs"> - <field name="name" select="1" /> - <field name="date" /> - </tree> - <form string="Mailgate Logs"> - <field name="name" /> - <field name="date" /> - <field name="user_id" /> - <field name="message_id" /> - <notebook colspan="4"> - <page string="Email Details"> - <group col="4" colspan="4"> - <separator string="Email Details" colspan="4"/> - <field name="email_from" /> - <field name="email_to" /> - <field name="email_cc" /> - <field name="email_bcc" /> - </group> - <separator string="Description" colspan="4"/> + <tree string="Mailgateway Logs"> + <field name="name" select="1" /> + <field name="date" /> + </tree> + <form string="Mailgate Logs"> + <field name="name" /> + <field name="date" /> + <field name="user_id" /> + <field name="message_id" /> + <notebook colspan="4"> + <page string="Email Details"> + <group col="4" colspan="4"> + <separator string="Email Details" colspan="4"/> + <field name="email_from" /> + <field name="email_to" /> + <field name="email_cc" /> + <field name="email_bcc" /> + </group> + <separator string="Description" colspan="4"/> <field name="description" nolabel="1" colspan="4" /> </page> <page string="Attachments"> @@ -154,9 +154,9 @@ </field> </record> - <!-- Mailgateway message action--> + <!-- Emails action--> <record model="ir.actions.act_window" id="action_view_mailgate_message"> - <field name="name">Mailgateway Messages</field> + <field name="name">Emails</field> <field name="res_model">mailgate.message</field> <field name="view_mode">tree,form</field> <field name="view_type">form</field> @@ -165,29 +165,29 @@ </record> <record model="ir.actions.act_window" id="action_view_mailgate_thread"> - <field name="name">Mailgateway Threads</field> - <field name="res_model">mailgate.thread</field> - <field name="view_mode">tree,form</field> - <field name="view_type">form</field> - <field name="view_id" ref="view_mailgate_thread_tree"/> - </record> + <field name="name">Mailgateway Threads</field> + <field name="res_model">mailgate.thread</field> + <field name="view_mode">tree,form</field> + <field name="view_type">form</field> + <field name="view_id" ref="view_mailgate_thread_tree"/> + </record> - <record model="ir.actions.act_window.view" id="action_view_mailgate_thread_view1"> - <field name="sequence" eval="1"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_mailgate_thread_tree"/> - <field name="act_window_id" ref="action_view_mailgate_thread"/> - </record> - <record model="ir.actions.act_window.view" id="action_view_mailgate_thread_view2"> - <field name="sequence" eval="2"/> - <field name="view_mode">form</field> - <field name="view_id" ref="view_mailgate_thread_form"/> - <field name="act_window_id" ref="action_view_mailgate_thread"/> - </record> + <record model="ir.actions.act_window.view" id="action_view_mailgate_thread_view1"> + <field name="sequence" eval="1"/> + <field name="view_mode">tree</field> + <field name="view_id" ref="view_mailgate_thread_tree"/> + <field name="act_window_id" ref="action_view_mailgate_thread"/> + </record> + <record model="ir.actions.act_window.view" id="action_view_mailgate_thread_view2"> + <field name="sequence" eval="2"/> + <field name="view_mode">form</field> + <field name="view_id" ref="view_mailgate_thread_form"/> + <field name="act_window_id" ref="action_view_mailgate_thread"/> + </record> - <!-- Mailgateway message action--> + <!-- Emailsaction--> <record model="ir.actions.act_window" id="action_view_mailgate_message"> - <field name="name">Mailgateway Messages</field> + <field name="name">Emails</field> <field name="res_model">mailgate.message</field> <field name="view_mode">tree,form</field> <field name="view_type">form</field> @@ -209,7 +209,7 @@ </record> <menuitem id="base.menu_base_config_mail" name="Mail" parent="base.menu_base_config" sequence="10"/> - <menuitem id="menu_mailgate_message" name="Mailgateway Messages" action="action_view_mailgate_message" + <menuitem id="menu_mailgate_message" name="Emails" action="action_view_mailgate_message" parent="base.menu_base_config_mail" sequence="5"/> <act_window domain="[('partner_id', '=', active_id), ('history', '=', True)]" diff --git a/addons/mail_gateway/res_partner.py b/addons/mail_gateway/res_partner.py new file mode 100644 index 00000000000..54bed6a5b56 --- /dev/null +++ b/addons/mail_gateway/res_partner.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 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 osv import fields,osv + +class res_partner(osv.osv): + """ Inherits partner and adds CRM information in the partner form """ + _inherit = 'res.partner' + _columns = { + 'emails': fields.one2many('mailgate.message', 'partner_id',\ + 'Emails', readonly=True), + } + +res_partner() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail_gateway/res_partner_view.xml b/addons/mail_gateway/res_partner_view.xml new file mode 100644 index 00000000000..3cb1bb7fe5a --- /dev/null +++ b/addons/mail_gateway/res_partner_view.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<openerp> + <data> + + <!-- Partners inherited form --> + + <record id="view_emails_partner_info_form" model="ir.ui.view"> + <field name="name">res.partner.emails.info.inherit</field> + <field name="model">res.partner</field> + <field name="type">form</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <page string="History" position="inside"> + <field name="emails" colspan="4" nolabel="1"/> + </page> + </field> + </record> + </data> +</openerp> + diff --git a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py index f294c819c78..166e1e8781f 100755 --- a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py +++ b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). # Copyright (C) 2010-TODAY OpenERP S.A. (http://www.openerp.com) @@ -17,7 +17,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/> # ########################################################################################### @@ -38,7 +38,7 @@ 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_default, dbname, host, port): self.rpc = rpc_proxy(uid, password, host=host, port=port, dbname=dbname) try: self.model_id = int(model) @@ -46,33 +46,26 @@ class email_parser(object): except: self.model_id = self.rpc('ir.model', 'search', [('model', '=', model)])[0] self.model = str(model) - self.email = email self.email_default = email_default - - - + def parse(self, message): try: res_id = self.rpc('email.server.tools', 'process_email', self.model, message) except Exception, e: + logger = logging.getLogger('mail-gateway') + logger.warning('Failed to process incoming email. Source of the failed mail is available at debug level.', exc_info=True) + logger.debug('Source of the mail that failed to parse:', message) res_id = False -# Reply mail - if res_id: - self.rpc('email.server.tools', 'email_send', self.model, res_id, message, self.email, self.email_default) - - return res_id - if __name__ == '__main__': parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.0') - group = optparse.OptionGroup(parser, "Note", + group = optparse.OptionGroup(parser, "Note", "This program parse a mail from standard input and communicate " "with the Open ERP server for case management in the CRM module.") parser.add_option_group(group) parser.add_option("-u", "--user", dest="userid", help="ID of the user in Open ERP", default=1, type='int') parser.add_option("-p", "--password", dest="password", help="Password of the user in Open ERP", default='admin') - parser.add_option("-e", "--email", dest="email", help="Email address used in the From field of outgoing messages") parser.add_option("-o", "--model", dest="model", help="Name or ID of crm model", default="crm.lead") parser.add_option("-m", "--default", dest="default", help="Default eMail in case of any trouble.", default=None) parser.add_option("-d", "--dbname", dest="dbname", help="Database name (default: terp)", default='terp') @@ -83,10 +76,10 @@ if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") - parser = email_parser(options.userid, options.password, options.model, options.email, options.default, dbname=options.dbname, host=options.host, port=options.port) + parser = email_parser(options.userid, options.password, options.model, options.default, dbname=options.dbname, host=options.host, port=options.port) msg_txt = sys.stdin.read() parser.parse(msg_txt) - + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py index 6db46333985..e3890ffe8f6 100644 --- a/addons/marketing/__openerp__.py +++ b/addons/marketing/__openerp__.py @@ -30,9 +30,10 @@ 'website': 'http://www.openerp.com', 'init_xml': [], 'update_xml': [ - 'marketing_view.xml', - 'security/ir.model.access.csv' - ], + 'security/marketing_security.xml', + 'security/ir.model.access.csv', + 'marketing_view.xml' + ], 'demo_xml': [], 'installable': True, 'active': False, diff --git a/addons/marketing/marketing_view.xml b/addons/marketing/marketing_view.xml index 64ea6111bd5..a3288fb471f 100644 --- a/addons/marketing/marketing_view.xml +++ b/addons/marketing/marketing_view.xml @@ -1,8 +1,9 @@ <?xml version="1.0"?> <openerp> - <data> + <data> - <menuitem name="Marketing" icon="terp-crm" id="marketing_menu" sequence="17"/> + <menuitem name="Marketing" icon="terp-crm" id="marketing_menu" sequence="17" + groups="group_marketing_user"/> <record id="view_marketing_installer" model="ir.ui.view"> <field name="name">marketing.installer.view</field> diff --git a/addons/marketing/security/marketing_security.xml b/addons/marketing/security/marketing_security.xml new file mode 100644 index 00000000000..232b3ecce79 --- /dev/null +++ b/addons/marketing/security/marketing_security.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> +<data> + + <record id="group_marketing_user" model="res.groups"> + <field name="name">Marketing / User</field> + </record> + +</data> +</openerp> diff --git a/addons/marketing_campaign/__init__.py b/addons/marketing_campaign/__init__.py index d37d8604380..23796d1baaf 100644 --- a/addons/marketing_campaign/__init__.py +++ b/addons/marketing_campaign/__init__.py @@ -20,6 +20,7 @@ ############################################################################## import marketing_campaign +import res_partner import report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py index 16e45a36c96..1044030df7e 100644 --- a/addons/marketing_campaign/__openerp__.py +++ b/addons/marketing_campaign/__openerp__.py @@ -24,7 +24,7 @@ "name" : "", "version" : "1.1", "depends" : ["marketing", - "crm", + "crm", "document", "email_template" ], @@ -42,8 +42,9 @@ are dynamic and multi-channels. The process: 'init_xml': [], 'update_xml': [ 'marketing_campaign_view.xml', - 'marketing_campaign_data.xml', - 'marketing_campaign_workflow.xml', + 'marketing_campaign_data.xml', + 'marketing_campaign_workflow.xml', + 'res_partner_view.xml', 'report/campaign_analysis_view.xml', "security/marketing_campaign_security.xml", "security/ir.model.access.csv" diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index 386e5639dd7..a9f898f3270 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -50,8 +50,8 @@ this campaign to be run"), ('manual', 'With Manual Confirmation'), ('active', 'Normal')], 'Mode', required=True, help= \ -"""Test - It creates and process all the workitems directly (without waiting for the delay on transitions) but do not send emails or produce reports. -Test in Realtime - It creates and process all the workitems directly but do not send emails or produce reports. +"""Test - It creates and process all the activities directly (without waiting for the delay on transitions) but do not send emails or produce reports. +Test in Realtime - It creates and process all the activities directly but do not send emails or produce reports. With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually. Normal - the campaign runs normally and automatically sends all emails and reports"""), 'state': fields.selection([('draft', 'Draft'), @@ -289,7 +289,9 @@ class marketing_campaign_activity(osv.osv): context = {} server_obj = self.pool.get('ir.actions.server') context['active_id'] = workitem.res_id - return server_obj.run(cr, uid, [activity.server_action_id.id], context) + res = server_obj.run(cr, uid, [activity.server_action_id.id], context) + #server action return False if the action is perfomed except client_action,other and python code + return res==False and True or res def process(self, cr, uid, act_id, wi_id, context={}): activity = self.browse(cr, uid, act_id) diff --git a/addons/marketing_campaign/marketing_campaign_data.xml b/addons/marketing_campaign/marketing_campaign_data.xml index 81402dd73c2..42ed4d12118 100644 --- a/addons/marketing_campaign/marketing_campaign_data.xml +++ b/addons/marketing_campaign/marketing_campaign_data.xml @@ -5,7 +5,7 @@ <!-- Cron --> <record model="ir.cron" id="ir_cron_marketing_campaign_every_hour"> - <field name="name">Check Workitem</field> + <field name="name">Check Marketing Campaign Activities</field> <field name="interval_number">1</field> <field name="interval_type">hours</field> <field name="numbercall">-1</field> diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml index 62cb4a9cf50..d7d5cfe22d4 100644 --- a/addons/marketing_campaign/marketing_campaign_view.xml +++ b/addons/marketing_campaign/marketing_campaign_view.xml @@ -2,6 +2,8 @@ <openerp> <data> + <menuitem name="Configuration" id="menu_marketing_configuration" parent="marketing.marketing_menu" sequence="1"/> + <!-- ====================== Marketing Campaign @@ -360,7 +362,7 @@ <field name="model">marketing.campaign.workitem</field> <field name="type">tree</field> <field name="arch" type="xml"> - <tree string="Workitems"> + <tree string="Marketing Campaign Activities"> <field name="segment_id"/> <field name="activity_id" /> <field name="res_name" /> @@ -379,7 +381,7 @@ <field name="model">marketing.campaign.workitem</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Workitem"> + <form string="Marketing Campaign Activities"> <group colspan="4" col="6"> <group colspan="2" col="2"> <separator string="Campaign Step" colspan="2"/> @@ -419,7 +421,7 @@ <field name="model">marketing.campaign.workitem</field> <field name="type">search</field> <field name="arch" type="xml"> - <search string="Workitems"> + <search string="Marketing Campaign Activities"> <filter icon="terp-gtk-go-back-rtl" string="To Do" name = "todo" domain="[('state','=','todo')]"/> <filter icon="terp-camera_test" string="In Progress" domain="[('state','=','inprogress')]"/> <filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/> @@ -441,7 +443,7 @@ </record> <record model="ir.actions.act_window" id="action_marketing_campaign_workitem"> - <field name="name">Workitems</field> + <field name="name">Campaign Activities</field> <field name="type">ir.actions.act_window</field> <field name="res_model">marketing.campaign.workitem</field> <field name="view_type">form</field> diff --git a/addons/marketing_campaign/marketing_campaign_workflow.xml b/addons/marketing_campaign/marketing_campaign_workflow.xml index a31515efd58..6203bd80dab 100644 --- a/addons/marketing_campaign/marketing_campaign_workflow.xml +++ b/addons/marketing_campaign/marketing_campaign_workflow.xml @@ -10,7 +10,7 @@ <field name="on_create">True</field> </record> - <!-- Activity --> + <!-- Activity --> <record id="act_marketing_campaign_draft" model="workflow.activity"> <field name="wkf_id" ref="wkf_marketing_campaign"/> <field name="flow_start">True</field> @@ -39,7 +39,7 @@ <field name="action">state_cancel_set()</field> </record> - <!-- Transition --> + <!-- Transition --> <record id="trans_marketing_campaign_draft_running" model="workflow.transition"> <field name="act_from" ref="act_marketing_campaign_draft"/> <field name="act_to" ref="act_marketing_campaign_running"/> @@ -66,7 +66,7 @@ <field name="on_create">True</field> </record> - <!-- Activity --> + <!-- Activity --> <record id="act_marketing_campaign_segment_draft" model="workflow.activity"> <field name="wkf_id" ref="wkf_marketing_campaign_segment"/> <field name="flow_start">True</field> @@ -95,7 +95,7 @@ <field name="action">state_cancel_set()</field> </record> - <!-- Transition --> + <!-- Transition --> <record id="trans_marketing_campaign_segment_draft_running" model="workflow.transition"> <field name="act_from" ref="act_marketing_campaign_segment_draft"/> <field name="act_to" ref="act_marketing_campaign_segment_running"/> diff --git a/addons/marketing_campaign/res_partner.py b/addons/marketing_campaign/res_partner.py new file mode 100644 index 00000000000..2ec92522d6a --- /dev/null +++ b/addons/marketing_campaign/res_partner.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 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 osv import fields,osv + +class res_partner(osv.osv): + """ Inherits partner and adds CRM information in the partner form """ + _inherit = 'res.partner' + + _columns = { + 'workitem_ids': fields.one2many('marketing.campaign.workitem', 'partner_id',\ + 'Workitems', readonly=True), + + } + +res_partner() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing_campaign/res_partner_view.xml b/addons/marketing_campaign/res_partner_view.xml new file mode 100644 index 00000000000..a035a4ea5f0 --- /dev/null +++ b/addons/marketing_campaign/res_partner_view.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<openerp> + <data> + + <!-- Partners inherited form --> + + <record id="view_workitem_partner_info_form" model="ir.ui.view"> + <field name="name">res.partner.workitem.info.inherit</field> + <field name="model">res.partner</field> + <field name="type">form</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <page string="History" position="inside"> + <field name="workitem_ids" colspan="4" nolabel="1"/> + </page> + </field> + </record> + </data> +</openerp> + diff --git a/addons/marketing_campaign/security/ir.model.access.csv b/addons/marketing_campaign/security/ir.model.access.csv index dfafc2cd8a5..43a24d9e5eb 100644 --- a/addons/marketing_campaign/security/ir.model.access.csv +++ b/addons/marketing_campaign/security/ir.model.access.csv @@ -5,3 +5,4 @@ "access_marketing_campaign_workitem_campaignadmin","marketing.campaign.workitem","model_marketing_campaign_workitem","marketing_campaign.res_groups_marketing_campaign",1,1,1,1 "access_marketing_campaign_transition_campaignadmin","marketing.campaign.transition","model_marketing_campaign_transition","marketing_campaign.res_groups_marketing_campaign",1,1,1,1 "access_marketing_campaign_analysis_campaignadmin","campaign.analysis","model_campaign_analysis","marketing_campaign.res_groups_marketing_campaign",1,0,0,0 +"access_marketing_campaign_workitem_all","marketing.campaign.workitem","model_marketing_campaign_workitem","base.group_user",1,0,0,0 diff --git a/addons/mrp/board_manufacturing_demo.xml b/addons/mrp/board_manufacturing_demo.xml index 080467eb8b7..aea87558a1c 100644 --- a/addons/mrp/board_manufacturing_demo.xml +++ b/addons/mrp/board_manufacturing_demo.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> - <record id="sc_manufacturing_dash" model="ir.ui.view_sc"> + <!-- <record id="sc_manufacturing_dash" model="ir.ui.view_sc"> <field name="name">Production dashboard</field> <field name="user_id" ref="base.user_root"/> <field name="resource">ir.ui.menu</field> <field name="sequence">4</field> <field name="res_id" ref="menu_board_manufacturing"/> - </record> + </record> --> <record id="base.user_root" model="res.users"> <field name="action_id" ref="open_board_manufacturing"/> </record> diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po index afa393000d3..98db38dddd9 100644 --- a/addons/mrp/i18n/zh_CN.po +++ b/addons/mrp/i18n/zh_CN.po @@ -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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: mrp diff --git a/addons/mrp_operations/i18n/es.po b/addons/mrp_operations/i18n/es.po index c278fc52afd..e29983cadcb 100644 --- a/addons/mrp_operations/i18n/es.po +++ b/addons/mrp_operations/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: mrp_operations diff --git a/addons/olap/i18n/es.po b/addons/olap/i18n/es.po index b7e1d5eeaea..6af368a67b2 100644 --- a/addons/olap/i18n/es.po +++ b/addons/olap/i18n/es.po @@ -15,7 +15,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: olap diff --git a/addons/olap/i18n/et.po b/addons/olap/i18n/et.po index ead8009afcc..77464b4f4f0 100644 --- a/addons/olap/i18n/et.po +++ b/addons/olap/i18n/et.po @@ -8,13 +8,13 @@ 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-05-07 10:06+0000\n" +"PO-Revision-Date: 2010-06-25 18:21+0000\n" "Last-Translator: lyyser <logard.1961@gmail.com>\n" "Language-Team: Estonian <et@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-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: olap @@ -192,7 +192,7 @@ msgstr "" #: wizard_button:olap.query_builder,exec,exec:0 #: wizard_button:olap.query_builder,ok,exec:0 msgid "Execute" -msgstr "" +msgstr "Käivita" #. module: olap #: wizard_button:olap.application.configuration,configure,end:0 @@ -202,7 +202,7 @@ msgstr "" #: wizard_button:olap.query.logs.clear,ok,end:0 #: view:olap.warehouse.wizard:0 msgid "Ok" -msgstr "" +msgstr "Ok" #. module: olap #: model:ir.ui.menu,name:olap.menu_bi_conf_known_application @@ -213,7 +213,7 @@ msgstr "" #: wizard_field:olap.query_builder,exec,level:0 #: wizard_field:olap.query_builder,ok,level:0 msgid "Level" -msgstr "" +msgstr "Tase" #. module: olap #: field:olap.level,column_id_name:0 @@ -237,7 +237,7 @@ msgstr "" #. module: olap #: field:olap.saved.query,name:0 msgid "Query Name" -msgstr "" +msgstr "Päringu nimi" #. module: olap #: wizard_field:olap.query_builder,exec,mdx_query:0 @@ -258,12 +258,12 @@ msgstr "Primaarvõti" #. module: olap #: model:ir.actions.act_window,name:olap.act_bi_auto_configure msgid "Auto Configuration" -msgstr "" +msgstr "Automaatne seadistamine" #. module: olap #: field:olap.schema,note:0 msgid "Schema description" -msgstr "" +msgstr "Skeemi kirjeldus" #. module: olap #: model:ir.actions.act_window,name:olap.act_bi_load_db_wizard diff --git a/addons/olap_crm/olap_crm.xml b/addons/olap_crm/olap_crm.xml index 96dadb7d783..619e133e609 100644 --- a/addons/olap_crm/olap_crm.xml +++ b/addons/olap_crm/olap_crm.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="True"> +<data> <!-- CUSTOM CUBE FOR CRM diff --git a/addons/olap_sale/olap_sale.xml b/addons/olap_sale/olap_sale.xml index 42b6b327dc9..f5a355de34d 100644 --- a/addons/olap_sale/olap_sale.xml +++ b/addons/olap_sale/olap_sale.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="True"> +<data> <!-- CUSTOM CUBE FOR SALES diff --git a/addons/partner_geo_assign/partner_geo_assign.py b/addons/partner_geo_assign/partner_geo_assign.py index 74e0a7ff17f..e0a0d49f603 100644 --- a/addons/partner_geo_assign/partner_geo_assign.py +++ b/addons/partner_geo_assign/partner_geo_assign.py @@ -30,19 +30,18 @@ def geo_find(addr): url = 'http://maps.google.com/maps/geo?q=' + urllib.quote(addr) + '&output=xml&oe=utf8&sensor=false' xml = urllib.urlopen(url).read() if '<error>' in xml: - print 'Error' return None result = re.search(regex, xml, re.M|re.I) if not result: - print 'No Regex', xml return None return float(result.group(1)),float(result.group(2)) class res_partner(osv.osv): _inherit = "res.partner" _columns = { - 'partner_latitude': fields.float('Geo Latitude', digits=(16,2)), - 'partner_longitude': fields.float('Geo Longitude', digits=(16,2)), + 'partner_latitude': fields.float('Geo Latitude'), + 'partner_longitude': fields.float('Geo Longitude'), + 'date_assign': fields.date('Assignation Date'), 'partner_weight': fields.integer('Weight', help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"), } @@ -52,17 +51,16 @@ class res_partner(osv.osv): def geo_localize(self, cr, uid, ids, context=None): regex = '<coordinates>([+-]?[0-9\.]+),([+-]?[0-9\.]+),([+-]?[0-9\.]+)</coordinates>' for partner in self.browse(cr, uid, ids, context=context): + if not partner.address: + continue part = partner.address[0] addr = ', '.join(filter(None, [part.street, part.street2, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name])) - result = geo_find(addr) + result = geo_find(addr.encode('utf8')) if result: - print 'Write', { - 'partner_latitude': result[0], - 'partner_longitude': result[1] - } self.write(cr, uid, [partner.id], { 'partner_latitude': result[0], - 'partner_longitude': result[1] + 'partner_longitude': result[1], + 'date_assign': time.strftime('%Y-%m-%d') }, context=context) return True res_partner() @@ -70,23 +68,44 @@ res_partner() class crm_lead(osv.osv): _inherit = "crm.lead" _columns = { - 'partner_latitude': fields.float('Geo Latitude', digits=(16,2)), - 'partner_longitude': fields.float('Geo Longitude', digits=(16,2)), + 'partner_latitude': fields.float('Geo Latitude'), + 'partner_longitude': fields.float('Geo Longitude'), 'partner_assigned_id': fields.many2one('res.partner','Assigned Partner'), 'date_assign': fields.date('Assignation Date') } + def forward_to_partner(self, cr, uid, ids, context=None): + fobj = self.pool.get('crm.lead.forward.to.partner') + for lead in self.browse(cr, uid, ids, context=context): + context = {'active_id': lead.id, 'active_ids': [lead.id], 'active_model': 'crm.lead'} + if lead.partner_assigned_id: + email = False + if lead.partner_assigned_id.address: + email = lead.partner_assigned_id.address[0].email + if not email: + raise osv.except_osv(_('Error !'), _('No partner assigned to this opportunity')) + forward = fobj.create(cr, uid, { + 'name': 'email', + 'history': 'whole', + 'email_to': email, + 'message': fobj._get_case_history(cr, uid, 'whole', lead.id, context) or False + }, context) + fobj.action_forward(cr, uid, [forward], context) + else: + raise osv.except_osv(_('Error !'), _('No partner assigned to this opportunity')) + return True + def assign_partner(self, cr, uid, ids, context=None): + ok = False for part in self.browse(cr, uid, ids, context=context): if not part.country_id: continue addr = ', '.join(filter(None, [part.street, part.street2, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name])) - result = geo_find(addr) + result = geo_find(addr.encode('utf8')) if result: self.write(cr, uid, [part.id], { 'partner_latitude': result[0], 'partner_longitude': result[1] }, context=context) - part_ids = self.pool.get('res.partner').search(cr, uid, [ ('partner_weight','>',0), ('partner_latitude','>',result[0]-2), ('partner_latitude','<',result[0]+2), @@ -108,6 +127,7 @@ class crm_lead(osv.osv): if mypartner<=t[1]: self.write(cr, uid, [part.id], {'partner_assigned_id': t[0], 'date_assign': time.strftime('%Y-%m-%d')}, context=context) break - return True + ok = True + return ok crm_lead() diff --git a/addons/partner_geo_assign/res_partner_view.xml b/addons/partner_geo_assign/res_partner_view.xml index d5f4f918d98..b8faedab0aa 100644 --- a/addons/partner_geo_assign/res_partner_view.xml +++ b/addons/partner_geo_assign/res_partner_view.xml @@ -11,11 +11,19 @@ <xpath expr="//notebook[last()]" position="inside"> <page string="Partner Assignation"> <field name="partner_assigned_id"/> - <label string="" colspan="1"/> - <button string="Geo Assign" name="assign_partner" type="object"/> <newline/> <field name="partner_latitude"/> <field name="partner_longitude"/> + <field name="date_assign"/> + <label string="" colspan="1"/> + <group colspan="1" col="2"> + <button string="Geo Assign" name="assign_partner" type="object" colspan="1" + icon="gtk-apply"/> + <button string="Forward" + name="forward_to_partner" attrs="{'invisible':[('partner_assigned_id','=',False)]}" + icon="gtk-apply" + type="object"/> + </group> </page> </xpath> </field> @@ -31,7 +39,11 @@ <page string="Partner Association"> <field name="partner_weight"/> <label string="" colspan="1"/> - <button string="Geo Localize" name="geo_localize" icon="gtk-apply" type="object"/> + <button + string="Geo Localize" + name="geo_localize" + icon="gtk-apply" + type="object"/> <newline/> <field name="partner_latitude"/> <field name="partner_longitude"/> diff --git a/addons/point_of_sale/i18n/es.po b/addons/point_of_sale/i18n/es.po index 2856cdc128c..99dd319819a 100644 --- a/addons/point_of_sale/i18n/es.po +++ b/addons/point_of_sale/i18n/es.po @@ -14,7 +14,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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: point_of_sale diff --git a/addons/point_of_sale/i18n/hi.po b/addons/point_of_sale/i18n/hi.po new file mode 100644 index 00000000000..8f5e06c07b3 --- /dev/null +++ b/addons/point_of_sale/i18n/hi.po @@ -0,0 +1,973 @@ +# Hindi 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-25 18:54+0000\n" +"Last-Translator: vir (Open ERP) <vir@tinyerp.com>\n" +"Language-Team: Hindi <hi@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-26 03:57+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Total paid" +msgstr "कुल भुगतान" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Qty of product" +msgstr "उत्पाद की मात्रा" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Set to draft" +msgstr "draft स्थिति सेट करे" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_transaction_pos +msgid "transaction for the pos" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.discount,init:0 +#: rml:pos.receipt:0 +msgid "Discount :" +msgstr "डिस्काउंट:" + +#. module: point_of_sale +#: wizard_field:pos.payment,ask_pay,payment_nb:0 +msgid "Piece number" +msgstr "टुकड़ा का नंबर" + +#. module: point_of_sale +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "कार्य की परिभाषा में मॉडल का नाम अमान्य है." + +#. module: point_of_sale +#: field:pos.order,name:0 +msgid "Order Description" +msgstr "आदेश विवरण" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_scan_product +msgid "Scan Product" +msgstr "स्कैन उत्पाद" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Document" +msgstr "दस्तावेज़" + +#. module: point_of_sale +#: wizard_view:pos.add_product,init:0 +msgid "Add product :" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +msgid "Net Total" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_action_pos_order_tree2 +msgid "Orders of the day" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_details_summary +msgid "Sales (summary)" +msgstr "" + +#. module: point_of_sale +#: help:pos.order,user_id:0 +msgid "This is the logged in user (not necessarily the salesman)." +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.sale.get,init:0 +msgid "Select an Open Sale Order" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +msgid "Company" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Invoice Date" +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "," +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail +msgid "Details of Sales" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Base" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.scan_product,init:0 +msgid "Scan product" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,price_subtotal:0 +msgid "Subtotal" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Partner Ref." +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "Tel : + 32 (0) 2 231 04 35" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,name:0 +msgid "Line Description" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,shop_id:0 +msgid "Shop" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.refund_order,init,refund_n_quit:0 +msgid "Ok" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +#: field:pos.order,note:0 +msgid "Notes" +msgstr "" + +#. module: point_of_sale +#: field:stock.picking,pos_order:0 +msgid "Pos order" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Detail of Sales" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +#: rml:pos.lines:0 +#: field:pos.order,amount_tax:0 +msgid "Taxes" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_day +msgid "Sale line" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +msgid "No. Of Articles" +msgstr "" + +#. module: point_of_sale +#: field:pos.config.journal,code:0 +#: rml:pos.details:0 +msgid "Code" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,date_validity:0 +#: wizard_field:pos.refund_order,init,date_validity:0 +msgid "Validity Date" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +#: field:pos.order,pickings:0 +msgid "Picking" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.lines:0 +msgid "VAT" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_refund +msgid "Refund Orders" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,last_out_picking:0 +msgid "Last Output Picking" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.config.journal,init:0 +msgid "Select default journals" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.receipt:0 +msgid "Qty" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,user_id:0 +msgid "Logged in User" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +msgid "VAT(%)" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Tax" +msgstr "" + +#. module: point_of_sale +#: view:report.transaction.pos:0 +msgid "Total Transaction" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +msgid "Disc" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +#: rml:pos.receipt:0 +msgid "Fax :" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.scan_product,init:0 +msgid "Scan Barcode" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,payments:0 +msgid "Order Payments" +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "Date :" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Ma_ke Payment" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_confirm +#: wizard_button:pos.sale.get,init,set:0 +msgid "Confirm" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "POS Orders" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +msgid "Disc. (%)" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Sales total" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Supplier Invoice" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,state:0 +msgid "State" +msgstr "" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Sum of subtotals" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.payment,ask_pay,payment_date:0 +msgid "Payment date" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.payment,ask_pay,payment_name:0 +msgid "Payment name" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,lines:0 +msgid "Order Lines" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Disc.(%)" +msgstr "" + +#. module: point_of_sale +#: model:ir.module.module,shortdesc:point_of_sale.module_meta_information +msgid "Point Of Sale" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,create_date:0 +msgid "Creation Date" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "PRO-FORMA" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_rep +msgid "Reporting" +msgstr "" + +#. module: point_of_sale +#: view:report.transaction.pos:0 +msgid "POS " +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_config_journal +msgid "Point of Sale journal configuration." +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "Total :" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.config.journal,init,default_journal:0 +msgid "Default journal" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,account_receivable:0 +msgid "Default Receivable" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_sale_get +msgid "Get From Order" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_config +msgid "Configuration" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +#: rml:pos.lines:0 +#: field:pos.order.line,price_unit:0 +msgid "Unit Price" +msgstr "" + +#. module: point_of_sale +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_action_pos_order_line_day +msgid "POS Lines of the day" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,nb_print:0 +msgid "Number of Print" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_default_journal +msgid "Default journals" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Draft Invoice" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,discount:0 +msgid "Discount (%)" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Fiscal Position Remark :" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_add_product +msgid "Add products" +msgstr "" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Total qty" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_action_pos_order_line +msgid "POS Lines" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Sales Order POS" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.config.journal,init,set_default_journal:0 +msgid "Define default journals" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_tree2 +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_tree3 +#: model:ir.actions.act_window,name:point_of_sale.action_pos_pos_form +#: model:ir.model,name:point_of_sale.model_pos_order +#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale +#: model:ir.ui.menu,name:point_of_sale.menu_point_root +msgid "Point of Sale" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,salesman_id:0 +msgid "Salesman" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: selection:pos.order,state:0 +msgid "Invoiced" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.config.journal,init,default_journal_rebate:0 +msgid "Default rebate journal" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.wizard_default_journal +msgid "Wizard default journals" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Total of the day" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.scan_product,init,add:0 +msgid "Add" +msgstr "" + +#. module: point_of_sale +#: selection:pos.order,state:0 +msgid "Draft" +msgstr "" + +#. module: point_of_sale +#: selection:pos.order,state:0 +msgid "Paid" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "VAT :" +msgstr "" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order lines" +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "E-mail :" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Total invoiced" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_trans_pos_tree_today +msgid "Sales of the day" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,amount_paid:0 +#: field:pos.order,amount_return:0 +msgid "unknown" +msgstr "" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order line" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_discount +msgid "Discount" +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,user_id:0 +msgid "User" +msgstr "" + +#. module: point_of_sale +#: field:pos.payment,payment_date:0 +msgid "Payment Date" +msgstr "" + +#. module: point_of_sale +#: field:pos.payment,payment_name:0 +msgid "Payment Name" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: field:report.transaction.pos,date_create:0 +msgid "Date" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today +msgid "Sales by user" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.add_product,init,add:0 +#: view:pos.order:0 +msgid "_Add product" +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid ":" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Period:" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_trans_pos_tree +msgid "All the sales" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Compute" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Total:" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Summary" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Create _Invoice" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.add_product,init,quantity:0 +#: rml:pos.invoice:0 +#: rml:pos.lines:0 +#: field:pos.order.line,qty:0 +msgid "Quantity" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Refund" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Mode of payment" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.payment,ask_pay,add_pay:0 +msgid "Ma_ke payment" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.discount,init,apply_discount:0 +msgid "Apply Discount" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,pricelist_id:0 +msgid "Pricelist" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.discount,init,discount:0 +msgid "Discount percentage" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_receipt +msgid "Receipt" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.refund_order,init:0 +msgid "Refund order :" +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,no_trans:0 +msgid "Number of Transaction" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Net Total:" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Other" +msgstr "" + +#. module: point_of_sale +#: selection:pos.order,state:0 +msgid "Done" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_invoice_report +#: rml:pos.invoice:0 +#: field:pos.order,invoice_id:0 +#: wizard_field:pos.payment,ask_pay,invoice_wanted:0 +#: field:report.transaction.pos,invoice_id:0 +msgid "Invoice" +msgstr "" + +#. module: point_of_sale +#: wizard_button:pos.add_product,init,end:0 +#: wizard_button:pos.config.journal,init,end:0 +#: wizard_button:pos.discount,init,end:0 +#: view:pos.order:0 +#: selection:pos.order,state:0 +#: wizard_button:pos.payment,ask_pay,end:0 +#: wizard_button:pos.refund_order,init,end:0 +#: wizard_button:pos.sale.get,init,end:0 +#: wizard_button:pos.scan_product,init,end:0 +msgid "Cancel" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Close" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Order lines" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,order_id:0 +#: field:pos.payment,order_id:0 +msgid "Order Ref" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.payment,ask_pay:0 +msgid "Add payment :" +msgstr "" + +#. module: point_of_sale +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_payment +msgid "Pos Payment" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Total discount" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,invoice_wanted:0 +msgid "Create Invoice" +msgstr "" + +#. module: point_of_sale +#: wizard_view:pos.refund_order,init:0 +msgid "Refund " +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_order_line +msgid "Lines of Point of Sale" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Taxes:" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +#: view:report.transaction.pos:0 +msgid "Amount total" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.add_product,init,product:0 +#: rml:pos.details:0 +#: field:pos.order.line,product_id:0 +msgid "Product" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Invoicing" +msgstr "" + +#. module: point_of_sale +#: field:pos.config.journal,journal_id:0 +#: field:pos.order,sale_journal:0 +#: wizard_field:pos.payment,ask_pay,journal:0 +#: field:pos.payment,journal_id:0 +#: field:report.transaction.pos,journal_id:0 +msgid "Journal" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.scan_product,init,gencod:0 +msgid "Barcode" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Canceled Invoice" +msgstr "" + +#. module: point_of_sale +#: view:report.transaction.pos:0 +msgid "POS" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_report +msgid "Pos Lines" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Tel. :" +msgstr "" + +#. module: point_of_sale +#: field:pos.payment,payment_nb:0 +msgid "Piece Number" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.config.journal,init,default_journal_gift:0 +msgid "Default gift journal" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.wizard,name:point_of_sale.pos_payment +#: view:pos.order:0 +msgid "Payment" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_action_pos_order_tree3 +msgid "All orders" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.sale.get,init,picking_id:0 +msgid "Sale Order" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_trans_pos_tree_month +msgid "Sales of the month" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "D_iscount" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,date_order:0 +msgid "Date Ordered" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Payments" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +msgid "Supplier Refund" +msgstr "" + +#. module: point_of_sale +#: field:pos.config.journal,name:0 +#: rml:pos.invoice:0 +#: rml:pos.lines:0 +#: field:pos.payment,name:0 +#: rml:pos.receipt:0 +msgid "Description" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,account_move:0 +msgid "Account Entry" +msgstr "" + +#. module: point_of_sale +#: wizard_field:pos.payment,ask_pay,payment_id:0 +#: field:pos.payment,payment_id:0 +msgid "Payment Term" +msgstr "" + +#. module: point_of_sale +#: rml:pos.invoice:0 +#: field:pos.payment,amount:0 +#: wizard_field:pos.payment,ask_pay,amount:0 +#: field:report.transaction.pos,amount:0 +msgid "Amount" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Actions" +msgstr "" + +#. module: point_of_sale +#: help:pos.order,salesman_id:0 +msgid "This is the salesman actually making the order." +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Mode of Taxes" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Print Date:" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.details_summary:0 +msgid "Company:" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +msgid "Print Date" +msgstr "" + +#. module: point_of_sale +#: rml:pos.receipt:0 +msgid "OPERATION N° :" +msgstr "" + +#. module: point_of_sale +#: rml:pos.lines:0 +#: field:pos.order,amount_total:0 +msgid "Total" +msgstr "" + +#. module: point_of_sale +#: rml:pos.details:0 +#: rml:pos.invoice:0 +#: rml:pos.lines:0 +#: rml:pos.receipt:0 +msgid "Price" +msgstr "" diff --git a/addons/product_expiry/i18n/et.po b/addons/product_expiry/i18n/et.po new file mode 100644 index 00000000000..4fff2ceb230 --- /dev/null +++ b/addons/product_expiry/i18n/et.po @@ -0,0 +1,165 @@ +# Estonian 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-06-30 15:09+0000\n" +"PO-Revision-Date: 2010-06-25 18:04+0000\n" +"Last-Translator: lyyser <logard.1961@gmail.com>\n" +"Language-Team: Estonian <et@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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: product_expiry +#: field:product.product,life_time:0 +msgid "Product lifetime" +msgstr "" + +#. module: product_expiry +#: model:product.template,name:product_expiry.product_product_from_product_template +msgid "Ham" +msgstr "Väärtpost" + +#. module: product_expiry +#: model:product.template,name:product_expiry.product_product_lait_product_template +msgid "Cow milk" +msgstr "Lehma piim" + +#. module: product_expiry +#: model:ir.module.module,shortdesc:product_expiry.module_meta_information +msgid "Products date of expiry" +msgstr "Kõlblik kuni" + +#. module: product_expiry +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "" +"Viga: vaikimisi mõõtühik ja ostu mõõtühik peavad olema samast kategooriast." + +#. module: product_expiry +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: product_expiry +#: help:stock.production.lot,life_date:0 +msgid "The date the lot may become dangerous and should not be consumed." +msgstr "" +"Kuupäev, millal toode võib muutuda ohtlikuks ning neid ei tohiks tarbida." + +#. module: product_expiry +#: field:stock.production.lot,removal_date:0 +msgid "Removal Date" +msgstr "" + +#. module: product_expiry +#: model:ir.module.module,description:product_expiry.module_meta_information +msgid "" +"Track different dates on products and production lots:\n" +" - end of life\n" +" - best before date\n" +" - removal date\n" +" - alert date\n" +"Used, for example, in food industries." +msgstr "" + +#. module: product_expiry +#: model:product.template,name:product_expiry.product_product_pain_product_template +msgid "Bread" +msgstr "Leib" + +#. module: product_expiry +#: model:product.uom,name:product_expiry.product_uom_ltr +#: model:product.uom.categ,name:product_expiry.product_uom_categ_vol +msgid "LTR" +msgstr "LTR" + +#. module: product_expiry +#: view:product.product:0 +#: view:stock.production.lot:0 +msgid "Dates" +msgstr "Kuupäevad" + +#. module: product_expiry +#: constraint:product.template:0 +msgid "Error: UOS must be in a different category than the UOM" +msgstr "Viga: TÜ kategooria peab erinema MÜ kategooriast" + +#. module: product_expiry +#: field:stock.production.lot,life_date:0 +msgid "End of Life Date" +msgstr "Kõlblik kuni kuupäev" + +#. module: product_expiry +#: field:stock.production.lot,use_date:0 +msgid "Best before Date" +msgstr "Parim enne kuupäev" + +#. module: product_expiry +#: help:stock.production.lot,use_date:0 +msgid "The date the lot starts deteriorating without becoming dangerous." +msgstr "" + +#. module: product_expiry +#: model:product.template,name:product_expiry.product_product_jambon_product_template +msgid "French cheese Camenbert" +msgstr "Prantsuse juustu Camenbert" + +#. module: product_expiry +#: help:product.product,removal_time:0 +msgid "The number of days before a production lot should be removed." +msgstr "Päevade arv ennem mida tootepartii tuleb eemaldada." + +#. module: product_expiry +#: field:product.product,use_time:0 +msgid "Product usetime" +msgstr "Toote kasutamise aeg" + +#. module: product_expiry +#: field:stock.production.lot,alert_date:0 +msgid "Alert Date" +msgstr "Häire kuupäev" + +#. module: product_expiry +#: field:product.product,removal_time:0 +msgid "Product removal time" +msgstr "Toote eemaldamise aeg" + +#. module: product_expiry +#: help:product.product,use_time:0 +msgid "" +"The number of days before a production lot starts deteriorating without " +"becoming dangerous." +msgstr "" + +#. module: product_expiry +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Viga: Vigane EAN kood" + +#. module: product_expiry +#: help:product.product,life_time:0 +msgid "" +"The number of days before a production lot may become dangerous and should " +"not be consumed." +msgstr "" +"Päevade arv millal tootepartii võib osutuda ohtlikuks ja neid ei tohiks " +"tarbida." + +#. module: product_expiry +#: help:stock.production.lot,removal_date:0 +msgid "The date the lot should be removed." +msgstr "Kuupäeva millal toode tuleks kõrvaldada." + +#. module: product_expiry +#: field:product.product,alert_time:0 +msgid "Product alert time" +msgstr "Toote märguande aeg" diff --git a/addons/product_manufacturer/i18n/et.po b/addons/product_manufacturer/i18n/et.po new file mode 100644 index 00000000000..9213df55e2b --- /dev/null +++ b/addons/product_manufacturer/i18n/et.po @@ -0,0 +1,106 @@ +# Estonian 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-11-25 13:27+0000\n" +"PO-Revision-Date: 2010-06-25 18:10+0000\n" +"Last-Translator: lyyser <logard.1961@gmail.com>\n" +"Language-Team: Estonian <et@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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: product_electronic +#: model:ir.module.module,description:product_electronic.module_meta_information +msgid "A module that add manufacturers and attributes on the product form" +msgstr "" + +#. module: product_electronic +#: field:product.product,manufacturer_pref:0 +msgid "Manufacturer product code" +msgstr "Tootja tootekood" + +#. module: product_electronic +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: product_electronic +#: view:product.electronic.attribute:0 +msgid "Product Template Name" +msgstr "Toote Malli nimi" + +#. module: product_electronic +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !" + +#. module: product_electronic +#: model:ir.model,name:product_electronic.model_product_electronic_attribute +msgid "Product attributes" +msgstr "Toote omadused" + +#. module: product_electronic +#: view:product.product:0 +msgid "Manufacturing data" +msgstr "Tootmise andmed" + +#. module: product_electronic +#: view:product.product:0 +msgid "Product reference" +msgstr "Toote viide" + +#. module: product_electronic +#: field:product.electronic.attribute,name:0 +msgid "Attribute" +msgstr "Atribuut" + +#. module: product_electronic +#: field:product.electronic.attribute,product_id:0 +msgid "Product" +msgstr "Toode" + +#. module: product_electronic +#: field:product.electronic.attribute,value:0 +msgid "Value" +msgstr "Väärtus" + +#. module: product_electronic +#: view:product.product:0 +msgid "Manufacturing Data" +msgstr "Valmistusandmeid" + +#. module: product_electronic +#: view:product.product:0 +msgid "Product name" +msgstr "Toote nimi" + +#. module: product_electronic +#: view:product.product:0 +#: field:product.product,attribute_ids:0 +msgid "Attributes" +msgstr "Omadused" + +#. module: product_electronic +#: model:ir.module.module,shortdesc:product_electronic.module_meta_information +msgid "Products Attributes & Manufacturers" +msgstr "" + +#. module: product_electronic +#: field:product.product,manufacturer_pname:0 +msgid "Manufacturer product name" +msgstr "Toote nimetus" + +#. module: product_electronic +#: field:product.product,manufacturer:0 +msgid "Manufacturer" +msgstr "Tootja" diff --git a/addons/project/__init__.py b/addons/project/__init__.py index 6347cd9dd29..44154c8ae05 100644 --- a/addons/project/__init__.py +++ b/addons/project/__init__.py @@ -25,6 +25,7 @@ import installer import project_mailgate import report import wizard +import res_partner # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 5d535963422..03b72e09e38 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -46,6 +46,7 @@ work done on tasks, eso. It is able to render planning, order tasks, eso. "project_report.xml", "process/task_process.xml", "project_installer.xml", + "res_partner_view.xml", "report/project_report_view.xml", "wizard/project_close_task_view.xml", "board_project_view.xml", diff --git a/addons/project/board_project_demo.xml b/addons/project/board_project_demo.xml index fa92e92f092..2a160b4454f 100644 --- a/addons/project/board_project_demo.xml +++ b/addons/project/board_project_demo.xml @@ -7,13 +7,13 @@ Administrator shortcut Demo user startup menu --> - <record id="sc_account_dash" model="ir.ui.view_sc"> + <!--record id="sc_account_dash" model="ir.ui.view_sc"> <field name="name">project dashboard</field> <field name="user_id" ref="base.user_demo"/> <field name="resource">ir.ui.menu</field> <field name="sequence">3</field> <field name="res_id" ref="menu_board_project"/> - </record> + </record--> <record id="base.user_root" model="res.users"> <field name="action_id" ref="open_board_project"/> </record> diff --git a/addons/project/i18n/es.po b/addons/project/i18n/es.po index 175a17229bc..7f5b605cdf1 100644 --- a/addons/project/i18n/es.po +++ b/addons/project/i18n/es.po @@ -14,7 +14,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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project diff --git a/addons/project/project_mailgate.py b/addons/project/project_mailgate.py index 93c9732c720..5409aa4e752 100644 --- a/addons/project/project_mailgate.py +++ b/addons/project/project_mailgate.py @@ -77,7 +77,7 @@ class project_tasks(osv.osv): getattr(self,act)(cr, uid, [id]) return True - def emails_get(self, cr, uid, ids, context={}): + def message_followers(self, cr, uid, ids, context={}): res = [] if isinstance(ids, (str, int, long)): select = [ids] diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 86250622c5a..7b299cdcccc 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -1,7 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> - <menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/> + <menuitem + icon="terp-project" id="base.menu_main_pm" + name="Project" sequence="10" + groups="group_project_manager,group_project_user"/> + <menuitem id="menu_project_management" name="Project Management" parent="base.menu_main_pm" sequence="1"/> <menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/> diff --git a/addons/project/res_partner.py b/addons/project/res_partner.py new file mode 100644 index 00000000000..f0297cf6a72 --- /dev/null +++ b/addons/project/res_partner.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 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 osv import fields,osv + +class res_partner(osv.osv): + """ Inherits partner and adds CRM information in the partner form """ + _inherit = 'res.partner' + _columns = { + 'task_ids': fields.one2many('project.task', 'partner_id', 'Tasks'), + } +res_partner() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/res_partner_view.xml b/addons/project/res_partner_view.xml new file mode 100644 index 00000000000..4778c0f1017 --- /dev/null +++ b/addons/project/res_partner_view.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<openerp> + <data> + + <!-- Partners inherited form --> + + <record id="view_task_partner_info_form" model="ir.ui.view"> + <field name="name">res.partner.task.info.inherit</field> + <field name="model">res.partner</field> + <field name="type">form</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <page string="History" position="inside"> + <field name="task_ids" colspan="4" nolabel="1"> + <tree string="Tasks" editable="bottom"> + <field name="name"/> + <field name="user_id"/> + </tree> + </field> + </page> + </field> + </record> + </data> +</openerp> + diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index 502c8af0596..0c030e0c701 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -23,3 +23,5 @@ "access_partner_task manager","base.res.partner manager","base.model_res_partner","project.group_project_manager",1,0,0,0 "access_partner_address_task user","base.res.partner.address user","base.model_res_partner_address","project.group_project_user",1,0,0,0 "access_partner_address_task manager","base.res.partner.address manager","base.model_res_partner_address","project.group_project_manager",1,0,0,0 +"access_task_on_partner","project.task on partners","model_project_task","base.group_user",1,0,0,0 +"access_project_on_partner","project.project on partners","model_project_project","base.group_user",1,0,0,0 diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index 7339399cc08..97f9e96afa0 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -34,7 +34,7 @@ 'crm', 'project', 'hr_timesheet_sheet', - 'project_long_term', + 'resource' ], 'init_xml': [ 'project_issue_data.xml' diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 3523485f542..b9d7baed6dd 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -183,6 +183,8 @@ class project_issue(osv.osv, crm.crm_case): method=True, multi='working_days_close', type="float", store=True), 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('model','=',_name)]), 'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]), + 'date_action_last': fields.datetime('Last Action', readonly=1), + 'date_action_next': fields.datetime('Next Action', readonly=1), } def _get_project(self, cr, uid, context): @@ -332,7 +334,7 @@ class project_issue(osv.osv, crm.crm_case): if res: vals.update(res) res = self.create(cr, uid, vals, context) - + self.convert_to_bug(cr, uid, [res], context=context) attachents = msg.get('attachments', []) for attactment in attachents or []: @@ -383,36 +385,6 @@ class project_issue(osv.osv, crm.crm_case): res = self.write(cr, uid, ids, vals) return res - def emails_get(self, cr, uid, ids, context=None): - - """ - Get Emails - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of email’s IDs - @param context: A standard dictionary for contextual values - """ - res = {} - - if isinstance(ids, (str, int, long)): - select = [long(ids)] - else: - select = ids - - for thread in self.browse(cr, uid, select, context=context): - values = collections.defaultdict(set) - - for message in thread.message_ids: - user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False - values['user_email'].add(user_email) - values['email_from'].add(message.email_from) - values['email_cc'].add(message.email_cc or False) - values['priority'] = thread.priority - - res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems()) - - return res def msg_send(self, cr, uid, id, *args, **argv): @@ -428,3 +400,11 @@ class project_issue(osv.osv, crm.crm_case): project_issue() +class project(osv.osv): + _inherit = "project.project" + _columns = { + 'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report"), + } +project() + + diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml index ed031672360..aee12ccf01e 100644 --- a/addons/project_issue/project_issue_demo.xml +++ b/addons/project_issue/project_issue_demo.xml @@ -1,290 +1,278 @@ <?xml version="1.0"?> <openerp> <data noupdate="1"> - <!-- - ((((((((((( Demo Cases ))))))))))) - --> -<!--For Issue Tracking--> - <record id="crm_case_buginaccountsmodule0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_8"/> - <field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""5"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_agrolait"/> - <field eval=""open"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage1"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval="15.0" name="duration"/> - <field eval=""Bug in Accounts module"" name="name"/> - <field eval=""agr@agrolait.com"" name="email_from"/> - </record> - <record id="crm_case_log_takecorrectiveactions0" model="mailgate.message"> - <field eval="time.strftime('%Y-%m-08')" name="date"/> - <field name="case_id" ref="crm_case_buginaccountsmodule0"/> - <field name="som" ref="base.som_normal"/> - <field eval=""Take corrective actions"" name="name"/> - <field model="res.partner.canal" name="canal_id" search="[('name','=','website')]"/> - </record> + <record id="crm_case_buginaccountsmodule0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_8"/> + <field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""5"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_agrolait"/> + <field eval=""open"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage1"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval="15.0" name="duration"/> + <field eval=""Bug in Accounts module"" name="name"/> + <field eval=""agr@agrolait.com"" name="email_from"/> + </record> - <record id="crm_case_programnotgivingproperoutput0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_tang"/> - <field eval="time.strftime('%Y-%m-15 12:50:00')" name="date"/> - <field name="type_id" ref="type2"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_asus"/> - <field eval=""done"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="3.5" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage2"/> - <field eval=""Program not giving proper output"" name="name"/> - <field name="project_id" ref="project.project_project_22"/> - </record> + <record id="crm_case_programnotgivingproperoutput0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_tang"/> + <field eval="time.strftime('%Y-%m-15 12:50:00')" name="date"/> + <field name="type_id" ref="type2"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_asus"/> + <field eval=""done"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="3.5" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage2"/> + <field eval=""Program not giving proper output"" name="name"/> + <field name="project_id" ref="project.project_project_22"/> + </record> - <record id="crm_case_outputincorrect0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_9"/> - <field eval="time.strftime('%Y-%m-18 14:30:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""4"" name="priority"/> - <field name="user_id" ref="base.user_demo"/> - <field eval=""cancel"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="2.3" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage3"/> - <field name="project_id" ref="project.project_project_23"/> - <field eval=""Output incorrect"" name="name"/> - </record> + <record id="crm_case_outputincorrect0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_9"/> + <field eval="time.strftime('%Y-%m-18 14:30:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""4"" name="priority"/> + <field name="user_id" ref="base.user_demo"/> + <field eval=""cancel"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="2.3" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage3"/> + <field name="project_id" ref="project.project_project_23"/> + <field eval=""Output incorrect"" name="name"/> + </record> - <record id="crm_case_problemloadingpage0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_13"/> - <field eval="time.strftime('%Y-%m-20 15:25:05')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_14"/> - <field eval=""cancel"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="4.0" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage4"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Problem loading page"" name="name"/> - </record> + <record id="crm_case_problemloadingpage0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_13"/> + <field eval="time.strftime('%Y-%m-20 15:25:05')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_14"/> + <field eval=""cancel"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="4.0" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage4"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Problem loading page"" name="name"/> + </record> - <record id="crm_case_pagenotfound0" model="project.issue"> - <field eval="time.strftime('%Y-%m-22 18:15:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/> - <field eval=""draft"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="1.0" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Page not Found"" name="name"/> - </record> + <record id="crm_case_pagenotfound0" model="project.issue"> + <field eval="time.strftime('%Y-%m-22 18:15:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/> + <field eval=""draft"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="1.0" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Page not Found"" name="name"/> + </record> - <record id="crm_case_programmingerror0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_10"/> - <field eval="time.strftime('%Y-%m-24 09:45:00')" name="date"/> - <field name="type_id" ref="type2"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_5"/> - <field eval=""pending"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="4.0" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage6"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Programming Error"" name="name"/> - </record> + <record id="crm_case_programmingerror0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_10"/> + <field eval="time.strftime('%Y-%m-24 09:45:00')" name="date"/> + <field name="type_id" ref="type2"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_5"/> + <field eval=""pending"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="4.0" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage6"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Programming Error"" name="name"/> + </record> - <record id="crm_case_logicalerrorinprogram0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_6"/> - <field eval="time.strftime('%Y-%m-26 11:10:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""2"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""pending"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="2.0" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage6"/> - <field name="project_id" ref="project.project_project_9"/> - <field eval=""Logical Error in Program"" name="name"/> - </record> + <record id="crm_case_logicalerrorinprogram0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_6"/> + <field eval="time.strftime('%Y-%m-26 11:10:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""2"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_6"/> + <field eval=""pending"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="2.0" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage6"/> + <field name="project_id" ref="project.project_project_9"/> + <field eval=""Logical Error in Program"" name="name"/> + </record> - <record id="crm_case_constrainterror0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_6"/> - <field eval="time.strftime('%Y-%m-25 13:35:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""2"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""pending"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="7.3" name="duration"/> - <field name="categ_id" ref="bug_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_9"/> - <field eval=""Constraint Error"" name="name"/> - </record> + <record id="crm_case_constrainterror0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_6"/> + <field eval="time.strftime('%Y-%m-25 13:35:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""2"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_6"/> + <field eval=""pending"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="7.3" name="duration"/> + <field name="categ_id" ref="bug_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_9"/> + <field eval=""Constraint Error"" name="name"/> + </record> - <record id="crm_case_errorinprogram0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_10"/> - <field eval="time.strftime('%Y-%m-28 15:40:00')" name="date"/> - <field name="type_id" ref="type2"/> - <field eval=""2"" name="priority"/> - <field name="user_id" ref="base.user_demo"/> - <field name="partner_id" ref="base.res_partner_5"/> - <field eval=""open"" name="state"/> - <field eval="1" name="active"/> - <field eval="1.3" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Error in Program"" name="name"/> - </record> + <record id="crm_case_errorinprogram0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_10"/> + <field eval="time.strftime('%Y-%m-28 15:40:00')" name="date"/> + <field name="type_id" ref="type2"/> + <field eval=""2"" name="priority"/> + <field name="user_id" ref="base.user_demo"/> + <field name="partner_id" ref="base.res_partner_5"/> + <field eval=""open"" name="state"/> + <field eval="1" name="active"/> + <field eval="1.3" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Error in Program"" name="name"/> + </record> - <record id="crm_case_patcheserrorinprogram0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_9"/> - <field eval="time.strftime('%Y-%m-28 16:30:00')" name="date"/> - <field name="type_id" ref="type2"/> - <field eval=""2"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_2"/> - <field eval=""open"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="13.0" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_9"/> - <field eval=""Patches Error in Program"" name="name"/> - </record> + <record id="crm_case_patcheserrorinprogram0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_9"/> + <field eval="time.strftime('%Y-%m-28 16:30:00')" name="date"/> + <field name="type_id" ref="type2"/> + <field eval=""2"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_2"/> + <field eval=""open"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="13.0" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_9"/> + <field eval=""Patches Error in Program"" name="name"/> + </record> - <record id="crm_case_newfeaturestobeadded0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_wong"/> - <field eval="time.strftime('%Y-%m-01 12:15:10')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""4"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_maxtor"/> - <field eval=""open"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="3.2" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage1"/> - <field name="project_id" ref="project.project_project_21"/> - <field eval=""New Features To Be Added"" name="name"/> - </record> + <record id="crm_case_newfeaturestobeadded0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_wong"/> + <field eval="time.strftime('%Y-%m-01 12:15:10')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""4"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_maxtor"/> + <field eval=""open"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="3.2" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage1"/> + <field name="project_id" ref="project.project_project_21"/> + <field eval=""New Features To Be Added"" name="name"/> + </record> - <record id="crm_case_addmenustothemodule0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_1"/> - <field eval="time.strftime('%Y-%m-05 18:00:00')" name="date"/> - <field name="type_id" ref="type2"/> - <field eval=""1"" name="priority"/> - <field name="user_id" ref="base.user_demo"/> - <field name="partner_id" ref="base.res_partner_9"/> - <field eval=""done"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="3.0" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage2"/> - <field name="project_id" ref="project.project_project_21"/> - <field eval=""Add menus to the module"" name="name"/> - <field eval=""info@opensides.be"" name="email_from"/> - </record> + <record id="crm_case_addmenustothemodule0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_1"/> + <field eval="time.strftime('%Y-%m-05 18:00:00')" name="date"/> + <field name="type_id" ref="type2"/> + <field eval=""1"" name="priority"/> + <field name="user_id" ref="base.user_demo"/> + <field name="partner_id" ref="base.res_partner_9"/> + <field eval=""done"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="3.0" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage2"/> + <field name="project_id" ref="project.project_project_21"/> + <field eval=""Add menus to the module"" name="name"/> + <field eval=""info@opensides.be"" name="email_from"/> + </record> - <record id="crm_case_includeattendancesheetinproject0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_2"/> - <field eval="time.strftime('%Y-%m-10 17:05:30')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_10"/> - <field eval=""cancel"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="2.0" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage3"/> - <field name="project_id" ref="project.project_project_9"/> - <field eval=""Include Attendance sheet in Project"" name="name"/> - <field eval=""contact@tecsas.fr"" name="email_from"/> - </record> + <record id="crm_case_includeattendancesheetinproject0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_2"/> + <field eval="time.strftime('%Y-%m-10 17:05:30')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_10"/> + <field eval=""cancel"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="2.0" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage3"/> + <field name="project_id" ref="project.project_project_9"/> + <field eval=""Include Attendance sheet in Project"" name="name"/> + <field eval=""contact@tecsas.fr"" name="email_from"/> + </record> - <record id="crm_case_createnewobject0" model="project.issue"> - <field model="res.partner.canal" name="canal_id" search="[('name','=','phone')]"/> - <field name="partner_address_id" ref="base.res_partner_address_6"/> - <field name="som" ref="base.som_happy"/> - <field eval="time.strftime('%Y-%m-15 10:35:15')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""3"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""draft"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="2.45" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Create new object"" name="name"/> - </record> + <record id="crm_case_createnewobject0" model="project.issue"> + <field model="res.partner.canal" name="canal_id" search="[('name','=','phone')]"/> + <field name="partner_address_id" ref="base.res_partner_address_6"/> + <field eval="time.strftime('%Y-%m-15 10:35:15')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""3"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_6"/> + <field eval=""draft"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="2.45" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Create new object"" name="name"/> + </record> - <record id="crm_case_improvereportsinhrms0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_15"/> - <field eval="time.strftime('%Y-%m-19 12:15:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""4"" name="priority"/> - <field name="user_id" ref="base.user_root"/> - <field name="partner_id" ref="base.res_partner_11"/> - <field eval=""pending"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="15.0" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage6"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Improve Reports in HRMS"" name="name"/> - </record> + <record id="crm_case_improvereportsinhrms0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_15"/> + <field eval="time.strftime('%Y-%m-19 12:15:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""4"" name="priority"/> + <field name="user_id" ref="base.user_root"/> + <field name="partner_id" ref="base.res_partner_11"/> + <field eval=""pending"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="15.0" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage6"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Improve Reports in HRMS"" name="name"/> + </record> - <record id="crm_case_improvereportsinpms0" model="project.issue"> - <field name="partner_address_id" ref="base.res_partner_address_15"/> - <field eval="time.strftime('%Y-%m-21 14:30:00')" name="date"/> - <field name="type_id" ref="type1"/> - <field eval=""2"" name="priority"/> - <field name="user_id" ref="base.user_demo"/> - <field name="partner_id" ref="base.res_partner_11"/> - <field eval=""pending"" name="state"/> - <field name="section_id" ref="crm.section_sales_department"/> - <field eval="1" name="active"/> - <field eval="06.15" name="duration"/> - <field name="categ_id" ref="feature_request_categ"/> - <field name="stage_id" ref="stage5"/> - <field name="project_id" ref="project.project_project_22"/> - <field eval=""Improve Reports in PMS"" name="name"/> - </record> + <record id="crm_case_improvereportsinpms0" model="project.issue"> + <field name="partner_address_id" ref="base.res_partner_address_15"/> + <field eval="time.strftime('%Y-%m-21 14:30:00')" name="date"/> + <field name="type_id" ref="type1"/> + <field eval=""2"" name="priority"/> + <field name="user_id" ref="base.user_demo"/> + <field name="partner_id" ref="base.res_partner_11"/> + <field eval=""pending"" name="state"/> + <field name="section_id" ref="crm.section_sales_department"/> + <field eval="1" name="active"/> + <field eval="06.15" name="duration"/> + <field name="categ_id" ref="feature_request_categ"/> + <field name="stage_id" ref="stage5"/> + <field name="project_id" ref="project.project_project_22"/> + <field eval=""Improve Reports in PMS"" name="name"/> + </record> </data> </openerp> diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index ea902ea599f..fefdd496559 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> -<data noupdate="1"> +<data> ######################## ISSUE TRACKING (menu) ########################### diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 973e0a1a20c..fd523ad7774 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -95,7 +95,7 @@ <button colspan="4" string="Reply to Last Email" name="%(crm.action_crm_send_mail)d" - context="{'mail':'reply', 'model': 'project.issue'}" + context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}" icon="gtk-undo" type="action" /> </form> <tree string="Communication history"> diff --git a/addons/project_timesheet/i18n/es.po b/addons/project_timesheet/i18n/es.po index 777b9212e77..28dd6ec6d3c 100644 --- a/addons/project_timesheet/i18n/es.po +++ b/addons/project_timesheet/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_timesheet diff --git a/addons/purchase/i18n/el.po b/addons/purchase/i18n/el.po index 09f8256c503..ceb54327a4d 100644 --- a/addons/purchase/i18n/el.po +++ b/addons/purchase/i18n/el.po @@ -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-16 19:12+0000\n" -"Last-Translator: Andreas Porevopoulos <Unknown>\n" +"PO-Revision-Date: 2010-06-26 00:12+0000\n" +"Last-Translator: Fotis Tsamis <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 03:56+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" @@ -788,7 +788,7 @@ msgstr "Προϊόν" #: field:purchase.order.line,name:0 #: rml:purchase.quotation:0 msgid "Description" -msgstr "Περογραφή" +msgstr "Περιγραφή" #. module: purchase #: model:process.transition,name:purchase.process_transition_productrecept0 diff --git a/addons/report_analytic_planning/i18n/es.po b/addons/report_analytic_planning/i18n/es.po index bf4ebb8ce76..f1a6e356108 100644 --- a/addons/report_analytic_planning/i18n/es.po +++ b/addons/report_analytic_planning/i18n/es.po @@ -14,7 +14,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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: report_analytic_planning diff --git a/addons/report_task/i18n/es.po b/addons/report_task/i18n/es.po index 8bb396c5454..25894c98146 100644 --- a/addons/report_task/i18n/es.po +++ b/addons/report_task/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: report_task diff --git a/addons/sale/board_sale_demo.xml b/addons/sale/board_sale_demo.xml index 996821c02e1..09419de206c 100644 --- a/addons/sale/board_sale_demo.xml +++ b/addons/sale/board_sale_demo.xml @@ -1,17 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> - + <!-- Administrator shortcut Demo user startup menu --> - <record id="sc_sale_dash" model="ir.ui.view_sc"> + <!-- <record id="sc_sale_dash" model="ir.ui.view_sc"> <field name="name">Sales dashboard</field> <field name="user_id" ref="base.user_root"/> <field name="resource">ir.ui.menu</field> <field name="sequence">1</field> <field name="res_id" ref="menu_board_sales_manager"/> - </record> + </record> --> </data> </openerp> diff --git a/addons/sale/i18n/es.po b/addons/sale/i18n/es.po index 3c481e1f885..c200c9f3dcb 100644 --- a/addons/sale/i18n/es.po +++ b/addons/sale/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: sale diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 206e9441524..aeeba26bed7 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -158,7 +158,8 @@ <field name="type" groups="base.group_extended"/> <field name="delay" groups="base.group_extended"/> <newline/> - <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/> + <separator colspan="5" string="Taxes"/> + <field colspan="4" name="tax_id" nolabel="1" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/> <group colspan="4" col="5" groups="base.group_extended"> <separator colspan="5" string="States"/> <field name="state"/> diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py index 9464db91b6f..007711da5d0 100644 --- a/addons/sale_crm/__openerp__.py +++ b/addons/sale_crm/__openerp__.py @@ -38,8 +38,9 @@ crm modules. 'website': 'http://www.openerp.com', 'depends': ['sale', 'crm'], 'init_xml': [], - 'update_xml': ['sale_crm_wizard.xml', + 'update_xml': ['wizard/crm_make_sale_view.xml', 'sale_crm_view.xml', + 'board_sale_crm_view.xml', 'process/sale_crm_process.xml', 'security/sale_crm_security.xml', ], diff --git a/addons/sale_crm/board_sale_crm_view.xml b/addons/sale_crm/board_sale_crm_view.xml new file mode 100644 index 00000000000..42b7cc1cd47 --- /dev/null +++ b/addons/sale_crm/board_sale_crm_view.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<openerp> + <data> + + <record id="action_quotation_for_sale_crm" model="ir.actions.act_window"> + <field name="name">Quotations</field> + <field name="res_model">sale.order</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="domain">[('state','=','draft'),('user_id','=',uid)]</field> + <field name="view_id" ref="sale.view_order_tree"/> + </record> + + <record id="view_turnover_by_month_tree" model="ir.ui.view"> + <field name="name">turnover.by.month.tree</field> + <field name="model">account.invoice.report</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Turnover By Months"> + <field name="month"/> + <field name="price_total"/> + </tree> + </field> + </record> + + <record id="view_turnover_by_month_graph" model="ir.ui.view"> + <field name="name">turnover.by.month.graph</field> + <field name="model">account.invoice.report</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <graph string="Turnover By Months" type="bar"> + <field name="month"/> + <field name="price_total" operator="+"/> + </graph> + </field> + </record> + + <record model="ir.actions.act_window" id="action_turnover_by_month"> + <field name="res_model">account.invoice.report</field> + <field name="view_type">form</field> + <field name="view_mode">graph,tree</field> + <field name="view_id" ref="view_turnover_by_month_tree"/> + <field name="domain">[('year','ilike',time.strftime('%Y')),('user_id','=',uid)]</field> + <field name="context">{'group_by_no_leaf':1,'group_by':['month']}</field> + <field name="search_view_id" ref="account.view_account_invoice_report_search"/> + </record> + + <record model="ir.ui.view" id="crm.board_crm_form"> + <field name="name">CRM - Dashboard Form</field> + <field name="model">board.board</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Connecting Dashboard"> + <hpaned> + <child1> + <action + string="My Opportunities" + name="%(crm.act_my_leads)d" + colspan="4" + height="150" + width="510"/> + + <action + string="My Meetings" + name="%(crm.act_my_meetings)d" + height="150" + colspan="4"/> + <action + string="My Quotations" + name="%(action_quotation_for_sale_crm)d" + colspan="4" + height="150" + width="510"/> + </child1> + <child2> + <action + string="Revenues by stage" + name="%(crm.act_my_leads_stage)d" + colspan="4"/> + <action + string="My Sales Pipeline" + name="%(crm.act_sales_pipeline)d" + colspan="4"/> + <action + string="Turnover By Months" + name="%(action_turnover_by_month)d" + colspan="4"/> + </child2> + </hpaned> + </form> + </field> + </record> + </data> +</openerp> diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml index 565fd687b4e..5cf4cf552f0 100644 --- a/addons/sale_crm/sale_crm_view.xml +++ b/addons/sale_crm/sale_crm_view.xml @@ -9,7 +9,7 @@ <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <field name="priority" position="after"> - <button string="Convert to Sale" icon="gtk-go-forward" name="%(sale_crm_wizard)d" type="action"/> + <button string="Convert to Sale" icon="gtk-go-forward" name="%(action_crm_make_sale)d" type="action"/> </field> </field> </record> diff --git a/addons/sale_crm/sale_crm_wizard.xml b/addons/sale_crm/sale_crm_wizard.xml deleted file mode 100644 index 74dcf06e901..00000000000 --- a/addons/sale_crm/sale_crm_wizard.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<openerp> - <data> - - <wizard - string="Make Quotation" - model="crm.opportunity" - name="crm.opportunity.make_order" - keyword="client_action_multi" - multi="True" - id="sale_crm_wizard"/> - - </data> -</openerp> diff --git a/addons/sale_crm/wizard/__init__.py b/addons/sale_crm/wizard/__init__.py index 87048a13fc4..04f40c92207 100644 --- a/addons/sale_crm/wizard/__init__.py +++ b/addons/sale_crm/wizard/__init__.py @@ -19,7 +19,7 @@ # ############################################################################## -import makesale +import crm_make_sale # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py new file mode 100644 index 00000000000..db6bcd832b3 --- /dev/null +++ b/addons/sale_crm/wizard/crm_make_sale.py @@ -0,0 +1,183 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 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 osv import fields, osv +from tools.translate import _ +from mx.DateTime import now + + +class crm_make_sale(osv.osv_memory): + """ Make sale order for crm """ + + _name = "crm.make.sale" + _description = "Make sale" + + def _selectPartner(self, cr, uid, context=None): + """ + This function gets default value for partner_id field. + @param self: The object pointer + @param cr: the current row, from the database cursor, + @param uid: the current user’s ID for security checks, + @param context: A standard dictionary for contextual values + @return : default value of partner_id field. + """ + if not context: + context = {} + + active_id = context and context.get('active_id', False) or False + if not active_id: + return False + lead_obj = self.pool.get('crm.lead') + lead = lead_obj.read(cr, uid, active_id, ['partner_id']) + return lead['partner_id'] + + def makeOrder(self, cr, uid, ids, context=None): + """ + This function create Quotation on given case. + @param self: The object pointer + @param cr: the current row, from the database cursor, + @param uid: the current user’s ID for security checks, + @param ids: List of crm make sale' ids + @param context: A standard dictionary for contextual values + @return : Dictionary value of created sale order. + """ + if not context: + context = {} + + mod_obj = self.pool.get('ir.model.data') + + + result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter') + id = mod_obj.read(cr, uid, result, ['res_id']) + + case_obj = self.pool.get('crm.lead') + sale_obj = self.pool.get('sale.order') + partner_obj = self.pool.get('res.partner') + sale_line_obj = self.pool.get('sale.order.line') + + data = context and context.get('active_ids', []) or [] + + for make in self.browse(cr, uid, ids): + default_partner_addr = partner_obj.address_get(cr, uid, [make.partner_id.id], + ['invoice', 'delivery', 'contact']) + default_pricelist = partner_obj.browse(cr, uid, make.partner_id.id, + context).property_product_pricelist.id + fpos_data = partner_obj.browse(cr, uid, make.partner_id.id, context).property_account_position + new_ids = [] + + for case in case_obj.browse(cr, uid, data): + if case.partner_id and case.partner_id.id: + partner_id = case.partner_id.id + fpos = case.partner_id.property_account_position and case.partner_id.property_account_position.id or False + partner_addr = partner_obj.address_get(cr, uid, [case.partner_id.id], + ['invoice', 'delivery', 'contact']) + pricelist = partner_obj.browse(cr, uid, case.partner_id.id, + context).property_product_pricelist.id + else: + partner_id = make.partner_id.id + fpos = fpos_data and fpos_data.id or False + partner_addr = default_partner_addr + pricelist = default_pricelist + + if False in partner_addr.values(): + raise osv.except_osv(_('Data Insufficient!'),_('Customer has no addresses defined!')) + + vals = { + 'origin': 'CRM-Opportunity:%s' % str(case.id), + 'section_id': case.section_id and case.section_id.id or False, + 'picking_policy': make.picking_policy, + 'shop_id': make.shop_id.id, + 'partner_id': partner_id, + 'pricelist_id': pricelist, + 'partner_invoice_id': partner_addr['invoice'], + 'partner_order_id': partner_addr['contact'], + 'partner_shipping_id': partner_addr['delivery'], + 'order_policy': 'manual', + 'date_order': now(), + 'fiscal_position': fpos, + } + + if partner_id: + partner = partner_obj.browse(cr, uid, partner_id, context=context) + vals['user_id'] = partner.user_id and partner.user_id.id or uid + + if make.analytic_account.id: + vals['project_id'] = make.analytic_account.id + new_id = sale_obj.create(cr, uid, vals) + for product_id in make.product_ids: + value = sale_line_obj.product_id_change(cr, uid, [], pricelist, + product_id.id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value'] + value['product_id'] = product_id.id + value['order_id'] = new_id + value['tax_id'] = [(6,0,value['tax_id'])] + sale_line_obj.create(cr, uid, value) + + case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id}) + new_ids.append(new_id) + + if make.close: + case_obj.case_close(cr, uid, data) + + if not new_ids: + return {} + if len(new_ids)<=1: + value = { + 'domain': str([('id', 'in', new_ids)]), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'sale.order', + 'view_id': False, + 'type': 'ir.actions.act_window', + 'res_id': new_ids and new_ids[0] + + } + + + else: + value = { + 'domain': str([('id', 'in', new_ids)]), + 'view_type': 'form', + 'view_mode': 'tree,form', + 'res_model': 'sale.order', + 'view_id': False, + 'type': 'ir.actions.act_window', + 'res_id':new_ids + } + return value + + + _columns = { + 'shop_id': fields.many2one('sale.shop', 'Shop', required = True), + 'partner_id': fields.many2one('res.partner', 'Customer', required = True, help = 'Use this partner if there is no partner on the Opportunity'), + 'picking_policy': fields.selection([('direct','Partial Delivery'), + ('one','Complete Delivery')], 'Picking Policy', required = True), + 'product_ids': fields.many2many('product.product', 'product_sale_rel',\ + 'sale_id', 'product_id', 'Products'), + 'analytic_account': fields.many2one('account.analytic.account', 'Analytic Account'), + 'close': fields.boolean('Close Case', help = 'Check this to close the case after having created the sale order.'), + } + _defaults = { + 'partner_id': _selectPartner, + 'close': lambda *a: 1 + } + +crm_make_sale() +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_crm/wizard/crm_make_sale_view.xml b/addons/sale_crm/wizard/crm_make_sale_view.xml new file mode 100644 index 00000000000..a1da3ed1fec --- /dev/null +++ b/addons/sale_crm/wizard/crm_make_sale_view.xml @@ -0,0 +1,43 @@ +<openerp> + <data> + + <!-- crm make sale's view --> + + <record id="view_crm_make_sale" model="ir.ui.view"> + <field name="name">crm.make.sale.form</field> + <field name="model">crm.make.sale</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Create a Sale Order" > + <group colspan="4"> + <field name="partner_id" required="1"/> + <field name="shop_id" required="1" widget="selection"/> + <field name="analytic_account"/> + <field name="picking_policy"/> + <field name="close" required="1"/> + </group> + <separator string="Products" colspan="4"/> + <field name="product_ids" colspan="4" nolabel="1"/> + <separator colspan="4"/> + <group col="4" colspan="4"> + <label string="" colspan="2"/> + <button special="cancel" string="_Close" icon="gtk-cancel"/> + <button name="makeOrder" string="_Ok" type="object" icon='gtk-ok'/> + </group> + </form> + </field> + </record> + + <!-- crm make sale's action --> + + <record id="action_crm_make_sale" model="ir.actions.act_window"> + <field name="name">Make Quotation</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">crm.make.sale</field> + <field name="view_type">form</field> + <field name="view_mode">form</field> + <field name="target">new</field> + </record> + + </data> +</openerp> diff --git a/addons/sale_crm/wizard/makesale.py b/addons/sale_crm/wizard/makesale.py deleted file mode 100644 index e4aacce1044..00000000000 --- a/addons/sale_crm/wizard/makesale.py +++ /dev/null @@ -1,179 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 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 mx.DateTime import now - -import wizard -import netsvc -import ir -import pooler -from tools.translate import _ - -sale_form = """<?xml version="1.0"?> -<form string="Create a Sale Order"> - <field name="partner_id" required="True"/> - <field name="shop_id" required="True"/> - <field name="analytic_account"/> - <field name="picking_policy" required="True"/> - <field name="close"/> - <newline/> - <field name="products" colspan="4"/> -</form>""" - -sale_fields = { - 'shop_id': {'string': 'Shop', 'type': 'many2one', 'relation': 'sale.shop'}, - 'partner_id': {'string': 'Customer', 'type': 'many2one', - 'relation': 'res.partner', - 'help': 'Use this partner if there is no partner on the case'}, - 'picking_policy': {'string': 'Picking Policy', 'type': 'selection', - 'selection': [('direct', 'Partial Delivery'), ('one', 'Complete Delivery')]}, - 'products': {'string': 'Products', 'type': 'many2many', - 'relation': 'product.product'}, - 'analytic_account': {'string': 'Analytic Account', 'type': 'many2one', - 'relation': 'account.analytic.account'}, - 'close': {'string': 'Close Case', 'type': 'boolean', 'default': lambda *a: 1, - 'help': 'Check this to close the case after having created the sale order.'}, -} - - -class make_sale(wizard.interface): - - def _selectPartner(self, cr, uid, data, context): - case_obj = pooler.get_pool(cr.dbname).get('crm.lead') - case = case_obj.read(cr, uid, data['ids'], ['partner_id']) - return {'partner_id': case[0]['partner_id']} - - def _makeOrder(self, cr, uid, data, context): - pool = pooler.get_pool(cr.dbname) - mod_obj = pool.get('ir.model.data') - result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter') - id = mod_obj.read(cr, uid, result, ['res_id']) - case_obj = pool.get('crm.lead') - sale_obj = pool.get('sale.order') - partner_obj = pool.get('res.partner') - sale_line_obj = pool.get('sale.order.line') - - default_partner_addr = partner_obj.address_get(cr, uid, [data['form']['partner_id']], - ['invoice', 'delivery', 'contact']) - default_pricelist = partner_obj.browse(cr, uid, data['form']['partner_id'], - context).property_product_pricelist.id - fpos_data = partner_obj.browse(cr, uid, data['form']['partner_id'],context).property_account_position - new_ids = [] - - for case in case_obj.browse(cr, uid, data['ids']): - if case.partner_id and case.partner_id.id: - partner_id = case.partner_id.id - fpos = case.partner_id.property_account_position and case.partner_id.property_account_position.id or False - partner_addr = partner_obj.address_get(cr, uid, [case.partner_id.id], - ['invoice', 'delivery', 'contact']) - pricelist = partner_obj.browse(cr, uid, case.partner_id.id, - context).property_product_pricelist.id - else: - partner_id = data['form']['partner_id'] - fpos = fpos_data and fpos_data.id or False - partner_addr = default_partner_addr - pricelist = default_pricelist - - if False in partner_addr.values(): - raise wizard.except_wizard(_('Data Insufficient!'),_('Customer has no addresses defined!')) - - vals = { - 'origin': 'CRM-Opportunity:%s' % str(case.id), - 'section_id': case.section_id and case.section_id.id or False, - 'picking_policy': data['form']['picking_policy'], - 'shop_id': data['form']['shop_id'], - 'partner_id': partner_id, - 'pricelist_id': pricelist, - 'partner_invoice_id': partner_addr['invoice'], - 'partner_order_id': partner_addr['contact'], - 'partner_shipping_id': partner_addr['delivery'], - 'order_policy': 'manual', - 'date_order': now(), - 'fiscal_position': fpos, - } - - if partner_id: - partner = partner_obj.browse(cr, uid, partner_id, context=context) - vals['user_id'] = partner.user_id and partner.user_id.id or uid - - if data['form']['analytic_account']: - vals['project_id'] = data['form']['analytic_account'] - - vals.update( sale_obj.onchange_partner_id(cr, uid, [], partner_id).get('value',{}) ) - new_id = sale_obj.create(cr, uid, vals) - if data['form']['products']: - for product_id in data['form']['products'][0][2]: - value = { - 'price_unit': 0.0, - 'product_id': product_id, - 'order_id': new_id, - } - value.update( sale_line_obj.product_id_change(cr, uid, [], pricelist,product_id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value'] ) - value['tax_id'] = [(6,0,value['tax_id'])] - sale_line_obj.create(cr, uid, value) - - case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id}) - new_ids.append(new_id) - - if data['form']['close']: - case_obj.case_close(cr, uid, data['ids']) - - if not new_ids: - return {} - - if len(new_ids)<=1: - value = { - 'domain': str([('id', 'in', new_ids)]), - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'sale.order', - 'view_id': False, - 'type': 'ir.actions.act_window', - 'res_id': new_ids and new_ids[0] - } - else: - value = { - 'domain': str([('id', 'in', new_ids)]), - 'view_type': 'form', - 'view_mode': 'tree,form', - 'res_model': 'sale.order', - 'view_id': False, - 'type': 'ir.actions.act_window', - 'res_id':new_ids - } - - return value - - states = { - 'init': { - 'actions': [_selectPartner], - 'result': {'type': 'form', 'arch': sale_form, 'fields': sale_fields, - 'state' : [('end', 'Cancel', 'gtk-cancel'),('order', 'Create', 'gtk-apply')]} - }, - 'order': { - 'actions': [], - 'result': {'type': 'action', 'action': _makeOrder, 'state': 'end'} - } - } - -make_sale('crm.opportunity.make_order') - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_margin/i18n/et.po b/addons/sale_margin/i18n/et.po new file mode 100644 index 00000000000..d4178048461 --- /dev/null +++ b/addons/sale_margin/i18n/et.po @@ -0,0 +1,370 @@ +# Estonian 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-11-25 14:28+0000\n" +"PO-Revision-Date: 2010-06-25 18:17+0000\n" +"Last-Translator: lyyser <logard.1961@gmail.com>\n" +"Language-Team: Estonian <et@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-26 03:58+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Customer Refund" +msgstr "Kliendi tagasimakse" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice_product +msgid "report.account.invoice.product" +msgstr "" + +#. module: sale_margin +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product +msgid "Invoices by Product" +msgstr "" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Customer Invoice" +msgstr "Kliendi arve" + +#. module: sale_margin +#: wizard_view:stock.invoice_onshipping,init:0 +msgid "Create invoices" +msgstr "Loo arved" + +#. module: sale_margin +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product +msgid "report.account.invoice.partner.product" +msgstr "" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Supplier Invoice" +msgstr "Tarnija arve" + +#. module: sale_margin +#: field:report.account.invoice,state:0 +#: field:report.account.invoice.category,state:0 +#: field:report.account.invoice.partner,state:0 +#: field:report.account.invoice.partner.product,state:0 +#: field:report.account.invoice.product,state:0 +msgid "State" +msgstr "" + +#. module: sale_margin +#: view:stock.picking:0 +msgid "Create Invoice" +msgstr "Loo arve" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Draft" +msgstr "Mustand" + +#. module: sale_margin +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Vigane mudeli nimi toimingu definitsioonis." + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product +msgid "All Months" +msgstr "Kõik kuud" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all +msgid "report.account.invoice.partner.product.tree" +msgstr "" + +#. module: sale_margin +#: field:report.account.invoice,type:0 +#: field:report.account.invoice.category,type:0 +#: field:report.account.invoice.partner,type:0 +#: field:report.account.invoice.partner.product,type:0 +#: field:report.account.invoice.product,type:0 +#: wizard_field:stock.invoice_onshipping,init,type:0 +msgid "Type" +msgstr "Tüüp" + +#. module: sale_margin +#: wizard_field:stock.invoice_onshipping,init,journal_id:0 +msgid "Destination Journal" +msgstr "Sihtkoha päevik" + +#. module: sale_margin +#: view:stock.picking:0 +msgid "Supplier Invoices" +msgstr "Tarnija arved" + +#. module: sale_margin +#: field:report.account.invoice.partner.product,product_id:0 +#: field:report.account.invoice.product,product_id:0 +msgid "Product" +msgstr "Toode" + +#. module: sale_margin +#: view:report.account.invoice.partner:0 +msgid "Invoices by partner" +msgstr "" + +#. module: sale_margin +#: view:report.account.invoice.category:0 +msgid "Invoices by category" +msgstr "Arved kategooria järgi" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Paid" +msgstr "Makstud" + +#. module: sale_margin +#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create +#: wizard_button:stock.invoice_onshipping,init,create_invoice:0 +msgid "Create invoice" +msgstr "Loo arve" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all +msgid "report.account.invoice.category.tree" +msgstr "" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product +msgid "Invoices by Partner and Product" +msgstr "" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice_category +msgid "report.account.invoice.category" +msgstr "" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product +msgid "This Month" +msgstr "See kuu" + +#. module: sale_margin +#: field:report.account.invoice.category,categ_id:0 +msgid "Categories" +msgstr "Kategooriad" + +#. module: sale_margin +#: field:account.invoice.line,cost_price:0 +#: field:report.account.invoice,cost_price:0 +#: field:report.account.invoice.category,cost_price:0 +#: field:report.account.invoice.partner,cost_price:0 +#: field:report.account.invoice.partner.product,cost_price:0 +#: field:report.account.invoice.product,cost_price:0 +#: field:sale.order.line,purchase_price:0 +msgid "Cost Price" +msgstr "Ostuhind" + +#. module: sale_margin +#: wizard_field:stock.invoice_onshipping,init,group:0 +msgid "Group by partner" +msgstr "Grupeeri partneri järgi" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice_partner +msgid "report.account.invoice.partner" +msgstr "" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner +msgid "Invoices by Partner" +msgstr "" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category +msgid "Invoices by Category" +msgstr "" + +#. module: sale_margin +#: view:report.account.invoice.partner.product:0 +msgid "Invoices by partner and product" +msgstr "" + +#. module: sale_margin +#: field:report.account.invoice,amount:0 +#: field:report.account.invoice.category,amount:0 +#: field:report.account.invoice.partner,amount:0 +#: field:report.account.invoice.partner.product,amount:0 +#: field:report.account.invoice.product,amount:0 +msgid "Amount" +msgstr "Hulk" + +#. module: sale_margin +#: wizard_field:stock.invoice_onshipping,init,invoice_date:0 +msgid "Invoiced date" +msgstr "Arve kuupäeva" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Supplier Refund" +msgstr "Tarnija tagasimakse" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all +msgid "report.account.invoice.partner.tree" +msgstr "" + +#. module: sale_margin +#: field:report.account.invoice,margin:0 +#: field:report.account.invoice.category,margin:0 +#: field:report.account.invoice.partner,margin:0 +#: field:report.account.invoice.partner.product,margin:0 +#: field:report.account.invoice.product,margin:0 +#: field:sale.order,margin:0 +#: field:sale.order.line,margin:0 +msgid "Margin" +msgstr "Veeris" + +#. module: sale_margin +#: field:report.account.invoice,quantity:0 +#: field:report.account.invoice.category,quantity:0 +#: field:report.account.invoice.partner,quantity:0 +#: field:report.account.invoice.partner.product,quantity:0 +#: field:report.account.invoice.product,quantity:0 +msgid "Quantity" +msgstr "Kogus" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Invoices by product" +msgstr "" + +#. module: sale_margin +#: model:ir.module.module,shortdesc:sale_margin.module_meta_information +msgid "Margins in Sale Orders" +msgstr "" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice +msgid "report.account.invoice" +msgstr "" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices +#: view:report.account.invoice:0 +#: view:stock.picking:0 +#: field:stock.picking,invoice_ids:0 +msgid "Invoices" +msgstr "Arved" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Pro-forma" +msgstr "Pro-forma" + +#. module: sale_margin +#: field:report.account.invoice,name:0 +#: field:report.account.invoice.category,name:0 +#: field:report.account.invoice.partner,name:0 +#: field:report.account.invoice.partner.product,name:0 +#: field:report.account.invoice.product,name:0 +msgid "Month" +msgstr "Kuu" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Canceled" +msgstr "Katkestatud" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product +msgid "Invoice" +msgstr "Arve" + +#. module: sale_margin +#: wizard_button:stock.invoice_onshipping,init,end:0 +msgid "Cancel" +msgstr "Katkesta" + +#. module: sale_margin +#: field:report.account.invoice.partner,partner_id:0 +#: field:report.account.invoice.partner.product,partner_id:0 +msgid "Partner" +msgstr "Partner" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all +msgid "report.account.invoice.tree" +msgstr "" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Open" +msgstr "Ava" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all +msgid "report.account.invoice.product.tree" +msgstr "" diff --git a/addons/scrum/scrum.py b/addons/scrum/scrum.py index 40f17319df7..bcd67c757c4 100644 --- a/addons/scrum/scrum.py +++ b/addons/scrum/scrum.py @@ -108,7 +108,7 @@ class scrum_sprint(osv.osv): 'date_stop': fields.date('Ending Date', required=True), 'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."), 'product_owner_id': fields.many2one('res.users', 'Product Owner', required=True,help="The person who is responsible for the product"), - 'scrum_master_id': fields.many2one('res.users', 'Scrum Manager', required=True,help="The person who is maintains the processes for the product"), + 'scrum_master_id': fields.many2one('res.users', 'Scrum Master', required=True,help="The person who is maintains the processes for the product"), 'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'), 'review': fields.text('Sprint Review'), 'retrospective': fields.text('Sprint Retrospective'), @@ -308,9 +308,9 @@ class scrum_meeting(osv.osv): if context is None: context = {} meeting_id = self.browse(cr, uid, ids)[0] - email = meeting_id.sprint_id.scrum_master_id.user_email - if email: - self.email_send(cr, uid, ids, email, context=context) + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email: + self.email_send(cr, uid, ids, meeting_id.sprint_id.scrum_master_id.user_email) else: raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.')) return True @@ -320,9 +320,8 @@ class scrum_meeting(osv.osv): context = {} context.update({'button_send_product_owner': True}) meeting_id = self.browse(cr, uid, ids)[0] - email = meeting_id.sprint_id.product_owner_id.user_email - if email: - self.email_send(cr, uid, ids, email, context=context) + if meeting_id.sprint_id.product_owner_id.user_email: + self.email_send(cr,uid,ids,meeting_id.sprint_id.product_owner_id.user_email) else: raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.')) return True diff --git a/addons/scrum/scrum_view.xml b/addons/scrum/scrum_view.xml index d6a63d4eae6..db4d5d7af81 100644 --- a/addons/scrum/scrum_view.xml +++ b/addons/scrum/scrum_view.xml @@ -34,7 +34,7 @@ <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="grey:state in ('cancel','done');blue:state in ('pending')" string="Product Backlog"> - <field name="sequence" invisible="1"/> + <field name="sequence"/> <field name="name"/> <field name="project_id"/> <field name="sprint_id"/> @@ -152,7 +152,12 @@ domain="[('sprint_id','=',False)]" help="Backlogs Not Assigned To Sprints."/> </field> - <field name="user_id"/> + <field name="user_id"> + <filter icon="terp-project" + string="My Backlogs" + name="my_user_id" + domain="[('user_id','=',uid)]"/> + </field> </group> <newline/> <group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended"> @@ -161,7 +166,10 @@ <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> </group> - + <newline/> + <group expand="0" string="Extended Options..." colspan="4" col="20" groups="base.group_extended"> + <filter string="Editable" icon="terp-folder-blue" domain="[]" context="{'set_editable':'1'}"/> + </group> </search> </field> </record> diff --git a/addons/stock/i18n/es.po b/addons/stock/i18n/es.po index 4b8113738fd..3b8da43d1c7 100644 --- a/addons/stock/i18n/es.po +++ b/addons/stock/i18n/es.po @@ -14,7 +14,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-24 03:46+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: stock diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 0e2f5499ba6..f1348b1427a 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1007,6 +1007,18 @@ class stock_picking(osv.osv): }, context=context) return res + def test_done(self, cr, uid, ids, context={}): + ok = False + for pick in self.browse(cr, uid, ids, context=context): + if not pick.move_lines: + return True + for move in pick.move_lines: + if move.state not in ('cancel','done'): + return False + if move.state=='done': + ok = True + return ok + def test_cancel(self, cr, uid, ids, context={}): """ Test whether the move lines are canceled or not. @return: True or False @@ -1834,11 +1846,10 @@ class stock_move(osv.osv): for id in ids: wf_service.trg_trigger(uid, 'stock.move', id, cr) - # We should remove this picking_obj = self.pool.get('stock.picking') - for pick in picking_obj.browse(cr, uid, picking_ids): - if len([(move.state in ('done','cancelled')) for move in pick.move_lines]) == len(pick.move_lines): - picking_obj.action_done(cr, uid, [pick.id]) + wf_service = netsvc.LocalService("workflow") + for pick_id in picking_ids: + wf_service.trg_write(uid, 'stock.picking', pick_id, cr) for (id,name) in picking_obj.name_get(cr, uid, picking_ids): message = _('Document') + " '" + name + "' "+ _("is processed") diff --git a/addons/stock/stock_workflow.xml b/addons/stock/stock_workflow.xml index 1c82eac49c3..3b9db02ce1f 100644 --- a/addons/stock/stock_workflow.xml +++ b/addons/stock/stock_workflow.xml @@ -67,6 +67,11 @@ <field name="act_to" ref="act_assigned"/> <field name="condition">test_assigned()</field> </record> + <record id="trans_assigned_move_done" model="workflow.transition"> + <field name="act_from" ref="act_assigned"/> + <field name="act_to" ref="act_move"/> + <field name="condition">test_done()</field> + </record> <record id="trans_assigned_move" model="workflow.transition"> <field name="act_from" ref="act_assigned"/> <field name="act_to" ref="act_move"/> diff --git a/addons/stock_location/i18n/es.po b/addons/stock_location/i18n/es.po index 70f2d3a33cd..cd838d6959e 100644 --- a/addons/stock_location/i18n/es.po +++ b/addons/stock_location/i18n/es.po @@ -14,7 +14,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-24 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: stock_location diff --git a/addons/wiki/test/wiki_test00.yml b/addons/wiki/test/wiki_test00.yml index 221aeded790..48cdacab11d 100755 --- a/addons/wiki/test/wiki_test00.yml +++ b/addons/wiki/test/wiki_test00.yml @@ -61,7 +61,7 @@ menu_parent_id: base.menu_base_partner page: wiki.wiki_wiki_openerpwikiediting0 - - I will check that menu is generated properly + I fill in the form and create the menu - !python {model: wiki.create.menu}: | ids = self.search(cr, uid, []) diff --git a/addons/wiki/wizard/wiki_create_menu.py b/addons/wiki/wizard/wiki_create_menu.py index 0b242e655bb..f1b28382976 100644 --- a/addons/wiki/wizard/wiki_create_menu.py +++ b/addons/wiki/wizard/wiki_create_menu.py @@ -23,7 +23,6 @@ from osv import fields, osv class wiki_create_menu(osv.osv_memory): """ Create Menu """ - _name = "wiki.create.menu" _description = "Wizard Create Menu" @@ -42,9 +41,13 @@ class wiki_create_menu(osv.osv_memory): """ mod_obj = self.pool.get('ir.model.data') - action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open') - for menu in self.browse(cr, uid, ids): + action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open') + action_id = mod_obj.copy(cr, uid, action_id, context=context, default={ + 'domain':"[('group_id','=',"+str(context.get('active_id',False))+"]", + "name": menu.menu_name + }) + menu_id = self.pool.get('ir.ui.menu').create(cr, uid, { 'name': menu.menu_name, 'parent_id':menu.menu_parent_id.id, diff --git a/addons/wiki_faq/wiki_faq.xml b/addons/wiki_faq/wiki_faq.xml index 0bf1616fdc2..fdb93660682 100644 --- a/addons/wiki_faq/wiki_faq.xml +++ b/addons/wiki_faq/wiki_faq.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <openerp> - <data noupdate="1"> + <data> <record id="wiki_groups_faq" model="wiki.groups"> <field name="name">Internal FAQ</field> <field name="method">list</field> diff --git a/addons/wiki_quality_manual/wiki_quality_manual.xml b/addons/wiki_quality_manual/wiki_quality_manual.xml index e8601867e4a..9ef451f8a77 100644 --- a/addons/wiki_quality_manual/wiki_quality_manual.xml +++ b/addons/wiki_quality_manual/wiki_quality_manual.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <openerp> - <data noupdate="1"> + <data> <record id="wiki_quality_manual" model="wiki.wiki"> <field name="name">Quality Manual</field> <field name="tags">quality, faq, manual</field> |
