diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index b111cf2b771..f9388706e97 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -514,8 +514,7 @@ class account_move_line(osv.osv): 'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'), 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8), 'balance': fields.function(_balance, fnct_search=_balance_search, string='Balance'), - 'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'Status', readonly=True, - help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'), + 'state': fields.selection([('draft','Unbalanced'), ('valid','Balanced')], 'Status', readonly=True), 'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."), 'tax_amount': fields.float('Tax/Base Amount', digits_compute=dp.get_precision('Account'), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\ "this field will contain the basic amount(without tax)."), diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index c12bd98ae81..1b614a1ee85 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -1078,7 +1078,7 @@ - + @@ -1980,7 +1980,7 @@ - + diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml index dd27cfbab4e..e435c0243e9 100644 --- a/addons/account/data/account_data.xml +++ b/addons/account/data/account_data.xml @@ -127,6 +127,7 @@ Status state + @@ -214,6 +215,7 @@ Status state + @@ -289,6 +291,7 @@ Status state + @@ -370,6 +373,7 @@ Status state + @@ -456,6 +460,7 @@ Status state + diff --git a/addons/account/i18n/es_EC.po b/addons/account/i18n/es_EC.po index 2b0cf878a16..2c0dfe74a6b 100644 --- a/addons/account/i18n/es_EC.po +++ b/addons/account/i18n/es_EC.po @@ -16,8 +16,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-17 04:35+0000\n" -"X-Generator: Launchpad (build 16152)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:40+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: account #: view:account.invoice.report:0 diff --git a/addons/account/i18n/gu.po b/addons/account/i18n/gu.po index 9767f54729b..6bc68b0d26a 100644 --- a/addons/account/i18n/gu.po +++ b/addons/account/i18n/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-17 04:35+0000\n" -"X-Generator: Launchpad (build 16152)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:40+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: account #: view:account.invoice.report:0 diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po index ac1764aff5c..dc633fc41a7 100644 --- a/addons/account/i18n/pt_BR.po +++ b/addons/account/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-17 04:35+0000\n" -"X-Generator: Launchpad (build 16152)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:40+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: account #: view:account.invoice.report:0 diff --git a/addons/account/i18n/ro.po b/addons/account/i18n/ro.po index 58f0c523d93..0fedb0ab76d 100644 --- a/addons/account/i18n/ro.po +++ b/addons/account/i18n/ro.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-10 18:28+0000\n" +"PO-Revision-Date: 2012-10-17 08:24+0000\n" "Last-Translator: filsys \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: 2012-08-28 06:12+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:40+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: account #: view:account.invoice.report:0 @@ -146,6 +146,7 @@ msgstr "Reconciliati" #: field:account.move,ref:0 #: field:account.move.line,ref:0 #: field:account.subscription,ref:0 +#: xsl:account.transfer:0 msgid "Reference" msgstr "Referinta" @@ -164,13 +165,13 @@ msgstr "" "ascundeti termenul plata fara a-l sterge." #. module: account -#: code:addons/account/account_invoice.py:1428 +#: code:addons/account/account_invoice.py:1430 #, python-format msgid "Warning!" msgstr "Avertizare!" #. module: account -#: code:addons/account/account.py:3112 +#: code:addons/account/account.py:3129 #, python-format msgid "Miscellaneous Journal" msgstr "Jurnal Diverse" @@ -235,7 +236,7 @@ msgstr "" "apara pe facturi" #. module: account -#: code:addons/account/account_invoice.py:1241 +#: code:addons/account/account_invoice.py:1254 #, python-format msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" msgstr "Factura '%s' este platita partial: %s%s din %s%s (a mai ramas %s%s)" @@ -251,7 +252,7 @@ msgid "Belgian Reports" msgstr "Rapoarte belgiene" #. module: account -#: code:addons/account/account_move_line.py:1200 +#: code:addons/account/account_move_line.py:1215 #, python-format msgid "You can not add/modify entries in a closed journal." msgstr "Nu puteti adauga/modifica inregistrarile dintr-un jurnal inchis." @@ -300,7 +301,7 @@ msgid "St." msgstr "St." #. module: account -#: code:addons/account/account_invoice.py:551 +#: code:addons/account/account_invoice.py:560 #, python-format msgid "Invoice line account company does not match with invoice company." msgstr "" @@ -600,8 +601,10 @@ msgid "The accountant confirms the statement." msgstr "Contabilul confirma extrasul de cont." #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 #: selection:account.tax,type_tax_use:0 #: selection:account.tax.template,type_tax_use:0 @@ -659,7 +662,7 @@ msgid "Main Sequence must be different from current !" msgstr "Secventa Principala trebuie sa fie diferita de secventa actuala !" #. module: account -#: code:addons/account/account_move_line.py:1251 +#: code:addons/account/account_move_line.py:1266 #, python-format msgid "No period found or more than one period found for the given date." msgstr "" @@ -672,7 +675,7 @@ msgid "Tax Code Amount" msgstr "Valoare Cod Fiscal" #. module: account -#: code:addons/account/account.py:3116 +#: code:addons/account/account.py:3133 #, python-format msgid "SAJ" msgstr "SAJ" @@ -699,8 +702,8 @@ msgid "Journal Period" msgstr "Perioada Jurnal" #. module: account -#: code:addons/account/account_move_line.py:750 -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:766 +#: code:addons/account/account_move_line.py:819 #, python-format msgid "To reconcile the entries company should be the same for all entries" msgstr "" @@ -753,7 +756,6 @@ msgstr "Afisati conturi secundare ierarhic" #. module: account #: selection:account.payment.term.line,value:0 -#: selection:account.tax.template,type:0 msgid "Percent" msgstr "Procent" @@ -781,6 +783,7 @@ msgid "You can only change currency for Draft Invoice !" msgstr "Puteti schimba moneda doar pentru Factura Ciorna!" #. module: account +#: model:ir.actions.report.xml,name:account.account_financial_report #: model:ir.ui.menu,name:account.menu_account_report msgid "Financial Report" msgstr "Raport Financiar" @@ -796,12 +799,13 @@ msgstr "Raport Financiar" #: view:account.journal:0 #: field:account.journal,type:0 #: field:account.move.reconcile,type:0 +#: xsl:account.transfer:0 #: field:report.invoice.created,type:0 msgid "Type" msgstr "Tip" #. module: account -#: code:addons/account/account_invoice.py:738 +#: code:addons/account/account_invoice.py:747 #, python-format msgid "" "Taxes are missing!\n" @@ -938,12 +942,13 @@ msgid "Create 3 Months Periods" msgstr "Creati Perioade de 3 luni" #. module: account +#: report:account.aged_trial_balance:0 #: report:account.overdue:0 msgid "Due" msgstr "Scadent(a)" #. module: account -#: code:addons/account/account.py:1345 +#: code:addons/account/account.py:1353 #, python-format msgid "" "You cannot validate this journal entry because account \"%s\" does not " @@ -1028,7 +1033,7 @@ msgstr "" "contine suma de baza (fara impozit)." #. module: account -#: code:addons/account/account.py:2596 +#: code:addons/account/account.py:2613 #, python-format msgid "I can not locate a parent code for the template account!" msgstr "Nu pot localiza un cod principal pentru contul sablon!" @@ -1061,10 +1066,10 @@ msgid "Code" msgstr "Cod" #. module: account -#: code:addons/account/account.py:2268 +#: code:addons/account/account.py:2285 #: code:addons/account/account_bank_statement.py:357 #: code:addons/account/account_invoice.py:73 -#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account_invoice.py:697 #: code:addons/account/account_move_line.py:173 #, python-format msgid "No Analytic Journal !" @@ -1130,7 +1135,7 @@ msgstr "" "mai multe informatii despre cont si specificul acestuia." #. module: account -#: code:addons/account/account_move_line.py:842 +#: code:addons/account/account_move_line.py:856 #, python-format msgid "" "You have to provide an account for the write off/exchange difference entry !" @@ -1180,7 +1185,7 @@ msgstr "Elemente Neechilibrate Jurnal" #. module: account #: model:account.account.type,name:account.data_account_type_bank #: selection:account.bank.accounts.wizard,account_type:0 -#: code:addons/account/account.py:3003 +#: code:addons/account/account.py:3020 #, python-format msgid "Bank" msgstr "Banca" @@ -1279,7 +1284,7 @@ msgid "The move of this entry line." msgstr "Miscarea acestei linii a inregistrarii." #. module: account -#: code:addons/account/account_move_line.py:1302 +#: code:addons/account/account_move_line.py:1317 #, python-format msgid "" "You can not use this general account in this journal, check the tab 'Entry " @@ -1302,7 +1307,7 @@ msgid "Entry Label" msgstr "Eticheta Inregistrare" #. module: account -#: code:addons/account/account.py:1129 +#: code:addons/account/account.py:1136 #, python-format msgid "You can not modify/delete a journal with entries for this period !" msgstr "" @@ -1388,14 +1393,15 @@ msgid "Taxes" msgstr "Taxe" #. module: account -#: code:addons/account/wizard/account_financial_report.py:69 -#: code:addons/account/wizard/account_report_common.py:144 +#: code:addons/account/wizard/account_financial_report.py:70 +#: code:addons/account/wizard/account_report_common.py:145 #, python-format msgid "Select a starting and an ending period" msgstr "Selectati o perioada de inceput si una de sfarsit" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitandloss0 +#: model:ir.actions.act_window,name:account.action_account_report_pl msgid "Profit and Loss" msgstr "Profit si Pierdere" @@ -1450,6 +1456,7 @@ msgid "Journal Items Analysis" msgstr "Analiza Elementelor din Jurnal" #. module: account +#: report:account.aged_trial_balance:0 #: model:ir.ui.menu,name:account.next_id_22 msgid "Partners" msgstr "Parteneri" @@ -1474,8 +1481,10 @@ msgid "Central Journal" msgstr "Jurnal Central" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.partner.balance,display_partner:0 #: selection:account.report.general.ledger,display_account:0 msgid "With balance is not equal to 0" @@ -1742,7 +1751,7 @@ msgid "Year Sum" msgstr "Suma anuala" #. module: account -#: code:addons/account/account_invoice.py:1429 +#: code:addons/account/account_invoice.py:1431 #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." @@ -1821,7 +1830,7 @@ msgid "Customer Ref:" msgstr "Referinta Client:" #. module: account -#: code:addons/account/account_cash_statement.py:292 +#: code:addons/account/account_cash_statement.py:293 #, python-format msgid "User %s does not have rights to access %s journal !" msgstr "Utilizatorul %s nu are dreptul de a accesa jurnalul %s !" @@ -2156,7 +2165,7 @@ msgid "Pro-forma" msgstr "Pro-forma" #. module: account -#: code:addons/account/account.py:1461 +#: code:addons/account/account.py:1478 #, python-format msgid "" "There is no default default debit account defined \n" @@ -2187,7 +2196,7 @@ msgid "Search Chart of Account Templates" msgstr "Cautati Sabloane Plan de Conturi" #. module: account -#: code:addons/account/account_move_line.py:1277 +#: code:addons/account/account_move_line.py:1292 #, python-format msgid "" "Can not create an automatic sequence for this piece!\n" @@ -2244,7 +2253,7 @@ msgid "Description" msgstr "Descriere" #. module: account -#: code:addons/account/account.py:3119 +#: code:addons/account/account.py:3136 #, python-format msgid "ECNJ" msgstr "ECNJ" @@ -2263,7 +2272,7 @@ msgid "Income Account" msgstr "Cont de venituri" #. module: account -#: code:addons/account/account_invoice.py:370 +#: code:addons/account/account_invoice.py:379 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" msgstr "Nu exista niciun Jurnal Contabil de tipul Vanzare/Achizitie definit!" @@ -2303,6 +2312,7 @@ msgstr "Sablon Produs" #. module: account #: report:account.account.balance:0 #: field:account.aged.trial.balance,fiscalyear_id:0 +#: report:account.aged_trial_balance:0 #: field:account.balance.report,fiscalyear_id:0 #: report:account.central.journal:0 #: field:account.central.journal,fiscalyear_id:0 @@ -2312,6 +2322,7 @@ msgstr "Sablon Produs" #: field:account.common.report,fiscalyear_id:0 #: view:account.entries.report:0 #: field:account.entries.report,fiscalyear_id:0 +#: report:account.financial.report:0 #: field:account.fiscalyear,name:0 #: report:account.general.journal:0 #: field:account.general.journal,fiscalyear_id:0 @@ -2362,7 +2373,7 @@ msgid "Account Line" msgstr "Linie Cont" #. module: account -#: code:addons/account/account.py:1468 +#: code:addons/account/account.py:1485 #, python-format msgid "" "There is no default default credit account defined \n" @@ -2398,7 +2409,7 @@ msgid "Main Sequence" msgstr "Secventa Principala" #. module: account -#: code:addons/account/account_bank_statement.py:402 +#: code:addons/account/account_bank_statement.py:403 #, python-format msgid "" "In order to delete a bank statement, you must first cancel it to delete " @@ -2474,7 +2485,7 @@ msgid "Account Tax Code" msgstr "Cont Cod Fiscal" #. module: account -#: code:addons/account/account_invoice.py:572 +#: code:addons/account/account_invoice.py:581 #, python-format msgid "" "Can't find any account journal of %s type for this company.\n" @@ -2568,7 +2579,7 @@ msgid "Account Model Entries" msgstr "Inregistrari Model Cont" #. module: account -#: code:addons/account/account.py:3117 +#: code:addons/account/account.py:3134 #, python-format msgid "EXJ" msgstr "EXJ" @@ -2666,7 +2677,7 @@ msgid "Accounts" msgstr "Conturi" #. module: account -#: code:addons/account/account_invoice.py:369 +#: code:addons/account/account_invoice.py:378 #, python-format msgid "Configuration Error!" msgstr "Eroare de configurare!" @@ -2790,6 +2801,7 @@ msgstr "" #. module: account #: view:account.aged.trial.balance:0 #: model:ir.actions.act_window,name:account.action_account_aged_balance_view +#: model:ir.actions.report.xml,name:account.account_aged_partner_balance #: model:ir.ui.menu,name:account.menu_aged_trial_balance msgid "Aged Partner Balance" msgstr "Solduri restante partener" @@ -2841,14 +2853,14 @@ msgid "This wizard will create recurring accounting entries" msgstr "Acest wizard va crea inregistrari contabile recurente" #. module: account -#: code:addons/account/account.py:1321 +#: code:addons/account/account.py:1329 #, python-format msgid "No sequence defined on the journal !" msgstr "Nicio secventa nu a fost definita in jurnal !" #. module: account -#: code:addons/account/account.py:2268 -#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account.py:2285 +#: code:addons/account/account_invoice.py:697 #: code:addons/account/account_move_line.py:173 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -2959,7 +2971,7 @@ msgid "Base Code Amount" msgstr "Cuantum Cod Baza" #. module: account -#: code:addons/account/account_invoice.py:392 +#: code:addons/account/account_invoice.py:401 #, python-format msgid "" "You can not delete an invoice which is open or paid. We suggest you to " @@ -2974,7 +2986,7 @@ msgid "Default Sale Tax" msgstr "Taxa de vanzare Implicita" #. module: account -#: code:addons/account/account_invoice.py:1013 +#: code:addons/account/account_invoice.py:1025 #, python-format msgid "Invoice '%s' is validated." msgstr "Factura '%s' este validata." @@ -3015,7 +3027,7 @@ msgid "Fiscal Position" msgstr "Pozitie fiscala" #. module: account -#: code:addons/account/account_invoice.py:735 +#: code:addons/account/account_invoice.py:744 #, python-format msgid "" "Tax base different!\n" @@ -3172,7 +3184,7 @@ msgid "View" msgstr "Vizualizare" #. module: account -#: code:addons/account/account.py:3363 +#: code:addons/account/account.py:3380 #: code:addons/account/account_bank.py:90 #, python-format msgid "BNK" @@ -3244,7 +3256,7 @@ msgstr "Sabloane Planuri de conturi" #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Alegeti optiunile contabile potrivite" #. module: account #: view:report.account.sales:0 @@ -3375,7 +3387,7 @@ msgid "Starting Balance" msgstr "Soldul initial" #. module: account -#: code:addons/account/account_invoice.py:1332 +#: code:addons/account/account_invoice.py:1345 #, python-format msgid "No Partner Defined !" msgstr "Nici un partener definit !" @@ -3431,7 +3443,7 @@ msgid "Chart of Tax" msgstr "Plan de taxe" #. module: account -#: code:addons/account/account_cash_statement.py:314 +#: code:addons/account/account_cash_statement.py:315 #, python-format msgid "The closing balance should be the same than the computed balance!" msgstr "Soldul final trebuie sa fie la fel ca si soldul calculat!" @@ -3516,6 +3528,7 @@ msgstr "Cantitate :" #. module: account #: field:account.aged.trial.balance,period_length:0 +#: report:account.aged_trial_balance:0 msgid "Period Length (days)" msgstr "Durata Perioada (zile)" @@ -3562,7 +3575,7 @@ msgid "Detail" msgstr "Detalii" #. module: account -#: code:addons/account/account_invoice.py:839 +#: code:addons/account/account_invoice.py:850 #, python-format msgid "" "Can not create the invoice !\n" @@ -3582,9 +3595,16 @@ msgid "VAT :" msgstr "TVA :" #. module: account +#: report:account.account.balance:0 +#: report:account.aged_trial_balance:0 #: report:account.central.journal:0 +#: report:account.financial.report:0 +#: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,charts:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -3607,7 +3627,7 @@ msgid "Centralised counterpart" msgstr "Echivalent centralizat" #. module: account -#: code:addons/account/account_move_line.py:584 +#: code:addons/account/account_move_line.py:575 #, python-format msgid "You can not create journal items on a \"view\" account %s %s" msgstr "" @@ -3662,10 +3682,15 @@ msgstr "" #: field:account.subscription.line,date:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 +#: xsl:account.transfer:0 #: selection:account.vat.declaration,filter:0 #: selection:accounting.report,filter:0 #: selection:accounting.report,filter_cmp:0 +#: code:addons/account/report/account_journal.py:195 +#: code:addons/account/report/account_journal.py:198 +#: code:addons/account/report/common_report_header.py:97 #: field:analytic.entries.report,date:0 +#, python-format msgid "Date" msgstr "Data" @@ -3696,7 +3721,7 @@ msgid "Chart of Accounts Template" msgstr "Sablon Plan de Conturi" #. module: account -#: code:addons/account/account.py:2280 +#: code:addons/account/account.py:2297 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " @@ -3708,7 +3733,7 @@ msgstr "" "Va rugam sa ii definiti un partener!" #. module: account -#: code:addons/account/account_move_line.py:837 +#: code:addons/account/account_move_line.py:846 #, python-format msgid "Some entries are already reconciled !" msgstr "Unele inregistrari sunt deja reconciliate !" @@ -3739,6 +3764,8 @@ msgstr "Bugete" #: selection:account.vat.declaration,filter:0 #: selection:accounting.report,filter:0 #: selection:accounting.report,filter_cmp:0 +#: code:addons/account/report/common_report_header.py:100 +#, python-format msgid "No Filters" msgstr "Nici un Filtru" @@ -3824,7 +3851,7 @@ msgid "Analytic Items" msgstr "Elemente Analitice" #. module: account -#: code:addons/account/account_move_line.py:1153 +#: code:addons/account/account_move_line.py:1168 #, python-format msgid "Unable to change tax !" msgstr "Taxa nu poate fi modificata !" @@ -3855,7 +3882,7 @@ msgid "Mapping" msgstr "Mapare" #. module: account -#: code:addons/account/account_invoice.py:921 +#: code:addons/account/account_invoice.py:932 #, python-format msgid "" "You cannot create an invoice on a centralised journal. Uncheck the " @@ -3871,6 +3898,7 @@ msgstr "" #: report:account.analytic.account.inverted.balance:0 #: field:account.bank.statement,name:0 #: field:account.chart.template,name:0 +#: report:account.financial.report:0 #: field:account.model.line,name:0 #: field:account.move.line,name:0 #: field:account.move.reconcile,name:0 @@ -3884,7 +3912,7 @@ msgid "Account Aged Trial balance Report" msgstr "Verificare Raport sold Cont vechi" #. module: account -#: code:addons/account/account_move_line.py:591 +#: code:addons/account/account_move_line.py:582 #, python-format msgid "You can not create journal items on a closed account %s %s" msgstr "Nu puteti crea elemente ale jurnalului intr-un cont inchis %s %s" @@ -4224,7 +4252,7 @@ msgid "Month" msgstr "Luna" #. module: account -#: code:addons/account/account_move_line.py:1216 +#: code:addons/account/account_move_line.py:1231 #, python-format msgid "" "You can not do this modification on a confirmed entry! You can just change " @@ -4285,7 +4313,7 @@ msgid "Account Base Code" msgstr "Cod de baza cont" #. module: account -#: code:addons/account/account_analytic_line.py:93 +#: code:addons/account/account_analytic_line.py:91 #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -4501,7 +4529,7 @@ msgid "Allow Reconciliation" msgstr "Permiteti Reconciliere" #. module: account -#: code:addons/account/account.py:1077 +#: code:addons/account/account.py:1082 #, python-format msgid "" "You can not modify company of this period as some journal items exists." @@ -4537,7 +4565,7 @@ msgid "Recurring Models" msgstr "Modele Recurente" #. module: account -#: code:addons/account/account_move_line.py:1251 +#: code:addons/account/account_move_line.py:1266 #, python-format msgid "Encoding error" msgstr "Inregistrare eroare" @@ -4549,6 +4577,7 @@ msgstr "4" #. module: account #: view:account.invoice:0 +#: xsl:account.transfer:0 msgid "Change" msgstr "Modificati" @@ -4593,7 +4622,7 @@ msgid "Example" msgstr "Exemplu" #. module: account -#: code:addons/account/account_invoice.py:828 +#: code:addons/account/account_invoice.py:839 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -4609,7 +4638,7 @@ msgid "Keep empty to use the income account" msgstr "Lasati necompletat pentru a utiliza contul de venituri" #. module: account -#: code:addons/account/account.py:3299 +#: code:addons/account/account.py:3316 #, python-format msgid "Purchase Tax %.2f%%" msgstr "Taxa Achizitie %.2f%%" @@ -4637,7 +4666,7 @@ msgstr "Reprezentare Conturi" #: selection:account.bank.statement.line,type:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:337 +#: code:addons/account/account_invoice.py:346 #, python-format msgid "Customer" msgstr "Client" @@ -4653,7 +4682,7 @@ msgid "Cancelled Invoice" msgstr "Factura anulata" #. module: account -#: code:addons/account/account.py:1567 +#: code:addons/account/account.py:1584 #, python-format msgid "" "Couldn't create move with currency different from the secondary currency of " @@ -4711,7 +4740,7 @@ msgid "Income Account on Product Template" msgstr "Cont venituri specificat in Sablonul Produsului" #. module: account -#: code:addons/account/account.py:3120 +#: code:addons/account/account.py:3137 #, python-format msgid "MISC" msgstr "DIVERSE" @@ -4719,7 +4748,7 @@ msgstr "DIVERSE" #. module: account #: model:email.template,subject:account.email_template_edi_invoice msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })" -msgstr "${obiect.companie_id.nume} Factura (Ref ${obiect.numar sau 'n/a'})" +msgstr "${object.company_id.name} Factura (Ref ${object.number or 'n/a'})" #. module: account #: help:res.partner,last_reconciliation_date:0 @@ -4738,11 +4767,13 @@ msgstr "An fiscal nou" #: view:account.invoice:0 #: view:account.tax.template:0 #: selection:account.vat.declaration,based_on:0 +#: code:addons/account/report/account_tax_report.py:68 #: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened #: model:ir.actions.act_window,name:account.action_invoice_tree #: model:ir.actions.report.xml,name:account.account_invoices #: view:report.invoice.created:0 #: field:res.partner,invoice_ids:0 +#, python-format msgid "Invoices" msgstr "Facturi" @@ -4885,26 +4916,24 @@ msgid "Journal Items" msgstr "Elementele Jurnalului" #. module: account -#: code:addons/account/account.py:1088 -#: code:addons/account/account.py:1090 -#: code:addons/account/account.py:1321 -#: code:addons/account/account.py:1563 -#: code:addons/account/account.py:1567 -#: code:addons/account/account.py:3368 -#: code:addons/account/account_move_line.py:807 -#: code:addons/account/account_move_line.py:830 -#: code:addons/account/account_move_line.py:832 -#: code:addons/account/account_move_line.py:835 -#: code:addons/account/account_move_line.py:837 +#: code:addons/account/account.py:1095 +#: code:addons/account/account.py:1097 +#: code:addons/account/account.py:1329 +#: code:addons/account/account.py:1580 +#: code:addons/account/account.py:1584 +#: code:addons/account/account.py:3385 +#: code:addons/account/account_move_line.py:823 +#: code:addons/account/account_move_line.py:843 +#: code:addons/account/account_move_line.py:846 #: code:addons/account/report/common_report_header.py:92 #: code:addons/account/wizard/account_change_currency.py:38 #: code:addons/account/wizard/account_change_currency.py:59 #: code:addons/account/wizard/account_change_currency.py:64 #: code:addons/account/wizard/account_change_currency.py:70 -#: code:addons/account/wizard/account_financial_report.py:69 +#: code:addons/account/wizard/account_financial_report.py:70 #: code:addons/account/wizard/account_move_bank_reconcile.py:49 -#: code:addons/account/wizard/account_report_common.py:144 -#: code:addons/account/wizard/account_report_common.py:150 +#: code:addons/account/wizard/account_report_common.py:145 +#: code:addons/account/wizard/account_report_common.py:151 #, python-format msgid "Error" msgstr "Eroare" @@ -5015,7 +5044,7 @@ msgid "Beginning of Period Date" msgstr "Inceputul Datei perioadei" #. module: account -#: code:addons/account/account.py:1351 +#: code:addons/account/account.py:1361 #, python-format msgid "" "You can not modify a posted entry of this journal !\n" @@ -5042,7 +5071,7 @@ msgid "Child Tax Accounts" msgstr "Conturi taxe subordonate" #. module: account -#: code:addons/account/account.py:1090 +#: code:addons/account/account.py:1097 #, python-format msgid "Start period should be smaller then End period" msgstr "" @@ -5066,6 +5095,7 @@ msgstr "Sold Analitic -" #. module: account #: report:account.account.balance:0 #: field:account.aged.trial.balance,target_move:0 +#: report:account.aged_trial_balance:0 #: field:account.balance.report,target_move:0 #: report:account.central.journal:0 #: field:account.central.journal,target_move:0 @@ -5109,6 +5139,8 @@ msgstr "Tipul Perioadei" #: view:account.invoice:0 #: field:account.invoice,payment_ids:0 #: selection:account.vat.declaration,based_on:0 +#: code:addons/account/report/account_tax_report.py:70 +#, python-format msgid "Payments" msgstr "Plati" @@ -5188,7 +5220,7 @@ msgid "Line 1:" msgstr "Linia 1:" #. module: account -#: code:addons/account/account.py:1307 +#: code:addons/account/account.py:1315 #, python-format msgid "Integrity Error !" msgstr "Eroare de integritate!" @@ -5221,6 +5253,7 @@ msgstr "Resultatul reconcilierii" #. module: account #: model:account.financial.report,name:account.account_financial_report_balancesheet0 +#: model:ir.actions.act_window,name:account.action_account_report_bs #: model:ir.ui.menu,name:account.menu_account_report_bs msgid "Balance Sheet" msgstr "Bilant" @@ -5297,6 +5330,7 @@ msgstr "Raport" #: view:account.move.line:0 #: field:account.tax,amount:0 #: field:account.tax.template,amount:0 +#: xsl:account.transfer:0 #: view:analytic.entries.report:0 #: field:analytic.entries.report,amount:0 msgid "Amount" @@ -5480,13 +5514,13 @@ msgid "End of Year Entries Journal" msgstr "Jurnal Inregistrari Sfarsit de an" #. module: account -#: code:addons/account/account.py:3446 +#: code:addons/account/account.py:3463 #: code:addons/account/account_bank_statement.py:338 -#: code:addons/account/account_invoice.py:427 -#: code:addons/account/account_invoice.py:527 -#: code:addons/account/account_invoice.py:542 -#: code:addons/account/account_invoice.py:550 -#: code:addons/account/account_invoice.py:572 +#: code:addons/account/account_invoice.py:436 +#: code:addons/account/account_invoice.py:536 +#: code:addons/account/account_invoice.py:551 +#: code:addons/account/account_invoice.py:559 +#: code:addons/account/account_invoice.py:581 #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" @@ -5593,6 +5627,8 @@ msgstr "Linii de reconciliat" #: field:account.invoice.line,quantity:0 #: field:account.model.line,quantity:0 #: field:account.move.line,quantity:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 #: view:analytic.entries.report:0 #: field:analytic.entries.report,unit_amount:0 #: field:report.account.sales,quantity:0 @@ -5703,6 +5739,7 @@ msgstr "Reconciliere cu Pierderea" #. module: account #: selection:account.payment.term.line,value:0 #: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 msgid "Fixed Amount" msgstr "Suma fixa" @@ -5739,13 +5776,14 @@ msgid "Generate Opening Entries" msgstr "Generati Inregistrari Deschise" #. module: account -#: code:addons/account/account_move_line.py:759 +#: code:addons/account/account_move_line.py:775 #, python-format msgid "Already Reconciled!" msgstr "Deja Reconciliat!" #. module: account #: help:account.tax,type:0 +#: help:account.tax.template,type:0 msgid "The computation method for the tax amount." msgstr "Metoda de calcul pentru valoarea impozitului." @@ -5772,14 +5810,14 @@ msgid "Child Accounts" msgstr "Conturi subordonate" #. module: account -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1229 #, python-format msgid "Move name (id): %s (%s)" msgstr "Nume miscare (id): %s (%s)" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:857 +#: code:addons/account/account_move_line.py:871 #, python-format msgid "Write-Off" msgstr "Pierdere" @@ -5799,7 +5837,7 @@ msgstr "Venit" #: selection:account.bank.statement.line,type:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:339 +#: code:addons/account/account_invoice.py:348 #, python-format msgid "Supplier" msgstr "Furnizor" @@ -5829,7 +5867,7 @@ msgid "Account n°" msgstr "Nr. de cont" #. module: account -#: code:addons/account/account_invoice.py:88 +#: code:addons/account/account_invoice.py:91 #, python-format msgid "Free Reference" msgstr "Referinta gratuita" @@ -5844,7 +5882,9 @@ msgstr "Evaluare" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_aged_partner_balance.py:376 #: code:addons/account/report/account_partner_balance.py:301 +#: code:addons/account/report/account_partner_ledger.py:398 #, python-format msgid "Receivable and Payable Accounts" msgstr "Conturi Incasari si Plati" @@ -5954,7 +5994,7 @@ msgid "Filter by" msgstr "Filtrati dupa" #. module: account -#: code:addons/account/account.py:2256 +#: code:addons/account/account.py:2273 #, python-format msgid "You have a wrong expression \"%(...)s\" in your model !" msgstr "Aveti o expresie \"%(...)s\" gresita in modelul dumneavoastra !" @@ -5965,8 +6005,8 @@ msgid "Entry Date" msgstr "Data inregistrarii" #. module: account -#: code:addons/account/account_move_line.py:1155 -#: code:addons/account/account_move_line.py:1238 +#: code:addons/account/account_move_line.py:1170 +#: code:addons/account/account_move_line.py:1253 #, python-format msgid "You can not use an inactive account!" msgstr "Nu puteti folosi un cont inactiv!" @@ -6007,8 +6047,8 @@ msgid "Number of Days" msgstr "Numarul de zile" #. module: account -#: code:addons/account/account_bank_statement.py:402 -#: code:addons/account/account_invoice.py:392 +#: code:addons/account/account_bank_statement.py:403 +#: code:addons/account/account_invoice.py:401 #: code:addons/account/wizard/account_period_close.py:51 #, python-format msgid "Invalid action !" @@ -6070,7 +6110,7 @@ msgid "Multipication factor for Base code" msgstr "Factor de multiplicare pentru Codul de baza" #. module: account -#: code:addons/account/wizard/account_report_common.py:150 +#: code:addons/account/wizard/account_report_common.py:151 #, python-format msgid "not implemented" msgstr "neimplementat" @@ -6109,6 +6149,8 @@ msgstr "Analiza Inregistrarilor Analitice" #. module: account #: selection:account.aged.trial.balance,direction_selection:0 +#: code:addons/account/report/account_aged_partner_balance.py:381 +#, python-format msgid "Past" msgstr "Trecut" @@ -6395,6 +6437,7 @@ msgstr "Capital" #. module: account #: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 msgid "Percentage" msgstr "Procentaj" @@ -6409,7 +6452,7 @@ msgid "Power" msgstr "Putere" #. module: account -#: code:addons/account/account.py:3368 +#: code:addons/account/account.py:3385 #, python-format msgid "Cannot generate an unused journal code." msgstr "Nu se poate crea un cod de jurnal nefolosit." @@ -6685,8 +6728,8 @@ msgid "You can not remove an account containing journal items." msgstr "Nu puteti sa stergeti un cont care contine elemente ale jurnalului." #. module: account -#: code:addons/account/account_analytic_line.py:145 -#: code:addons/account/account_move_line.py:933 +#: code:addons/account/account_analytic_line.py:143 +#: code:addons/account/account_move_line.py:947 #, python-format msgid "Entries: " msgstr "Inregistrari: " @@ -6702,7 +6745,7 @@ msgid "Currency of the related account journal." msgstr "Moneda jurnalului contabil asociat." #. module: account -#: code:addons/account/account.py:1563 +#: code:addons/account/account.py:1580 #, python-format msgid "Couldn't create move between different companies" msgstr "Nu s-a putut crea miscarea intre companii diferite." @@ -6751,13 +6794,13 @@ msgstr "Stadiul este ciorna" #. module: account #: view:account.move.line:0 -#: code:addons/account/account_move_line.py:1043 +#: code:addons/account/account_move_line.py:1058 #, python-format msgid "Total debit" msgstr "Total debit" #. module: account -#: code:addons/account/account_move_line.py:808 +#: code:addons/account/account_move_line.py:824 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "Inregistrarea \"%s\" nu este valida !" @@ -6831,25 +6874,26 @@ msgstr "Profit & Pierdere (Contul de cheltuieli)" #: code:addons/account/account.py:622 #: code:addons/account/account.py:624 #: code:addons/account/account.py:963 -#: code:addons/account/account.py:1052 -#: code:addons/account/account.py:1129 -#: code:addons/account/account.py:1344 -#: code:addons/account/account.py:1351 -#: code:addons/account/account.py:2280 -#: code:addons/account/account.py:2596 -#: code:addons/account/account_analytic_line.py:92 -#: code:addons/account/account_analytic_line.py:101 +#: code:addons/account/account.py:1057 +#: code:addons/account/account.py:1136 +#: code:addons/account/account.py:1352 +#: code:addons/account/account.py:1359 +#: code:addons/account/account.py:1361 +#: code:addons/account/account.py:2297 +#: code:addons/account/account.py:2613 +#: code:addons/account/account_analytic_line.py:90 +#: code:addons/account/account_analytic_line.py:99 #: code:addons/account/account_bank_statement.py:301 #: code:addons/account/account_bank_statement.py:314 #: code:addons/account/account_bank_statement.py:352 -#: code:addons/account/account_cash_statement.py:292 -#: code:addons/account/account_cash_statement.py:314 -#: code:addons/account/account_invoice.py:808 -#: code:addons/account/account_invoice.py:839 -#: code:addons/account/account_invoice.py:1030 -#: code:addons/account/account_move_line.py:1200 -#: code:addons/account/account_move_line.py:1216 -#: code:addons/account/account_move_line.py:1218 +#: code:addons/account/account_cash_statement.py:293 +#: code:addons/account/account_cash_statement.py:315 +#: code:addons/account/account_invoice.py:819 +#: code:addons/account/account_invoice.py:850 +#: code:addons/account/account_invoice.py:1042 +#: code:addons/account/account_move_line.py:1215 +#: code:addons/account/account_move_line.py:1231 +#: code:addons/account/account_move_line.py:1233 #: code:addons/account/wizard/account_invoice_refund.py:108 #: code:addons/account/wizard/account_invoice_refund.py:110 #: code:addons/account/wizard/account_open_closed_fiscalyear.py:39 @@ -6881,8 +6925,8 @@ msgid "Printed" msgstr "Tiparit" #. module: account -#: code:addons/account/account_move_line.py:584 -#: code:addons/account/account_move_line.py:591 +#: code:addons/account/account_move_line.py:575 +#: code:addons/account/account_move_line.py:582 #, python-format msgid "Error :" msgstr "Eroare :" @@ -6945,7 +6989,7 @@ msgid "Display Ledger Report with One partner per page" msgstr "Afisati Raport Registru cu Un partener pe pagina" #. module: account -#: code:addons/account/account_move_line.py:1218 +#: code:addons/account/account_move_line.py:1233 #, python-format msgid "" "You can not do this modification on a reconciled entry! You can just change " @@ -7115,7 +7159,7 @@ msgid "Total:" msgstr "Total:" #. module: account -#: code:addons/account/account.py:2229 +#: code:addons/account/account.py:2246 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -7153,7 +7197,7 @@ msgid "Taxes used in Sales" msgstr "Taxe folosite in Vanzari" #. module: account -#: code:addons/account/account_invoice.py:495 +#: code:addons/account/account_invoice.py:504 #: code:addons/account/wizard/account_invoice_refund.py:145 #, python-format msgid "Data Insufficient !" @@ -7232,7 +7276,7 @@ msgid "Source Document" msgstr "Document sursa" #. module: account -#: code:addons/account/account.py:1432 +#: code:addons/account/account.py:1449 #, python-format msgid "You can not delete a posted journal entry \"%s\"!" msgstr "Nu puteti sterge o inregistrare in jurnal \"%s\" afisata!" @@ -7347,8 +7391,8 @@ msgid "Are you sure you want to open this invoice ?" msgstr "Sunteti sigur(a) ca doriti sa deschideti aceasta factura ?" #. module: account -#: code:addons/account/account_invoice.py:528 -#: code:addons/account/account_invoice.py:543 +#: code:addons/account/account_invoice.py:537 +#: code:addons/account/account_invoice.py:552 #, python-format msgid "" "Can not find a chart of account, you should create one from the " @@ -7363,7 +7407,7 @@ msgid "Opening Entries Expense Account" msgstr "Inregistrari Deschise Cont de Cheltuieli" #. module: account -#: code:addons/account/account_move_line.py:999 +#: code:addons/account/account_move_line.py:1014 #, python-format msgid "Accounting Entries" msgstr "Inregistrari contabile" @@ -7376,7 +7420,7 @@ msgstr "Sablon Cont Principal" #. module: account #: model:ir.actions.act_window,name:account.action_account_configuration_installer msgid "Configure your Chart of Accounts" -msgstr "" +msgstr "Configurati planul de conturi" #. module: account #: view:account.bank.statement:0 @@ -7502,7 +7546,7 @@ msgstr "" "permita dezvoltatorilor sa creeze taxe specifice intr-un domeniu particular." #. module: account -#: code:addons/account/account.py:1088 +#: code:addons/account/account.py:1095 #, python-format msgid "You should have chosen periods that belongs to the same company" msgstr "Ar fi trebuit sa alegeti perioade care apartin aceleiasi companii" @@ -7533,8 +7577,8 @@ msgid "Reporting" msgstr "Raportare" #. module: account -#: code:addons/account/account_move_line.py:759 -#: code:addons/account/account_move_line.py:842 +#: code:addons/account/account_move_line.py:775 +#: code:addons/account/account_move_line.py:856 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 #: code:addons/account/wizard/account_state_open.py:37 @@ -7631,7 +7675,7 @@ msgid "Sign on Reports" msgstr "Semnati in Rapoarte" #. module: account -#: code:addons/account/wizard/account_fiscalyear_close.py:73 +#: code:addons/account/wizard/account_fiscalyear_close.py:88 #, python-format msgid "The periods to generate opening entries were not found" msgstr "" @@ -7643,7 +7687,7 @@ msgid "Root/View" msgstr "Baza/Vizualizare" #. module: account -#: code:addons/account/account.py:3121 +#: code:addons/account/account.py:3138 #, python-format msgid "OPEJ" msgstr "OPEJ" @@ -7678,13 +7722,14 @@ msgid "Optional Information" msgstr "Informatii optionale" #. module: account -#: code:addons/account/wizard/account_fiscalyear_close.py:84 +#: code:addons/account/wizard/account_fiscalyear_close.py:100 #, python-format msgid "The journal must have default credit and debit account" msgstr "Jurnalul trebuie să aiba cont implicit de debit si de credit" #. module: account #: report:account.general.journal:0 +#: xsl:account.transfer:0 msgid ":" msgstr ":" @@ -7713,13 +7758,13 @@ msgid "Maturity Date" msgstr "Data scadenta" #. module: account -#: code:addons/account/account_move_line.py:1302 +#: code:addons/account/account_move_line.py:1317 #, python-format msgid "Bad account !" msgstr "Cont eronat !" #. module: account -#: code:addons/account/account.py:3108 +#: code:addons/account/account.py:3125 #, python-format msgid "Sales Journal" msgstr "Jurnal Vanzari" @@ -7736,7 +7781,7 @@ msgid "Invoice Tax" msgstr "Factură fiscală" #. module: account -#: code:addons/account/account_move_line.py:1277 +#: code:addons/account/account_move_line.py:1292 #, python-format msgid "No piece number !" msgstr "Lipsă număr bucăţi !" @@ -7791,7 +7836,7 @@ msgstr "Catre" #. module: account #: selection:account.move.line,centralisation:0 -#: code:addons/account/account.py:1518 +#: code:addons/account/account.py:1535 #, python-format msgid "Currency Adjustment" msgstr "Ajustare Moneda" @@ -7846,13 +7891,15 @@ msgstr "Mai" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_aged_partner_balance.py:374 #: code:addons/account/report/account_partner_balance.py:299 +#: code:addons/account/report/account_partner_ledger.py:396 #, python-format msgid "Payable Accounts" msgstr "Conturi Plati" #. module: account -#: code:addons/account/account_invoice.py:732 +#: code:addons/account/account_invoice.py:741 #, python-format msgid "Global taxes defined, but they are not in invoice lines !" msgstr "" @@ -7898,7 +7945,7 @@ msgstr "Nume raport" #: selection:account.bank.accounts.wizard,account_type:0 #: selection:account.entries.report,type:0 #: selection:account.journal,type:0 -#: code:addons/account/account.py:3003 +#: code:addons/account/account.py:3020 #, python-format msgid "Cash" msgstr "Numerar" @@ -7910,15 +7957,15 @@ msgid "Account Destination" msgstr "Destinatie Cont" #. module: account -#: code:addons/account/account.py:1431 -#: code:addons/account/account.py:1460 -#: code:addons/account/account.py:1467 -#: code:addons/account/account_invoice.py:920 -#: code:addons/account/account_move_line.py:1104 -#: code:addons/account/wizard/account_automatic_reconcile.py:152 -#: code:addons/account/wizard/account_fiscalyear_close.py:73 -#: code:addons/account/wizard/account_fiscalyear_close.py:83 -#: code:addons/account/wizard/account_fiscalyear_close.py:86 +#: code:addons/account/account.py:1448 +#: code:addons/account/account.py:1477 +#: code:addons/account/account.py:1484 +#: code:addons/account/account_invoice.py:931 +#: code:addons/account/account_move_line.py:1119 +#: code:addons/account/wizard/account_automatic_reconcile.py:148 +#: code:addons/account/wizard/account_fiscalyear_close.py:88 +#: code:addons/account/wizard/account_fiscalyear_close.py:99 +#: code:addons/account/wizard/account_fiscalyear_close.py:102 #: code:addons/account/wizard/account_move_journal.py:165 #: code:addons/account/wizard/account_report_aged_partner_balance.py:56 #: code:addons/account/wizard/account_report_aged_partner_balance.py:58 @@ -8076,13 +8123,14 @@ msgstr "Fix" #: code:addons/account/account.py:645 #: code:addons/account/account.py:664 #: code:addons/account/account.py:787 -#: code:addons/account/account.py:1077 -#: code:addons/account/account_invoice.py:732 -#: code:addons/account/account_invoice.py:735 -#: code:addons/account/account_invoice.py:738 +#: code:addons/account/account.py:1082 +#: code:addons/account/account_invoice.py:741 +#: code:addons/account/account_invoice.py:744 +#: code:addons/account/account_invoice.py:747 #: code:addons/account/account_move_line.py:97 -#: code:addons/account/account_move_line.py:750 -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:766 +#: code:addons/account/account_move_line.py:819 +#: code:addons/account/wizard/account_fiscalyear_close.py:62 #, python-format msgid "Warning !" msgstr "Avertizare !" @@ -8134,7 +8182,7 @@ msgid "Select a currency to apply on the invoice" msgstr "Selectati o valuta pentru a o aplica pe factura" #. module: account -#: code:addons/account/account.py:3446 +#: code:addons/account/account.py:3463 #, python-format msgid "" "The bank account defined on the selected chart of accounts hasn't a code." @@ -8147,7 +8195,7 @@ msgid "Can not %s draft/proforma/cancel invoice." msgstr "Imposibil de %s o factura ciorna/proforma/anulata." #. module: account -#: code:addons/account/account_invoice.py:810 +#: code:addons/account/account_invoice.py:821 #, python-format msgid "No Invoice Lines !" msgstr "Nici o Linie a Facturii !" @@ -8231,7 +8279,7 @@ msgid "Deferral Method" msgstr "Metoda de tergiversare" #. module: account -#: code:addons/account/account_invoice.py:379 +#: code:addons/account/account_invoice.py:388 #, python-format msgid "Invoice '%s' is paid." msgstr "Factura '%s' este platita." @@ -8299,7 +8347,7 @@ msgid "Associated Partner" msgstr "Partener asociat" #. module: account -#: code:addons/account/account_invoice.py:1332 +#: code:addons/account/account_invoice.py:1345 #, python-format msgid "You must first select a partner !" msgstr "Mai intai trebuie sa selectati un partener !" @@ -8358,7 +8406,7 @@ msgstr "" "fiscale in functie de tara dumneavoastra." #. module: account -#: code:addons/account/account_invoice.py:428 +#: code:addons/account/account_invoice.py:437 #, python-format msgid "" "Can not find a chart of accounts for this company, you should create one." @@ -8382,7 +8430,7 @@ msgid "Choose Fiscal Year" msgstr "Alegeti Anul Fiscal" #. module: account -#: code:addons/account/account.py:3111 +#: code:addons/account/account.py:3128 #, python-format msgid "Purchase Refund Journal" msgstr "Jurnal Rambursare Achizitii" @@ -8475,7 +8523,7 @@ msgid "Compute Code for Taxes Included Prices" msgstr "Cod pentru calculul preţurilor cu taxe incluse" #. module: account -#: code:addons/account/account_invoice.py:1030 +#: code:addons/account/account_invoice.py:1042 #, python-format msgid "" "You can not cancel an invoice which is partially paid! You need to " @@ -8618,7 +8666,7 @@ msgid "current month" msgstr "luna curenta" #. module: account -#: code:addons/account/account.py:1052 +#: code:addons/account/account.py:1057 #, python-format msgid "" "No period defined for this date: %s !\n" @@ -8706,6 +8754,7 @@ msgstr "Jurnal Rambursari" #. module: account #: report:account.account.balance:0 #: report:account.central.journal:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 #: report:account.general.ledger_landscape:0 @@ -8749,7 +8798,7 @@ msgid "The partner account used for this invoice." msgstr "Contul partener folosit pentru aceasta factura." #. module: account -#: code:addons/account/account.py:3296 +#: code:addons/account/account.py:3313 #, python-format msgid "Tax %.2f%%" msgstr "Taxa %.2f%%" @@ -8772,7 +8821,7 @@ msgid "Payment Term Line" msgstr "Linie Termeni de plata" #. module: account -#: code:addons/account/account.py:3109 +#: code:addons/account/account.py:3126 #, python-format msgid "Purchase Journal" msgstr "Jurnal Achizitii" @@ -8859,7 +8908,7 @@ msgid "Unpaid Invoices" msgstr "Facturi neplatite" #. module: account -#: code:addons/account/account_invoice.py:495 +#: code:addons/account/account_invoice.py:504 #, python-format msgid "The payment term of supplier does not have a payment term line!" msgstr "" @@ -8968,7 +9017,7 @@ msgid "Keep empty for all open fiscal years" msgstr "Lasati necompletat pentru toti anii fiscali deschisi" #. module: account -#: code:addons/account/account_move_line.py:1105 +#: code:addons/account/account_move_line.py:1120 #, python-format msgid "The account move (%s) for centralisation has been confirmed!" msgstr "Miscarea contului (%s) pentru centralizare a fost confirmata!" @@ -8983,7 +9032,7 @@ msgstr "" "multi-moneda." #. module: account -#: code:addons/account/account.py:1307 +#: code:addons/account/account.py:1315 #, python-format msgid "" "You can not validate a non-balanced entry !\n" @@ -9068,7 +9117,7 @@ msgid "Contact Address" msgstr "Adresa de contact" #. module: account -#: code:addons/account/account.py:2256 +#: code:addons/account/account.py:2273 #, python-format msgid "Wrong model !" msgstr "Model gresit !" @@ -9109,12 +9158,14 @@ msgstr "Contracte" #: field:account.cashbox.line,starting_id:0 #: field:account.entries.report,reconcile_id:0 #: field:account.financial.report,balance:0 +#: field:account.financial.report,credit:0 +#: field:account.financial.report,debit:0 msgid "unknown" msgstr "necunoscut(a)" #. module: account #: field:account.fiscalyear.close,journal_id:0 -#: code:addons/account/account.py:3113 +#: code:addons/account/account.py:3130 #, python-format msgid "Opening Entries Journal" msgstr "Jurnalul Inregistrarilor de deschidere" @@ -9136,7 +9187,7 @@ msgstr "" "calculat din Raportul Profit & Pierdere" #. module: account -#: code:addons/account/account_invoice.py:808 +#: code:addons/account/account_invoice.py:819 #, python-format msgid "Please define sequence on the journal related to this invoice." msgstr "Va rugam sa definiti secventa din jurnalul asociat acestei facturi." @@ -9227,7 +9278,7 @@ msgid "Period from" msgstr "Perioada de la" #. module: account -#: code:addons/account/account.py:3110 +#: code:addons/account/account.py:3127 #, python-format msgid "Sales Refund Journal" msgstr "Jurnal Rambursare Vanzari" @@ -9274,7 +9325,7 @@ msgid "Purchase Tax(%)" msgstr "Taxa de cumparare(%)" #. module: account -#: code:addons/account/account_invoice.py:810 +#: code:addons/account/account_invoice.py:821 #, python-format msgid "Please create some invoice lines." msgstr "Va rugam sa creati niste linii ale facturii." @@ -9290,7 +9341,7 @@ msgid "Display Detail" msgstr "Afisati Detaliile" #. module: account -#: code:addons/account/account.py:3118 +#: code:addons/account/account.py:3135 #, python-format msgid "SCNJ" msgstr "SCNJ" @@ -9329,8 +9380,6 @@ msgstr "Sfarsitul Perioadei" #: field:account.account.template,financial_report_ids:0 #: model:ir.actions.act_window,name:account.action_account_financial_report_tree #: model:ir.actions.act_window,name:account.action_account_report -#: model:ir.actions.act_window,name:account.action_account_report_bs -#: model:ir.actions.act_window,name:account.action_account_report_pl #: model:ir.ui.menu,name:account.menu_account_reports msgid "Financial Reports" msgstr "Rapoarte Financiare" @@ -9345,6 +9394,7 @@ msgstr "Rapoarte Financiare" #: field:account.common.journal.report,period_from:0 #: field:account.common.partner.report,period_from:0 #: field:account.common.report,period_from:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: field:account.general.journal,period_from:0 #: report:account.general.ledger:0 @@ -9365,6 +9415,7 @@ msgstr "Inceputul Perioadei" #. module: account #: field:account.aged.trial.balance,direction_selection:0 +#: report:account.aged_trial_balance:0 msgid "Analysis Direction" msgstr "Directia Analizei" @@ -9384,7 +9435,7 @@ msgstr "Vizualizare Jurnal" #. module: account #: view:account.move.line:0 -#: code:addons/account/account_move_line.py:1046 +#: code:addons/account/account_move_line.py:1061 #, python-format msgid "Total credit" msgstr "Total credit" @@ -9454,6 +9505,7 @@ msgstr "Extrase de cont" #: report:account.analytic.account.inverted.balance:0 #: report:account.central.journal:0 #: field:account.entries.report,balance:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 #: report:account.general.ledger_landscape:0 @@ -9535,7 +9587,7 @@ msgstr "" "corespondent." #. module: account -#: code:addons/account/wizard/account_automatic_reconcile.py:152 +#: code:addons/account/wizard/account_automatic_reconcile.py:148 #, python-format msgid "You must select accounts to reconcile" msgstr "Trebuie sa selectati conturile care vor fi reconciliate" @@ -9585,7 +9637,7 @@ msgid "Move" msgstr "Miscare" #. module: account -#: code:addons/account/account_move_line.py:1153 +#: code:addons/account/account_move_line.py:1168 #, python-format msgid "You can not change the tax, you should remove and recreate lines !" msgstr "" @@ -9645,7 +9697,7 @@ msgid "Consolidated Children" msgstr "Subordonati reuniti" #. module: account -#: code:addons/account/wizard/account_fiscalyear_close.py:87 +#: code:addons/account/wizard/account_fiscalyear_close.py:103 #, python-format msgid "" "The journal must have centralised counterpart without the Skipping draft " @@ -9710,6 +9762,7 @@ msgstr "" #: field:account.common.journal.report,period_to:0 #: field:account.common.partner.report,period_to:0 #: field:account.common.report,period_to:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: field:account.general.journal,period_to:0 #: report:account.general.ledger:0 @@ -9772,6 +9825,7 @@ msgstr "Inregistrare Abonament" #. module: account #: report:account.account.balance:0 #: field:account.aged.trial.balance,date_from:0 +#: report:account.aged_trial_balance:0 #: field:account.balance.report,date_from:0 #: report:account.central.journal:0 #: field:account.central.journal,date_from:0 @@ -9779,6 +9833,7 @@ msgstr "Inregistrare Abonament" #: field:account.common.journal.report,date_from:0 #: field:account.common.partner.report,date_from:0 #: field:account.common.report,date_from:0 +#: report:account.financial.report:0 #: field:account.fiscalyear,date_start:0 #: report:account.general.journal:0 #: field:account.general.journal,date_from:0 @@ -9824,7 +9879,7 @@ msgid "Unreconciled" msgstr "Nereconciliat" #. module: account -#: code:addons/account/account_invoice.py:828 +#: code:addons/account/account_invoice.py:839 #, python-format msgid "Bad total !" msgstr "Total gresit !" @@ -9892,7 +9947,7 @@ msgid "Comparison" msgstr "Comparatie" #. module: account -#: code:addons/account/account_invoice.py:372 +#: code:addons/account/account_invoice.py:381 #, python-format msgid "Unknown Error" msgstr "Eroare necunoscuta" @@ -9931,6 +9986,7 @@ msgstr "Validati Miscarea Contului" #: report:account.analytic.account.inverted.balance:0 #: report:account.central.journal:0 #: field:account.entries.report,credit:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 #: report:account.general.ledger_landscape:0 @@ -10038,9 +10094,11 @@ msgstr "Inregistrari Analitice in ultimele 30 de zile" #: view:accounting.report:0 #: selection:accounting.report,filter:0 #: selection:accounting.report,filter_cmp:0 +#: code:addons/account/report/common_report_header.py:99 #: model:ir.actions.act_window,name:account.action_account_period_form #: model:ir.ui.menu,name:account.menu_action_account_period_form #: model:ir.ui.menu,name:account.next_id_23 +#, python-format msgid "Periods" msgstr "Perioade" @@ -10212,6 +10270,7 @@ msgstr "Afisat" #: field:account.common.journal.report,date_to:0 #: field:account.common.partner.report,date_to:0 #: field:account.common.report,date_to:0 +#: report:account.financial.report:0 #: field:account.fiscalyear,date_stop:0 #: report:account.general.journal:0 #: field:account.general.journal,date_to:0 @@ -10259,7 +10318,7 @@ msgid "No detail" msgstr "Niciun detaliu" #. module: account -#: code:addons/account/account_analytic_line.py:102 +#: code:addons/account/account_analytic_line.py:100 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -10297,6 +10356,7 @@ msgid "Verification Total" msgstr "Verificare Total" #. module: account +#: report:account.aged_trial_balance:0 #: report:account.analytic.account.balance:0 #: report:account.analytic.account.inverted.balance:0 #: report:account.analytic.account.quantity_cost_ledger:0 @@ -10317,6 +10377,7 @@ msgstr "Jurnal: Toate" #. module: account #: field:account.account,company_id:0 +#: report:account.account.balance:0 #: field:account.aged.trial.balance,company_id:0 #: field:account.analytic.journal,company_id:0 #: field:account.balance.report,company_id:0 @@ -10331,7 +10392,9 @@ msgstr "Jurnal: Toate" #: field:account.entries.report,company_id:0 #: field:account.fiscal.position,company_id:0 #: field:account.fiscalyear,company_id:0 +#: report:account.general.journal:0 #: field:account.general.journal,company_id:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,company_id:0 #: field:account.invoice,company_id:0 #: field:account.invoice.line,company_id:0 @@ -10341,6 +10404,8 @@ msgstr "Jurnal: Toate" #: view:account.journal:0 #: field:account.journal,company_id:0 #: field:account.journal.period,company_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 #: field:account.model,company_id:0 #: field:account.move,company_id:0 #: field:account.move.line,company_id:0 @@ -10505,6 +10570,7 @@ msgstr "Factura furnizor" #: report:account.analytic.account.inverted.balance:0 #: report:account.central.journal:0 #: field:account.entries.report,debit:0 +#: report:account.financial.report:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 #: report:account.general.ledger_landscape:0 @@ -10538,6 +10604,8 @@ msgstr "Eroare! Nu puteti crea sabloane de cont recurente." #. module: account #: selection:account.print.journal,sort_selection:0 +#: code:addons/account/report/account_journal.py:197 +#, python-format msgid "Journal Entry Number" msgstr "Numarul Inregistrarii in Jurnal" @@ -10557,7 +10625,7 @@ msgstr "" "elemente ale jurnalului!" #. module: account -#: code:addons/account/account_move_line.py:832 +#: code:addons/account/account_move_line.py:843 #, python-format msgid "Entry is already reconciled" msgstr "Inregistrarea este deja reconciliata" @@ -10599,8 +10667,10 @@ msgstr "" "conturi devalorizate." #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 msgid "With movements" msgstr "Cu miscari" @@ -10706,7 +10776,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Descriere in facturi" #. module: account #: model:ir.model,name:account.model_account_analytic_chart @@ -10724,8 +10794,8 @@ msgid "Statistic Reports" msgstr "Rapoarte Statistice" #. module: account -#: code:addons/account/account_move_line.py:1155 -#: code:addons/account/account_move_line.py:1238 +#: code:addons/account/account_move_line.py:1170 +#: code:addons/account/account_move_line.py:1253 #, python-format msgid "Bad account!" msgstr "Cont gresit !" @@ -10756,7 +10826,7 @@ msgid "Accounts Mapping" msgstr "Reprezentare Conturi" #. module: account -#: code:addons/account/account_invoice.py:364 +#: code:addons/account/account_invoice.py:373 #, python-format msgid "Invoice '%s' is waiting for validation." msgstr "Factura '%s' asteapta validarea." @@ -10881,74 +10951,71 @@ msgid "" " " msgstr "" "\n" -"Buna ziua${obiect.adresa_factura_id.nume si ' ' sau " -"''}${obiect.adresa_factura_id.nume sau ''},\n" -" \n" -"O factura noua este disponibila pentru ${obiect.partener_id.nume}:\n" -" | Numar factura: *${obiect.numar}*\n" -" | Total factura: *${obiect.suma_total} ${obiect.moneda_id.nume}*\n" -" | Data facturii: ${obiect.data_facturii}\n" -" % daca obiect.origine:\n" -" | Referinta comenzii: ${obiect.origine}\n" -" % endif\n" -" | Contactul dumneavoastra: ${obiect.utilizator_id.nume} " -"${obiect.utilizator_id.utilizator_e-mail si " -"'<%s>'%(obiect.utilizator_id.utilizator_e-mail) sau ''}\n" -" \n" -"Puteti vizualiza documentul facturii, sa il descarcati si sa o platiti " -"online folosind link-ul urmator:\n" -" ${ctx.get('edi_web_url_vizualizare') sau 'n/a'}\n" -" \n" -"% daca obiect.companie_id.cont_paypal si obiect.tip in ('iesire_factura', " -"'intrare_rambursare'):\n" -" <% \n" -" nume_companie = cotare(obiect.companie_id.nume)\n" -" inv_numar = cotare(obiect.numar)\n" -" cont_paypal = cotare(obiect.companie_id.cont_paypal)\n" -" inv_suma = cotare(str(obiect.suma_total))\n" -" moneda_nume = cotare (obiect.moneda_id.nume)\n" -" url_paypal = \"https://www.paypal.com/cgi-" +"Buna ziua ${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"O noua factura a fost generata pentru ${object.partner_id.name}:\n" +"| Numar factura: *${object.number}*\n" +"| Total factura: *${object.amount_total} ${object.currency_id.name}*\n" +"| Data factura: ${object.date_invoice}\n" +"% if object.origin:\n" +"| Referinta comanda: ${object.origin}\n" +"% endif\n" +"| Agentul dumneavoastra: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"Puteti vizualiza documentul, sa il descarcati sau sa il platiti online " +"accesand urmatorul link:\n" +"${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<%\n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" "bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" -" " "\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" "=OpenERP_Invoice_PayNow_%s\" % \\\n" -" " "(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" "\n" -" %>\n" -" De asemenea, este posibil sa platiti direct cu :\n" -" ${paypal_url}\n" -" % endif\n" -" \n" -"Daca aveti intrebari, nu ezitati sa ne contactati.\n" -" \n" +"%>\n" +"Este posibil sa platiti direct cu Paypal:\n" +"${paypal_url}\n" +"% endif\n" +"\n" +"Daca aveti intrebari va rugam sa ne contactati.\n" +"\n" +"\n" +"Multumim ca a-ti ales ${object.company_id.name}!\n" "\n" -"Va multumim ca ati ales ${obiect.companie_id.nume}!\n" -" \n" "\n" "--\n" -" ${obiect.utilizator_id.nume} ${obiect.utilizator_id.utilizator_e-mail " -"si'<%s>'%(obiect.utilizator_id.utilizator_e-mail) sau ''}\n" -" ${obiect.companie_id.nume}\n" -" % daca obiect.companie_id.strada:\n" -" ${obiect.companie_id.strada sau ''}\n" -" % endif\n" -" % daca obiect.companie_id.strada2:\n" -" ${obiect.companie_id.strada2}\n" -" % endif\n" -" % daca obiect.companie_id.oras sau obiect.companie_id.cod postal:\n" -" ${obiect.companie_id.cod postal sau ''} ${obiect.companie_id.oras sau ''}\n" -" % endif\n" -" % daca obiect.companie_id.tara_id:\n" -" ${obiect.companie_id.stat_id si ('%s, ' % obiect.companie_id.stat_id.nume) " -"sau ''} ${obiect.companie_id.tara_id.nume sau ''}\n" -" % endif\n" -" % daca obiect.companie_id.telefon:\n" -" Telefon: ${obiect.companie_id.telefon}\n" -" % endif\n" -" % daca obiect.companie_id.pagina_de_internet:\n" -" ${obiect.companie_id.pagina_de_internet sau ''}\n" -" % endif\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Telefon: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" " " #. module: account @@ -11018,6 +11085,7 @@ msgstr "wizard.cont.addtmpl" #. module: account #: field:account.aged.trial.balance,result_selection:0 +#: report:account.aged_trial_balance:0 #: field:account.common.partner.report,result_selection:0 #: report:account.partner.balance:0 #: field:account.partner.balance,result_selection:0 @@ -11096,6 +11164,8 @@ msgstr "Termen" #. module: account #: selection:account.aged.trial.balance,direction_selection:0 +#: code:addons/account/report/account_aged_partner_balance.py:383 +#, python-format msgid "Future" msgstr "La termen" diff --git a/addons/account/static/src/js/account_move_reconciliation.js b/addons/account/static/src/js/account_move_reconciliation.js index 89ceb5be6fa..e8bf24fb27f 100644 --- a/addons/account/static/src/js/account_move_reconciliation.js +++ b/addons/account/static/src/js/account_move_reconciliation.js @@ -106,8 +106,10 @@ openerp.account = function (instance) { result.context = _.extend(result.context || {}, additional_context); result.flags = result.flags || {}; result.flags.new_window = true; - return self.do_action(result, function () { - self.do_search(self.last_domain, self.last_context, self.last_group_by); + return self.do_action(result, { + on_close: function () { + self.do_search(self.last_domain, self.last_context, self.last_group_by); + } }); }); }); diff --git a/addons/account_asset/i18n/ro.po b/addons/account_asset/i18n/ro.po index 70cbf186849..ff62213c156 100644 --- a/addons/account_asset/i18n/ro.po +++ b/addons/account_asset/i18n/ro.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-04-18 07:47+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-10-17 08:25+0000\n" +"Last-Translator: filsys \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:41+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: account_asset #: view:account.asset.asset:0 @@ -440,12 +440,12 @@ msgstr "Metoda Timp" #. module: account_asset #: view:account.asset.category:0 msgid "Analytic Information" -msgstr "" +msgstr "Informatii analitice" #. module: account_asset #: view:asset.modify:0 msgid "Asset Durations to Modify" -msgstr "" +msgstr "Durata de modificat" #. module: account_asset #: constraint:account.move.line:0 @@ -622,7 +622,7 @@ msgstr "Prorata Temporis" #. module: account_asset #: view:account.asset.category:0 msgid "Accounting Information" -msgstr "" +msgstr "Informații contabile" #. module: account_asset #: model:ir.model,name:account_asset.model_account_invoice diff --git a/addons/base_import/static/src/css/import.css b/addons/base_import/static/src/css/import.css index 21e598ff707..07b193c3dc4 100644 --- a/addons/base_import/static/src/css/import.css +++ b/addons/base_import/static/src/css/import.css @@ -1,3 +1,54 @@ +.oe_import{ + display: inline-block; + width: 600px; + padding: 16px; +} +.oe_import > p { + margin-left: 8px; + margin-right: 8px; + text-align: justify +} + +/* ----------- IMPORT BOX ----------- */ + +.oe_import .oe_import_box{ + margin: 16px; + padding: 16px; + background: #F0EEEE; + border-radius: 3px; + border: solid 1px #dddddd; +} +.oe_import .oe_import_toggle{ + margin-top: 8px; +} +.oe_import .oe_import_options{ + margin-top: 8px; +} +.oe_import .oe_import_options input{ + width: 150px; +} + +.oe_import a.oe_import_toggle { + display: block; +} +.oe_import a.oe_import_toggle:before { + content: '+' +} + +.oe_import .oe_import_options p { + margin: 0; + padding: 0; +} +.oe_import .oe_import_options label { + display: inline-block; + width: 100px; + height:32px; + line-height:32px; + text-align: right; +} + +/* ----------- INITIAL SETUP ------------ */ + .openerp .oe_list_buttons .oe_alternative { visibility: visible; } @@ -25,38 +76,85 @@ display: block; } -.oe_import .oe_import_error_report ul .oe_import_report_error { - background-color: #FFD9DB; -} -.oe_import .oe_import_error_report ul .oe_import_report_warning { - background-color: #FEFFD9; -} -.oe_import .oe_import_error_report ul .oe_import_report_info { - background-color: #d3ffd3; -} - .oe_import .oe_import_noheaders { color: #888; } -.oe_import a.oe_import_toggle { - display: block; -} -.oe_import a.oe_import_toggle:before { - content: '> ' -} - -.oe_import .oe_import_options p { - margin: 0; - padding: 0; -} -.oe_import .oe_import_options label { - display: inline-block; - width: 8em; - text-align: right; -} .oe_import_selector ul, .oe_import_selector li { margin: 0; padding: 0; } + +/* ------------- ERRORS AND WARNINGS REPORT ------------ */ + +.oe_import .oe_import_error_report ul{ + padding-left: 16px; +} +.oe_import .oe_import_report { + margin-right: 16px; + padding: 4px; + list-style: none; + border-bottom: solid 1px rgba(0,0,0,0.05); +} +.oe_import .oe_import_report:first-child{ + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.oe_import .oe_import_report:last-child{ + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + border-bottom: none; +} +.oe_import .oe_import_report_error { + background-color: #FFD9DB; + color: #AF5F5E; +} +.oe_import .oe_import_report_error:last-of-type{ + border-bottom:none; +} +.oe_import .oe_import_report_warning { + background-color: #FEFFD9; + color: #918743; +} +.oe_import .oe_import_report_warning:last-of-type{ + border-bottom:none; +} +.oe_import .oe_import_report_info { + background-color: #d3ffd3; +} +.oe_import .oe_import_report_info:last-of-type{ + border-bottom:none; +} + +/* ------------- THE CSV TABLE ------------ */ + +.oe_import .oe_import_grid{ + margin: 16px; + border-radius:3px; + border: solid 1px #909090; +} +.oe_import .oe_import_grid tr{ + height:16px; +} +.oe_import .oe_import_grid tr.oe_import_grid-header:first-child{ + height: 24px; + background: #909090; + color: white; +} +.oe_import .oe_import_grid tr:nth-child(odd){ + background: rgba(0,0,0,0.05); +} +.oe_import .oe_import_grid td{ + padding: 2px; + padding-left: 4px; +} +.oe_import .oe_import_grid tr.oe_import_grid-header td:not(:last-child){ + border-right: 1px solid #707070; +} +.oe_import .oe_import_grid td:not(:last-child){ + border-right: 1px solid #D0D0D0; +} + + + diff --git a/addons/base_import/static/src/js/import.js b/addons/base_import/static/src/js/import.js index 33c86e88b2c..043630afc48 100644 --- a/addons/base_import/static/src/js/import.js +++ b/addons/base_import/static/src/js/import.js @@ -53,8 +53,10 @@ openerp.base_import = function (instance) { params: { model: self.dataset.model } - }, void 0, void 0, function () { - self.reload(); + }, { + on_reverse_breadcrumb: function () { + self.reload(); + }, }); return false; }); diff --git a/addons/base_import/static/src/xml/import.xml b/addons/base_import/static/src/xml/import.xml index 1c57c40c9db..4f721032d1d 100644 --- a/addons/base_import/static/src/xml/import.xml +++ b/addons/base_import/static/src/xml/import.xml @@ -21,24 +21,26 @@ class="oe_import_csv" target="_blank">.CSV file to import. If you need a sample importable file, you can use the export tool to generate one.

- - - -
- - File Format Options… -
-

- - - -

+
+ + + +
+ + File Format Options… +
+

+ + + +

+
@@ -54,7 +56,7 @@ simpler especially when the file has many columns.

- +

Frequently Asked Questions

diff --git a/addons/document_page/i18n/pt_BR.po b/addons/document_page/i18n/pt_BR.po index 564a93831e1..abe8036dac8 100644 --- a/addons/document_page/i18n/pt_BR.po +++ b/addons/document_page/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-17 04:36+0000\n" -"X-Generator: Launchpad (build 16152)\n" +"X-Launchpad-Export-Date: 2012-10-18 04:41+0000\n" +"X-Generator: Launchpad (build 16160)\n" #. module: document_page #: field:document.page.type,template:0 diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 37dca4ceddb..73337d92ab0 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -175,7 +175,7 @@ class email_template(osv.osv): 'res_model': 'mail.compose.message', 'src_model': src_obj, 'view_type': 'form', - 'context': "{'default_composition_mode': 'mass_mail', 'default_template_id' : %d}" % (template.id), + 'context': "{'default_composition_mode': 'mass_mail', 'default_template_id' : %d, 'default_use_template': True}" % (template.id), 'view_mode':'form,tree', 'view_id': res_id, 'target': 'new', diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index c0cb7fc92e5..fe6f85da544 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -24,7 +24,8 @@ import tools from osv import osv from osv import fields -class mail_compose_message(osv.osv_memory): + +class mail_compose_message(osv.TransientModel): _inherit = 'mail.compose.message' def _get_templates(self, cr, uid, context=None): diff --git a/addons/email_template/wizard/mail_compose_message_view.xml b/addons/email_template/wizard/mail_compose_message_view.xml index 655f5b9d0c2..a33135ca098 100644 --- a/addons/email_template/wizard/mail_compose_message_view.xml +++ b/addons/email_template/wizard/mail_compose_message_view.xml @@ -8,38 +8,15 @@ - - - diff --git a/addons/mail/tests/test_mail.py b/addons/mail/tests/test_mail.py index 5928e62cdaa..311ea3d15b2 100644 --- a/addons/mail/tests/test_mail.py +++ b/addons/mail/tests/test_mail.py @@ -135,7 +135,9 @@ class test_mail(TestMailMockups): self.res_users = self.registry('res.users') self.res_partner = self.registry('res.partner') - self.user_demo = self.registry('ir.model.data').get_object_reference(self.cr, self.uid, 'base', 'user_demo')[1] + # Test users + self.user_demo_id = self.registry('ir.model.data').get_object_reference(self.cr, self.uid, 'base', 'user_demo')[1] + self.user_admin = self.res_users.browse(self.cr, self.uid, self.uid) # Mock send_get_mail_body to test its functionality without other addons override self._send_get_mail_body = self.registry('mail.mail').send_get_mail_body @@ -148,6 +150,7 @@ class test_mail(TestMailMockups): # create a 'pigs' group that will be used through the various tests self.group_pigs_id = self.mail_group.create(self.cr, self.uid, {'name': 'Pigs', 'description': 'Fans of Pigs, unite !'}) + self.group_pigs = self.mail_group.browse(self.cr, self.uid, self.group_pigs_id) def tearDown(self): # Remove mocks @@ -155,6 +158,7 @@ class test_mail(TestMailMockups): super(test_mail, self).tearDown() def test_00_message_process(self): + """ Testing incoming emails processing. """ cr, uid = self.cr, self.uid # Incoming mail creates a new mail_group "frogs" self.assertEqual(self.mail_group.search(cr, uid, [('name', '=', 'frogs')]), []) @@ -193,18 +197,15 @@ class test_mail(TestMailMockups): self.assertEqual(new_mail.body, '\n
\nPlease call me as soon as possible this afternoon!\n\n--\nSylvie\n
\n', 'plaintext mail incorrectly parsed') - def test_10_many2many_reference_field(self): + def test_10_followers_function_field(self): """ Tests designed for the many2many function field 'follower_ids'. We will test to perform writes using the many2many commands 0, 3, 4, 5 and 6. """ - cr, uid = self.cr, self.uid - user_admin = self.res_users.browse(cr, uid, uid) - group_pigs = self.mail_group.browse(cr, uid, self.group_pigs_id) + cr, uid, user_admin, group_pigs = self.cr, self.uid, self.user_admin, self.group_pigs - # Create partner Bert Poilu + # Data: create partner Bert Poilu partner_bert_id = self.res_partner.create(cr, uid, {'name': 'Bert Poilu'}) - - # Create 'disturbing' values in mail.followers: same res_id, other res_model; same res_model, other res_id + # Data: create 'disturbing' values in mail.followers: same res_id, other res_model; same res_model, other res_id group_dummy_id = self.mail_group.create(cr, uid, {'name': 'Dummy group'}) self.mail_followers.create(cr, uid, @@ -257,9 +258,7 @@ class test_mail(TestMailMockups): def test_11_message_followers_and_subtypes(self): """ Tests designed for the subscriber API as well as message subtypes """ - cr, uid = self.cr, self.uid - user_admin = self.res_users.browse(cr, uid, uid) - group_pigs = self.mail_group.browse(cr, uid, self.group_pigs_id) + cr, uid, user_admin, group_pigs = self.cr, self.uid, self.user_admin, self.group_pigs # Data: user Raoul user_raoul_id = self.res_users.create(cr, uid, {'name': 'Raoul Grosbedon', 'login': 'raoul'}) user_raoul = self.res_users.browse(cr, uid, user_raoul_id) @@ -281,7 +280,6 @@ class test_mail(TestMailMockups): group_pigs.refresh() # Test: 2 followers (Admin and Raoul) follower_ids = [follower.id for follower in group_pigs.message_follower_ids] - self.assertEqual(len(follower_ids), 2, 'There should be 2 Pigs fans') self.assertEqual(set(follower_ids), set([user_raoul.partner_id.id, user_admin.partner_id.id]), 'Admin and Raoul should be the only 2 Pigs fans') # Test: Raoul follows default subtypes fol_ids = self.mail_followers.search(cr, uid, [('res_model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id), ('partner_id', '=', user_raoul.partner_id.id)]) @@ -307,19 +305,16 @@ class test_mail(TestMailMockups): # CASE2: test mail_thread fields # ---------------------------------------- - group_pigs.refresh() - self.assertEqual(set(group_pigs.message_subtype_data.keys()), set(['comment', 'mt_mg_def', 'mt_all_def', 'mt_mg_nodef', 'mt_all_nodef']), 'mail.group available subtypes incorrect') - self.assertFalse(group_pigs.message_subtype_data['comment']['followed'], 'Admin should not follow comments in pigs') - self.assertTrue(group_pigs.message_subtype_data['mt_mg_nodef']['followed'], 'Admin should follow mt_mg_nodef in pigs') - self.assertTrue(group_pigs.message_subtype_data['mt_all_nodef']['followed'], 'Admin should follow mt_all_nodef in pigs') + subtype_data = group_pigs._get_subscription_data(None, None)[group_pigs.id]['message_subtype_data'] + self.assertEqual(set(subtype_data.keys()), set(['comment', 'mt_mg_def', 'mt_all_def', 'mt_mg_nodef', 'mt_all_nodef']), 'mail.group available subtypes incorrect') + self.assertFalse(subtype_data['comment']['followed'], 'Admin should not follow comments in pigs') + self.assertTrue(subtype_data['mt_mg_nodef']['followed'], 'Admin should follow mt_mg_nodef in pigs') + self.assertTrue(subtype_data['mt_all_nodef']['followed'], 'Admin should follow mt_all_nodef in pigs') def test_20_message_post(self): """ Tests designed for message_post. """ - cr, uid = self.cr, self.uid + cr, uid, user_admin, group_pigs = self.cr, self.uid, self.user_admin, self.group_pigs self.res_users.write(cr, uid, [uid], {'signature': 'Admin', 'email': 'a@a'}) - user_admin = self.res_users.browse(cr, uid, uid) - group_pigs = self.mail_group.browse(cr, uid, self.group_pigs_id) - # 1 - Bert Tartopoils, with email, should receive emails for comments and emails p_b_id = self.res_partner.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'b@b'}) # 2 - Carine Poilvache, with email, should never receive emails @@ -345,11 +340,12 @@ class test_mail(TestMailMockups): # CASE1: post comment, body and subject specified # ---------------------------------------- + # 1. Post a new comment on Pigs self._init_mock_build_email() msg_id = self.mail_group.message_post(cr, uid, self.group_pigs_id, body=_body1, subject=_subject, type='comment', subtype='mt_comment') message = self.mail_message.browse(cr, uid, msg_id) sent_emails = self._build_email_kwargs_list - # Test: notifications have been deleted + # Test: mail.mail notifications have been deleted self.assertFalse(self.mail_mail.search(cr, uid, [('mail_message_id', '=', msg_id)]), 'mail.mail notifications should have been auto-deleted!') # Test: mail_message: subject is _subject, body is _body1 (no formatting done) self.assertEqual(message.subject, _subject, 'mail.message subject incorrect') @@ -377,19 +373,18 @@ class test_mail(TestMailMockups): # CASE2: post an email with attachments, parent_id, partner_ids # ---------------------------------------- - # TESTS: automatic subject, signature in body_html, attachments propagation + # 1. Post a new email comment on Pigs self._init_mock_build_email() msg_id2 = self.mail_group.message_post(cr, uid, self.group_pigs_id, body=_body2, type='email', subtype='mt_comment', partner_ids=[(6, 0, [p_d_id])], parent_id=msg_id, attachments=_attachments) message = self.mail_message.browse(cr, uid, msg_id2) sent_emails = self._build_email_kwargs_list self.assertFalse(self.mail_mail.search(cr, uid, [('mail_message_id', '=', msg_id2)]), 'mail.mail notifications should have been auto-deleted!') - # Test: mail_message: subject is False, body is _body2 (no formatting done), parent_id is msg_id self.assertEqual(message.subject, False, 'mail.message subject incorrect') self.assertEqual(message.body, html_sanitize(_body2), 'mail.message body incorrect') self.assertEqual(message.parent_id.id, msg_id, 'mail.message parent_id incorrect') - # Test: sent_email: email send by server: correct subject, body, body_alternative + # Test: sent_email: email send by server: correct automatic subject, body, body_alternative self.assertEqual(len(sent_emails), 2, 'sent_email number of sent emails incorrect') for sent_email in sent_emails: self.assertEqual(sent_email['subject'], _mail_subject, 'sent_email subject incorrect') @@ -413,13 +408,11 @@ class test_mail(TestMailMockups): self.assertIn((attach.name, attach.datas.decode('base64')), _attachments, 'mail.message attachment name / data incorrect') - def test_21_message_compose_wizard(self): + def test_25_message_compose_wizard(self): """ Tests designed for the mail.compose.message wizard. """ - cr, uid = self.cr, self.uid + cr, uid, user_admin, group_pigs = self.cr, self.uid, self.user_admin, self.group_pigs mail_compose = self.registry('mail.compose.message') self.res_users.write(cr, uid, [uid], {'signature': 'Admin', 'email': 'a@a'}) - user_admin = self.res_users.browse(cr, uid, uid) - group_pigs = self.mail_group.browse(cr, uid, self.group_pigs_id) group_bird_id = self.mail_group.create(cr, uid, {'name': 'Bird', 'description': 'Bird resistance'}) group_bird = self.mail_group.browse(cr, uid, group_bird_id) @@ -434,7 +427,6 @@ class test_mail(TestMailMockups): ] _attachments_test = [('first.txt', 'My first attachment'), ('second.txt', 'My second attachment')] - # Create partners # 1 - Bert Tartopoils, with email, should receive emails for comments and emails p_b_id = self.res_partner.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'b@b'}) # 2 - Carine Poilvache, with email, should never receive emails @@ -470,7 +462,6 @@ class test_mail(TestMailMockups): msg_pids = [partner.id for partner in message.partner_ids] test_pids = [p_b_id, p_c_id, p_d_id] notif_ids = self.mail_notification.search(cr, uid, [('message_id', '=', message.id)]) - self.assertEqual(len(notif_ids), 3, 'mail.message: too much notifications created') self.assertEqual(set(msg_pids), set(test_pids), 'mail.message partner_ids incorrect') @@ -531,12 +522,13 @@ class test_mail(TestMailMockups): def test_40_needaction(self): """ Tests for mail.message needaction. """ - cr, uid = self.cr, self.uid - group_pigs = self.mail_group.browse(cr, uid, self.group_pigs_id) - group_pigs_demo = self.mail_group.browse(cr, self.user_demo, self.group_pigs_id) - user_admin = self.res_users.browse(cr, uid, uid) + cr, uid, user_admin, group_pigs = self.cr, self.uid, self.user_admin, self.group_pigs + user_demo = self.res_users.browse(cr, uid, self.user_demo_id) + group_pigs_demo = self.mail_group.browse(cr, self.user_demo_id, self.group_pigs_id) + na_admin_base = self.mail_message._needaction_count(cr, uid, domain=[]) + na_demo_base = self.mail_message._needaction_count(cr, user_demo.id, domain=[]) - # Demo values: check unread notification = needaction on mail.message + # Test: number of unread notification = needaction on mail.message notif_ids = self.mail_notification.search(cr, uid, [ ('partner_id', '=', user_admin.partner_id.id), ('read', '=', False) @@ -544,36 +536,32 @@ class test_mail(TestMailMockups): na_count = self.mail_message._needaction_count(cr, uid, domain=[]) self.assertEqual(len(notif_ids), na_count, 'unread notifications count does not match needaction count') - na_count1 = self.mail_message._needaction_count(cr, uid, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) - # Post 2 message on group_pigs as admin, 3 messages as demo user + # Do: post 2 message on group_pigs as admin, 3 messages as demo user for dummy in range(2): group_pigs.message_post(body='My Body', subtype='mt_comment') for dummy in range(3): group_pigs_demo.message_post(body='My Demo Body', subtype='mt_comment') - # Check there are 4 new needaction on mail.message + # Test: admin has 3 new notifications (from demo), and 3 new needaction notif_ids = self.mail_notification.search(cr, uid, [ ('partner_id', '=', user_admin.partner_id.id), ('read', '=', False) ]) - na_count = self.mail_message._needaction_count(cr, uid, domain=[]) - self.assertEqual(len(notif_ids), na_count, 'unread notifications count does not match needaction count') - - # Check there are 4 needaction on mail.message with particular domain - na_count = self.mail_message._needaction_count(cr, uid, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) + self.assertEqual(len(notif_ids), na_admin_base + 3, 'Admin should have 3 new unread notifications') + na_admin = self.mail_message._needaction_count(cr, uid, domain=[]) + na_admin_group = self.mail_message._needaction_count(cr, uid, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) + self.assertEqual(na_admin, na_admin_base + 3, 'Admin should have 3 new needaction') + self.assertEqual(na_admin_group, 3, 'Admin should have 3 needaction related to Pigs') + # Test: demo has 0 new notifications (not a follower, not receiving its own messages), and 0 new needaction notif_ids = self.mail_notification.search(cr, uid, [ - ('partner_id', '=', user_admin.partner_id.id), - ('read', '=', False), - ('message_id.model','=','mail.group'), - ('message_id.res_id','=',self.group_pigs_id) + ('partner_id', '=', user_demo.partner_id.id), + ('read', '=', False) ]) - self.assertEqual(len(notif_ids), na_count, 'posted message count does not match needaction count') - - na_count3 = self.mail_message._needaction_count(cr, self.user_demo, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) - self.assertEqual(na_count3-na_count1, 0, 'demo has 0 message: not a follower and do not follow his own messages') - - na_count2 = self.mail_message._needaction_count(cr, uid, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) - self.assertEqual(na_count2-na_count1, 3, 'admin has 3 messages: 0 from itself as they are marked as read, 3 from demo') + self.assertEqual(len(notif_ids), na_demo_base + 0, 'Demo should have 0 new unread notifications') + na_demo = self.mail_message._needaction_count(cr, user_demo.id, domain=[]) + na_demo_group = self.mail_message._needaction_count(cr, user_demo.id, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)]) + self.assertEqual(na_demo, na_demo_base + 0, 'Demo should have 0 new needaction') + self.assertEqual(na_demo_group, 0, 'Demo should have 0 needaction related to Pigs') def test_50_thread_parent_resolution(self): """Verify parent/child relationships are correctly established when processing incoming mails""" diff --git a/addons/mail/tests/test_mail_access_rights.py b/addons/mail/tests/test_mail_access_rights.py index 4d40c66fc81..544191205b8 100644 --- a/addons/mail/tests/test_mail_access_rights.py +++ b/addons/mail/tests/test_mail_access_rights.py @@ -102,53 +102,69 @@ class test_mail_access_rights(test_mail.TestMailMockups): """ Test mail_message search override about access rights. """ self.assertTrue(1 == 1, 'Test not implemented, do not replace by return True') - # def test_10_mail_flow_access_rights(self): - # """ Test a Chatter-looks alike flow. """ - # cr, uid = self.cr, self.uid - # partner_bert_id, partner_raoul_id = self.partner_bert_id, self.partner_raoul_id - # user_bert_id, user_raoul_id = self.user_bert_id, self.user_raoul_id + def test_10_mail_flow_access_rights(self): + """ Test a Chatter-looks alike flow. """ + cr, uid = self.cr, self.uid + mail_compose = self.registry('mail.compose.message') + partner_bert_id, partner_raoul_id = self.partner_bert_id, self.partner_raoul_id + user_bert_id, user_raoul_id = self.user_bert_id, self.user_raoul_id - # # Prepare groups: Pigs (employee), Jobs (public) - # self.mail_group.message_post(cr, uid, self.group_pigs_id, body='Message') - # self.group_jobs_id = self.mail_group.create(cr, uid, {'name': 'Jobs', 'public': 'public'}) + # Prepare groups: Pigs (employee), Jobs (public) + self.mail_group.message_post(cr, uid, self.group_pigs_id, body='Message') + self.group_jobs_id = self.mail_group.create(cr, uid, {'name': 'Jobs', 'public': 'public'}) - # # ---------------------------------------- - # # CASE1: Bert, without groups - # # ---------------------------------------- - # # Do: Bert creates a group, should crash because perm_create only for employees - # self.assertRaises(except_orm, - # self.mail_group.create, - # cr, user_bert_id, {'name': 'Bert\'s Group'}) - # # Do: Bert reads Jobs basic fields, ok because public = read access on the group - # self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['name', 'description']) - # # Do: Bert browse Pigs, ok (no direct browse of partners) - # self.mail_group.browse(cr, user_bert_id, self.group_jobs_id) - # # Do: Bert reads Jobs messages, ok because read access on the group => read access on its messages - # jobs_message_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_ids'])['message_ids'] - # self.mail_message.read(cr, user_bert_id, jobs_message_ids) - # # Do: Bert reads Jobs followers, ko because partner are accessible to employees or partner manager - # jobs_followers_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_follower_ids'])['message_follower_ids'] - # self.assertRaises(except_orm, - # self.res_partner.read, - # cr, user_bert_id, jobs_followers_ids) - # # Do: Bert comments Jobs, ko because no write access on the group and not in the followers - # self.assertRaises(except_orm, - # self.mail_group.message_post, - # cr, user_bert_id, self.group_jobs_id, body='I love Pigs') - # # Do: add Bert to jobs followers - # self.mail_group.message_subscribe(cr, uid, [self.group_jobs_id], [partner_bert_id]) - # # Do: Bert comments Jobs, ok because he is now in the followers - # self.mail_group.message_post(cr, user_bert_id, self.group_jobs_id, body='I love Pigs') + # ---------------------------------------- + # CASE1: Bert, without groups + # ---------------------------------------- + # Do: Bert creates a group, should crash because perm_create only for employees + self.assertRaises(except_orm, + self.mail_group.create, + cr, user_bert_id, {'name': 'Bert\'s Group'}) - # # Do: Bert reads Pigs, should crash because mail.group security=groups only for employee group - # self.assertRaises(except_orm, - # self.mail_group.read, - # cr, user_bert_id, self.group_pigs_id) + # Do: Bert reads Jobs basic fields, ok because public = read access on the group + self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['name', 'description']) + # Do: Bert browse Pigs, ok (no direct browse of partners) + self.mail_group.browse(cr, user_bert_id, self.group_jobs_id) + # Do: Bert reads Jobs messages, ok because read access on the group => read access on its messages + jobs_message_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_ids'])['message_ids'] + self.mail_message.read(cr, user_bert_id, jobs_message_ids) + # Do: Bert reads Jobs followers, ko because partner are accessible to employees or partner manager + jobs_followers_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_follower_ids'])['message_follower_ids'] + self.assertRaises(except_orm, + self.res_partner.read, + cr, user_bert_id, jobs_followers_ids) + # Do: Bert comments Jobs, ko because no write access on the group and not in the followers + self.assertRaises(except_orm, + self.mail_group.message_post, + cr, user_bert_id, self.group_jobs_id, body='I love Pigs') + # Do: add Bert to jobs followers + self.mail_group.message_subscribe(cr, uid, [self.group_jobs_id], [partner_bert_id]) + # Do: Bert comments Jobs, ok because he is now in the followers + self.mail_group.message_post(cr, user_bert_id, self.group_jobs_id, body='I love Pigs') - # # ---------------------------------------- - # # CASE1: Raoul, employee - # # ---------------------------------------- - # # Do: Bert read Pigs, ok because public - # self.mail_group.read(cr, user_raoul_id, self.group_pigs_id) - # # Do: Bert read Jobs, ok because group_public_id = employee - # self.mail_group.read(cr, user_raoul_id, self.group_jobs_id) + # Do: Bert reads Pigs, should crash because mail.group security=groups only for employee group + self.assertRaises(except_orm, + self.mail_group.read, + cr, user_bert_id, self.group_pigs_id) + + # Do: Bert create a mail.compose.message record, because he uses the wizard + compose_id = mail_compose.create(cr, user_bert_id, + {'subject': 'Subject', 'body_text': 'Body text', 'partner_ids': []}, + # {'subject': 'Subject', 'body_text': 'Body text', 'partner_ids': [(4, p_c_id), (4, p_d_id)]}, + {'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_jobs_id}) + mail_compose.send_mail(cr, user_bert_id, [compose_id]) + + self.user_demo_id = self.registry('ir.model.data').get_object_reference(self.cr, self.uid, 'base', 'user_demo')[1] + compose_id = mail_compose.create(cr, self.user_demo_id, + {'subject': 'Subject', 'body_text': 'Body text', 'partner_ids': []}, + # {'subject': 'Subject', 'body_text': 'Body text', 'partner_ids': [(4, p_c_id), (4, p_d_id)]}, + {'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_jobs_id}) + mail_compose.send_mail(cr, self.user_demo_id, [compose_id]) + + # ---------------------------------------- + # CASE2: Raoul, employee + # ---------------------------------------- + # Do: Bert read Pigs, ok because public + self.mail_group.read(cr, user_raoul_id, self.group_pigs_id) + # Do: Bert read Jobs, ok because group_public_id = employee + self.mail_group.read(cr, user_raoul_id, self.group_jobs_id) diff --git a/addons/mail/update.py b/addons/mail/update.py index 0e10ee0a7f1..9e35391bf52 100644 --- a/addons/mail/update.py +++ b/addons/mail/update.py @@ -41,6 +41,8 @@ def get_sys_logs(cr, uid): nbr_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True)], count=True) nbr_active_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True), ("date", ">=", limit_date_str)], count=True) user = pool.get("res.users").browse(cr, uid, uid) + + web_base_url = safe_eval(self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', 'False')) msg = { "dbuuid": dbuuid, "nbr_users": nbr_users, @@ -51,6 +53,7 @@ def get_sys_logs(cr, uid): "db_create_date": db_create_date, "version": release.version, "language": user.lang, + "web_base_url": web_base_url, } msg.update(pool.get("res.company").read(cr,uid,[1],["name","email","phone"])[0]) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 7d75c67b942..b68aae14521 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -81,11 +81,7 @@ class mail_compose_message(osv.TransientModel): elif composition_mode == 'comment' and model and res_id: vals = self.get_record_data(cr, uid, model, res_id, context=context) elif composition_mode == 'mass_mail' and model and active_ids: - if context.get('default_template_id'): - vals = self.pool.get('email.template').generate_email(cr, uid, context.get('default_template_id'), res_id, context=context) - vals.update({'content_subtype': 'html'}) - else: - vals = {'model': model, 'res_id': res_id, 'content_subtype': 'html'} + vals = {'model': model, 'res_id': res_id, 'content_subtype': 'html'} else: vals = {'model': model, 'res_id': res_id} if composition_mode: @@ -229,22 +225,13 @@ class mail_compose_message(osv.TransientModel): mass_mail_mode = wizard.composition_mode == 'mass_mail' active_model_pool = self.pool.get(wizard.model if wizard.model else 'mail.thread') - if wizard.content_subtype == 'html': - if not wizard.body: - return False - body = wizard.body - else: # wizard.content_subtype == 'plain': - if not wizard.body_text: - return False - body = '
%s
' % tools.ustr(wizard.body_text or '') - # wizard works in batch mode: [res_id] or active_ids res_ids = active_ids if mass_mail_mode and wizard.model and active_ids else [wizard.res_id] for res_id in res_ids: # default values, according to the wizard options post_values = { 'subject': wizard.subject if wizard.content_subtype == 'html' else False, - 'body': body, + 'body': wizard.body if wizard.content_subtype == 'html' else '
%s
' % tools.ustr(wizard.body_text), 'parent_id': wizard.parent_id and wizard.parent_id.id, 'partner_ids': [(4, partner.id) for partner in wizard.partner_ids], 'attachments': [(attach.datas_fname or attach.name, base64.b64decode(attach.datas)) for attach in wizard.attachment_ids], @@ -258,13 +245,13 @@ class mail_compose_message(osv.TransientModel): post_values['attachments'] += new_attachments post_values.update(email_dict) # post the message - id=active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype='mt_comment', context=context, **post_values) + active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype='mt_comment', context=context, **post_values) # post process: update attachments, because id is not necessarily known when adding attachments in Chatter # self.pool.get('ir.attachment').write(cr, uid, [attach.id for attach in wizard.attachment_ids], { # 'res_id': wizard.id, 'res_model': wizard.model or False}, context=context) - - return {'type': 'ir.actions.act_window_close', 'res_model':'mail.compose.message', 'id': id} + + return {'type': 'ir.actions.act_window_close'} def render_message(self, cr, uid, wizard, res_id, context=None): """ Generate an email from the template for given (wizard.model, res_id) diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml index 7329992f8ed..ce86e0bacfd 100644 --- a/addons/mail/wizard/mail_compose_message_view.xml +++ b/addons/mail/wizard/mail_compose_message_view.xml @@ -6,17 +6,19 @@ mail.compose.message
- - - - - + + + + + + + - + /> - @@ -30,68 +32,11 @@