summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2012-10-26 09:57:15 +0200
committerFabien Pinckaers <fp@tinyerp.com>2012-10-26 09:57:15 +0200
commitdd3e728fb60cc91e2a8cf0fcc455c225a53df7b2 (patch)
tree8615fbd18b69474277a6e70a4d9986c3c9337b7b
parente08f2e5102dac500f1a1422fa9fc7a2ec43c7bb9 (diff)
parent93be12ab1e1bd607b3a4f04f69a310622a4205ed (diff)
[MERGE] + improve hr_timesheet
bzr revid: fp@tinyerp.com-20121026075715-kq910tdzhc1uul3l
-rw-r--r--addons/account/account.py9
-rw-r--r--addons/account/account_bank_statement.py4
-rw-r--r--addons/account/account_invoice.py15
-rw-r--r--addons/account/account_invoice_view.xml47
-rw-r--r--addons/account/account_move_line.py9
-rw-r--r--addons/account/account_view.xml28
-rw-r--r--addons/account/i18n/zh_CN.po468
-rw-r--r--addons/account/installer.py9
-rw-r--r--addons/account/project/project_view.xml2
-rw-r--r--addons/account/report/account_invoice_report.py2
-rw-r--r--addons/account/report/account_print_overdue.rml2
-rw-r--r--addons/account/static/src/js/account_move_reconciliation.js9
-rw-r--r--addons/account/test/account_validate_account_move.yml7
-rw-r--r--addons/account_analytic_plans/i18n/ru.po19
-rw-r--r--addons/account_asset/account_asset.py6
-rw-r--r--addons/account_cancel/i18n/es_MX.po39
-rw-r--r--addons/account_check_writing/i18n/pl.po199
-rw-r--r--addons/account_payment/account_payment.py9
-rw-r--r--addons/account_voucher/account_voucher.py10
-rw-r--r--addons/account_voucher/report/account_voucher_sales_receipt.py2
-rw-r--r--addons/account_voucher/test/account_voucher.yml1
-rw-r--r--addons/account_voucher/test/sales_payment.yml5
-rw-r--r--addons/account_voucher/test/sales_receipt.yml1
-rw-r--r--addons/account_voucher/voucher_sales_purchase_view.xml4
-rw-r--r--addons/analytic/analytic.py22
-rw-r--r--addons/anonymization/anonymization.py75
-rw-r--r--addons/anonymization/anonymization_view.xml1
-rw-r--r--addons/anonymization/i18n/mn.po4
-rw-r--r--addons/auth_openid/i18n/pl.po112
-rw-r--r--addons/auth_signup/res_users.py2
-rw-r--r--addons/base_action_rule/i18n/zh_CN.po10
-rw-r--r--addons/base_calendar/base_calendar.py8
-rw-r--r--addons/base_calendar/base_calendar_view.xml110
-rw-r--r--addons/base_calendar/crm_meeting_view.xml9
-rw-r--r--addons/base_crypt/crypt.py18
-rw-r--r--addons/base_import/static/src/css/import.css6
-rw-r--r--addons/base_import/static/src/js/import.js2
-rw-r--r--addons/base_vat/base_vat_view.xml2
-rw-r--r--addons/crm/__openerp__.py1
-rw-r--r--addons/crm/crm.py2
-rw-r--r--addons/crm/crm_lead.py10
-rw-r--r--addons/crm/crm_meeting_view.xml18
-rw-r--r--addons/crm/crm_phonecall.py8
-rw-r--r--addons/crm/crm_phonecall_menu.xml2
-rw-r--r--addons/crm/crm_phonecall_view.xml18
-rw-r--r--addons/crm/i18n/zh_CN.po22
-rw-r--r--addons/crm/wizard/crm_phonecall_to_phonecall.py2
-rw-r--r--addons/crm_claim/crm_claim.py15
-rw-r--r--addons/crm_claim/crm_claim_view.xml30
-rw-r--r--addons/crm_claim/i18n/ru.po50
-rw-r--r--addons/crm_helpdesk/crm_helpdesk.py8
-rw-r--r--addons/crm_helpdesk/i18n/ru.po46
-rw-r--r--addons/crm_partner_assign/partner_geo_assign.py2
-rw-r--r--addons/decimal_precision/i18n/pl.po49
-rw-r--r--addons/document/std_index.py2
-rw-r--r--addons/document_page/i18n/ru.po14
-rw-r--r--addons/edi/__init__.py2
-rw-r--r--addons/event/event.py4
-rw-r--r--addons/event/event_view.xml22
-rw-r--r--addons/event_moodle/wizard_moodle.xml8
-rw-r--r--addons/event_sale/event_sale.py2
-rw-r--r--addons/hr/hr.py2
-rw-r--r--addons/hr/hr_view.xml4
-rw-r--r--addons/hr/i18n/lt.po29
-rw-r--r--addons/hr/i18n/zh_CN.po12
-rw-r--r--addons/hr_evaluation/hr_evaluation_view.xml2
-rw-r--r--addons/hr_evaluation/i18n/zh_CN.po10
-rw-r--r--addons/hr_expense/hr_expense.py12
-rw-r--r--addons/hr_expense/hr_expense_installer_view.xml2
-rw-r--r--addons/hr_expense/hr_expense_view.xml6
-rw-r--r--addons/hr_holidays/hr_holidays.py8
-rw-r--r--addons/hr_payroll/hr_payroll.py8
-rw-r--r--addons/hr_recruitment/board_hr_recruitment_statistical_view.xml6
-rw-r--r--addons/hr_recruitment/hr_recruitment.py12
-rw-r--r--addons/hr_recruitment/hr_recruitment_demo.yml7
-rw-r--r--addons/hr_recruitment/hr_recruitment_view.xml2
-rw-r--r--addons/hr_recruitment/report/hr_recruitment_report.py2
-rw-r--r--addons/hr_timesheet/hr_timesheet.py7
-rw-r--r--addons/hr_timesheet/hr_timesheet_view.xml16
-rw-r--r--addons/hr_timesheet/i18n/zh_CN.po10
-rw-r--r--addons/hr_timesheet/test/test_hr_timesheet.yml2
-rw-r--r--addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py4
-rw-r--r--addons/hr_timesheet_invoice/hr_timesheet_invoice.py15
-rw-r--r--addons/hr_timesheet_sheet/hr_timesheet_sheet.py111
-rw-r--r--addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml124
-rw-r--r--addons/hr_timesheet_sheet/i18n/mk.po1031
-rw-r--r--addons/hr_timesheet_sheet/static/src/js/timesheet.js4
-rw-r--r--addons/hr_timesheet_sheet/static/src/xml/timesheet.xml10
-rw-r--r--addons/l10n_ar/l10n_ar_wizard.xml10
-rw-r--r--addons/l10n_at/l10n_chart_at_wizard.xml8
-rw-r--r--addons/l10n_be/l10n_be_wizard.yml6
-rw-r--r--addons/l10n_ca/l10n_ca_wizard.xml10
-rw-r--r--addons/l10n_ch/wizard.xml10
-rw-r--r--addons/l10n_cl/l10n_cl_wizard.xml11
-rw-r--r--addons/l10n_cn/l10n_chart_cn_wizard.xml9
-rw-r--r--addons/l10n_cr/l10n_wizard.xml8
-rw-r--r--addons/l10n_de/l10n_de_wizard.xml9
-rw-r--r--addons/l10n_ec/l10n_chart_ec_wizard.xml11
-rw-r--r--addons/l10n_es/l10n_es_wizard.xml6
-rw-r--r--addons/l10n_fr/l10n_fr_wizard.xml9
-rw-r--r--addons/l10n_gr/l10n_gr_wizard.xml9
-rw-r--r--addons/l10n_gt/l10n_gt_base.xml10
-rw-r--r--addons/l10n_hn/l10n_hn_base.xml8
-rw-r--r--addons/l10n_in/l10n_in_wizard.xml9
-rw-r--r--addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py2
-rw-r--r--addons/l10n_in_hr_payroll/report/payment_advice_report.py2
-rw-r--r--addons/l10n_in_hr_payroll/report/payslip_report.py2
-rw-r--r--addons/l10n_it/l10n_chart_it_generic.xml9
-rw-r--r--addons/l10n_lu/l10n_lu_wizard.xml8
-rw-r--r--addons/l10n_ma/l10n_ma_wizard.xml8
-rw-r--r--addons/l10n_mx/i18n/es_MX.po77
-rw-r--r--addons/l10n_mx/l10n_chart_mx_wizard.xml9
-rw-r--r--addons/l10n_nl/l10n_nl_wizard.xml17
-rw-r--r--addons/l10n_pe/l10n_pe_wizard.xml8
-rw-r--r--addons/l10n_pl/l10n_chart_pl_wizard.xml9
-rw-r--r--addons/l10n_ro/l10n_chart_ro_wizard.xml9
-rw-r--r--addons/l10n_syscohada/l10n_syscohada_wizard.xml10
-rw-r--r--addons/l10n_th/account_data.xml11
-rw-r--r--addons/l10n_tr/l10n_tr_wizard.xml12
-rw-r--r--addons/l10n_uk/l10n_uk_wizard.xml36
-rw-r--r--addons/l10n_us/l10n_us_wizard.xml9
-rw-r--r--addons/l10n_uy/l10n_uy_wizard.xml5
-rw-r--r--addons/l10n_ve/l10n_chart_ve_wizard.xml12
-rw-r--r--addons/mail/mail_group_menu.py4
-rw-r--r--addons/mail/mail_thread_view.xml4
-rw-r--r--addons/mail/update.py9
-rw-r--r--addons/membership/membership.py6
-rw-r--r--addons/mrp/i18n/zh_CN.po16
-rw-r--r--addons/mrp/mrp.py12
-rw-r--r--addons/mrp/mrp_view.xml10
-rw-r--r--addons/mrp_byproduct/__init__.py (renamed from addons/mrp_subproduct/__init__.py)2
-rw-r--r--addons/mrp_byproduct/__openerp__.py (renamed from addons/mrp_subproduct/__openerp__.py)10
-rw-r--r--addons/mrp_byproduct/i18n/ab.po (renamed from addons/mrp_subproduct/i18n/ab.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ar.po (renamed from addons/mrp_subproduct/i18n/ar.po)0
-rw-r--r--addons/mrp_byproduct/i18n/bg.po (renamed from addons/mrp_subproduct/i18n/bg.po)0
-rw-r--r--addons/mrp_byproduct/i18n/bs.po (renamed from addons/mrp_subproduct/i18n/bs.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ca.po (renamed from addons/mrp_subproduct/i18n/ca.po)0
-rw-r--r--addons/mrp_byproduct/i18n/cs.po (renamed from addons/mrp_subproduct/i18n/cs.po)0
-rw-r--r--addons/mrp_byproduct/i18n/da.po (renamed from addons/mrp_subproduct/i18n/da.po)0
-rw-r--r--addons/mrp_byproduct/i18n/de.po (renamed from addons/mrp_subproduct/i18n/de.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es.po (renamed from addons/mrp_subproduct/i18n/es.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es_AR.po (renamed from addons/mrp_subproduct/i18n/es_AR.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es_CR.po (renamed from addons/mrp_subproduct/i18n/es_CR.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es_EC.po (renamed from addons/mrp_subproduct/i18n/es_EC.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es_MX.po (renamed from addons/mrp_subproduct/i18n/es_MX.po)0
-rw-r--r--addons/mrp_byproduct/i18n/es_VE.po (renamed from addons/mrp_subproduct/i18n/es_VE.po)0
-rw-r--r--addons/mrp_byproduct/i18n/et.po (renamed from addons/mrp_subproduct/i18n/et.po)0
-rw-r--r--addons/mrp_byproduct/i18n/fi.po (renamed from addons/mrp_subproduct/i18n/fi.po)0
-rw-r--r--addons/mrp_byproduct/i18n/fr.po (renamed from addons/mrp_subproduct/i18n/fr.po)0
-rw-r--r--addons/mrp_byproduct/i18n/gl.po (renamed from addons/mrp_subproduct/i18n/gl.po)0
-rw-r--r--addons/mrp_byproduct/i18n/hr.po (renamed from addons/mrp_subproduct/i18n/hr.po)0
-rw-r--r--addons/mrp_byproduct/i18n/hu.po (renamed from addons/mrp_subproduct/i18n/hu.po)0
-rw-r--r--addons/mrp_byproduct/i18n/id.po (renamed from addons/mrp_subproduct/i18n/id.po)0
-rw-r--r--addons/mrp_byproduct/i18n/it.po (renamed from addons/mrp_subproduct/i18n/it.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ja.po (renamed from addons/mrp_subproduct/i18n/ja.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ko.po (renamed from addons/mrp_subproduct/i18n/ko.po)0
-rw-r--r--addons/mrp_byproduct/i18n/lt.po (renamed from addons/mrp_subproduct/i18n/lt.po)0
-rw-r--r--addons/mrp_byproduct/i18n/mn.po (renamed from addons/mrp_subproduct/i18n/mn.po)0
-rw-r--r--addons/mrp_byproduct/i18n/mrp_subproduct.pot (renamed from addons/mrp_subproduct/i18n/mrp_subproduct.pot)0
-rw-r--r--addons/mrp_byproduct/i18n/nb.po (renamed from addons/mrp_subproduct/i18n/nb.po)0
-rw-r--r--addons/mrp_byproduct/i18n/nl.po (renamed from addons/mrp_subproduct/i18n/nl.po)0
-rw-r--r--addons/mrp_byproduct/i18n/nl_BE.po (renamed from addons/mrp_subproduct/i18n/nl_BE.po)0
-rw-r--r--addons/mrp_byproduct/i18n/oc.po (renamed from addons/mrp_subproduct/i18n/oc.po)0
-rw-r--r--addons/mrp_byproduct/i18n/pl.po (renamed from addons/mrp_subproduct/i18n/pl.po)0
-rw-r--r--addons/mrp_byproduct/i18n/pt.po (renamed from addons/mrp_subproduct/i18n/pt.po)0
-rw-r--r--addons/mrp_byproduct/i18n/pt_BR.po (renamed from addons/mrp_subproduct/i18n/pt_BR.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ro.po (renamed from addons/mrp_subproduct/i18n/ro.po)0
-rw-r--r--addons/mrp_byproduct/i18n/ru.po (renamed from addons/mrp_subproduct/i18n/ru.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sk.po (renamed from addons/mrp_subproduct/i18n/sk.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sl.po (renamed from addons/mrp_subproduct/i18n/sl.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sq.po (renamed from addons/mrp_subproduct/i18n/sq.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sr.po (renamed from addons/mrp_subproduct/i18n/sr.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sr@latin.po (renamed from addons/mrp_subproduct/i18n/sr@latin.po)0
-rw-r--r--addons/mrp_byproduct/i18n/sv.po (renamed from addons/mrp_subproduct/i18n/sv.po)0
-rw-r--r--addons/mrp_byproduct/i18n/tlh.po (renamed from addons/mrp_subproduct/i18n/tlh.po)0
-rw-r--r--addons/mrp_byproduct/i18n/tr.po (renamed from addons/mrp_subproduct/i18n/tr.po)0
-rw-r--r--addons/mrp_byproduct/i18n/uk.po (renamed from addons/mrp_subproduct/i18n/uk.po)0
-rw-r--r--addons/mrp_byproduct/i18n/vi.po (renamed from addons/mrp_subproduct/i18n/vi.po)0
-rw-r--r--addons/mrp_byproduct/i18n/zh_CN.po (renamed from addons/mrp_subproduct/i18n/zh_CN.po)0
-rw-r--r--addons/mrp_byproduct/i18n/zh_TW.po (renamed from addons/mrp_subproduct/i18n/zh_TW.po)0
-rw-r--r--addons/mrp_byproduct/mrp_byproduct.py (renamed from addons/mrp_subproduct/mrp_subproduct.py)10
-rw-r--r--addons/mrp_byproduct/mrp_byproduct_view.xml (renamed from addons/mrp_subproduct/mrp_subproduct_view.xml)6
-rw-r--r--addons/mrp_byproduct/security/ir.model.access.csv (renamed from addons/mrp_subproduct/security/ir.model.access.csv)0
-rw-r--r--addons/mrp_byproduct/test/mrp_byproduct.yml (renamed from addons/mrp_subproduct/test/mrp_subproduct.yml)0
-rw-r--r--addons/mrp_operations/mrp_operations.py10
-rw-r--r--addons/mrp_repair/i18n/zh_CN.po10
-rw-r--r--addons/mrp_repair/mrp_repair.py22
-rw-r--r--addons/pad/pad.py2
-rw-r--r--addons/point_of_sale/point_of_sale.py4
-rw-r--r--addons/point_of_sale/point_of_sale_view.xml2
-rw-r--r--addons/point_of_sale/report/pos_payment_report_user.rml2
-rw-r--r--addons/point_of_sale/static/src/js/screens.js3
-rw-r--r--addons/point_of_sale/static/src/js/widgets.js19
-rw-r--r--addons/point_of_sale/wizard/pos_session_opening.py4
-rw-r--r--addons/portal_claim/security/portal_security.xml2
-rw-r--r--addons/portal_project/security/portal_security.xml2
-rw-r--r--addons/portal_project_issue/security/portal_security.xml2
-rw-r--r--addons/portal_sale/portal_sale_view.xml10
-rw-r--r--addons/portal_sale/security/portal_security.xml12
-rw-r--r--addons/process/static/src/js/process.js5
-rw-r--r--addons/process/static/src/xml/process.xml4
-rw-r--r--addons/procurement/i18n/ru.po11
-rw-r--r--addons/procurement/procurement.py4
-rw-r--r--addons/procurement/wizard/schedulers_all_view.xml8
-rw-r--r--addons/product/pricelist.py2
-rw-r--r--addons/product/pricelist_view.xml2
-rw-r--r--addons/product/product_view.xml6
-rw-r--r--addons/product_expiry/i18n/ru.po8
-rw-r--r--addons/project/project.py12
-rw-r--r--addons/project/project_view.xml31
-rw-r--r--addons/project_gtd/project_gtd_view.xml4
-rw-r--r--addons/project_issue/project_issue.py13
-rw-r--r--addons/project_issue/project_issue_view.xml14
-rw-r--r--addons/project_long_term/project_long_term.py4
-rw-r--r--addons/project_timesheet/project_timesheet.py14
-rw-r--r--addons/project_timesheet/project_timesheet_view.xml2
-rw-r--r--addons/purchase/i18n/zh_CN.po10
-rw-r--r--addons/purchase/purchase.py19
-rw-r--r--addons/purchase/purchase_view.xml12
-rw-r--r--addons/purchase/report/purchase_report.py2
-rw-r--r--addons/purchase_double_validation/i18n/zh_CN.po14
-rw-r--r--addons/purchase_requisition/i18n/zh_CN.po18
-rw-r--r--addons/purchase_requisition/purchase_requisition.py2
-rw-r--r--addons/resource/i18n/ru.po10
-rw-r--r--addons/sale/i18n/lt.po30
-rw-r--r--addons/sale/i18n/ru.po52
-rw-r--r--addons/sale/i18n/zh_CN.po16
-rw-r--r--addons/sale/report/sale_report.py2
-rw-r--r--addons/sale/res_partner_view.xml1
-rw-r--r--addons/sale/sale.py15
-rw-r--r--addons/sale/sale_view.xml68
-rw-r--r--addons/sale_stock/i18n/zh_CN.po44
-rw-r--r--addons/sale_stock/report/sale_report.py2
-rw-r--r--addons/sale_stock/sale_stock.py9
-rw-r--r--addons/sale_stock/sale_stock_view.xml7
-rw-r--r--addons/stock/product_view.xml4
-rw-r--r--addons/stock/stock.py12
-rw-r--r--addons/stock/stock_view.xml34
-rw-r--r--addons/survey/survey.py9
-rw-r--r--addons/survey/survey_view.xml16
-rw-r--r--addons/survey/wizard/survey_answer.py22
-rw-r--r--addons/survey/wizard/survey_send_invitation.py24
-rw-r--r--addons/survey/wizard/survey_send_invitation.xml2
243 files changed, 2714 insertions, 1561 deletions
diff --git a/addons/account/account.py b/addons/account/account.py
index fa2b10a7478..c9dd1950347 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1007,7 +1007,7 @@ class account_period(osv.osv):
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
'state': fields.selection([('draft','Open'), ('done','Closed')], 'Status', readonly=True,
- help='When monthly periods are created. The state is \'Draft\'. At the end of monthly period it is in \'Done\' state.'),
+ help='When monthly periods are created. The status is \'Draft\'. At the end of monthly period it is in \'Done\' status.'),
'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
_defaults = {
@@ -1134,7 +1134,7 @@ class account_journal_period(osv.osv):
'icon': fields.function(_icon_get, string='Icon', type='char', size=32),
'active': fields.boolean('Active', required=True, help="If the active field is set to False, it will allow you to hide the journal period without removing it."),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'Status', required=True, readonly=True,
- help='When journal period is created. The state is \'Draft\'. If a report is printed it comes to \'Printed\' state. When all transactions are done, it comes in \'Done\' state.'),
+ help='When journal period is created. The status is \'Draft\'. If a report is printed it comes to \'Printed\' status. When all transactions are done, it comes in \'Done\' status.'),
'fiscalyear_id': fields.related('period_id', 'fiscalyear_id', string='Fiscal Year', type='many2one', relation='account.fiscalyear'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
@@ -1282,7 +1282,7 @@ class account_move(osv.osv):
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True,
- help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
+ help='All manually created new journal entries are usually in the status \'Unposted\', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' status.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
@@ -1431,6 +1431,9 @@ class account_move(osv.osv):
if 'line_id' in vals:
c = context.copy()
c['novalidate'] = True
+ c['period_id'] = vals['period_id']
+ c['journal_id'] = vals['journal_id']
+ c['date'] = vals['date']
result = super(account_move, self).create(cr, uid, vals, c)
self.validate(cr, uid, [result], context)
else:
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py
index 549363ce269..48082451f35 100644
--- a/addons/account/account_bank_statement.py
+++ b/addons/account/account_bank_statement.py
@@ -123,8 +123,8 @@ class account_bank_statement(osv.osv):
('open','Open'), # used by cash statements
('confirm', 'Closed')],
'Status', required=True, readonly="1",
- help='When new statement is created the state will be \'Draft\'.\n'
- 'And after getting confirmation from the bank it will be in \'Confirmed\' state.'),
+ help='When new statement is created the status will be \'Draft\'.\n'
+ 'And after getting confirmation from the bank it will be in \'Confirmed\' status.'),
'currency': fields.function(_currency, string='Currency',
type='many2one', relation='res.currency'),
'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 57f16473b82..16393f0ea49 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -185,6 +185,7 @@ class account_invoice(osv.osv):
_columns = {
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}),
+ 'supplier_invoice_number': fields.char('Supplier Invoice Number', size=64, help="The reference of this invoice as provided by the supplier.", readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([
('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'),
@@ -206,12 +207,12 @@ class account_invoice(osv.osv):
('open','Open'),
('paid','Paid'),
('cancel','Cancelled'),
- ],'State', select=True, readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \
- \n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \
- \n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
- \n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
- \n* The \'Cancelled\' state is used when user cancel invoice.'),
+ ],'Status', select=True, readonly=True,
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed Invoice. \
+ \n* The \'Pro-forma\' when invoice is in Pro-forma status,invoice does not have an invoice number. \
+ \n* The \'Open\' status is used when user create invoice,a invoice number is generated.Its in open status till user does not pay invoice. \
+ \n* The \'Paid\' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
+ \n* The \'Cancelled\' status is used when user cancel invoice.'),
'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."),
'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', readonly=True, states={'draft':[('readonly',False)]}, select=True,
@@ -1359,7 +1360,7 @@ class account_invoice_line(osv.osv):
_description = "Invoice Line"
_columns = {
'name': fields.text('Description', required=True),
- 'origin': fields.char('Source', size=256, help="Reference of the document that produced this invoice."),
+ 'origin': fields.char('Source Document', size=256, help="Reference of the document that produced this invoice."),
'sequence': fields.integer('Sequence', help="Gives the sequence of this line when displaying the invoice."),
'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True),
'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'),
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 8516fcd96ae..5ed373456f3 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -143,13 +143,11 @@
<field name="arch" type="xml">
<form string="Supplier Invoice" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight"/>
- <button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid' />
+ <button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight" groups="account.group_account_invoice"/>
+ <button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid' groups="account.group_account_invoice"/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
- <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
+ <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" groups="account.group_account_invoice"/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
- </span>
<field name="state" widget="statusbar" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header>
<sheet string="Supplier Invoice">
@@ -170,12 +168,15 @@
context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
domain="[('supplier', '=', True)]"/>
<field name="fiscal_position" widget="selection"/>
- <field name="origin"/>
- <label for="reference_type"/>
- <div>
+ <group>
+ <field name="origin"/>
+ <field name="supplier_invoice_number"/>
+ </group>
+ <label for="reference_type"/>
+ <div>
<field name="reference_type" class="oe_inline oe_edit_only"/>
<field name="reference" class="oe_inline"/>
- </div>
+ </div>
</group>
<group>
<field name="date_invoice"/>
@@ -291,20 +292,18 @@
<field name="arch" type="xml">
<form string="Invoice" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/>
- <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/>
- <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/>
- <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/>
- <button name="invoice_open" states="draft" string="Validate" class="oe_highlight"/>
- <button name="invoice_open" states="proforma2" string="Validate"/>
- <button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
- <button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='open,proforma2,paid'/>
- <button name="invoice_cancel" states="draft,proforma2,open" string="Cancel" groups="base.group_no_one"/>
- <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/>
- <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
- <!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
- </span>
+ <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
+ <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
+ <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}" groups="base.group_user"/>
+ <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}" groups="base.group_user"/>
+ <button name="invoice_open" states="draft" string="Validate" class="oe_highlight" groups="base.group_user"/>
+ <button name="invoice_open" states="proforma2" string="Validate" groups="base.group_user"/>
+ <button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
+ <button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='open,proforma2,paid' groups="base.group_user"/>
+ <button name="invoice_cancel" states="draft,proforma2,open" string="Cancel" groups="base.group_no_one"/>
+ <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" groups="base.group_user"/>
+ <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
+ <!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header>
<sheet string="Invoice">
@@ -449,7 +448,7 @@
<field name="model">account.invoice</field>
<field name="arch" type="xml">
<search string="Search Invoice">
- <field name="number" string="Invoice" filter_domain="['|', ('number','ilike',self),('origin','ilike',self)]"/>
+ <field name="number" string="Invoice" filter_domain="['|','|', ('number','ilike',self), ('origin','ilike',self), ('supplier_invoice_number', 'ilike', self)]"/>
<filter name="draft" icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter name="proforma" icon="terp-gtk-media-pause" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices" groups="account.group_proforma_invoices"/>
<filter name="invoices" icon="terp-dolar" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index f9388706e97..67a55d8f451 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -1234,16 +1234,16 @@ class account_move_line(osv.osv):
vals['company_id'] = company_id[0]
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
raise osv.except_osv(_('Bad Account!'), _('You cannot use an inactive account.'))
- if 'journal_id' in vals:
+ if 'journal_id' in vals and vals['journal_id']:
context['journal_id'] = vals['journal_id']
- if 'period_id' in vals:
+ if 'period_id' in vals and vals['period_id']:
context['period_id'] = vals['period_id']
if ('journal_id' not in context) and ('move_id' in vals) and vals['move_id']:
m = move_obj.browse(cr, uid, vals['move_id'])
context['journal_id'] = m.journal_id.id
context['period_id'] = m.period_id.id
#we need to treat the case where a value is given in the context for period_id as a string
- if 'period_id' not in context or not isinstance(context.get('period_id', ''), (int, long)):
+ if 'period_id' in context and not isinstance(context.get('period_id', ''), (int, long)):
period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id',''))
if len(period_candidate_ids) != 1:
raise osv.except_osv(_('Error!'), _('No period found or more than one period found for the given date.'))
@@ -1253,6 +1253,9 @@ class account_move_line(osv.osv):
self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context)
move_id = vals.get('move_id', False)
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
+ vals['journal_id'] = vals.get('journal_id') or context.get('journal_id')
+ vals['period_id'] = vals.get('period_id') or context.get('period_id')
+ vals['date'] = vals.get('date') or context.get('date')
if not move_id:
if journal.centralisation:
#Check for centralisation
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 1b614a1ee85..d9e95f15079 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1862,7 +1862,7 @@
<field name="model_id"/>
<group expand="0" string="Group By...">
<filter string="Model" icon="terp-folder-orange" domain="[]" context="{'group_by':'model_id'}"/>
- <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group>
</search>
</field>
@@ -2414,32 +2414,6 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
- <record id="ir_actions_server_action_wizard_multi_chart" model="ir.actions.server">
- <field name="type">ir.actions.server</field>
- <field name="condition">True</field>
- <field name="state">code</field>
- <field name="model_id" ref="base.model_ir_actions_todo"/>
- <field eval="5" name="sequence"/>
- <field name="code">
-# check for unconfigured companies
-account_installer_obj = self.pool.get('account.installer')
-account_installer_obj.check_unconfigured_cmp(cr, uid, context=context)
-action_ids = []
-# fetch the act_window actions related to chart of account configuration
-# we use ir.actions.todo to enable the possibility for other modules to insert their own
-# wizards during the configuration process
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_wizard_multi_chart')
-if ref:
- action_ids += [ref[1]]
-ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer')
-if ref:
- action_ids += [ref[1]]
-todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', action_ids)], context=context)
-pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context)
-action = pool.get('res.config').next(cr, uid, [], context)
-</field>
- <field name="name">New Company Financial Setting</field>
- </record>
<record id="account_account_graph" model="ir.ui.view">
<field name="name">account.account.graph</field>
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index a51b7c7930a..49c2d2b8c1e 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.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-07-11 03:05+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 16:26+0000\n"
+"Last-Translator: AllanWong <18895563@qq.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: account
#: view:account.invoice.report:0
@@ -37,7 +37,7 @@ msgstr "其它设置"
msgid ""
"Determine the display order in the report 'Accounting \\ Reporting \\ "
"Generic Reporting \\ Taxes \\ Taxes Report'"
-msgstr "确定以下报表的显示顺序:”会计-报表-通用报表-税-税报表“"
+msgstr "确定以下报表的显示顺序:”会计-报表-通用报表-税务-税务报表“"
#. module: account
#: view:account.move.reconcile:0
@@ -91,7 +91,7 @@ msgstr "应收账款账龄"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
msgid "Import from invoice or payment"
-msgstr "从发票或支付款导入"
+msgstr "从发票或付款单导入"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@@ -139,6 +139,7 @@ msgstr "核销"
#: field:account.move,ref:0
#: field:account.move.line,ref:0
#: field:account.subscription,ref:0
+#: xsl:account.transfer:0
msgid "Reference"
msgstr "关联"
@@ -155,13 +156,13 @@ msgid ""
msgstr "如果设置为false,该付款条款将会被隐藏。"
#. module: account
-#: code:addons/account/account_invoice.py:1428
+#: code:addons/account/account_invoice.py:1430
#, python-format
msgid "Warning!"
msgstr "警告!"
#. module: account
-#: code:addons/account/account.py:3112
+#: code:addons/account/account.py:3129
#, python-format
msgid "Miscellaneous Journal"
msgstr "其它凭证簿"
@@ -218,10 +219,10 @@ msgstr "选择凭证行核销"
msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
-msgstr "勾选此项使发票上不显示增值税"
+msgstr "勾选此项隐藏发票上与此税号相关的增值税信息"
#. 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 "发票'%s'已部分支付了%s%s ,总金额为:%s%s, 尚余%s%s未付"
@@ -237,7 +238,7 @@ msgid "Belgian Reports"
msgstr "比利时报表"
#. 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 "不能在已关闭的账簿添加或修改分录"
@@ -283,7 +284,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 "发票明细的科目公司与发票头的公司不匹配。"
@@ -560,8 +561,10 @@ msgid "The accountant confirms the statement."
msgstr "财务人员确认的报表"
#. 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
@@ -617,7 +620,7 @@ msgid "Main Sequence must be different from current !"
msgstr "序列号必须唯一"
#. 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 "根据输入的凭证日期没有找到期间或找到了多个期间"
@@ -628,7 +631,7 @@ msgid "Tax Code Amount"
msgstr "税金额"
#. module: account
-#: code:addons/account/account.py:3116
+#: code:addons/account/account.py:3133
#, python-format
msgid "SAJ"
msgstr "SAJ"
@@ -655,8 +658,8 @@ msgid "Journal Period"
msgstr "账簿的会计期间"
#. 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 "要核销这些凭证,这些凭证所属公司必须一致"
@@ -733,6 +736,7 @@ msgid "You can only change currency for Draft Invoice !"
msgstr "你只能对发票草稿修改币种"
#. 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 "财务报表"
@@ -748,12 +752,13 @@ msgstr "财务报表"
#: 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 "类型"
#. module: account
-#: code:addons/account/account_invoice.py:738
+#: code:addons/account/account_invoice.py:747
#, python-format
msgid ""
"Taxes are missing!\n"
@@ -880,12 +885,13 @@ msgid "Create 3 Months Periods"
msgstr "创建季度"
#. module: account
+#: report:account.aged_trial_balance:0
#: report:account.overdue:0
msgid "Due"
msgstr "到期"
#. 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 "
@@ -963,7 +969,7 @@ msgid ""
msgstr "如果这税科目是一个税编码科目,这字段金额要征税。如果这税科目是一个税基编码,这字段的金额不用征税。"
#. 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 "无法为该科目模板定位其父科目"
@@ -996,10 +1002,10 @@ msgid "Code"
msgstr "编码"
#. 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 !"
@@ -1061,7 +1067,7 @@ msgid ""
msgstr "根据您国家定义这些类型,该类型包含有关科目及其具体的信息。"
#. 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 !"
@@ -1109,7 +1115,7 @@ msgstr "未平财务凭证"
#. 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 "银行"
@@ -1201,7 +1207,7 @@ msgid "The move of this entry line."
msgstr "分录明细的变动"
#. 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 "
@@ -1222,7 +1228,7 @@ msgid "Entry Label"
msgstr "分录标签"
#. 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 "您不能修改/删除这账簿和在此会计期间的分录!"
@@ -1307,14 +1313,15 @@ msgid "Taxes"
msgstr "税"
#. 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 "选择会计期间的开始和结束时间"
#. 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 "损益类"
@@ -1369,6 +1376,7 @@ msgid "Journal Items Analysis"
msgstr "账簿明细分析"
#. module: account
+#: report:account.aged_trial_balance:0
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "业务伙伴"
@@ -1393,8 +1401,10 @@ msgid "Central Journal"
msgstr "汇总账簿"
#. 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"
@@ -1508,7 +1518,7 @@ msgstr "已核销处理"
#. module: account
#: field:account.journal.view,columns_id:0
msgid "Columns"
-msgstr "列"
+msgstr "栏目"
#. module: account
#: report:account.overdue:0
@@ -1619,6 +1629,7 @@ msgid "Separated Journal Sequences"
msgstr "分散的账簿序列"
#. module: account
+#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "负责人"
@@ -1647,7 +1658,7 @@ msgid "Year Sum"
msgstr "年合计"
#. 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."
@@ -1720,7 +1731,7 @@ msgid "Customer Ref:"
msgstr "客户关联:"
#. 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 "用户 %s 没有权限访问 %s!"
@@ -2039,7 +2050,7 @@ msgid "Pro-forma"
msgstr "形式发票"
#. 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"
@@ -2063,7 +2074,7 @@ msgid "Search Chart of Account Templates"
msgstr "搜索科目一览表模板"
#. 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"
@@ -2114,7 +2125,7 @@ msgid "Description"
msgstr "说明"
#. module: account
-#: code:addons/account/account.py:3119
+#: code:addons/account/account.py:3136
#, python-format
msgid "ECNJ"
msgstr "ECNJ"
@@ -2133,7 +2144,7 @@ msgid "Income Account"
msgstr "收益科目"
#. 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 "没定义销售/采购 的账簿!"
@@ -2173,6 +2184,7 @@ msgstr "产品模板"
#. 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
@@ -2182,6 +2194,7 @@ msgstr "产品模板"
#: 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
@@ -2232,7 +2245,7 @@ msgid "Account Line"
msgstr "发票明细"
#. 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"
@@ -2263,7 +2276,7 @@ msgid "Main Sequence"
msgstr "主序列"
#. 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 "
@@ -2337,7 +2350,7 @@ msgid "Account Tax Code"
msgstr "税编码"
#. 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"
@@ -2423,7 +2436,7 @@ msgid "Account Model Entries"
msgstr "凭证模板"
#. module: account
-#: code:addons/account/account.py:3117
+#: code:addons/account/account.py:3134
#, python-format
msgid "EXJ"
msgstr "EXJ"
@@ -2484,7 +2497,6 @@ msgid "Account move line reconcile (writeoff)"
msgstr "凭证行核销(注销)"
#. module: account
-#: model:account.account.type,name:account.account_type_tax
#: report:account.invoice:0
#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
@@ -2516,7 +2528,7 @@ msgid "Accounts"
msgstr "科目"
#. module: account
-#: code:addons/account/account_invoice.py:369
+#: code:addons/account/account_invoice.py:378
#, python-format
msgid "Configuration Error!"
msgstr "设置错误!"
@@ -2636,6 +2648,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 "业务伙伴以前的余额表"
@@ -2685,14 +2698,14 @@ msgid "This wizard will create recurring accounting entries"
msgstr "该向导将创建一个定期分录"
#. module: account
-#: code:addons/account/account.py:1321
+#: code:addons/account/account.py:1329
#, python-format
msgid "No sequence defined on the journal !"
msgstr "没定义账簿的序列!"
#. 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!"
@@ -2795,7 +2808,7 @@ msgid "Base Code Amount"
msgstr "税基金额"
#. 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 "
@@ -2808,7 +2821,7 @@ msgid "Default Sale Tax"
msgstr "默认销售税"
#. module: account
-#: code:addons/account/account_invoice.py:1013
+#: code:addons/account/account_invoice.py:1025
#, python-format
msgid "Invoice '%s' is validated."
msgstr "发票 '%s' 已审核"
@@ -2846,7 +2859,7 @@ msgid "Fiscal Position"
msgstr "财务结构"
#. module: account
-#: code:addons/account/account_invoice.py:735
+#: code:addons/account/account_invoice.py:744
#, python-format
msgid ""
"Tax base different!\n"
@@ -2996,7 +3009,7 @@ msgid "View"
msgstr "视图"
#. 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"
@@ -3040,7 +3053,7 @@ msgstr "业务伙伴会计帐本(往来帐)"
#. module: account
#: help:account.journal.column,sequence:0
msgid "Gives the sequence order to journal column."
-msgstr "指定账簿的序列"
+msgstr "指定账簿栏目的序列"
#. module: account
#: help:account.account,currency_id:0
@@ -3065,7 +3078,7 @@ msgstr "科目一览表模板"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options"
-msgstr ""
+msgstr "设置您的会计选项"
#. module: account
#: view:report.account.sales:0
@@ -3193,7 +3206,7 @@ msgid "Starting Balance"
msgstr "期初余额"
#. module: account
-#: code:addons/account/account_invoice.py:1332
+#: code:addons/account/account_invoice.py:1345
#, python-format
msgid "No Partner Defined !"
msgstr "未定义业务伙伴!"
@@ -3247,7 +3260,7 @@ msgid "Chart of Tax"
msgstr "税一览表"
#. 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 "期末余额与计算出来的余额不平衡."
@@ -3328,6 +3341,7 @@ msgstr "数量"
#. module: account
#: field:account.aged.trial.balance,period_length:0
+#: report:account.aged_trial_balance:0
msgid "Period Length (days)"
msgstr "期间(天数)"
@@ -3374,7 +3388,7 @@ msgid "Detail"
msgstr "详情"
#. 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"
@@ -3391,9 +3405,16 @@ msgid "VAT :"
msgstr "增值税 :"
#. 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
@@ -3414,7 +3435,7 @@ msgid "Centralised counterpart"
msgstr "汇总副本"
#. 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 "凭证中不能使用 “视图” 类型的会计科目 %s %s"
@@ -3439,6 +3460,7 @@ msgstr "如果您不选择会计年度将使用所有开启的会计年度"
#: report:account.analytic.account.journal:0
#: selection:account.balance.report,filter:0
#: field:account.bank.statement,date:0
+#: field:account.bank.statement.line,date:0
#: selection:account.central.journal,filter:0
#: selection:account.common.account.report,filter:0
#: selection:account.common.journal.report,filter:0
@@ -3466,10 +3488,17 @@ 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_general_ledger.py:305
+#: code:addons/account/report/account_general_ledger.py:308
+#: 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 "日期"
@@ -3486,7 +3515,6 @@ msgstr "反核销"
#. module: account
#: view:account.analytic.line:0
-#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -3500,7 +3528,7 @@ msgid "Chart of Accounts Template"
msgstr "科目一览表模板"
#. 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 "
@@ -3511,7 +3539,7 @@ msgstr ""
"请在业务伙伴里定义它"
#. 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 "部分分录已核销!"
@@ -3542,6 +3570,8 @@ msgstr "预算"
#: 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 "无筛选"
@@ -3623,7 +3653,7 @@ msgid "Analytic Items"
msgstr "分析明细"
#. 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 "无法更改税目!"
@@ -3654,7 +3684,7 @@ msgid "Mapping"
msgstr "图表"
#. 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 "
@@ -3668,6 +3698,7 @@ msgstr "无法在合并(centralised)凭证簿上创建发票,请在凭证ç
#: 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
@@ -3681,7 +3712,7 @@ msgid "Account Aged Trial balance Report"
msgstr "过期的试算表"
#. 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 "凭证中不能使用关闭的会计科目 %s %s"
@@ -4001,7 +4032,7 @@ msgid "Month"
msgstr "月份"
#. 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 "
@@ -4060,7 +4091,7 @@ msgid "Account Base Code"
msgstr "税基编码"
#. 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 "未定义此产品“%s“ (id:%d)的费用科目"
@@ -4269,7 +4300,7 @@ msgid "Allow Reconciliation"
msgstr "允许核销"
#. 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."
@@ -4303,7 +4334,7 @@ msgid "Recurring Models"
msgstr "定期模型"
#. module: account
-#: code:addons/account/account_move_line.py:1251
+#: code:addons/account/account_move_line.py:1266
#, python-format
msgid "Encoding error"
msgstr "输入错误"
@@ -4315,6 +4346,7 @@ msgstr "4"
#. module: account
#: view:account.invoice:0
+#: xsl:account.transfer:0
msgid "Change"
msgstr "改变"
@@ -4359,7 +4391,7 @@ msgid "Example"
msgstr "例子"
#. 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"
@@ -4373,7 +4405,7 @@ msgid "Keep empty to use the income account"
msgstr "留空为使用利润科目"
#. module: account
-#: code:addons/account/account.py:3299
+#: code:addons/account/account.py:3316
#, python-format
msgid "Purchase Tax %.2f%%"
msgstr "采购税 %.2f%%"
@@ -4401,7 +4433,7 @@ msgstr "科目一览表"
#: 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 "客户"
@@ -4417,7 +4449,7 @@ msgid "Cancelled Invoice"
msgstr "已取消的发票"
#. 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 "
@@ -4469,7 +4501,7 @@ msgid "Income Account on Product Template"
msgstr "产品模板的收入科目"
#. module: account
-#: code:addons/account/account.py:3120
+#: code:addons/account/account.py:3137
#, python-format
msgid "MISC"
msgstr "杂项"
@@ -4494,11 +4526,13 @@ msgstr "新的会计年度"
#: 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 "发票列表"
@@ -4637,26 +4671,24 @@ msgid "Journal Items"
msgstr "会计凭证行"
#. 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 "错误"
@@ -4759,7 +4791,7 @@ msgid "Beginning of Period Date"
msgstr "期间开始日期"
#. 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"
@@ -4785,7 +4817,7 @@ msgid "Child Tax Accounts"
msgstr "子税科目"
#. 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 "开始日期应小于会计期间的结束日期"
@@ -4806,6 +4838,7 @@ msgstr "辅助核算余额 -"
#. 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
@@ -4849,6 +4882,8 @@ msgstr "会计期间类型"
#: 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 "付款"
@@ -4892,7 +4927,7 @@ msgstr "科目报表"
#. module: account
#: field:account.journal.column,name:0
msgid "Column Name"
-msgstr "列名称"
+msgstr "栏目名称"
#. module: account
#: view:account.general.journal:0
@@ -4922,7 +4957,7 @@ msgid "Line 1:"
msgstr "第一行"
#. module: account
-#: code:addons/account/account.py:1307
+#: code:addons/account/account.py:1315
#, python-format
msgid "Integrity Error !"
msgstr "完整性错误!"
@@ -4955,6 +4990,7 @@ msgstr "核销结果"
#. 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 "资产负债表"
@@ -5031,6 +5067,7 @@ msgstr "报表"
#: 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"
@@ -5158,7 +5195,6 @@ msgstr "科目合并的科目报表"
#. module: account
#: field:account.bank.statement.line,name:0
-#: field:account.invoice,reference:0
msgid "Communication"
msgstr "沟通"
@@ -5210,13 +5246,13 @@ msgid "End of Year Entries Journal"
msgstr "账簿的结账分录"
#. 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 !"
@@ -5290,7 +5326,6 @@ msgid "Customer Invoices And Refunds"
msgstr "客户发票和退款"
#. module: account
-#: field:account.analytic.line,amount_currency:0
#: field:account.entries.report,amount_currency:0
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
@@ -5456,7 +5491,7 @@ msgid "Generate Opening Entries"
msgstr "产生开启分录"
#. module: account
-#: code:addons/account/account_move_line.py:759
+#: code:addons/account/account_move_line.py:775
#, python-format
msgid "Already Reconciled!"
msgstr "已核销!"
@@ -5489,14 +5524,14 @@ msgid "Child Accounts"
msgstr "子科目"
#. 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 "会计凭证号 (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 "补差额"
@@ -5516,7 +5551,7 @@ msgstr "收入"
#: 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 "供应商"
@@ -5546,7 +5581,7 @@ msgid "Account n°"
msgstr "科目编码"
#. module: account
-#: code:addons/account/account_invoice.py:88
+#: code:addons/account/account_invoice.py:91
#, python-format
msgid "Free Reference"
msgstr "无限制的单号"
@@ -5561,7 +5596,9 @@ msgstr "定价"
#: 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:399
#, python-format
msgid "Receivable and Payable Accounts"
msgstr "应收款与应付款科目"
@@ -5657,7 +5694,7 @@ msgid "Filter by"
msgstr "筛选"
#. 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 "模型中存在错误的表达式 \"%(...)s\""
@@ -5668,8 +5705,8 @@ msgid "Entry Date"
msgstr "分录日期"
#. 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 "您不能使用一个停用的科目!"
@@ -5710,8 +5747,8 @@ msgid "Number of Days"
msgstr "天数"
#. 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 !"
@@ -5773,7 +5810,7 @@ msgid "Multipication factor for Base code"
msgstr "税率"
#. 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 "尚未实现"
@@ -5810,6 +5847,8 @@ msgstr "辅助核算分析"
#. 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 "过去"
@@ -6083,6 +6122,8 @@ msgstr "百分比"
#. module: account
#: selection:account.report.general.ledger,sortby:0
+#: code:addons/account/report/account_general_ledger.py:307
+#, python-format
msgid "Journal & Partner"
msgstr "账簿 & 业务伙伴"
@@ -6092,7 +6133,7 @@ msgid "Power"
msgstr "强制"
#. module: account
-#: code:addons/account/account.py:3368
+#: code:addons/account/account.py:3385
#, python-format
msgid "Cannot generate an unused journal code."
msgstr "不能生成一个未使用的凭证代码。"
@@ -6132,6 +6173,7 @@ msgid "Applicable Type"
msgstr "适用类型"
#. module: account
+#: field:account.invoice,reference:0
#: field:account.invoice.line,invoice_id:0
msgid "Invoice Reference"
msgstr "发票"
@@ -6350,8 +6392,8 @@ msgid "You can not remove an account containing journal items."
msgstr "您不能删除已经存在凭证的账户。"
#. 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 "凭证: "
@@ -6367,7 +6409,7 @@ msgid "Currency of the related account journal."
msgstr "货币的关联账户凭证。"
#. 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 "无法创建公司之间的过帐"
@@ -6407,13 +6449,13 @@ msgstr "草稿状态"
#. 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 "借方合计"
#. 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 "凭证\"%s\"无效!"
@@ -6481,25 +6523,26 @@ msgstr "损益(费用账户)"
#: 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
@@ -6531,8 +6574,8 @@ msgid "Printed"
msgstr "已打印"
#. 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 "错误:"
@@ -6588,7 +6631,7 @@ msgid "Display Ledger Report with One partner per page"
msgstr "一页一个业务伙伴的分类帐"
#. 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 "
@@ -6743,7 +6786,7 @@ msgid "Total:"
msgstr "合计:"
#. 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 "
@@ -6780,7 +6823,7 @@ msgid "Taxes used in Sales"
msgstr "销售中用到的税"
#. 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 !"
@@ -6806,7 +6849,7 @@ msgstr "销售"
#: view:account.journal.column:0
#: model:ir.model,name:account.model_account_journal_column
msgid "Journal Column"
-msgstr "账簿列"
+msgstr "账簿栏目"
#. module: account
#: selection:account.invoice.report,state:0
@@ -6852,14 +6895,14 @@ msgid "Source Document"
msgstr "源单据"
#. 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 "你不能删除一个已复核的会计凭证“%s” !"
#. module: account
#: selection:account.partner.ledger,filter:0
-#: code:addons/account/report/account_partner_ledger.py:59
+#: code:addons/account/report/account_partner_ledger.py:60
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
#, python-format
msgid "Unreconciled Entries"
@@ -6955,8 +6998,8 @@ msgid "Are you sure you want to open this invoice ?"
msgstr "你确定要打开这发票?"
#. 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 "
@@ -6969,7 +7012,7 @@ msgid "Opening Entries Expense Account"
msgstr "未分配利润科目"
#. module: account
-#: code:addons/account/account_move_line.py:999
+#: code:addons/account/account_move_line.py:1014
#, python-format
msgid "Accounting Entries"
msgstr "会计分录"
@@ -7100,7 +7143,7 @@ msgid ""
msgstr "这字段只用于,如果您开发自己的模块允许开发者在自定义域创建特定的税"
#. 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 "同一家公司你应该选择一个会计期间"
@@ -7131,8 +7174,8 @@ msgid "Reporting"
msgstr "报表"
#. 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
@@ -7221,7 +7264,7 @@ msgid "Sign on Reports"
msgstr "报表上的符号"
#. 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 "用于生成期初余额会计凭证的期间不存在"
@@ -7232,7 +7275,7 @@ msgid "Root/View"
msgstr "根/视图"
#. module: account
-#: code:addons/account/account.py:3121
+#: code:addons/account/account.py:3138
#, python-format
msgid "OPEJ"
msgstr "OPEJ"
@@ -7267,13 +7310,14 @@ msgid "Optional Information"
msgstr "可选信息"
#. 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 "这账簿必须要有默认贷方和借方科目"
#. module: account
#: report:account.general.journal:0
+#: xsl:account.transfer:0
msgid ":"
msgstr ":"
@@ -7300,13 +7344,13 @@ msgid "Maturity Date"
msgstr "到期日期"
#. module: account
-#: code:addons/account/account_move_line.py:1302
+#: code:addons/account/account_move_line.py:1317
#, python-format
msgid "Bad account !"
msgstr "无效科目!"
#. module: account
-#: code:addons/account/account.py:3108
+#: code:addons/account/account.py:3125
#, python-format
msgid "Sales Journal"
msgstr "销售账簿"
@@ -7323,7 +7367,7 @@ msgid "Invoice Tax"
msgstr "发票税"
#. 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 "没会计期间!"
@@ -7375,7 +7419,7 @@ msgstr "到"
#. 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 "汇兑损益调整"
@@ -7423,13 +7467,15 @@ msgstr "5"
#: 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:397
#, python-format
msgid "Payable Accounts"
msgstr "应付款科目"
#. 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 "定义了全局税,但发票行中没有!"
@@ -7473,7 +7519,7 @@ msgstr "报表名称"
#: 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 "现金"
@@ -7485,15 +7531,15 @@ msgid "Account Destination"
msgstr "目标科目"
#. 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
@@ -7640,13 +7686,14 @@ msgstr "固定"
#: 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 "警告 !"
@@ -7698,7 +7745,7 @@ msgid "Select a currency to apply on the invoice"
msgstr "在发票上选择合适的币别"
#. 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."
@@ -7711,7 +7758,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "不能注销 %s 草稿/形式/取消的发票"
#. module: account
-#: code:addons/account/account_invoice.py:810
+#: code:addons/account/account_invoice.py:821
#, python-format
msgid "No Invoice Lines !"
msgstr "没有发票明细"
@@ -7789,7 +7836,7 @@ msgid "Deferral Method"
msgstr "递延方法"
#. module: account
-#: code:addons/account/account_invoice.py:379
+#: code:addons/account/account_invoice.py:388
#, python-format
msgid "Invoice '%s' is paid."
msgstr "发票 '%s' 已支付。"
@@ -7851,7 +7898,7 @@ msgid "Associated Partner"
msgstr "相关业务伙伴"
#. 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 "你必须首先选择一个业务伙伴!"
@@ -7902,7 +7949,7 @@ msgid ""
msgstr "税目一览表是用来生成您定期的税单。请您按照贵国的税法设置。"
#. 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."
@@ -7924,7 +7971,7 @@ msgid "Choose Fiscal Year"
msgstr "选择会计年度"
#. module: account
-#: code:addons/account/account.py:3111
+#: code:addons/account/account.py:3128
#, python-format
msgid "Purchase Refund Journal"
msgstr "采购红字发票账簿"
@@ -8011,7 +8058,7 @@ msgid "Compute Code for Taxes Included Prices"
msgstr "含税价格计算代码"
#. 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 "
@@ -8139,7 +8186,7 @@ msgid "current month"
msgstr "本月"
#. 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"
@@ -8222,10 +8269,12 @@ msgstr "红字发票账簿"
#. 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
#: report:account.partner.balance:0
+#: report:account.third_party_ledger:0
msgid "Filter By"
msgstr "筛选"
@@ -8258,7 +8307,7 @@ msgid "The partner account used for this invoice."
msgstr "这发票用这业务伙伴科目"
#. module: account
-#: code:addons/account/account.py:3296
+#: code:addons/account/account.py:3313
#, python-format
msgid "Tax %.2f%%"
msgstr "税 %.2f%%"
@@ -8281,7 +8330,7 @@ msgid "Payment Term Line"
msgstr "付款条款明细"
#. module: account
-#: code:addons/account/account.py:3109
+#: code:addons/account/account.py:3126
#, python-format
msgid "Purchase Journal"
msgstr "采购账簿"
@@ -8366,7 +8415,7 @@ msgid "Unpaid Invoices"
msgstr "未支付的发票"
#. 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 "这个供应商的付款条件没有付款条件行!"
@@ -8472,7 +8521,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "保留空为打开所有的会计年度"
#. 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 "合并的凭证 (%s) 已确认!"
@@ -8485,7 +8534,7 @@ msgid ""
msgstr "如果它是一个多货币凭证,这金额表示一个可选的其它货币金额."
#. 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"
@@ -8561,7 +8610,7 @@ msgid "Contact Address"
msgstr "联系地址"
#. module: account
-#: code:addons/account/account.py:2256
+#: code:addons/account/account.py:2273
#, python-format
msgid "Wrong model !"
msgstr "模型有误!"
@@ -8598,12 +8647,14 @@ msgstr "合同列表"
#: 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 "未知的"
#. 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 "账簿的开账分录"
@@ -8622,7 +8673,7 @@ msgid ""
msgstr "这科目用于损益(如果是利润:金额就加,损失:金额就减)用作计算损益报表"
#. 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 "请为这张发票对应的凭证簿选择编号规则"
@@ -8708,7 +8759,7 @@ msgid "Period from"
msgstr "会计期间从"
#. module: account
-#: code:addons/account/account.py:3110
+#: code:addons/account/account.py:3127
#, python-format
msgid "Sales Refund Journal"
msgstr "销售红字发票账簿"
@@ -8755,7 +8806,7 @@ msgid "Purchase Tax(%)"
msgstr "进项税(%)"
#. 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 "请创建发票明细。"
@@ -8771,7 +8822,7 @@ msgid "Display Detail"
msgstr "显示明细"
#. module: account
-#: code:addons/account/account.py:3118
+#: code:addons/account/account.py:3135
#, python-format
msgid "SCNJ"
msgstr "SCNJ"
@@ -8805,8 +8856,6 @@ msgstr "结束会计期间"
#: 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 "会计报表"
@@ -8821,6 +8870,7 @@ msgstr "会计报表"
#: 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
@@ -8841,6 +8891,7 @@ msgstr "开始会计期间"
#. module: account
#: field:account.aged.trial.balance,direction_selection:0
+#: report:account.aged_trial_balance:0
msgid "Analysis Direction"
msgstr "分析趋势"
@@ -8860,7 +8911,7 @@ msgstr "账簿视图"
#. 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 "贷方合计"
@@ -8926,6 +8977,7 @@ msgstr "银行对账单"
#: 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
@@ -9002,7 +9054,7 @@ msgstr ""
"此界面用于会计输入正式的单据。如果需要输入一张客户发票,首先选择好账簿和会计期间,然后首先输入利润科目的分录,系统会自动处理相关的税和应收款。"
#. 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 "您必须选择核销科目"
@@ -9026,7 +9078,6 @@ msgstr ""
"定时间段内是否允许过账"
#. module: account
-#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Filters By"
msgstr "筛选"
@@ -9048,7 +9099,7 @@ msgid "Move"
msgstr "凭证"
#. 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 "您不能更改此税目,请移除并重新创建凭证!"
@@ -9104,7 +9155,7 @@ msgid "Consolidated Children"
msgstr "合并子科目"
#. 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 "
@@ -9165,6 +9216,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
@@ -9223,6 +9275,7 @@ msgstr "周期性凭证"
#. 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
@@ -9230,6 +9283,7 @@ msgstr "周期性凭证"
#: 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
@@ -9272,7 +9326,7 @@ msgid "Unreconciled"
msgstr "反核销"
#. module: account
-#: code:addons/account/account_invoice.py:828
+#: code:addons/account/account_invoice.py:839
#, python-format
msgid "Bad total !"
msgstr "坏的合计!"
@@ -9333,7 +9387,7 @@ msgid "Comparison"
msgstr "比较"
#. module: account
-#: code:addons/account/account_invoice.py:372
+#: code:addons/account/account_invoice.py:381
#, python-format
msgid "Unknown Error"
msgstr "未知错误"
@@ -9370,6 +9424,7 @@ msgstr "使凭证生效"
#: 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
@@ -9470,9 +9525,11 @@ msgstr "过去30天的成本凭证"
#: 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 "会计期间"
@@ -9636,6 +9693,7 @@ msgstr "已登账"
#: 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
@@ -9683,7 +9741,7 @@ msgid "No detail"
msgstr "不详"
#. 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 "没有为此产品 \"%s\" (id:%d):定义利润科目"
@@ -9719,6 +9777,7 @@ msgid "Verification Total"
msgstr "检查合计数"
#. 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
@@ -9739,6 +9798,7 @@ msgstr "所有账簿"
#. 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
@@ -9753,7 +9813,9 @@ msgstr "所有账簿"
#: 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
@@ -9763,6 +9825,8 @@ msgstr "所有账簿"
#: 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
@@ -9916,6 +9980,7 @@ msgstr "供应商发票"
#: 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
@@ -9949,6 +10014,8 @@ msgstr "错误!您不能创建递归的科目模板。"
#. module: account
#: selection:account.print.journal,sort_selection:0
+#: code:addons/account/report/account_journal.py:197
+#, python-format
msgid "Journal Entry Number"
msgstr "会计凭证编号"
@@ -9966,7 +10033,7 @@ msgid ""
msgstr "如果会计科目已经有过会计凭证,且现在是‘关闭’类型,不能改为其他类型。"
#. 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 "分录已核销"
@@ -10003,8 +10070,10 @@ msgstr ""
"内部类型用于对不同类型的科目进行控制:视图科目不能做凭证,合并科目用于在多公司合并中指定子科目,应收应付科目用于业务伙伴,关闭科目用于不再使用的科目。"
#. 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 "进展"
@@ -10122,8 +10191,8 @@ msgid "Statistic Reports"
msgstr "统计报表"
#. 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 "无效科目!"
@@ -10151,7 +10220,7 @@ msgid "Accounts Mapping"
msgstr "科目一览"
#. 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 "发票'%s'是等待复核。"
@@ -10406,6 +10475,7 @@ msgstr "account.addtmpl.wizard"
#. 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
@@ -10479,6 +10549,8 @@ msgstr "到期日期"
#. 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 "前景"
diff --git a/addons/account/installer.py b/addons/account/installer.py
index 6173ea9213e..05a0f6b455e 100644
--- a/addons/account/installer.py
+++ b/addons/account/installer.py
@@ -119,15 +119,6 @@ class account_installer(osv.osv_memory):
self.execute_simple(cr, uid, ids, context)
super(account_installer, self).execute(cr, uid, ids, context=context)
- def action_next(self, cr, uid, ids, context=None):
- next = self.execute(cr, uid, ids, context=context)
- for installer in self.browse(cr, uid, ids, context=context):
- if installer.charts == 'l10n_be':
- return {'type': 'ir.actions.act_window_close'}
- else :
- if next : return next
- return self.next(cr, uid, ids, context=context)
-
def execute_simple(self, cr, uid, ids, context=None):
if context is None:
context = {}
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 342663e700f..d0813edead8 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -141,7 +141,7 @@
</div>
</group>
<group string="Product Information">
- <field name="product_id"/>
+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
<label for="unit_amount"/>
<div>
<field name="unit_amount" class="oe_inline"/>
diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py
index 00d5e520c42..fa2d071695b 100644
--- a/addons/account/report/account_invoice_report.py
+++ b/addons/account/report/account_invoice_report.py
@@ -91,7 +91,7 @@ class account_invoice_report(osv.osv):
('open','Open'),
('paid','Done'),
('cancel','Cancelled')
- ], 'Invoice State', readonly=True),
+ ], 'Invoice Status', readonly=True),
'date_due': fields.date('Due Date', readonly=True),
'account_id': fields.many2one('account.account', 'Account',readonly=True),
'account_line_id': fields.many2one('account.account', 'Account Line',readonly=True),
diff --git a/addons/account/report/account_print_overdue.rml b/addons/account/report/account_print_overdue.rml
index 8b8238030fe..3e8b9b04b62 100644
--- a/addons/account/report/account_print_overdue.rml
+++ b/addons/account/report/account_print_overdue.rml
@@ -129,7 +129,7 @@
</td>
<td>
<para style="terp_default_9">[[ o.title.name or '' ]] [[ o.name ]]</para>
- <para style="terp_default_9">[[ display_address(o.partner_id) ]]</para>
+ <para style="terp_default_9">[[ display_address(o) ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
diff --git a/addons/account/static/src/js/account_move_reconciliation.js b/addons/account/static/src/js/account_move_reconciliation.js
index e8bf24fb27f..8e72e24eb22 100644
--- a/addons/account/static/src/js/account_move_reconciliation.js
+++ b/addons/account/static/src/js/account_move_reconciliation.js
@@ -11,7 +11,7 @@ openerp.account = function (instance) {
this._super.apply(this, arguments);
var self = this;
this.current_partner = null;
- this.do_select.add(function() {
+ this.on('record_selected', this, function() {
if (self.get_selected_ids().length === 0) {
self.$(".oe_account_recon_reconcile").attr("disabled", "");
} else {
@@ -19,7 +19,7 @@ openerp.account = function (instance) {
}
});
},
- on_loaded: function() {
+ load_list: function() {
var self = this;
var tmp = this._super.apply(this, arguments);
if (this.partners) {
@@ -102,7 +102,6 @@ openerp.account = function (instance) {
action_id: result[1],
context: additional_context
}).then(function (result) {
- result = result.result;
result.context = _.extend(result.context || {}, additional_context);
result.flags = result.flags || {};
result.flags.new_window = true;
@@ -121,6 +120,10 @@ openerp.account = function (instance) {
self.do_search(self.last_domain, self.last_context, self.last_group_by);
});
},
+ do_select: function (ids, records) {
+ this.trigger('record_selected')
+ this._super.apply(this, arguments);
+ },
});
};
diff --git a/addons/account/test/account_validate_account_move.yml b/addons/account/test/account_validate_account_move.yml
index 65ae2877125..df58da6dfea 100644
--- a/addons/account/test/account_validate_account_move.yml
+++ b/addons/account/test/account_validate_account_move.yml
@@ -11,21 +11,18 @@
-
!record {model: account.move, id: account_move_0}:
date: !eval time.strftime('%Y-%m-%d')
+ period_id: account.period_6
journal_id: account.bank_journal
line_id:
- account_id: account.cash
amount_currency: 0.0
credit: 2000.0
- date: !eval time.strftime('%Y-%m-%d')
debit: 0.0
- journal_id: account.bank_journal
name: Basic Computer
partner_id: base.res_partner_12
- period_id: account.period_6
ref: '2011010'
tax_amount: 0.0
name: /
- period_id: account.period_6
ref: '2011010'
state: draft
-
@@ -110,4 +107,4 @@
partial_reconcile = self.trans_rec_reconcile_partial_reconcile(cr, uid, [ref('account_move_line_reconcile0')], {'lang': u'en_US',
'active_model': 'account.move.line', 'active_ids': ids, 'tz': False, 'active_id': ids[0]})
move_line = move_line_obj.browse(cr, uid, ids)
- assert move_line[0].reconcile_partial_id, "Partial reconcilation is not done" \ No newline at end of file
+ assert move_line[0].reconcile_partial_id, "Partial reconcilation is not done"
diff --git a/addons/account_analytic_plans/i18n/ru.po b/addons/account_analytic_plans/i18n/ru.po
index 37d01818a6f..71b557f0169 100644
--- a/addons/account_analytic_plans/i18n/ru.po
+++ b/addons/account_analytic_plans/i18n/ru.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: 2011-04-15 19:38+0000\n"
+"PO-Revision-Date: 2012-10-25 12:32+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:15+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
@@ -136,7 +136,7 @@ msgstr "Определить аналитический план счетов"
#. module: account_analytic_plans
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
-msgstr ""
+msgstr "Неверна структурная связь BBA!"
#. module: account_analytic_plans
#: constraint:account.bank.statement:0
@@ -149,6 +149,8 @@ msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
+"Дата проводки в журнале не в определённом периоде! Вы должны сменить дату "
+"или удалить это ограничение из журнала."
#. module: account_analytic_plans
#: sql_constraint:account.journal:0
@@ -251,6 +253,8 @@ msgid ""
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
+"Выбранный счёт проводки в журнале нуждается во вторичной валюте. Вы должны "
+"удалить вторичную валюту по счёту или выбрать мульти-валютный вид по журналу."
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
@@ -429,7 +433,7 @@ msgstr "Счет 4 уровня"
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "Company must be the same for its related account and period."
-msgstr ""
+msgstr "Для счета и периода должна быть одна компания."
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
@@ -515,11 +519,14 @@ msgid ""
"analytic accounts for each plan set. Then, you must attach a plan set to "
"your account journals."
msgstr ""
+"Для настройки нескольких планов счетов аналитики, вы должны определить "
+"корневые счета аналитики для каждого набора плана. Затем вы можете "
+"прикрепить набор плана к вашим учётным журналам."
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
-msgstr ""
+msgstr "Нельзя создать элемент журнала по закрытому счету ."
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py
index 4c6f9b7a637..585798a5235 100644
--- a/addons/account_asset/account_asset.py
+++ b/addons/account_asset/account_asset.py
@@ -226,9 +226,9 @@ class account_asset_asset(osv.osv):
'child_ids': fields.one2many('account.asset.asset', 'parent_id', 'Children Assets'),
'purchase_date': fields.date('Purchase Date', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft','Draft'),('open','Running'),('close','Close')], 'Status', required=True,
- help="When an asset is created, the state is 'Draft'.\n" \
- "If the asset is confirmed, the state goes in 'Running' and the depreciation lines can be posted in the accounting.\n" \
- "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that state."),
+ help="When an asset is created, the status is 'Draft'.\n" \
+ "If the asset is confirmed, the status goes in 'Running' and the depreciation lines can be posted in the accounting.\n" \
+ "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status."),
'active': fields.boolean('Active'),
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),
'method': fields.selection([('linear','Linear'),('degressive','Degressive')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\
diff --git a/addons/account_cancel/i18n/es_MX.po b/addons/account_cancel/i18n/es_MX.po
index c3029cd8d53..c176d3a8f45 100644
--- a/addons/account_cancel/i18n/es_MX.po
+++ b/addons/account_cancel/i18n/es_MX.po
@@ -1,38 +1,23 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# Spanish (Mexico) translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-11-23 09:43+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"<jesteve@zikzakmedia.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
+"POT-Creation-Date: 2012-02-08 00:35+0000\n"
+"PO-Revision-Date: 2012-10-22 17:44+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Spanish (Mexico) <es_MX@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:48+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: account_cancel
-#: model:ir.module.module,description:account_cancel.module_meta_information
-msgid ""
-"\n"
-" Module adds 'Allow cancelling entries' field on form view of account "
-"journal. If set to true it allows user to cancel entries & invoices.\n"
-" "
-msgstr ""
-"\n"
-" Este módulo añade el campo 'Permitir la cancelación de asientos' en la "
-"vista de formulario de los diarios contables. Si está marcado, permite a los "
-"usuarios cancelar los asientos y las facturas.\n"
-" "
-
-#. module: account_cancel
-#: model:ir.module.module,shortdesc:account_cancel.module_meta_information
-msgid "Account Cancel"
-msgstr "Cancelar asientos/facturas"
+#: view:account.invoice:0
+msgid "Cancel"
+msgstr "Cancelar"
diff --git a/addons/account_check_writing/i18n/pl.po b/addons/account_check_writing/i18n/pl.po
new file mode 100644
index 00000000000..c95da4456ca
--- /dev/null
+++ b/addons/account_check_writing/i18n/pl.po
@@ -0,0 +1,199 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-02-08 00:35+0000\n"
+"PO-Revision-Date: 2012-10-25 16:56+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check on Top"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.actions.act_window,help:account_check_writing.action_write_check
+msgid ""
+"The check payment form allows you to track the payment you do to your "
+"suppliers specially by check. When you select a supplier, the payment method "
+"and an amount for the payment, OpenERP will propose to reconcile your "
+"payment with the open supplier invoices or bills.You can print the check"
+msgstr ""
+
+#. module: account_check_writing
+#: view:account.voucher:0
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
+#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
+msgid "Print Check"
+msgstr ""
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check in middle"
+msgstr ""
+
+#. module: account_check_writing
+#: help:res.company,check_layout:0
+msgid ""
+"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
+"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
+"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
+msgstr ""
+
+#. module: account_check_writing
+#: selection:res.company,check_layout:0
+msgid "Check on bottom"
+msgstr ""
+
+#. module: account_check_writing
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr ""
+
+#. module: account_check_writing
+#: help:account.journal,allow_check_writing:0
+msgid "Check this if the journal is to be used for writing checks."
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.journal,allow_check_writing:0
+msgid "Allow Check writing"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_account_journal
+msgid "Journal"
+msgstr "Dziennik"
+
+#. module: account_check_writing
+#: model:ir.actions.act_window,name:account_check_writing.action_write_check
+#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
+msgid "Write Checks"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Discount"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Original Amount"
+msgstr ""
+
+#. module: account_check_writing
+#: view:res.company:0
+msgid "Configuration"
+msgstr "Konfiguracja"
+
+#. module: account_check_writing
+#: field:account.voucher,allow_check:0
+msgid "Allow Check Writing"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Payment"
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.journal,use_preprint_check:0
+msgid "Use Preprinted Check"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account_check_writing
+#: view:res.company:0
+msgid "Default Check Layout"
+msgstr ""
+
+#. module: account_check_writing
+#: constraint:account.journal:0
+msgid ""
+"Configuration error! The currency chosen should be shared by the default "
+"accounts too."
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+msgid "Balance Due"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.bottom:0
+#: report:account.print.check.middle:0
+#: report:account.print.check.top:0
+msgid "Check Amount"
+msgstr ""
+
+#. module: account_check_writing
+#: model:ir.model,name:account_check_writing.model_account_voucher
+msgid "Accounting Voucher"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_check_writing
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_check_writing
+#: field:account.voucher,amount_in_word:0
+msgid "Amount in Word"
+msgstr ""
+
+#. module: account_check_writing
+#: report:account.print.check.top:0
+msgid "Open Balance"
+msgstr ""
+
+#. module: account_check_writing
+#: field:res.company,check_layout:0
+msgid "Choose Check layout"
+msgstr ""
diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py
index fceff99b3f2..84eeddfb5db 100644
--- a/addons/account_payment/account_payment.py
+++ b/addons/account_payment/account_payment.py
@@ -19,11 +19,14 @@
#
##############################################################################
+import logging
import time
from osv import osv, fields
import netsvc
+_logger = logging.getLogger(__name__)
+
class payment_mode(osv.osv):
_name= 'payment.mode'
_description= 'Payment Mode'
@@ -70,9 +73,7 @@ class payment_order(osv.osv):
#dead code
def get_wizard(self, type):
- logger = netsvc.Logger()
- logger.notifyChannel("Warning!", netsvc.LOG_WARNING,
- "No wizard is found for the payment type '%s'." % type)
+ _logger.warning("No wizard found for the payment type '%s'.", type)
return None
def _total(self, cursor, user, ids, name, args, context=None):
@@ -95,7 +96,7 @@ class payment_order(osv.osv):
('cancel', 'Cancelled'),
('open', 'Confirmed'),
('done', 'Done')], 'Status', select=True,
- help='When an order is placed the state is \'Draft\'.\n Once the bank is confirmed the state is set to \'Confirmed\'.\n Then the order is paid the state is \'Done\'.'),
+ help='When an order is placed the status is \'Draft\'.\n Once the bank is confirmed the status is set to \'Confirmed\'.\n Then the order is paid the status is \'Done\'.'),
'line_ids': fields.one2many('payment.line', 'order_id', 'Payment lines', states={'done': [('readonly', True)]}),
'total': fields.function(_total, string="Total", type='float'),
'user_id': fields.many2one('res.users', 'Responsible', required=True, states={'done': [('readonly', True)]}),
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index 648576443a0..f25318727df 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -293,10 +293,10 @@ class account_voucher(osv.osv):
('proforma','Pro-forma'),
('posted','Posted')
], 'Status', readonly=True, size=32,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
- \n* The \'Pro-forma\' when voucher is in Pro-forma state,voucher does not have an voucher number. \
- \n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
- \n* The \'Cancelled\' state is used when user cancel voucher.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed Voucher. \
+ \n* The \'Pro-forma\' when voucher is in Pro-forma status,voucher does not have an voucher number. \
+ \n* The \'Posted\' status is used when user create voucher,a voucher number is generated and voucher entries are created in account \
+ \n* The \'Cancelled\' status is used when user cancel voucher.'),
'amount': fields.float('Total', digits_compute=dp.get_precision('Account'), required=True, readonly=True, states={'draft':[('readonly',False)]}),
'tax_amount':fields.float('Tax Amount', digits_compute=dp.get_precision('Account'), readonly=True, states={'draft':[('readonly',False)]}),
'reference': fields.char('Ref #', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Transaction reference number."),
@@ -1422,7 +1422,7 @@ class account_voucher_line(osv.osv):
}
def onchange_reconcile(self, cr, uid, ids, reconcile, amount, amount_unreconciled, context=None):
- vals = { 'amount': 0.0}
+ vals = {'amount': 0.0}
if reconcile:
vals = { 'amount': amount_unreconciled}
return {'value': vals}
diff --git a/addons/account_voucher/report/account_voucher_sales_receipt.py b/addons/account_voucher/report/account_voucher_sales_receipt.py
index 53aa5cd4a0d..fdadfc6bc94 100644
--- a/addons/account_voucher/report/account_voucher_sales_receipt.py
+++ b/addons/account_voucher/report/account_voucher_sales_receipt.py
@@ -52,7 +52,7 @@ class sale_receipt_report(osv.osv):
('proforma','Pro-forma'),
('posted','Posted'),
('cancel','Cancelled')
- ], 'Voucher State', readonly=True),
+ ], 'Voucher Status', readonly=True),
'pay_now':fields.selection([
('pay_now','Pay Directly'),
('pay_later','Pay Later or Group Funds'),
diff --git a/addons/account_voucher/test/account_voucher.yml b/addons/account_voucher/test/account_voucher.yml
index f8e20f496e5..c9270dc695c 100644
--- a/addons/account_voucher/test/account_voucher.yml
+++ b/addons/account_voucher/test/account_voucher.yml
@@ -53,7 +53,6 @@
account_id: account.cash
amount: 1000.0
company_id: base.main_company
- currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher Axelor
narration: PC Assemble SC234
diff --git a/addons/account_voucher/test/sales_payment.yml b/addons/account_voucher/test/sales_payment.yml
index 88f10e55918..b71e42add0b 100644
--- a/addons/account_voucher/test/sales_payment.yml
+++ b/addons/account_voucher/test/sales_payment.yml
@@ -45,7 +45,6 @@
'account_id': ref('account.cash'),
'amount': 450.0,
'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
'journal_id': ref('account.bank_journal'),
'partner_id': ref('base.res_partner_19'),
'period_id': ref('account.period_8'),
@@ -53,6 +52,10 @@
}
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
+ #clients aren't sending value of readonly fields in the view, and there is a good reason for that, so here the
+ #create should only use values of fields that are not readonly. That's why i'm removing some of these values
+ del(res['value']['line_cr_ids'][0]['date_original'])
+ del(res['value']['line_cr_ids'][0]['date_due'])
res['value']['line_cr_ids'][0]['amount'] = 450.0
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
id = self.create(cr, uid, vals)
diff --git a/addons/account_voucher/test/sales_receipt.yml b/addons/account_voucher/test/sales_receipt.yml
index 7cd82eecaff..cf4bc5c46d3 100644
--- a/addons/account_voucher/test/sales_receipt.yml
+++ b/addons/account_voucher/test/sales_receipt.yml
@@ -53,7 +53,6 @@
'account_id': ref('account.cash'),
'amount': 30000.0,
'company_id': ref('base.main_company'),
- 'currency_id': ref('base.EUR'),
'journal_id': ref('account.bank_journal'),
'partner_id': ref('base.res_partner_19'),
'period_id': ref('account.period_8'),
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index a362c553ccd..0441424cc33 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -64,7 +64,7 @@
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
- <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
+ <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
@@ -209,7 +209,7 @@
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
- <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
+ <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 1ce483a26cd..5ea8c59b848 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -255,27 +255,27 @@ class account_analytic_account(osv.osv):
if context is None:
context={}
if context.get('current_model') == 'project.project':
- cr.execute("select analytic_account_id from project_project")
- project_ids = [x[0] for x in cr.fetchall()]
+ project_obj = self.pool.get("account.analytic.account")
+ project_ids = project_obj.search(cr, uid, args)
return self.name_get(cr, uid, project_ids, context=context)
if name:
- account = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
- if not account:
+ account_ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context)
+ if not account_ids:
names=map(lambda i : i.strip(),name.split('/'))
for i in range(len(names)):
dom=[('name', operator, names[i])]
if i>0:
- dom+=[('id','child_of',account)]
- account = self.search(cr, uid, dom, limit=limit, context=context)
- newacc = account
+ dom+=[('id','child_of',account_ids)]
+ account_ids = self.search(cr, uid, dom, limit=limit, context=context)
+ newacc = account_ids
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)], limit=limit, context=context)
- account += newacc
+ account_ids += newacc
if args:
- account = self.search(cr, uid, [('id', 'in', account)] + args, limit=limit, context=context)
+ account_ids = self.search(cr, uid, [('id', 'in', account_ids)] + args, limit=limit, context=context)
else:
- account = self.search(cr, uid, args, limit=limit, context=context)
- return self.name_get(cr, uid, account, context=context)
+ account_ids = self.search(cr, uid, args, limit=limit, context=context)
+ return self.name_get(cr, uid, account_ids, context=context)
def create(self, cr, uid, vals, context=None):
contract = super(account_analytic_account, self).create(cr, uid, vals, context=context)
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 8834645c460..2326a4184ae 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -32,13 +32,23 @@ import datetime
from osv import fields, osv
from tools.translate import _
+from itertools import groupby
+from operator import itemgetter
+
FIELD_STATES = [('clear', 'Clear'), ('anonymized', 'Anonymized'), ('not_existing', 'Not Existing')]
ANONYMIZATION_STATES = FIELD_STATES + [('unstable', 'Unstable')]
+WIZARD_ANONYMIZATION_STATES = [('clear', 'Clear'), ('anonymized', 'Anonymized'), ('unstable', 'Unstable')]
ANONYMIZATION_HISTORY_STATE = [('started', 'Started'), ('done', 'Done'), ('in_exception', 'Exception occured')]
ANONYMIZATION_DIRECTION = [('clear -> anonymized', 'clear -> anonymized'), ('anonymized -> clear', 'anonymized -> clear')]
+def group(lst, cols):
+ if isinstance(cols, basestring):
+ cols = [cols]
+ return dict((k, [v for v in itr]) for k, itr in groupby(sorted(lst, key=itemgetter(*cols)), itemgetter(*cols)))
+
+
class ir_model_fields_anonymization(osv.osv):
_name = 'ir.model.fields.anonymization'
_rec_name = 'field_id'
@@ -207,8 +217,6 @@ class ir_model_fields_anonymization(osv.osv):
'state': lambda *a: 'clear',
}
-ir_model_fields_anonymization()
-
class ir_model_fields_anonymization_history(osv.osv):
_name = 'ir.model.fields.anonymization.history'
@@ -223,8 +231,6 @@ class ir_model_fields_anonymization_history(osv.osv):
'filepath': fields.char(string='File path', size=256, readonly=True),
}
-ir_model_fields_anonymization_history()
-
class ir_model_fields_anonymize_wizard(osv.osv_memory):
_name = 'ir.model.fields.anonymize.wizard'
@@ -250,8 +256,8 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
'name': fields.char(size=64, string='File Name'),
'summary': fields.function(_get_summary, type='text', string='Summary'),
'file_export': fields.binary(string='Export'),
- 'file_import': fields.binary(string='Import'),
- 'state': fields.function(_get_state, string='Status', type='selection', selection=ANONYMIZATION_STATES, readonly=False),
+ 'file_import': fields.binary(string='Import', help="This is the file created by the anonymization process. It should have the '.pickle' extention."),
+ 'state': fields.function(_get_state, string='Status', type='selection', selection=WIZARD_ANONYMIZATION_STATES, readonly=False),
'msg': fields.text(string='Message'),
}
@@ -319,6 +325,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
# clicked in the menu and the fields are already anonymized
placeholder.addnext(etree.Element('newline'))
placeholder.addnext(etree.Element('field', {'name': 'file_import', 'required': "1"}))
+ placeholder.addnext(etree.Element('label', {'string': 'Anonymization file'}))
eview.remove(placeholder)
elif step == 'just_anonymized':
# we just ran the anonymization process, we need the file export field
@@ -500,7 +507,6 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
def reverse_anonymize_database(self, cr, uid, ids, context=None):
"""Set the 'clear' state to defined fields"""
-
ir_model_fields_anonymization_model = self.pool.get('ir.model.fields.anonymization')
anonymization_history_model = self.pool.get('ir.model.fields.anonymization.history')
@@ -524,23 +530,46 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
wizards = self.browse(cr, uid, ids, context=context)
for wizard in wizards:
if not wizard.file_import:
- msg = "It is not possible to reverse the anonymization process without supplying anonymization export file."
+ msg = "It is not possible to reverse the anonymization process without supplying the anonymization export file."
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
# reverse the anonymization:
# load the pickle file content into a data structure:
data = pickle.loads(base64.decodestring(wizard.file_import))
+ migration_fix_obj = self.pool.get('ir.model.fields.anonymization.migration.fix')
+ fix_ids = migration_fix_obj.search(cr, uid, [('target_version', '=', '7.0')])
+ fixes = migration_fix_obj.read(cr, uid, fix_ids, ['model_name', 'field_name', 'query', 'query_type', 'sequence'])
+ fixes = group(fixes, ('model_name', 'field_name'))
+
for line in data:
table_name = self.pool.get(line['model_id'])._table
- sql = "update %(table)s set %(field)s = %%(value)s where id = %%(id)s" % {
- 'table': table_name,
- 'field': line['field_id'],
- }
- cr.execute(sql, {
- 'value': line['value'],
- 'id': line['id']
- })
+
+ # check if custom sql exists:
+ key = (line['model_id'], line['field_id'])
+ custom_updates = fixes.get(key)
+ if custom_updates:
+ custom_updates.sort(itemgetter('sequence'))
+ queries = [(record['query'], record['query_type']) for record in custom_updates if record['query_type']]
+ else:
+ queries = [("update %(table)s set %(field)s = %%(value)s where id = %%(id)s" % {
+ 'table': table_name,
+ 'field': line['field_id'],
+ }, 'sql')]
+
+ for query in queries:
+ if query[1] == 'sql':
+ sql = query[0]
+ cr.execute(sql, {
+ 'value': line['value'],
+ 'id': line['id']
+ })
+ elif query[1] == 'python':
+ raw_code = query[0]
+ code = raw_code % line
+ eval(code)
+ else:
+ raise Exception("Unknown query type '%s'. Valid types are: sql, python." % (query['query_type'], ))
# update the anonymization fields:
ir_model_fields_anonymization_model = self.pool.get('ir.model.fields.anonymization')
@@ -589,7 +618,19 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
res = None
return res
-ir_model_fields_anonymize_wizard()
+class ir_model_fields_anonymization_migration_fix(osv.osv):
+ _name = 'ir.model.fields.anonymization.migration.fix'
+ _order = "sequence"
+
+ _columns = {
+ 'target_version': fields.char('Target Version'),
+ 'model_name': fields.char('Model'),
+ 'field_name': fields.char('Field'),
+ 'query': fields.text('Query'),
+ 'query_type': fields.selection(string='Query', selection=[('sql', 'sql'), ('python', 'python')]),
+ 'sequence': fields.integer('Sequence'),
+ }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/anonymization/anonymization_view.xml b/addons/anonymization/anonymization_view.xml
index 1a6c6c355d5..fca112eb266 100644
--- a/addons/anonymization/anonymization_view.xml
+++ b/addons/anonymization/anonymization_view.xml
@@ -14,7 +14,6 @@
<field name="model_id" on_change="onchange_model_id(model_id)" />
<field name="model_name" on_change="onchange_model_name(model_name)" />
<field name="field_id"
-
on_change="onchange_field_id(field_id, model_name)"
domain="[('model_id','=',model_id), ('ttype', 'not in', ['function', 'binary', 'many2many', 'many2one', 'one2many', 'reference'])]" />
<field name="field_name" on_change="onchange_field_name(field_name, model_name)" />
diff --git a/addons/anonymization/i18n/mn.po b/addons/anonymization/i18n/mn.po
index cd54ad8ef6c..3ba97872c3c 100644
--- a/addons/anonymization/i18n/mn.po
+++ b/addons/anonymization/i18n/mn.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-22 04:40+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
diff --git a/addons/auth_openid/i18n/pl.po b/addons/auth_openid/i18n/pl.po
new file mode 100644
index 00000000000..ffaba43d98a
--- /dev/null
+++ b/addons/auth_openid/i18n/pl.po
@@ -0,0 +1,112 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-02-08 01:37+0100\n"
+"PO-Revision-Date: 2012-10-25 17:11+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
+#. module: auth_openid
+#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
+#. openerp-web
+#: view:res.users:0
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12
+msgid "OpenID"
+msgstr ""
+
+#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
+#. module: auth_openid
+#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
+#. openerp-web
+#: field:res.users,openid_url:0
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47
+msgid "OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#: help:res.users,openid_email:0
+msgid "Used for disambiguation in case of a shared OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#: sql_constraint:res.users:0
+msgid "You can not have two users with the same login !"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_email:0
+msgid "OpenID Email"
+msgstr ""
+
+#. module: auth_openid
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_key:0
+msgid "OpenID Key"
+msgstr ""
+
+#. module: auth_openid
+#: model:ir.model,name:auth_openid.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8
+msgid "Password"
+msgstr "Hasło"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
+msgid "Google"
+msgstr "Google"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
+msgid "Google Apps"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11
+msgid "Launchpad"
+msgstr "Launchpad"
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20
+msgid "Google Apps Domain:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24
+msgid "Username:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28
+msgid "OpenID URL:"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35
+msgid "Google Apps Domain"
+msgstr ""
+
+#. openerp-web
+#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41
+msgid "Username"
+msgstr ""
diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py
index 59196c4da87..69eee4f18e0 100644
--- a/addons/auth_signup/res_users.py
+++ b/addons/auth_signup/res_users.py
@@ -138,7 +138,7 @@ class res_users(osv.Model):
for user in self.browse(cr, uid, ids, context))
_columns = {
- 'state': fields.function(_get_state, string='State', type='selection',
+ 'state': fields.function(_get_state, string='Status', type='selection',
selection=[('new', 'New'), ('active', 'Active'), ('reset', 'Resetting Password')]),
}
diff --git a/addons/base_action_rule/i18n/zh_CN.po b/addons/base_action_rule/i18n/zh_CN.po
index 77ee498555e..676f1f18a1f 100644
--- a/addons/base_action_rule/i18n/zh_CN.po
+++ b/addons/base_action_rule/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-05-10 17:50+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 16:32+0000\n"
+"Last-Translator: ccdos <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:35+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: base_action_rule
#: help:base.action.rule,act_mail_to_user:0
@@ -315,7 +315,7 @@ msgstr "激活"
#: code:addons/base_action_rule/base_action_rule.py:329
#, python-format
msgid "No Email ID Found for your Company address!"
-msgstr ""
+msgstr "公司地址中没有设置Email !"
#. module: base_action_rule
#: field:base.action.rule,act_remind_user:0
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index f5fb3dbd051..cbdc43b23af 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -1023,10 +1023,10 @@ rule or repeating pattern of time to exclude from the recurring rule."),
'rrule': fields.function(_get_rulestring, type='char', size=124, \
fnct_inv=_rrule_write, store=True, string='Recurrent Rule'),
'rrule_type': fields.selection([
- ('daily', 'Daily'),
- ('weekly', 'Weekly'),
- ('monthly', 'Monthly'),
- ('yearly', 'Yearly')
+ ('daily', 'Day(s)'),
+ ('weekly', 'Week(s)'),
+ ('monthly', 'Month(s)'),
+ ('yearly', 'Year(s)')
], 'Recurrency', states={'done': [('readonly', True)]},
help="Let the event automatically repeat at that interval"),
'alarm_id': fields.many2one('res.alarm', 'Reminder', states={'done': [('readonly', True)]},
diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml
index d5dc75df873..a922521d970 100644
--- a/addons/base_calendar/base_calendar_view.xml
+++ b/addons/base_calendar/base_calendar_view.xml
@@ -1,121 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
- <!-- Attendee form view -->
- <record id="base_calendar_attendee_form_view" model="ir.ui.view">
- <field name="name">calendar.attendee.form</field>
- <field name="model">calendar.attendee</field>
- <field name="arch" type="xml">
- <form string="Invitation details" version="7.0">
- <header>
- <button name="do_tentative" states="needs-action,declined,accepted" string="Uncertain" type="object" class="oe_highlight"/>
- <button name="do_accept" string="Accept" states="needs-action,tentative,declined" type="object" class="oe_highlight"/>
- <button name="do_decline" string="Decline" states="needs-action,tentative,accepted" type="object" class="oe_highlight"/>
- <field name="state" widget="statusbar"
- statusbar_visible="tentative,needs-action,accepted" statusbar_colors='{"proforma":"blue"}'/>
- </header>
- <sheet>
-
- <div class="oe_title">
- <label for="email" string="Invitation To" class="oe_edit_only"/>
- <h1>
- <field name="email" class="oe_inline"/>
- (<field name="language" class="oe_inline"/>)
- </h1>
-
- <h2>
- From <field name="event_date" class="oe_inline"/>
- to <field name="event_end_date" class="oe_inline"/>
- </h2>
- </div>
- <group>
- <group>
- <field name="sent_by_uid" string="Invitation From"/>
- <field name="user_id" string="Invited User"/>
- <field name="partner_id" string="Contact"/>
- </group>
- <group>
- <field name="cutype" string="Invitation Type"/>
- <field name="role" string="Role"/>
- <field name="rsvp"/>
- <field name="ref" readonly="1"/>
- </group>
- </group>
- <group>
- <group string="Delegated From">
- <field name="parent_ids" readonly="1" nolabel="1"/>
- </group>
- <group string="Delegated To" >
- <field name="child_ids" readonly="1" nolabel="1"/>
- </group>
- </group>
- </sheet>
- </form>
- </field>
- </record>
-
- <!-- Attendee tree view -->
- <record id="base_calendar_attendee_tree_view" model="ir.ui.view">
- <field name="name">calendar.attendee.tree</field>
- <field name="model">calendar.attendee</field>
- <field name="arch" type="xml">
- <tree string="Invitation details">
- <field name="sent_by_uid" string="Invitation From"/>
- <field name="role" string="My Role"/>
- <field name="user_id" invisible="1"/>
- <field name="partner_id" invisible="1"/>
- <field name="cutype" string="Invitation Type"/>
- <field name="state"/>
- <field name="rsvp" string="Required to Join"/>
- </tree>
- </field>
- </record>
-
- <!-- Attendee search view -->
- <record id="base_calendar_attendee_search_view" model="ir.ui.view">
- <field name="name">calendar.attendee.search</field>
- <field name="model">calendar.attendee</field>
- <field name="arch" type="xml">
- <search string="Search Invitations">
- <field name="email" string="Email"/>
- <field name="event_date"/>
- <filter icon="terp-gtk-jump-to-ltr" name="toreview" string="To Review" domain="[('state','=', 'needs-action')]" help="Invitations To Review"/>
- <filter icon="terp-check" string="Accepted" domain="[('state','=', 'accepted')]" help="Accepted Invitations"/>
- <filter icon="terp-dialog-close" string="Declined" domain="[('state','=', 'declined')]" help="Declined Invitations"/>
- <filter icon="gtk-sort-descending" string="Delegated" domain="[('state','=', 'delegated')]" help="Delegated Invitations"/>
- <field name="user_id" string="Responsible"/>
- <field name="cutype" string="Invitation type"/>
- <group expand="0" string="Group By...">
- <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
- <filter string="Contact" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
- <filter string="Type" icon="terp-stock_symbol-selection" help="Invitation Type" domain="[]" context="{'group_by':'cutype'}"/>
- <filter string="Role" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'role'}"/>
- <filter string="Required Reply" icon="terp-mail-replied" domain="[]" context="{'group_by':'rsvp'}"/>
- <filter string="Status" icon="terp-stock_effects-object-colorize" help="Invitation Type"
- domain="[]" context="{'group_by':'state'}"/>
- </group>
- </search>
- </field>
- </record>
- <record id="action_view_attendee_form" model="ir.actions.act_window">
- <field name="name">Event Invitations</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">calendar.attendee</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view"/>
- <field name="context">{'default_sent_by_uid': uid}</field>
- </record>
<!-- Calendar's menu -->
<menuitem id="base.menu_calendar_configuration" name="Calendar"
parent="base.menu_base_config" sequence="50" groups="base.group_no_one"/>
- <!-- Invitation menu -->
- <menuitem id="menu_attendee_invitations"
- parent="base.menu_calendar_configuration"
- sequence="10" action="action_view_attendee_form"/>
-
<!-- Alarm form view -->
<record id="res_alarm_form_view" model="ir.ui.view">
<field name="name">res.alarm.form</field>
diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml
index 9dd37afa3d6..659145e7c16 100644
--- a/addons/base_calendar/crm_meeting_view.xml
+++ b/addons/base_calendar/crm_meeting_view.xml
@@ -86,7 +86,7 @@
</h2>
</div>
<notebook>
- <page string="Meeting Detail">
+ <page string="Meeting Details">
<group>
<group>
<field name="date" string="Starting at"/>
@@ -170,12 +170,7 @@
</group>
</group>
</page>
- <!--
- Temporarily removing invitation feature as the implementation
- was not clean. Invitation should be trigerred automatically
- based on partner_ids.
- -->
- <page string="Invitations">
+ <page string="Invitations" groups="base.group_no_one">
<field name="attendee_ids" widget="one2many" mode="tree">
<tree string="Invitation details" editable="top">
<field name="partner_id"/>
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 81a60a5dd5f..14e029eb988 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -140,18 +140,20 @@ class users(osv.osv):
# Add handlers for 'input_pw' field.
def set_pw(self, cr, uid, id, name, value, args, context):
- if not value:
- raise osv.except_osv(_('Error!'), _("You have to specify a password."))
+ if value:
+ obj = pooler.get_pool(cr.dbname).get('res.users')
+ if not hasattr(obj, "_salt_cache"):
+ obj._salt_cache = {}
- obj = pooler.get_pool(cr.dbname).get('res.users')
- if not hasattr(obj, "_salt_cache"):
- obj._salt_cache = {}
+ salt = obj._salt_cache[id] = gen_salt()
+ encrypted = encrypt_md5(value, salt)
- salt = obj._salt_cache[id] = gen_salt()
- encrypted = encrypt_md5(value, salt)
+ else:
+ #setting a password to '' is allowed. It can be used to inactivate the classic log-in of the user
+ #while the access can still be granted by another login method (openid...)
+ encrypted = ''
cr.execute('update res_users set password=%s where id=%s',
(encrypted.encode('utf-8'), int(id)))
- cr.commit()
del value
def get_pw( self, cr, uid, ids, name, args, context ):
diff --git a/addons/base_import/static/src/css/import.css b/addons/base_import/static/src/css/import.css
index 07b193c3dc4..47b5506a10f 100644
--- a/addons/base_import/static/src/css/import.css
+++ b/addons/base_import/static/src/css/import.css
@@ -156,5 +156,11 @@
border-right: 1px solid #D0D0D0;
}
+.oe_import .oe_import_error_report > p {
+ background: #efc9cb;
+}
+.oe_import .select2-results {
+ font-size: 12px;
+}
diff --git a/addons/base_import/static/src/js/import.js b/addons/base_import/static/src/js/import.js
index 043630afc48..407d38dacd7 100644
--- a/addons/base_import/static/src/js/import.js
+++ b/addons/base_import/static/src/js/import.js
@@ -38,7 +38,7 @@ openerp.base_import = function (instance) {
// if true, the 'Import', 'Export', etc... buttons will be shown
instance.web.ListView.prototype.defaults.import_enabled = true;
instance.web.ListView.include({
- on_loaded: function () {
+ load_list: function () {
var self = this;
var add_button = false;
if (!this.$buttons) {
diff --git a/addons/base_vat/base_vat_view.xml b/addons/base_vat/base_vat_view.xml
index ec98b7922de..6d15099dc5a 100644
--- a/addons/base_vat/base_vat_view.xml
+++ b/addons/base_vat/base_vat_view.xml
@@ -11,7 +11,7 @@
<label for="vat"/>
<div>
<field name="vat" on_change="vat_change(vat)" placeholder="e.g. BE0477472701" class="oe_inline"/>
- <button colspan="2" name="button_check_vat" string="Check VAT" type="object" icon="gtk-execute" class="oe_inline"/>
+ <button colspan="2" name="button_check_vat" string="Check Validity" type="object" icon="gtk-execute" class="oe_inline"/>
<field name="vat_subjected" class="oe_inline"/>
</div>
</field>
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index ddeded0926e..9a90a8022b6 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -85,7 +85,6 @@ Dashboard for CRM will include:
'crm_lead_view.xml',
'crm_lead_menu.xml',
- 'crm_meeting_view.xml',
'crm_meeting_menu.xml',
'crm_meeting_shortcut_data.xml',
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index d5f5b2511d1..eb602b98c09 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -77,7 +77,7 @@ class crm_case_stage(osv.osv):
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
'state': fields.selection(AVAILABLE_STATES, 'Related Status', required=True,
help="The status of your document will automatically change regarding the selected stage. " \
- "For example, if a stage is related to the state 'Close', when your document reaches this stage, it is automatically closed."),
+ "For example, if a stage is related to the status 'Close', when your document reaches this stage, it is automatically closed."),
'case_default': fields.boolean('Common to All Teams',
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
'fold': fields.boolean('Hide in Views when Empty',
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index fbe47c08dca..9ee5aeb2301 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -223,11 +223,11 @@ class crm_lead(base_stage, format_address, osv.osv):
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='day_close', type="float", store=True),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=crm.AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
+ help='The Status is set to \'Draft\', when a case is created.\
+ If the case is in progress the Status is set to \'Open\'.\
+ When the case is over, the Status is set to \'Done\'.\
+ If the case needs to be reviewed then the Status is \
set to \'Pending\'.'),
# Only used for type opportunity
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
deleted file mode 100644
index 068f7cfbf64..00000000000
--- a/addons/crm/crm_meeting_view.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<openerp>
- <data>
-
- <!-- Calendar Attendee Form View -->
- <record id="attendee_form_view_inherit" model="ir.ui.view">
- <field name="name">calendar.attendee.form.inherit</field>
- <field name="model">calendar.attendee</field>
- <field name="inherit_id" ref="base_calendar.base_calendar_attendee_form_view"/>
- <field name="arch" type="xml">
- <field name="ref" position="after">
- <field name="categ_id" string="Event Type"/>
- </field>
- </field>
- </record>
-
- </data>
-</openerp>
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index 44894fc881d..bac33815794 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -50,10 +50,10 @@ class crm_phonecall(base_state, osv.osv):
('cancel', 'Cancelled'),
('done', 'Held'),],
string='Status', size=16, readonly=True,
- help='The state is set to \'Todo\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the call is over, the state is set to \'Held\'.\
- If the call needs to be done then the state is set to \'Not Held\'.'),
+ help='The status is set to \'Todo\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the call is over, the status is set to \'Held\'.\
+ If the call needs to be done then the status is set to \'Not Held\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'date_open': fields.datetime('Opened', readonly=True),
# phonecall fields
diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml
index c359aa461e7..30303d4205c 100644
--- a/addons/crm/crm_phonecall_menu.xml
+++ b/addons/crm/crm_phonecall_menu.xml
@@ -123,7 +123,7 @@
OpenERP allows you to easily define all the calls to be done
by your sales team and follow up based on their summary.
</p><p>
- You can use the import feature to massicely import a new list of
+ You can use the import feature to massively import a new list of
prospects to qualify.
</p>
</field>
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 7f18f8d16e4..21b0d295476 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -70,19 +70,19 @@
<field name="date"/>
<field name="name"/>
<field name="partner_id"/>
- <field name="partner_phone"/>
- <field name="user_id"/>
- <field name="categ_id" invisible="1"/>
- <field name="create_date" invisible="1"/>
- <field name="opportunity_id" invisible="1"/>
+ <button string="Meeting"
+ states="open,pending" icon="gtk-redo"
+ name="action_make_meeting" type="object"/>
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
states="open,pending"
icon="gtk-index"
type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}"/>
- <button string="Meeting"
- states="open,pending" icon="gtk-redo"
- name="action_make_meeting" type="object"/>
+ <field name="partner_phone"/>
+ <field name="user_id"/>
+ <field name="categ_id" invisible="1"/>
+ <field name="create_date" invisible="1"/>
+ <field name="opportunity_id" invisible="1"/>
<field name="state"/>
<button name="case_open" string="Confirm" type="object"
states="draft,pending" icon="gtk-go-forward"/>
@@ -125,7 +125,7 @@
</div>
<div class="oe_title">
<div class="oe_edit_only">
- <label for="name" string="Title"/>
+ <label for="name"/>
</div>
<h1><field name="name" required="1"/></h1>
<div class="oe_edit_only">
diff --git a/addons/crm/i18n/zh_CN.po b/addons/crm/i18n/zh_CN.po
index 94c5df29046..4a5bda0e170 100644
--- a/addons/crm/i18n/zh_CN.po
+++ b/addons/crm/i18n/zh_CN.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 01:37+0100\n"
-"PO-Revision-Date: 2012-03-22 16:17+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 16:22+0000\n"
+"Last-Translator: fenshuajiang <openerp@126.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:06+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -172,7 +172,7 @@ msgstr "预计结束月份"
#. module: crm
#: view:crm.lead2opportunity.partner.mass:0
msgid "Assigned Opportunities to"
-msgstr ""
+msgstr "分配商机给"
#. module: crm
#: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0
@@ -583,7 +583,7 @@ msgstr "结束日期"
#. module: crm
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
msgid "Schedule/Log a Call"
-msgstr ""
+msgstr "计划/记录一个电话"
#. module: crm
#: constraint:base.action.rule:0
@@ -763,7 +763,7 @@ msgstr "继续"
#. module: crm
#: field:crm.segmentation,som_interval:0
msgid "Days per Period"
-msgstr ""
+msgstr "每阶段的天数"
#. module: crm
#: field:crm.meeting,byday:0
@@ -926,7 +926,7 @@ msgstr "开启天数"
#. module: crm
#: view:crm.meeting:0
msgid "Show Time as"
-msgstr ""
+msgstr "显示时间为"
#. module: crm
#: view:crm.phonecall2partner:0
@@ -1299,7 +1299,7 @@ msgstr "写日期"
#. module: crm
#: view:crm.meeting:0
msgid "End of Recurrency"
-msgstr ""
+msgstr "结束循环"
#. module: crm
#: view:crm.meeting:0
@@ -1835,7 +1835,7 @@ msgstr "回复到"
#. module: crm
#: view:crm.case.section:0
msgid "Select Stages for this Sales Team"
-msgstr ""
+msgstr "为这个销售团队选择阶段"
#. module: crm
#: view:board.board:0
@@ -2683,7 +2683,7 @@ msgstr "这联系的邮件地址"
#. module: crm
#: field:crm.lead,referred:0
msgid "Referred by"
-msgstr ""
+msgstr "推荐人"
#. module: crm
#: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall.py b/addons/crm/wizard/crm_phonecall_to_phonecall.py
index d68591ab0b7..2cdfb0387e6 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall.py
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall.py
@@ -87,7 +87,7 @@ class crm_phonecall2phonecall(osv.osv_memory):
if 'user_id' in fields:
res.update({'user_id': phonecall.user_id and phonecall.user_id.id or False})
if 'date' in fields:
- res.update({'date': phonecall.date})
+ res.update({'date': False})
if 'section_id' in fields:
res.update({'section_id': phonecall.section_id and phonecall.section_id.id or False})
if 'categ_id' in fields:
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index c88b2fe26af..d6f0ed883c8 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -50,7 +50,7 @@ class crm_claim_stage(osv.osv):
'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."),
'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections',
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
- 'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."),
+ 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', required=True, help="The related status for the stage. The status of your document will automatically change regarding the selected stage. For example, if a stage is related to the status 'Close', when your document reaches this stage, it will be automatically have the 'closed' status."),
'case_refused': fields.boolean('Refused stage',
help='Refused stages are specific stages for done.'),
'case_default': fields.boolean('Common to All Teams',
@@ -108,11 +108,11 @@ class crm_claim(base_stage, osv.osv):
domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"),
'cause': fields.text('Root Cause'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=crm.AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
}
@@ -124,7 +124,8 @@ class crm_claim(base_stage, osv.osv):
'date': fields.datetime.now,
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
- 'active': lambda *a: 1
+ 'active': lambda *a: 1,
+ 'stage_id':lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c)
}
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index 9643a56bfe2..0d9b5adef43 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -102,22 +102,20 @@
<field name="arch" type="xml">
<form string="Claim" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="case_open" string="Open" type="object" class="oe_highlight"
- states="draft,pending" />
- <button name="case_close" string="Done" type="object" class="oe_highlight"
- states="open,pending"/>
- <button name="case_refuse" string="Refuse" type="object" class="oe_highlight"
- states="draft,open,pending"/>
- <button name="stage_previous" string="Previous Stage" type="object"
- states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
- <button name="stage_next" string="Next Stage" type="object"
- states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
- <button name="case_reset" string="Reset to Draft" type="object"
- states="cancel,done"/>
- <button name="case_cancel" string="Cancel" type="object"
- states="draft,open,pending"/>
- </span>
+ <button name="case_open" string="Open" type="object" class="oe_highlight"
+ states="draft,pending" groups="base.group_user"/>
+ <button name="case_close" string="Done" type="object" class="oe_highlight"
+ states="open,pending" groups="base.group_user"/>
+ <button name="case_refuse" string="Refuse" type="object" class="oe_highlight"
+ states="draft,open,pending" groups="base.group_user"/>
+ <button name="stage_previous" string="Previous Stage" type="object" groups="base.group_user"
+ states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
+ <button name="stage_next" string="Next Stage" type="object" groups="base.group_user"
+ states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
+ <button name="case_reset" string="Reset to Draft" type="object" groups="base.group_user"
+ states="cancel,done"/>
+ <button name="case_cancel" string="Cancel" type="object" groups="base.group_user"
+ states="draft,open,pending"/>
<field name="stage_id" widget="statusbar"
on_change="onchange_stage_id(stage_id)"/>
</header>
diff --git a/addons/crm_claim/i18n/ru.po b/addons/crm_claim/i18n/ru.po
index 88435961627..d92bca12fa9 100644
--- a/addons/crm_claim/i18n/ru.po
+++ b/addons/crm_claim/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2011-03-16 00:04+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-10-24 05:01+0000\n"
+"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:33+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_claim
#: field:crm.claim.report,nbr:0
@@ -85,12 +85,12 @@ msgstr ""
#: code:addons/crm_claim/crm_claim.py:132
#, python-format
msgid "The claim '%s' has been opened."
-msgstr ""
+msgstr "Претензия '%s' была открыта"
#. module: crm_claim
#: view:crm.claim:0
msgid "Date Closed"
-msgstr ""
+msgstr "Дата закрытия"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -151,12 +151,12 @@ msgstr "Ссылка"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Date of claim"
-msgstr ""
+msgstr "Дата претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "All pending Claims"
-msgstr ""
+msgstr "Все ожидающие претензии"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -187,7 +187,7 @@ msgstr "Контрагент"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month of claim"
-msgstr ""
+msgstr "Месяц претензии"
#. module: crm_claim
#: selection:crm.claim,type_action:0
@@ -227,7 +227,7 @@ msgstr "Отправить новое эл. письмо"
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_claim
#: view:crm.claim:0
@@ -254,7 +254,7 @@ msgstr "Следующее действие"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim3
@@ -321,7 +321,7 @@ msgstr "Контакт"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
@@ -380,7 +380,7 @@ msgstr "Дата изменения"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Year of claim"
-msgstr ""
+msgstr "Год претензи"
#. module: crm_claim
#: view:crm.claim.report:0
@@ -402,7 +402,7 @@ msgstr "Значение претензии"
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_claim
#: help:crm.claim,email_cc:0
@@ -474,7 +474,7 @@ msgstr "Июнь"
#. module: crm_claim
#: view:res.partner:0
msgid "Partners Claim"
-msgstr ""
+msgstr "Претензии партнера"
#. module: crm_claim
#: field:crm.claim,partner_phone:0
@@ -489,7 +489,7 @@ msgstr "Пользователь"
#. module: crm_claim
#: field:crm.claim,active:0
msgid "Active"
-msgstr ""
+msgstr "Активен"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -621,13 +621,13 @@ msgstr "Открыть"
#. module: crm_claim
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Новые претензии"
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
msgid "In Progress"
-msgstr "Выполняется"
+msgstr "В работе"
#. module: crm_claim
#: view:crm.claim:0
@@ -638,17 +638,17 @@ msgstr "Ответственный"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current year"
-msgstr ""
+msgstr "Претензии созданные в текущем году"
#. module: crm_claim
#: view:crm.claim:0
msgid "Unassigned Claims"
-msgstr ""
+msgstr "Не назначенные претензии"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in current month"
-msgstr ""
+msgstr "Претензии созданные в текущем месяце"
#. module: crm_claim
#: field:crm.claim.report,delay_expected:0
@@ -718,7 +718,7 @@ msgstr "Выполненные действия"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Claims created in last month"
-msgstr ""
+msgstr "Претензии созданные в прошлом месяце"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim5
@@ -760,7 +760,7 @@ msgstr "Год"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_claim
#: selection:crm.claim.report,month:0
@@ -780,7 +780,7 @@ msgstr "Идентификатор"
#. module: crm_claim
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
-msgstr ""
+msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: crm_claim
#: view:crm.claim:0
@@ -810,7 +810,7 @@ msgstr "Дата создания"
#. module: crm_claim
#: view:crm.claim:0
msgid "In Progress Claims"
-msgstr ""
+msgstr "Претензии \"В работе\""
#~ msgid "Probability"
#~ msgstr "Вероятность"
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index ceffd282aa8..ddf624c03ac 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -73,10 +73,10 @@ class crm_helpdesk(base_state, base_stage, osv.osv):
('object_id.model', '=', 'crm.helpdesk')]"),
'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- \nIf the case is in progress the state is set to \'Open\'.\
- \nWhen the case is over, the state is set to \'Done\'.\
- \nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
+ help='The status is set to \'Draft\', when a case is created.\
+ \nIf the case is in progress the status is set to \'Open\'.\
+ \nWhen the case is over, the status is set to \'Done\'.\
+ \nIf the case needs to be reviewed then the status is set to \'Pending\'.'),
}
_defaults = {
diff --git a/addons/crm_helpdesk/i18n/ru.po b/addons/crm_helpdesk/i18n/ru.po
index c0338447d34..452bdda501b 100644
--- a/addons/crm_helpdesk/i18n/ru.po
+++ b/addons/crm_helpdesk/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2010-12-20 08:54+0000\n"
+"PO-Revision-Date: 2012-10-24 05:08+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:34+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: crm_helpdesk
#: field:crm.helpdesk.report,delay_close:0
@@ -46,7 +46,7 @@ msgstr "Март"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current year"
-msgstr ""
+msgstr "Запросы на техподдержку в текущем году"
#. module: crm_helpdesk
#: field:crm.helpdesk,company_id:0
@@ -80,7 +80,7 @@ msgstr "Добавить внутреннею заметку"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Date of helpdesk requests"
-msgstr ""
+msgstr "Дата запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -95,7 +95,7 @@ msgstr "Сообщения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "My company"
-msgstr ""
+msgstr "Моя компания"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
@@ -156,7 +156,7 @@ msgstr "Раздел"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in last month"
-msgstr ""
+msgstr "последний месяц"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -166,14 +166,14 @@ msgstr "Отправить новое эл. письмо"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk requests during last 7 days"
-msgstr ""
+msgstr "Запросы на техподдержку за последние 7 дней"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: selection:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
msgid "New"
-msgstr ""
+msgstr "Новый"
#. module: crm_helpdesk
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
@@ -207,7 +207,7 @@ msgstr "# Писем"
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
msgid "My Sales Team(s)"
-msgstr ""
+msgstr "Мои отделы продаж"
#. module: crm_helpdesk
#: field:crm.helpdesk,create_date:0
@@ -252,7 +252,7 @@ msgstr "Категории"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "New Helpdesk Request"
-msgstr ""
+msgstr "Новый запрос техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -267,13 +267,13 @@ msgstr "Даты"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month of helpdesk requests"
-msgstr ""
+msgstr "Месяц запросов техподдержки"
#. module: crm_helpdesk
#: code:addons/crm_helpdesk/crm_helpdesk.py:101
#, python-format
msgid "No Subject"
-msgstr ""
+msgstr "Без темы"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -283,12 +283,12 @@ msgstr "№ техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "All pending Helpdesk Request"
-msgstr ""
+msgstr "Все ожидающие запросы техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Year of helpdesk requests"
-msgstr ""
+msgstr "Год запросов техподдержки"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -324,7 +324,7 @@ msgstr "Дата изменения"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current month"
-msgstr ""
+msgstr "Запросы техподдержки в текущем месяце"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
@@ -345,7 +345,7 @@ msgstr "Категория"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Responsible User"
-msgstr ""
+msgstr "Ответственный пользователь"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -361,7 +361,7 @@ msgstr "Планируемые затраты"
#. module: crm_helpdesk
#: help:crm.helpdesk,channel_id:0
msgid "Communication channel."
-msgstr ""
+msgstr "Канал общения"
#. module: crm_helpdesk
#: help:crm.helpdesk,email_cc:0
@@ -575,7 +575,7 @@ msgstr "Дерево поддержи"
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
msgid "In Progress"
-msgstr ""
+msgstr "В работе"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
@@ -660,7 +660,7 @@ msgstr "Название"
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month-1"
-msgstr ""
+msgstr "Месяц-1"
#. module: crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
@@ -699,17 +699,17 @@ msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Todays's Helpdesk Requests"
-msgstr ""
+msgstr "Запросы техподдержки за сегодня"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Request Date"
-msgstr ""
+msgstr "Дата запроса"
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Open Helpdesk Request"
-msgstr ""
+msgstr "Открыть запрос техподдержки"
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/partner_geo_assign.py
index 9134f427c5d..69b2ba406ca 100644
--- a/addons/crm_partner_assign/partner_geo_assign.py
+++ b/addons/crm_partner_assign/partner_geo_assign.py
@@ -87,7 +87,7 @@ class res_partner(osv.osv):
help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"),
'opportunity_assigned_ids': fields.one2many('crm.lead', 'partner_assigned_id',\
'Assigned Opportunities'),
- 'grade_id': fields.many2one('res.partner.grade', 'Partner Grade'),
+ 'grade_id': fields.many2one('res.partner.grade', 'Partner Level'),
'activation' : fields.many2one('res.partner.activation', 'Activation', select=1),
'date_partnership' : fields.date('Partnership Date'),
'date_review' : fields.date('Latest Partner Review'),
diff --git a/addons/decimal_precision/i18n/pl.po b/addons/decimal_precision/i18n/pl.po
new file mode 100644
index 00000000000..cac15509742
--- /dev/null
+++ b/addons/decimal_precision/i18n/pl.po
@@ -0,0 +1,49 @@
+# Polish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-02-08 00:36+0000\n"
+"PO-Revision-Date: 2012-10-25 16:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
+
+#. module: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr "Cyfry"
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy"
+msgstr ""
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr "Użycie"
+
+#. module: decimal_precision
+#: sql_constraint:decimal.precision:0
+msgid "Only one value can be defined for each given usage!"
+msgstr ""
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
diff --git a/addons/document/std_index.py b/addons/document/std_index.py
index 95c5e594c25..b20874e72f8 100644
--- a/addons/document/std_index.py
+++ b/addons/document/std_index.py
@@ -103,7 +103,7 @@ class DocIndex(indexer):
return _to_unicode(data)
except OSError:
- _logger.warn("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0])
+ _logger.warning("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0])
_logger.debug("Trace of the failed file indexing attempt.", exc_info=True)
return False
diff --git a/addons/document_page/i18n/ru.po b/addons/document_page/i18n/ru.po
index 52b81a58fc2..6b0f0f158fb 100644
--- a/addons/document_page/i18n/ru.po
+++ b/addons/document_page/i18n/ru.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 01:37+0100\n"
-"PO-Revision-Date: 2012-08-13 12:11+0000\n"
+"PO-Revision-Date: 2012-10-24 05:09+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:39+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: document_page
#: field:document.page.type,template:0
@@ -270,7 +270,7 @@ msgstr "История всех страниц"
#. module: document_page
#: model:ir.model,name:document_page.model_wiki_wiki
msgid "document.page"
-msgstr ""
+msgstr "document.page"
#. module: document_page
#: help:document.page.type,method:0
@@ -285,7 +285,7 @@ msgstr "Закрыть"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_wiki_history_show_diff
msgid "wizard.document.page.history.show_diff"
-msgstr ""
+msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,wiki_id:0
@@ -357,7 +357,7 @@ msgstr "Это существенные изменения ?"
#: model:ir.model,name:document_page.model_wiki_groups
#: model:ir.ui.menu,name:document_page.menu_action_wiki_groups view:document.page.type:0
msgid "Document Types"
-msgstr ""
+msgstr "Типы документов"
#. module: document_page
#: view:document.page:0
@@ -374,7 +374,7 @@ msgstr "Изменено"
#: field:document.page,type:0
#, python-format
msgid "Type"
-msgstr ""
+msgstr "Тип"
#. module: document_page
#: view:document.page.type:0 view:document.page.page.open:0
diff --git a/addons/edi/__init__.py b/addons/edi/__init__.py
index 46fabbc2fd0..0be96869f61 100644
--- a/addons/edi/__init__.py
+++ b/addons/edi/__init__.py
@@ -29,7 +29,7 @@ _logger = logging.getLogger(__name__)
try:
import controllers
except ImportError:
- _logger.warn(
+ _logger.warning(
"""Could not load openerp-web section of EDI, EDI will not behave correctly
To fix, launch openerp-web in embedded mode""")
diff --git a/addons/event/event.py b/addons/event/event.py
index e30dda7be8d..0cff38fc9f8 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -201,7 +201,7 @@ class event_event(osv.osv):
('confirm', 'Confirmed'),
('done', 'Done')],
'Status', readonly=True, required=True,
- help='If event is created, the state is \'Draft\'.If event is confirmed for the particular dates the state is set to \'Confirmed\'. If the event is over, the state is set to \'Done\'.If event is cancelled the state is set to \'Cancelled\'.'),
+ help='If event is created, the status is \'Draft\'.If event is confirmed for the particular dates the status is set to \'Confirmed\'. If the event is over, the status is set to \'Done\'.If event is cancelled the status is set to \'Cancelled\'.'),
'email_registration_id' : fields.many2one('email.template','Registration Confirmation Email', help='This field contains the template of the mail that will be automatically sent each time a registration for this event is confirmed.'),
'email_confirmation_id' : fields.many2one('email.template','Event Confirmation Email', help="If you set an email template, each participant will receive this email announcing the confirmation of the event."),
'reply_to': fields.char('Reply-To Email', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."),
@@ -330,7 +330,7 @@ class event_registration(osv.osv):
_inherit = ['ir.needaction_mixin','mail.thread']
_columns = {
'id': fields.integer('ID'),
- 'origin': fields.char('Source', size=124,readonly=True,help="Name of the sale order which create the registration"),
+ 'origin': fields.char('Source Document', size=124,readonly=True,help="Name of the sale order which create the registration"),
'nb_register': fields.integer('Number of Participants', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index a176cc47230..27106ce6abc 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -15,7 +15,7 @@
id="event_main_menu"
groups="base.group_user"
sequence="80"/>
- <menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu"/>
+ <menuitem name="Events Organization" id="base.menu_event_main" parent="event_main_menu"/>
<!-- EVENTS -->
@@ -100,12 +100,10 @@
<field name="arch" type="xml">
<form string="Events" version="7.0">
<header>
- <span groups="base.group_user">
- <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/>
- <button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/>
- <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" />
- <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
- </span>
+ <button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button string="Set To Draft" name="button_draft" states="cancel,done" type="object" groups="base.group_user"/>
+ <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
</header>
<sheet>
@@ -221,7 +219,7 @@
<field name="arch" type="xml">
<tree string="Events" fonts="bold:message_unread==True" colors="red:(register_min and register_min&gt;register_current) or (register_max and register_max&lt;register_current);grey:state=='cancel'">
<field name="name" string="Name"/>
- <field name="type"/>
+ <field name="type" string="Event Category"/>
<field name="date_begin"/>
<field name="date_end"/>
<field name="register_current"/>
@@ -269,17 +267,17 @@
<t t-if="record.country_id.raw_value">@<field name="country_id"/><br/></t>
<t t-if="record.user_id.raw_value">Organized by <field name="user_id"/><br/></t>
<t t-if="record.register_avail.raw_value lte 10 and record.register_avail.raw_value gt 0"><i>Only</i></t>
- <t t-if="record.register_avail.raw_value == 0"><i>No ticket available.</i></t>
- <t t-if="record.register_avail.raw_value != 0">
+ <t t-if="record.register_avail.raw_value == 9999"><i>No ticket available.</i></t>
+ <t t-if="record.register_avail.raw_value != 9999">
<i><b><t t-if="record.register_avail.raw_value != 9999"><field name="register_avail"/></t></b></i>
<i>
<t t-if="record.register_avail.raw_value > 1">tickets </t>
- <t t-if="record.register_avail.raw_value == 1 || !record.register_avail.raw_value > 1">ticket </t>
+ <t t-if="record.register_avail.raw_value lte 1">ticket </t>
available.
</i>
</t>
</p>
- <t t-if="record.register_avail.raw_value != 0">
+ <t t-if="record.register_avail.raw_value gt 0 and record.register_avail.raw_value lt 9999">
<t t-if="!record.is_subscribed.raw_value">
<input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/>
<button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_subscribe_button">
diff --git a/addons/event_moodle/wizard_moodle.xml b/addons/event_moodle/wizard_moodle.xml
index 6eda25fcc4d..8dbe5d485f9 100644
--- a/addons/event_moodle/wizard_moodle.xml
+++ b/addons/event_moodle/wizard_moodle.xml
@@ -8,7 +8,7 @@
<form string="Configure Moodle" version="7.0">
<header>
<button type="object" name="configure_moodle"
- string="Configure Moodle" class="oe_highlight" />
+ string="Apply" class="oe_highlight" />
or
<button string="Cancel" class="oe_link" special="cancel" />
</header>
@@ -16,12 +16,12 @@
<separator string="Server" colspan="4"/>
<field name="server_moodle"/>
<newline/>
- <separator string="Connexion with a Token" colspan="4"/>
+ <separator string="Connection with a Token" colspan="4"/>
<label string="The easiest way to connect OpenERP with a moodle server is to create a 'token' in Moodle. It will be used to authenticate OpenERP as a trustable application." colspan="4"/>
<field name="moodle_token"/>
<newline/>
- <separator string="Connexion with Password and Username" colspan="4"/>
- <label string="Another approach is to create a user for OpenERP in Moodle. If you do so, make sure that this user has enough access rights" colspan="4"/>
+ <separator string="Connection with username and password" colspan="4"/>
+ <label string="Another approach is to create a user for OpenERP in Moodle. If you do so, make sure that this user has appropriate access rights." colspan="4"/>
<field name="moodle_username"/>
<field name="moodle_password"/>
</group>
diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index f37dea3f075..2dd40a7c285 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -40,7 +40,7 @@ class sale_order_line(osv.osv):
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
#those 2 fields are used for dynamic domains and filled by onchange
'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"),
- 'event_ok': fields.related('event_ok', string='event_ok', type='boolean'),
+ 'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'),
}
def product_id_change(self, cr, uid, ids,
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index d2214f5e14f..fdf1e1419ed 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -112,7 +112,7 @@ class hr_job(osv.osv):
'requirements': fields.text('Requirements'),
'department_id': fields.many2one('hr.department', 'Department'),
'company_id': fields.many2one('res.company', 'Company'),
- 'state': fields.selection([('open', 'In Position'), ('recruit', 'In Recruitement')], 'Status', readonly=True, required=True,
+ 'state': fields.selection([('open', 'No Recruitment'), ('recruit', 'Recruitement in Progress')], 'Status', readonly=True, required=True,
help="By default 'In position', set it to 'In Recruitment' if recruitment process is going on for this job position."),
}
_defaults = {
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index cab93c6c14a..b4e2df3965e 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -330,8 +330,8 @@
<field name="arch" type="xml">
<form string="Job" version="7.0">
<header>
- <button name="job_recruitement" string="In Recruitement" states="open" type="object" class="oe_highlight" groups="base.group_user"/>
- <button name="job_open" string="Recruitment Done" states="recruit" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button name="job_recruitement" string="Launch Recruitement" states="open" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button name="job_open" string="Stop Recruitment" states="recruit" type="object" class="oe_highlight" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="recruit,open"/>
</header>
<sheet>
diff --git a/addons/hr/i18n/lt.po b/addons/hr/i18n/lt.po
index f50c071b739..831a1fe29d5 100644
--- a/addons/hr/i18n/lt.po
+++ b/addons/hr/i18n/lt.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 01:37+0100\n"
-"PO-Revision-Date: 2012-10-21 21:20+0000\n"
-"Last-Translator: mchip <mifchip@gmail.com>\n"
+"PO-Revision-Date: 2012-10-22 07:48+0000\n"
+"Last-Translator: nanothole <Unknown>\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-10-22 04:40+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -56,7 +56,7 @@ msgstr ""
#. module: hr
#: model:ir.actions.act_window,name:hr.view_department_form_installer
msgid "Create Your Departments"
-msgstr ""
+msgstr "Sukurkite padalinius"
#. module: hr
#: model:ir.actions.act_window,help:hr.action_hr_job
@@ -77,12 +77,12 @@ msgstr "Padalinys"
#. module: hr
#: view:hr.job:0
msgid "Mark as Old"
-msgstr ""
+msgstr "Pažymeti kaip sena"
#. module: hr
#: view:hr.job:0
msgid "Jobs"
-msgstr ""
+msgstr "Darbai"
#. module: hr
#: view:hr.job:0
@@ -185,12 +185,12 @@ msgstr ""
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
msgid "Attendance"
-msgstr ""
+msgstr "Lankomumas"
#. module: hr
#: view:hr.employee:0
msgid "Social IDs"
-msgstr ""
+msgstr "SODRA Nr."
#. module: hr
#: field:hr.employee,work_phone:0
@@ -227,7 +227,7 @@ msgstr "Darbuotojas"
#. module: hr
#: model:process.node,note:hr.process_node_employeecontact0
msgid "Other information"
-msgstr ""
+msgstr "Kita informacija"
#. module: hr
#: field:hr.employee,work_email:0
@@ -237,7 +237,7 @@ msgstr "Darbo el. paštas"
#. module: hr
#: field:hr.employee,birthday:0
msgid "Date of Birth"
-msgstr ""
+msgstr "Gimimo data"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_reporting
@@ -253,7 +253,7 @@ msgstr ""
#. module: hr
#: view:hr.employee:0 field:hr.employee,job_id:0 view:hr.job:0
msgid "Job"
-msgstr ""
+msgstr "Darbas"
#. module: hr
#: field:hr.department,member_ids:0
@@ -268,7 +268,7 @@ msgstr "Nustatymai"
#. module: hr
#: view:hr.employee:0 field:hr.employee,category_ids:0
msgid "Categories"
-msgstr ""
+msgstr "Kategorijos"
#. module: hr
#: field:hr.job,expected_employees:0
@@ -799,3 +799,6 @@ msgstr ""
#~ msgstr ""
#~ "Objekto pavadinimas turi prasidėti su x_ ir jame negali būti specialiųjų "
#~ "ženklų!"
+
+#~ msgid "Work E-mail"
+#~ msgstr "Darbinis el. paštas"
diff --git a/addons/hr/i18n/zh_CN.po b/addons/hr/i18n/zh_CN.po
index ee3dcae7ff7..e418f9ad1c3 100644
--- a/addons/hr/i18n/zh_CN.po
+++ b/addons/hr/i18n/zh_CN.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 01:37+0100\n"
-"PO-Revision-Date: 2012-08-18 17:32+0000\n"
-"Last-Translator: Heling Yao <Unknown>\n"
+"PO-Revision-Date: 2012-10-25 16:29+0000\n"
+"Last-Translator: fenshuajiang <openerp@126.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:21+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -181,7 +181,7 @@ msgstr "女性"
#: help:hr.job,expected_employees:0
msgid ""
"Expected number of employees for this job position after new recruitment."
-msgstr ""
+msgstr "新的招聘后这个工作岗位上期望的员工人数"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
@@ -685,7 +685,7 @@ msgstr "下属"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Number of employees currently occupying this job position."
-msgstr ""
+msgstr "这个工作岗位上现有的员工人数"
#. module: hr
#: field:hr.job,no_of_recruitment:0
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index fb9d287ea77..7164e7d9415 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -283,7 +283,7 @@
<form string="Interview Appraisal" version="7.0">
<header>
<button string="Cancel" name="survey_req_cancel" type="object"
- states="draft,waiting_answer"/>
+ states="draft,waiting_answer" class="oe_left"/>
<button string="Print Survey" name="action_print_survey" type="object"
states="draft" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}"
attrs="{'readonly':[('survey_id','=',False)]}" class="oe_highlight"/>
diff --git a/addons/hr_evaluation/i18n/zh_CN.po b/addons/hr_evaluation/i18n/zh_CN.po
index 67d661fef2c..6ae57a6002f 100644
--- a/addons/hr_evaluation/i18n/zh_CN.po
+++ b/addons/hr_evaluation/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-05-10 17:47+0000\n"
-"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:16+0000\n"
+"Last-Translator: ccdos <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:27+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
@@ -304,7 +304,7 @@ msgstr "上个月完成的评估"
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_mail_compose_message
msgid "Email composition wizard"
-msgstr ""
+msgstr "电子邮件撰写向导"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 487e4f58782..439cf683d1b 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -64,15 +64,15 @@ class hr_expense_expense(osv.osv):
_description = "Expense"
_order = "id desc"
_columns = {
- 'name': fields.char('Description', size=128, required=True),
+ 'name': fields.char('Description', size=128),
'id': fields.integer('Sheet ID', readonly=True),
'date': fields.date('Date', select=True),
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."),
'employee_id': fields.many2one('hr.employee', "Employee", required=True),
'user_id': fields.many2one('res.users', 'User', required=True),
- 'date_confirm': fields.date('Confirmation Date', select=True, help = "Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
- 'date_valid': fields.date('Validation Date', select=True, help = "Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
- 'user_valid': fields.many2one('res.users', 'Validation User'),
+ 'date_confirm': fields.date('Confirmation Date', select=True, help="Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
+ 'date_valid': fields.date('Validation Date', select=True, help="Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
+ 'user_valid': fields.many2one('res.users', 'Validation By'),
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
'note': fields.text('Note'),
@@ -189,7 +189,7 @@ class hr_expense_expense(osv.osv):
raise osv.except_osv(_('Error!'), _('The employee must have a home address.'))
acc = exp.employee_id.address_home_id.property_account_payable.id
voucher = {
- 'name': exp.name,
+ 'name': exp.name or '/',
'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'),
'account_id': acc,
'type': 'purchase',
@@ -233,7 +233,7 @@ hr_expense_expense()
class product_product(osv.osv):
_inherit = "product.product"
_columns = {
- 'hr_expense_ok': fields.boolean('Can Constitute an Expense', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
+ 'hr_expense_ok': fields.boolean('Can be Expensed', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
}
def on_change_hr_expense_ok(self, cr, uid, id, hr_expense_ok):
diff --git a/addons/hr_expense/hr_expense_installer_view.xml b/addons/hr_expense/hr_expense_installer_view.xml
index 03a461a84c5..b897673f4ec 100644
--- a/addons/hr_expense/hr_expense_installer_view.xml
+++ b/addons/hr_expense/hr_expense_installer_view.xml
@@ -10,7 +10,7 @@
<record id="product_expense_installer_tree_view" model="ir.ui.view">
<field name="name">product.product.tree</field>
<field name="model">product.product</field>
- <field eval="7" name="priority"/>
+ <field eval="37" name="priority"/>
<field name="arch" type="xml">
<tree editable="bottom" string="Products">
<field name="name"/>
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 76393d9e030..1b8fd17dece 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -79,7 +79,7 @@
</group>
<group>
<field name="name"/>
- <field name="user_valid"/>
+ <field name="user_valid" attrs="{'invisible': [('state','=','draft')]}"/>
<field name="currency_id" groups="base.group_multi_currency" on_change="onchange_currency_id(currency_id, company_id)"/>
</group>
</group>
@@ -128,9 +128,9 @@
</group>
</group>
</page>
- <page string="Other Info">
+ <page string="Accounting" groups="account.group_account_user">
<group>
- <group string="Accounting Data" groups="account.group_account_user">
+ <group string="Accounting Data">
<field name="journal_id" widget="selection" domain="[('type', '=', 'purchase')]"/>
<field name="voucher_id" context="{'form_view_ref': 'account_voucher.view_purchase_receipt_form'}"/>
</group>
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index b48f0786704..0977f3729b4 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -115,10 +115,10 @@ class hr_holidays(osv.osv):
_columns = {
'name': fields.char('Description', size=64),
'state': fields.selection([('draft', 'To Submit'), ('cancel', 'Cancelled'),('confirm', 'To Approve'), ('refuse', 'Refused'), ('validate1', 'Second Approval'), ('validate', 'Approved')],
- 'State', readonly=True, help='The state is set to \'To Submit\', when a holiday request is created.\
- \nThe state is \'To Approve\', when holiday request is confirmed by user.\
- \nThe state is \'Refused\', when holiday request is refused by manager.\
- \nThe state is \'Approved\', when holiday request is approved by manager.'),
+ 'Status', readonly=True, help='The status is set to \'To Submit\', when a holiday request is created.\
+ \nThe status is \'To Approve\', when holiday request is confirmed by user.\
+ \nThe status is \'Refused\', when holiday request is refused by manager.\
+ \nThe status is \'Approved\', when holiday request is approved by manager.'),
'user_id':fields.related('employee_id', 'user_id', type='many2one', relation='res.users', string='User', store=True),
'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, select=True),
'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index b56b49d3d99..d1f38ad4a0f 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -272,10 +272,10 @@ class hr_payslip(osv.osv):
('done', 'Done'),
('cancel', 'Rejected'),
], 'Status', select=True, readonly=True,
- help='* When the payslip is created the state is \'Draft\'.\
- \n* If the payslip is under verification, the state is \'Waiting\'. \
- \n* If the payslip is confirmed then state is set to \'Done\'.\
- \n* When user cancel payslip the state is \'Rejected\'.'),
+ help='* When the payslip is created the status is \'Draft\'.\
+ \n* If the payslip is under verification, the status is \'Waiting\'. \
+ \n* If the payslip is confirmed then status is set to \'Done\'.\
+ \n* When user cancel payslip the status is \'Rejected\'.'),
# 'line_ids': fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'line_ids': one2many_mod2('hr.payslip.line', 'slip_id', 'Payslip Lines', readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=False, readonly=True, states={'draft': [('readonly', False)]}),
diff --git a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml
index 461ccdf0bbe..79e09937705 100644
--- a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml
+++ b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml
@@ -6,12 +6,12 @@
<field name="name">applicants.status.tree</field>
<field name="model">hr.applicant</field>
<field name="arch" type="xml">
- <tree colors="blue:state == 'draft';black:state in ('open','pending','done','cancel');" string="Applicants Status">
+ <tree string="Applicants Status">
<field name="create_date"/>
<field name="job_id"/>
<field name="partner_name"/>
<field name="stage_id"/>
- <field name="state" groups="base.group_no_one"/>
+ <field name="user_id"/>
</tree>
</field>
</record>
@@ -32,7 +32,7 @@
<field name="inherit_id" ref="hr.board_hr_form"/>
<field name="arch" type="xml">
<xpath expr="/form/board/column[1]" position="inside">
- <action name="%(action_applicants_status)d" string="Applicants To be Processed"/>
+ <action name="%(action_applicants_status)d" string="Applications to be Processed"/>
</xpath>
</field>
</record>
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 56c517620e0..049cb93ca1e 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -62,7 +62,7 @@ class hr_recruitment_stage(osv.osv):
'name': fields.char('Name', size=64, required=True, translate=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."),
'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep this field empty."),
- 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change according to the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."),
+ 'state': fields.selection(AVAILABLE_STATES, 'Status', required=True, help="The related status for the stage. The status of your document will automatically change according to the selected stage. Example, a stage is related to the status 'Close', when your document reach this stage, it will be automatically closed."),
'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
'requirements': fields.text('Requirements'),
}
@@ -189,11 +189,11 @@ class hr_applicant(base_stage, osv.Model):
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage',
domain="['&', ('fold', '=', False), '|', ('department_id', '=', department_id), ('department_id', '=', False)]"),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=AVAILABLE_STATES, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=AVAILABLE_STATES, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'categ_ids': fields.many2many('hr.applicant_category', string='Tags'),
'company_id': fields.many2one('res.company', 'Company'),
diff --git a/addons/hr_recruitment/hr_recruitment_demo.yml b/addons/hr_recruitment/hr_recruitment_demo.yml
index 3f00c7e643b..2554c690c15 100644
--- a/addons/hr_recruitment/hr_recruitment_demo.yml
+++ b/addons/hr_recruitment/hr_recruitment_demo.yml
@@ -17,7 +17,6 @@
priority: '3'
user_id: base.user_demo
partner_name: 'Marie Justine'
- state: 'open'
partner_mobile: '9988774455'
job_id: hr.job_developer
stage_id: stage_job4
@@ -41,7 +40,6 @@
type_id: degree_bac5
user_id: base.user_root
partner_name: 'Sandra Elvis'
- state: 'cancel'
stage_id: stage_job6
name: 'More than 5 yrs Experience in PHP'
-
@@ -50,7 +48,6 @@
type_id: degree_licenced
user_id: base.user_demo
partner_name: 'John Bruno'
- state: 'done'
job_id: hr.job_developer
color: 5
stage_id: stage_job5
@@ -61,8 +58,6 @@
type_id: degree_licenced
priority: '4'
partner_name: 'David Armstrong'
- state: 'pending'
- state: open
partner_mobile: '9966332214'
job_id: hr.job_developer
stage_id: stage_job2
@@ -73,7 +68,6 @@
date: !eval time.strftime('%Y-%m-12 17:49:19')
type_id: degree_bac5
partner_name: 'Tina Augustie'
- state: 'open'
partner_mobile: '9898745745'
job_id: hr.job_developer
stage_id: stage_job4
@@ -85,7 +79,6 @@
date: !eval time.strftime('%Y-%m-12 17:49:19')
type_id: degree_bac5
partner_name: 'Shane Williams'
- state: 'open'
partner_mobile: '9812398524'
stage_id: stage_job4
name: 'Programmer'
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 12c552e7a6d..08484889cf1 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -107,7 +107,7 @@
<form string="Jobs - Recruitment Form" version="7.0">
<header>
<button name="case_close_with_emp" string="Hire" type="object"
- states="draft,open,pending" class="oe_highlight"/>
+ states="draft,open,pending,done" class="oe_highlight"/>
<button name="case_cancel" string="Refuse" type="object"
states="draft,open,pending" class="oe_highlight"/>
<field name="stage_id" widget="statusbar" clickable="True"/>
diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py
index e888da9ead7..d3faa3f37be 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report.py
+++ b/addons/hr_recruitment/report/hr_recruitment_report.py
@@ -41,7 +41,7 @@ class hr_recruitment_report(osv.osv):
_columns = {
'user_id': fields.many2one('res.users', 'User', readonly=True),
'nbr': fields.integer('# of Applications', readonly=True),
- 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
+ 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index a28508be4db..3248f31a082 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -190,17 +190,14 @@ class hr_analytic_timesheet(osv.osv):
'journal_id': self._getAnalyticJournal(cr, uid, context),
}}
-hr_analytic_timesheet()
-
class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
-
_columns = {
'use_timesheets': fields.boolean('Timesheets', help="Check this field if this project manages timesheets"),
}
-
+
def on_change_template(self, cr, uid, ids, template_id, context=None):
res = super(account_analytic_account, self).on_change_template(cr, uid, ids, template_id, context=context)
if template_id and 'value' in res:
@@ -208,6 +205,4 @@ class account_analytic_account(osv.osv):
res['value']['use_timesheets'] = template.use_timesheets
return res
-account_analytic_account()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index c81cda8493b..55c4680b6a1 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -6,12 +6,12 @@
<field name="name">hr.analytic.timesheet.tree</field>
<field name="model">hr.analytic.timesheet</field>
<field name="arch" type="xml">
- <tree editable="bottom" string="Timesheet Lines">
+ <tree editable="bottom" string="Timesheet Activities">
<field name="date" on_change="on_change_date(date)"/>
- <field name="user_id" on_change="on_change_user_id(user_id)" required="1"/>
+ <field name="user_id" on_change="on_change_user_id(user_id)" required="1" options='{"no_open": True}'/>
<field name="journal_id" invisible="1"/>
<field name="name"/>
- <field domain="[('type','=','normal'),('use_timesheets','=',1)]" name="account_id" context="{'default_use_timesheets': 1}"/>
+ <field domain="[('type','=','normal'),('use_timesheets','=',1)]" name="account_id" context="{'default_use_timesheets': 1, 'default_type': 'contract'}"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" required="1" domain="[('type','=','service')]" invisible="1"/>
<field name="unit_amount" string="Duration" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" sum="Total time" widget="float_time"/>
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" invisible="1"/>
@@ -24,7 +24,7 @@
<field name="name">hr.analytic.timesheet.form</field>
<field name="model">hr.analytic.timesheet</field>
<field name="arch" type="xml">
- <form string="Timesheet Lines" version="7.0">
+ <form string="Timesheet Activities" version="7.0">
<sheet>
<group>
<group>
@@ -107,7 +107,7 @@
</record>
<record id="act_hr_timesheet_line_evry1_all_form" model="ir.actions.act_window">
- <field name="name">Timesheet Lines</field>
+ <field name="name">Timesheet Activities</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.analytic.timesheet</field>
<field name="view_type">form</field>
@@ -116,12 +116,12 @@
<field name="search_view_id" ref="hr_timesheet_line_search"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
- Click to record your timesheets.
+ Click to record activities.
</p><p>
You can register and track your workings hours by project every
day. Every time spent on a project will become a cost in the
- analytic accounting and can be re-invoiced to customers if
- required.
+ analytic accounting/contract and can be re-invoiced to
+ customers if required.
</p>
</field>
</record>
diff --git a/addons/hr_timesheet/i18n/zh_CN.po b/addons/hr_timesheet/i18n/zh_CN.po
index 909fe0f6c8c..8a575f31ea1 100644
--- a/addons/hr_timesheet/i18n/zh_CN.po
+++ b/addons/hr_timesheet/i18n/zh_CN.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:36+0000\n"
-"PO-Revision-Date: 2012-05-10 18:19+0000\n"
-"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:20+0000\n"
+"Last-Translator: ccdos <Unknown>\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-10-19 05:15+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:43
@@ -468,7 +468,7 @@ msgstr "一般信息"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my
msgid "My Current Timesheet"
-msgstr ""
+msgstr "我当前的时间表"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:40
diff --git a/addons/hr_timesheet/test/test_hr_timesheet.yml b/addons/hr_timesheet/test/test_hr_timesheet.yml
index cc04bed734d..59d688f183b 100644
--- a/addons/hr_timesheet/test/test_hr_timesheet.yml
+++ b/addons/hr_timesheet/test/test_hr_timesheet.yml
@@ -23,7 +23,7 @@
import time
uid = ref('base.user_demo')
new_id = self.create(cr, uid, {'emp_id': ref('hr.employee_qdp'), 'name': 'Quentin Paolino',
- 'server_date': time.strftime('%Y-%m-%d %H:%M:%S'), 'state': 'present'})
+ 'server_date': time.strftime('%Y-%m-%d %H:%M:%S')})
self.sign_in_result(cr, uid, [new_id], context)
-
I change my project "Thymbra" and I click on the "Change Work" button of this wizard
diff --git a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
index 031a17baee0..3991696b331 100644
--- a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
+++ b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
@@ -33,7 +33,7 @@ class hr_so_project(osv.osv_memory):
'date': fields.datetime('Closing Date'),
'analytic_amount': fields.float('Minimum Analytic Amount'),
'name': fields.char('Employees name', size=32, required=True, readonly=True),
- 'state': fields.related('emp_id', 'state', string='Current state', type='char', required=True, readonly=True),
+ 'state': fields.related('emp_id', 'state', string='Current Status', type='char', required=True, readonly=True),
'server_date': fields.datetime('Current Date', required=True, readonly=True),
'emp_id': fields.many2one('hr.employee', 'Employee ID')
}
@@ -111,7 +111,7 @@ class hr_si_project(osv.osv_memory):
_description = 'Sign In By Project'
_columns = {
'name': fields.char('Employees name', size=32, readonly=True),
- 'state': fields.related('emp_id', 'state', string='Current state', type='char', required=True, readonly=True),
+ 'state': fields.related('emp_id', 'state', string='Current Status', type='char', required=True, readonly=True),
'date': fields.datetime('Starting Date'),
'server_date': fields.datetime('Current Date', readonly=True),
'emp_id': fields.many2one('hr.employee', 'Employee ID')
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 30e4ff40885..67fcb100468 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -129,17 +129,18 @@ class account_analytic_line(osv.osv):
def _default_journal(self, cr, uid, context=None):
proxy = self.pool.get('hr.employee')
record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
- employee = proxy.browse(cr, uid, record_ids[0], context=context)
- return employee.journal_id and employee.journal_id.id or False
+ if record_ids:
+ employee = proxy.browse(cr, uid, record_ids[0], context=context)
+ return employee.journal_id and employee.journal_id.id or False
+ return False
def _default_general_account(self, cr, uid, context=None):
proxy = self.pool.get('hr.employee')
record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
- if not record_ids:
- raise osv.except_osv(_('Error!'), _('Please create an employee associated to this user.'))
- employee = proxy.browse(cr, uid, record_ids[0], context=context)
- if employee.product_id and employee.product_id.property_account_income:
- return employee.product_id.property_account_income.id
+ if record_ids:
+ employee = proxy.browse(cr, uid, record_ids[0], context=context)
+ if employee.product_id and employee.product_id.property_account_income:
+ return employee.product_id.property_account_income.id
return False
_defaults = {
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index e62134ee38a..4e51864db51 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -34,103 +34,22 @@ class hr_timesheet_sheet(osv.osv):
_order = "id desc"
_description="Timesheet"
- def _total_attendances(self, cr, uid, ids, name, args, context=None):
- """ Get the total attendance for the timesheets
- Returns a dict like :
- {id: {'total_per_day': {day: timedelta, ...},
- },
- ...
- }
- """
- context = context or {}
- attendance_obj = self.pool.get('hr.attendance')
- res = {}
- for sheet_id in ids:
- sheet = self.browse(cr, uid, sheet_id, context=context)
- # field attendances_ids of hr_timesheet_sheet.sheet only
- # returns attendances of timesheet's current date
- attendance_ids = attendance_obj.search(cr, uid, [('sheet_id', '=', sheet_id)], context=context)
- attendances = attendance_obj.browse(cr, uid, attendance_ids, context=context)
- total_attendance = {}
- for attendance in [att for att in attendances
- if att.action in ('sign_in', 'sign_out')]:
- day = attendance.name[:10]
- if not total_attendance.get(day, False):
- total_attendance[day] = timedelta(seconds=0)
-
- attendance_in_time = datetime.strptime(attendance.name, '%Y-%m-%d %H:%M:%S')
- attendance_interval = timedelta(hours=attendance_in_time.hour,
- minutes=attendance_in_time.minute,
- seconds=attendance_in_time.second)
- if attendance.action == 'sign_in':
- total_attendance[day] -= attendance_interval
- else:
- total_attendance[day] += attendance_interval
-
- res[sheet_id] = {'total_per_day': total_attendance}
- return res
-
- def _total_timesheet(self, cr, uid, ids, name, args, context=None):
- """ Get the total of analytic lines for the timesheets
- Returns a dict like :
- {id: {day: timedelta, ...}}
- """
- context = context or {}
- sheet_line_obj = self.pool.get('hr.analytic.timesheet')
-
- res = {}
- for sheet_id in ids:
- # field timesheet_ids of hr_timesheet_sheet.sheet only
- # returns lines of timesheet's current date
- sheet_lines_ids = sheet_line_obj.search(cr, uid, [('sheet_id', '=', sheet_id)], context=context)
- sheet_lines = sheet_line_obj.browse(cr, uid, sheet_lines_ids, context=context)
- total_timesheet = {}
- for line in sheet_lines:
- day = line.date
- if not total_timesheet.get(day, False):
- total_timesheet[day] = timedelta(seconds=0)
- total_timesheet[day] += timedelta(hours=line.unit_amount)
- res[sheet_id] = total_timesheet
- return res
-
def _total(self, cr, uid, ids, name, args, context=None):
""" Compute the attendances, analytic lines timesheets and differences between them
for all the days of a timesheet and the current day
"""
- def sum_all_days(sheet_amounts):
- if not sheet_amounts:
- return timedelta(seconds=0)
- total = reduce(lambda memo, value: memo + value, sheet_amounts.values())
- return total
-
- def timedelta_to_hours(delta):
- hours = 0.0
- seconds = float(delta.seconds)
- if delta.microseconds:
- seconds += float(delta.microseconds) / 100000
- hours += delta.days * 24
- if seconds:
- hours += seconds / 3600
- return hours
res = {}
- all_timesheet_attendances = self._total_attendances(cr, uid, ids, name, args, context=context)
- all_timesheet_lines = self._total_timesheet(cr, uid, ids, name, args, context=context)
- for id in ids:
- res[id] = {}
-
- all_attendances_sheet = all_timesheet_attendances[id]
-
- total_attendances_sheet = all_attendances_sheet['total_per_day']
- total_attendances_all_days = sum_all_days(total_attendances_sheet)
-
- total_timesheets_sheet = all_timesheet_lines[id]
- total_timesheets_all_days = sum_all_days(total_timesheets_sheet)
- total_difference_all_days = total_attendances_all_days - total_timesheets_all_days
-
- res[id]['total_attendance'] = timedelta_to_hours(total_attendances_all_days)
- res[id]['total_timesheet'] = timedelta_to_hours(total_timesheets_all_days)
- res[id]['total_difference'] = timedelta_to_hours(total_difference_all_days)
+ for sheet in self.browse(cr, uid, ids, context=context or {}):
+ res.setdefault(sheet.id, {
+ 'total_attendance': 0.0,
+ 'total_timesheet': 0.0,
+ 'total_difference': 0.0,
+ })
+ for period in sheet.period_ids:
+ res[sheet.id]['total_attendance'] += period.total_attendance
+ res[sheet.id]['total_timesheet'] += period.total_timesheet
+ res[sheet.id]['total_difference'] += period.total_attendance - period.total_timesheet
return res
def check_employee_attendance_state(self, cr, uid, sheet_id, context=None):
@@ -206,9 +125,9 @@ class hr_timesheet_sheet(osv.osv):
('draft','Open'),
('confirm','Waiting Approval'),
('done','Approved')], 'Status', select=True, required=True, readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed timesheet. \
- \n* The \'Confirmed\' state is used for to confirm the timesheet by user. \
- \n* The \'Done\' state is used when users timesheet is accepted by his/her senior.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed timesheet. \
+ \n* The \'Confirmed\' status is used for to confirm the timesheet by user. \
+ \n* The \'Done\' status is used when users timesheet is accepted by his/her senior.'),
'state_attendance' : fields.related('employee_id', 'state', type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Current Status', readonly=True),
'total_attendance': fields.function(_total, method=True, string='Total Attendance', multi="_total"),
'total_timesheet': fields.function(_total, method=True, string='Total Timesheet', multi="_total"),
@@ -283,8 +202,8 @@ class hr_timesheet_sheet(osv.osv):
return []
if isinstance(ids, (long, int)):
ids = [ids]
- return [(r['id'], r['date_from'] + ' - ' + r['date_to']) \
- for r in self.read(cr, uid, ids, ['date_from', 'date_to'],
+ return [(r['id'], _('Week ')+datetime.strptime(r['date_from'], '%Y-%m-%d').strftime('%U')) \
+ for r in self.read(cr, uid, ids, ['date_from'],
context=context, load='_classic_write')]
def unlink(self, cr, uid, ids, context=None):
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index fc35a17377f..f3e3af5f610 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -40,6 +40,23 @@
</field>
</record>
+
+ <record model="ir.actions.act_window" id="act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet">
+ <field name="context">{'search_default_sheet_id': [active_id]}</field>
+ <field name="name">Timesheet Activities</field>
+ <field name="res_model">hr.analytic.timesheet</field>
+ <field name="src_model">hr_timesheet_sheet.sheet</field>
+ </record>
+
+
+ <record model="ir.actions.act_window" id="act_hr_timesheet_sheet_sheet_2_hr_attendance">
+ <field name="context">{'search_default_sheet_id': [active_id]}</field>
+ <field name="name">Attendances</field>
+ <field name="res_model">hr.attendance</field>
+ <field name="src_model">hr_timesheet_sheet.sheet</field>
+ </record>
+
+
<record id="hr_timesheet_sheet_form" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.form</field>
<field name="model">hr_timesheet_sheet.sheet</field>
@@ -53,20 +70,30 @@
<field name="state" widget="statusbar" statusbar_visible="new,confirm,done"/>
</header>
<sheet>
- <label for="employee_id" class="oe_edit_only"/>
- <h1><field name="employee_id" on_change="onchange_employee_id(employee_id)"/></h1>
+ <div class="oe_right oe_button_box" name="buttons">
+ <button type="action"
+ name="%(act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet)d"
+ string="Timesheet Activities" />
+ <button type="action" groups="base.group_hr_attendance"
+ name="%(act_hr_timesheet_sheet_sheet_2_hr_attendance)d"
+ string="Attendances" />
+ </div>
+ <div class="oe_title">
+ <label for="employee_id" class="oe_edit_only"/>
+ <h1><field name="employee_id" on_change="onchange_employee_id(employee_id)" class="oe_inline"/></h1>
+ </div>
<group>
<group>
<label for="date_from" string="Timesheet Period"/>
- <div><field name="date_from"/> to <field name="date_to"/></div>
+ <div><field name="date_from" class="oe_inline"/> to <field name="date_to" class="oe_inline"/></div>
<field name="name" invisible="1"/>
- <field name="department_id"/>
+ <field name="department_id" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
- <group>
- <field name="total_attendance" widget="float_time" groups="base.group_hr_attendance"/>
+ <group groups="base.group_hr_attendance">
+ <field name="total_attendance" widget="float_time"/>
<field name="total_timesheet" widget="float_time"/>
- <field name="total_difference" widget="float_time" groups="base.group_hr_attendance"/>
+ <field name="total_difference" widget="float_time"/>
<field name="user_id" invisible="1"/>
</group>
</group>
@@ -76,30 +103,12 @@
</widget>
</page>
<page string="Daily">
- <group colspan="4" col="3">
- <field context="{'user_id':user_id}" name="attendances_ids" nolabel="1" groups="base.group_hr_attendance">
- <tree string="Attendances" editable="bottom">
- <field name="name"/>
- <field name="action"/>
- <field invisible="1" name="employee_id"/>
- </tree>
- </field>
- <group>
- <div align="right" groups="base.group_hr_manager,base.group_hr_attendance">
- <button name="attendance_action_change" attrs="{'invisible': [('state_attendance', '=', 'present')]}" type="object" string="Sign In" groups="base.group_hr_attendance"/>
- <button name="attendance_action_change" attrs="{'invisible': ['|', ('state_attendance','=',False), ('state_attendance', '=', 'absent')]}" type="object" string="Sign Out" groups="base.group_hr_attendance"/>
- </div>
- </group>
- </group>
- <group col="4">
- <field name="state_attendance" groups="base.group_hr_attendance"/>
- </group>
- <field colspan="4" context="{'user_id':user_id}" name="timesheet_ids" nolabel="1">
- <tree editable="top" string="Timesheet Lines">
+ <field context="{'user_id':user_id}" name="timesheet_ids" nolabel="1">
+ <tree editable="top" string="Timesheet Activities">
<field name="date"/>
<field domain="[('type','in',['normal', 'contract']), ('state', '&lt;&gt;', 'close'),('use_timesheets','=',1)]" name="account_id" on_change="on_change_account_id(account_id, user_id)" context="{'default_use_timesheets': 1}"/>
<field name="name"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" widget="float_time"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" widget="float_time" string="Hours"/>
<field name="to_invoice" widget="selection"/>
<field invisible="1" name="journal_id"/>
<field invisible="1" name="product_id" domain="[('type','=','service')]" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)"/>
@@ -108,7 +117,7 @@
<field invisible="1" name="general_account_id"/>
<field invisible="1" name="user_id" required="1"/>
</tree>
- <form string="Timesheet Lines" version="7.0">
+ <form string="Timesheet Activities" version="7.0">
<field name="date"/>
<field domain="[('type','=','normal'), ('state', '&lt;&gt;', 'close')]" name="account_id" on_change="on_change_account_id(account_id, user_id)"/>
<field name="name"/>
@@ -123,13 +132,30 @@
</form>
</field>
</page>
- <page string="Summary">
- <field colspan="4" name="period_ids" nolabel="1">
+ <page string="Attendances" groups="base.group_hr_attendance">
+ <group>
+ <field context="{'user_id':user_id}" name="attendances_ids" nolabel="1">
+ <tree string="Attendances" editable="bottom">
+ <field name="name"/>
+ <field name="action"/>
+ <field invisible="1" name="employee_id"/>
+ </tree>
+ </field>
+ <group>
+ <label for="state_attendance"/>
+ <div>
+ <field name="state_attendance"/>
+ <button name="attendance_action_change" attrs="{'invisible': [('state_attendance', '=', 'present')]}" type="object" string="Sign In" class="oe_link"/>
+ <button name="attendance_action_change" attrs="{'invisible': ['|', ('state_attendance','=',False), ('state_attendance', '=', 'absent')]}" type="object" string="Sign Out" class="oe_link"/>
+ </div>
+ </group>
+ </group>
+ <field name="period_ids">
<tree colors="red:total_difference&lt;0.1;blue:total_difference&gt;=0.1" string="Period">
<field name="name"/>
- <field name="total_attendance" widget="float_time" groups="base.group_hr_attendance"/>
+ <field name="total_attendance" widget="float_time"/>
<field name="total_timesheet" widget="float_time"/>
- <field name="total_difference" widget="float_time" groups="base.group_hr_attendance"/>
+ <field name="total_difference" widget="float_time"/>
</tree>
</field>
</page>
@@ -149,8 +175,8 @@
<field name="arch" type="xml">
<search string="Search Timesheet">
<field name="date_from"/>
- <filter icon="terp-document-new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
- <filter icon="terp-camera_test" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
+ <filter name="new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
+ <filter name="to_approve" string="To Approve" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
<field name="employee_id"/>
<field name="department_id"/>
<group expand="0" string="Group By...">
@@ -162,23 +188,23 @@
</record>
<record id="act_hr_timesheet_sheet_form" model="ir.actions.act_window">
- <field name="name">Timesheets</field>
+ <field name="name">Timesheets to Validate</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="view_id" eval="False"/>
- <field name="context">{'search_default_my_timesheet':1}</field>
+ <field name="context">{'search_default_to_approve':1}</field>
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
- Click to go to your timesheet.
+ New timesheet to approve.
</p><p>
You must record timesheets every day and confirm at the end
- of the week. Once the timesheet is confirmed, it his sent to
- the manager for validation.
+ of the week. Once the timesheet is confirmed, it should be
+ validated by a manager.
</p><p>
Timesheets can also be invoiced to customers, depending on the
- configuration of the project.
+ configuration of each project's related contract.
</p>
</field>
</record>
@@ -289,22 +315,6 @@
name="Timesheet by Day"
res_model="hr_timesheet_sheet.sheet.day"
src_model="hr_timesheet_sheet.sheet"/>
-
- <act_window
- context="{'search_default_sheet_id': [active_id]}"
- id="act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet"
- name="Timesheet Lines"
- res_model="hr.analytic.timesheet"
- src_model="hr_timesheet_sheet.sheet"/>
-
-
- <act_window
- context="{'search_default_sheet_id': [active_id]}"
- id="act_hr_timesheet_sheet_sheet_2_hr_attendance"
- name="Attendances"
- res_model="hr.attendance"
- src_model="hr_timesheet_sheet.sheet"/>
-
<record id="hr_timesheet_sheet_tree_simplified" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.tree</field>
<field name="model">hr_timesheet_sheet.sheet</field>
diff --git a/addons/hr_timesheet_sheet/i18n/mk.po b/addons/hr_timesheet_sheet/i18n/mk.po
new file mode 100644
index 00000000000..23a08ee255d
--- /dev/null
+++ b/addons/hr_timesheet_sheet/i18n/mk.po
@@ -0,0 +1,1031 @@
+# Macedonian translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-02-08 01:37+0100\n"
+"PO-Revision-Date: 2012-10-22 12:23+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Macedonian <mk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
+
+#. module: hr_timesheet_sheet
+#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.account,sheet_id:0
+#: field:hr_timesheet_sheet.sheet.day,sheet_id:0
+msgid "Sheet"
+msgstr "Лист"
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid "Service"
+msgstr "Сервис"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "No employee defined for your user !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:hr_timesheet_sheet.sheet:0
+#: view:timesheet.report:0
+msgid "Group By..."
+msgstr "Групирај По..."
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_attendance:0
+#: field:hr_timesheet_sheet.sheet,total_attendance_day:0
+msgid "Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: field:hr_timesheet_sheet.sheet,department_id:0 view:timesheet.report:0
+#: field:timesheet.report,department_id:0
+msgid "Department"
+msgstr "Сектор"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet in current year"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_tasktimesheet0
+msgid "Task timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Today"
+msgstr "Денес"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:274
+#, python-format
+msgid ""
+"Please verify that the total difference of the sheet is lower than %.2f !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "March"
+msgstr "Март"
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,cost:0
+msgid "#Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet of last month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,company_id:0
+#: field:hr_timesheet_sheet.sheet,company_id:0 view:timesheet.report:0
+#: field:timesheet.report,company_id:0
+msgid "Company"
+msgstr "Фирма"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:hr_timesheet_sheet.sheet:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_report
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_timesheet_report
+#: model:process.node,name:hr_timesheet_sheet.process_node_timesheet0
+#: view:timesheet.report:0
+msgid "Timesheet"
+msgstr "Работни Часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Set to Draft"
+msgstr "Сетирај на Драфт"
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_to:0 field:timesheet.report,date_to:0
+msgid "Date to"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_invoiceonwork0
+msgid "Based on the timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by day of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:615
+#, python-format
+msgid "You cannot modify an entry in a confirmed timesheet!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_validatetimesheet0
+msgid "Validate"
+msgstr "Потврди"
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Approved"
+msgstr "Одобрено"
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Present"
+msgstr "Присутен"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+msgid "Total Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:263
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign the "
+"employee to an analytic journal!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_refusetimesheet0
+msgid "Refuse"
+msgstr "Одбиј"
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:619
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:639
+#, python-format
+msgid ""
+"You cannot enter an attendance date outside the current timesheet dates!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_current_open
+msgid ""
+"My Timesheet opens your timesheet so that you can book your activities into "
+"the system. From the same form, you can register your attendances (Sign "
+"In/Out) and describe the working hours made on the different projects. At "
+"the end of the period defined in the company, the timesheet is confirmed by "
+"the user and can be validated by his manager. If required, as defined on the "
+"project, you can generate the invoices based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Total Difference"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid " Month-1 "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "My Departments Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_day
+msgid "Timesheet by Day"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,name:0
+msgid "Project / Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "Validation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:274
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_attendance0
+msgid "Employee's timesheet entry"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,account_id:0
+#: view:timesheet.report:0 field:timesheet.report,account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:timesheet.report,nbr:0
+msgid "#Nbr"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_from:0
+#: field:timesheet.report,date_from:0
+msgid "Date from"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0
+msgid " Month "
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_employee_2_hr_timesheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form
+#: view:res.company:0
+msgid "Timesheets"
+msgstr "Работни часови"
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_confirmedtimesheet0
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.day,total_attendance:0
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_attendance
+#: model:process.node,name:hr_timesheet_sheet.process_node_attendance0
+msgid "Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition.action,name:hr_timesheet_sheet.process_transition_action_draftconfirmtimesheet0
+msgid "Confirm"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,timesheet_ids:0
+msgid "Timesheet lines"
+msgstr "Редови на работни часови"
+
+#. module: hr_timesheet_sheet
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,state:0 view:timesheet.report:0
+#: field:timesheet.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_confirmedtimesheet0
+msgid "State is 'confirmed'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,employee_id:0
+msgid "Employee"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+#: selection:timesheet.report,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_week_attendance_graph
+msgid "My Total Attendances By Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:246
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:248
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:250
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:257
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:259
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:261
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:263
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:318
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:615
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:38
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,total:0
+msgid "Total Time"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet
+msgid "Timesheet Lines"
+msgstr "Редови на работни часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+msgid "Hours"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by month of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr.attendance:0
+msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:455
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:457
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0
+msgid "The project manager validates the timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:res.company:0
+msgid "Configuration"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_workontask0
+msgid "Work on Task"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Daily"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,quantity:0
+msgid "#Quantity"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_timesheet:0
+#: field:hr_timesheet_sheet.sheet,total_timesheet_day:0
+#: view:hr_timesheet_sheet.sheet.day:0
+#: field:hr_timesheet_sheet.sheet.day,total_timesheet:0
+msgid "Total Timesheet"
+msgstr "Вкупно работни часови"
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Available Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Sign In"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_timesheet:0
+msgid "#Total Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open
+msgid "hr.timesheet.current.open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Go to:"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:248
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product, like 'Consultant'!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "It will open your current timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241
+#, python-format
+msgid "You cannot duplicate a timesheet!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,month:0
+#: selection:res.company,timesheet_range:0 view:timesheet.report:0
+#: field:timesheet.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_diff:0
+msgid "#Total Diff"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "In Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:261
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must link the employee "
+"to a product!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_attendancetimesheet0
+msgid "Sign in/out"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state:0
+msgid "Waiting Approval"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "Billing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_timesheetdraft0
+msgid ""
+"The timesheet line represents the time spent by the employee on a specific "
+"service provided."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr_timesheet_sheet.sheet:0
+msgid "You must select a Current date which is in the timesheet dates !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,name:0
+msgid "Note"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_report_stat_all
+msgid ""
+"This report performs analysis on timesheets created by your human resources "
+"in the system. It allows you to have a full overview of entries done by "
+"your employees. You can group them by specific selection criteria thanks to "
+"the search tool."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:res.company,timesheet_max_difference:0
+msgid "Timesheet allowed difference(Hours)"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_invoiceontimesheet0
+msgid "The invoice is created based on the timesheet."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_drafttimesheetsheet0
+msgid "Draft Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:res.company,timesheet_range:0
+msgid "Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Current Status"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646
+#, python-format
+msgid "You cannot modify an entry in a confirmed timesheet !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_account
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_day
+msgid "Timesheets by Period"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,user_id:0
+#: field:hr_timesheet_sheet.sheet,user_id:0 view:timesheet.report:0
+#: field:timesheet.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_account
+msgid "Timesheet by Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,date:0 field:hr_timesheet_sheet.sheet.day,name:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:res.company,timesheet_range:0
+msgid "Timesheet range"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548
+#, python-format
+msgid "You can not modify an entry in a confirmed timesheet !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:board.board:0
+msgid "My Total Attendance By Week"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:259
+#, python-format
+msgid ""
+"You cannot have 2 timesheets that overlaps!\n"
+"You should use the menu 'My Timesheet' to avoid this problem."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,help:hr_timesheet_sheet.act_hr_timesheet_sheet_form
+msgid ""
+"Check your timesheets for a specific period. You can also encode time spent "
+"on a project (i.e. an analytic account) thus generating costs in the "
+"analytic account concerned."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:237
+#, python-format
+msgid ""
+"The timesheet cannot be validated as it does not contain an equal number of "
+"sign ins and sign outs!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_attendancetimesheet0
+msgid "The employee signs in and signs out."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Summary"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr_timesheet_sheet.sheet:0
+msgid ""
+"You cannot have 2 timesheets that overlaps !\n"
+"Please use the menu 'My Current Timesheet' to avoid this problem."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Unvalidated Timesheets"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:457
+#, python-format
+msgid "You cannot delete a timesheet which have attendance entries!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:455
+#, python-format
+msgid "You cannot delete a timesheet which is already confirmed!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,general_account_id:0
+#: view:timesheet.report:0 field:timesheet.report,general_account_id:0
+msgid "General Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:res.company,timesheet_range:0
+msgid "Periodicity on which you validate your timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Search Account"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:res.company,timesheet_max_difference:0
+msgid ""
+"Allowed difference in hours between the sign in/out and the timesheet "
+"computation for one sheet. Set this to 0 if you do not want any control."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0 field:hr_timesheet_sheet.sheet,period_ids:0
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Period"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,day:0
+#: selection:res.company,timesheet_range:0 view:timesheet.report:0
+#: field:timesheet.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_current_open
+#: model:ir.actions.server,name:hr_timesheet_sheet.ir_actions_server_timsheet_sheet
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current
+msgid "My Current Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 selection:timesheet.report,state:0
+msgid "Done"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_drafttimesheetsheet0
+msgid "State is 'draft'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: constraint:hr.analytic.timesheet:0
+msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_validatedtimesheet0
+msgid "Validated"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,name:hr_timesheet_sheet.process_node_invoiceonwork0
+msgid "Invoice on Work"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Timesheet in current month"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Timesheet by Accounts"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:51
+#, python-format
+msgid "Open Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 view:timesheet.report:0
+msgid "Group by year of date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_validatedtimesheet0
+msgid "State is 'validated'."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: help:hr_timesheet_sheet.sheet,state:0
+msgid ""
+" * The 'Draft' state is used when a user is encoding a new and unconfirmed "
+"timesheet. \n"
+"* The 'Confirmed' state is used for to confirm the timesheet by user. "
+" \n"
+"* The 'Done' state is used when users timesheet is accepted by his/her "
+"senior."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_report_stat_all
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_hr_timesheet_report_all
+msgid "Timesheet Analysis"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Search Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Confirmed Timesheets"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.model,name:hr_timesheet_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,product_id:0
+#: view:timesheet.report:0 field:timesheet.report,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+#: field:hr_timesheet_sheet.sheet,attendances_ids:0
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_attendance
+msgid "Attendances"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,name:0 field:timesheet.report,name:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_confirmtimesheet0
+msgid "The employee periodically confirms his own timesheets."
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_workontask0
+msgid "Defines the work summary of task"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Sign Out"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,note:hr_timesheet_sheet.process_transition_tasktimesheet0
+msgid "Moves task entry into the timesheet line"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.day:0
+msgid "Total Attendances"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all
+#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all
+msgid "Timesheet Sheet Analysis"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,total_difference:0
+#: field:hr_timesheet_sheet.sheet,total_difference_day:0
+#: field:hr_timesheet_sheet.sheet.day,total_difference:0
+msgid "Difference"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr_timesheet_sheet.sheet,state_attendance:0
+msgid "Absent"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.node,note:hr_timesheet_sheet.process_node_timesheet0
+msgid "Information of time spent on a service"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.transition,name:hr_timesheet_sheet.process_transition_confirmtimesheet0
+msgid "Confirmation"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet.account,invoice_rate:0
+msgid "Invoice rate"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:619
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:639
+#, python-format
+msgid "UserError"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:250
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign the "
+"employee to an analytic journal, like 'Timesheet'!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:318
+#, python-format
+msgid "You cannot sign in/sign out from an other date than today"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "Submit to Manager"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,account_ids:0
+msgid "Analytic accounts"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,to_invoice:0
+msgid "Type of Invoicing"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:246
+#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:257
+#, python-format
+msgid ""
+"In order to create a timesheet for this employee, you must assign it to a "
+"user!"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:timesheet.report:0 field:timesheet.report,total_attendance:0
+msgid "#Total Attendance"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr_timesheet_sheet.sheet,date_current:0
+#: field:timesheet.report,date_current:0
+msgid "Current date"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: model:process.process,name:hr_timesheet_sheet.process_process_hrtimesheetprocess0
+msgid "Hr Timesheet"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.report:0 field:hr.timesheet.report,year:0
+#: view:timesheet.report:0 field:timesheet.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr.timesheet.current.open:0 selection:hr_timesheet_sheet.sheet,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet:0
+msgid "To Approve"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: view:hr_timesheet_sheet.sheet.account:0
+msgid "Total"
+msgstr ""
+
+#. module: hr_timesheet_sheet
+#: field:hr.timesheet.report,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#~ msgid "My Timesheet"
+#~ msgstr "Мои работни часови"
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index 1be965fd63d..7de235ec190 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -194,6 +194,10 @@ openerp.hr_timesheet_sheet = function(instance) {
['use_timesheets','=',1],
['id', 'not in', _.pluck(self.accounts, "account")],
],
+ context: {
+ default_use_timesheets: 1,
+ default_type: "contract",
+ },
modifiers: '{"required": true}',
},
});
diff --git a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
index 0c4ad857d3b..43c23951514 100644
--- a/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
+++ b/addons/hr_timesheet_sheet/static/src/xml/timesheet.xml
@@ -12,7 +12,7 @@
<t t-esc="date.toString('MMM d')"/>
</th>
</t>
- <th class="oe_timesheet_weekly_date_head">TOTAL</th>
+ <th class="oe_timesheet_weekly_date_head">Total</th>
</tr>
<tr t-foreach="widget.accounts" t-as="account">
<td class="oe_timesheet_weekly_account"><t t-esc="widget.account_names[account.account]"/></td>
@@ -30,14 +30,14 @@
</tr>
<tr class="oe_timesheet_weekly_add_row" style="display: none">
<td t-att-colspan="widget.dates.length + 2">
- <button>Add</button>
+ <button class="oe_highlight">Add</button>
</td>
</tr>
<tr>
<td>
<div class="oe_timesheet_weekly_adding_tot">
- <div class="oe_timesheet_weekly_adding"><button>Add Row</button></div>
- <div class="oe_timesheet_weekly_tottot"><span>TOTAL</span></div>
+ <div class="oe_timesheet_weekly_adding"><button class="oe_link">Add a Project</button></div>
+ <div class="oe_timesheet_weekly_tottot"><span>Total</span></div>
</div>
</td>
<t t-set="day_count" t-value="0"/>
@@ -53,4 +53,4 @@
</table>
</div>
</t>
-</templates> \ No newline at end of file
+</templates>
diff --git a/addons/l10n_ar/l10n_ar_wizard.xml b/addons/l10n_ar/l10n_ar_wizard.xml
index 9a2fa377155..3c94d3db7a8 100644
--- a/addons/l10n_ar/l10n_ar_wizard.xml
+++ b/addons/l10n_ar/l10n_ar_wizard.xml
@@ -2,13 +2,9 @@
<openerp>
<data>
- <record id="config_call_account_template_ar" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_at/l10n_chart_at_wizard.xml b/addons/l10n_at/l10n_chart_at_wizard.xml
index b23d9be6cb5..efc68ce13e9 100644
--- a/addons/l10n_at/l10n_chart_at_wizard.xml
+++ b/addons/l10n_at/l10n_chart_at_wizard.xml
@@ -1,12 +1,8 @@
<openerp>
<data>
- <record id="config_call_account_template_at" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_be/l10n_be_wizard.yml b/addons/l10n_be/l10n_be_wizard.yml
index 178009be7ff..0b16827225f 100644
--- a/addons/l10n_be/l10n_be_wizard.yml
+++ b/addons/l10n_be/l10n_be_wizard.yml
@@ -1,10 +1,6 @@
-
- !record {model: ir.actions.todo, id: config_call_account_template}:
- action_id: account.action_wizard_multi_chart
- type: automatic
--
!python {model: ir.actions.todo}: |
- install_todo = self.browse(cr, uid, ref('l10n_be.config_call_account_template'))
+ install_todo = self.browse(cr, uid, ref('account.action_wizard_multi_chart_todo'))
if install_todo.state == 'open':
wiz = self.pool.get('wizard.multi.charts.accounts')
values = {
diff --git a/addons/l10n_ca/l10n_ca_wizard.xml b/addons/l10n_ca/l10n_ca_wizard.xml
index 3bdc380325d..efc68ce13e9 100644
--- a/addons/l10n_ca/l10n_ca_wizard.xml
+++ b/addons/l10n_ca/l10n_ca_wizard.xml
@@ -1,13 +1,9 @@
<openerp>
<data>
- <record id="config_call_account_template_ca" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_ch/wizard.xml b/addons/l10n_ch/wizard.xml
index 084159aa36d..792bd21a2fc 100644
--- a/addons/l10n_ch/wizard.xml
+++ b/addons/l10n_ch/wizard.xml
@@ -1,13 +1,7 @@
<openerp>
<data>
- <record id="config_call_account_template_l10n_ch" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts for l10n_ch</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. Please let the nuber to 0 for Swiss charts.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial
- Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="sequence">4</field>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
</openerp>
diff --git a/addons/l10n_cl/l10n_cl_wizard.xml b/addons/l10n_cl/l10n_cl_wizard.xml
index fd0d29f1edb..bcbd9a43f27 100644
--- a/addons/l10n_cl/l10n_cl_wizard.xml
+++ b/addons/l10n_cl/l10n_cl_wizard.xml
@@ -1,14 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
-
- <record id="config_call_account_template_cl" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_cn/l10n_chart_cn_wizard.xml b/addons/l10n_cn/l10n_chart_cn_wizard.xml
index 0a098120682..6919eb199b6 100644
--- a/addons/l10n_cn/l10n_chart_cn_wizard.xml
+++ b/addons/l10n_cn/l10n_chart_cn_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_cn_chart" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_cr/l10n_wizard.xml b/addons/l10n_cr/l10n_wizard.xml
index ef37667b318..6919eb199b6 100644
--- a/addons/l10n_cr/l10n_wizard.xml
+++ b/addons/l10n_cr/l10n_wizard.xml
@@ -1,10 +1,8 @@
<openerp>
<data>
-
- <record id="config_call_account_template" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_de/l10n_de_wizard.xml b/addons/l10n_de/l10n_de_wizard.xml
index 3a0dcd34bd3..efc68ce13e9 100644
--- a/addons/l10n_de/l10n_de_wizard.xml
+++ b/addons/l10n_de/l10n_de_wizard.xml
@@ -1,12 +1,9 @@
<openerp>
<data>
- <record id="config_call_account_template_de" model="ir.actions.todo">
- <field name="name">Generiert Kontenplan aus Vorlage</field>
- <field name="note">Der Assistent generiert einen Kontenplan auf Basis eines Templates (Vorlage). Sie werden aufgefordert den Namen der Firma einzugeben, sowie die entsprechende Kontenvorlage zu wählen. Ausserdem können Sie für die Initialisierung der Journale die gewünschte Stellenanzahl der Konten, sowie die Hauptwährung Ihres Betriebes auswählen. Dieser Assistent ist identisch mit dem Open ERP Menü Finanzen/Konfiguration/Finanzkonten/Erzeuge Konten aus Vorlage.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_ec/l10n_chart_ec_wizard.xml b/addons/l10n_ec/l10n_chart_ec_wizard.xml
index 9906cf9828c..6919eb199b6 100644
--- a/addons/l10n_ec/l10n_chart_ec_wizard.xml
+++ b/addons/l10n_ec/l10n_chart_ec_wizard.xml
@@ -1,13 +1,8 @@
<openerp>
<data>
-
- <record id="config_call_account_template_ec" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_es/l10n_es_wizard.xml b/addons/l10n_es/l10n_es_wizard.xml
index ec30f9e9e25..52aaa88fdab 100644
--- a/addons/l10n_es/l10n_es_wizard.xml
+++ b/addons/l10n_es/l10n_es_wizard.xml
@@ -1,9 +1,7 @@
<openerp>
<data noupdate="1">
-
- <record id="config_call_account_template" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_fr/l10n_fr_wizard.xml b/addons/l10n_fr/l10n_fr_wizard.xml
index 897da1d5414..bcbd9a43f27 100644
--- a/addons/l10n_fr/l10n_fr_wizard.xml
+++ b/addons/l10n_fr/l10n_fr_wizard.xml
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
- <!-- This ir.actions.todo triggers the screen "Generate your chart of account
- from a chart template" in the install wizard of the l10n_fr module -->
- <record id="config_call_account_template_fr" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_gr/l10n_gr_wizard.xml b/addons/l10n_gr/l10n_gr_wizard.xml
index 4fa564e2155..6919eb199b6 100644
--- a/addons/l10n_gr/l10n_gr_wizard.xml
+++ b/addons/l10n_gr/l10n_gr_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_gr" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_gt/l10n_gt_base.xml b/addons/l10n_gt/l10n_gt_base.xml
index 4ba27d6a5c4..8caf6ebe48c 100644
--- a/addons/l10n_gt/l10n_gt_base.xml
+++ b/addons/l10n_gt/l10n_gt_base.xml
@@ -1,14 +1,8 @@
<openerp>
<data noupdate="1">
- <record id="config_call_account_template_gt_minimal" model="ir.actions.todo">
- <field name="name">Generar la nomenclatura contable a partir de un modelo</field>
- <field name="note">Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.</field>
- <!--<field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus, the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>-->
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
<!-- Moneda Quetzal -->
diff --git a/addons/l10n_hn/l10n_hn_base.xml b/addons/l10n_hn/l10n_hn_base.xml
index a12d93db034..b8b85c3f2a7 100644
--- a/addons/l10n_hn/l10n_hn_base.xml
+++ b/addons/l10n_hn/l10n_hn_base.xml
@@ -2,13 +2,7 @@
<openerp>
<data noupdate="1">
- <record id="config_call_account_template_hn_minimal" model="ir.actions.todo">
- <field name="name">Generar la nomenclatura contable a partir de un modelo</field>
- <field name="note">Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar una compañía, el modelo a utilizar, el número de digitos a usar en la nomenclatura, la moneda para crear los diarios.</field>
- <!--<field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus, the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>-->
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
<field name="state">open</field>
</record>
diff --git a/addons/l10n_in/l10n_in_wizard.xml b/addons/l10n_in/l10n_in_wizard.xml
index 20d35aa09a2..bcbd9a43f27 100644
--- a/addons/l10n_in/l10n_in_wizard.xml
+++ b/addons/l10n_in/l10n_in_wizard.xml
@@ -1,13 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
-
- <record id="config_call_account_template_in_minimal" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
index 085a2679db2..b7c3926d727 100644
--- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
+++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
@@ -65,7 +65,7 @@ class payroll_advice(osv.osv):
('draft', 'Draft'),
('confirm', 'Confirmed'),
('cancel', 'Cancelled'),
- ], 'State', select=True, readonly=True),
+ ], 'Status', select=True, readonly=True),
'number':fields.char('Reference', size=16, readonly=True),
'line_ids':fields.one2many('hr.payroll.advice.line', 'advice_id', 'Employee Salary', states={'draft': [('readonly', False)]}, readonly=True),
'chaque_nos':fields.char('Cheque Numbers', size=256),
diff --git a/addons/l10n_in_hr_payroll/report/payment_advice_report.py b/addons/l10n_in_hr_payroll/report/payment_advice_report.py
index 838334913a5..a264368be94 100644
--- a/addons/l10n_in_hr_payroll/report/payment_advice_report.py
+++ b/addons/l10n_in_hr_payroll/report/payment_advice_report.py
@@ -38,7 +38,7 @@ class payment_advice_report(osv.osv):
('draft', 'Draft'),
('confirm', 'Confirmed'),
('cancel', 'Cancelled'),
- ], 'State', select=True, readonly=True),
+ ], 'Status', select=True, readonly=True),
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
'nbr': fields.integer('# Payment Lines', readonly=True),
'number':fields.char('Number', size=16, readonly=True),
diff --git a/addons/l10n_in_hr_payroll/report/payslip_report.py b/addons/l10n_in_hr_payroll/report/payslip_report.py
index b688af4329b..a78d9850667 100644
--- a/addons/l10n_in_hr_payroll/report/payslip_report.py
+++ b/addons/l10n_in_hr_payroll/report/payslip_report.py
@@ -39,7 +39,7 @@ class payslip_report(osv.osv):
('draft', 'Draft'),
('done', 'Done'),
('cancel', 'Rejected'),
- ], 'State', readonly=True),
+ ], 'Status', readonly=True),
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
'nbr': fields.integer('# Payslip lines', readonly=True),
'number': fields.char('Number', size=16, readonly=True),
diff --git a/addons/l10n_it/l10n_chart_it_generic.xml b/addons/l10n_it/l10n_chart_it_generic.xml
index 52269c71962..792bd21a2fc 100644
--- a/addons/l10n_it/l10n_chart_it_generic.xml
+++ b/addons/l10n_it/l10n_chart_it_generic.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_generic" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
</openerp>
diff --git a/addons/l10n_lu/l10n_lu_wizard.xml b/addons/l10n_lu/l10n_lu_wizard.xml
index 32351428bb6..6919eb199b6 100644
--- a/addons/l10n_lu/l10n_lu_wizard.xml
+++ b/addons/l10n_lu/l10n_lu_wizard.xml
@@ -1,10 +1,8 @@
<openerp>
<data>
-
- <record id="config_call_account_template_lu" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_ma/l10n_ma_wizard.xml b/addons/l10n_ma/l10n_ma_wizard.xml
index 428a17e081a..6919eb199b6 100644
--- a/addons/l10n_ma/l10n_ma_wizard.xml
+++ b/addons/l10n_ma/l10n_ma_wizard.xml
@@ -1,10 +1,8 @@
<openerp>
<data>
-
- <record id="config_call_account_template_ma" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_mx/i18n/es_MX.po b/addons/l10n_mx/i18n/es_MX.po
index e9822e23498..305ec408af2 100644
--- a/addons/l10n_mx/i18n/es_MX.po
+++ b/addons/l10n_mx/i18n/es_MX.po
@@ -1,28 +1,41 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# Spanish (Mexico) translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-07 06:07+0000\n"
-"PO-Revision-Date: 2011-02-15 15:37+0000\n"
+"POT-Creation-Date: 2011-12-23 09:56+0000\n"
+"PO-Revision-Date: 2012-10-22 22:58+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Spanish <es@li.org>\n"
+"Language-Team: Spanish (Mexico) <es_MX@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: l10n_mx
-#: model:ir.module.module,description:l10n_mx.module_meta_information
-msgid ""
-"This is the module to manage the accounting chart for Mexico in Open ERP."
-msgstr ""
-"Este es el módulo para gestionar el plan contable para Méjico en Open ERP."
+#: model:account.account.type,name:l10n_mx.account_type_receivable
+msgid "Receivable"
+msgstr "Por cobrar"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_equity
+msgid "Equity"
+msgstr "Capital"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_tax
+msgid "Tax"
+msgstr "Impuesto"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_cash
+msgid "Cash"
+msgstr "Efectivo"
#. module: l10n_mx
#: model:ir.actions.todo,note:l10n_mx.config_call_account_template_mx_chart
@@ -35,16 +48,28 @@ msgid ""
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
"Chart of Accounts from a Chart Template."
msgstr ""
-"Generar Plan Contable a partir de una plantilla de Plan. Se le preguntará "
-"por el nombre de la compañía, la plantilla de plan contable a seguir, el no. "
-"de dígitos para generar el código de sus cuentas y la cuenta bancaria, la "
-"divisa para crear Diarios. Por lo tanto, la copia exacta de la plantilla de "
-"plan contable será generada.\n"
-"Este es el mismo asistente que se ejecuta desde Gestión "
-"Financiera/Configuración/Contabilidad Financiera/Contabilidad "
-"Financiera/Generar Plan Contable a partir de una Plantilla de Plan."
-
-#. module: l10n_mx
-#: model:ir.module.module,shortdesc:l10n_mx.module_meta_information
-msgid "Mexico - Chart of Account"
-msgstr "Méjico - Plan Contable"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_payable
+msgid "Payable"
+msgstr "A pagar"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_asset
+msgid "Asset"
+msgstr "Activo"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_income
+msgid "Income"
+msgstr "Ingreso"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_expense
+msgid "Expense"
+msgstr "Gasto"
+
+#. module: l10n_mx
+#: model:account.account.type,name:l10n_mx.account_type_view
+msgid "View"
+msgstr "Vista"
diff --git a/addons/l10n_mx/l10n_chart_mx_wizard.xml b/addons/l10n_mx/l10n_chart_mx_wizard.xml
index aeea1f3cd69..6919eb199b6 100644
--- a/addons/l10n_mx/l10n_chart_mx_wizard.xml
+++ b/addons/l10n_mx/l10n_chart_mx_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_mx_chart" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_nl/l10n_nl_wizard.xml b/addons/l10n_nl/l10n_nl_wizard.xml
index bcdd183b12c..6919eb199b6 100644
--- a/addons/l10n_nl/l10n_nl_wizard.xml
+++ b/addons/l10n_nl/l10n_nl_wizard.xml
@@ -1,19 +1,8 @@
<openerp>
<data>
-
- <record id="config_call_account_template" model="ir.actions.todo">
- <field name="name">Genereer Grootboekrekingschema vanuit het Nederlandse Grootboek Template</field>
- <field name="note">Na installatie van deze module word de configuratie wizard voor "Accounting" aangeroepen.
-* U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het Nederlandse grootboekschema bevind.
-* Als de configuratie wizard start, wordt u gevraagd om de naam van uw bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en de currency om Journalen te creeren.
-
-Let op!! -&gt; De template van het Nederlandse rekeningschema is opgebouwd uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult met "nullen"
-
-* Dit is dezelfe configuratie wizard welke aangeroepen kan worden via Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_pe/l10n_pe_wizard.xml b/addons/l10n_pe/l10n_pe_wizard.xml
index e1189fbcc2d..3c94d3db7a8 100644
--- a/addons/l10n_pe/l10n_pe_wizard.xml
+++ b/addons/l10n_pe/l10n_pe_wizard.xml
@@ -2,12 +2,8 @@
<openerp>
<data>
- <record id="config_call_account_template_pe" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_pl/l10n_chart_pl_wizard.xml b/addons/l10n_pl/l10n_chart_pl_wizard.xml
index aded9e3b2a3..6919eb199b6 100644
--- a/addons/l10n_pl/l10n_chart_pl_wizard.xml
+++ b/addons/l10n_pl/l10n_chart_pl_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_pl_chart" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_ro/l10n_chart_ro_wizard.xml b/addons/l10n_ro/l10n_chart_ro_wizard.xml
index bafb7b26f82..6919eb199b6 100644
--- a/addons/l10n_ro/l10n_chart_ro_wizard.xml
+++ b/addons/l10n_ro/l10n_chart_ro_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_ro" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_syscohada/l10n_syscohada_wizard.xml b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
index 7174ef438b7..792bd21a2fc 100644
--- a/addons/l10n_syscohada/l10n_syscohada_wizard.xml
+++ b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
@@ -1,11 +1,7 @@
<openerp>
<data>
- <record id="config_call_account_template_syscohada" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp>
diff --git a/addons/l10n_th/account_data.xml b/addons/l10n_th/account_data.xml
index d5885d4b92b..d730caa8404 100644
--- a/addons/l10n_th/account_data.xml
+++ b/addons/l10n_th/account_data.xml
@@ -643,14 +643,9 @@
</record>
<!-- INSTALL ACTION -->
-
-<record id="config_call_account_template_th" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
- </record>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
+ </record>
</data>
</openerp><!-- vim: set fdm=marker : -->
diff --git a/addons/l10n_tr/l10n_tr_wizard.xml b/addons/l10n_tr/l10n_tr_wizard.xml
index e7ae8dc2d82..59668347bed 100644
--- a/addons/l10n_tr/l10n_tr_wizard.xml
+++ b/addons/l10n_tr/l10n_tr_wizard.xml
@@ -1,16 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
- <record id="config_call_account_template_tr_chart" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be
-asked to pass the name of the company, the chart template to follow, the no. of digits to generate
-the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of
-chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial
-Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
</openerp>
diff --git a/addons/l10n_uk/l10n_uk_wizard.xml b/addons/l10n_uk/l10n_uk_wizard.xml
index cb947163ab3..1b8d528c0e8 100644
--- a/addons/l10n_uk/l10n_uk_wizard.xml
+++ b/addons/l10n_uk/l10n_uk_wizard.xml
@@ -1,41 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
-
- <record id="view_wizard_multi_chart_uk" model="ir.ui.view">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="model">wizard.multi.charts.accounts</field>
- <field name="inherit_id" ref="account.view_wizard_multi_chart"/>
- <field name="arch" type="xml">
- <data>
-<!--
- <xpath expr="//group[@string='res_config_contents']/separator" position="attributes">
- <attribute name="string">
- Generate Your UK Accounting Chart from a Chart Template
- </attribute>
- </xpath>
- <xpath expr="//group[@string='res_config_contents']/label" position="attributes">
- <attribute name="string">SELECT 4 DIGIT ACCOUNTS. This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/ Financial Accounts/Generate Chart of Accounts from a Chart Template.</attribute>
- </xpath>
--->
- </data>
- </field>
- </record>
-
- <record id="action_wizard_multi_chart_uk" model="ir.actions.act_window">
- <field name="name">Generate UK Chart of Accounts from a Chart Template</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">wizard.multi.charts.accounts</field>
- <field name="view_id" ref="view_wizard_multi_chart_uk"/>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="target">new</field>
- </record>
-
- <record id="l10n_uk_latest_wizard_id" model="ir.actions.todo">
- <field name="action_id" ref="action_wizard_multi_chart_uk"/>
- <field name="sequence">10</field>
- <field name="type">once</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
<field name="state">open</field>
</record>
diff --git a/addons/l10n_us/l10n_us_wizard.xml b/addons/l10n_us/l10n_us_wizard.xml
index 8c306f155fe..6919eb199b6 100644
--- a/addons/l10n_us/l10n_us_wizard.xml
+++ b/addons/l10n_us/l10n_us_wizard.xml
@@ -1,12 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/l10n_uy/l10n_uy_wizard.xml b/addons/l10n_uy/l10n_uy_wizard.xml
index 6543664b2b6..49cbeca89f9 100644
--- a/addons/l10n_uy/l10n_uy_wizard.xml
+++ b/addons/l10n_uy/l10n_uy_wizard.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
- <record id="config_call_account_template_uy" model="ir.actions.todo">
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
</openerp>
diff --git a/addons/l10n_ve/l10n_chart_ve_wizard.xml b/addons/l10n_ve/l10n_chart_ve_wizard.xml
index 823fa833313..6919eb199b6 100644
--- a/addons/l10n_ve/l10n_chart_ve_wizard.xml
+++ b/addons/l10n_ve/l10n_chart_ve_wizard.xml
@@ -1,15 +1,7 @@
<openerp>
<data>
-
- <record id="config_call_account_template_ve_chart" model="ir.actions.todo">
- <field name="name">Generate Chart of Accounts from a Chart Template</field>
- <field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el nombre de la compania, la plantilla de carta para seguir, el no. de digitos para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear Diarios. Asi, la copia pura de la carta la Plantilla es generada.
-Esto es el mismo wizard que corre de la Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
- </field>
- <field name="action_id" ref="account.action_wizard_multi_chart"/>
- <field name="type">automatic</field>
+ <record id="account.action_wizard_multi_chart_todo" model="ir.actions.todo">
+ <field name="state">open</field>
</record>
</data>
diff --git a/addons/mail/mail_group_menu.py b/addons/mail/mail_group_menu.py
index 707ece6a180..a29ee2519d5 100644
--- a/addons/mail/mail_group_menu.py
+++ b/addons/mail/mail_group_menu.py
@@ -41,7 +41,7 @@ class ir_ui_menu(osv.osv):
""" Override to take off menu entries (mail.group) the user is not
following. Access are done using SUPERUSER_ID to avoid access
rights issues for an internal back-end algorithm. """
- ids = super(ir_ui_menu, self).search(cr, uid, args, offset=0, limit=None, order=order, context=context, count=False)
+ ids = super(ir_ui_menu, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=False)
partner_id = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0]
follower_obj = self.pool.get('mail.followers')
for menu in self.browse(cr, uid, ids, context=context):
@@ -52,4 +52,6 @@ class ir_ui_menu(osv.osv):
], context=context)
if not sub_ids:
ids.remove(menu.id)
+ if count:
+ return len(ids)
return ids
diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml
index 5ef5e14b846..55cc1de1ec0 100644
--- a/addons/mail/mail_thread_view.xml
+++ b/addons/mail/mail_thread_view.xml
@@ -45,7 +45,7 @@
sequence="10"/>
<!-- Left-side menu: Feeds -->
- <menuitem id="mail.mail_feeds" name="Feeds &amp; Mailbox" parent="mail.mail_feeds_main" groups="base.group_user" sequence="10"/>
+ <menuitem id="mail.mail_feeds" name="Messages" parent="mail.mail_feeds_main" groups="base.group_user" sequence="10"/>
<menuitem id="mail_my_stuff" name="Organizer" parent="mail.mail_feeds_main"/>
<record id="mail_inboxfeeds" model="ir.ui.menu">
@@ -79,4 +79,4 @@
<field name="parent_id" ref="mail.mail_feeds"/>
</record>
</data>
-</openerp> \ No newline at end of file
+</openerp>
diff --git a/addons/mail/update.py b/addons/mail/update.py
index 9e35391bf52..f571a59440d 100644
--- a/addons/mail/update.py
+++ b/addons/mail/update.py
@@ -22,7 +22,7 @@ check the logs to see if a message we just received was already logged.
"""
_PREVIOUS_LOG_CHECK = datetime.timedelta(days=365)
-def get_sys_logs(cr, uid):
+def get_sys_logs(self, cr, uid):
"""
Utility method to send a publisher warranty get logs messages.
"""
@@ -42,7 +42,7 @@ def get_sys_logs(cr, uid):
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'))
+ web_base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', 'False')
msg = {
"dbuuid": dbuuid,
"nbr_users": nbr_users,
@@ -62,6 +62,7 @@ def get_sys_logs(cr, uid):
arguments_raw = urllib.urlencode(arguments)
url = config.get("publisher_warranty_url")
+
uo = urllib2.urlopen(url, arguments_raw, **add_arg)
result = {}
try:
@@ -84,8 +85,8 @@ class publisher_warranty_contract(osv.osv):
"""
try:
try:
- result = get_sys_logs(cr, uid)
- except Exception:
+ result = get_sys_logs(self, cr, uid)
+ except Exception, ex:
if cron_mode: # we don't want to see any stack trace in cron
return False
_logger.debug("Exception while sending a get logs messages", exc_info=1)
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 87af723f2f9..5e3816419f8 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -150,11 +150,11 @@ class membership_line(osv.osv):
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
'state': fields.function(_state,
- string='Membership State', type='selection',
+ string='Membership Status', type='selection',
selection=STATE, store = {
'account.invoice': (_get_membership_lines, ['state'], 10),
'res.partner': (_get_partners, ['membership_state'], 12),
- }, help="""It indicates the membership state.
+ }, help="""It indicates the membership status.
-Non Member: A member who has not applied for any membership.
-Cancelled Member: A member who has cancelled his membership.
-Old Member: A member whose membership date has expired.
@@ -323,7 +323,7 @@ class Partner(osv.osv):
help = 'The price negotiated by the partner'),
'membership_state': fields.function(
__get_membership_state,
- string = 'Current Membership State', type = 'selection',
+ string = 'Current Membership Status', type = 'selection',
selection = STATE,
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index 6ef704ac2b9..74bed25d597 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.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:49+0000\n"
-"PO-Revision-Date: 2012-02-13 09:52+0000\n"
-"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:08+0000\n"
+"Last-Translator: ccdos <Unknown>\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-10-19 05:06+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mrp
#: view:mrp.routing.workcenter:0
@@ -89,7 +89,7 @@ msgstr "单位成本"
#. module: mrp
#: view:mrp.production:0
msgid "Scrap Products"
-msgstr "原料消耗"
+msgstr "报废原料"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
@@ -135,7 +135,7 @@ msgstr "生产订单编号"
#. module: mrp
#: view:mrp.production:0
msgid "Finished Products"
-msgstr "已完工数量"
+msgstr "产成品"
#. module: mrp
#: view:mrp.production:0
@@ -209,7 +209,7 @@ msgstr "输入一个费用产品用于跟踪辅助核算会计中的成本"
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "For purchased material"
-msgstr "用于采购原料"
+msgstr "用于外购的物料"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.product_form_config_action
@@ -1288,7 +1288,7 @@ msgstr "如果产品的供应方法是外购,系统创建采购订单。"
#. module: mrp
#: model:ir.model,name:mrp.model_procurement_order
msgid "Procurement"
-msgstr "需求单"
+msgstr "需求"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 3ae27bf2c41..f8b53583a8c 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -499,12 +499,12 @@ class mrp_production(osv.osv):
[('draft', 'New'), ('cancel', 'Cancelled'), ('picking_except', 'Picking Exception'), ('confirmed', 'Waiting Goods'),
('ready', 'Ready to Produce'), ('in_production', 'Production Started'), ('done', 'Done')],
string='Status', readonly=True,
- help="When the production order is created the state is set to 'Draft'.\n\
- If the order is confirmed the state is set to 'Waiting Goods'.\n\
- If any exceptions are there, the state is set to 'Picking Exception'.\n\
- If the stock is available then the state is set to 'Ready to Produce'.\n\
- When the production gets started then the state is set to 'In Production'.\n\
- When the production is over, the state is set to 'Done'."),
+ help="When the production order is created the status is set to 'Draft'.\n\
+ If the order is confirmed the status is set to 'Waiting Goods'.\n\
+ If any exceptions are there, the status is set to 'Picking Exception'.\n\
+ If the stock is available then the status is set to 'Ready to Produce'.\n\
+ When the production gets started then the status is set to 'In Production'.\n\
+ When the production is over, the status is set to 'Done'."),
'hour_total': fields.function(_production_calc, type='float', string='Total Hours', multi='workorder', store=True),
'cycle_total': fields.function(_production_calc, type='float', string='Total Cycles', multi='workorder', store=True),
'user_id':fields.many2one('res.users', 'Responsible'),
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 9d1ae9eae8a..5af87dc8883 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -620,10 +620,10 @@
<form string="Manufacturing Orders" version="7.0">
<header>
<button name="button_confirm" states="draft" string="Confirm Production" class="oe_highlight"/>
- <button name="button_produce" states="ready" string="Start Production" class="oe_highlight"/>
- <button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" type="action" class="oe_highlight"/>
- <button name="force_production" states="confirmed" string="Force Reservation" type="object" class="oe_highlight"/>
+ <button name="%(act_mrp_product_produce)d" states="confirmed,ready,in_production" string="Produce" type="action" class="oe_highlight"/>
+ <button name="force_production" states="confirmed" string="Force Reservation" type="object"/>
<button name="force_production" states="picking_except" string="Force Reservation" type="object"/>
+ <button name="button_produce" states="confirmed,ready" string="Mark as Started"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking"/>
<button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/>
<button name="action_cancel" type="object" states="confirmed" string="Cancel"/>
@@ -668,7 +668,7 @@
<page string="Consumed Products">
<group>
<group string="Products to Consume">
- <field name="move_lines" nolabel="1">
+ <field name="move_lines" nolabel="1" options="{'reload_on_button': true}">
<tree colors="blue:state == 'draft';black:state in ('picking_except','confirmed','ready','in_production');gray:state in ('cancel','done') " string="Products to Consume">
<field name="product_id"/>
<field name="product_qty" string="Quantity"/>
@@ -692,7 +692,7 @@
</tree>
</field>
</group>
- <group string="Consumed Product">
+ <group string="Consumed Products">
<field name="move_lines2" nolabel="1">
<tree colors="red:scrapped==True;blue:state == 'draft';black:state in('picking_except','confirmed','ready','in_production');gray:state == 'cancel' " string="Consumed Products" editable="bottom">
<field name="product_id" readonly="1"/>
diff --git a/addons/mrp_subproduct/__init__.py b/addons/mrp_byproduct/__init__.py
index 5b48431ef16..7e507e0fe0a 100644
--- a/addons/mrp_subproduct/__init__.py
+++ b/addons/mrp_byproduct/__init__.py
@@ -18,5 +18,5 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-import mrp_subproduct
+import mrp_byproduct
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_byproduct/__openerp__.py
index 6475cbe4a91..58e7a194771 100644
--- a/addons/mrp_subproduct/__openerp__.py
+++ b/addons/mrp_byproduct/__openerp__.py
@@ -21,14 +21,14 @@
{
- 'name': 'MRP Subproducts',
+ 'name': 'MRP Byproducts',
'version': '1.0',
'category': 'Manufacturing',
'description': """
This module allows you to produce several products from one production order.
=============================================================================
-You can configure sub-products in the bill of material.
+You can configure by-products in the bill of material.
Without this module:
--------------------
@@ -40,14 +40,14 @@ With this module:
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'images': ['images/bom_subproduct.jpeg'],
+ 'images': ['images/bom_byproduct.jpeg'],
'depends': ['base', 'mrp'],
'data': [
'security/ir.model.access.csv',
- 'mrp_subproduct_view.xml'
+ 'mrp_byproduct_view.xml'
],
'demo': [],
- 'test': ['test/mrp_subproduct.yml'],
+ 'test': ['test/mrp_byproduct.yml'],
'installable': True,
'auto_install': False,
}
diff --git a/addons/mrp_subproduct/i18n/ab.po b/addons/mrp_byproduct/i18n/ab.po
index cb0507473b6..cb0507473b6 100644
--- a/addons/mrp_subproduct/i18n/ab.po
+++ b/addons/mrp_byproduct/i18n/ab.po
diff --git a/addons/mrp_subproduct/i18n/ar.po b/addons/mrp_byproduct/i18n/ar.po
index 31c1855cf84..31c1855cf84 100644
--- a/addons/mrp_subproduct/i18n/ar.po
+++ b/addons/mrp_byproduct/i18n/ar.po
diff --git a/addons/mrp_subproduct/i18n/bg.po b/addons/mrp_byproduct/i18n/bg.po
index b193d7f1656..b193d7f1656 100644
--- a/addons/mrp_subproduct/i18n/bg.po
+++ b/addons/mrp_byproduct/i18n/bg.po
diff --git a/addons/mrp_subproduct/i18n/bs.po b/addons/mrp_byproduct/i18n/bs.po
index 34f27c74b47..34f27c74b47 100644
--- a/addons/mrp_subproduct/i18n/bs.po
+++ b/addons/mrp_byproduct/i18n/bs.po
diff --git a/addons/mrp_subproduct/i18n/ca.po b/addons/mrp_byproduct/i18n/ca.po
index 7a73bdbb4fc..7a73bdbb4fc 100644
--- a/addons/mrp_subproduct/i18n/ca.po
+++ b/addons/mrp_byproduct/i18n/ca.po
diff --git a/addons/mrp_subproduct/i18n/cs.po b/addons/mrp_byproduct/i18n/cs.po
index a55705d2f3d..a55705d2f3d 100644
--- a/addons/mrp_subproduct/i18n/cs.po
+++ b/addons/mrp_byproduct/i18n/cs.po
diff --git a/addons/mrp_subproduct/i18n/da.po b/addons/mrp_byproduct/i18n/da.po
index e9528af8342..e9528af8342 100644
--- a/addons/mrp_subproduct/i18n/da.po
+++ b/addons/mrp_byproduct/i18n/da.po
diff --git a/addons/mrp_subproduct/i18n/de.po b/addons/mrp_byproduct/i18n/de.po
index 90cbe47afed..90cbe47afed 100644
--- a/addons/mrp_subproduct/i18n/de.po
+++ b/addons/mrp_byproduct/i18n/de.po
diff --git a/addons/mrp_subproduct/i18n/es.po b/addons/mrp_byproduct/i18n/es.po
index b620686de2d..b620686de2d 100644
--- a/addons/mrp_subproduct/i18n/es.po
+++ b/addons/mrp_byproduct/i18n/es.po
diff --git a/addons/mrp_subproduct/i18n/es_AR.po b/addons/mrp_byproduct/i18n/es_AR.po
index 44bda1db8aa..44bda1db8aa 100644
--- a/addons/mrp_subproduct/i18n/es_AR.po
+++ b/addons/mrp_byproduct/i18n/es_AR.po
diff --git a/addons/mrp_subproduct/i18n/es_CR.po b/addons/mrp_byproduct/i18n/es_CR.po
index 397a1ed992e..397a1ed992e 100644
--- a/addons/mrp_subproduct/i18n/es_CR.po
+++ b/addons/mrp_byproduct/i18n/es_CR.po
diff --git a/addons/mrp_subproduct/i18n/es_EC.po b/addons/mrp_byproduct/i18n/es_EC.po
index b1726ea8837..b1726ea8837 100644
--- a/addons/mrp_subproduct/i18n/es_EC.po
+++ b/addons/mrp_byproduct/i18n/es_EC.po
diff --git a/addons/mrp_subproduct/i18n/es_MX.po b/addons/mrp_byproduct/i18n/es_MX.po
index adafa31e20b..adafa31e20b 100644
--- a/addons/mrp_subproduct/i18n/es_MX.po
+++ b/addons/mrp_byproduct/i18n/es_MX.po
diff --git a/addons/mrp_subproduct/i18n/es_VE.po b/addons/mrp_byproduct/i18n/es_VE.po
index adafa31e20b..adafa31e20b 100644
--- a/addons/mrp_subproduct/i18n/es_VE.po
+++ b/addons/mrp_byproduct/i18n/es_VE.po
diff --git a/addons/mrp_subproduct/i18n/et.po b/addons/mrp_byproduct/i18n/et.po
index ef99950da2b..ef99950da2b 100644
--- a/addons/mrp_subproduct/i18n/et.po
+++ b/addons/mrp_byproduct/i18n/et.po
diff --git a/addons/mrp_subproduct/i18n/fi.po b/addons/mrp_byproduct/i18n/fi.po
index ec18e259f19..ec18e259f19 100644
--- a/addons/mrp_subproduct/i18n/fi.po
+++ b/addons/mrp_byproduct/i18n/fi.po
diff --git a/addons/mrp_subproduct/i18n/fr.po b/addons/mrp_byproduct/i18n/fr.po
index 6d45d471c9d..6d45d471c9d 100644
--- a/addons/mrp_subproduct/i18n/fr.po
+++ b/addons/mrp_byproduct/i18n/fr.po
diff --git a/addons/mrp_subproduct/i18n/gl.po b/addons/mrp_byproduct/i18n/gl.po
index 864003eaf4d..864003eaf4d 100644
--- a/addons/mrp_subproduct/i18n/gl.po
+++ b/addons/mrp_byproduct/i18n/gl.po
diff --git a/addons/mrp_subproduct/i18n/hr.po b/addons/mrp_byproduct/i18n/hr.po
index e96230f6c73..e96230f6c73 100644
--- a/addons/mrp_subproduct/i18n/hr.po
+++ b/addons/mrp_byproduct/i18n/hr.po
diff --git a/addons/mrp_subproduct/i18n/hu.po b/addons/mrp_byproduct/i18n/hu.po
index c878b309fd0..c878b309fd0 100644
--- a/addons/mrp_subproduct/i18n/hu.po
+++ b/addons/mrp_byproduct/i18n/hu.po
diff --git a/addons/mrp_subproduct/i18n/id.po b/addons/mrp_byproduct/i18n/id.po
index 48e444b6610..48e444b6610 100644
--- a/addons/mrp_subproduct/i18n/id.po
+++ b/addons/mrp_byproduct/i18n/id.po
diff --git a/addons/mrp_subproduct/i18n/it.po b/addons/mrp_byproduct/i18n/it.po
index a5b081e482a..a5b081e482a 100644
--- a/addons/mrp_subproduct/i18n/it.po
+++ b/addons/mrp_byproduct/i18n/it.po
diff --git a/addons/mrp_subproduct/i18n/ja.po b/addons/mrp_byproduct/i18n/ja.po
index 3745b1eb42f..3745b1eb42f 100644
--- a/addons/mrp_subproduct/i18n/ja.po
+++ b/addons/mrp_byproduct/i18n/ja.po
diff --git a/addons/mrp_subproduct/i18n/ko.po b/addons/mrp_byproduct/i18n/ko.po
index 8c7789a6d7c..8c7789a6d7c 100644
--- a/addons/mrp_subproduct/i18n/ko.po
+++ b/addons/mrp_byproduct/i18n/ko.po
diff --git a/addons/mrp_subproduct/i18n/lt.po b/addons/mrp_byproduct/i18n/lt.po
index 34a30101804..34a30101804 100644
--- a/addons/mrp_subproduct/i18n/lt.po
+++ b/addons/mrp_byproduct/i18n/lt.po
diff --git a/addons/mrp_subproduct/i18n/mn.po b/addons/mrp_byproduct/i18n/mn.po
index 9296c108c55..9296c108c55 100644
--- a/addons/mrp_subproduct/i18n/mn.po
+++ b/addons/mrp_byproduct/i18n/mn.po
diff --git a/addons/mrp_subproduct/i18n/mrp_subproduct.pot b/addons/mrp_byproduct/i18n/mrp_subproduct.pot
index 40f1683ec75..40f1683ec75 100644
--- a/addons/mrp_subproduct/i18n/mrp_subproduct.pot
+++ b/addons/mrp_byproduct/i18n/mrp_subproduct.pot
diff --git a/addons/mrp_subproduct/i18n/nb.po b/addons/mrp_byproduct/i18n/nb.po
index 328b86235b2..328b86235b2 100644
--- a/addons/mrp_subproduct/i18n/nb.po
+++ b/addons/mrp_byproduct/i18n/nb.po
diff --git a/addons/mrp_subproduct/i18n/nl.po b/addons/mrp_byproduct/i18n/nl.po
index b59764b925d..b59764b925d 100644
--- a/addons/mrp_subproduct/i18n/nl.po
+++ b/addons/mrp_byproduct/i18n/nl.po
diff --git a/addons/mrp_subproduct/i18n/nl_BE.po b/addons/mrp_byproduct/i18n/nl_BE.po
index 26073a1c465..26073a1c465 100644
--- a/addons/mrp_subproduct/i18n/nl_BE.po
+++ b/addons/mrp_byproduct/i18n/nl_BE.po
diff --git a/addons/mrp_subproduct/i18n/oc.po b/addons/mrp_byproduct/i18n/oc.po
index b56078ac176..b56078ac176 100644
--- a/addons/mrp_subproduct/i18n/oc.po
+++ b/addons/mrp_byproduct/i18n/oc.po
diff --git a/addons/mrp_subproduct/i18n/pl.po b/addons/mrp_byproduct/i18n/pl.po
index 15ade180f53..15ade180f53 100644
--- a/addons/mrp_subproduct/i18n/pl.po
+++ b/addons/mrp_byproduct/i18n/pl.po
diff --git a/addons/mrp_subproduct/i18n/pt.po b/addons/mrp_byproduct/i18n/pt.po
index 0c55abf9d8b..0c55abf9d8b 100644
--- a/addons/mrp_subproduct/i18n/pt.po
+++ b/addons/mrp_byproduct/i18n/pt.po
diff --git a/addons/mrp_subproduct/i18n/pt_BR.po b/addons/mrp_byproduct/i18n/pt_BR.po
index 9c080372bda..9c080372bda 100644
--- a/addons/mrp_subproduct/i18n/pt_BR.po
+++ b/addons/mrp_byproduct/i18n/pt_BR.po
diff --git a/addons/mrp_subproduct/i18n/ro.po b/addons/mrp_byproduct/i18n/ro.po
index 5b4651e67a8..5b4651e67a8 100644
--- a/addons/mrp_subproduct/i18n/ro.po
+++ b/addons/mrp_byproduct/i18n/ro.po
diff --git a/addons/mrp_subproduct/i18n/ru.po b/addons/mrp_byproduct/i18n/ru.po
index 8643b2f11d1..8643b2f11d1 100644
--- a/addons/mrp_subproduct/i18n/ru.po
+++ b/addons/mrp_byproduct/i18n/ru.po
diff --git a/addons/mrp_subproduct/i18n/sk.po b/addons/mrp_byproduct/i18n/sk.po
index 80316bb40e4..80316bb40e4 100644
--- a/addons/mrp_subproduct/i18n/sk.po
+++ b/addons/mrp_byproduct/i18n/sk.po
diff --git a/addons/mrp_subproduct/i18n/sl.po b/addons/mrp_byproduct/i18n/sl.po
index 1daae54756c..1daae54756c 100644
--- a/addons/mrp_subproduct/i18n/sl.po
+++ b/addons/mrp_byproduct/i18n/sl.po
diff --git a/addons/mrp_subproduct/i18n/sq.po b/addons/mrp_byproduct/i18n/sq.po
index b6b0b4994b1..b6b0b4994b1 100644
--- a/addons/mrp_subproduct/i18n/sq.po
+++ b/addons/mrp_byproduct/i18n/sq.po
diff --git a/addons/mrp_subproduct/i18n/sr.po b/addons/mrp_byproduct/i18n/sr.po
index 0f490d35dcd..0f490d35dcd 100644
--- a/addons/mrp_subproduct/i18n/sr.po
+++ b/addons/mrp_byproduct/i18n/sr.po
diff --git a/addons/mrp_subproduct/i18n/sr@latin.po b/addons/mrp_byproduct/i18n/sr@latin.po
index ff29f099431..ff29f099431 100644
--- a/addons/mrp_subproduct/i18n/sr@latin.po
+++ b/addons/mrp_byproduct/i18n/sr@latin.po
diff --git a/addons/mrp_subproduct/i18n/sv.po b/addons/mrp_byproduct/i18n/sv.po
index 23a980d1999..23a980d1999 100644
--- a/addons/mrp_subproduct/i18n/sv.po
+++ b/addons/mrp_byproduct/i18n/sv.po
diff --git a/addons/mrp_subproduct/i18n/tlh.po b/addons/mrp_byproduct/i18n/tlh.po
index ed8b7e4818f..ed8b7e4818f 100644
--- a/addons/mrp_subproduct/i18n/tlh.po
+++ b/addons/mrp_byproduct/i18n/tlh.po
diff --git a/addons/mrp_subproduct/i18n/tr.po b/addons/mrp_byproduct/i18n/tr.po
index eac7e3e5c98..eac7e3e5c98 100644
--- a/addons/mrp_subproduct/i18n/tr.po
+++ b/addons/mrp_byproduct/i18n/tr.po
diff --git a/addons/mrp_subproduct/i18n/uk.po b/addons/mrp_byproduct/i18n/uk.po
index ae23206bb87..ae23206bb87 100644
--- a/addons/mrp_subproduct/i18n/uk.po
+++ b/addons/mrp_byproduct/i18n/uk.po
diff --git a/addons/mrp_subproduct/i18n/vi.po b/addons/mrp_byproduct/i18n/vi.po
index 24eb28359b9..24eb28359b9 100644
--- a/addons/mrp_subproduct/i18n/vi.po
+++ b/addons/mrp_byproduct/i18n/vi.po
diff --git a/addons/mrp_subproduct/i18n/zh_CN.po b/addons/mrp_byproduct/i18n/zh_CN.po
index 9a2adfa33c8..9a2adfa33c8 100644
--- a/addons/mrp_subproduct/i18n/zh_CN.po
+++ b/addons/mrp_byproduct/i18n/zh_CN.po
diff --git a/addons/mrp_subproduct/i18n/zh_TW.po b/addons/mrp_byproduct/i18n/zh_TW.po
index d0df115fc17..d0df115fc17 100644
--- a/addons/mrp_subproduct/i18n/zh_TW.po
+++ b/addons/mrp_byproduct/i18n/zh_TW.po
diff --git a/addons/mrp_subproduct/mrp_subproduct.py b/addons/mrp_byproduct/mrp_byproduct.py
index 1475ed091e7..9caf626834a 100644
--- a/addons/mrp_subproduct/mrp_subproduct.py
+++ b/addons/mrp_byproduct/mrp_byproduct.py
@@ -31,10 +31,10 @@ class mrp_subproduct(osv.osv):
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
- 'subproduct_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Quantity Type', required=True, help="Define how the quantity of subproducts will be set on the production orders using this BoM.\
- 'Fixed' depicts a situation where the quantity of created subproduct is always equal to the quantity set on the BoM, regardless of how many are created in the production order.\
+ 'subproduct_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Quantity Type', required=True, help="Define how the quantity of byproducts will be set on the production orders using this BoM.\
+ 'Fixed' depicts a situation where the quantity of created byproduct is always equal to the quantity set on the BoM, regardless of how many are created in the production order.\
By opposition, 'Variable' means that the quantity will be computed as\
- '(quantity of subproduct set on the BoM / quantity of manufactured product set on the BoM * quantity of manufactured product in the production order.)'"),
+ '(quantity of byproduct set on the BoM / quantity of manufactured product set on the BoM * quantity of manufactured product in the production order.)'"),
'bom_id': fields.many2one('mrp.bom', 'BoM'),
}
_defaults={
@@ -71,7 +71,7 @@ class mrp_bom(osv.osv):
_inherit='mrp.bom'
_columns={
- 'sub_products':fields.one2many('mrp.subproduct', 'bom_id', 'sub_products'),
+ 'sub_products':fields.one2many('mrp.subproduct', 'bom_id', 'Byproducts'),
}
mrp_bom()
@@ -118,7 +118,7 @@ class mrp_production(osv.osv):
def _get_subproduct_factor(self, cr, uid, production_id, move_id=None, context=None):
"""Compute the factor to compute the qty of procucts to produce for the given production_id. By default,
it's always equal to the quantity encoded in the production order or the production wizard, but with
- the module mrp_subproduct installed it can differ for subproducts having type 'variable'.
+ the module mrp_byproduct installed it can differ for byproducts having type 'variable'.
:param production_id: ID of the mrp.order
:param move_id: ID of the stock move that needs to be produced. Identify the product to produce.
:return: The factor to apply to the quantity that we should produce for the given production order and stock move.
diff --git a/addons/mrp_subproduct/mrp_subproduct_view.xml b/addons/mrp_byproduct/mrp_byproduct_view.xml
index b9e8fcc41ed..32e8a696369 100644
--- a/addons/mrp_subproduct/mrp_subproduct_view.xml
+++ b/addons/mrp_byproduct/mrp_byproduct_view.xml
@@ -7,15 +7,15 @@
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<notebook position="inside">
- <page string="Sub Products" position="inside">
+ <page string="Byproducts" position="inside">
<field name="sub_products">
- <tree string="sub products" editable="top">
+ <tree string="Byproducts" editable="top">
<field name="product_id" on_change="onchange_product_id(product_id)"/>
<field name="product_uom" on_change="onchange_uom(product_id, product_uom)" groups="product.group_uom"/>
<field name="product_qty"/>
<field name="subproduct_type"/>
</tree>
- <form string="Sub Products">
+ <form string="Byproducts">
<field name="product_id" on_change="onchange_product_id(product_id)"/>
<field name="product_uom" on_change="onchange_uom(product_id, product_uom)" groups="product.group_uom"/>
<field name="product_qty"/>
diff --git a/addons/mrp_subproduct/security/ir.model.access.csv b/addons/mrp_byproduct/security/ir.model.access.csv
index e91c8158d19..e91c8158d19 100644
--- a/addons/mrp_subproduct/security/ir.model.access.csv
+++ b/addons/mrp_byproduct/security/ir.model.access.csv
diff --git a/addons/mrp_subproduct/test/mrp_subproduct.yml b/addons/mrp_byproduct/test/mrp_byproduct.yml
index 99da9f22baf..99da9f22baf 100644
--- a/addons/mrp_subproduct/test/mrp_subproduct.yml
+++ b/addons/mrp_byproduct/test/mrp_byproduct.yml
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 9f6671c3b2b..90330c4c988 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -87,11 +87,11 @@ class mrp_production_workcenter_line(osv.osv):
_columns = {
'state': fields.selection([('draft','Draft'),('cancel','Cancelled'),('pause','Pending'),('startworking', 'In Progress'),('done','Finished')],'Status', readonly=True,
- help="* When a work order is created it is set in 'Draft' state.\n" \
- "* When user sets work order in start mode that time it will be set in 'In Progress' state.\n" \
- "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' state.\n" \
- "* When the user cancels the work order it will be set in 'Canceled' state.\n" \
- "* When order is completely processed that time it is set in 'Finished' state."),
+ help="* When a work order is created it is set in 'Draft' status.\n" \
+ "* When user sets work order in start mode that time it will be set in 'In Progress' status.\n" \
+ "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' status.\n" \
+ "* When the user cancels the work order it will be set in 'Canceled' status.\n" \
+ "* When order is completely processed that time it is set in 'Finished' status."),
'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'),
'date_planned': fields.datetime('Scheduled Date', select=True),
'date_planned_end': fields.function(_get_date_end, string='End Date', type='datetime'),
diff --git a/addons/mrp_repair/i18n/zh_CN.po b/addons/mrp_repair/i18n/zh_CN.po
index 916150fa11d..c3dec3709ee 100644
--- a/addons/mrp_repair/i18n/zh_CN.po
+++ b/addons/mrp_repair/i18n/zh_CN.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:36+0000\n"
-"PO-Revision-Date: 2012-05-10 17:43+0000\n"
-"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
+"PO-Revision-Date: 2012-10-25 16:34+0000\n"
+"Last-Translator: ccdos <Unknown>\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-10-19 05:25+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -178,7 +178,7 @@ msgstr "警告!"
#. module: mrp_repair
#: report:repair.order:0
msgid "Tax"
-msgstr ""
+msgstr "税"
#. module: mrp_repair
#: view:mrp.repair:0
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index c1ac8f809ce..bc9b9413c65 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -131,16 +131,16 @@ class mrp_repair(osv.osv):
('invoice_except','Invoice Exception'),
('done','Repaired')
], 'Status', readonly=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed repair order. \
- \n* The \'Confirmed\' state is used when a user confirms the repair order. \
- \n* The \'Ready to Repair\' state is used to start to repairing, user can start repairing only after repair order is confirmed. \
- \n* The \'To be Invoiced\' state is used to generate the invoice before or after repairing done. \
- \n* The \'Done\' state is set when repairing is completed.\
- \n* The \'Cancelled\' state is used when user cancel repair order.'),
+ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed repair order. \
+ \n* The \'Confirmed\' status is used when a user confirms the repair order. \
+ \n* The \'Ready to Repair\' status is used to start to repairing, user can start repairing only after repair order is confirmed. \
+ \n* The \'To be Invoiced\' status is used to generate the invoice before or after repairing done. \
+ \n* The \'Done\' status is set when repairing is completed.\
+ \n* The \'Cancelled\' status is used when user cancel repair order.'),
'location_id': fields.many2one('stock.location', 'Current Location', select=True, readonly=True, states={'draft':[('readonly',False)]}),
'location_dest_id': fields.many2one('stock.location', 'Delivery Location', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('stock.move', 'Move',required=True, domain="[('product_id','=',product_id)]", readonly=True, states={'draft':[('readonly',False)]}),
- 'guarantee_limit': fields.date('Guarantee limit', help="The guarantee limit is computed as: last move date + warranty defined on selected product. If the current date is below the guarantee limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
+ 'guarantee_limit': fields.date('Warranty Expiration', help="The warranty expiration limit is computed as: last move date + warranty defined on selected product. If the current date is below the warranty expiration limit, each operation and fee you will add will be set as 'not to invoiced' by default. Note that you can change manually afterwards."),
'operations' : fields.one2many('mrp.repair.line', 'repair_id', 'Operation Lines', readonly=True, states={'draft':[('readonly',False)]}),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', help='Pricelist of the selected partner.'),
'partner_invoice_id':fields.many2one('res.partner', 'Invoicing Address'),
@@ -707,10 +707,10 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
('confirmed','Confirmed'),
('done','Done'),
('cancel','Cancelled')], 'Status', required=True, readonly=True,
- help=' * The \'Draft\' state is set automatically as draft when repair order in draft state. \
- \n* The \'Confirmed\' state is set automatically as confirm when repair order in confirm state. \
- \n* The \'Done\' state is set automatically when repair order is completed.\
- \n* The \'Cancelled\' state is set automatically when user cancel repair order.'),
+ help=' * The \'Draft\' status is set automatically as draft when repair order in draft status. \
+ \n* The \'Confirmed\' status is set automatically as confirm when repair order in confirm status. \
+ \n* The \'Done\' status is set automatically when repair order is completed.\
+ \n* The \'Cancelled\' status is set automatically when user cancel repair order.'),
}
_defaults = {
'state': lambda *a: 'draft',
diff --git a/addons/pad/pad.py b/addons/pad/pad.py
index 0cbb6107979..c7641540a0a 100644
--- a/addons/pad/pad.py
+++ b/addons/pad/pad.py
@@ -86,7 +86,7 @@ class pad_common(osv.osv_memory):
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
- for k,v in self._all_columns:
+ for k, v in self._all_columns.iteritems():
field = v.column
if hasattr(field,'pad_content_field'):
pad = self.pad_generate_url(cr, uid, context)
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 788c301a04f..f219f4111ca 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -66,7 +66,7 @@ class pos_config(osv.osv):
'iface_vkeyboard' : fields.boolean('Virtual KeyBoard Interface'),
'iface_print_via_proxy' : fields.boolean('Print via Proxy'),
- 'state' : fields.selection(POS_CONFIG_STATE, 'State', required=True, readonly=True),
+ 'state' : fields.selection(POS_CONFIG_STATE, 'Status', required=True, readonly=True),
'sequence_id' : fields.many2one('ir.sequence', 'Order IDs Sequence', readonly=True,
help="This sequence is automatically created by OpenERP but you can change it "\
"to customize the reference numbers of your orders."),
@@ -197,7 +197,7 @@ class pos_session(osv.osv):
'start_at' : fields.datetime('Opening Date', readonly=True),
'stop_at' : fields.datetime('Closing Date', readonly=True),
- 'state' : fields.selection(POS_SESSION_STATE, 'State',
+ 'state' : fields.selection(POS_SESSION_STATE, 'Status',
required=True, readonly=True,
select=1),
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 66b7e3b6eb5..1ee55f736aa 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -1039,7 +1039,7 @@
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
- <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
</group>
</search>
diff --git a/addons/point_of_sale/report/pos_payment_report_user.rml b/addons/point_of_sale/report/pos_payment_report_user.rml
index 1d89d28c5f9..3671408b760 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.rml
+++ b/addons/point_of_sale/report/pos_payment_report_user.rml
@@ -194,7 +194,7 @@
<para style="terp_tblheader_General_Right">Total:</para>
</td>
<td>
- <para style="terp_default_Right_9">[[ formatLang(pos_payment_user_total(data['form'], currency_obj = company.currency_id)) or removeParentNode('blockTable')]]</para>
+ <para style="terp_default_Right_9">[[ formatLang(pos_payment_user_total(data['form']), currency_obj = company.currency_id) or removeParentNode('blockTable')]]</para>
</td>
</tr>
</blockTable>
diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js
index 1ad03c5ead1..bd174b12fda 100644
--- a/addons/point_of_sale/static/src/js/screens.js
+++ b/addons/point_of_sale/static/src/js/screens.js
@@ -938,10 +938,11 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this.renderElement();
},
addPaymentLine: function(newPaymentLine) {
+ var self = this;
var x = new module.PaymentlineWidget(null, {
payment_line: newPaymentLine
});
- x.on_delete.add(_.bind(this.deleteLine, this, x));
+ x.on('delete_payment_line', self, self.deleteLine);
x.appendTo(this.$('#paymentlines'));
},
renderElement: function() {
diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js
index 47a527a010d..28ab79c65b2 100644
--- a/addons/point_of_sale/static/src/js/widgets.js
+++ b/addons/point_of_sale/static/src/js/widgets.js
@@ -142,7 +142,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
},
click_handler: function() {
this.order.selectLine(this.model);
- this.on_selected();
+ this.trigger('order_line_selected');
},
renderElement: function() {
this._super();
@@ -153,10 +153,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
},
refresh: function(){
this.renderElement();
- this.on_refresh();
+ this.trigger('order_line_refreshed');
},
- on_selected: function() {},
- on_refresh: function(){},
});
module.OrderWidget = module.PosBaseWidget.extend({
@@ -230,8 +228,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
model: orderLine,
order: this.pos.get('selectedOrder'),
});
- line.on_selected.add(_.bind(this.update_numpad, this));
- line.on_refresh.add(_.bind(this.update_summary, this));
+ line.on('order_line_selected', self, self.update_numpad);
+ line.on('order_line_refreshed', self, self.update_summary);
line.appendTo($content);
}, this));
this.update_numpad();
@@ -303,7 +301,6 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.payment_line = options.payment_line;
this.payment_line.bind('change', this.changedAmount, this);
},
- on_delete: function() {},
changeAmount: function(event) {
var newAmount;
newAmount = event.currentTarget.value;
@@ -317,10 +314,13 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.renderElement();
},
renderElement: function() {
+ var self = this;
this.name = this.payment_line.get_cashregister().get('journal_id')[1];
this._super();
this.$('input').keyup(_.bind(this.changeAmount, this));
- this.$('.delete-payment-line').click(this.on_delete);
+ this.$('.delete-payment-line').click(function() {
+ self.trigger('delete_payment_line');
+ });
},
});
@@ -1055,8 +1055,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.pos.barcode_reader.disconnect();
return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_client_pos_menu']], ['res_id']).pipe(
_.bind(function(res) {
- return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(result) {
- var action = result.result;
+ return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(action) {
action.context = _.extend(action.context || {}, {'cancel_action': {type: 'ir.actions.client', tag: 'reload'}});
//self.destroy();
this.do_action(action);
diff --git a/addons/point_of_sale/wizard/pos_session_opening.py b/addons/point_of_sale/wizard/pos_session_opening.py
index 4e7965f8e97..7c88986169e 100644
--- a/addons/point_of_sale/wizard/pos_session_opening.py
+++ b/addons/point_of_sale/wizard/pos_session_opening.py
@@ -16,8 +16,8 @@ class pos_session_opening(osv.osv_memory):
'pos_state' : fields.related('pos_session_id', 'state',
type='selection',
selection=pos_session.POS_SESSION_STATE,
- string='Session State', readonly=True),
- 'pos_state_str' : fields.char('State', 32, readonly=True),
+ string='Session Status', readonly=True),
+ 'pos_state_str' : fields.char('Status', 32, readonly=True),
'show_config' : fields.boolean('Show Config', readonly=True),
'pos_session_name' : fields.related('pos_session_id', 'name',
type='char', size=64, readonly=True),
diff --git a/addons/portal_claim/security/portal_security.xml b/addons/portal_claim/security/portal_security.xml
index a88c8ce7835..e177b07eab9 100644
--- a/addons/portal_claim/security/portal_security.xml
+++ b/addons/portal_claim/security/portal_security.xml
@@ -5,7 +5,7 @@
<record id="portal_stock_picking_user_rule" model="ir.rule">
<field name="name">Portal Personal Claims</field>
<field ref="crm_claim.model_crm_claim" name="model_id"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in', [user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
diff --git a/addons/portal_project/security/portal_security.xml b/addons/portal_project/security/portal_security.xml
index 316fb1b4a15..1247d25365a 100644
--- a/addons/portal_project/security/portal_security.xml
+++ b/addons/portal_project/security/portal_security.xml
@@ -5,7 +5,7 @@
<record id="portal_task_rule" model="ir.rule">
<field name="name">Portal Personal Task</field>
<field ref="project.model_project_task" name="model_id"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in', [user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
diff --git a/addons/portal_project_issue/security/portal_security.xml b/addons/portal_project_issue/security/portal_security.xml
index d58e160051b..9527f1f9628 100644
--- a/addons/portal_project_issue/security/portal_security.xml
+++ b/addons/portal_project_issue/security/portal_security.xml
@@ -5,7 +5,7 @@
<record id="portal_issue_rule" model="ir.rule">
<field name="name">Portal Personal Issues</field>
<field ref="project_issue.model_project_issue" name="model_id"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in', [user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
diff --git a/addons/portal_sale/portal_sale_view.xml b/addons/portal_sale/portal_sale_view.xml
index 5786fbc52ad..6b25d87b791 100644
--- a/addons/portal_sale/portal_sale_view.xml
+++ b/addons/portal_sale/portal_sale_view.xml
@@ -13,7 +13,7 @@
<field name="view_mode">tree,form,calendar,graph</field>
<field name="context">{"search_default_draft":1}</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
- <field name="help">You dont have any quotation.</field>
+ <field name="help">You don't have any quotation.</field>
</record>
<record id="action_order_form" model="ir.actions.act_window">
@@ -23,7 +23,7 @@
<field name="view_mode">tree,form,calendar,graph</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
<field name="context">{"search_default_sales":1}</field>
- <field name="help">You dont have any sale order.</field>
+ <field name="help">You don't have any sale order.</field>
</record>
<record id="action_picking_tree" model="ir.actions.act_window">
@@ -34,7 +34,7 @@
<field name="domain">[('type','=','out')]</field>
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address'}</field>
<field name="search_view_id" ref="stock.view_picking_out_search"/>
- <field name="help">You dont have any delivery order.</field>
+ <field name="help">You don't have any delivery order.</field>
</record>
<record id="product_normal_action" model="ir.actions.act_window">
@@ -55,7 +55,7 @@
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
- <field name="help">You dont have any invoice.</field>
+ <field name="help">You don't have any invoice.</field>
</record>
<record id="action_vendor_receipt" model="ir.actions.act_window">
@@ -65,7 +65,7 @@
<field name="context">{'type':'receipt'}</field>
<field name="search_view_id" ref="account_voucher.view_voucher_filter_customer_pay"/>
<field name="target">current</field>
- <field name="help">You dont have any payment.</field>
+ <field name="help">You don't have any payment.</field>
</record>
<menuitem name="Quotations" id="portal_quotations" parent="portal.portal_orders"
diff --git a/addons/portal_sale/security/portal_security.xml b/addons/portal_sale/security/portal_security.xml
index d27317d0305..c4bf6131ba1 100644
--- a/addons/portal_sale/security/portal_security.xml
+++ b/addons/portal_sale/security/portal_security.xml
@@ -6,42 +6,42 @@
<record id="portal_sale_order_user_rule" model="ir.rule">
<field name="name">Portal Personal Quotations/Sales Orders</field>
<field name="model_id" ref="sale.model_sale_order"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
<record id="portal_stock_picking_user_rule" model="ir.rule">
<field name="name">Portal Personal Delivery Orders</field>
<field name="model_id" ref="stock.model_stock_picking"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
<record id="portal_stock_picking_user_rule" model="ir.rule">
<field name="name">Portal Personal Delivery Orders Out</field>
<field name="model_id" ref="stock.model_stock_picking_out"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
<record id="portal_account_invoice_user_rule" model="ir.rule">
<field name="name">Portal Personal Account Invoices</field>
<field name="model_id" ref="account.model_account_invoice"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
<record id="portal_personal_payment" model="ir.rule">
<field name="name">Portal Personal Payments</field>
<field name="model_id" ref="account_voucher.model_account_voucher"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
<record id="portal_personal_contact" model="ir.rule">
<field name="name">Portal Personal Contacts</field>
<field name="model_id" ref="base.model_res_partner"/>
- <field name="domain_force">[('message_follower_ids','in',user.partner_id.id)]</field>
+ <field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record>
diff --git a/addons/process/static/src/js/process.js b/addons/process/static/src/js/process.js
index c214dbb0fdf..2405f6d2aa5 100644
--- a/addons/process/static/src/js/process.js
+++ b/addons/process/static/src/js/process.js
@@ -176,6 +176,11 @@ instance.web.ViewManager.include({
var notes = new_notes.substring(0,60) +'..';
}
r.text(nodes.x+60, nodes.y+30, (notes || new_notes)).attr({"title":nodes.notes,"cursor": "default"});
+ r['image']('/web/static/src/img/icons/gtk-info.png', nodes.x, nodes.y+75, 16, 16)
+ .attr({"cursor": "pointer", "title": "Help"})
+ .click(function() {
+ window.open(nodes.url || "http://doc.openerp.com/v6.1/index.php?model=" + nodes.model);
+ });
if(nodes.menu) {
r['image']('/web/static/src/img/icons/gtk-jump-to.png', nodes.x+100, nodes.y+75, 16, 16)
.attr({"cursor": "pointer", "title": nodes.menu.name})
diff --git a/addons/process/static/src/xml/process.xml b/addons/process/static/src/xml/process.xml
index b1a39aa6ce8..d6229b686f3 100644
--- a/addons/process/static/src/xml/process.xml
+++ b/addons/process/static/src/xml/process.xml
@@ -16,7 +16,7 @@
<div class="oe_view_manager_header" style="padding: 8px;">
<div class="oe_header_row">
<h2 class="oe_view_title">
- <span class="oe_view_title_text oe_breadcrumb_title"><t t-esc="action.name"/> (<t t-esc="action.res_model"/>)</span>
+ <span class="oe_view_title_text oe_breadcrumb_title"><t t-esc="action.name"/> (<a t-attf-href="http://doc.openerp.com/v6.1/index.php?model=#{action.res_model}"><t t-esc="action.res_model"/></a>)</span>
</h2>
</div>
</div>
@@ -25,7 +25,7 @@
</tr>
<tr>
<td style="padding-left:10px;">
- <p><t t-esc="process_help"/></p>
+ <p><t t-raw="process_help"/></p>
</td>
</tr>
<tr>
diff --git a/addons/procurement/i18n/ru.po b/addons/procurement/i18n/ru.po
index b4541872669..be374ec29cd 100644
--- a/addons/procurement/i18n/ru.po
+++ b/addons/procurement/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-08-30 18:15+0000\n"
+"PO-Revision-Date: 2012-10-24 16:47+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:32+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: procurement
#: view:make.procurement:0
@@ -51,7 +51,7 @@ msgstr "Группировать по ..."
#. module: procurement
#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
msgid "Draft procurement of the product and location of that orderpoint"
-msgstr "Черновик закупки ТМЦ и положение точки заказа"
+msgstr "Черновик снабжения ТМЦ и положение точки заказа"
#. module: procurement
#: code:addons/procurement/procurement.py:291
@@ -380,8 +380,7 @@ msgstr "Количество"
#: code:addons/procurement/procurement.py:379
#, python-format
msgid "Not enough stock and no minimum orderpoint rule defined."
-msgstr ""
-"Не достаточный запас и не определено правило минимальной точки заказа."
+msgstr "Не достаточен запас и нет правила минимума точки заказа."
#. module: procurement
#: code:addons/procurement/procurement.py:137
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index b21cef30773..55a291bd3c2 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -113,8 +113,8 @@ class procurement_order(osv.osv):
('ready','Ready'),
('done','Done'),
('waiting','Waiting')], 'Status', required=True,
- help='When a procurement is created the state is set to \'Draft\'.\n If the procurement is confirmed, the state is set to \'Confirmed\'.\
- \nAfter confirming the state is set to \'Running\'.\n If any exception arises in the order then the state is set to \'Exception\'.\n Once the exception is removed the state becomes \'Ready\'.\n It is in \'Waiting\'. state when the procurement is waiting for another one to finish.'),
+ help='When a procurement is created the status is set to \'Draft\'.\n If the procurement is confirmed, the status is set to \'Confirmed\'.\
+ \nAfter confirming the status is set to \'Running\'.\n If any exception arises in the order then the status is set to \'Exception\'.\n Once the exception is removed the status becomes \'Ready\'.\n It is in \'Waiting\'. status when the procurement is waiting for another one to finish.'),
'note': fields.text('Note'),
'company_id': fields.many2one('res.company','Company',required=True),
}
diff --git a/addons/procurement/wizard/schedulers_all_view.xml b/addons/procurement/wizard/schedulers_all_view.xml
index 2e72dfdbadc..321f05bb223 100644
--- a/addons/procurement/wizard/schedulers_all_view.xml
+++ b/addons/procurement/wizard/schedulers_all_view.xml
@@ -2,10 +2,10 @@
<openerp>
<data>
- <!-- Compute Schedulers -->
+ <!-- Run Schedulers -->
<record id="view_compute_schedulers_wizard" model="ir.ui.view">
- <field name="name">Compute Schedulers</field>
+ <field name="name">Run Schedulers</field>
<field name="model">procurement.order.compute.all</field>
<field name="arch" type="xml">
<form string="Scheduler Parameters" version="7.0">
@@ -13,7 +13,7 @@
<field name="automatic"/>
</group>
<footer>
- <button name="procure_calculation" string="Compute Schedulers" type="object" class="oe_highlight" />
+ <button name="procure_calculation" string="Run Schedulers" type="object" class="oe_highlight" />
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
@@ -21,7 +21,7 @@
</field>
</record>
- <act_window name="Compute Schedulers"
+ <act_window name="Run Schedulers"
res_model="procurement.order.compute.all"
src_model="procurement.order"
view_mode="form"
diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py
index 3bc6e6d6814..f5c69c7acf7 100644
--- a/addons/product/pricelist.py
+++ b/addons/product/pricelist.py
@@ -410,7 +410,7 @@ class product_pricelist_item(osv.osv):
'min_quantity': fields.integer('Min. Quantity', required=True, help="The rule only applies if the partner buys/sells equal to or more than this quantity."),
'sequence': fields.integer('Sequence', required=True, help="Gives the order in which the pricelist items will be checked. The evaluation gives highest priority to lowest sequence and stops as soon as a matching item is found."),
'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1, help="The mode for computing the price for this rule."),
- 'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'),
+ 'base_pricelist_id': fields.many2one('product.pricelist', 'Other Pricelist'),
'price_surcharge': fields.float('Price Surcharge',
digits_compute= dp.get_precision('Product Price'), help='Specify the fixed amount to add or substract(if negative) to the amount calculated with the discount.'),
diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml
index 01cb4dc54eb..a1b996b891b 100644
--- a/addons/product/pricelist_view.xml
+++ b/addons/product/pricelist_view.xml
@@ -92,7 +92,7 @@
</group>
<group col="4" string="Price Computation">
<field name="base"/>
- <field name="base_pricelist_id" attrs="{'required': [('base','=', -1)], 'readonly': [('base','!=', -1)]}"/>
+ <field name="base_pricelist_id" attrs="{'invisible':[('base', '!=', -1)],'required': [('base','=', -1)], 'readonly': [('base','!=', -1)]}"/>
</group>
<group col="6" colspan="5">
<label string="New Price ="/>
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index b7fbcd560f7..74b2b868f7a 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -219,7 +219,7 @@
Click to define a new product.
</p><p>
You must define a product for everything you buy or sell,
- wether it's a physical product, a consumable or service.
+ whether it's a physical product, a consumable or service.
</p>
</field>
</record>
@@ -236,7 +236,7 @@
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
- You must define a product for everything you sell, wether it's
+ You must define a product for everything you sell, whether it's
a physical product, a consumable or a service you offer to
customers.
</p><p>
@@ -284,7 +284,7 @@
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
- You must define a product for everything you purchase, wheter
+ You must define a product for everything you purchase, whether
it's a physical product, a consumable or services you buy to
subcontractants.
</p><p>
diff --git a/addons/product_expiry/i18n/ru.po b/addons/product_expiry/i18n/ru.po
index 86ccf672713..186124080e5 100644
--- a/addons/product_expiry/i18n/ru.po
+++ b/addons/product_expiry/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2010-11-22 07:21+0000\n"
+"PO-Revision-Date: 2012-10-24 05:12+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:28+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-25 05:35+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: product_expiry
#: model:ir.model,name:product_expiry.model_stock_production_lot
@@ -162,7 +162,7 @@ msgstr ""
#. module: product_expiry
#: field:product.product,alert_time:0
msgid "Product Alert Time"
-msgstr ""
+msgstr "Время оповещения товара"
#~ msgid ""
#~ "Error: The default UOM and the purchase UOM must be in the same category."
diff --git a/addons/project/project.py b/addons/project/project.py
index 9a022fffa90..3b0057c67b7 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -721,11 +721,11 @@ class task(base_stage, osv.osv):
'stage_id': fields.many2one('project.task.type', 'Stage',
domain="['&', ('fold', '=', False), '|', ('project_ids', '=', project_id), ('case_default', '=', True)]"),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=_TASK_STATE, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=_TASK_STATE, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'categ_ids': fields.many2many('project.category', string='Tags'),
'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State',
@@ -777,7 +777,6 @@ class task(base_stage, osv.osv):
_defaults = {
'stage_id': _get_default_stage_id,
'project_id': _get_default_project_id,
- 'state': 'draft',
'kanban_state': 'normal',
'priority': '2',
'progress': 0,
@@ -1030,7 +1029,6 @@ class task(base_stage, osv.osv):
'user_id': delegate_data['user_id'] and delegate_data['user_id'][0] or False,
'planned_hours': delegate_data['planned_hours'] or 0.0,
'parent_ids': [(6, 0, [task.id])],
- 'state': 'draft',
'description': delegate_data['new_task_description'] or '',
'child_ids': [],
'work_ids': []
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index d7aaee96f2f..0de5e1773b1 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -378,20 +378,18 @@
<field name="arch" type="xml">
<form string="Project" version="7.0">
<header>
- <span groups="base.group_user">
- <!--
- <button name="do_open" string="Start Task" type="object"
- states="draft,pending" class="oe_highlight"/>
- <button name="do_draft" string="Draft" type="object"
- states="cancel,done"/>
- -->
- <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
- states="cancelled,done" context="{'button_reactivate':True}"/>
- <button name="action_close" string="Done" type="object"
- states="draft,open,pending"/>
- <button name="do_cancel" string="Cancel" type="object"
- states="draft,open,pending"/>
- </span>
+ <!--
+ <button name="do_open" string="Start Task" type="object"
+ states="draft,pending" class="oe_highlight"/>
+ <button name="do_draft" string="Draft" type="object"
+ states="cancel,done"/>
+ -->
+ <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
+ states="cancelled,done" context="{'button_reactivate':True}" groups="base.group_user"/>
+ <button name="action_close" string="Done" type="object"
+ states="draft,open,pending" groups="base.group_user"/>
+ <button name="do_cancel" string="Cancel" type="object"
+ states="draft,open,pending" groups="base.group_user"/>
<field name="stage_id" widget="statusbar" clickable="True"/>
</header>
<sheet string="Task">
@@ -417,10 +415,10 @@
<field name="description" attrs="{'readonly':[('state','=','done')]}" placeholder="Add a Description..."/>
<field name="work_ids" groups="project.group_tasks_work_on_tasks">
<tree string="Task Work" editable="top">
- <field name="date"/>
<field name="name"/>
- <field name="user_id"/>
<field name="hours" widget="float_time" sum="Spent Hours"/>
+ <field name="date"/>
+ <field name="user_id"/>
</tree>
</field>
<group>
@@ -788,7 +786,6 @@
<menuitem action="open_task_type_form" name="Task Stages" id="menu_task_types_view" parent="base.menu_project_config_project" sequence="2"/>
<menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1"/>
- <act_window context="{'search_default_user_id': active_id, 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
<record id="task_company" model="ir.ui.view">
<field name="name">res.company.task.config</field>
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index 6c86fbbb198..1467ce55fab 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -77,7 +77,7 @@
<field name="inherit_id" ref="project.view_task_tree2" />
<field name="arch" type="xml">
<field name="remaining_hours" position="after">
- <field string="Timebox" name="timebox_id" invisible=" not context.get('gtd', False)"/>
+ <field string="Timeframe" name="timebox_id" invisible=" not context.get('gtd', False)"/>
<field name="context_id" invisible="not context.get('context_show', False)" widget="selection"/>
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks" invisible="not context.get('set_visible',False)"/>
</field>
@@ -91,7 +91,7 @@
<field name="arch" type="xml">
<field name="progress" position="after">
<field name="context_id" widget="selection" options='{"no_open": True}'/>
- <field name="timebox_id" widget="selection" options='{"no_open": True}'/>
+ <field name="timebox_id" widget="selection" options='{"no_open": True}' string="Timeframe"/>
</field>
</field>
</record>
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 9e434078d2f..770c226fc2f 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -227,11 +227,11 @@ class project_issue(base_stage, osv.osv):
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Description'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=_ISSUE_STATE, string="State", readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
- If the case is in progress the state is set to \'Open\'.\
- When the case is over, the state is set to \'Done\'.\
- If the case needs to be reviewed then the state is \
+ selection=_ISSUE_STATE, string="Status", readonly=True,
+ help='The status is set to \'Draft\', when a case is created.\
+ If the case is in progress the status is set to \'Open\'.\
+ When the case is over, the status is set to \'Done\'.\
+ If the case needs to be reviewed then the status is \
set to \'Pending\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email.", select=1),
'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
@@ -275,7 +275,6 @@ class project_issue(base_stage, osv.osv):
'active': 1,
'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c),
'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
- 'state': 'draft',
'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c),
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
@@ -332,7 +331,7 @@ class project_issue(base_stage, osv.osv):
})
vals = {
'task_id': new_task_id,
- 'state':'pending'
+ 'stage_id': self.stage_find(cr, uid, [bug], bug.project_id.id, [('state', '=', 'pending')], context=context),
}
self.convert_to_task_send_note(cr, uid, [bug.id], context=context)
case_obj.write(cr, uid, [bug.id], vals, context=context)
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 818d4e6f556..6ff5388ce4a 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -95,14 +95,12 @@
<field name="arch" type="xml">
<form string="Issue" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="case_close" string="Done" type="object"
- states="open"/>
- <button name="case_close" string="Done" type="object"
- states="draft,pending"/>
- <button name="case_cancel" string="Cancel" type="object"
- states="draft,open,pending"/>
- </span>
+ <button name="case_close" string="Done" type="object"
+ states="open" groups="base.group_user"/>
+ <button name="case_close" string="Done" type="object"
+ states="draft,pending" groups="base.group_user"/>
+ <button name="case_cancel" string="Cancel" type="object"
+ states="draft,open,pending" groups="base.group_user"/>
<field name="stage_id" widget="statusbar" clickable="True"/>
</header>
<sheet string="Issue">
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index b19238200e5..db6c532d503 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -116,8 +116,8 @@ class project_phase(osv.osv):
'user_ids': fields.one2many('project.user.allocation', 'phase_id', "Assigned Users",states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]},
help="The resources on the project can be computed automatically by the scheduler."),
'state': fields.selection([('draft', 'New'), ('cancelled', 'Cancelled'),('open', 'In Progress'), ('pending', 'Pending'), ('done', 'Done')], 'Status', readonly=True, required=True,
- help='If the phase is created the state \'Draft\'.\n If the phase is started, the state becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' state.\
- \n If the phase is over, the states is set to \'Done\'.'),
+ help='If the phase is created the status \'Draft\'.\n If the phase is started, the status becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' status.\
+ \n If the phase is over, the status is set to \'Done\'.'),
'progress': fields.function(_compute_progress, string='Progress', help="Computed based on related tasks"),
}
_defaults = {
diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py
index c6513e75942..fe4b848f522 100644
--- a/addons/project_timesheet/project_timesheet.py
+++ b/addons/project_timesheet/project_timesheet.py
@@ -115,7 +115,7 @@ class project_work(osv.osv):
if not context.get('no_analytic_entry',False):
task_obj = task_obj.browse(cr, uid, vals['task_id'])
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
- vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name']) or '/')
+ vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name'] or '/'))
vals_line['user_id'] = vals['user_id']
vals_line['product_id'] = result['product_id']
vals_line['date'] = vals['date'][:10]
@@ -172,7 +172,7 @@ class project_work(osv.osv):
vals_line = {}
if 'name' in vals:
- vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name']) or '/')
+ vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name'] or '/'))
if 'user_id' in vals:
vals_line['user_id'] = vals['user_id']
if 'date' in vals:
@@ -272,6 +272,16 @@ res_partner()
class account_analytic_line(osv.osv):
_inherit = "account.analytic.line"
+ def get_product(self, cr, uid, context=None):
+ emp_obj = self.pool.get('hr.employee')
+ emp_ids = emp_obj.search(cr, uid, [('user_id', '=', uid)], context=context)
+ if emp_ids:
+ employee = emp_obj.browse(cr, uid, emp_ids, context=context)[0]
+ if employee.product_id:return employee.product_id.id
+ return False
+
+ _defaults = {'product_id': get_product,}
+
def on_change_account_id(self, cr, uid, ids, account_id):
res = {}
if not account_id:
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index c7d6ab15ab4..a4e2a38a3cc 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -71,7 +71,7 @@
<field name="inherit_id" ref="account.view_account_analytic_line_tree"/>
<field name="arch" type="xml">
<field name="account_id" position="replace">
- <field name="account_id" string="Analytic account/project"/>
+ <field name="account_id" string="Analytic account/project" on_change="on_change_account_id(account_id)"/>
</field>
</field>
</record>
diff --git a/addons/purchase/i18n/zh_CN.po b/addons/purchase/i18n/zh_CN.po
index 17427c72144..a596393772d 100644
--- a/addons/purchase/i18n/zh_CN.po
+++ b/addons/purchase/i18n/zh_CN.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 01:37+0100\n"
-"PO-Revision-Date: 2012-08-27 16:58+0000\n"
+"PO-Revision-Date: 2012-10-25 17:44+0000\n"
"Last-Translator: ccdos <Unknown>\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-10-19 05:08+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
@@ -746,7 +746,7 @@ msgstr "询价单"
#: code:addons/purchase/edi/purchase_order.py:139
#, python-format
msgid "EDI Pricelist (%s)"
-msgstr ""
+msgstr "EDI 价格表 (%s)"
#. module: purchase
#: selection:purchase.order,state:0
@@ -1141,7 +1141,7 @@ msgstr "计算"
#. module: purchase
#: view:stock.picking:0
msgid "Incoming Shipments Available"
-msgstr ""
+msgstr "可用的入库"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_partner_cat
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index db6ed8b80be..991a60ef835 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -152,9 +152,10 @@ class purchase_order(osv.osv):
_columns = {
'name': fields.char('Order Reference', size=64, required=True, select=True, help="Unique number of the purchase order, computed automatically when the purchase order is created."),
'origin': fields.char('Source Document', size=64,
- help="Reference of the document that generated this purchase order request."
+ help="Reference of the document that generated this purchase order request; a sale order or an internal procurement request."
),
- 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64),
+ 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64,
+ help="Reference of the sale order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."),
'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."),
'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"),
'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True),
@@ -167,7 +168,7 @@ class purchase_order(osv.osv):
'location_id': fields.many2one('stock.location', 'Destination', required=True, domain=[('usage','<>','view')]),
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, help="The pricelist sets the currency used for this purchase order. It also computes the supplier price for the selected products/quantities."),
'currency_id': fields.related('pricelist_id', 'currency_id', type="many2one", relation="res.currency", readonly=True, required=True),
- 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The state of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' state. Then the order has to be confirmed by the user, the state switch to 'Confirmed'. Then the supplier must confirm the order to change the state to 'Approved'. When the purchase order is paid and received, the state becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the state becomes in exception.", select=True),
+ 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The status of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' status. Then the order has to be confirmed by the user, the status switch to 'Confirmed'. Then the supplier must confirm the order to change the status to 'Approved'. When the purchase order is paid and received, the status becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the status becomes in exception.", select=True),
'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'approved':[('readonly',True)],'done':[('readonly',True)]}),
'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
'notes': fields.text('Terms and Conditions'),
@@ -809,10 +810,10 @@ class purchase_order_line(osv.osv):
'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',),
'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
'state': fields.selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Status', required=True, readonly=True,
- help=' * The \'Draft\' state is set automatically when purchase order in draft state. \
- \n* The \'Confirmed\' state is set automatically as confirm when purchase order in confirm state. \
- \n* The \'Done\' state is set automatically when purchase order is set as done. \
- \n* The \'Cancelled\' state is set automatically when user cancel purchase order.'),
+ help=' * The \'Draft\' status is set automatically when purchase order in draft status. \
+ \n* The \'Confirmed\' status is set automatically as confirm when purchase order in confirm status. \
+ \n* The \'Done\' status is set automatically when purchase order is set as done. \
+ \n* The \'Cancelled\' status is set automatically when user cancel purchase order.'),
'invoice_lines': fields.many2many('account.invoice.line', 'purchase_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
'invoiced': fields.boolean('Invoiced', readonly=True),
'partner_id': fields.related('order_id','partner_id',string='Partner',readonly=True,type="many2one", relation="res.partner", store=True),
@@ -889,10 +890,10 @@ class purchase_order_line(osv.osv):
account_tax = self.pool.get('account.tax')
# - check for the presence of partner_id and pricelist_id
- if not pricelist_id:
- raise osv.except_osv(_('No Pricelist !'), _('Select a price list for a supplier in the purchase form to choose a product.'))
if not partner_id:
raise osv.except_osv(_('No Partner!'), _('Select a partner in purchase order to choose a product.'))
+ if not pricelist_id:
+ raise osv.except_osv(_('No Pricelist !'), _('Select a price list in the purchase order form before choosing a product.'))
# - determine name and notes based on product in partner lang.
lang = res_partner.browse(cr, uid, partner_id).lang
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index e0eab3dd4d0..abfd9356c1d 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -82,7 +82,7 @@
action="base.action_partner_supplier_form" sequence="15"/>
<!--Inventory control-->
- <menuitem id="menu_procurement_management_inventory" name="Receive Products"
+ <menuitem id="menu_procurement_management_inventory" name="Incoming Products"
parent="base.menu_purchase_root" sequence="4"/>
<menuitem action="stock.action_picking_tree4" id="menu_action_picking_tree4" parent="menu_procurement_management_inventory"
name="Incoming Shipments" sequence="9"/>
@@ -198,7 +198,7 @@
<field name="arch" type="xml">
<form string="Purchase Order" version="7.0">
<header>
- <button name="wkf_send_rfq" states="draft" string="Send RFQ" type="object" context="{'send_rfq':True}" class="oe_highlight"/>
+ <button name="wkf_send_rfq" states="draft" string="Send Request for Quotation" type="object" context="{'send_rfq':True}" class="oe_highlight"/>
<button name="purchase_confirm" states="draft" string="Confirm Order"/>
<button name="purchase_confirm" states="sent" string="Confirm Order" class="oe_highlight"/>
<button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object" class="oe_highlight"/>
@@ -206,8 +206,8 @@
<button name="picking_ok" states="except_picking" string="Manually Corrected"/>
<button name="invoice_ok" states="except_invoice" string="Manually Corrected"/>
<button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_highlight" groups="purchase.group_purchase_manager"/>
- <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
<button name="view_picking" string="Receive Products" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}" class="oe_highlight"/>
+ <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
<button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object" />
<button name="purchase_cancel" states="draft,confirmed,sent" string="Cancel"/>
<field name="state" widget="statusbar" statusbar_visible="draft,sent,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue"}' readonly="1"/>
@@ -262,9 +262,9 @@
</group>
<div class="oe_clear"/>
<label for="notes"/>
- <field name="notes"/>
+ <field name="notes" class="oe_inline"/>
</page>
- <page string="Reception &amp; Invoicing">
+ <page string="Incoming Shipments &amp; Invoices">
<group>
<group>
<field name="dest_address_id" string="Customer Address" on_change="onchange_dest_address_id(dest_address_id)"/>
@@ -358,7 +358,7 @@
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="minimum_planned_date" invisible="context.get('quotation_only', False)"/>
<field name="origin"/>
- <field name="amount_untaxed" sum="Total Untaxed amount"/>
+ <field name="amount_untaxed" sum="Total Untaxed amount" string="Untaxed"/>
<field name="amount_total" sum="Total amount"/>
<field name="state"/>
</tree>
diff --git a/addons/purchase/report/purchase_report.py b/addons/purchase/report/purchase_report.py
index f4bd4fee425..76ffddcb85f 100644
--- a/addons/purchase/report/purchase_report.py
+++ b/addons/purchase/report/purchase_report.py
@@ -40,7 +40,7 @@ class purchase_report(osv.osv):
('except_picking', 'Shipping Exception'),
('except_invoice', 'Invoice Exception'),
('done', 'Done'),
- ('cancel', 'Cancelled')],'Order State', readonly=True),
+ ('cancel', 'Cancelled')],'Order Status', readonly=True),
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', readonly=True),
'location_id': fields.many2one('stock.location', 'Destination', readonly=True),
diff --git a/addons/purchase_double_validation/i18n/zh_CN.po b/addons/purchase_double_validation/i18n/zh_CN.po
index 340fb940653..a02d02468ca 100644
--- a/addons/purchase_double_validation/i18n/zh_CN.po
+++ b/addons/purchase_double_validation/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2011-07-12 17:47+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-10-25 17:31+0000\n"
+"Last-Translator: ccdos <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:37+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
@@ -30,7 +30,7 @@ msgstr "定义限定金额后采购需要审核"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
msgid "title"
-msgstr "标题"
+msgstr "职位"
#. module: purchase_double_validation
#: field:purchase.double.validation.installer,config_logo:0
@@ -47,7 +47,7 @@ msgstr "设置采购的限定金额"
#: view:board.board:0
#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting
msgid "Purchase Order Waiting Approval"
-msgstr ""
+msgstr "等待审批的采购订单"
#. module: purchase_double_validation
#: view:purchase.double.validation.installer:0
@@ -67,7 +67,7 @@ msgstr "purchase.double.validation.installer"
#. module: purchase_double_validation
#: field:purchase.double.validation.installer,limit_amount:0
msgid "Maximum Purchase Amount"
-msgstr "限定的采购金额"
+msgstr "最大的采购金额"
#~ msgid "purchase_double_validation"
#~ msgstr "purchase_double_validation"
diff --git a/addons/purchase_requisition/i18n/zh_CN.po b/addons/purchase_requisition/i18n/zh_CN.po
index 338403bf5c2..b9f0e5a6bcd 100644
--- a/addons/purchase_requisition/i18n/zh_CN.po
+++ b/addons/purchase_requisition/i18n/zh_CN.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-02-15 13:20+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:29+0000\n"
+"Last-Translator: ccdos <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:36+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: purchase_requisition
#: sql_constraint:purchase.order:0
@@ -139,7 +139,7 @@ msgstr "勾选选项,请购生成采购申请而不是直接生成询价单"
#: code:addons/purchase_requisition/purchase_requisition.py:136
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "警告"
#. module: purchase_requisition
#: report:purchase.requisition:0
@@ -181,7 +181,7 @@ msgstr "重置为草稿"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "Current Purchase Requisition"
-msgstr ""
+msgstr "当前的采购请求"
#. module: purchase_requisition
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_user
@@ -218,7 +218,7 @@ msgstr "数量"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "Unassigned Requisition"
-msgstr ""
+msgstr "未指派的请购单"
#. module: purchase_requisition
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
@@ -307,7 +307,7 @@ msgstr "请购类型"
#. module: purchase_requisition
#: view:purchase.requisition:0
msgid "New Purchase Requisition"
-msgstr ""
+msgstr "新的采购申请"
#. module: purchase_requisition
#: view:purchase.requisition:0
@@ -399,7 +399,7 @@ msgstr "采购申请(排它的)"
#. module: purchase_requisition
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager
msgid "Manager"
-msgstr ""
+msgstr "主管"
#. module: purchase_requisition
#: constraint:product.product:0
diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py
index 8954de6c1dc..ea2346d3aab 100644
--- a/addons/purchase_requisition/purchase_requisition.py
+++ b/addons/purchase_requisition/purchase_requisition.py
@@ -34,7 +34,7 @@ class purchase_requisition(osv.osv):
_inherit = ['mail.thread', 'ir.needaction_mixin']
_columns = {
'name': fields.char('Requisition Reference', size=32,required=True),
- 'origin': fields.char('Source', size=32),
+ 'origin': fields.char('Source Document', size=32),
'date_start': fields.datetime('Requisition Date'),
'date_end': fields.datetime('Requisition Deadline'),
'user_id': fields.many2one('res.users', 'Responsible'),
diff --git a/addons/resource/i18n/ru.po b/addons/resource/i18n/ru.po
index 7a7f5e82dbd..a5192a83647 100644
--- a/addons/resource/i18n/ru.po
+++ b/addons/resource/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-05-10 18:26+0000\n"
+"PO-Revision-Date: 2012-10-23 18:55+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:30+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: resource
#: help:resource.calendar.leaves,resource_id:0
@@ -107,7 +107,7 @@ msgstr "Рабочее время начнется с"
#. module: resource
#: constraint:resource.calendar.leaves:0
msgid "Error! leave start-date must be lower then leave end-date."
-msgstr ""
+msgstr "Ошибка! Дата начала отгула должна быть раньше даты завершения."
#. module: resource
#: model:ir.model,name:resource.model_resource_calendar
@@ -324,7 +324,7 @@ msgstr "(отпуск)"
#: code:addons/resource/resource.py:392
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: resource
#: selection:resource.resource,resource_type:0
diff --git a/addons/sale/i18n/lt.po b/addons/sale/i18n/lt.po
index 46158f9bbde..bf590d7ca7f 100644
--- a/addons/sale/i18n/lt.po
+++ b/addons/sale/i18n/lt.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
-"PO-Revision-Date: 2010-12-14 21:49+0000\n"
-"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
+"PO-Revision-Date: 2012-10-22 17:52+0000\n"
+"Last-Translator: ignas <ignassladkevicius@yahoo.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:12+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-23 04:48+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -160,14 +160,14 @@ msgstr ""
#. module: sale
#: field:sale.order,date_confirm:0
msgid "Confirmation Date"
-msgstr ""
+msgstr "Patvirtinimo data"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
#: view:sale.report:0
msgid "Group By..."
-msgstr ""
+msgstr "Grupuoti pagal..."
#. module: sale
#: view:sale.order.line:0
@@ -322,7 +322,7 @@ msgstr ""
#. module: sale
#: help:sale.order,amount_total:0
msgid "The total amount."
-msgstr ""
+msgstr "Bendra suma."
#. module: sale
#: view:sale.report:0
@@ -652,7 +652,7 @@ msgstr ""
#: view:board.board:0
#: model:ir.actions.act_window,name:sale.action_turnover_by_month
msgid "Monthly Turnover"
-msgstr ""
+msgstr "Mėnesinė apyvarta"
#. module: sale
#: view:sale.report:0
@@ -716,7 +716,7 @@ msgstr "Bendra kaina"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree
msgid "Old Quotations"
-msgstr ""
+msgstr "Seni pasiūlymai"
#. module: sale
#: help:sale.config.settings,module_sale_journal:0
@@ -816,7 +816,7 @@ msgstr "Iš viso :"
#. module: sale
#: view:sale.report:0
msgid "My Sales"
-msgstr ""
+msgstr "Mano pardavimai"
#. module: sale
#: code:addons/sale/sale.py:253
@@ -1233,7 +1233,7 @@ msgstr "Grupuoti sąskaitas faktūras"
#. module: sale
#: help:sale.order,amount_tax:0
msgid "The tax amount."
-msgstr ""
+msgstr "Mokesčiai"
#. module: sale
#: view:sale.order:0
@@ -1252,7 +1252,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "August"
-msgstr ""
+msgstr "Rugpjūtis"
#. module: sale
#: view:sale.order:0
@@ -1282,7 +1282,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "June"
-msgstr ""
+msgstr "Birželis"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_email_templates
@@ -1559,7 +1559,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,day:0
msgid "Day"
-msgstr ""
+msgstr "Diena"
#. module: sale
#: view:sale.order:0
@@ -1830,7 +1830,7 @@ msgstr ""
#. module: sale
#: view:sale.order:0
msgid "Other Information"
-msgstr ""
+msgstr "Kita informacija"
#. module: sale
#: view:res.partner:0
diff --git a/addons/sale/i18n/ru.po b/addons/sale/i18n/ru.po
index b689b1b1946..a67f7c78b4c 100644
--- a/addons/sale/i18n/ru.po
+++ b/addons/sale/i18n/ru.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-09-20 07:29+0000\n"
-"PO-Revision-Date: 2012-09-10 14:56+0000\n"
+"PO-Revision-Date: 2012-10-23 18:53+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-19 05:12+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-24 04:55+0000\n"
+"X-Generator: Launchpad (build 16179)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -235,7 +235,7 @@ msgstr "В счет"
#: view:sale.order.line:0
#: field:sale.report,product_uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "Единицы измерения"
#. module: sale
#: help:sale.order,date_confirm:0
@@ -264,7 +264,7 @@ msgstr ""
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sale order"
-msgstr ""
+msgstr "Выставить счет на весь заказ продажи"
#. module: sale
#: field:sale.order,project_id:0
@@ -304,12 +304,12 @@ msgstr "Исключение счета"
#. module: sale
#: view:account.config.settings:0
msgid "0"
-msgstr ""
+msgstr "0"
#. module: sale
#: selection:sale.order,state:0
msgid "Draft Quotation"
-msgstr ""
+msgstr "Черновик предложения"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:124
@@ -359,23 +359,23 @@ msgstr "Вес"
#. module: sale
#: view:sale.config.settings:0
msgid "Warehouse Features"
-msgstr ""
+msgstr "Особенности склада"
#. module: sale
#: view:sale.order:0
msgid "Quotation "
-msgstr ""
+msgstr "Предложение "
#. module: sale
#: field:sale.order.line,product_uom:0
msgid "Unit of Measure "
-msgstr ""
+msgstr "Единица измерения "
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:148
#, python-format
msgid "Incorrect Data"
-msgstr ""
+msgstr "Неверные данные"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:149
@@ -401,7 +401,7 @@ msgstr "Заказ"
#. module: sale
#: field:sale.order,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "Сообщения"
#. module: sale
#: selection:sale.report,month:0
@@ -422,7 +422,7 @@ msgstr "Сумма до налогов"
#. module: sale
#: field:sale.config.settings,module_project:0
msgid "Project"
-msgstr ""
+msgstr "Проект"
#. module: sale
#: code:addons/sale/sale.py:319
@@ -433,7 +433,7 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:123
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Ошибка!"
#. module: sale
#: report:sale.order:0
@@ -467,7 +467,7 @@ msgstr "Позиции заказа продаж относящиеся к моÐ
#. module: sale
#: selection:sale.order,state:0
msgid "Quotation Sent"
-msgstr ""
+msgstr "Предложение отправлено"
#. module: sale
#: help:sale.order,message_unread:0
@@ -528,12 +528,12 @@ msgstr "Налог"
#: code:addons/sale/sale.py:986
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Неверное действие!"
#. module: sale
#: view:sale.report:0
msgid "Reference Unit of Measure"
-msgstr ""
+msgstr "Базовая единица измерения"
#. module: sale
#: field:sale.report,date_confirm:0
@@ -572,7 +572,7 @@ msgstr "Факс :"
#. module: sale
#: view:sale.order:0
msgid "(update)"
-msgstr ""
+msgstr "(обновление)"
#. module: sale
#: help:sale.config.settings,group_discount_per_so_line:0
@@ -635,7 +635,7 @@ msgstr "Подтвердить"
#. module: sale
#: view:sale.order:0
msgid "Unread messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: field:sale.order,partner_shipping_id:0
@@ -673,12 +673,12 @@ msgstr "Заказы продаж, которые еще не были подтÐ
#. module: sale
#: field:sale.order,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Непрочитанные сообщения"
#. module: sale
#: view:sale.order:0
msgid "Print"
-msgstr ""
+msgstr "Печать"
#. module: sale
#: report:sale.order:0
@@ -793,12 +793,12 @@ msgstr "Год заказа в заказе продаж"
#. module: sale
#: field:sale.config.settings,module_sale_stock:0
msgid "Sale and Warehouse Management"
-msgstr ""
+msgstr "Управление продажами и складом"
#. module: sale
#: model:ir.model,name:sale.model_sale_config_settings
msgid "sale.config.settings"
-msgstr ""
+msgstr "sale.config.settings"
#. module: sale
#: field:sale.advance.payment.inv,qtty:0
@@ -842,7 +842,7 @@ msgstr ""
#. module: sale
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr ""
+msgstr "Параметры по умолчанию"
#. module: sale
#: code:addons/sale/sale.py:963
@@ -850,12 +850,12 @@ msgstr ""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:142
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "Ошибка конфигурации!"
#. module: sale
#: field:account.config.settings,group_analytic_account_for_sales:0
msgid "Analytic accounting for sales"
-msgstr ""
+msgstr "Аналитический учет для продаж"
#. module: sale
#: view:sale.order:0
diff --git a/addons/sale/i18n/zh_CN.po b/addons/sale/i18n/zh_CN.po
index 80bce011aaf..4f999fd79fa 100644
--- a/addons/sale/i18n/zh_CN.po
+++ b/addons/sale/i18n/zh_CN.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-09-20 07:29+0000\n"
-"PO-Revision-Date: 2012-06-11 07:32+0000\n"
-"Last-Translator: openerp-china.black-jack <onetimespeed@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:36+0000\n"
+"Last-Translator: ccdos <Unknown>\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-10-19 05:13+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -203,7 +203,7 @@ msgstr ""
#. module: sale
#: view:sale.config.settings:0
msgid "Contract Feature"
-msgstr ""
+msgstr "合同特性"
#. module: sale
#: field:sale.report,state:0
@@ -233,7 +233,7 @@ msgstr "待开票"
#: view:sale.order.line:0
#: field:sale.report,product_uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "计量单位"
#. module: sale
#: help:sale.order,date_confirm:0
@@ -257,12 +257,12 @@ msgstr "3月"
#: code:addons/sale/sale.py:558
#, python-format
msgid "First cancel all invoices attached to this sales order."
-msgstr ""
+msgstr "首先取消所有关联这个销售订单的发票。"
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sale order"
-msgstr ""
+msgstr "为整个销售单开票"
#. module: sale
#: field:sale.order,project_id:0
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index 0ae2e4f7133..f592a8fd66c 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -55,7 +55,7 @@ class sale_report(osv.osv):
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
('cancel', 'Cancelled')
- ], 'Order State', readonly=True),
+ ], 'Order Status', readonly=True),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', readonly=True),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
}
diff --git a/addons/sale/res_partner_view.xml b/addons/sale/res_partner_view.xml
index cd0536bd05b..58d337350ba 100644
--- a/addons/sale/res_partner_view.xml
+++ b/addons/sale/res_partner_view.xml
@@ -76,7 +76,6 @@
</field>
</record>
-
</data>
</openerp>
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index a2ee88ab860..9c7f07edb25 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -187,7 +187,7 @@ class sale_order(osv.osv):
('manual', 'Sale to Invoice'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
- ], 'Status', readonly=True, help="Gives the state of the quotation or sales order. \nThe exception state is automatically set when a cancel operation occurs in the processing of a document linked to the sale order. \nThe 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
+ ], 'Status', readonly=True, help="Gives the status of the quotation or sales order. \nThe exception status is automatically set when a cancel operation occurs in the processing of a document linked to the sale order. \nThe 'Waiting Schedule' status is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
'date_order': fields.date('Date', required=True, readonly=True, select=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}),
'create_date': fields.datetime('Creation Date', readonly=True, select=True, help="Date on which sales order is created."),
'date_confirm': fields.date('Confirmation Date', readonly=True, select=True, help="Date on which sales order is confirmed."),
@@ -716,6 +716,8 @@ class sale_order_line(osv.osv):
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
'invoiced': fields.boolean('Invoiced', readonly=True),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}),
+ 'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft': [('readonly', False)]},
+ help="If 'on order', it triggers a procurement when the sale order is confirmed to create a task, purchase order or manufacturing order linked to this sale order line."),
'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Account')),
'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft': [('readonly', False)]}),
'address_allotment_id': fields.many2one('res.partner', 'Allotment Partner'),
@@ -726,11 +728,11 @@ class sale_order_line(osv.osv):
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount'), readonly=True, states={'draft': [('readonly', False)]}),
'th_weight': fields.float('Weight', readonly=True, states={'draft': [('readonly', False)]}),
'state': fields.selection([('cancel', 'Cancelled'),('draft', 'Draft'),('confirmed', 'Confirmed'),('exception', 'Exception'),('done', 'Done')], 'Status', required=True, readonly=True,
- help='* The \'Draft\' state is set when the related sales order in draft state. \
- \n* The \'Confirmed\' state is set when the related sales order is confirmed. \
- \n* The \'Exception\' state is set when the related sales order is set as exception. \
- \n* The \'Done\' state is set when the sales order line has been picked. \
- \n* The \'Cancelled\' state is set when a user cancel the sales order related.'),
+ help='* The \'Draft\' status is set when the related sales order in draft status. \
+ \n* The \'Confirmed\' status is set when the related sales order is confirmed. \
+ \n* The \'Exception\' status is set when the related sales order is set as exception. \
+ \n* The \'Done\' status is set when the sales order line has been picked. \
+ \n* The \'Cancelled\' status is set when a user cancel the sales order related.'),
'order_partner_id': fields.related('order_id', 'partner_id', type='many2one', relation='res.partner', store=True, string='Customer'),
'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'),
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
@@ -744,6 +746,7 @@ class sale_order_line(osv.osv):
'sequence': 10,
'invoiced': 0,
'state': 'draft',
+ 'type': 'make_to_stock',
'price_unit': 0.0,
}
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 17be961f17d..a5d7b9d3af2 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -131,7 +131,24 @@
<field name="arch" type="xml">
<tree string="Sales Orders" fonts="bold:message_unread==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')">
<field name="message_unread" invisible="1"/>
- <field name="name"/>
+ <field name="name" string="Order Number"/>
+ <field name="date_order"/>
+ <field name="partner_id"/>
+ <field name="user_id"/>
+ <field name="amount_total" sum="Total Tax Included"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_quotation_tree" model="ir.ui.view">
+ <field name="name">sale.order.tree</field>
+ <field name="model">sale.order</field>
+ <field name="priority">4</field>
+ <field name="arch" type="xml">
+ <tree string="Quotation" fonts="bold:message_unread==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')">
+ <field name="message_unread" invisible="1"/>
+ <field name="name" string="Quotation Number"/>
<field name="date_order"/>
<field name="partner_id"/>
<field name="user_id"/>
@@ -147,23 +164,21 @@
<field name="arch" type="xml">
<form string="Sales Order" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice"/>
- <button name="invoice_corrected" states="invoice_except" string="Ignore Exception"/>
- <button name="action_quotation_send" string="Send by Mail" type="object" states="draft" class="oe_highlight"/>
- <button name="action_quotation_send" string="Send by Mail" type="object" states="sent"/>
- <button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight"/>
- <button name="print_quotation" string="Print" type="object" states="sent"/>
- <button name="action_button_confirm" states="draft" string="Confirm" type="object"/>
- <button name="action_button_confirm" states="sent" string="Confirm" class="oe_highlight" type="object"/>
- <button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"
- attrs="{'invisible': [('invoice_exists', '=', False)]}"/>
- <button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
- type="action" states="manual" class="oe_highlight"/>
- <button name="cancel" states="draft,sent" string="Cancel"/>
- <button name="action_cancel" states="manual,progress" string="Cancel" type="object"/>
- <button name="invoice_cancel" states="invoice_except" string="Cancel"/>
- </span>
+ <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" groups="base.group_user"/>
+ <button name="invoice_corrected" states="invoice_except" string="Ignore Exception" groups="base.group_user"/>
+ <button name="action_quotation_send" string="Send by Mail" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
+ <button name="action_quotation_send" string="Send by Mail" type="object" states="sent" groups="base.group_user"/>
+ <button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
+ <button name="print_quotation" string="Print" type="object" states="sent" groups="base.group_user"/>
+ <button name="action_button_confirm" states="draft" string="Confirm" type="object" groups="base.group_user"/>
+ <button name="action_button_confirm" states="sent" string="Confirm" class="oe_highlight" type="object" groups="base.group_user"/>
+ <button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"
+ attrs="{'invisible': [('invoice_exists', '=', False)]}" groups="base.group_user"/>
+ <button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
+ type="action" states="manual" class="oe_highlight" groups="base.group_user"/>
+ <button name="cancel" states="draft,sent" string="Cancel" groups="base.group_user"/>
+ <button name="action_cancel" states="manual,progress" string="Cancel" type="object" groups="base.group_user"/>
+ <button name="invoice_cancel" states="invoice_except" string="Cancel" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,sent,invoiced,done" statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>
</header>
<sheet>
@@ -225,8 +240,8 @@
</group>
<group>
<field name="tax_id" widget="many2many_tags" domain="[('parent_id','=',False),('type_tax_use','&lt;&gt;','purchase')]"/>
+ <field name="type"/>
<field name="th_weight"/>
-
<!-- we should put a config wizard for these two fields -->
<field name="address_allotment_id"/>
</group>
@@ -359,7 +374,7 @@
</record>
<record id="action_order_form" model="ir.actions.act_window">
- <field name="name">Sales Orders</field>
+ <field name="name">Sale Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
@@ -406,6 +421,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
+ <field name="view_id" ref="view_quotation_tree"/>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="context">{'show_address': 1}</field>
<field name="domain">[('state','in',('draft','sent','cancel'))]</field>
@@ -464,21 +480,19 @@
<field name="arch" type="xml">
<form string="Sales Order Lines" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="button_cancel" string="Cancel" type="object" states="confirmed,exception"/>
- <button name="%(action_view_sale_order_line_make_invoice)d" string="Create Invoice" type="action" attrs="{'invisible': ['|',('invoiced', '=', 1), ('state', 'not in', ('confirmed', 'draft'))]}" class="oe_highlight"/>
- <button name="button_done" string="Done" type="object" attrs="{'invisible': ['|',('invoiced', '=', 0), ('state', 'not in', ('confirmed', 'exception'))]}" class="oe_highlight"/>
- </span>
+ <button name="button_cancel" string="Cancel" type="object" states="confirmed,exception" groups="base.group_user"/>
+ <button name="%(action_view_sale_order_line_make_invoice)d" string="Create Invoice" type="action" attrs="{'invisible': ['|',('invoiced', '=', 1), ('state', 'not in', ('confirmed', 'draft'))]}" class="oe_highlight" groups="base.group_user"/>
+ <button name="button_done" string="Done" type="object" attrs="{'invisible': ['|',('invoiced', '=', 0), ('state', 'not in', ('confirmed', 'exception'))]}" class="oe_highlight" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"exception":"red","cancel":"red"}'/>
</header>
<sheet>
<label for="order_id" class="oe_edit_only"/>
- <h1><field name="order_id"/></h1>
+ <h1><field name="order_id" domain="[('state','!=','done')]"/></h1>
<label for="order_partner_id" class="oe_edit_only"/>
<h2><field name="order_partner_id"/></h2>
<group>
<group>
- <field name="product_id" readonly="1"/>
+ <field name="product_id"/>
<label for="product_uom_qty"/>
<div>
<field name="product_uom_qty" readonly="1" class="oe_inline"/>
diff --git a/addons/sale_stock/i18n/zh_CN.po b/addons/sale_stock/i18n/zh_CN.po
index 74cf53c8814..79b64da8499 100644
--- a/addons/sale_stock/i18n/zh_CN.po
+++ b/addons/sale_stock/i18n/zh_CN.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-09-20 07:32+0000\n"
-"PO-Revision-Date: 2012-09-21 14:19+0000\n"
-"Last-Translator: openerp-china.black-jack <onetimespeed@gmail.com>\n"
+"PO-Revision-Date: 2012-10-25 17:47+0000\n"
+"Last-Translator: ccdos <Unknown>\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-10-19 05:39+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-10-26 04:56+0000\n"
+"X-Generator: Launchpad (build 16194)\n"
#. module: sale_stock
#: help:sale.config.settings,group_invoice_deli_orders:0
@@ -118,7 +118,7 @@ msgstr "对每个销售订单明细,将会创建对应的采购订单来供应
#: code:addons/sale_stock/sale_stock.py:678
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "错误!"
#. module: sale_stock
#: field:sale.order,picking_policy:0
@@ -146,12 +146,12 @@ msgstr "库存调拨"
#: code:addons/sale_stock/sale_stock.py:164
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "非法的动作"
#. module: sale_stock
#: field:sale.config.settings,module_project_timesheet:0
msgid "Project Timesheet"
-msgstr ""
+msgstr "项目时间表"
#. module: sale_stock
#: help:sale.config.settings,module_delivery:0
@@ -166,7 +166,7 @@ msgstr ""
#: code:addons/sale_stock/sale_stock.py:647
#, python-format
msgid "Configuration Error!"
-msgstr ""
+msgstr "设置错误!"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleprocurement0
@@ -188,7 +188,7 @@ msgstr "销售订单"
#: model:ir.model,name:sale_stock.model_stock_picking_out
#: view:sale.order:0
msgid "Delivery Orders"
-msgstr ""
+msgstr "送货单"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_order_line
@@ -218,7 +218,7 @@ msgstr "错误!您不能创建递归公司."
#. module: sale_stock
#: field:sale.config.settings,group_invoice_so_lines:0
msgid "Generate invoices based on the sale order"
-msgstr ""
+msgstr "基于销售单生成发票"
#. module: sale_stock
#: help:res.company,security_lead:0
@@ -244,7 +244,7 @@ msgstr "强制指定"
#. module: sale_stock
#: field:sale.config.settings,default_order_policy:0
msgid "The default invoicing method is"
-msgstr ""
+msgstr "默认的开票方法"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:233
@@ -265,7 +265,7 @@ msgstr "转移给客户的单据"
#. module: sale_stock
#: view:sale.order:0
msgid "View Delivery Order"
-msgstr ""
+msgstr "发运单视图"
#. module: sale_stock
#: field:sale.order.line,move_ids:0
@@ -275,7 +275,7 @@ msgstr "库存调拨"
#. module: sale_stock
#: view:sale.config.settings:0
msgid "Default Options"
-msgstr ""
+msgstr "默认选项"
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
@@ -334,7 +334,7 @@ msgstr "需求会在销售订单确认或发票付款后自动生成。它是采
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
msgid "Generate invoices after and based on delivery orders"
-msgstr ""
+msgstr "基于发运单生产发票"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:499
@@ -345,7 +345,7 @@ msgstr ""
#. module: sale_stock
#: field:sale.config.settings,module_delivery:0
msgid "Allow adding shipping costs"
-msgstr ""
+msgstr "允许追加运输成本"
#. module: sale_stock
#: view:sale.order:0
@@ -360,12 +360,12 @@ msgstr "打包装"
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
msgid "Deliver all at once when all products are available."
-msgstr ""
+msgstr "当所有商品可用后一次性发运"
#. module: sale_stock
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
msgid "Enable Invoicing Delivery orders"
-msgstr ""
+msgstr "允许开发运单"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:689
@@ -409,12 +409,12 @@ msgstr "属性"
#. module: sale_stock
#: constraint:stock.move:0
msgid "You must assign a serial number for this product."
-msgstr ""
+msgstr "你必须为这个产品指定序列号"
#. module: sale_stock
#: field:sale.config.settings,group_mrp_properties:0
msgid "Product properties on order lines"
-msgstr ""
+msgstr "订单行上面的产品属性"
#. module: sale_stock
#: help:sale.config.settings,default_order_policy:0
@@ -425,7 +425,7 @@ msgstr "你可以根据销售订单或送货单生成发票。"
#. module: sale_stock
#: constraint:stock.move:0
msgid "You cannot move products from or to a location of the type view."
-msgstr ""
+msgstr "你能移动从(到)这种类型视图的库位"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_report
@@ -452,7 +452,7 @@ msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "View Invoice"
-msgstr ""
+msgstr "查看发票"
#. module: sale_stock
#: sql_constraint:stock.picking:0
@@ -508,7 +508,7 @@ msgstr ""
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on sales orders"
-msgstr ""
+msgstr "基于销售单的发票"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
diff --git a/addons/sale_stock/report/sale_report.py b/addons/sale_stock/report/sale_report.py
index 04587c1e679..a523c0551f2 100644
--- a/addons/sale_stock/report/sale_report.py
+++ b/addons/sale_stock/report/sale_report.py
@@ -36,7 +36,7 @@ class sale_report(osv.osv):
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
('cancel', 'Cancelled')
- ], 'Order State', readonly=True),
+ ], 'Order Status', readonly=True),
}
def init(self, cr):
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index ce6894318c4..5d30dc9a249 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -123,9 +123,9 @@ class sale_order(osv.osv):
('shipping_except', 'Shipping Exception'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
- ], 'Status', readonly=True,help="Gives the state of the quotation or sales order.\
- \nThe exception state is automatically set when a cancel operation occurs \
- in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception).\nThe 'Waiting Schedule' state is set when the invoice is confirmed\
+ ], 'Status', readonly=True,help="Gives the status of the quotation or sales order.\
+ \nThe exception status is automatically set when a cancel operation occurs \
+ in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception).\nThe 'Waiting Schedule' status is set when the invoice is confirmed\
but waiting for the scheduler to run on the order date.", select=True),
'incoterm': fields.many2one('stock.incoterms', 'Incoterm', help="Incoterm which stands for 'International Commercial terms' implies its a series of sales terms which are used in the commercial transaction."),
'picking_policy': fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')],
@@ -490,8 +490,6 @@ class sale_order_line(osv.osv):
_columns = {
'delay': fields.float('Delivery Lead Time', required=True, help="Number of days between the order confirmation the shipping of the products to the customer", readonly=True, states={'draft': [('readonly', False)]}),
'procurement_id': fields.many2one('procurement.order', 'Procurement'),
- 'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft': [('readonly', False)]},
- help="If 'on order', it triggers a procurement when the sale order is confirmed to create a task, purchase order or manufacturing order linked to this sale order line."),
'property_ids': fields.many2many('mrp.property', 'sale_order_line_property_rel', 'order_id', 'property_id', 'Properties', readonly=True, states={'draft': [('readonly', False)]}),
'product_packaging': fields.many2one('product.packaging', 'Packaging'),
'move_ids': fields.one2many('stock.move', 'sale_line_id', 'Inventory Moves', readonly=True),
@@ -499,7 +497,6 @@ class sale_order_line(osv.osv):
}
_defaults = {
'delay': 0.0,
- 'type': 'make_to_stock',
'product_packaging': False,
}
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index 73b9d33ba90..a033e3e6d33 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -56,7 +56,7 @@
<field name="product_id"
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
groups="base.group_user"
- on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/>
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/>
</field>
<field name="product_uom_qty" position="replace">
<field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
@@ -80,19 +80,18 @@
</tree>
</field>
</field>
- <xpath expr="//page[@string='Order Lines']/field[@name='order_line']/form[@string='Sales Order Lines']/group/group/field[@name='th_weight']" position="before">
+ <xpath expr="//page[@string='Order Lines']/field[@name='order_line']/form[@string='Sales Order Lines']/group/group/field[@name='type']" position="before">
<label for="delay"/>
<div>
<field name="delay" class="oe_inline"/> days
</div>
- <field name="type"/>
</xpath>
<xpath expr="//page[@string='Order Lines']/field[@name='order_line']/form[@string='Sales Order Lines']/group/group/field[@name='address_allotment_id']" position="after">
<field name="property_ids" widget="many2many_tags"
groups="sale.group_mrp_properties"/>
</xpath>
<xpath expr="//page[@string='Order Lines']/field[@name='order_line']/form[@string='Sales Order Lines']/group/group/field[@name='tax_id']" position="before">
- <field name="product_packaging" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" on_change="product_packaging_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, parent.partner_id, product_packaging, True, context)" domain="[('product_id','=',product_id)]" groups="product.group_stock_packaging" colspan="3"/>
+ <field name="product_packaging" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" on_change="product_packaging_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, parent.partner_id, product_packaging, True, context)" domain="[('product_id','=',product_id)]" groups="product.group_stock_packaging" />
</xpath>
<xpath expr="//page[@string='Order Lines']/field[@name='order_line']/form[@string='Sales Order Lines']/div/field[@name='invoice_lines']" position="after">
<label for="move_ids"/>
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 3908fecd850..f71b42300fb 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -39,7 +39,7 @@
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',False)]}"/>
</group>
<group name="delay" position="after">
- <group name="store" string="Storage Localisation">
+ <group name="store" string="Storage Localization">
<field name="loc_rack"/>
<field name="loc_row"/>
<field name="loc_case"/>
@@ -101,7 +101,7 @@
</group>
</group>
<group name="status" position="after" version="7.0">
- <group name="store" string="Storage Localisation">
+ <group name="store" string="Storage Localization">
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="loc_rack" attrs="{'invisible':[('type','=','service')]}"/>
<field name="loc_row" attrs="{'invisible':[('type','=','service')]}"/>
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 765599aa842..999b495a4d5 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -425,7 +425,7 @@ class stock_location(osv.osv):
# so we ROLLBACK to the SAVEPOINT to restore the transaction to its earlier
# state, we return False as if the products were not available, and log it:
cr.execute("ROLLBACK TO stock_location_product_reserve")
- _logger.warn("Failed attempt to reserve %s x product %s, likely due to another transaction already in progress. Next attempt is likely to work. Detailed error available at DEBUG level.", product_qty, product_id)
+ _logger.warning("Failed attempt to reserve %s x product %s, likely due to another transaction already in progress. Next attempt is likely to work. Detailed error available at DEBUG level.", product_qty, product_id)
_logger.debug("Trace of the failed product reservation attempt: ", exc_info=True)
return False
@@ -627,7 +627,7 @@ class stock_picking(osv.osv):
_columns = {
'name': fields.char('Reference', size=64, select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
- 'origin': fields.char('Source', size=64, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="Reference of the document", select=True),
+ 'origin': fields.char('Source Document', size=64, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="Reference of the document", select=True),
'backorder_id': fields.many2one('stock.picking', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', required=True, select=True, readonly=True, help="Shipping type specify, goods coming in or going out."),
'note': fields.text('Notes', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
@@ -653,8 +653,8 @@ class stock_picking(osv.osv):
* Cancelled: has been cancelled, can't be confirmed anymore"""
),
'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date",
- store=True, type='datetime', string='Scheduled Date', select=1, help="Scheduled date for the shipment to be processed"),
- 'date': fields.datetime('Date', help="Creation date, usually the date of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
+ store=True, type='datetime', string='Scheduled Time', select=1, help="Scheduled time for the shipment to be processed"),
+ 'date': fields.datetime('Time', help="Creation time, usually the time of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'date_done': fields.datetime('Date Done', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
store=True, type='datetime', string='Max. Expected Date', select=2),
@@ -3039,7 +3039,7 @@ class stock_picking_in(osv.osv):
('assigned', 'Ready to Receive'),
('done', 'Received'),
('cancel', 'Cancelled'),],
- 'State', readonly=True, select=True,
+ 'Status', readonly=True, select=True,
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
* Waiting Availability: still waiting for the availability of products\n
@@ -3084,7 +3084,7 @@ class stock_picking_out(osv.osv):
('assigned', 'Ready to Deliver'),
('done', 'Delivered'),
('cancel', 'Cancelled'),],
- 'State', readonly=True, select=True,
+ 'Status', readonly=True, select=True,
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
* Waiting Availability: still waiting for the availability of products\n
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 329425148c5..78a7fdb9da0 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -746,16 +746,14 @@
<field name="arch" type="xml">
<form string="Internal Picking List" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="draft_force_assign" states="draft" string="Confirm" type="object" class="oe_highlight"/>
- <button name="draft_validate" states="draft" string="Confirm &amp; Transfer" type="object" class="oe_highlight"/>
- <!-- <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> -->
- <button name="force_assign" states="confirmed" string="Force Availability" type="object" class="oe_highlight"/>
- <button name="action_process" states="assigned" string="Confirm &amp; Transfer" groups="stock.group_stock_user" type="object" class="oe_highlight"/>
- <button name="%(action_stock_invoice_onshipping)d" string="Create Invoice/Refund" attrs="{'invisible': ['|','|',('state','&lt;&gt;','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" class="oe_highlight"/>
- <button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action"/>
- <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel"/>
- </span>
+ <button name="draft_force_assign" states="draft" string="Confirm" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button name="draft_validate" states="draft" string="Confirm &amp; Transfer" type="object" class="oe_highlight" groups="base.group_user"/>
+ <!-- <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> -->
+ <button name="force_assign" states="confirmed" string="Force Availability" type="object" class="oe_highlight" groups="base.group_user"/>
+ <button name="action_process" states="assigned" string="Confirm &amp; Transfer" groups="stock.group_stock_user" type="object" class="oe_highlight"/>
+ <button name="%(action_stock_invoice_onshipping)d" string="Create Invoice/Refund" attrs="{'invisible': ['|','|',('state','&lt;&gt;','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" class="oe_highlight" groups="base.group_user"/>
+ <button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action" groups="base.group_user"/>
+ <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/>
</header>
<sheet>
@@ -812,7 +810,7 @@
<field name="product_id"/>
<field name="stock_journal_id"/>
<group expand="0" string="Group By...">
- <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
<filter string="Origin" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
@@ -875,7 +873,7 @@
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and min_date &lt; current_date" string="Delivery Orders">
<field name="name"/>
- <field name="partner_id"/>
+ <field name="partner_id" string="Customer"/>
<field name="origin"/>
<field name="min_date"/>
<field name="date"/>
@@ -1006,7 +1004,7 @@
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';grey:state == 'done';red:state not in ('cancel', 'done') and date &lt; current_date" string="Picking list">
<field name="name"/>
- <field name="partner_id"/>
+ <field name="partner_id" string="Supplier"/>
<field name="backorder_id"/>
<field name="origin"/>
<field name="date"/>
@@ -1282,11 +1280,9 @@
<field name="arch" type="xml">
<form string="Stock Moves" version="7.0">
<header>
- <span groups="base.group_user">
- <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
- <button name="action_confirm" states="draft" string="Confirm" type="object"/>
- <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"/>
- </span>
+ <button name="force_assign" states="confirmed" string="Force Availability" type="object" groups="base.group_user"/>
+ <button name="action_confirm" states="draft" string="Confirm" type="object" groups="base.group_user"/>
+ <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done"/>
</header>
<group>
@@ -1482,7 +1478,7 @@
</record>
<record id="action_reception_picking_move" model="ir.actions.act_window">
- <field name="name">Receive Products</field>
+ <field name="name">Incoming Products</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index d01140092d4..b57f778a5cc 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -77,6 +77,7 @@ class survey(osv.osv):
'tot_comp_survey': lambda * a: 0,
'send_response': lambda * a: 1,
'response_user': lambda * a:1,
+ 'date_open': fields.datetime.now,
}
def survey_open(self, cr, uid, ids, arg):
@@ -151,8 +152,7 @@ class survey(osv.osv):
pages = sur['page_ids']
if not pages:
raise osv.except_osv(_('Warning!'), _('This survey has no question defined. Please define the questions and answers first.'))
- else:
- context.update({'active':False,'survey_id': ids[0]})
+ context.update({'active':False,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
@@ -163,9 +163,12 @@ class survey(osv.osv):
'context': context
}
def test_survey(self, cr, uid, ids, context=None):
- sur_obj = self.read(cr, uid, ids,['title'], context=context)
+ sur_obj = self.read(cr, uid, ids,['title','page_ids'], context=context)
for sur in sur_obj:
name = sur['title']
+ pages = sur['page_ids']
+ if not pages:
+ raise osv.except_osv(_('Warning!'), _('This survey has no pages defined. Please define pages first.'))
context.update({'active':True,'survey_id': ids[0]})
return {
'view_type': 'form',
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index 0247a205700..c01e8b45ce2 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -38,24 +38,24 @@
<div class="oe_title">
<label for="title" class="oe_edit_only"/>
<h1>
- <field name="title"/>
+ <field name="title" attrs="{'readonly':[('state','=','close')]}"/>
</h1>
</div>
<group>
<group>
<field name="id" invisible="1"/>
- <field name="responsible_id" class="oe_inline"/>
- <field name="send_response"/>
- <field name="type"/>
+ <field name="responsible_id" class="oe_inline" attrs="{'readonly':[('state','=','close')]}"/>
+ <field name="send_response" attrs="{'readonly':[('state','=','close')]}"/>
+ <field name="type" attrs="{'readonly':[('state','=','close')]}"/>
</group>
<group>
- <field name="max_response_limit" attrs="{'readonly':[('state','in',('open','close'))]}"/>
- <field name="response_user" attrs="{'readonly':[('state','in',('open','close'))]}"/>
+ <field name="max_response_limit" attrs="{'readonly':[('state','=','close')]}"/>
+ <field name="response_user" attrs="{'readonly':[('state','=','close')]}"/>
</group>
</group>
<notebook>
<page string="Survey Details">
- <field name="page_ids" colspan="4" mode="tree">
+ <field name="page_ids" colspan="4" mode="tree" attrs="{'readonly':[('state','=','close')]}">
<form string="Survey Page" version="7.0">
<sheet>
<label for="title" class="oe_edit_only"/>
@@ -212,7 +212,7 @@
</sheet>
</form>
</field>
- <field name="note" placeholder="Survey description..."/>
+ <field name="note" placeholder="Survey description..." attrs="{'readonly':[('state','=','close')]}"/>
</page>
<page string="Invited User">
<field name="invited_user_ids" readonly="1"/>
diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py
index 8ece1e184cf..f1a96fa154a 100644
--- a/addons/survey/wizard/survey_answer.py
+++ b/addons/survey/wizard/survey_answer.py
@@ -134,6 +134,8 @@ class survey_question_wiz(osv.osv_memory):
page_number += 1
if sur_name_rec.page_no > - 1:
pre_button = True
+ else:
+ flag = True
else:
if sur_name_rec.page_no != 0:
p_id = p_id[sur_name_rec.page_no - 1]
@@ -146,7 +148,15 @@ class survey_question_wiz(osv.osv_memory):
pre_button = True
if flag:
pag_rec = page_obj.browse(cr, uid, p_id, context=context)
- xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title or sur_rec.title)})
+ note = False
+ question_ids = []
+ if pag_rec:
+ title = pag_rec.title
+ note = pag_rec.note
+ question_ids = pag_rec.question_ids
+ else:
+ title = sur_rec.title
+ xml_form = etree.Element('form', {'string': tools.ustr(title)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
xml_group3 = etree.SubElement(xml_form, 'group', {'col': '4', 'colspan': '4'})
@@ -174,10 +184,10 @@ class survey_question_wiz(osv.osv_memory):
fields["wizardid_" + str(wiz_id)] = {'type':'char', 'size' : 255, 'string':"", 'views':{}}
etree.SubElement(xml_form, 'field', {'invisible':'1','name': "wizardid_" + str(wiz_id),'default':str(lambda *a: 0),'modifiers':'{"invisible":true}'})
- if pag_rec.note:
- for que_test in pag_rec.note.split('\n'):
+ if note:
+ for que_test in note.split('\n'):
etree.SubElement(xml_form, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"})
- que_ids = pag_rec.question_ids
+ que_ids = question_ids
qu_no = 0
for que in que_ids:
@@ -429,13 +439,13 @@ class survey_question_wiz(osv.osv_memory):
vals['attachment_ids'] = [(0,0,{'name': a_name,
'datas_fname': a_name,
'datas': str(a_content).encode('base64')})
- for a_name, a_content in attachments]
+ for a_name, a_content in attachments.items()]
self.pool.get('mail.mail').create(cr, uid, vals, context=context)
xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
xml_footer = etree.SubElement(xml_form, 'footer', {'col': '6', 'colspan': '4' ,'class': 'oe_survey_title_height'})
- etree.SubElement(xml_form, 'separator', {'string': 'Complete Survey', 'colspan': "4"})
+ etree.SubElement(xml_form, 'separator', {'string': 'Survey Completed', 'colspan': "4"})
etree.SubElement(xml_form, 'label', {'string': 'Thanks for your Answer'})
etree.SubElement(xml_form, 'newline')
etree.SubElement(xml_footer, 'button', {'special':"cancel",'string':"OK",'colspan':"2",'class':'oe_highlight'})
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 5677a985e09..936e3363bde 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -50,9 +50,6 @@ class survey_send_invitation(osv.osv_memory):
_defaults = {
'send_mail': lambda *a: 1,
'send_mail_existing': lambda *a: 1,
- 'mail_subject': lambda *a: "Invitation",
- 'mail_subject_existing': lambda *a: "Invitation",
- 'mail_from': lambda *a: tools.config['email_from']
}
def genpasswd(self):
@@ -67,14 +64,23 @@ class survey_send_invitation(osv.osv_memory):
msg = ""
name = ""
for sur in survey_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- name += "\t --> " + sur.title + "\n"
+ name += "\n --> " + sur.title + "\n"
if sur.state != 'open':
msg += sur.title + "\n"
+ data['mail_subject'] = _("Invitation for %s") % (sur.title)
+ data['mail_subject_existing'] = _("Invitation for %s") % (sur.title)
+ data['mail_from'] = sur.responsible_id.email
if msg:
- raise osv.except_osv(_('Warning!'), _('%sSurvey is not in open state') % msg)
- data['mail'] = '''Hello %(name)s, \n\n We are inviting you for following survey. \
- \n ''' + name + '''\n Your login ID: %(login)s, Your password: %(passwd)s
- \n link :- http://'''+ str(socket.gethostname()) + ''':8080 \n\n Thanks,'''
+ raise osv.except_osv(_('Warning!'), _('The following surveys are not in open state: %s') % msg)
+ data['mail'] = _('''
+Hello %%(name)s, \n\n
+Would you please spent some of your time to fill-in our survey: \n%s\n
+You can access this survey with the following parameters:
+ URL: %s
+ Your login ID: %%(login)s\n
+ Your password: %%(passwd)s\n
+\n\n
+Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
@@ -176,7 +182,7 @@ class survey_send_invitation(osv.osv_memory):
vals['attachment_ids'] = [(0,0,{'name': a_name,
'datas_fname': a_name,
'datas': str(a_content).encode('base64')})
- for a_name, a_content in attachments]
+ for a_name, a_content in attachments.items()]
ans = self.pool.get('mail.mail').create(cr, uid, vals, context=context)
if ans:
res_data = {'name': partner.name or _('Unknown'),
diff --git a/addons/survey/wizard/survey_send_invitation.xml b/addons/survey/wizard/survey_send_invitation.xml
index 340cb58b5cf..a611973d772 100644
--- a/addons/survey/wizard/survey_send_invitation.xml
+++ b/addons/survey/wizard/survey_send_invitation.xml
@@ -16,7 +16,7 @@
</header>
<group col="4">
<separator string="Select Partner" colspan="4"/>
- <field name="partner_ids" nolabel="1" colspan="4"/>
+ <field name="partner_ids" nolabel="1" colspan="4" widget="many2many_tags"/>
<separator colspan="4" string="Send Mail for New User"/>
<field name="send_mail" nolabel="1"/>
<field name="mail_subject" colspan="3"/>