summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-02-28 13:47:09 +0100
committerChristophe Simonis <chs@odoo.com>2019-02-28 13:47:09 +0100
commit06898fac3c9b21d4fd5ef7efd35f829cdff15e46 (patch)
tree6b6d657677778365b06bbf4fb7babcab688edcc2 /addons
parent012816f85f8f20243bd3dfb55abdfaac59722284 (diff)
parentf9d3b5b7dfe15fb53f14fa0a0ae91bbeded9939b (diff)
[MERGE] forward port branch saas-12.1 up to f9d3b5b7dfe
Diffstat (limited to 'addons')
-rw-r--r--addons/account/i18n/fr.po2
-rw-r--r--addons/account/i18n/hr.po11
-rw-r--r--addons/account/i18n/hu.po8
-rw-r--r--addons/account/i18n/nl.po7
-rw-r--r--addons/account/i18n/ru.po20
-rw-r--r--addons/account/i18n/tr.po154
-rw-r--r--addons/account/i18n/uk.po82
-rw-r--r--addons/account/models/account_journal_dashboard.py5
-rw-r--r--addons/account/views/account_invoice_view.xml1
-rw-r--r--addons/account_analytic_default/i18n/nl.po9
-rw-r--r--addons/account_bank_statement_import/i18n/tr.po7
-rw-r--r--addons/account_check_printing/i18n/hr.po4
-rw-r--r--addons/account_payment/i18n/tr.po31
-rw-r--r--addons/account_voucher/i18n/tr.po6
-rw-r--r--addons/analytic/i18n/tr.po6
-rw-r--r--addons/board/static/src/js/board_view.js1
-rw-r--r--addons/board/static/tests/dashboard_tests.js47
-rw-r--r--addons/hr_holidays/i18n/hr_holidays.pot5
-rw-r--r--addons/hr_holidays/models/hr_leave.py83
-rw-r--r--addons/hr_holidays/models/hr_leave_allocation.py8
-rw-r--r--addons/hr_holidays/models/hr_leave_type.py27
-rw-r--r--addons/hr_holidays/views/hr_leave_type_views.xml10
-rw-r--r--addons/hr_holidays/views/hr_leave_views.xml9
-rw-r--r--addons/mail/models/mail_channel.py4
-rw-r--r--addons/mail/static/src/js/composers/basic_composer.js1
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js34
-rw-r--r--addons/web/static/src/js/views/abstract_view.js3
-rw-r--r--addons/web/static/src/js/views/control_panel/control_panel_view.js17
-rw-r--r--addons/web/static/src/js/views/view_dialogs.js2
-rw-r--r--addons/web/static/tests/fields/relational_fields/field_many2one_tests.js103
-rw-r--r--addons/web/static/tests/helpers/mock_server.js4
-rw-r--r--addons/web/static/tests/helpers/test_utils_fields.js11
-rw-r--r--addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js2
33 files changed, 512 insertions, 212 deletions
diff --git a/addons/account/i18n/fr.po b/addons/account/i18n/fr.po
index 6ea1c304c29..599e14ab1e7 100644
--- a/addons/account/i18n/fr.po
+++ b/addons/account/i18n/fr.po
@@ -3256,7 +3256,7 @@ msgstr "Configurer"
#: code:addons/account/static/src/js/section_and_note_fields_backend.js:102
#, python-format
msgid "Configure a product"
-msgstr ""
+msgstr "Configurer un article"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_invoice_layout
diff --git a/addons/account/i18n/hr.po b/addons/account/i18n/hr.po
index e2cbdea01d7..f2ca18af9c9 100644
--- a/addons/account/i18n/hr.po
+++ b/addons/account/i18n/hr.po
@@ -799,7 +799,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_chart_template
msgid "Account Chart Template"
-msgstr ""
+msgstr "Predložak kontnog plana"
#. module: account
#: model:ir.model,name:account.model_account_common_report
@@ -3038,7 +3038,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_res_config_settings
msgid "Config Settings"
-msgstr ""
+msgstr "Postavke"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_configuration
@@ -11936,13 +11936,6 @@ msgid "have been reconciled automatically."
msgstr ""
#. module: account
-#. openerp-web
-#: code:addons/account/static/src/xml/account_reconciliation.xml:44
-#, python-format
-msgid "o_manual_statement"
-msgstr ""
-
-#. module: account
#: selection:account.payment.term.line,option:0
msgid "of the current month"
msgstr ""
diff --git a/addons/account/i18n/hu.po b/addons/account/i18n/hu.po
index 71970867f2a..60d435a6dc7 100644
--- a/addons/account/i18n/hu.po
+++ b/addons/account/i18n/hu.po
@@ -751,7 +751,7 @@ msgstr "Figyelmeztetés beállítható partnerenként (Könyvelés)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__access_warning
msgid "Access warning"
-msgstr ""
+msgstr "Hozzáférési figyelmeztetés"
#. module: account
#. openerp-web
@@ -3639,7 +3639,7 @@ msgstr "Vevői befizetések"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__access_url
msgid "Customer Portal URL"
-msgstr ""
+msgstr "Ügyfélportál URL-je"
#. module: account
#: model:ir.model.fields,field_description:account.field_product_product__taxes_id
@@ -7408,7 +7408,7 @@ msgstr "Lejárt számlák, lejárt fizetési határidő"
#. module: account
#: model:ir.ui.menu,name:account.menu_board_journal_1
msgid "Overview"
-msgstr ""
+msgstr "Áttekintés"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -7897,7 +7897,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__access_url
msgid "Portal Access URL"
-msgstr ""
+msgstr "Portálelérés URL-je"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
diff --git a/addons/account/i18n/nl.po b/addons/account/i18n/nl.po
index 617fc9372fb..0491df8b8ec 100644
--- a/addons/account/i18n/nl.po
+++ b/addons/account/i18n/nl.po
@@ -4191,9 +4191,10 @@ msgid ""
"used by itself, however it can still be used in a group. 'adjustment' is "
"used to perform tax adjustment."
msgstr ""
-"Bepaald waar de belasting selecteerbaar is. Note : 'None' betekend dat een "
-"belasting niet gebruikt kan worden. Ze kan wel toegepast worden in een groep"
-" gebruikt. 'adjustment' is used to perform tax adjustment."
+"Bepaald waar de belasting selecteerbaar is. Opmerking: 'None' betekend dat "
+"een belasting niet gebruikt kan worden. Ze kan wel toegepast worden in een "
+"groep gebruikt. 'aanpassing' wordt gebruikt om wijzigingen in belastingen te"
+" doen."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__difference
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index e5c4b69b871..e26f26e9ed7 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -36,6 +36,7 @@
# Martin Trigaux, 2019
# Collex100, 2019
# Sergo S, 2019
+# Vasiliy Korobatov <korobatov@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -43,7 +44,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-16 07:59+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Sergo S, 2019\n"
+"Last-Translator: Vasiliy Korobatov <korobatov@gmail.com>, 2019\n"
"Language-Team: Russian (https://www.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1004,7 +1005,7 @@ msgstr "Шаблон налогового счета"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_taxcloud
msgid "Account TaxCloud"
-msgstr ""
+msgstr "Учет TaxCloud"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_chart_template_seacrh
@@ -1386,7 +1387,7 @@ msgstr "Корректировка налога"
#. module: account
#: model:ir.model.fields,field_description:account.field_tax_adjustments_wizard__adjustment_type
msgid "Adjustment Type"
-msgstr ""
+msgstr "Тип регулировки"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_tax_template_form
@@ -2192,7 +2193,7 @@ msgstr "Банковская выписка"
#: code:addons/account/models/account_bank_statement.py:602
#, python-format
msgid "Bank Statement %s"
-msgstr ""
+msgstr "Банковская выписка %s"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_cashbox
@@ -11691,6 +11692,8 @@ msgid ""
"You cannot change the currency of the company since some journal items "
"already exist"
msgstr ""
+"Вы не можете изменить валюту компании, так как некоторые записи журнала уже "
+"существуют"
#. module: account
#: code:addons/account/models/account.py:317
@@ -11910,7 +11913,7 @@ msgstr "Вы имеете"
#: code:addons/account/models/account_payment.py:622
#, python-format
msgid "You have to define a sequence for %s in your company."
-msgstr ""
+msgstr "Вы должны определить последовательность для %s в вашей компании."
#. module: account
#: code:addons/account/wizard/pos_box.py:50
@@ -12076,13 +12079,6 @@ msgid "have been reconciled automatically."
msgstr ""
#. module: account
-#. openerp-web
-#: code:addons/account/static/src/xml/account_reconciliation.xml:44
-#, python-format
-msgid "o_manual_statement"
-msgstr ""
-
-#. module: account
#: selection:account.payment.term.line,option:0
msgid "of the current month"
msgstr ""
diff --git a/addons/account/i18n/tr.po b/addons/account/i18n/tr.po
index ececfaa7de5..0e0adc23c2b 100644
--- a/addons/account/i18n/tr.po
+++ b/addons/account/i18n/tr.po
@@ -13,13 +13,13 @@
# Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2019
# gezgin biri <gezginbiri@hotmail.com>, 2019
# Ramiz Deniz Öner <deniz@denizoner.com>, 2019
-# Umur Akın <umura@projetgrup.com>, 2019
-# Ediz Duman <neps1192@gmail.com>, 2019
# Martin Trigaux, 2019
# Murat Kaplan <muratk@projetgrup.com>, 2019
# Güven YILMAZ <guvenyilmaz@outlook.com.tr>, 2019
# Buket Şeker <buket_skr@hotmail.com>, 2019
# Metin Akın <aknmetin@gmail.com>, 2019
+# Umur Akın <umura@projetgrup.com>, 2019
+# Ediz Duman <neps1192@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -27,7 +27,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-16 07:59+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Metin Akın <aknmetin@gmail.com>, 2019\n"
+"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -88,7 +88,7 @@ msgstr "%s (kopya)"
#: code:addons/account/models/account.py:695
#, python-format
msgid "%s Sequence"
-msgstr ""
+msgstr "%s Sıra"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -305,6 +305,11 @@ msgid ""
" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_invoice')]}\">Bill </span>\n"
" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_refund')]}\">Credit Note </span>"
msgstr ""
+"<span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state','!=','draft'), ('type','!=','in_invoice')]}\">Taslak Fatura</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': [('sequence_number_next_prefix','=',False)]}\">- İlk Numara:</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state','!=','draft'), ('type','!=','in_refund')]}\">Taslak Alacak Notu</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_invoice')]}\">Fatura </span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_refund')]}\">Alacak Notu </span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -320,6 +325,8 @@ msgid ""
"<span class=\"o_form_label\" attrs=\"{'invisible': [('match_amount', '!=', "
"'between')]}\">and</span>"
msgstr ""
+"<span class=\"o_form_label\" attrs=\"{'invisible': [('match_amount', '!=', "
+"'between')]}\">ve</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.validate_account_move_view
@@ -386,11 +393,13 @@ msgid ""
"<span groups=\"account.group_show_line_subtotals_tax_excluded\">Amount</span>\n"
" <span groups=\"account.group_show_line_subtotals_tax_included\">Total Price</span>"
msgstr ""
+"<span groups=\"account.group_show_line_subtotals_tax_excluded\">Tutar</span>\n"
+" <span groups=\"account.group_show_line_subtotals_tax_included\">Toplam Fiyat</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span name=\"button_import_placeholder\"/> Statements"
-msgstr ""
+msgstr "<span name=\"button_import_placeholder\"/> Ekstreleri"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -400,7 +409,7 @@ msgstr "<span role=\"separator\">Yeni</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span role=\"separator\">Reconciliation</span>"
-msgstr ""
+msgstr "<span role=\"separator\">Uzlaştırma</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -410,7 +419,7 @@ msgstr "<span role=\"separator\">Göster</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span title=\"Balance in Odoo\">Balance in General Ledger</span>"
-msgstr ""
+msgstr "<span title=\"Balance in Odoo\">Hesap Bakiyesi</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -450,7 +459,7 @@ msgstr "<span>İnd.(%)</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span>Import Bills</span>"
-msgstr ""
+msgstr "<span>Faturaları İçe Aktar</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
@@ -546,7 +555,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
msgid "<strong class=\"text-muted\">Your Contact</strong>"
-msgstr ""
+msgstr "<strong class=\"text-muted\">İlgili Kişi</strong>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document_with_payments
@@ -797,6 +806,8 @@ msgid ""
"Account %s (%s) does not allow reconciliation. First change the "
"configuration of this account to allow it."
msgstr ""
+"%s (%s) hesap uzlaştırmaya izin vermiyor. Öncelikle izin vermek için bu "
+"hesabın yapılandırmasını değiştirin."
#. module: account
#: model:ir.model,name:account.model_account_cash_rounding
@@ -1084,6 +1095,8 @@ msgid ""
"Account that will be set on lines created in cash basis journal entry and "
"used to keep track of the tax base amount."
msgstr ""
+"Gerçekleşme esaslı yevmiye girişine oluşturulan ve vergi esaslı miktarı "
+"takip etmek için kayıtlarda kullanılacak hesap."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position_account__account_dest_id
@@ -1248,7 +1261,7 @@ msgstr "Bir Banka Ekle"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_journal_form
msgid "Add a journal"
-msgstr ""
+msgstr "Yevmiye ekle"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -1371,7 +1384,7 @@ msgstr "Yaşlandırılmış İş Ortağı Bakiyesi"
#. module: account
#: model:ir.model,name:account.model_report_account_report_agedpartnerbalance
msgid "Aged Partner Balance Report"
-msgstr ""
+msgstr "Yaşlandırılmış İş Ortağı Bakiye Raporu"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__alias_id
@@ -1561,7 +1574,7 @@ msgstr "Fatura Para Birimi Tutarı"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_total_amount
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_total_amount
msgid "Amount Matching"
-msgstr ""
+msgstr "Tutar Eşleştirme"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_total_amount_param
@@ -1795,12 +1808,12 @@ msgstr "Uygulanabilirlik"
#. module: account
#: selection:tax.adjustments.wizard,adjustment_type:0
msgid "Applied on credit journal item"
-msgstr ""
+msgstr "Alacak yevmiye kalemine uygulandı."
#. module: account
#: selection:tax.adjustments.wizard,adjustment_type:0
msgid "Applied on debit journal item"
-msgstr ""
+msgstr "Borç yevmiye kalemine uygulandı"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_onboarding_invoice_layout_form
@@ -1908,6 +1921,7 @@ msgid ""
"Attachments are linked to a document through model / res_id and to the "
"message through this field."
msgstr ""
+"Ekler, model / res_id üzerinden bir belgeye ve bu alandaki iletiye bağlanır."
#. module: account
#: selection:res.company,fiscalyear_last_month:0
@@ -1936,7 +1950,7 @@ msgstr "Yazanın Avatarı"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
msgid "Auto-Complete"
-msgstr ""
+msgstr "Otomatik Tamamla"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__vendor_bill_id
@@ -1952,7 +1966,7 @@ msgstr "Kendiliğinden algıla"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__auto_reconcile
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__auto_reconcile
msgid "Auto-validate"
-msgstr ""
+msgstr "Otomatik Doğrulama"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -2138,7 +2152,7 @@ msgstr "Banka Uzlaştırma Hareketi Önayarı"
#: model:ir.model.fields,field_description:account.field_res_company__account_bank_reconciliation_start
#: model:ir.model.fields,field_description:account.field_res_config_settings__account_bank_reconciliation_start
msgid "Bank Reconciliation Threshold"
-msgstr ""
+msgstr "Banka Uzlaştırma Eşiği"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement
@@ -2231,7 +2245,7 @@ msgstr "Matrah Tutarı"
#: model:ir.model.fields,field_description:account.field_account_tax__cash_basis_base_account_id
#: model:ir.model.fields,field_description:account.field_account_tax_template__cash_basis_base_account_id
msgid "Base Tax Received Account"
-msgstr ""
+msgstr "Temel Vergi Alınan Hesap"
#. module: account
#: code:addons/account/models/company.py:19
@@ -2270,7 +2284,7 @@ msgstr "Ödemeye Dayalı"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Batch Payments"
-msgstr ""
+msgstr "Toplu Ödeme"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__belongs_to_company
@@ -2324,7 +2338,7 @@ msgstr "Ödenecek Faturalar"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "Bills to Validate"
-msgstr ""
+msgstr "Onaylanacak Faturalar"
#. module: account
#: code:addons/account/models/account_journal_dashboard.py:178
@@ -2812,7 +2826,7 @@ msgstr ""
#: code:addons/account/static/src/xml/account_reconciliation.xml:137
#, python-format
msgid "Choose counterpart or Create Write-off"
-msgstr ""
+msgstr "Karşı hesap seçin yada borcu silin"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_refund__filter_refund
@@ -2848,6 +2862,8 @@ msgid ""
"Click to <b>validate your invoice.</b> A reference will be assigned to this "
"invoice and you will not be able to modify it anymore."
msgstr ""
+"Faturanızı <b>doğrulamak için tıklayın.</b> Bu faturaya bir referans "
+"atanacak ve artık faturada değişikli yapamayacaksınız."
#. module: account
#. openerp-web
@@ -2937,7 +2953,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_common_journal_report
msgid "Common Journal Report"
-msgstr ""
+msgstr "Ortak Yevmiye Raporu"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu
@@ -3256,7 +3272,7 @@ msgstr "Taslak İade/Fiyat Farkı oluşturun"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_move_journal_line
msgid "Create a journal entry"
-msgstr ""
+msgstr "Yevmiye girişi oluştur"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_group_tree
@@ -3287,7 +3303,7 @@ msgstr "Yeni Satınalınabilir Ürün Oluştur."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_reconcile_model
msgid "Create a new reconciliation model"
-msgstr ""
+msgstr "Yeni uzlaşma modeli oluşturun"
#. module: account
#: model_terms:ir.actions.act_window,help:account.product_product_action_sellable
@@ -3775,7 +3791,7 @@ msgstr "Tarihler"
#: model:ir.model.fields,field_description:account.field_account_payment_term_line__day_of_the_month
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_tree
msgid "Day of the month"
-msgstr ""
+msgstr "Ayın Günü"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment_term_line__day_of_the_month
@@ -4075,7 +4091,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Disc (%)"
-msgstr ""
+msgstr "İnd (%)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__discount
@@ -4173,6 +4189,8 @@ msgid ""
"Do not keep a copy of the email in the document communication history (mass "
"mailing only)"
msgstr ""
+"E-postanın bir kopyasını belge iletişim geçmişinde saklamayın (yalnızca "
+"toplu postalama)"
#. module: account
#: selection:res.company,account_dashboard_onboarding_state:0
@@ -4490,7 +4508,7 @@ msgstr "Gemide Masrafsız (FOB)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__starred_partner_ids
msgid "Favorited By"
-msgstr ""
+msgstr "Favori"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_search
@@ -4684,12 +4702,12 @@ msgstr "Tekipçiler (İş ortakları)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__inbound_payment_method_ids
msgid "For Incoming Payments"
-msgstr ""
+msgstr "Gelen Ödemeler İçin"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__outbound_payment_method_ids
msgid "For Outgoing Payments"
-msgstr ""
+msgstr "Giden Ödemeler İçin"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment_term_line__value_amount
@@ -4874,7 +4892,7 @@ msgstr "Yapılandırma paneline git"
#: code:addons/account/models/company.py:482
#, python-format
msgid "Go to the journal configuration"
-msgstr ""
+msgstr "Yevmiye yapılandırmasına git"
#. module: account
#: selection:res.partner,trust:0
@@ -5481,7 +5499,7 @@ msgstr ""
#: model:ir.model.fields,field_description:account.field_account_account__internal_group
#: model:ir.model.fields,field_description:account.field_account_account_type__internal_group
msgid "Internal Group"
-msgstr ""
+msgstr "İç Grup"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__narration
@@ -5749,7 +5767,7 @@ msgstr "Fatura borçları"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "Invoices to Validate"
-msgstr ""
+msgstr "Doğrulanacak Faturalar"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment__reconciled_invoice_ids
@@ -6030,7 +6048,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__journal_currency_id
msgid "Journal's Currency"
-msgstr ""
+msgstr "Yevmiye Para Birimi"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_journal_form
@@ -6068,7 +6086,7 @@ msgstr "Haziran"
#: selection:res.company,account_setup_coa_state:0
#: selection:res.company,account_setup_fy_data_state:0
msgid "Just done"
-msgstr ""
+msgstr "Yeni bitti"
#. module: account
#: model:ir.model.fields,field_description:account.field_tax_adjustments_wizard__reason
@@ -6426,7 +6444,7 @@ msgstr ""
#. module: account
#: selection:account.setup.bank.manual.config,create_or_link_option:0
msgid "Link to an existing journal"
-msgstr ""
+msgstr "Mevcut bir yevmiyeyi kullan"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__move_id
@@ -6627,7 +6645,7 @@ msgstr "Toplu Postalama Kampanya"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__mass_mailing_name
msgid "Mass Mailing Name"
-msgstr ""
+msgstr "Toplu Posta Adı"
#. module: account
#: selection:account.reconcile.model,match_label:0
@@ -6949,7 +6967,7 @@ msgstr "Sonraki Sayı"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__sequence_number_next_prefix
msgid "Next Number Prefix"
-msgstr ""
+msgstr "Sonraki Numara Öneki"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__blocked
@@ -7142,7 +7160,7 @@ msgstr "Eylem gerektiren mesaj sayısı"
#: model:ir.model.fields,help:account.field_account_invoice__message_has_error_counter
#: model:ir.model.fields,help:account.field_account_payment__message_has_error_counter
msgid "Number of messages with delivery error"
-msgstr ""
+msgstr "Teslimat hatası olan mesaj sayısı"
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement__message_unread_counter
@@ -7546,7 +7564,7 @@ msgstr "İş Ortağı Şirketi"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__country_id
msgid "Partner Company's Country"
-msgstr ""
+msgstr "İş Ortağı Şirket Ülkesi"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_partner__contract_ids
@@ -7678,7 +7696,7 @@ msgstr "Ödeme Yöntem Türü"
#: model_terms:ir.ui.view,arch_db:account.view_account_bank_journal_form
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
msgid "Payment Method Types"
-msgstr ""
+msgstr "Ödeme Yöntemi Türleri"
#. module: account
#. openerp-web
@@ -7710,7 +7728,7 @@ msgstr "Ödeme Makbuzu:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__reference
msgid "Payment Ref."
-msgstr ""
+msgstr "Ödeme Ref."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__payment_reference
@@ -7889,7 +7907,7 @@ msgstr "Planlanan"
#: code:addons/account/models/account_invoice.py:1187
#, python-format
msgid "Please add at least one invoice line."
-msgstr ""
+msgstr "Lütfen en az bir fatura satırı ekleyin."
#. module: account
#: code:addons/account/wizard/pos_box.py:27
@@ -8036,7 +8054,7 @@ msgstr "Önizle"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
msgid "Preview as a PDF"
-msgstr ""
+msgstr "PDF olarak önizle"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -8163,7 +8181,7 @@ msgstr "Satınalma"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
msgid "Purchase Representative"
-msgstr ""
+msgstr "Satınalma Temsilcisi"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -8209,7 +8227,7 @@ msgstr "Miktar:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__rating_value
msgid "Rating Value"
-msgstr ""
+msgstr "Değerlendirme Puanı"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_refund__description
@@ -8244,7 +8262,7 @@ msgstr "Alacak Hesapları"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__account_id
msgid "Receivable/Payable Account"
-msgstr ""
+msgstr "Alacak / Borç Hesabı"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.product_template_form_view
@@ -8273,7 +8291,7 @@ msgstr "Alıcılar"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__recompute_tax_line
msgid "Recompute Tax Line"
-msgstr ""
+msgstr "Vergi Satırını Yeniden Hesapla"
#. module: account
#. openerp-web
@@ -8306,7 +8324,7 @@ msgstr "Uzlaştırılmış"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__reconciled_invoice_ids
msgid "Reconciled Invoices"
-msgstr ""
+msgstr "Uzlaştırılmış Faturalar"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
@@ -8436,7 +8454,7 @@ msgstr ""
#: model_terms:ir.actions.act_window,help:account.action_account_payments_payable
#: model_terms:ir.actions.act_window,help:account.action_account_payments_transfer
msgid "Register a payment"
-msgstr ""
+msgstr "Ödeme kaydet"
#. module: account
#: selection:account.account.type,type:0
@@ -8456,7 +8474,7 @@ msgstr "İlgili Döküman Modeli"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__rating_ids
msgid "Related ratings"
-msgstr ""
+msgstr "İlişkili değerlendirmeler"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__residual_company_signed
@@ -8990,7 +9008,7 @@ msgstr "Eposta Gönder"
#: code:addons/account/models/account_invoice.py:622
#, python-format
msgid "Send Invoice"
-msgstr ""
+msgstr "Fatura Gönder"
#. module: account
#: selection:account.abstract.payment,payment_type:0
@@ -9007,12 +9025,12 @@ msgstr "E-postayla Makbuz Gönder"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_sample_invoice
msgid "Send a sample invoice"
-msgstr ""
+msgstr "Örnek fatura gönder"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
msgid "Send an invoice to test the customer portal."
-msgstr ""
+msgstr "Müşteri portalını test etmek için bir fatura gönderin."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
@@ -9395,6 +9413,10 @@ msgid ""
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
+"Etkinliklerdeki aşamalar\n"
+"Zamanı Geçmiş: Tarihi geçmiş \n"
+"Bugün: Etkinlik günü bugün\n"
+"Planlanan: Gelecek etkinlikler."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_bank_account_step
@@ -10267,7 +10289,7 @@ msgstr ""
#: code:addons/account/models/company.py:161
#, python-format
msgid "The lock date for advisors is irreversible and can't be removed."
-msgstr ""
+msgstr "Müşavirler için kilit tarihleri geri alınamaz ve değiştirilemez."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__move_id
@@ -10285,6 +10307,8 @@ msgstr "Hesap hareket satırlarında kullanılacak ad"
msgid ""
"The new lock date for advisors must be set after the previous lock date."
msgstr ""
+"Müşavirler için yeni kilit tarihi, önceki kilit tarihinden sonraya "
+"ayarlanmalıdır."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__refund_sequence_number_next
@@ -10995,6 +11019,8 @@ msgid ""
"Tracked values are stored in a separate model. This field allow to "
"reconstruct the tracking and to generate statistics on the model."
msgstr ""
+"Takip edilen değerler ayrı modellerde depolanır. Bu alan, takip etmeyi "
+"yeniden oluşturmaya ve model üzerinde istatistik oluşturmanıza imkan verir."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__tracking_value_ids
@@ -11718,6 +11744,9 @@ msgid ""
"You cannot define stricter conditions on advisors than on users. Please make"
" sure that the lock date on advisor is set before the lock date for users."
msgstr ""
+"Müşavirler için, kullanıcılardan daha katı kurallar tanımlayamazsınız. "
+"Lütfen, müşavirler için tanımladığınız kilit tarihinin, kullanıcılar için "
+"tanımlanan kilit tarihinden önce olduğuna emin olun."
#. module: account
#: code:addons/account/models/account_payment.py:583
@@ -11785,6 +11814,8 @@ msgid ""
"You cannot have a receivable/payable account that is not reconcilable. "
"(account code: %s)"
msgstr ""
+"Uzlaştırılamayan bir alacak / borç hesabına sahip olamazsınız. (hesap kodu: "
+"%s)"
#. module: account
#: code:addons/account/models/account.py:76
@@ -11801,6 +11832,8 @@ msgid ""
"You cannot lock a period that is not finished yet. Please make sure that the"
" lock date for advisors is not set after the last day of the previous month."
msgstr ""
+"Henüz bitmemiş bir dönemi kilitleyemezsiniz. Lütfen müşavirler için kilit "
+"tarihini, önceki ayın son gününden sonraya ayarlamadığınızdan emin olun."
#. module: account
#. openerp-web
@@ -11872,6 +11905,8 @@ msgid ""
"You cannot set a currency on this account as it already has some journal "
"entries having a different foreign currency."
msgstr ""
+"Farklı para biriminde yevmiye kayıtları olduğu için bu hesap üzerinde bir "
+"para birimi tanımlayamazsınız."
#. module: account
#: code:addons/account/models/account.py:301
@@ -11918,7 +11953,7 @@ msgstr "Var"
#: code:addons/account/models/account_payment.py:622
#, python-format
msgid "You have to define a sequence for %s in your company."
-msgstr ""
+msgstr "Şirketiniz için %s bir dizi tanımlamanız gerekmekte."
#. module: account
#: code:addons/account/wizard/pos_box.py:50
@@ -12083,13 +12118,6 @@ msgid "have been reconciled automatically."
msgstr ""
#. module: account
-#. openerp-web
-#: code:addons/account/static/src/xml/account_reconciliation.xml:44
-#, python-format
-msgid "o_manual_statement"
-msgstr ""
-
-#. module: account
#: selection:account.payment.term.line,option:0
msgid "of the current month"
msgstr ""
@@ -12147,7 +12175,7 @@ msgstr "ana şirket"
#: code:addons/account/static/src/xml/account_reconciliation.xml:55
#, python-format
msgid "transactions in"
-msgstr ""
+msgstr "İşlemler"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__amount_by_group
diff --git a/addons/account/i18n/uk.po b/addons/account/i18n/uk.po
index 485989d2cd2..d4cf685f529 100644
--- a/addons/account/i18n/uk.po
+++ b/addons/account/i18n/uk.po
@@ -42,6 +42,11 @@ msgid ""
" * 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."
msgstr ""
+" * Статус \"Чернетка\" використовується, коли користувач кодує новий і непідтверджений рахунок.\n"
+" * Статус \"Відкрито\" використовується, коли користувач створює рахунок-фактуру, генерується номер рахунку-фактури. Він залишається у відкритому стані, поки користувач не оплатить рахунок.\n"
+" * Статус \"В оплаті\" використовується, коли платежі були зареєстровані для загального рахунку в журналі, налаштованому для розміщення записів тільки при узгодженні банківської виписки, а деякі з них ще не узгоджені з рядком банківської виписки.\n"
+" * Статус \"Оплачено\" встановлюється автоматично після оплати рахунка-фактури. Його пов'язані записи журналу можуть або не можуть бути узгоджені.\n"
+" * Статус \"Скасовано\" використовується, коли користувач скасовує рахунок-фактуру."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_chart_template__code_digits
@@ -158,6 +163,22 @@ msgid ""
" </p>\n"
"</div>\n"
msgstr ""
+"<?xml version=\"1.0\"?>\n"
+"<div style=\"margin: 0px; padding: 0px;\">\n"
+" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
+" Шановний(а) ${object.partner_id.name}<br/><br/>\n"
+" Дякуємо за вашу оплату.\n"
+" Це ваша квитанція про оплату <strong>${(object.name or '').replace('/','-')}</strong> у сумі\n"
+" в <strong>${format_amount(object.amount, object.currency_id)}</strong> від ${object.company_id.name}.\n"
+" <br/><br/>\n"
+" Не соромтеся звертатися до нас, якщо у вас виникли питання.\n"
+" <br/><br/>\n"
+" З найкращими побажаннями,<br/>\n"
+" % if user and user.signature:\n"
+" ${user.signature | safe}\n"
+" % endif\n"
+" </p>\n"
+"</div>\n"
#. module: account
#: model:mail.template,body_html:account.email_template_edi_invoice
@@ -191,6 +212,34 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div style=\"margin: 0px; padding: 0px;\">\n"
+" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
+" Шановий(а) ${object.partner_id.name}\n"
+" % if object.partner_id.parent_id:\n"
+" (${object.partner_id.parent_id.name})\n"
+" % endif\n"
+" <br/><br/>\n"
+" Це ваш рахунок \n"
+" % if object.number:\n"
+" invoice <strong>${object.number}</strong>\n"
+" % else:\n"
+" invoice\n"
+" %endif\n"
+" % if object.origin:\n"
+" (with reference: ${object.origin})\n"
+" % endif\n"
+" у сумі <strong>${format_amount(object.amount_total, object.currency_id)}</strong>\n"
+" від ${object.company_id.name}.\n"
+" % if object.state=='paid':\n"
+" Цей рахунок вже оплачено.\n"
+" % else:\n"
+" Здійсніть платіж якомога швидше.\n"
+" % endif\n"
+" <br/><br/>\n"
+" Не соромтеся зв'язатися з нами, якщо у вас є запитання.\n"
+" </p>\n"
+"</div>\n"
+" "
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_home_menu_invoice
@@ -358,6 +407,8 @@ msgid ""
"<span class=\"o_form_label\">All selected journal entries will be validated "
"and posted. You won't be able to modify them afterwards.</span>"
msgstr ""
+"<span class=\"o_form_label\">Всі вибрані записи журналу будуть перевірені та"
+" опубліковані. Після цього ви не зможете змінити їх.</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -412,6 +463,8 @@ msgid ""
"<span class=\"text-muted\">Only journals not yet linked to a bank account "
"are proposed</span>"
msgstr ""
+"<span class=\"text-muted\">Запропоновано лише журнали, які ще не пов'язані з"
+" банківським рахунком</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -577,6 +630,8 @@ msgid ""
"<strong class=\"text-center\">The SEPA QR Code informations are not set "
"correctly.</strong><br/>"
msgstr ""
+"<strong class=\"text-center\">Інформація QR-коду SEPA не встановлена "
+"правильно.</strong><br/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -714,7 +769,7 @@ msgstr "Тільки один рядок терміну оплати повинÐ
#: code:addons/account/models/account.py:861
#, python-format
msgid "A bank account can belong to only one journal."
-msgstr ""
+msgstr "Банківський рахунок може належати лише одному журналу."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_tree
@@ -730,7 +785,7 @@ msgstr ""
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_line
msgid "A bank statement line is a financial transaction on a bank account"
-msgstr ""
+msgstr "Банківська виписка - це фінансова операція на банківському рахунку"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_move_journal_line
@@ -759,6 +814,10 @@ msgid ""
"posted. Those will be posted automatically after performing the bank "
"reconciliation."
msgstr ""
+"Запис журналу платежів, згенерований у журналі, налаштований для публікації "
+"записів тільки тоді, коли платежі узгоджуються з випискою банку, не може "
+"бути опубліковано вручну. Вони будуть опубліковані автоматично після "
+"виконання банківської звірки."
#. module: account
#: code:addons/account/models/reconciliation_widget.py:692
@@ -792,6 +851,7 @@ msgstr "Вибраний рядок заяви вже був узгоджениÐ
#: sql_constraint:account.fiscal.position.tax:0
msgid "A tax fiscal position could be defined only one time on same taxes."
msgstr ""
+"Схема оподаткування може бути визначена лише один раз на однакові податки."
#. module: account
#: model:res.groups,name:account.group_warning_account
@@ -834,11 +894,13 @@ msgid ""
"Account %s (%s) does not allow reconciliation. First change the "
"configuration of this account to allow it."
msgstr ""
+"Рахунок %s (%s) не дозволяє узгодження. Спочатку змініть налаштування цього "
+"рахунку, щоби дозволити узгодження."
#. module: account
#: model:ir.model,name:account.model_account_cash_rounding
msgid "Account Cash Rounding"
-msgstr ""
+msgstr "Округлення рахунку в бухобліку"
#. module: account
#: model:ir.model,name:account.model_account_chart_template
@@ -1313,7 +1375,7 @@ msgstr "Додати примітку"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Add a payment QR code to your invoices"
-msgstr ""
+msgstr "Додайте QR-код оплати до ваших рахунків"
#. module: account
#: selection:account.cash.rounding,strategy:0
@@ -2376,7 +2438,7 @@ msgstr "Рахунки до оплати"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "Bills to Validate"
-msgstr ""
+msgstr "Рахунки для перевірки"
#. module: account
#: code:addons/account/models/account_journal_dashboard.py:178
@@ -6564,7 +6626,7 @@ msgstr "Введіть внутрішню примітку"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_invoice_layout_step
msgid "Looks great!"
-msgstr ""
+msgstr "Виглядає чудово!"
#. module: account
#: code:addons/account/models/account_bank_statement.py:175
@@ -7794,7 +7856,7 @@ msgstr "Квитанція про оплату:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__reference
msgid "Payment Ref."
-msgstr ""
+msgstr "Референс оплати"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__payment_reference
@@ -9110,7 +9172,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
msgid "Send sample"
-msgstr ""
+msgstr "Надіслати зразок"
#. module: account
#: selection:account.payment,state:0
@@ -9753,7 +9815,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__amount_by_group
msgid "Tax amount by group"
-msgstr ""
+msgstr "Сума податку за групами"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__tax_calculation_rounding_method
@@ -12277,7 +12339,7 @@ msgstr "транзакція в"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__amount_by_group
msgid "type: [(name, amount, base, formated amount, formated base)]"
-msgstr ""
+msgstr "type: [(name, amount, base, formated amount, formated base)]"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_bank_statement_form
diff --git a/addons/account/models/account_journal_dashboard.py b/addons/account/models/account_journal_dashboard.py
index c0be7dad2d7..f815820da4a 100644
--- a/addons/account/models/account_journal_dashboard.py
+++ b/addons/account/models/account_journal_dashboard.py
@@ -392,12 +392,11 @@ class account_journal(models.Model):
'journal_type': self.type,
'default_journal_id': self.id,
'default_type': invoice_type,
- 'type': invoice_type
+ 'type': invoice_type,
+ 'search_default_journal_id': self.id,
})
[action] = self.env.ref('account.%s' % action_name).read()
- if not self.env.context.get('use_domain'):
- ctx['search_default_journal_id'] = self.id
action['context'] = ctx
action['domain'] = self._context.get('use_domain', [])
account_invoice_filter = self.env.ref('account.view_account_invoice_filter', False)
diff --git a/addons/account/views/account_invoice_view.xml b/addons/account/views/account_invoice_view.xml
index d8a7a9c7cc5..42138b29f8e 100644
--- a/addons/account/views/account_invoice_view.xml
+++ b/addons/account/views/account_invoice_view.xml
@@ -655,6 +655,7 @@
<search string="Search Invoice">
<field name="number" string="Invoice" filter_domain="['|','|','|', ('number','ilike',self), ('origin','ilike',self), ('reference', 'ilike', self), ('partner_id', 'child_of', self)]"/>
<filter domain="[('user_id','=',uid)]" name="myinvoices" help="My Invoices"/>
+ <field name="journal_id"/>
<separator/>
<filter name="draft" string="Draft" domain="[('state','=','draft')]"/>
<filter name="unpaid" string="Open" domain="[('state', '=', 'open')]"/>
diff --git a/addons/account_analytic_default/i18n/nl.po b/addons/account_analytic_default/i18n/nl.po
index da5e493ea26..d6316fa4f8e 100644
--- a/addons/account_analytic_default/i18n/nl.po
+++ b/addons/account_analytic_default/i18n/nl.po
@@ -5,10 +5,9 @@
# Translators:
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2016
# Martin Trigaux, 2016
-# Yenthe Van Ginneken <yenthespam@gmail.com>, 2017
# Cas Vissers <casvissers@brahoo.nl>, 2017
# Eric Geens <ericgeens@yahoo.com>, 2018
-# Wynand Tastenhoye <wta@odoo.com>, 2018
+# Yenthe Van Ginneken <yenthespam@gmail.com>, 2018
#
msgid ""
msgstr ""
@@ -16,7 +15,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Wynand Tastenhoye <wta@odoo.com>, 2018\n"
+"Last-Translator: Yenthe Van Ginneken <yenthespam@gmail.com>, 2018\n"
"Language-Team: Dutch (https://www.transifex.com/odoo/teams/41243/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -51,8 +50,8 @@ msgid ""
"An analytic default requires at least an analytic account or an analytic "
"tag."
msgstr ""
-"Een analytische standaardwaarde vereist ten minste een analytische rekening "
-"of een analytische tag."
+"Een kostenplaats standaardwaarde vereist ten minste een kostenplaats "
+"rekening of een kostenplaats label."
#. module: account_analytic_default
#: model:ir.model.fields,field_description:account_analytic_default.field_account_analytic_default__analytic_id
diff --git a/addons/account_bank_statement_import/i18n/tr.po b/addons/account_bank_statement_import/i18n/tr.po
index b44e82c7c77..82386eb3c00 100644
--- a/addons/account_bank_statement_import/i18n/tr.po
+++ b/addons/account_bank_statement_import/i18n/tr.po
@@ -6,6 +6,7 @@
# Levent Karakaş <levent@mektup.at>, 2017
# Umur Akın <umura@projetgrup.com>, 2018
# Murat Kaplan <muratk@projetgrup.com>, 2018
+# Ediz Duman <neps1192@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -13,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Murat Kaplan <muratk@projetgrup.com>, 2018\n"
+"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -287,12 +288,12 @@ msgstr "Dosya Adı"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__inbound_payment_method_ids
msgid "For Incoming Payments"
-msgstr ""
+msgstr "Gelen Ödemeler İçin"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__outbound_payment_method_ids
msgid "For Outgoing Payments"
-msgstr ""
+msgstr "Giden Ödemeler İçin"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import__data_file
diff --git a/addons/account_check_printing/i18n/hr.po b/addons/account_check_printing/i18n/hr.po
index febb8e6d584..a06a746186f 100644
--- a/addons/account_check_printing/i18n/hr.po
+++ b/addons/account_check_printing/i18n/hr.po
@@ -39,7 +39,7 @@ msgstr "Ček memo ne može sadržavati više od 60 znakova."
#. module: account_check_printing
#: model:ir.model,name:account_check_printing.model_account_chart_template
msgid "Account Chart Template"
-msgstr ""
+msgstr "Predložak kontnog plana"
#. module: account_check_printing
#: model:ir.model.fields,help:account_check_printing.field_res_company__account_check_printing_margin_left
@@ -159,7 +159,7 @@ msgstr ""
#. module: account_check_printing
#: model:ir.model,name:account_check_printing.model_res_config_settings
msgid "Config Settings"
-msgstr ""
+msgstr "Postavke"
#. module: account_check_printing
#: model:ir.model.fields,field_description:account_check_printing.field_print_prenumbered_checks__create_uid
diff --git a/addons/account_payment/i18n/tr.po b/addons/account_payment/i18n/tr.po
index c9788ab956f..07546100642 100644
--- a/addons/account_payment/i18n/tr.po
+++ b/addons/account_payment/i18n/tr.po
@@ -4,12 +4,12 @@
#
# Translators:
# Saban Yildiz <sabany@projetgrup.com>, 2017
-# Ediz Duman <neps1192@gmail.com>, 2017
# Martin Trigaux, 2017
# Hakan ıı, 2017
# Murat Kaplan <muratk@projetgrup.com>, 2017
-# Umur Akın <umura@projetgrup.com>, 2018
# Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2019
+# Umur Akın <umura@projetgrup.com>, 2019
+# Ediz Duman <neps1192@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
"PO-Revision-Date: 2017-12-13 14:50+0000\n"
-"Last-Translator: Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2019\n"
+"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -41,21 +41,23 @@ msgid ""
"<i class=\"fa fa-arrow-circle-right\"/><span class=\"d-none d-md-inline\"> "
"Pay Now</span>"
msgstr ""
+"<i class=\"fa fa-arrow-circle-right\"/><span class=\"d-none d-md-inline\"> "
+"Şimdi Öde</span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_page_inherit_payment
msgid "<i class=\"fa fa-fw fa-arrow-circle-right\"/> Pay Now"
-msgstr ""
+msgstr "<i class=\"fa fa-fw fa-arrow-circle-right\"/> Şimdi Öde"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_page_inherit_payment
msgid "<i class=\"fa fa-fw fa-check-circle\"/> Paid"
-msgstr ""
+msgstr "<i class=\"fa fa-fw fa-check-circle\"/> Ödendi"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_page_inherit_payment
msgid "<i class=\"fa fa-fw fa-check-circle\"/> Pending"
-msgstr ""
+msgstr "<i class=\"fa fa-fw fa-check-circle\"/> Bekliyor"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_page_inherit_payment
@@ -63,6 +65,8 @@ msgid ""
"<i class=\"fa fa-info\"/> You have credits card registered, you can log-in "
"to be able to use them."
msgstr ""
+"<i class=\"fa fa-info\"/> Kayıtlı bir kredi kartınız var, kullanabilmek için"
+" giriş yapabilirsiniz."
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
@@ -70,6 +74,8 @@ msgid ""
"<span class=\"badge badge-pill badge-danger\"><i class=\"fa fa-fw fa-"
"remove\"/><span class=\"d-none d-md-inline\"> Cancelled</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-danger\"><i class=\"fa fa-fw fa-"
+"remove\"/><span class=\"d-none d-md-inline\"> İptal Edildi</span></span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
@@ -78,6 +84,9 @@ msgid ""
"clock-o\"/><span class=\"d-none d-md-inline\"> Waiting for "
"Payment</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-info\"><i class=\"fa fa-fw fa-"
+"clock-o\"/><span class=\"d-none d-md-inline\"> Ödeme "
+"Bekleniyor</span></span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
@@ -92,6 +101,8 @@ msgid ""
"<span class=\"badge badge-pill badge-success\"><i class=\"fa fa-fw fa-"
"check\"/><span class=\"d-none d-md-inline\"> Paid</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-success\"><i class=\"fa fa-fw fa-"
+"check\"/><span class=\"d-none d-md-inline\"> Ödendi</span></span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
@@ -99,6 +110,8 @@ msgid ""
"<span class=\"badge badge-pill badge-warning\"><span class=\"d-none d-md-"
"inline\"> Pending</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-warning\"><span class=\"d-none d-md-"
+"inline\"> Bekliyor</span></span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_success
@@ -106,6 +119,8 @@ msgid ""
"Done, your online payment has been successfully processed. Thank you for "
"your order."
msgstr ""
+"Tamam, çevrimiçi ödemeniz başarıyla işlendi. Siparişiniz için teşekkür "
+"ederiz."
#. module: account_payment
#: code:addons/account_payment/controllers/payment.py:47
@@ -132,7 +147,7 @@ msgstr "Şimdi Öde"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
msgid "Pay now"
-msgstr ""
+msgstr "Şimdi Öde"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_payment
@@ -165,7 +180,7 @@ msgstr ""
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_error
msgid "There was an error processing your payment: transaction failed.<br/>"
-msgstr ""
+msgstr "Ödeme işlemi sırasında bir sorun oluştu: işlem başarısız. <br/>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_error
diff --git a/addons/account_voucher/i18n/tr.po b/addons/account_voucher/i18n/tr.po
index 51dc0194577..7f0311c836e 100644
--- a/addons/account_voucher/i18n/tr.po
+++ b/addons/account_voucher/i18n/tr.po
@@ -8,7 +8,6 @@
# Gökhan Erdoğdu <gokhan.erdogdu@mechsoft.com.tr>, 2017
# gezgin biri <gezginbiri@hotmail.com>, 2017
# Fırat Kaya <firat.kaya@mechsoft.com.tr>, 2017
-# Ediz Duman <neps1192@gmail.com>, 2017
# Ayhan KIZILTAN <akiziltan76@hotmail.com>, 2018
# Martin Trigaux, 2018
# Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2018
@@ -16,6 +15,7 @@
# Ramiz Deniz Öner <deniz@denizoner.com>, 2018
# Murat Kaplan <muratk@projetgrup.com>, 2019
# Buket Şeker <buket_skr@hotmail.com>, 2019
+# Ediz Duman <neps1192@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -23,7 +23,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Buket Şeker <buket_skr@hotmail.com>, 2019\n"
+"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -379,7 +379,7 @@ msgstr "Eylem gerektiren mesaj sayısı"
#. module: account_voucher
#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_has_error_counter
msgid "Number of messages with delivery error"
-msgstr ""
+msgstr "Teslimat hatası olan mesaj sayısı"
#. module: account_voucher
#: model:ir.model.fields,help:account_voucher.field_account_voucher__message_unread_counter
diff --git a/addons/analytic/i18n/tr.po b/addons/analytic/i18n/tr.po
index 954f14b7993..dfb45f30daf 100644
--- a/addons/analytic/i18n/tr.po
+++ b/addons/analytic/i18n/tr.po
@@ -12,10 +12,10 @@
# Mehmet Demirel <mdemirell@gmail.com>, 2018
# Ramiz Deniz Öner <deniz@denizoner.com>, 2018
# Metin Akın <aknmetin@gmail.com>, 2018
-# Ediz Duman <neps1192@gmail.com>, 2018
# Martin Trigaux, 2019
# Murat Kaplan <muratk@projetgrup.com>, 2019
# Buket Şeker <buket_skr@hotmail.com>, 2019
+# Ediz Duman <neps1192@gmail.com>, 2019
#
msgid ""
msgstr ""
@@ -23,7 +23,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
"PO-Revision-Date: 2016-08-05 12:56+0000\n"
-"Last-Translator: Buket Şeker <buket_skr@hotmail.com>, 2019\n"
+"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2019\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -444,7 +444,7 @@ msgstr "Eylem gerektiren mesaj sayısı"
#. module: analytic
#: model:ir.model.fields,help:analytic.field_account_analytic_account__message_has_error_counter
msgid "Number of messages with delivery error"
-msgstr ""
+msgstr "Teslimat hatası olan mesaj sayısı"
#. module: analytic
#: model:ir.model.fields,help:analytic.field_account_analytic_account__message_unread_counter
diff --git a/addons/board/static/src/js/board_view.js b/addons/board/static/src/js/board_view.js
index 0d9c90beb0e..bcfc892213d 100644
--- a/addons/board/static/src/js/board_view.js
+++ b/addons/board/static/src/js/board_view.js
@@ -120,7 +120,6 @@ var BoardController = FormController.extend({
var BoardRenderer = FormRenderer.extend({
custom_events: _.extend({}, FormRenderer.prototype.custom_events, {
- do_action: '_onDoAction',
update_filters: '_onUpdateFilters',
switch_view: '_onSwitchView',
}),
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 6b3f98cd3eb..19e3ec8c6bd 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -25,19 +25,23 @@ QUnit.module('Dashboard', {
display_name: {string: "Displayed name", type: "char", searchable: true},
foo: {string: "Foo", type: "char", default: "My little Foo Value", searchable: true},
bar: {string: "Bar", type: "boolean"},
+ int_field: {string: "Integer field", type: "integer"},
},
records: [{
id: 1,
display_name: "first record",
foo: "yop",
+ int_field: 3,
}, {
id: 2,
display_name: "second record",
foo: "lalala",
+ int_field: 5,
}, {
id: 4,
display_name: "aaa",
foo: "abc",
+ int_field: 2,
}],
},
};
@@ -859,4 +863,47 @@ QUnit.test("Dashboard should use correct groupby", function (assert) {
form.destroy();
});
+
+QUnit.test('click on a cell of pivot view inside dashboard', function (assert) {
+ assert.expect(3);
+
+ var form = createView({
+ View: BoardView,
+ model: 'board',
+ data: this.data,
+ arch: '<form>' +
+ '<board style="2-1">' +
+ '<column>' +
+ '<action view_mode="pivot" string="ABC" name="51"></action>' +
+ '</column>' +
+ '</board>' +
+ '</form>',
+ mockRPC: function (route) {
+ if (route === '/web/action/load') {
+ return $.when({
+ res_model: 'partner',
+ views: [[4, 'pivot']],
+ });
+ }
+ return this._super.apply(this, arguments);
+ },
+ archs: {
+ 'partner,4,pivot': '<pivot><field name="int_field" type="measure"/></pivot>',
+ },
+ intercepts: {
+ do_action: function () {
+ assert.step('do action');
+ },
+ },
+ });
+
+ assert.verifySteps([]);
+
+ testUtils.dom.click(form.$('.o_pivot .o_pivot_cell_value'));
+
+ assert.verifySteps(['do action']);
+
+ form.destroy();
+});
+
});
diff --git a/addons/hr_holidays/i18n/hr_holidays.pot b/addons/hr_holidays/i18n/hr_holidays.pot
index 116d071dbcc..0836ffa40a3 100644
--- a/addons/hr_holidays/i18n/hr_holidays.pot
+++ b/addons/hr_holidays/i18n/hr_holidays.pot
@@ -1725,6 +1725,11 @@ msgid "My Team Leaves"
msgstr ""
#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_hr_holidays_dashboard
+msgid "My Team"
+msgstr ""
+
+#. module: hr_holidays
#: selection:hr.employee,current_leave_state:0
msgid "New"
msgstr ""
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index 65760f4f6d1..be18aaa71d6 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -507,6 +507,8 @@ class HolidaysRequest(models.Model):
holiday = super(HolidaysRequest, self.with_context(mail_create_nolog=True, mail_create_nosubscribe=True)).create(values)
if not self._context.get('leave_fast_create'):
holiday.add_follower(employee_id)
+ if holiday.validation_type == 'hr':
+ holiday.message_subscribe(partner_ids=(holiday.employee_id.parent_id.user_id.partner_id | holiday.employee_id.leave_manager_id.partner_id).ids)
if employee_id:
holiday._onchange_employee_id()
if 'number_of_days' not in values and ('date_from' in values or 'date_to' in values):
@@ -515,7 +517,7 @@ class HolidaysRequest(models.Model):
holiday.sudo().action_validate()
holiday.message_subscribe(partner_ids=[holiday._get_responsible_for_approval().partner_id.id])
holiday.sudo().message_post(body=_("The time off has been automatically approved"), subtype="mt_comment") # Message from OdooBot (sudo)
- if not self._context.get('import_file'):
+ elif not self._context.get('import_file'):
holiday.activity_update()
return holiday
@@ -719,7 +721,7 @@ class HolidaysRequest(models.Model):
employee_requests = self.filtered(lambda hol: hol.holiday_type == 'employee')
employee_requests._validate_leave_request()
if not self.env.context.get('leave_fast_create'):
- employee_requests.activity_update()
+ employee_requests.filtered(lambda holiday: holiday.validation_type != 'no_validation').activity_update()
return True
@api.multi
@@ -746,48 +748,69 @@ class HolidaysRequest(models.Model):
""" Check if target state is achievable. """
current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)
is_team_leader = self.env.user.has_group('hr_holidays.group_hr_holidays_team_leader')
+ is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user')
is_manager = self.env.user.has_group('hr_holidays.group_hr_holidays_manager')
+
+ # FIXME This is probably handled by hr_leave_allocation_rule_employee_update ir.rule
+ if state in ['refuse', 'validate1', 'validate'] and not is_team_leader:
+ raise UserError(_('Only a Team Leader, Time Off Officer or Manager can approve or refuse time off requests.'))
+
for holiday in self:
val_type = holiday.holiday_status_id.validation_type
- if state == 'confirm':
- continue
- if state == 'draft':
- if holiday.employee_id != current_employee and not is_manager:
- raise UserError(_('Only a Time Off Manager can reset other people time off.'))
- continue
+ if not is_manager:
+ if state == 'confirm':
+ continue
+ elif state == 'draft':
+ if holiday.employee_id != current_employee:
+ raise UserError(_('Only a Time Off Manager can reset other people time off.'))
+ else:
+ # use ir.rule based first access check: department, members, ... (see security.xml)
+ holiday.check_access_rule('write')
- if not is_team_leader:
- raise UserError(_('Only a Team Leader, Time Off Officer or Manager can approve or refuse time off requests.'))
+ # FIXME Should probably be handled via ir.rule
+ # This handles states validate1 validate and refuse
+ if holiday.employee_id == current_employee:
+ raise UserError(_('Only a Time Off Manager can approve its own requests.'))
- if is_team_leader:
- # use ir.rule based first access check: department, members, ... (see security.xml)
- holiday.check_access_rule('write')
+ if (state == 'validate1' and val_type == 'both') or (state == 'validate' and val_type == 'manager') and holiday.holiday_type == 'employee':
+ manager = holiday.employee_id.parent_id or holiday.employee_id.department_id.manager_id
+ team_leader = holiday.employee_id.leave_manager_id
+ error = False
- if holiday.employee_id == current_employee and not is_manager:
- raise UserError(_('Only a Time Off Manager can approve its own requests.'))
+ if not manager and not team_leader:
+ error = not is_officer
+ else:
+ error = (not (manager and manager == current_employee) and not (team_leader and team_leader == self.env.user))
- if (state == 'validate1' and val_type == 'both') or (state == 'validate' and val_type == 'manager'):
- manager = holiday.employee_id.parent_id or holiday.employee_id.department_id.manager_id
- if (manager and manager != current_employee) and not self.env.user.has_group('hr_holidays.group_hr_holidays_manager'):
- raise UserError(_('You must be either %s\'s manager or Time Off Manager to approve this time off') % (holiday.employee_id.name))
+ if error:
+ raise UserError(_('You must be either %s\'s manager or Time Off Manager to approve this time off') % (holiday.employee_id.name))
- if state == 'validate' and val_type == 'both':
- if not self.env.user.has_group('hr_holidays.group_hr_holidays_manager'):
- raise UserError(_('Only an Time Off Manager can apply the second approval on time off requests.'))
+ if state == 'validate' and val_type == 'both':
+ raise UserError(_('Only an Time Off Manager can apply the second approval on time off requests.'))
# ------------------------------------------------------------
# Activity methods
# ------------------------------------------------------------
def _get_responsible_for_approval(self):
- if self.state == 'confirm' and self.employee_id.leave_manager_id and self.employee_id.leave_manager_id.has_group('hr_holidays.group_hr_holidays_team_leader'):
- return self.employee_id.leave_manager_id
- elif self.state == 'confirm' and self.employee_id.parent_id.user_id and self.employee_id.parent_id.user_id.has_group('hr_holidays.group_hr_holidays_team_leader'):
- return self.employee_id.parent_id.user_id
- elif self.department_id.manager_id.user_id:
- return self.department_id.manager_id.user_id
- return self.env.user
+ self.ensure_one()
+ responsible = self.env.user
+
+ if self.validation_type == 'hr' or (self.validation_type == 'both' and self.state == 'validate1'):
+ responsible = self.env['res.users'].search([
+ ('company_id', '=', self.employee_id.company_id.id),
+ ('groups_id', 'in', self.env.ref('hr_holidays.group_hr_holidays_user').id)
+ ], limit=1)
+ elif self.state == 'confirm' or (self.state == 'validate' and self.validation_type == 'no_validation'):
+ if self.employee_id.leave_manager_id and self.employee_id.leave_manager_id.has_group('hr_holidays.group_hr_holidays_team_leader'):
+ responsible = self.employee_id.leave_manager_id
+ elif self.employee_id.parent_id.user_id and self.employee_id.parent_id.user_id.has_group('hr_holidays.group_hr_holidays_team_leader'):
+ responsible = self.employee_id.parent_id.user_id
+ elif self.department_id.manager_id.user_id:
+ responsible = self.department_id.manager_id.user_id
+
+ return responsible
def activity_update(self):
to_clean, to_do = self.env['hr.leave'], self.env['hr.leave']
@@ -838,7 +861,7 @@ class HolidaysRequest(models.Model):
ref_action = self._notify_get_action_link('controller', controller='/leave/refuse')
hr_actions += [{'url': ref_action, 'title': _('Refuse')}]
- holiday_user_group_id = self.env.ref('hr_holidays.group_hr_holidays_user').id
+ holiday_user_group_id = self.env.ref('hr_holidays.group_hr_holidays_team_leader').id
new_group = (
'group_hr_holidays_user', lambda pdata: pdata['type'] == 'user' and holiday_user_group_id in pdata['groups'], {
'actions': hr_actions,
diff --git a/addons/hr_holidays/models/hr_leave_allocation.py b/addons/hr_holidays/models/hr_leave_allocation.py
index 206a3933555..8be3c4ac604 100644
--- a/addons/hr_holidays/models/hr_leave_allocation.py
+++ b/addons/hr_holidays/models/hr_leave_allocation.py
@@ -338,6 +338,8 @@ class HolidaysAllocation(models.Model):
values.update({'department_id': self.env['hr.employee'].browse(employee_id).department_id.id})
holiday = super(HolidaysAllocation, self.with_context(mail_create_nolog=True, mail_create_nosubscribe=True)).create(values)
holiday.add_follower(employee_id)
+ if holiday.validation_type == 'hr':
+ holiday.message_subscribe(partner_ids=(holiday.employee_id.parent_id.user_id.partner_id | holiday.employee_id.leave_manager_id.partner_id).ids)
if 'employee_id' in values:
holiday._onchange_employee()
holiday.activity_update()
@@ -520,6 +522,12 @@ class HolidaysAllocation(models.Model):
# ------------------------------------------------------------
def _get_responsible_for_approval(self):
+ self.ensure_one()
+ if self.validation_type == 'hr' or (self.validation_type == 'both' and self.state == 'validate1'):
+ return self.env['res.users'].search([
+ ('company_id', '=', self.employee_id.company_id.id),
+ ('groups_id', 'in', self.env.ref('hr_holidays.group_hr_holidays_user').id)
+ ], limit=1)
if self.state == 'confirm' and self.employee_id.parent_id.user_id:
return self.employee_id.parent_id.user_id
elif self.department_id.manager_id.user_id:
diff --git a/addons/hr_holidays/models/hr_leave_type.py b/addons/hr_holidays/models/hr_leave_type.py
index 8d461c53a78..e5a5d810240 100644
--- a/addons/hr_holidays/models/hr_leave_type.py
+++ b/addons/hr_holidays/models/hr_leave_type.py
@@ -70,14 +70,6 @@ class HolidaysType(models.Model):
('hr', 'Payroll Officer'),
('manager', 'Team Leader'),
('both', 'Team Leader and Payroll Officer')], default='hr', string='Validation')
- # TODO: remove me in master, the behavior is exactly the same if you choose 'hr' or 'manager'
- # in the validation_type field. This field is used only to hide this possibility to the user
- # to avoid misunderstandings. This field and its corresponding's functions must be removed once
- # the functional part is implemented.
- double_validation = fields.Boolean(string='Apply Double Validation',
- compute='_compute_validation_type', inverse='_inverse_validation_type',
- help="When selected, the Allocation/Leave Requests for this type require a second validation to be approved.")
-
allocation_type = fields.Selection([
('no', 'No Allocation Needed'),
('fixed_allocation', 'Free Allocation Request'),
@@ -99,25 +91,6 @@ class HolidaysType(models.Model):
leave_notif_subtype_id = fields.Many2one('mail.message.subtype', string='Time Off Notification Subtype', default=lambda self: self.env.ref('hr_holidays.mt_leave', raise_if_not_found=False))
allocation_notif_subtype_id = fields.Many2one('mail.message.subtype', string='Allocation Notification Subtype', default=lambda self: self.env.ref('hr_holidays.mt_leave_allocation', raise_if_not_found=False))
- # TODO: remove me in master
- @api.depends('validation_type')
- def _compute_validation_type(self):
- for holiday_type in self:
- if holiday_type.validation_type == 'both':
- holiday_type.double_validation = True
- else:
- holiday_type.double_validation = False
-
- # TODO: remove me in master
- def _inverse_validation_type(self):
- for holiday_type in self:
- if holiday_type.double_validation == True:
- holiday_type.validation_type = 'both'
- else:
- #IF to preserve the information (hr or manager)
- if holiday_type.validation_type == 'both':
- holiday_type.validation_type = 'hr'
-
@api.multi
@api.constrains('validity_start', 'validity_stop')
def _check_validity_dates(self):
diff --git a/addons/hr_holidays/views/hr_leave_type_views.xml b/addons/hr_holidays/views/hr_leave_type_views.xml
index 45b8b1a727d..f2c01f8e7f8 100644
--- a/addons/hr_holidays/views/hr_leave_type_views.xml
+++ b/addons/hr_holidays/views/hr_leave_type_views.xml
@@ -39,8 +39,8 @@
options='{"terminology": "archive"}'/>
</button>
</div>
- <div class="oe_title">
- <h1><field name="name"/></h1>
+ <div class="oe_title">
+ <h1><field name="name"/></h1>
</div>
<group>
<group name="description" string="Options">
@@ -49,8 +49,7 @@
<field name="sequence" groups="base.group_no_one"/>
</group>
<group name="validation" string="Validation">
- <field name="validation_type" widget="radio" invisible="1"/>
- <field name="double_validation"/>
+ <field name="validation_type" widget="radio"/>
</group>
<group name="visibility" string="Allocation">
<field name="allocation_type" widget="radio" force_save="1"/>
@@ -111,8 +110,7 @@
<field name="display_name"/>
<field name="code"/>
<field name="allocation_type"/>
- <field name="validation_type" invisible="1"/>
- <field name="double_validation"/>
+ <field name="validation_type"/>
<field name="validity_start"/>
<field name="validity_stop"/>
</tree>
diff --git a/addons/hr_holidays/views/hr_leave_views.xml b/addons/hr_holidays/views/hr_leave_views.xml
index c38c2d9f7dd..f1e2865fd66 100644
--- a/addons/hr_holidays/views/hr_leave_views.xml
+++ b/addons/hr_holidays/views/hr_leave_views.xml
@@ -30,7 +30,7 @@
<separator/>
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
<separator/>
- <filter string="My Department Time Off" name="department" domain="[('department_id.member_ids.user_id', '=', uid)]" help="My Department Time Off"/>
+ <filter string="My Department Time Off" name="department" domain="['|', ('department_id.member_ids.user_id', '=', uid), ('employee_id.user_id', '=', uid)]" help="My Department Time Off"/>
<filter string="People I Manage" name="managed_people" domain="[('employee_id.parent_id.user_id', '=', uid)]" help="Time off of people you are manager of"/>
<filter string="My Team Time Off" name="my_team_leaves" domain="[('employee_id.leave_manager_id', '=', uid)]" groups="hr_holidays.group_hr_holidays_team_leader" help="Time off of Your Team Members"/>
<filter string="My Time Off" name="my_leaves" domain="[('employee_id.user_id', '=', uid)]"/>
@@ -367,7 +367,7 @@
<field name="res_model">hr.leave</field>
<field name="view_type">form</field>
<field name="view_mode">calendar</field>
- <field name="context">{'search_default_year': 1, 'search_default_group_employee': 1, 'search_default_managed_people': 1, 'search_default_my_leaves': 1}</field>
+ <field name="context">{'search_default_year': 1, 'search_default_group_employee': 1, 'search_default_managed_people': 1, 'search_default_managed_people': 1, 'search_default_my_team_leaves': 1}</field>
<field name="domain">[('holiday_type','=','employee'), ('state', '!=', 'refuse')]</field>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
<field name="view_id" ref="hr_leave_view_calendar"/>
@@ -382,7 +382,7 @@
<menuitem
id="menu_hr_holidays_dashboard"
- name="Overview"
+ name="My Team"
parent="menu_hr_holidays_root"
sequence="1"
action="action_hr_holidays_dashboard"
@@ -521,7 +521,8 @@
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,activity</field>
<field name="context">{
- 'search_default_department':1,
+ 'search_default_managed_people': 1,
+ 'search_default_my_team_leaves': 1
'search_default_approve':1}
</field>
<field name="domain">[]</field>
diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py
index 5ba1fd08ea9..1ae85a249ca 100644
--- a/addons/mail/models/mail_channel.py
+++ b/addons/mail/models/mail_channel.py
@@ -756,7 +756,7 @@ class Channel(models.Model):
self.ensure_one()
if self.channel_message_ids.ids:
last_message_id = self.channel_message_ids.ids[0] # zero is the index of the last message
- channel_partner = self.env['mail.channel.partner'].search([('channel_id', 'in', self.ids), ('partner_id', '=', self.env.user.partner_id.id)])
+ channel_partner = self.env['mail.channel.partner'].search([('channel_id', 'in', self.ids), ('partner_id', '=', self.env.user.partner_id.id)], limit=1)
if channel_partner.seen_message_id.id == last_message_id:
# last message seen by user is already up-to-date
return
@@ -787,7 +787,7 @@ class Channel(models.Model):
if channel.channel_type != 'chat':
return
last_message_id = channel.channel_message_ids.ids[0] # zero is the index of the last message
- channel_partner = self.env['mail.channel.partner'].search([('channel_id', '=', channel.id), ('partner_id', '=', self.env.user.partner_id.id)])
+ channel_partner = self.env['mail.channel.partner'].search([('channel_id', '=', channel.id), ('partner_id', '=', self.env.user.partner_id.id)], limit=1)
if channel_partner.fetched_message_id.id == last_message_id:
# last message fetched by user is already up-to-date
return
diff --git a/addons/mail/static/src/js/composers/basic_composer.js b/addons/mail/static/src/js/composers/basic_composer.js
index 58e334808bf..9def912612c 100644
--- a/addons/mail/static/src/js/composers/basic_composer.js
+++ b/addons/mail/static/src/js/composers/basic_composer.js
@@ -694,6 +694,7 @@ var BasicComposer = Widget.extend({
* @param {Event} ev
*/
_onEmojiImageClick: function (ev) {
+ ev.preventDefault();
var cursorPosition = this.getSelectionPositions();
var inputVal = this.$input.val();
var leftSubstring = inputVal.substring(0, cursorPosition.start);
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index d30d263fa12..bd46faf1e08 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -107,6 +107,7 @@ var FieldMany2One = AbstractField.extend({
'click': '_onClick',
}),
AUTOCOMPLETE_DELAY: 200,
+ SEARCH_MORE_LIMIT: 320,
/**
* @override
@@ -501,18 +502,33 @@ var FieldMany2One = AbstractField.extend({
values.push({
label: _t("Search More..."),
action: function () {
- self._rpc({
+ var prom;
+ if (search_val !== '') {
+ prom = self._rpc({
model: self.field.relation,
method: 'name_search',
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
- limit: 160,
+ limit: self.SEARCH_MORE_LIMIT,
context: context,
},
- })
- .then(self._searchCreatePopup.bind(self, "search"));
+ });
+ }
+ $.when(prom).then(function (results) {
+ var dynamicFilters;
+ if (results) {
+ var ids = _.map(results, function (x) {
+ return x[0];
+ });
+ dynamicFilters = [{
+ description: _.str.sprintf(_t('Quick search: %s'), search_val),
+ domain: [['id', 'in', ids]],
+ }];
+ }
+ self._searchCreatePopup("search", false, {}, dynamicFilters);
+ });
},
classname: 'o_m2o_dropdown_option',
});
@@ -555,19 +571,25 @@ var FieldMany2One = AbstractField.extend({
/**
* all search/create popup handling
*
+ * TODO: ids argument is no longer used, remove it in master (as well as
+ * initial_ids param of the dialog)
+ *
* @private
* @param {any} view
* @param {any} ids
* @param {any} context
+ * @param {Object[]} [dynamicFilters=[]] filters to add to the search view
+ * in the dialog (each filter has keys 'description' and 'domain')
*/
- _searchCreatePopup: function (view, ids, context) {
+ _searchCreatePopup: function (view, ids, context, dynamicFilters) {
var self = this;
return new dialogs.SelectCreateDialog(this, _.extend({}, this.nodeOptions, {
res_model: this.field.relation,
domain: this.record.getDomain({fieldName: this.name}),
context: _.extend({}, this.record.getContext(this.recordParams), context || {}),
+ dynamicFilters: dynamicFilters || [],
title: (view === 'search' ? _t("Search: ") : _t("Create: ")) + this.string,
- initial_ids: ids ? _.map(ids, function (x) { return x[0]; }) : undefined,
+ initial_ids: ids,
initial_view: view,
disable_multiple_selection: true,
no_create: !self.can_create,
diff --git a/addons/web/static/src/js/views/abstract_view.js b/addons/web/static/src/js/views/abstract_view.js
index 72108e3c8ad..ce8951f6ee8 100644
--- a/addons/web/static/src/js/views/abstract_view.js
+++ b/addons/web/static/src/js/views/abstract_view.js
@@ -78,6 +78,8 @@ var AbstractView = Factory.extend({
* @param {string} [params.controllerState]
* @param {string} [params.displayName]
* @param {Array[]} [params.domain=[]]
+ * @param {Object[]} [params.dynamicFilters] transmitted to the
+ * ControlPanelView
* @param {number[]} [params.ids]
* @param {boolean} [params.isEmbedded=false]
* @param {Object} [params.searchQuery={}]
@@ -165,6 +167,7 @@ var AbstractView = Factory.extend({
this.controlPanelParams = {
action: action,
activateDefaultFavorite: params.activateDefaultFavorite,
+ dynamicFilters: params.dynamicFilters,
breadcrumbs: params.breadcrumbs,
context: this.loadParams.context,
domain: this.loadParams.domain,
diff --git a/addons/web/static/src/js/views/control_panel/control_panel_view.js b/addons/web/static/src/js/views/control_panel/control_panel_view.js
index 2bde26340e7..0a140e1f901 100644
--- a/addons/web/static/src/js/views/control_panel/control_panel_view.js
+++ b/addons/web/static/src/js/views/control_panel/control_panel_view.js
@@ -43,6 +43,10 @@ var ControlPanelView = Factory.extend({
* breadcrumbs won't be rendered
* @param {boolean} [params.withSearchBar=true] if set to false, no default
* search bar will be rendered
+ * @param {Object[]} [params.dynamicFilters=[]] filters to add to the
+ * search (in addition to those described in the arch), each filter being
+ * an object with keys 'description' (what is displayed in the searchbar)
+ * and 'domain'
*/
init: function (params) {
var self = this;
@@ -101,6 +105,19 @@ var ControlPanelView = Factory.extend({
INTERVAL_OPTIONS = INTERVAL_OPTIONS.map(function (option) {
return _.extend(option, {description: option.description.toString()});
});
+
+ // add a filter group with the dynamic filters, if any
+ if (params.dynamicFilters && params.dynamicFilters.length) {
+ var dynamicFiltersGroup = params.dynamicFilters.map(function (filter) {
+ return {
+ description: filter.description,
+ domain: JSON.stringify(filter.domain),
+ isDefault: true,
+ type: 'filter',
+ };
+ });
+ this.loadParams.groups.unshift(dynamicFiltersGroup);
+ }
},
//--------------------------------------------------------------------------
diff --git a/addons/web/static/src/js/views/view_dialogs.js b/addons/web/static/src/js/views/view_dialogs.js
index 65fee4a01b4..befe4247c00 100644
--- a/addons/web/static/src/js/views/view_dialogs.js
+++ b/addons/web/static/src/js/views/view_dialogs.js
@@ -317,6 +317,7 @@ var SelectCreateDialog = ViewDialog.extend({
* - list_view_options: dict of options to pass to the List View
* - on_selected: optional callback to execute when records are selected
* - disable_multiple_selection: true to allow create/select multiple records
+ * - dynamicFilters: filters to add to the searchview
*/
init: function () {
this._super.apply(this, arguments);
@@ -359,6 +360,7 @@ var SelectCreateDialog = ViewDialog.extend({
controlPanelFieldsView: fieldsViews.search,
},
action_buttons: false,
+ dynamicFilters: this.options.dynamicFilters,
context: this.context,
domain: domain,
hasSelectors: !this.options.disable_multiple_selection,
diff --git a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
index 84fac135ad2..04b58b017ba 100644
--- a/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
+++ b/addons/web/static/tests/fields/relational_fields/field_many2one_tests.js
@@ -958,7 +958,7 @@ QUnit.module('fields', {}, function () {
return result;
},
});
- await testUtils.fields.many2one.searchAndClickItem('trululu', 'b');
+ await testUtils.fields.many2one.searchAndClickItem('trululu', {search: 'b'});
testUtils.form.clickSave(form);
assert.verifySteps(['name_create'],
@@ -2596,6 +2596,107 @@ QUnit.module('fields', {}, function () {
form.destroy();
});
+ QUnit.test('search more in many2one: no text in input', async function (assert) {
+ // when the user clicks on 'Search More...' in a many2one dropdown, and there is no text
+ // in the input (i.e. no value to search on), we bypass the name_search that is meant to
+ // return a list of preselected ids to filter on in the list view (opened in a dialog)
+ assert.expect(6);
+
+ for (var i = 0; i < 8; i++) {
+ this.data.partner.records.push({id: 100 + i, display_name: 'test_' + i});
+ }
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form><field name="trululu"/></form>',
+ archs: {
+ 'partner,false,list': '<list><field name="display_name"/></list>',
+ 'partner,false,search': '<search></search>',
+ },
+ mockRPC: function (route, args) {
+ assert.step(args.method || route);
+ if (route === '/web/dataset/search_read') {
+ assert.deepEqual(args.domain, [],
+ "should not preselect ids as there as nothing in the m2o input");
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ await testUtils.fields.many2one.searchAndClickItem('trululu', {
+ item: 'Search More',
+ search: '',
+ });
+
+ assert.verifySteps([
+ 'default_get',
+ 'name_search', // to display results in the dropdown
+ 'load_views', // list view in dialog
+ '/web/dataset/search_read', // to display results in the dialog
+ ]);
+
+ form.destroy();
+ });
+
+ QUnit.test('search more in many2one: text in input', async function (assert) {
+ // when the user clicks on 'Search More...' in a many2one dropdown, and there is some
+ // text in the input, we perform a name_search to get a (limited) list of preselected
+ // ids and we add a dynamic filter (with those ids) to the search view in the dialog, so
+ // that the user can remove this filter to bypass the limit
+ assert.expect(12);
+
+ for (var i = 0; i < 8; i++) {
+ this.data.partner.records.push({id: 100 + i, display_name: 'test_' + i});
+ }
+
+ var expectedDomain;
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form><field name="trululu"/></form>',
+ archs: {
+ 'partner,false,list': '<list><field name="display_name"/></list>',
+ 'partner,false,search': '<search></search>',
+ },
+ mockRPC: function (route, args) {
+ assert.step(args.method || route);
+ if (route === '/web/dataset/search_read') {
+ assert.deepEqual(args.domain, expectedDomain);
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ expectedDomain = [['id', 'in', [100, 101, 102, 103, 104, 105, 106, 107]]];
+ await testUtils.fields.many2one.searchAndClickItem('trululu', {
+ item: 'Search More',
+ search: 'test',
+ });
+
+ assert.containsOnce(document.body, '.modal .o_list_view');
+ assert.containsOnce(document.body, '.modal .o_cp_searchview .o_facet_values',
+ "should have a special facet for the pre-selected ids");
+
+ // remove the filter on ids
+ expectedDomain = [];
+ testUtils.dom.click($('.modal .o_cp_searchview .o_facet_remove'));
+
+ assert.verifySteps([
+ 'default_get',
+ 'name_search', // empty search, triggered when the user clicks in the input
+ 'name_search', // to display results in the dropdown
+ 'name_search', // to get preselected ids matching the search
+ 'load_views', // list view in dialog
+ '/web/dataset/search_read', // to display results in the dialog
+ '/web/dataset/search_read', // after removal of dynamic filter
+ ]);
+
+ form.destroy();
+ });
+
QUnit.test('updating a many2one from a many2many', function (assert) {
assert.expect(4);
diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js
index 09f6852951b..ff75722b333 100644
--- a/addons/web/static/tests/helpers/mock_server.js
+++ b/addons/web/static/tests/helpers/mock_server.js
@@ -705,8 +705,8 @@ var MockServer = Class.extend({
var result = _.map(records, function (record) {
return [record.id, record.display_name];
});
- if (args.limit) {
- return result.slice(0, args.limit);
+ if (_kwargs.limit) {
+ return result.slice(0, _kwargs.limit);
}
return result;
},
diff --git a/addons/web/static/tests/helpers/test_utils_fields.js b/addons/web/static/tests/helpers/test_utils_fields.js
index f7d8829ce82..f0f29839a9d 100644
--- a/addons/web/static/tests/helpers/test_utils_fields.js
+++ b/addons/web/static/tests/helpers/test_utils_fields.js
@@ -125,15 +125,16 @@ function clickM2OItem(fieldName, searchText) {
* - click to open the dropdown
* - enter a search string in the input
* - wait for the selection
- * - click on the active menuitem
+ * - click on the requested menuitem, or the active one by default
*
* Example:
- * testUtils.fields.many2one.searchAndClickM2OItem('partner_id', 'George');
+ * testUtils.fields.many2one.searchAndClickM2OItem('partner_id', {search: 'George'});
*
* @param {string} fieldName
* @param {[Object]} options
* @param {[string]} options.selector
* @param {[string]} options.search
+ * @param {[string]} options.item
* @returns {Promise}
*/
function searchAndClickM2OItem(fieldName, options) {
@@ -156,7 +157,11 @@ function searchAndClickM2OItem(fieldName, options) {
}
return $.when(def).then(function () {
- clickM2OHighlightedItem(fieldName, options.selector);
+ if (options.item) {
+ clickM2OItem(fieldName, options.item);
+ } else {
+ clickM2OHighlightedItem(fieldName, options.selector);
+ }
});
}
return {
diff --git a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
index 78b427eb296..e082fa155fd 100644
--- a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
+++ b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js
@@ -13,7 +13,7 @@ sAnimations.registry.crmPartnerAssign = sAnimations.Class.extend({
'click .edit_contact_confirm': '_onEditContactConfirm',
'click .new_opp_confirm': '_onNewOppConfirm',
'click .edit_opp_confirm': '_onEditOppConfirm',
- 'change .edit_opp_form .next_activity': '_onEditOppConfirm',
+ 'change .edit_opp_form .next_activity': '_onEditOppForm',
'click div.input-group span.fa-calendar': '_onCalendarIconClick',
},