diff --git a/addons/hr_timesheet_attendance/__manifest__.py b/addons/hr_timesheet_attendance/__manifest__.py
index d8645cefab..076d2b3e48 100644
--- a/addons/hr_timesheet_attendance/__manifest__.py
+++ b/addons/hr_timesheet_attendance/__manifest__.py
@@ -15,4 +15,5 @@
'report/hr_timesheet_attendance_report_view.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/hr_work_entry/__manifest__.py b/addons/hr_work_entry/__manifest__.py
index 4c18de6c91..6add772b31 100644
--- a/addons/hr_work_entry/__manifest__.py
+++ b/addons/hr_work_entry/__manifest__.py
@@ -21,4 +21,5 @@
'qweb': [
"static/src/xml/work_entry_templates.xml",
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/http_routing/__manifest__.py b/addons/http_routing/__manifest__.py
index ed2e5da225..08cb06d339 100644
--- a/addons/http_routing/__manifest__.py
+++ b/addons/http_routing/__manifest__.py
@@ -15,4 +15,5 @@ base modules simple.
'views/res_lang_views.xml',
],
'depends': ['web'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/hw_drivers/__manifest__.py b/addons/hw_drivers/__manifest__.py
index 65cf84660e..2675dda1da 100644
--- a/addons/hw_drivers/__manifest__.py
+++ b/addons/hw_drivers/__manifest__.py
@@ -18,4 +18,5 @@ are found in other modules that must be installed separately.
""",
'installable': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/hw_escpos/__manifest__.py b/addons/hw_escpos/__manifest__.py
index 97ff3996a5..2f3dc4d360 100644
--- a/addons/hw_escpos/__manifest__.py
+++ b/addons/hw_escpos/__manifest__.py
@@ -20,4 +20,5 @@ that would need such functionality.
'python' : ['pyusb','pyserial','qrcode'],
},
'installable': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/hw_posbox_homepage/__manifest__.py b/addons/hw_posbox_homepage/__manifest__.py
index 8f3b758db6..4d3f0a4760 100644
--- a/addons/hw_posbox_homepage/__manifest__.py
+++ b/addons/hw_posbox_homepage/__manifest__.py
@@ -20,4 +20,5 @@ regular Flectra interface anymore.
""",
'installable': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/iap/__manifest__.py b/addons/iap/__manifest__.py
index d7ec0ba4f0..63737c9371 100644
--- a/addons/iap/__manifest__.py
+++ b/addons/iap/__manifest__.py
@@ -24,4 +24,5 @@ to support In-App purchases inside Flectra. """,
'static/src/xml/iap_templates.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/iap_crm/__manifest__.py b/addons/iap_crm/__manifest__.py
index 6e577de26f..64be53e8bf 100644
--- a/addons/iap_crm/__manifest__.py
+++ b/addons/iap_crm/__manifest__.py
@@ -17,4 +17,5 @@
'auto_install': True,
'data': [
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/iap_mail/__manifest__.py b/addons/iap_mail/__manifest__.py
index b43b522b11..79b2b6a555 100644
--- a/addons/iap_mail/__manifest__.py
+++ b/addons/iap_mail/__manifest__.py
@@ -18,4 +18,5 @@
'data': [
'views/mail_templates.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/im_livechat/__manifest__.py b/addons/im_livechat/__manifest__.py
index 87c4855a31..d2786ae28b 100644
--- a/addons/im_livechat/__manifest__.py
+++ b/addons/im_livechat/__manifest__.py
@@ -48,4 +48,5 @@ Help your customers with this chat, and analyse their feedback.
'installable': True,
'auto_install': False,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/im_livechat_mail_bot/__manifest__.py b/addons/im_livechat_mail_bot/__manifest__.py
index 0cfb3b2743..85711f2d65 100644
--- a/addons/im_livechat_mail_bot/__manifest__.py
+++ b/addons/im_livechat_mail_bot/__manifest__.py
@@ -12,4 +12,5 @@
'installable': True,
'application': False,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ae/__manifest__.py b/addons/l10n_ae/__manifest__.py
index 459c424f7b..e05c4a865f 100644
--- a/addons/l10n_ae/__manifest__.py
+++ b/addons/l10n_ae/__manifest__.py
@@ -28,4 +28,5 @@ United Arab Emirates accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ar/__manifest__.py b/addons/l10n_ar/__manifest__.py
index f49b3eb5b5..1507b45751 100644
--- a/addons/l10n_ar/__manifest__.py
+++ b/addons/l10n_ar/__manifest__.py
@@ -122,4 +122,5 @@ Master Data:
'installable': True,
'auto_install': False,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_at/__manifest__.py b/addons/l10n_at/__manifest__.py
index b05d9ff091..cd77c7368b 100644
--- a/addons/l10n_at/__manifest__.py
+++ b/addons/l10n_at/__manifest__.py
@@ -43,4 +43,5 @@ Austrian charts of accounts (Einheitskontenrahmen 2010).
'data/account_fiscal_position_template.xml',
'data/account_chart_template_configure_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_au/__manifest__.py b/addons/l10n_au/__manifest__.py
index 2bb4d8577a..8aa33f654a 100644
--- a/addons/l10n_au/__manifest__.py
+++ b/addons/l10n_au/__manifest__.py
@@ -35,4 +35,5 @@ Also:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_be/__manifest__.py b/addons/l10n_be/__manifest__.py
index 09fec24272..5e781b6676 100644
--- a/addons/l10n_be/__manifest__.py
+++ b/addons/l10n_be/__manifest__.py
@@ -61,4 +61,5 @@ Wizards provided by this module:
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_be_edi/__manifest__.py b/addons/l10n_be_edi/__manifest__.py
index 8747ec8f0c..7bd802a131 100644
--- a/addons/l10n_be_edi/__manifest__.py
+++ b/addons/l10n_be_edi/__manifest__.py
@@ -17,4 +17,5 @@ Belgian e-invoicing uses the UBL 2.0 using the e-fff protocol.
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_be_invoice_bba/__manifest__.py b/addons/l10n_be_invoice_bba/__manifest__.py
index 679a014384..bbab2ba2ef 100644
--- a/addons/l10n_be_invoice_bba/__manifest__.py
+++ b/addons/l10n_be_invoice_bba/__manifest__.py
@@ -31,4 +31,5 @@ Two algorithms are suggested:
'data': [
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_bo/__manifest__.py b/addons/l10n_bo/__manifest__.py
index e1727b8c2d..21dc1b2e01 100644
--- a/addons/l10n_bo/__manifest__.py
+++ b/addons/l10n_bo/__manifest__.py
@@ -27,4 +27,5 @@ Plan contable boliviano e impuestos de acuerdo a disposiciones vigentes
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_br/__manifest__.py b/addons/l10n_br/__manifest__.py
index ea81e7ddae..48a66474cd 100644
--- a/addons/l10n_br/__manifest__.py
+++ b/addons/l10n_br/__manifest__.py
@@ -57,4 +57,5 @@ come with any additional paid permission for online use of 'private modules'.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ca/__manifest__.py b/addons/l10n_ca/__manifest__.py
index 0edb793139..68b182e610 100644
--- a/addons/l10n_ca/__manifest__.py
+++ b/addons/l10n_ca/__manifest__.py
@@ -54,4 +54,5 @@ position.
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ch/__manifest__.py b/addons/l10n_ch/__manifest__.py
index 7fe2d8455c..038b84967f 100644
--- a/addons/l10n_ch/__manifest__.py
+++ b/addons/l10n_ch/__manifest__.py
@@ -53,4 +53,5 @@ Here is how it works:
],
'post_init_hook': 'post_init',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ch_qriban/__manifest__.py b/addons/l10n_ch_qriban/__manifest__.py
index 6fdeeb3b1e..39ecf3ceb6 100644
--- a/addons/l10n_ch_qriban/__manifest__.py
+++ b/addons/l10n_ch_qriban/__manifest__.py
@@ -19,4 +19,5 @@ This should help for reconciliation on the bank statements where the old IBAN co
'views/swissqr_report.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_cl/__manifest__.py b/addons/l10n_cl/__manifest__.py
index ab9094f0e1..80e01b64da 100644
--- a/addons/l10n_cl/__manifest__.py
+++ b/addons/l10n_cl/__manifest__.py
@@ -49,5 +49,6 @@ Plan contable chileno e impuestos de acuerdo a disposiciones vigentes
'demo': [
'demo/demo_company.xml',
'demo/partner_demo.xml',
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_cn/__manifest__.py b/addons/l10n_cn/__manifest__.py
index e9facc1dda..7636ad5533 100644
--- a/addons/l10n_cn/__manifest__.py
+++ b/addons/l10n_cn/__manifest__.py
@@ -52,4 +52,5 @@ correctly when the cn2an library is installed. (e.g. with pip3 install cn2an)
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_cn_city/__manifest__.py b/addons/l10n_cn_city/__manifest__.py
index a2edce0f23..bae1540c13 100644
--- a/addons/l10n_cn_city/__manifest__.py
+++ b/addons/l10n_cn_city/__manifest__.py
@@ -18,4 +18,5 @@ City Data/城市数据
'data': [
'data/res_city_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_co/__manifest__.py b/addons/l10n_co/__manifest__.py
index ad08496b5f..074d02e944 100644
--- a/addons/l10n_co/__manifest__.py
+++ b/addons/l10n_co/__manifest__.py
@@ -33,4 +33,5 @@
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_co_pos/__manifest__.py b/addons/l10n_co_pos/__manifest__.py
index 3981b93065..e8780fa924 100644
--- a/addons/l10n_co_pos/__manifest__.py
+++ b/addons/l10n_co_pos/__manifest__.py
@@ -18,4 +18,5 @@
'qweb': [
'static/src/xml/pos.xml'
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_cr/__manifest__.py b/addons/l10n_cr/__manifest__.py
index 0f89af3299..9333074c32 100644
--- a/addons/l10n_cr/__manifest__.py
+++ b/addons/l10n_cr/__manifest__.py
@@ -65,4 +65,5 @@ please go to http://translations.launchpad.net/openerp-costa-rica.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_de/__manifest__.py b/addons/l10n_de/__manifest__.py
index 0bd6609e91..bd45db5bea 100644
--- a/addons/l10n_de/__manifest__.py
+++ b/addons/l10n_de/__manifest__.py
@@ -24,4 +24,5 @@ German accounting chart and localization.
'report/din5008_report.xml',
'data/report_layout.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_de_skr03/__manifest__.py b/addons/l10n_de_skr03/__manifest__.py
index 49a1bf5a54..e1bb09b4f1 100644
--- a/addons/l10n_de_skr03/__manifest__.py
+++ b/addons/l10n_de_skr03/__manifest__.py
@@ -56,5 +56,6 @@ German accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
- 'auto_install': True
+ 'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_de_skr04/__manifest__.py b/addons/l10n_de_skr04/__manifest__.py
index 3ff1c8e69b..c7df132f84 100644
--- a/addons/l10n_de_skr04/__manifest__.py
+++ b/addons/l10n_de_skr04/__manifest__.py
@@ -55,4 +55,5 @@ German accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_dk/__manifest__.py b/addons/l10n_dk/__manifest__.py
index bf9292e97c..49c0fcd46d 100644
--- a/addons/l10n_dk/__manifest__.py
+++ b/addons/l10n_dk/__manifest__.py
@@ -105,4 +105,5 @@ Copyright 2018 Flectra House ApS
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_do/__manifest__.py b/addons/l10n_do/__manifest__.py
index 64c5b31307..825627ea02 100644
--- a/addons/l10n_do/__manifest__.py
+++ b/addons/l10n_do/__manifest__.py
@@ -106,4 +106,5 @@ en Flectra):
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_dz/__manifest__.py b/addons/l10n_dz/__manifest__.py
index 84567d66a8..84c0555db2 100644
--- a/addons/l10n_dz/__manifest__.py
+++ b/addons/l10n_dz/__manifest__.py
@@ -20,4 +20,5 @@ This module applies to companies based in Algeria.
'data/account_fiscal_position_template_data.xml',
'data/account_chart_template_configuration_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ec/__manifest__.py b/addons/l10n_ec/__manifest__.py
index d46d41105b..0564560671 100644
--- a/addons/l10n_ec/__manifest__.py
+++ b/addons/l10n_ec/__manifest__.py
@@ -32,4 +32,5 @@ Accounting chart and localization for Ecuador.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_es/__manifest__.py b/addons/l10n_es/__manifest__.py
index e905ec7e43..ede39ae5d9 100644
--- a/addons/l10n_es/__manifest__.py
+++ b/addons/l10n_es/__manifest__.py
@@ -51,4 +51,5 @@ Spanish charts of accounts (PGCE 2008).
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_et/__manifest__.py b/addons/l10n_et/__manifest__.py
index 325232af4a..cb240eb95f 100644
--- a/addons/l10n_et/__manifest__.py
+++ b/addons/l10n_et/__manifest__.py
@@ -34,4 +34,5 @@ This is the latest Ethiopian Flectra localization and consists of:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_eu_service/__manifest__.py b/addons/l10n_eu_service/__manifest__.py
index 0ef2e28e4a..f6a042f009 100644
--- a/addons/l10n_eu_service/__manifest__.py
+++ b/addons/l10n_eu_service/__manifest__.py
@@ -30,4 +30,5 @@ Council Implementing Regulation (EU) 2019/2026
],
'post_init_hook': 'l10n_eu_service_post_init',
'uninstall_hook': 'l10n_eu_service_uninstall',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_fi/__manifest__.py b/addons/l10n_fi/__manifest__.py
index 57ef31be33..fdb9567ea9 100644
--- a/addons/l10n_fi/__manifest__.py
+++ b/addons/l10n_fi/__manifest__.py
@@ -38,4 +38,5 @@ Set the payment reference type from the Sales Journal.
],
"active": True,
"installable": True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_fr/__manifest__.py b/addons/l10n_fr/__manifest__.py
index 2d18653636..a4709563fc 100644
--- a/addons/l10n_fr/__manifest__.py
+++ b/addons/l10n_fr/__manifest__.py
@@ -52,4 +52,5 @@ configuration of their taxes and fiscal positions manually.
'demo/demo_company.xml',
],
'post_init_hook': '_l10n_fr_post_init_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_fr_fec/__manifest__.py b/addons/l10n_fr_fec/__manifest__.py
index 06ca6003e6..16169ddf92 100644
--- a/addons/l10n_fr_fec/__manifest__.py
+++ b/addons/l10n_fr_fec/__manifest__.py
@@ -14,4 +14,5 @@
'wizard/account_fr_fec_view.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_fr_pos_cert/__manifest__.py b/addons/l10n_fr_pos_cert/__manifest__.py
index 2824cbeb05..0d90dc3585 100644
--- a/addons/l10n_fr_pos_cert/__manifest__.py
+++ b/addons/l10n_fr_pos_cert/__manifest__.py
@@ -38,4 +38,5 @@ The module adds following features:
],
'qweb': ['static/src/xml/OrderReceipt.xml'],
'post_init_hook': '_setup_inalterability',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_generic_coa/__manifest__.py b/addons/l10n_generic_coa/__manifest__.py
index 15131d7a4b..746823ffc4 100644
--- a/addons/l10n_generic_coa/__manifest__.py
+++ b/addons/l10n_generic_coa/__manifest__.py
@@ -25,4 +25,5 @@ Install some generic chart of accounts.
'demo/account_reconcile_model.xml',
],
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_gr/__manifest__.py b/addons/l10n_gr/__manifest__.py
index ed7fdf610d..b79e39af02 100644
--- a/addons/l10n_gr/__manifest__.py
+++ b/addons/l10n_gr/__manifest__.py
@@ -31,4 +31,5 @@ Greek accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_gt/__manifest__.py b/addons/l10n_gt/__manifest__.py
index 3bfe3a63a9..a13f57a5f2 100644
--- a/addons/l10n_gt/__manifest__.py
+++ b/addons/l10n_gt/__manifest__.py
@@ -41,4 +41,5 @@ taxes and the Quetzal currency.""",
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_hk/__manifest__.py b/addons/l10n_hk/__manifest__.py
index e29ccea29e..fb5921790a 100644
--- a/addons/l10n_hk/__manifest__.py
+++ b/addons/l10n_hk/__manifest__.py
@@ -17,4 +17,5 @@
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_hn/__manifest__.py b/addons/l10n_hn/__manifest__.py
index 818c506290..82cd4ba276 100644
--- a/addons/l10n_hn/__manifest__.py
+++ b/addons/l10n_hn/__manifest__.py
@@ -31,4 +31,5 @@ and the Lempira currency.""",
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_hr/__manifest__.py b/addons/l10n_hr/__manifest__.py
index 9a523385f3..b2c516fd78 100644
--- a/addons/l10n_hr/__manifest__.py
+++ b/addons/l10n_hr/__manifest__.py
@@ -60,4 +60,5 @@ Izvori podataka:
'demo/demo_company.xml',
],
"active": False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_hu/__manifest__.py b/addons/l10n_hu/__manifest__.py
index 173d3c0c61..6b4d1b5c17 100644
--- a/addons/l10n_hu/__manifest__.py
+++ b/addons/l10n_hu/__manifest__.py
@@ -36,4 +36,5 @@ This module consists of:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_id/__manifest__.py b/addons/l10n_id/__manifest__.py
index 6379de0239..f3805a1bd0 100644
--- a/addons/l10n_id/__manifest__.py
+++ b/addons/l10n_id/__manifest__.py
@@ -24,4 +24,5 @@ This is the latest Indonesian Flectra localisation necessary to run Flectra acco
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_id_efaktur/__manifest__.py b/addons/l10n_id_efaktur/__manifest__.py
index 4563bb7a62..4795ec165e 100644
--- a/addons/l10n_id_efaktur/__manifest__.py
+++ b/addons/l10n_id_efaktur/__manifest__.py
@@ -39,4 +39,5 @@
'demo': [],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ie/__manifest__.py b/addons/l10n_ie/__manifest__.py
index 88289b7a28..937e69fcdf 100644
--- a/addons/l10n_ie/__manifest__.py
+++ b/addons/l10n_ie/__manifest__.py
@@ -24,4 +24,5 @@
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_il/__manifest__.py b/addons/l10n_il/__manifest__.py
index ebd6144e1d..465a5d5506 100644
--- a/addons/l10n_il/__manifest__.py
+++ b/addons/l10n_il/__manifest__.py
@@ -30,4 +30,5 @@ This module consists of:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in/__manifest__.py b/addons/l10n_in/__manifest__.py
index fc77c8dcf5..eb7105296d 100644
--- a/addons/l10n_in/__manifest__.py
+++ b/addons/l10n_in/__manifest__.py
@@ -53,4 +53,5 @@ Sheet, now only Vertical format has been permitted Which is Supported By Flectra
'demo/account_payment_demo.xml',
'demo/account_invoice_demo.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_pos/__manifest__.py b/addons/l10n_in_pos/__manifest__.py
index 6b986f715f..e47dc8f67c 100644
--- a/addons/l10n_in_pos/__manifest__.py
+++ b/addons/l10n_in_pos/__manifest__.py
@@ -20,4 +20,5 @@
'static/src/xml/pos_receipt.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_purchase/__manifest__.py b/addons/l10n_in_purchase/__manifest__.py
index 5cf84625c2..a11e726cbe 100644
--- a/addons/l10n_in_purchase/__manifest__.py
+++ b/addons/l10n_in_purchase/__manifest__.py
@@ -17,4 +17,5 @@
'installable': True,
'application': False,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_purchase_stock/__manifest__.py b/addons/l10n_in_purchase_stock/__manifest__.py
index 7b22e35ea8..5e5b63dd18 100644
--- a/addons/l10n_in_purchase_stock/__manifest__.py
+++ b/addons/l10n_in_purchase_stock/__manifest__.py
@@ -24,5 +24,6 @@
'data': [
'views/stock_warehouse_views.xml',
],
- 'auto_install': True
+ 'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_sale/__manifest__.py b/addons/l10n_in_sale/__manifest__.py
index 8c90aed2bb..08db2374d3 100644
--- a/addons/l10n_in_sale/__manifest__.py
+++ b/addons/l10n_in_sale/__manifest__.py
@@ -21,4 +21,5 @@
'installable': True,
'application': False,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_sale_stock/__manifest__.py b/addons/l10n_in_sale_stock/__manifest__.py
index 8c2dc65545..06305e5e1c 100644
--- a/addons/l10n_in_sale_stock/__manifest__.py
+++ b/addons/l10n_in_sale_stock/__manifest__.py
@@ -24,5 +24,6 @@
'data': [
'views/stock_warehouse_views.xml',
],
- 'auto_install': True
+ 'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_in_stock/__manifest__.py b/addons/l10n_in_stock/__manifest__.py
index 25a9d86c97..a70c99a8bf 100644
--- a/addons/l10n_in_stock/__manifest__.py
+++ b/addons/l10n_in_stock/__manifest__.py
@@ -19,4 +19,5 @@
'installable': True,
'application': False,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_it/__manifest__.py b/addons/l10n_it/__manifest__.py
index 127280fd9a..899331ca4a 100644
--- a/addons/l10n_it/__manifest__.py
+++ b/addons/l10n_it/__manifest__.py
@@ -30,4 +30,5 @@ Italian accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_it_edi/__manifest__.py b/addons/l10n_it_edi/__manifest__.py
index f9173afc40..0771f4b4cc 100644
--- a/addons/l10n_it_edi/__manifest__.py
+++ b/addons/l10n_it_edi/__manifest__.py
@@ -25,4 +25,5 @@ E-invoice implementation
'data/account_invoice_demo.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_jp/__manifest__.py b/addons/l10n_jp/__manifest__.py
index fd81faf720..288300eaa5 100644
--- a/addons/l10n_jp/__manifest__.py
+++ b/addons/l10n_jp/__manifest__.py
@@ -43,4 +43,5 @@ circumstances, you might not need to use those at all.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_latam_base/__manifest__.py b/addons/l10n_latam_base/__manifest__.py
index d9718c8714..3751ad9879 100644
--- a/addons/l10n_latam_base/__manifest__.py
+++ b/addons/l10n_latam_base/__manifest__.py
@@ -59,4 +59,5 @@ This module is compatible with base_vat module in order to be able to validate V
'auto_install': False,
'application': False,
'post_init_hook': '_set_default_identification_type',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_latam_invoice_document/__manifest__.py b/addons/l10n_latam_invoice_document/__manifest__.py
index 10a85b7893..72d243511a 100644
--- a/addons/l10n_latam_invoice_document/__manifest__.py
+++ b/addons/l10n_latam_invoice_document/__manifest__.py
@@ -40,4 +40,5 @@ If your localization needs this logic will then need to add this module as depen
'security/ir.model.access.csv',
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_lu/__manifest__.py b/addons/l10n_lu/__manifest__.py
index c22e090b67..96bcadc7d7 100644
--- a/addons/l10n_lu/__manifest__.py
+++ b/addons/l10n_lu/__manifest__.py
@@ -49,4 +49,5 @@ Notes:
'demo/demo_company.xml',
],
'post_init_hook': '_post_init_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ma/__manifest__.py b/addons/l10n_ma/__manifest__.py
index 09b28f7ff5..1a56178547 100644
--- a/addons/l10n_ma/__manifest__.py
+++ b/addons/l10n_ma/__manifest__.py
@@ -25,4 +25,5 @@ Seddik au cours du troisième trimestre 2010.""",
'data/account_tax_data.xml',
'data/account_chart_template_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_mn/__manifest__.py b/addons/l10n_mn/__manifest__.py
index aab4850f2a..55fc89b012 100644
--- a/addons/l10n_mn/__manifest__.py
+++ b/addons/l10n_mn/__manifest__.py
@@ -30,4 +30,5 @@ Financial requirement contributor: Baskhuu Lodoikhuu. BumanIT LLC
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_multilang/__manifest__.py b/addons/l10n_multilang/__manifest__.py
index 1ee8a1009f..82a6800e3f 100644
--- a/addons/l10n_multilang/__manifest__.py
+++ b/addons/l10n_multilang/__manifest__.py
@@ -13,4 +13,5 @@
templates to target objects.
""",
'depends': ['account'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_mx/__manifest__.py b/addons/l10n_mx/__manifest__.py
index 2c3df3cb4d..99a71fc6c1 100644
--- a/addons/l10n_mx/__manifest__.py
+++ b/addons/l10n_mx/__manifest__.py
@@ -51,4 +51,5 @@ With this module you will have:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_nl/__manifest__.py b/addons/l10n_nl/__manifest__.py
index ce6b6a39c8..1a75998888 100644
--- a/addons/l10n_nl/__manifest__.py
+++ b/addons/l10n_nl/__manifest__.py
@@ -34,4 +34,5 @@
],
'auto_install': False,
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_nl/models/account_journal.py b/addons/l10n_nl/models/account_journal.py
index bc1c51b9df..d8f7cd9401 100644
--- a/addons/l10n_nl/models/account_journal.py
+++ b/addons/l10n_nl/models/account_journal.py
@@ -6,6 +6,19 @@ from flectra import api, fields, models, _
class AccountJournal(models.Model):
_inherit = 'account.journal'
+ @api.model
+ def _fill_missing_values(self, vals):
+ super()._fill_missing_values(vals)
+
+ if vals.get('type') != 'purchase':
+ return
+
+ company = self.env['res.company'].browse(vals['company_id']) if vals.get('company_id') else self.env.company
+ if company.country_id.code == "NL":
+ type_control_ids = vals.get('type_control_ids', [])
+ type_control_ids.append(self.env.ref('account.data_account_type_direct_costs').id)
+ vals['type_control_ids'] = [(6, 0, type_control_ids)]
+
@api.model
def _prepare_liquidity_account_vals(self, company, code, vals):
# OVERRIDE
diff --git a/addons/l10n_no/__manifest__.py b/addons/l10n_no/__manifest__.py
index 7e2d216005..b6413adaf8 100644
--- a/addons/l10n_no/__manifest__.py
+++ b/addons/l10n_no/__manifest__.py
@@ -27,4 +27,5 @@ Updated for Flectra 9 by Bringsvor Consulting AS
],
"active": False,
'post_init_hook': '_preserve_tag_on_taxes',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_nz/__manifest__.py b/addons/l10n_nz/__manifest__.py
index 41f08bbcf4..ad1d494016 100644
--- a/addons/l10n_nz/__manifest__.py
+++ b/addons/l10n_nz/__manifest__.py
@@ -34,4 +34,5 @@ Also:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_pa/__manifest__.py b/addons/l10n_pa/__manifest__.py
index ea5df44078..557ba4796e 100644
--- a/addons/l10n_pa/__manifest__.py
+++ b/addons/l10n_pa/__manifest__.py
@@ -23,4 +23,5 @@ Con la Colaboración de
"data/account_tax_data.xml",
"data/account_chart_template_data.xml",
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_pl/__manifest__.py b/addons/l10n_pl/__manifest__.py
index d9b4c5d379..18a971b6b2 100644
--- a/addons/l10n_pl/__manifest__.py
+++ b/addons/l10n_pl/__manifest__.py
@@ -40,4 +40,5 @@ Wewnętrzny numer wersji OpenGLOBE 1.02
'demo/demo_company.xml',
],
'post_init_hook': '_preserve_tag_on_taxes',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_pt/__manifest__.py b/addons/l10n_pt/__manifest__.py
index 05839cb629..b2f181febf 100644
--- a/addons/l10n_pt/__manifest__.py
+++ b/addons/l10n_pt/__manifest__.py
@@ -23,4 +23,5 @@
'data/account_tax_data.xml',
'data/account_chart_template_configure_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ro/__manifest__.py b/addons/l10n_ro/__manifest__.py
index 077c94060e..15ea6a99cd 100644
--- a/addons/l10n_ro/__manifest__.py
+++ b/addons/l10n_ro/__manifest__.py
@@ -41,4 +41,5 @@ Romanian accounting chart and localization.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_sa/__manifest__.py b/addons/l10n_sa/__manifest__.py
index d4e88b3f36..699bdcdb39 100644
--- a/addons/l10n_sa/__manifest__.py
+++ b/addons/l10n_sa/__manifest__.py
@@ -25,4 +25,5 @@ In future this module will include some payroll rules for ME .
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_se/__manifest__.py b/addons/l10n_se/__manifest__.py
index 66885b89d9..4f33e61d2b 100644
--- a/addons/l10n_se/__manifest__.py
+++ b/addons/l10n_se/__manifest__.py
@@ -21,4 +21,5 @@
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_se_ocr/__manifest__.py b/addons/l10n_se_ocr/__manifest__.py
index 3281275caa..83c8ad94fe 100644
--- a/addons/l10n_se_ocr/__manifest__.py
+++ b/addons/l10n_se_ocr/__manifest__.py
@@ -23,4 +23,5 @@ For Vendor Bill support, Default Vendor Specific OCR and validation for OCR are
'views/account_journal_view.xml'
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_sg/__manifest__.py b/addons/l10n_sg/__manifest__.py
index c6b91ff0e7..02e9b566e0 100644
--- a/addons/l10n_sg/__manifest__.py
+++ b/addons/l10n_sg/__manifest__.py
@@ -30,4 +30,5 @@ This module add, for accounting:
'views/res_partner_view.xml',
],
'post_init_hook': '_preserve_tag_on_taxes',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_si/__manifest__.py b/addons/l10n_si/__manifest__.py
index ba984bef41..0f6a7e3471 100644
--- a/addons/l10n_si/__manifest__.py
+++ b/addons/l10n_si/__manifest__.py
@@ -29,4 +29,5 @@
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_syscohada/__manifest__.py b/addons/l10n_syscohada/__manifest__.py
index e7f9c2df02..4c11ac4cdd 100644
--- a/addons/l10n_syscohada/__manifest__.py
+++ b/addons/l10n_syscohada/__manifest__.py
@@ -37,4 +37,5 @@ Countries that use OHADA are the following:
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_th/__manifest__.py b/addons/l10n_th/__manifest__.py
index e9d4a4befa..ea04e2102c 100644
--- a/addons/l10n_th/__manifest__.py
+++ b/addons/l10n_th/__manifest__.py
@@ -27,4 +27,5 @@ Thai accounting chart and localization.
'demo/demo_company.xml',
],
'post_init_hook': '_preserve_tag_on_taxes',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_tr/__manifest__.py b/addons/l10n_tr/__manifest__.py
index 682d50af97..8552ad63f2 100644
--- a/addons/l10n_tr/__manifest__.py
+++ b/addons/l10n_tr/__manifest__.py
@@ -29,4 +29,5 @@ Bu modül kurulduktan sonra, Muhasebe yapılandırma sihirbazı çalışır
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ua/__manifest__.py b/addons/l10n_ua/__manifest__.py
index 5546a0c0c1..ecb44d4db8 100644
--- a/addons/l10n_ua/__manifest__.py
+++ b/addons/l10n_ua/__manifest__.py
@@ -24,4 +24,5 @@ Ukraine - Chart of accounts.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_uk/__manifest__.py b/addons/l10n_uk/__manifest__.py
index 67e9c2ce9c..d5deb6f38d 100644
--- a/addons/l10n_uk/__manifest__.py
+++ b/addons/l10n_uk/__manifest__.py
@@ -34,4 +34,5 @@ This is the latest UK Flectra localisation necessary to run Flectra accounting f
'demo/l10n_uk_demo.xml',
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_us/__manifest__.py b/addons/l10n_us/__manifest__.py
index 2bdb7eea7e..38a048e16a 100644
--- a/addons/l10n_us/__manifest__.py
+++ b/addons/l10n_us/__manifest__.py
@@ -14,4 +14,5 @@ United States - Chart of accounts.
'data/res_company_data.xml',
'views/res_partner_bank_views.xml'
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_uy/__manifest__.py b/addons/l10n_uy/__manifest__.py
index f51e0e00d7..51233562ae 100644
--- a/addons/l10n_uy/__manifest__.py
+++ b/addons/l10n_uy/__manifest__.py
@@ -26,4 +26,5 @@ Provide Templates for Chart of Accounts, Taxes for Uruguay.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_ve/__manifest__.py b/addons/l10n_ve/__manifest__.py
index 6bf1370862..f07ad8b28d 100644
--- a/addons/l10n_ve/__manifest__.py
+++ b/addons/l10n_ve/__manifest__.py
@@ -53,4 +53,5 @@ but you will need set manually account defaults for taxes.
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_vn/__manifest__.py b/addons/l10n_vn/__manifest__.py
index 4b8a8b9dd8..e10849e4ca 100644
--- a/addons/l10n_vn/__manifest__.py
+++ b/addons/l10n_vn/__manifest__.py
@@ -39,4 +39,5 @@ with Chart of account under Circular No. 200/2014/TT-BTC
],
'post_init_hook': '_post_init_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/l10n_za/__manifest__.py b/addons/l10n_za/__manifest__.py
index 3d3075bcbb..ecd25232cf 100644
--- a/addons/l10n_za/__manifest__.py
+++ b/addons/l10n_za/__manifest__.py
@@ -27,4 +27,5 @@ This is the latest basic South African localisation necessary to run Flectra in
'demo': [
'demo/demo_company.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/link_tracker/__manifest__.py b/addons/link_tracker/__manifest__.py
index 4f6daa2b92..01b10e8e12 100644
--- a/addons/link_tracker/__manifest__.py
+++ b/addons/link_tracker/__manifest__.py
@@ -14,4 +14,5 @@ Shorten URLs and use them to track clicks and UTMs
'views/utm_campaign_views.xml',
'security/ir.model.access.csv',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/lunch/__manifest__.py b/addons/lunch/__manifest__.py
index 8883b026ca..495ad85c7b 100644
--- a/addons/lunch/__manifest__.py
+++ b/addons/lunch/__manifest__.py
@@ -42,4 +42,5 @@ If you want to save your employees' time and avoid them to always have coins in
'installable': True,
'application': True,
'certificate': '001292377792581874189',
+ 'license': 'LGPL-3',
}
diff --git a/addons/mail/__manifest__.py b/addons/mail/__manifest__.py
index 06073e045f..28a5ce801b 100644
--- a/addons/mail/__manifest__.py
+++ b/addons/mail/__manifest__.py
@@ -123,4 +123,5 @@
'static/src/widgets/discuss_invite_partner_dialog/discuss_invite_partner_dialog.xml',
'static/src/widgets/messaging_menu/messaging_menu.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py
index 003e29d20a..1453c84a32 100644
--- a/addons/mail/models/mail_channel.py
+++ b/addons/mail/models/mail_channel.py
@@ -748,10 +748,14 @@ class Channel(models.Model):
state = 'folded'
else:
state = 'open'
- session_state.write({
- 'fold_state': state,
- 'is_minimized': bool(state != 'closed'),
- })
+ is_minimized = bool(state != 'closed')
+ vals = {}
+ if session_state.fold_state != state:
+ vals['fold_state'] = state
+ if session_state.is_minimized != is_minimized:
+ vals['is_minimized'] = is_minimized
+ if vals:
+ session_state.write(vals)
self.env['bus.bus'].sendone((self._cr.dbname, 'res.partner', self.env.user.partner_id.id), session_state.channel_id.channel_info()[0])
@api.model
diff --git a/addons/mail_bot/__manifest__.py b/addons/mail_bot/__manifest__.py
index 005494223b..c7d6f1f649 100644
--- a/addons/mail_bot/__manifest__.py
+++ b/addons/mail_bot/__manifest__.py
@@ -23,4 +23,5 @@
'qweb': [
'static/src/bugfix/bugfix.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/mail_bot_hr/__manifest__.py b/addons/mail_bot_hr/__manifest__.py
index 10a834da13..7395fa9ce5 100644
--- a/addons/mail_bot_hr/__manifest__.py
+++ b/addons/mail_bot_hr/__manifest__.py
@@ -13,4 +13,5 @@
'data': [
'views/res_users_views.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/mail_client_extension/__manifest__.py b/addons/mail_client_extension/__manifest__.py
index a80b9968ba..459245c102 100644
--- a/addons/mail_client_extension/__manifest__.py
+++ b/addons/mail_client_extension/__manifest__.py
@@ -20,5 +20,6 @@
],
'installable': True,
'application': False,
- 'auto_install': False
+ 'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/maintenance/__manifest__.py b/addons/maintenance/__manifest__.py
index 951a237bf5..5eba2e3cfd 100644
--- a/addons/maintenance/__manifest__.py
+++ b/addons/maintenance/__manifest__.py
@@ -23,4 +23,5 @@
'demo': ['data/maintenance_demo.xml'],
'installable': True,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing/__manifest__.py b/addons/mass_mailing/__manifest__.py
index dfbcccf535..d15779d7cf 100644
--- a/addons/mass_mailing/__manifest__.py
+++ b/addons/mass_mailing/__manifest__.py
@@ -51,4 +51,5 @@
'static/src/xml/*.xml',
],
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_crm/__manifest__.py b/addons/mass_mailing_crm/__manifest__.py
index 5df8eaa8d9..cc71458f1b 100644
--- a/addons/mass_mailing_crm/__manifest__.py
+++ b/addons/mass_mailing_crm/__manifest__.py
@@ -15,4 +15,5 @@
'data/mass_mailing_demo.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_event/__manifest__.py b/addons/mass_mailing_event/__manifest__.py
index 708b93d50d..1b46574dfd 100644
--- a/addons/mass_mailing_event/__manifest__.py
+++ b/addons/mass_mailing_event/__manifest__.py
@@ -17,4 +17,5 @@ Bridge module adding UX requirements to ease mass mailing of event attendees.
'views/event_views.xml'
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_event_sms/__manifest__.py b/addons/mass_mailing_event_sms/__manifest__.py
index b2f868448e..0edb235937 100644
--- a/addons/mass_mailing_event_sms/__manifest__.py
+++ b/addons/mass_mailing_event_sms/__manifest__.py
@@ -21,4 +21,5 @@ Bridge module adding UX requirements to ease SMS marketing o, event attendees.
'data': [
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_event_track/__manifest__.py b/addons/mass_mailing_event_track/__manifest__.py
index 8dc21de1b0..1eefd0a804 100644
--- a/addons/mass_mailing_event_track/__manifest__.py
+++ b/addons/mass_mailing_event_track/__manifest__.py
@@ -17,4 +17,5 @@ Bridge module adding UX requirements to ease mass mailing of event track speaker
'views/event_views.xml'
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_event_track_sms/__manifest__.py b/addons/mass_mailing_event_track_sms/__manifest__.py
index ebabfe47f4..876eb7325c 100644
--- a/addons/mass_mailing_event_track_sms/__manifest__.py
+++ b/addons/mass_mailing_event_track_sms/__manifest__.py
@@ -22,4 +22,5 @@ speakers..
'data': [
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_sale/__manifest__.py b/addons/mass_mailing_sale/__manifest__.py
index 500ce39274..a5166bd67c 100644
--- a/addons/mass_mailing_sale/__manifest__.py
+++ b/addons/mass_mailing_sale/__manifest__.py
@@ -15,4 +15,5 @@
'data/mass_mailing_demo.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_slides/__manifest__.py b/addons/mass_mailing_slides/__manifest__.py
index 2810249cff..edf5d974c8 100644
--- a/addons/mass_mailing_slides/__manifest__.py
+++ b/addons/mass_mailing_slides/__manifest__.py
@@ -17,4 +17,5 @@ Bridge module adding UX requirements to ease mass mailing of course members.
'views/slide_channel_views.xml'
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mass_mailing_sms/__manifest__.py b/addons/mass_mailing_sms/__manifest__.py
index a5d5fbb7df..836f1be6c9 100644
--- a/addons/mass_mailing_sms/__manifest__.py
+++ b/addons/mass_mailing_sms/__manifest__.py
@@ -34,4 +34,5 @@
'data/mailing_demo.xml',
],
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/membership/__manifest__.py b/addons/membership/__manifest__.py
index a70a4fefb9..ce7caae7c3 100644
--- a/addons/membership/__manifest__.py
+++ b/addons/membership/__manifest__.py
@@ -30,4 +30,5 @@ invoice and send propositions for membership renewal.
'report/report_membership_views.xml',
],
'website': 'https://www.flectrahq.com/page/community-builder',
+ 'license': 'LGPL-3',
}
diff --git a/addons/microsoft_account/__manifest__.py b/addons/microsoft_account/__manifest__.py
index 59a933b65d..17a663e168 100644
--- a/addons/microsoft_account/__manifest__.py
+++ b/addons/microsoft_account/__manifest__.py
@@ -12,4 +12,5 @@ The module adds Microsoft user in res user.
'data': [
'data/microsoft_account_data.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/microsoft_calendar/__manifest__.py b/addons/microsoft_calendar/__manifest__.py
index 827788fbfa..27fce22fce 100644
--- a/addons/microsoft_calendar/__manifest__.py
+++ b/addons/microsoft_calendar/__manifest__.py
@@ -21,4 +21,5 @@
'installable': True,
'auto_install': False,
'post_init_hook': 'init_initiating_microsoft_uuid',
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp/__manifest__.py b/addons/mrp/__manifest__.py
index 7995206ccc..cc68daca05 100644
--- a/addons/mrp/__manifest__.py
+++ b/addons/mrp/__manifest__.py
@@ -55,4 +55,5 @@
'pre_init_hook': '_pre_init_mrp',
'post_init_hook': '_create_warehouse_data',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py
index 0729e6dffe..2cb1f9aa65 100644
--- a/addons/mrp/models/mrp_production.py
+++ b/addons/mrp/models/mrp_production.py
@@ -1109,8 +1109,9 @@ class MrpProduction(models.Model):
production.move_raw_ids._adjust_procure_method()
(production.move_raw_ids | production.move_finished_ids)._action_confirm()
production.workorder_ids._action_confirm()
- # run scheduler for moves forecasted to not have enough in stock
- production.move_raw_ids._trigger_scheduler()
+
+ # run scheduler for moves forecasted to not have enough in stock
+ self.move_raw_ids._trigger_scheduler()
return True
def action_assign(self):
diff --git a/addons/mrp/tests/test_procurement.py b/addons/mrp/tests/test_procurement.py
index 3ce98dadfc..9b97a2e85c 100644
--- a/addons/mrp/tests/test_procurement.py
+++ b/addons/mrp/tests/test_procurement.py
@@ -6,6 +6,7 @@ from flectra import fields
from flectra.tests import Form
from flectra.addons.mrp.tests.common import TestMrpCommon
from flectra.exceptions import UserError
+from flectra.tools import mute_logger
class TestProcurement(TestMrpCommon):
@@ -128,6 +129,97 @@ class TestProcurement(TestMrpCommon):
production_product_4 = production_form.save()
production_product_4.action_confirm()
+ def test_procurement_4(self):
+ warehouse = self.env['stock.warehouse'].search([], limit=1)
+ product_A = self.env['product.product'].create({
+ 'name': 'productA',
+ 'type': 'product',
+ 'route_ids': [(4, self.ref('mrp.route_warehouse0_manufacture'))]
+ })
+ product_B = self.env['product.product'].create({
+ 'name': 'productB',
+ 'type': 'product',
+ 'route_ids': [(4, self.ref('mrp.route_warehouse0_manufacture'))]
+ })
+ product_C = self.env['product.product'].create({
+ 'name': 'productC',
+ 'type': 'product',
+ })
+ product_route = self.env['stock.location.route'].create({
+ 'name': 'Stock -> output route',
+ 'product_selectable': True,
+ 'rule_ids': [(0, 0, {
+ 'name': 'Stock -> output rule',
+ 'action': 'pull',
+ 'picking_type_id': self.ref('stock.picking_type_internal'),
+ 'location_src_id': self.ref('stock.stock_location_stock'),
+ 'location_id': self.ref('stock.stock_location_output'),
+ })],
+ })
+
+ # Set this route on `product.product_product_3`
+ product_C.write({
+ 'route_ids': [(4, product_route.id)]
+ })
+
+ bom_A = self.env['mrp.bom'].create({
+ 'product_id': product_A.id,
+ 'product_tmpl_id': product_A.product_tmpl_id.id,
+ 'product_uom_id': self.uom_unit.id,
+ 'product_qty': 1.0,
+ 'type': 'normal',
+ 'bom_line_ids': [
+ (0, 0, {'product_id': product_B.id, 'product_qty': 2.0})
+ ]})
+
+ self.env['stock.warehouse.orderpoint'].create({
+ 'name': 'A RR',
+ 'location_id': warehouse.lot_stock_id.id,
+ 'product_id': product_A.id,
+ 'product_min_qty': 10,
+ 'product_max_qty': 100,
+ })
+
+ bom_B = self.env['mrp.bom'].create({
+ 'product_id': product_B.id,
+ 'product_tmpl_id': product_B.product_tmpl_id.id,
+ 'product_uom_id': self.uom_unit.id,
+ 'product_qty': 1.0,
+ 'type': 'normal',
+ 'bom_line_ids': [
+ (0, 0, {'product_id': product_C.id, 'product_qty': 1.0})
+ ]})
+
+ self.env['stock.warehouse.orderpoint'].create({
+ 'name': 'B RR',
+ 'location_id': warehouse.lot_stock_id.id,
+ 'product_id': product_B.id,
+ 'product_min_qty': 20,
+ 'product_max_qty': 200,
+ })
+
+ self.env['stock.warehouse.orderpoint'].create({
+ 'name': 'C RR',
+ 'location_id': warehouse.lot_stock_id.id,
+ 'product_id': product_C.id,
+ 'product_min_qty': 20,
+ 'product_max_qty': 200,
+ })
+
+ with mute_logger('flectra.addons.stock.models.procurement'):
+ self.env['procurement.group'].run_scheduler()
+
+ production_A = self.env['mrp.production'].search([
+ ('product_id', '=', product_A.id),
+ ('state', '=', 'confirmed')
+ ])
+ self.assertEqual(production_A.product_uom_qty, 100, "100 units of A should be scheduled for production")
+ production_B = self.env['mrp.production'].search([
+ ('product_id', '=', product_B.id),
+ ('state', '=', 'confirmed')
+ ])
+ self.assertEqual(sum(production_B.mapped('product_uom_qty')), 400, "400 units of B should be scheduled for production")
+
def test_procurement_3(self):
warehouse = self.env['stock.warehouse'].search([], limit=1)
warehouse.write({'reception_steps': 'three_steps'})
diff --git a/addons/mrp_account/__manifest__.py b/addons/mrp_account/__manifest__.py
index 491cb16a7e..fb1d1e7362 100644
--- a/addons/mrp_account/__manifest__.py
+++ b/addons/mrp_account/__manifest__.py
@@ -28,4 +28,5 @@ If the automated inventory valuation is active, the necessary accounting entries
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp_landed_costs/__manifest__.py b/addons/mrp_landed_costs/__manifest__.py
index 589bcee75e..03922224bc 100644
--- a/addons/mrp_landed_costs/__manifest__.py
+++ b/addons/mrp_landed_costs/__manifest__.py
@@ -16,4 +16,5 @@ take them into account in your stock valuation.
'views/stock_landed_cost_views.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp_product_expiry/__manifest__.py b/addons/mrp_product_expiry/__manifest__.py
index a3dcc44f4c..e9646fe831 100644
--- a/addons/mrp_product_expiry/__manifest__.py
+++ b/addons/mrp_product_expiry/__manifest__.py
@@ -16,4 +16,5 @@ Technical module.
'installable': True,
'auto_install': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp_subcontracting/__manifest__.py b/addons/mrp_subcontracting/__manifest__.py
index d980322c8d..69cd32ec25 100644
--- a/addons/mrp_subcontracting/__manifest__.py
+++ b/addons/mrp_subcontracting/__manifest__.py
@@ -25,4 +25,5 @@
'data/mrp_subcontracting_demo.xml',
],
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp_subcontracting/models/mrp_bom.py b/addons/mrp_subcontracting/models/mrp_bom.py
index e81fde596c..0c8ccf400c 100644
--- a/addons/mrp_subcontracting/models/mrp_bom.py
+++ b/addons/mrp_subcontracting/models/mrp_bom.py
@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
-from flectra import fields, models
+from flectra import api, fields, models, _
+from flectra.exceptions import ValidationError
from flectra.osv.expression import AND
class MrpBom(models.Model):
@@ -19,3 +20,8 @@ class MrpBom(models.Model):
return self.search(domain, order='sequence, product_id', limit=1)
else:
return self.env['mrp.bom']
+
+ @api.constrains('operation_ids', 'type')
+ def _check_subcontracting_no_operation(self):
+ if self.filtered_domain([('type', '=', 'subcontract'), ('operation_ids', '!=', False)]):
+ raise ValidationError(_('You can not set a Bill of Material with operations as subcontracting.'))
diff --git a/addons/mrp_subcontracting_account/__manifest__.py b/addons/mrp_subcontracting_account/__manifest__.py
index eb773fd78b..a412f67710 100644
--- a/addons/mrp_subcontracting_account/__manifest__.py
+++ b/addons/mrp_subcontracting_account/__manifest__.py
@@ -11,4 +11,5 @@
'depends': ['mrp_subcontracting', 'mrp_account'],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/mrp_subcontracting_dropshipping/__manifest__.py b/addons/mrp_subcontracting_dropshipping/__manifest__.py
index fd8a2ab56f..d738d836cc 100644
--- a/addons/mrp_subcontracting_dropshipping/__manifest__.py
+++ b/addons/mrp_subcontracting_dropshipping/__manifest__.py
@@ -12,4 +12,5 @@
'depends': ['mrp_subcontracting', 'stock_dropshipping'],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/note/__manifest__.py b/addons/note/__manifest__.py
index 65dfd02ed6..fb91925896 100644
--- a/addons/note/__manifest__.py
+++ b/addons/note/__manifest__.py
@@ -32,4 +32,5 @@
'installable': True,
'application': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/note_pad/__manifest__.py b/addons/note_pad/__manifest__.py
index 7f45a5e179..bc9e3228e3 100644
--- a/addons/note_pad/__manifest__.py
+++ b/addons/note_pad/__manifest__.py
@@ -24,4 +24,5 @@ Use for update your text memo in real time with the following user that you invi
'installable': True,
'application': False,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pad/__manifest__.py b/addons/pad/__manifest__.py
index 6c0a5dccde..9d65615fe4 100644
--- a/addons/pad/__manifest__.py
+++ b/addons/pad/__manifest__.py
@@ -19,5 +19,6 @@ pads (by default, http://etherpad.com/).
],
'demo': ['data/pad_demo.xml'],
'web': True,
- 'qweb': ['static/src/xml/pad.xml']
+ 'qweb': ['static/src/xml/pad.xml'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/pad_project/__manifest__.py b/addons/pad_project/__manifest__.py
index 68239204f4..c7b22ed6f7 100644
--- a/addons/pad_project/__manifest__.py
+++ b/addons/pad_project/__manifest__.py
@@ -19,4 +19,5 @@ This module adds a PAD in all project form views.
'views/project_portal_assets.xml'
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment/__manifest__.py b/addons/payment/__manifest__.py
index a7471b71ea..459cd9f9bf 100644
--- a/addons/payment/__manifest__.py
+++ b/addons/payment/__manifest__.py
@@ -27,4 +27,5 @@
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment/controllers/portal.py b/addons/payment/controllers/portal.py
index 34adccd137..60f2b03a9d 100644
--- a/addons/payment/controllers/portal.py
+++ b/addons/payment/controllers/portal.py
@@ -115,6 +115,12 @@ class PaymentProcessing(http.Controller):
return result
class WebsitePayment(http.Controller):
+ @staticmethod
+ def _get_acquirers_compatible_with_current_user(acquirers):
+ # s2s mode will always generate a token, which we don't want for public users
+ valid_flows = ['form'] if request.env.user._is_public() else ['form', 's2s']
+ return [acq for acq in acquirers if acq.payment_flow in valid_flows]
+
@http.route(['/my/payment_method'], type='http', auth="user", website=True)
def payment_method(self, **kwargs):
acquirers = list(request.env['payment.acquirer'].search([
@@ -254,9 +260,7 @@ class WebsitePayment(http.Controller):
if not acquirers:
acquirers = env['payment.acquirer'].search(acquirer_domain)
- # s2s mode will always generate a token, which we don't want for public users
- valid_flows = ['form', 's2s'] if not user._is_public() else ['form']
- values['acquirers'] = [acq for acq in acquirers if acq.payment_flow in valid_flows]
+ values['acquirers'] = self._get_acquirers_compatible_with_current_user(acquirers)
if partner_id:
values['pms'] = request.env['payment.token'].search([
('acquirer_id', 'in', acquirers.ids),
diff --git a/addons/payment_adyen/__manifest__.py b/addons/payment_adyen/__manifest__.py
index d3706222bd..361a334984 100644
--- a/addons/payment_adyen/__manifest__.py
+++ b/addons/payment_adyen/__manifest__.py
@@ -17,4 +17,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_alipay/__manifest__.py b/addons/payment_alipay/__manifest__.py
index 764023f508..627b658004 100644
--- a/addons/payment_alipay/__manifest__.py
+++ b/addons/payment_alipay/__manifest__.py
@@ -15,4 +15,5 @@
],
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_authorize/__manifest__.py b/addons/payment_authorize/__manifest__.py
index 17c11402e6..d7b2af44ac 100644
--- a/addons/payment_authorize/__manifest__.py
+++ b/addons/payment_authorize/__manifest__.py
@@ -17,4 +17,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_buckaroo/__manifest__.py b/addons/payment_buckaroo/__manifest__.py
index 7b25b9ede5..a0e3a07a15 100644
--- a/addons/payment_buckaroo/__manifest__.py
+++ b/addons/payment_buckaroo/__manifest__.py
@@ -17,4 +17,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_fix_register_token/__manifest__.py b/addons/payment_fix_register_token/__manifest__.py
index 4524a9c822..ce46be1cd4 100644
--- a/addons/payment_fix_register_token/__manifest__.py
+++ b/addons/payment_fix_register_token/__manifest__.py
@@ -12,4 +12,5 @@
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_ingenico/__manifest__.py b/addons/payment_ingenico/__manifest__.py
index fb625787ab..8598a1fe4f 100644
--- a/addons/payment_ingenico/__manifest__.py
+++ b/addons/payment_ingenico/__manifest__.py
@@ -17,4 +17,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_odoo_by_adyen/__manifest__.py b/addons/payment_odoo_by_adyen/__manifest__.py
index 1933ca6f1a..e27a8055f0 100644
--- a/addons/payment_odoo_by_adyen/__manifest__.py
+++ b/addons/payment_odoo_by_adyen/__manifest__.py
@@ -16,4 +16,5 @@
],
'installable': True,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_paypal/__manifest__.py b/addons/payment_paypal/__manifest__.py
index bfbebc982c..b262dfb64f 100644
--- a/addons/payment_paypal/__manifest__.py
+++ b/addons/payment_paypal/__manifest__.py
@@ -18,4 +18,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_payulatam/__manifest__.py b/addons/payment_payulatam/__manifest__.py
index 04fcbed87f..4f97e5fb6d 100644
--- a/addons/payment_payulatam/__manifest__.py
+++ b/addons/payment_payulatam/__manifest__.py
@@ -15,4 +15,5 @@
],
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_payumoney/__manifest__.py b/addons/payment_payumoney/__manifest__.py
index 6300299f7d..8021e9895e 100644
--- a/addons/payment_payumoney/__manifest__.py
+++ b/addons/payment_payumoney/__manifest__.py
@@ -20,4 +20,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_sips/__manifest__.py b/addons/payment_sips/__manifest__.py
index 132de32c7c..80cb7ee2a1 100644
--- a/addons/payment_sips/__manifest__.py
+++ b/addons/payment_sips/__manifest__.py
@@ -25,4 +25,5 @@ not guaranteed.""",
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_stripe/__manifest__.py b/addons/payment_stripe/__manifest__.py
index a7fad40be8..f40ef18d19 100644
--- a/addons/payment_stripe/__manifest__.py
+++ b/addons/payment_stripe/__manifest__.py
@@ -18,4 +18,5 @@
'application': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_test/__manifest__.py b/addons/payment_test/__manifest__.py
index 25a323e0ed..b50e6dcdee 100644
--- a/addons/payment_test/__manifest__.py
+++ b/addons/payment_test/__manifest__.py
@@ -17,4 +17,5 @@ not use it in production environment.
],
'installable': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
+ 'license': 'LGPL-3',
}
diff --git a/addons/payment_transfer/__manifest__.py b/addons/payment_transfer/__manifest__.py
index 9f1f032bd7..e517cbe246 100644
--- a/addons/payment_transfer/__manifest__.py
+++ b/addons/payment_transfer/__manifest__.py
@@ -16,4 +16,5 @@
'auto_install': True,
'post_init_hook': 'create_missing_journal_for_acquirers',
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/phone_validation/__manifest__.py b/addons/phone_validation/__manifest__.py
index 88d3f008e1..b17729ae10 100644
--- a/addons/phone_validation/__manifest__.py
+++ b/addons/phone_validation/__manifest__.py
@@ -33,4 +33,5 @@ It adds two mixins :
'mail',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/point_of_sale/__manifest__.py b/addons/point_of_sale/__manifest__.py
index 1322755939..a1ae29e453 100644
--- a/addons/point_of_sale/__manifest__.py
+++ b/addons/point_of_sale/__manifest__.py
@@ -121,4 +121,5 @@
'static/src/xml/Misc/MobileOrderWidget.xml',
],
'website': 'https://www.flectrahq.com/page/point-of-sale-shop',
+ 'license': 'LGPL-3',
}
diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py
index d7f122ab0e..7afece88ef 100644
--- a/addons/point_of_sale/models/pos_config.py
+++ b/addons/point_of_sale/models/pos_config.py
@@ -574,6 +574,8 @@ class PosConfig(models.Model):
}
def _force_http(self):
+ if self.other_devices:
+ return True
return False
def _get_pos_base_url(self):
diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py
index be3306e3f8..e8b92ab34b 100644
--- a/addons/point_of_sale/models/pos_session.py
+++ b/addons/point_of_sale/models/pos_session.py
@@ -1121,7 +1121,7 @@ class PosSession(models.Model):
def _alert_old_session(self):
# If the session is open for more then one week,
# log a next activity to close the session.
- sessions = self.search([('start_at', '<=', (fields.datetime.now() - timedelta(days=7))), ('state', '!=', 'closed')])
+ sessions = self.sudo().search([('start_at', '<=', (fields.datetime.now() - timedelta(days=7))), ('state', '!=', 'closed')])
for session in sessions:
if self.env['mail.activity'].search_count([('res_id', '=', session.id), ('res_model', '=', 'pos.session')]) == 0:
session.activity_schedule(
diff --git a/addons/portal/__manifest__.py b/addons/portal/__manifest__.py
index 26fa571636..3e7210d3cd 100644
--- a/addons/portal/__manifest__.py
+++ b/addons/portal/__manifest__.py
@@ -28,4 +28,5 @@ a dependency towards website editing and customization capabilities.""",
'static/src/xml/portal_chatter.xml',
'static/src/xml/portal_signature.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/portal_rating/__manifest__.py b/addons/portal_rating/__manifest__.py
index 59095323ac..12d7d9b763 100644
--- a/addons/portal_rating/__manifest__.py
+++ b/addons/portal_rating/__manifest__.py
@@ -20,4 +20,5 @@ inclusion of rating directly within the customer portal discuss widget.
'views/rating_templates.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_adyen/__manifest__.py b/addons/pos_adyen/__manifest__.py
index ca5c543bce..feca4d7961 100644
--- a/addons/pos_adyen/__manifest__.py
+++ b/addons/pos_adyen/__manifest__.py
@@ -18,4 +18,5 @@
'depends': ['adyen_platforms', 'point_of_sale'],
'qweb': ['static/src/xml/pos.xml'],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_cache/__manifest__.py b/addons/pos_cache/__manifest__.py
index 1ad02b626e..9abe639144 100644
--- a/addons/pos_cache/__manifest__.py
+++ b/addons/pos_cache/__manifest__.py
@@ -18,5 +18,6 @@ time it takes to load a POS session with a lot of products.
'security/ir.model.access.csv',
'views/pos_cache_views.xml',
'views/pos_cache_templates.xml',
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_discount/__manifest__.py b/addons/pos_discount/__manifest__.py
index 883b242f4e..8e3b093761 100644
--- a/addons/pos_discount/__manifest__.py
+++ b/addons/pos_discount/__manifest__.py
@@ -23,4 +23,5 @@ discount to a customer.
'static/src/xml/DiscountButton.xml',
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_epson_printer/__manifest__.py b/addons/pos_epson_printer/__manifest__.py
index 6d2c434e45..2d47ca0f37 100644
--- a/addons/pos_epson_printer/__manifest__.py
+++ b/addons/pos_epson_printer/__manifest__.py
@@ -19,4 +19,5 @@ Use Epson ePOS Printers without the IoT Box in the Point of Sale
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_epson_printer_restaurant/__manifest__.py b/addons/pos_epson_printer_restaurant/__manifest__.py
index ed7ba92a80..6d860c233e 100644
--- a/addons/pos_epson_printer_restaurant/__manifest__.py
+++ b/addons/pos_epson_printer_restaurant/__manifest__.py
@@ -19,4 +19,5 @@ Use Epson Printers as Order Printers in the Point of Sale without the IoT Box
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_hr/__manifest__.py b/addons/pos_hr/__manifest__.py
index 181efb29b9..4d31a592ac 100644
--- a/addons/pos_hr/__manifest__.py
+++ b/addons/pos_hr/__manifest__.py
@@ -27,4 +27,5 @@ The actual till still requires one user but an unlimited number of employees can
'static/src/xml/CashierName.xml',
'static/src/xml/LoginScreen.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_mercury/__manifest__.py b/addons/pos_mercury/__manifest__.py
index fabb64515c..a734c530a5 100644
--- a/addons/pos_mercury/__manifest__.py
+++ b/addons/pos_mercury/__manifest__.py
@@ -40,4 +40,5 @@ following:
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_restaurant/__manifest__.py b/addons/pos_restaurant/__manifest__.py
index 47d4b67b52..75f185c581 100644
--- a/addons/pos_restaurant/__manifest__.py
+++ b/addons/pos_restaurant/__manifest__.py
@@ -58,4 +58,5 @@ This module adds several features to the Point of Sale that are specific to rest
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_restaurant/models/pos_config.py b/addons/pos_restaurant/models/pos_config.py
index 3cde3e8769..caf4b7cd62 100644
--- a/addons/pos_restaurant/models/pos_config.py
+++ b/addons/pos_restaurant/models/pos_config.py
@@ -31,6 +31,11 @@ class PosConfig(models.Model):
if not self.iface_tipproduct:
self.set_tip_after_payment = False
+ def _force_http(self):
+ if self.printer_ids.filtered(lambda pt: pt.printer_type == 'epson_epos'):
+ return True
+ return super(PosConfig, self)._force_http()
+
def get_tables_order_count(self):
""" """
self.ensure_one()
diff --git a/addons/pos_restaurant/static/src/js/Screens/BillScreen.js b/addons/pos_restaurant/static/src/js/Screens/BillScreen.js
index 17bffd1357..fd7cad22cf 100644
--- a/addons/pos_restaurant/static/src/js/Screens/BillScreen.js
+++ b/addons/pos_restaurant/static/src/js/Screens/BillScreen.js
@@ -13,6 +13,13 @@ flectra.define('pos_restaurant.BillScreen', function (require) {
whenClosing() {
this.confirm();
}
+ /**
+ * @override
+ */
+ async printReceipt() {
+ await super.printReceipt();
+ this.currentOrder._printed = false;
+ }
}
BillScreen.template = 'BillScreen';
return BillScreen;
diff --git a/addons/pos_restaurant/static/src/js/Screens/ReceiptScreen/ReceiptScreen.js b/addons/pos_restaurant/static/src/js/Screens/ReceiptScreen/ReceiptScreen.js
index 5a59c70835..bd2eeb10a7 100644
--- a/addons/pos_restaurant/static/src/js/Screens/ReceiptScreen/ReceiptScreen.js
+++ b/addons/pos_restaurant/static/src/js/Screens/ReceiptScreen/ReceiptScreen.js
@@ -20,13 +20,6 @@ flectra.define('pos_restaurant.ReceiptScreen', function(require) {
return super.nextScreen;
}
}
- /**
- * @override
- */
- async _printWeb() {
- await super._printWeb();
- this.currentOrder._printed = false;
- }
};
Registries.Component.extend(ReceiptScreen, PosResReceiptScreen);
diff --git a/addons/pos_restaurant_adyen/__manifest__.py b/addons/pos_restaurant_adyen/__manifest__.py
index c41ffacd01..4b40ca5910 100644
--- a/addons/pos_restaurant_adyen/__manifest__.py
+++ b/addons/pos_restaurant_adyen/__manifest__.py
@@ -14,4 +14,5 @@
'views/point_of_sale_assets.xml',
],
'auto-install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_sale/__manifest__.py b/addons/pos_sale/__manifest__.py
index 73daadaf25..ba75380ad8 100644
--- a/addons/pos_sale/__manifest__.py
+++ b/addons/pos_sale/__manifest__.py
@@ -22,4 +22,5 @@ This module adds a custom Sales Team for the Point of Sale. This enables you to
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/pos_six/__manifest__.py b/addons/pos_six/__manifest__.py
index a8941f91bd..f3af9b71a1 100644
--- a/addons/pos_six/__manifest__.py
+++ b/addons/pos_six/__manifest__.py
@@ -17,5 +17,5 @@
],
'depends': ['point_of_sale'],
'installable': True,
- 'license': 'OEEL-1',
+ 'license': 'LGPL-3',
}
diff --git a/addons/procurement_jit/__manifest__.py b/addons/procurement_jit/__manifest__.py
index 1d16c7a152..03956b766b 100644
--- a/addons/procurement_jit/__manifest__.py
+++ b/addons/procurement_jit/__manifest__.py
@@ -27,4 +27,5 @@ still unreserve a picking.
'test': [],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/product/__manifest__.py b/addons/product/__manifest__.py
index 40cc8df961..df69f17dae 100644
--- a/addons/product/__manifest__.py
+++ b/addons/product/__manifest__.py
@@ -49,4 +49,5 @@ Print product labels with barcode.
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/product/models/product_template.py b/addons/product/models/product_template.py
index 101af9a960..7f20b3c353 100644
--- a/addons/product/models/product_template.py
+++ b/addons/product/models/product_template.py
@@ -1125,7 +1125,7 @@ class ProductTemplate(models.Model):
yield necessary_values
product_template_attribute_values_per_line = [
- ptal.product_template_value_ids
+ ptal.product_template_value_ids._only_active()
for ptal in attribute_lines
]
diff --git a/addons/product_email_template/__manifest__.py b/addons/product_email_template/__manifest__.py
index 7d421f828e..02ad8b3dd7 100644
--- a/addons/product_email_template/__manifest__.py
+++ b/addons/product_email_template/__manifest__.py
@@ -14,5 +14,6 @@ For instance when invoicing a training, the training agenda and materials will a
'data': [
'views/product_views.xml',
'views/mail_template_views.xml',
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/product_expiry/__manifest__.py b/addons/product_expiry/__manifest__.py
index 600fab09a6..c060e9a6f8 100644
--- a/addons/product_expiry/__manifest__.py
+++ b/addons/product_expiry/__manifest__.py
@@ -28,4 +28,5 @@ Also implements the removal strategy First Expiry First Out (FEFO) widely used,
'report/report_deliveryslip.xml',
'report/report_lot_barcode.xml',
'data/product_expiry_data.xml'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/product_margin/__manifest__.py b/addons/product_margin/__manifest__.py
index f6c2529aad..c68d6028ef 100644
--- a/addons/product_margin/__manifest__.py
+++ b/addons/product_margin/__manifest__.py
@@ -17,4 +17,5 @@ The wizard to launch the report has several options to help you get the data you
'wizard/product_margin_view.xml',
'views/product_product_views.xml'
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/product_matrix/__manifest__.py b/addons/product_matrix/__manifest__.py
index bdf5dab000..107516a12a 100644
--- a/addons/product_matrix/__manifest__.py
+++ b/addons/product_matrix/__manifest__.py
@@ -21,5 +21,6 @@ Please refer to Sale Matrix or Purchase Matrix for the use of this module.
],
'demo': [
'data/product_matrix_demo.xml',
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py
index 88c7ccda24..b234533624 100644
--- a/addons/project/__manifest__.py
+++ b/addons/project/__manifest__.py
@@ -47,4 +47,5 @@
'installable': True,
'auto_install': False,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/project_timesheet_holidays/__manifest__.py b/addons/project_timesheet_holidays/__manifest__.py
index 61de23a717..d2b713d800 100644
--- a/addons/project_timesheet_holidays/__manifest__.py
+++ b/addons/project_timesheet_holidays/__manifest__.py
@@ -24,4 +24,5 @@ on leaves. Project and task can be configured company-wide.
'installable': True,
'auto_install': True,
'post_init_hook': 'post_init',
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase/__manifest__.py b/addons/purchase/__manifest__.py
index 87aa838c0d..e219de3495 100644
--- a/addons/purchase/__manifest__.py
+++ b/addons/purchase/__manifest__.py
@@ -41,4 +41,5 @@
'installable': True,
'auto_install': False,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py
index 4d905caadb..8db200c0f0 100644
--- a/addons/purchase/models/purchase.py
+++ b/addons/purchase/models/purchase.py
@@ -28,9 +28,10 @@ class PurchaseOrder(models.Model):
line._compute_amount()
amount_untaxed += line.price_subtotal
amount_tax += line.price_tax
+ currency = order.currency_id or order.partner_id.property_purchase_currency_id or self.env.company.currency_id
order.update({
- 'amount_untaxed': order.currency_id.round(amount_untaxed),
- 'amount_tax': order.currency_id.round(amount_tax),
+ 'amount_untaxed': currency.round(amount_untaxed),
+ 'amount_tax': currency.round(amount_tax),
'amount_total': amount_untaxed + amount_tax,
})
diff --git a/addons/purchase/static/src/js/purchase_dashboard.js b/addons/purchase/static/src/js/purchase_dashboard.js
index 488ee2d4ca..da216ca147 100644
--- a/addons/purchase/static/src/js/purchase_dashboard.js
+++ b/addons/purchase/static/src/js/purchase_dashboard.js
@@ -166,7 +166,8 @@ var PurchaseKanbanDashboardRenderer = KanbanRenderer.extend({
var purchase_dashboard = QWeb.render('purchase.PurchaseDashboard', {
values: values,
});
- self.$el.prepend(purchase_dashboard);
+ self.$el.parent().find(".o_purchase_dashboard").remove();
+ self.$el.before(purchase_dashboard);
});
},
diff --git a/addons/purchase_mrp/__manifest__.py b/addons/purchase_mrp/__manifest__.py
index 1f9488f9de..c7bfd8186b 100644
--- a/addons/purchase_mrp/__manifest__.py
+++ b/addons/purchase_mrp/__manifest__.py
@@ -20,4 +20,5 @@ from purchase order.
'depends': ['mrp', 'purchase_stock'],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase_product_matrix/__manifest__.py b/addons/purchase_product_matrix/__manifest__.py
index 159331853d..0ac41ff515 100644
--- a/addons/purchase_product_matrix/__manifest__.py
+++ b/addons/purchase_product_matrix/__manifest__.py
@@ -18,4 +18,5 @@
'report/purchase_quotation_templates.xml',
'report/purchase_order_templates.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase_requisition/__manifest__.py b/addons/purchase_requisition/__manifest__.py
index e0d047556b..1c013446df 100644
--- a/addons/purchase_requisition/__manifest__.py
+++ b/addons/purchase_requisition/__manifest__.py
@@ -24,4 +24,5 @@ are agreements you have with vendors to benefit from a predetermined pricing.
'report/purchase_requisition_report.xml',
'report/report_purchaserequisition.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase_requisition_stock/__manifest__.py b/addons/purchase_requisition_stock/__manifest__.py
index fe280544c6..018815c18c 100644
--- a/addons/purchase_requisition_stock/__manifest__.py
+++ b/addons/purchase_requisition_stock/__manifest__.py
@@ -19,4 +19,5 @@
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase_stock/__manifest__.py b/addons/purchase_stock/__manifest__.py
index 744c981917..b2f3cff51b 100644
--- a/addons/purchase_stock/__manifest__.py
+++ b/addons/purchase_stock/__manifest__.py
@@ -33,4 +33,5 @@
'installable': True,
'auto_install': True,
'post_init_hook': '_create_buy_rules',
+ 'license': 'LGPL-3',
}
diff --git a/addons/purchase_stock/tests/__init__.py b/addons/purchase_stock/tests/__init__.py
index 670e8b6b22..796028ae83 100644
--- a/addons/purchase_stock/tests/__init__.py
+++ b/addons/purchase_stock/tests/__init__.py
@@ -17,3 +17,4 @@ from . import test_replenish_wizard
from . import test_reordering_rule
from . import test_move_cancel_propagation
from . import test_product_template
+from . import test_routes
diff --git a/addons/purchase_stock/tests/test_routes.py b/addons/purchase_stock/tests/test_routes.py
new file mode 100644
index 0000000000..0645aa3c24
--- /dev/null
+++ b/addons/purchase_stock/tests/test_routes.py
@@ -0,0 +1,53 @@
+from flectra.tests.common import TransactionCase, Form
+
+
+class TestRoutes(TransactionCase):
+
+ def test_allow_rule_creation_for_route_without_company(self):
+ self.env['res.config.settings'].write({
+ 'group_stock_adv_location': True,
+ 'group_stock_multi_locations': True,
+ })
+
+ warehouse = self.env['stock.warehouse'].search([('company_id', '=', self.env.company.id)], limit=1)
+
+ location_1 = self.env['stock.location'].create({
+ 'name': 'loc1',
+ 'location_id': warehouse.id
+ })
+
+ location_2 = self.env['stock.location'].create({
+ 'name': 'loc2',
+ 'location_id': warehouse.id
+ })
+
+ receipt_1 = self.env['stock.picking.type'].create({
+ 'name': 'Receipts from loc1',
+ 'sequence_code': 'IN1',
+ 'code': 'incoming',
+ 'warehouse_id': warehouse.id,
+ 'default_location_dest_id': location_1.id,
+ })
+
+ receipt_2 = self.env['stock.picking.type'].create({
+ 'name': 'Receipts from loc2',
+ 'sequence_code': 'IN2',
+ 'code': 'incoming',
+ 'warehouse_id': warehouse.id,
+ 'default_location_dest_id': location_2.id,
+ })
+
+ route = self.env['stock.location.route'].create({
+ 'name': 'Buy',
+ 'company_id': False
+ })
+
+ with Form(route) as r:
+ with r.rule_ids.new() as line:
+ line.name = 'first rule'
+ line.action = 'buy'
+ line.picking_type_id = receipt_1
+ with r.rule_ids.new() as line:
+ line.name = 'second rule'
+ line.action = 'buy'
+ line.picking_type_id = receipt_2
diff --git a/addons/rating/__manifest__.py b/addons/rating/__manifest__.py
index 6f05e8fd97..b8843f8ee9 100644
--- a/addons/rating/__manifest__.py
+++ b/addons/rating/__manifest__.py
@@ -18,4 +18,5 @@ This module allows a customer to give rating.
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/repair/__manifest__.py b/addons/repair/__manifest__.py
index d7f5c225b2..d286c97d2b 100644
--- a/addons/repair/__manifest__.py
+++ b/addons/repair/__manifest__.py
@@ -38,4 +38,5 @@ The following topics are covered by this module:
'installable': True,
'auto_install': False,
'application': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/resource/__manifest__.py b/addons/resource/__manifest__.py
index e738b0d1c6..b1f2d07e28 100644
--- a/addons/resource/__manifest__.py
+++ b/addons/resource/__manifest__.py
@@ -23,4 +23,5 @@ associated to every resource. It also manages the leaves of every resource.
],
'demo': [
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale/__manifest__.py b/addons/sale/__manifest__.py
index b916c940bc..af375674f8 100644
--- a/addons/sale/__manifest__.py
+++ b/addons/sale/__manifest__.py
@@ -42,5 +42,6 @@ This module contains all the common features of Sales Management and eCommerce.
'data/sale_demo.xml',
],
'installable': True,
- 'auto_install': False
+ 'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_coupon/__manifest__.py b/addons/sale_coupon/__manifest__.py
index e707c44aa5..45a62cc57e 100644
--- a/addons/sale_coupon/__manifest__.py
+++ b/addons/sale_coupon/__manifest__.py
@@ -16,4 +16,5 @@
'views/coupon_program_views.xml',
'views/res_config_settings_views.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_coupon_delivery/__manifest__.py b/addons/sale_coupon_delivery/__manifest__.py
index 618ad5aea1..52c4f9c335 100644
--- a/addons/sale_coupon_delivery/__manifest__.py
+++ b/addons/sale_coupon_delivery/__manifest__.py
@@ -12,4 +12,5 @@
'demo': [
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_crm/__manifest__.py b/addons/sale_crm/__manifest__.py
index 8b7f000853..2457a12149 100644
--- a/addons/sale_crm/__manifest__.py
+++ b/addons/sale_crm/__manifest__.py
@@ -26,5 +26,6 @@ modules.
'wizard/crm_opportunity_to_quotation_views.xml'
],
'auto_install': True,
- 'uninstall_hook': 'uninstall_hook'
+ 'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_expense/__manifest__.py b/addons/sale_expense/__manifest__.py
index 6053d73e74..bd07c3db86 100644
--- a/addons/sale_expense/__manifest__.py
+++ b/addons/sale_expense/__manifest__.py
@@ -24,4 +24,5 @@ This module allow to reinvoice employee expense, by setting the SO directly on t
'test': [],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_management/__manifest__.py b/addons/sale_management/__manifest__.py
index c55e680c6a..4647057b7c 100644
--- a/addons/sale_management/__manifest__.py
+++ b/addons/sale_management/__manifest__.py
@@ -56,4 +56,5 @@ The Dashboard for the Sales Manager will include
'application': True,
'uninstall_hook': 'uninstall_hook',
'post_init_hook': 'post_init_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_margin/__manifest__.py b/addons/sale_margin/__manifest__.py
index 517fcb61ae..aca6b776bc 100644
--- a/addons/sale_margin/__manifest__.py
+++ b/addons/sale_margin/__manifest__.py
@@ -15,4 +15,5 @@ Price and Cost Price.
'depends':['sale_management'],
'demo':['data/sale_margin_demo.xml'],
'data':['security/ir.model.access.csv','views/sale_margin_view.xml'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_mrp/__manifest__.py b/addons/sale_mrp/__manifest__.py
index ca6c7364b4..e40bb60fd5 100644
--- a/addons/sale_mrp/__manifest__.py
+++ b/addons/sale_mrp/__manifest__.py
@@ -22,4 +22,5 @@ from sales order. It adds sales name and sales Reference on production order.
'demo': [],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_mrp/models/sale.py b/addons/sale_mrp/models/sale.py
index e564b8ad68..9139a13d34 100644
--- a/addons/sale_mrp/models/sale.py
+++ b/addons/sale_mrp/models/sale.py
@@ -67,7 +67,7 @@ class SaleOrderLine(models.Model):
super(SaleOrderLine, self)._compute_qty_delivered()
for order_line in self:
if order_line.qty_delivered_method == 'stock_move':
- boms = order_line.move_ids.mapped('bom_line_id.bom_id')
+ boms = order_line.move_ids.filtered(lambda m: m.state != 'cancel').mapped('bom_line_id.bom_id')
dropship = False
if not boms and any(m._is_dropshipped() for m in order_line.move_ids):
boms = boms._bom_find(product=order_line.product_id, company_id=order_line.company_id.id, bom_type='phantom')
diff --git a/addons/sale_product_configurator/__manifest__.py b/addons/sale_product_configurator/__manifest__.py
index 28837b9088..fca4b1ef23 100644
--- a/addons/sale_product_configurator/__manifest__.py
+++ b/addons/sale_product_configurator/__manifest__.py
@@ -24,4 +24,5 @@ It also enables the "optional products" feature.
'demo': [
'data/sale_demo.xml',
],
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_product_matrix/__manifest__.py b/addons/sale_product_matrix/__manifest__.py
index 2c85362e0c..893116bc47 100644
--- a/addons/sale_product_matrix/__manifest__.py
+++ b/addons/sale_product_matrix/__manifest__.py
@@ -18,5 +18,6 @@
],
'demo': [
'data/product_matrix_demo.xml'
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_project/__manifest__.py b/addons/sale_project/__manifest__.py
index dc888e2629..de328fdaaf 100644
--- a/addons/sale_project/__manifest__.py
+++ b/addons/sale_project/__manifest__.py
@@ -18,4 +18,5 @@ This module allows to generate a project/task from sales orders.
'views/sale_order_views.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_purchase/__manifest__.py b/addons/sale_purchase/__manifest__.py
index fecbac16c4..7d8ce87031 100644
--- a/addons/sale_purchase/__manifest__.py
+++ b/addons/sale_purchase/__manifest__.py
@@ -24,4 +24,5 @@ by external providers and will automatically generate purchase orders directed t
'demo': [
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_purchase_stock/__manifest__.py b/addons/sale_purchase_stock/__manifest__.py
index c8c5b73f9b..c476459e87 100644
--- a/addons/sale_purchase_stock/__manifest__.py
+++ b/addons/sale_purchase_stock/__manifest__.py
@@ -15,4 +15,5 @@ Add relation information between Sale Orders and Purchase Orders if Make to Orde
'qweb': [],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_quotation_builder/__manifest__.py b/addons/sale_quotation_builder/__manifest__.py
index a87bfb1e9a..b10f7c9dc1 100644
--- a/addons/sale_quotation_builder/__manifest__.py
+++ b/addons/sale_quotation_builder/__manifest__.py
@@ -17,4 +17,5 @@
'views/sale_order_views.xml',
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_stock/__manifest__.py b/addons/sale_stock/__manifest__.py
index a5d999a5fc..6c638d94b7 100644
--- a/addons/sale_stock/__manifest__.py
+++ b/addons/sale_stock/__manifest__.py
@@ -41,4 +41,5 @@ Preferences
'qweb': ['static/src/xml/sale_stock.xml'],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_stock_margin/__manifest__.py b/addons/sale_stock_margin/__manifest__.py
index 90fdf9b373..da7c3246a0 100644
--- a/addons/sale_stock_margin/__manifest__.py
+++ b/addons/sale_stock_margin/__manifest__.py
@@ -8,4 +8,5 @@
'depends': ['stock_account', 'sale_margin'],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_timesheet/__manifest__.py b/addons/sale_timesheet/__manifest__.py
index 83a595c9a2..7215cbe20b 100644
--- a/addons/sale_timesheet/__manifest__.py
+++ b/addons/sale_timesheet/__manifest__.py
@@ -42,4 +42,5 @@ have real delivered quantities in sales orders.
],
'auto_install': True,
'uninstall_hook': 'uninstall_hook',
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_timesheet/views/project_task_views.xml b/addons/sale_timesheet/views/project_task_views.xml
index 74d8a5ce11..e93d2ea36a 100644
--- a/addons/sale_timesheet/views/project_task_views.xml
+++ b/addons/sale_timesheet/views/project_task_views.xml
@@ -9,6 +9,9 @@
+
+ {'invisible': ['|', '|', ('allow_billable', '=', False), ('sale_order_id', '=', False), ('bill_type', '!=', 'customer_project')]}
+
diff --git a/addons/sale_timesheet_edit/__manifest__.py b/addons/sale_timesheet_edit/__manifest__.py
index e0f8624359..2c906362de 100644
--- a/addons/sale_timesheet_edit/__manifest__.py
+++ b/addons/sale_timesheet_edit/__manifest__.py
@@ -22,4 +22,5 @@ timesheet in task form view when it is needed.
],
'demo': [],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sale_timesheet_purchase/__manifest__.py b/addons/sale_timesheet_purchase/__manifest__.py
index ab0e9e7a55..709ed8cb74 100644
--- a/addons/sale_timesheet_purchase/__manifest__.py
+++ b/addons/sale_timesheet_purchase/__manifest__.py
@@ -13,4 +13,5 @@ Allows to access purchase orders from Project Overview
'data': [],
'demo': [],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sales_team/__manifest__.py b/addons/sales_team/__manifest__.py
index a2bdb666c9..3b6a94edda 100644
--- a/addons/sales_team/__manifest__.py
+++ b/addons/sales_team/__manifest__.py
@@ -28,4 +28,5 @@ Using this application you can manage Sales Teams with CRM and/or Sales
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/sms/__manifest__.py b/addons/sms/__manifest__.py
index 8ecc553050..cd99d68417 100644
--- a/addons/sms/__manifest__.py
+++ b/addons/sms/__manifest__.py
@@ -45,4 +45,5 @@ The service is provided by the In App Purchase Flectra platform.
],
'installable': True,
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/snailmail/__manifest__.py b/addons/snailmail/__manifest__.py
index dd86463f0f..1b663e024e 100644
--- a/addons/snailmail/__manifest__.py
+++ b/addons/snailmail/__manifest__.py
@@ -30,4 +30,5 @@ Allows users to send documents by post
'static/src/components/snailmail_notification_popover/snailmail_notification_popover.xml',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/snailmail_account/__manifest__.py b/addons/snailmail_account/__manifest__.py
index 758f2f15cf..9dd77b392b 100644
--- a/addons/snailmail_account/__manifest__.py
+++ b/addons/snailmail_account/__manifest__.py
@@ -15,4 +15,5 @@ Allows users to send invoices by post
'security/ir.model.access.csv',
],
'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/social_media/__manifest__.py b/addons/social_media/__manifest__.py
index 05112c24a4..682ef0398f 100644
--- a/addons/social_media/__manifest__.py
+++ b/addons/social_media/__manifest__.py
@@ -18,5 +18,6 @@ social media configuration for any other module that might need it.
],
'demo': [
'demo/res_company_demo.xml',
- ]
+ ],
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock/__manifest__.py b/addons/stock/__manifest__.py
index 339c30ec62..d9b4d20b82 100644
--- a/addons/stock/__manifest__.py
+++ b/addons/stock/__manifest__.py
@@ -94,4 +94,5 @@
'auto_install': False,
'pre_init_hook': 'pre_init_hook',
'post_init_hook': '_assign_default_mail_template_picking_id',
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock/models/stock_orderpoint.py b/addons/stock/models/stock_orderpoint.py
index 964438d400..b722cb8438 100644
--- a/addons/stock/models/stock_orderpoint.py
+++ b/addons/stock/models/stock_orderpoint.py
@@ -152,7 +152,7 @@ class StockWarehouseOrderpoint(models.Model):
@api.depends('rule_ids', 'product_id.seller_ids', 'product_id.seller_ids.delay')
def _compute_lead_days(self):
- for orderpoint in self:
+ for orderpoint in self.with_context(bypass_delay_description=True):
if not orderpoint.product_id or not orderpoint.location_id:
orderpoint.lead_days_date = False
continue
diff --git a/addons/stock/models/stock_rule.py b/addons/stock/models/stock_rule.py
index f1234f5f70..305832a14c 100644
--- a/addons/stock/models/stock_rule.py
+++ b/addons/stock/models/stock_rule.py
@@ -34,6 +34,13 @@ class StockRule(models.Model):
_order = "sequence, id"
_check_company_auto = True
+ @api.model
+ def default_get(self, fields_list):
+ res = super().default_get(fields_list)
+ if 'company_id' in fields_list and not res['company_id']:
+ res['company_id'] = self.env.company.id
+ return res
+
name = fields.Char(
'Name', required=True, translate=True,
help="This field will fill the packing origin and the name of its moves")
diff --git a/addons/stock_account/__manifest__.py b/addons/stock_account/__manifest__.py
index 2910b79a8e..4b30bee17a 100644
--- a/addons/stock_account/__manifest__.py
+++ b/addons/stock_account/__manifest__.py
@@ -40,4 +40,5 @@ Dashboard / Reports for Warehouse Management includes:
'installable': True,
'auto_install': True,
'post_init_hook': '_configure_journals',
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock_dropshipping/__manifest__.py b/addons/stock_dropshipping/__manifest__.py
index 7b38308983..03f2ad01cc 100644
--- a/addons/stock_dropshipping/__manifest__.py
+++ b/addons/stock_dropshipping/__manifest__.py
@@ -24,4 +24,5 @@ internal transfer document is needed.
'data': ['data/stock_data.xml', 'views/sale_order_views.xml'],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock_landed_costs/__manifest__.py b/addons/stock_landed_costs/__manifest__.py
index e9f5b4919a..1246330a65 100644
--- a/addons/stock_landed_costs/__manifest__.py
+++ b/addons/stock_landed_costs/__manifest__.py
@@ -27,4 +27,5 @@ This module allows you to easily add extra costs on pickings and decide the spli
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock_picking_batch/__manifest__.py b/addons/stock_picking_batch/__manifest__.py
index 3dedbfdbf2..ccd48325dc 100644
--- a/addons/stock_picking_batch/__manifest__.py
+++ b/addons/stock_picking_batch/__manifest__.py
@@ -22,4 +22,5 @@ This module adds the batch transfer option in warehouse management
'data/stock_picking_batch_demo.xml',
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/stock_sms/__manifest__.py b/addons/stock_sms/__manifest__.py
index 6257413c7a..20eb68e35e 100644
--- a/addons/stock_sms/__manifest__.py
+++ b/addons/stock_sms/__manifest__.py
@@ -18,4 +18,5 @@
'application': False,
'auto_install': True,
'post_init_hook': '_assign_default_sms_template_picking_id',
+ 'license': 'LGPL-3',
}
diff --git a/addons/survey/__manifest__.py b/addons/survey/__manifest__.py
index 6a2ced1755..3c708a571b 100644
--- a/addons/survey/__manifest__.py
+++ b/addons/survey/__manifest__.py
@@ -56,4 +56,5 @@ sent mails with personal token for the invitation of the survey.
'auto_install': False,
'application': True,
'sequence': 220,
+ 'license': 'LGPL-3',
}
diff --git a/addons/survey/models/survey_user.py b/addons/survey/models/survey_user.py
index be7a016409..5775a04b18 100644
--- a/addons/survey/models/survey_user.py
+++ b/addons/survey/models/survey_user.py
@@ -75,7 +75,7 @@ class SurveyUserInput(models.Model):
score_percentage = (score_total / total_possible_score) * 100
user_input.scoring_percentage = round(score_percentage, 2) if score_percentage > 0 else 0
- @api.depends('scoring_percentage', 'survey_id.scoring_success_min')
+ @api.depends('scoring_percentage', 'survey_id')
def _compute_scoring_success(self):
for user_input in self:
user_input.scoring_success = user_input.scoring_percentage >= user_input.survey_id.scoring_success_min
diff --git a/addons/survey/tests/test_certification_flow.py b/addons/survey/tests/test_certification_flow.py
index bd301f78b6..2a882b0f59 100644
--- a/addons/survey/tests/test_certification_flow.py
+++ b/addons/survey/tests/test_certification_flow.py
@@ -116,6 +116,10 @@ class TestCertificationFlow(common.TestSurveyCommon, HttpCase):
self.assertEqual(user_inputs.scoring_percentage, 87.5)
self.assertTrue(user_inputs.scoring_success)
+ # Check that the certification is still successful even if scoring_success_min of certification is modified
+ certification.write({'scoring_success_min': 90})
+ self.assertTrue(user_inputs.scoring_success)
+
# Check answer correction is taken into account
self.assertNotIn("I think they're great!", user_inputs.mapped('user_input_line_ids.value_text_box'))
self.assertIn("Just kidding, I don't like it...", user_inputs.mapped('user_input_line_ids.value_text_box'))
diff --git a/addons/test_base_automation/__manifest__.py b/addons/test_base_automation/__manifest__.py
index 19da690b76..ef14afcf4d 100644
--- a/addons/test_base_automation/__manifest__.py
+++ b/addons/test_base_automation/__manifest__.py
@@ -16,4 +16,5 @@ tests independently to functional aspects of other models.""",
],
'installable': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_event_full/__manifest__.py b/addons/test_event_full/__manifest__.py
index 9a071558fd..726fe43a57 100644
--- a/addons/test_event_full/__manifest__.py
+++ b/addons/test_event_full/__manifest__.py
@@ -30,4 +30,5 @@ automatic lead generation, full Online support, ...
'demo': [
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_mail/__manifest__.py b/addons/test_mail/__manifest__.py
index 281d3bb0c5..0877fd4768 100644
--- a/addons/test_mail/__manifest__.py
+++ b/addons/test_mail/__manifest__.py
@@ -21,4 +21,5 @@ tests independently to functional aspects of other models. """,
],
'installable': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_mail_full/__manifest__.py b/addons/test_mail_full/__manifest__.py
index 8c1f9b94b3..586ee90882 100644
--- a/addons/test_mail_full/__manifest__.py
+++ b/addons/test_mail_full/__manifest__.py
@@ -28,4 +28,5 @@ real applications. """,
],
'installable': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_mass_mailing/__manifest__.py b/addons/test_mass_mailing/__manifest__.py
index af6c2b7488..60978c8ad0 100644
--- a/addons/test_mass_mailing/__manifest__.py
+++ b/addons/test_mass_mailing/__manifest__.py
@@ -17,4 +17,5 @@ test_mail. """,
],
'installable': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_website/__manifest__.py b/addons/test_website/__manifest__.py
index 7195545571..ce071f73a5 100644
--- a/addons/test_website/__manifest__.py
+++ b/addons/test_website/__manifest__.py
@@ -22,4 +22,5 @@ models which only purpose is to run tests.""",
],
'installable': True,
'application': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_website_slides_full/__manifest__.py b/addons/test_website_slides_full/__manifest__.py
index df71966ba3..8243a7b379 100644
--- a/addons/test_website_slides_full/__manifest__.py
+++ b/addons/test_website_slides_full/__manifest__.py
@@ -23,4 +23,5 @@ certification flow including purchase, certification, failure and success.
'views/assets.xml',
],
'installable': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/test_xlsx_export/__manifest__.py b/addons/test_xlsx_export/__manifest__.py
index 651065a216..ac35525d8b 100644
--- a/addons/test_xlsx_export/__manifest__.py
+++ b/addons/test_xlsx_export/__manifest__.py
@@ -9,4 +9,5 @@
'data': ['ir.model.access.csv'],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/theme_default/__manifest__.py b/addons/theme_default/__manifest__.py
index 55188448b0..10d08c5272 100644
--- a/addons/theme_default/__manifest__.py
+++ b/addons/theme_default/__manifest__.py
@@ -15,4 +15,5 @@
],
'application': False,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/transifex/__manifest__.py b/addons/transifex/__manifest__.py
index 7ed7757e10..40709d5354 100644
--- a/addons/transifex/__manifest__.py
+++ b/addons/transifex/__manifest__.py
@@ -25,4 +25,5 @@ project.
'data/ir_translation_view.xml',
],
'depends': ['base'],
+ 'license': 'LGPL-3',
}
diff --git a/addons/uom/__manifest__.py b/addons/uom/__manifest__.py
index 84f4d5abc2..61c518ac65 100644
--- a/addons/uom/__manifest__.py
+++ b/addons/uom/__manifest__.py
@@ -18,4 +18,5 @@ This is the base module for managing Units of measure.
],
'installable': True,
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/utm/__manifest__.py b/addons/utm/__manifest__.py
index 306340d198..e21cd88ac1 100644
--- a/addons/utm/__manifest__.py
+++ b/addons/utm/__manifest__.py
@@ -20,4 +20,5 @@ Enable management of UTM trackers: campaign, medium, source.
'data/utm_demo.xml',
],
'auto_install': False,
+ 'license': 'LGPL-3',
}
diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py
index 697d021fad..2b9547fa53 100644
--- a/addons/web/__manifest__.py
+++ b/addons/web/__manifest__.py
@@ -36,5 +36,6 @@ This module provides the core of the Flectra Web Client.
"static/src/xml/search_panel.xml",
"static/src/xml/web_calendar.xml",
],
- 'bootstrap': True, # load translations for login screen
+ 'bootstrap': True, # load translations for login screen,
+ 'license': 'LGPL-3',
}
diff --git a/addons/web/static/src/js/core/dialog.js b/addons/web/static/src/js/core/dialog.js
index adde6bc10c..b7b7e955c6 100644
--- a/addons/web/static/src/js/core/dialog.js
+++ b/addons/web/static/src/js/core/dialog.js
@@ -195,6 +195,9 @@ var Dialog = Widget.extend({
var self = this;
this.appendTo($('')).then(function () {
+ if (self.isDestroyed()) {
+ return;
+ }
self.$modal.find(".modal-body").replaceWith(self.$el);
self.$modal.attr('open', true);
self.$modal.removeAttr("aria-hidden");
diff --git a/addons/web/static/src/js/views/list/list_editable_renderer.js b/addons/web/static/src/js/views/list/list_editable_renderer.js
index fe91d59910..bbd414eb61 100644
--- a/addons/web/static/src/js/views/list/list_editable_renderer.js
+++ b/addons/web/static/src/js/views/list/list_editable_renderer.js
@@ -1716,7 +1716,7 @@ ListRenderer.include({
// Fix container width to prevent the table from overflowing when being resized
if (!this.el.style.width) {
- this.el.style.width = `${initialTableWidth}px`;
+ this.el.style.width = `${this.el.offsetWidth}px`;
}
// Apply classes to table and selected column
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index 4884996540..fbfcc2b0d2 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -975,14 +975,15 @@ var PivotModel = AbstractModel.extend({
acc.push(measure);
return acc;
}
- var field = self.fields[measure];
- if (field.type === 'many2one') {
- field.group_operator = 'count_distinct';
+ var type = self.fields[measure].type;
+ var groupOperator = self.fields[measure].group_operator;
+ if (type === 'many2one') {
+ groupOperator = 'count_distinct';
}
- if (field.group_operator === undefined) {
+ if (groupOperator === undefined) {
throw new Error("No aggregate function has been provided for the measure '" + measure + "'");
}
- acc.push(measure + ':' + field.group_operator);
+ acc.push(measure + ':' + groupOperator);
return acc;
},
[]
diff --git a/addons/web/static/src/scss/bootstrap_review.scss b/addons/web/static/src/scss/bootstrap_review.scss
index b568cef6e1..5d69cc8c00 100644
--- a/addons/web/static/src/scss/bootstrap_review.scss
+++ b/addons/web/static/src/scss/bootstrap_review.scss
@@ -185,3 +185,7 @@ $o-navbar-nav-pills-link-border-radius: $nav-pills-border-radius !default;
@include border-radius($o-navbar-nav-pills-link-border-radius);
}
}
+
+.carousel-control-next .sr-only {
+ left: 50%; // Avoid horizontal scrollbar in Chrome
+}
diff --git a/addons/web/static/src/scss/secondary_variables.scss b/addons/web/static/src/scss/secondary_variables.scss
index 9580a27874..aa3d2eeb52 100644
--- a/addons/web/static/src/scss/secondary_variables.scss
+++ b/addons/web/static/src/scss/secondary_variables.scss
@@ -15,7 +15,7 @@ $o-colors-secondary: #aa4b6b, #30C381, #97743a, #F7CD1F, #4285F4, #8E24AA,
// UI custom colors, complete list
$o-colors-complete: join(
- set-nth(set-nth($o-colors, 1, #134E5E), 6, #3daec3),
+ set-nth($o-colors, 1, #134E5E),
$o-colors-secondary
)!default;
diff --git a/addons/web/static/tests/core/dialog_tests.js b/addons/web/static/tests/core/dialog_tests.js
index c6e3bc30ba..39a17f9885 100644
--- a/addons/web/static/tests/core/dialog_tests.js
+++ b/addons/web/static/tests/core/dialog_tests.js
@@ -158,6 +158,16 @@ QUnit.module('core', {}, function () {
parent.destroy();
});
+
+ QUnit.test("Should not be displayed if parent is destroyed while dialog is being opened", async function (assert) {
+ assert.expect(1);
+ const parent = await createEmptyParent();
+ const dialog = new Dialog(parent);
+ dialog.open();
+ parent.destroy();
+ await testUtils.nextTick();
+ assert.containsNone(document.body, ".modal[role='dialog']");
+ });
});
});
diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js
index 477d1db83c..f4d247aa86 100644
--- a/addons/web/static/tests/views/list_tests.js
+++ b/addons/web/static/tests/views/list_tests.js
@@ -11279,6 +11279,47 @@ QUnit.module('Views', {
form.destroy();
});
+ QUnit.test('resize column with x2many list with several fields in form notebook', async function (assert) {
+ assert.expect(1);
+
+ this.data.foo.records[0].o2m = [1, 2];
+
+ const form = await createView({
+ View: FormView,
+ model: 'foo',
+ data: this.data,
+ arch: `
+ `,
+ res_id: 1,
+ });
+
+ const th = form.el.getElementsByTagName('th')[0];
+ const resizeHandle = th.getElementsByClassName('o_resize')[0];
+ const listInitialWidth = form.el.querySelector('.o_list_view').offsetWidth;
+
+ await testUtils.dom.dragAndDrop(resizeHandle, form.el.getElementsByTagName('th')[1], { position: "right" });
+
+ assert.strictEqual(form.el.querySelector('.o_list_view').offsetWidth, listInitialWidth,
+ "resizing the column should not impact the width of list");
+
+ form.destroy();
+ });
+
QUnit.test('enter edition in editable list with ', async function (assert) {
assert.expect(1);
diff --git a/addons/web_editor/__manifest__.py b/addons/web_editor/__manifest__.py
index 41d85e8276..ef5f6fc5c3 100644
--- a/addons/web_editor/__manifest__.py
+++ b/addons/web_editor/__manifest__.py
@@ -18,5 +18,6 @@ Flectra Web Editor widget.
'qweb': [
'static/src/xml/*.xml',
],
- 'auto_install': True
+ 'auto_install': True,
+ 'license': 'LGPL-3',
}
diff --git a/addons/web_editor/static/src/xml/wysiwyg.xml b/addons/web_editor/static/src/xml/wysiwyg.xml
index e1c428d5e3..b8d4b1091a 100644
--- a/addons/web_editor/static/src/xml/wysiwyg.xml
+++ b/addons/web_editor/static/src/xml/wysiwyg.xml
@@ -466,7 +466,7 @@
-