odoo-addon-contract 17.0.1.4.4__py3-none-any.whl → 18.0.2.0.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. odoo/addons/contract/README.rst +14 -10
  2. odoo/addons/contract/__manifest__.py +3 -10
  3. odoo/addons/contract/controllers/main.py +1 -8
  4. odoo/addons/contract/data/contract_cron.xml +0 -2
  5. odoo/addons/contract/data/mail_template.xml +18 -17
  6. odoo/addons/contract/data/template_mail_notification.xml +1 -1
  7. odoo/addons/contract/i18n/am.po +141 -821
  8. odoo/addons/contract/i18n/ar.po +141 -821
  9. odoo/addons/contract/i18n/bg.po +141 -821
  10. odoo/addons/contract/i18n/bs.po +141 -821
  11. odoo/addons/contract/i18n/ca.po +831 -901
  12. odoo/addons/contract/i18n/ca_ES.po +141 -821
  13. odoo/addons/contract/i18n/contract.pot +140 -818
  14. odoo/addons/contract/i18n/cs.po +141 -821
  15. odoo/addons/contract/i18n/da.po +141 -821
  16. odoo/addons/contract/i18n/de.po +708 -954
  17. odoo/addons/contract/i18n/el_GR.po +141 -821
  18. odoo/addons/contract/i18n/en_GB.po +141 -821
  19. odoo/addons/contract/i18n/es.po +710 -948
  20. odoo/addons/contract/i18n/es_AR.po +548 -880
  21. odoo/addons/contract/i18n/es_CL.po +141 -821
  22. odoo/addons/contract/i18n/es_CO.po +141 -821
  23. odoo/addons/contract/i18n/es_CR.po +141 -821
  24. odoo/addons/contract/i18n/es_DO.po +141 -821
  25. odoo/addons/contract/i18n/es_EC.po +141 -821
  26. odoo/addons/contract/i18n/es_MX.po +141 -821
  27. odoo/addons/contract/i18n/es_PY.po +141 -821
  28. odoo/addons/contract/i18n/es_VE.po +141 -821
  29. odoo/addons/contract/i18n/et.po +141 -821
  30. odoo/addons/contract/i18n/eu.po +141 -821
  31. odoo/addons/contract/i18n/fa.po +141 -821
  32. odoo/addons/contract/i18n/fi.po +419 -850
  33. odoo/addons/contract/i18n/fr.po +706 -951
  34. odoo/addons/contract/i18n/fr_CA.po +141 -821
  35. odoo/addons/contract/i18n/fr_CH.po +141 -821
  36. odoo/addons/contract/i18n/fr_FR.po +449 -850
  37. odoo/addons/contract/i18n/gl.po +252 -846
  38. odoo/addons/contract/i18n/gl_ES.po +141 -821
  39. odoo/addons/contract/i18n/he.po +141 -821
  40. odoo/addons/contract/i18n/hi_IN.po +186 -831
  41. odoo/addons/contract/i18n/hr.po +206 -837
  42. odoo/addons/contract/i18n/hr_HR.po +218 -839
  43. odoo/addons/contract/i18n/hu.po +141 -821
  44. odoo/addons/contract/i18n/id.po +141 -821
  45. odoo/addons/contract/i18n/it.po +746 -900
  46. odoo/addons/contract/i18n/ja.po +141 -821
  47. odoo/addons/contract/i18n/ko.po +141 -821
  48. odoo/addons/contract/i18n/lt.po +141 -821
  49. odoo/addons/contract/i18n/lt_LT.po +141 -821
  50. odoo/addons/contract/i18n/lv.po +141 -821
  51. odoo/addons/contract/i18n/mk.po +141 -821
  52. odoo/addons/contract/i18n/mn.po +141 -821
  53. odoo/addons/contract/i18n/nb.po +141 -821
  54. odoo/addons/contract/i18n/nb_NO.po +141 -821
  55. odoo/addons/contract/i18n/nl.po +694 -953
  56. odoo/addons/contract/i18n/nl_BE.po +141 -821
  57. odoo/addons/contract/i18n/nl_NL.po +186 -831
  58. odoo/addons/contract/i18n/pl.po +141 -821
  59. odoo/addons/contract/i18n/pt.po +410 -839
  60. odoo/addons/contract/i18n/pt_BR.po +701 -949
  61. odoo/addons/contract/i18n/pt_PT.po +141 -821
  62. odoo/addons/contract/i18n/ro.po +141 -821
  63. odoo/addons/contract/i18n/ru.po +186 -831
  64. odoo/addons/contract/i18n/sk.po +141 -821
  65. odoo/addons/contract/i18n/sk_SK.po +141 -821
  66. odoo/addons/contract/i18n/sl.po +141 -821
  67. odoo/addons/contract/i18n/sr.po +141 -821
  68. odoo/addons/contract/i18n/sr@latin.po +141 -821
  69. odoo/addons/contract/i18n/sv.po +780 -934
  70. odoo/addons/contract/i18n/th.po +141 -821
  71. odoo/addons/contract/i18n/tr.po +556 -877
  72. odoo/addons/contract/i18n/tr_TR.po +216 -838
  73. odoo/addons/contract/i18n/uk.po +141 -821
  74. odoo/addons/contract/i18n/vi.po +141 -821
  75. odoo/addons/contract/i18n/vi_VN.po +141 -821
  76. odoo/addons/contract/i18n/zh_CN.po +407 -845
  77. odoo/addons/contract/i18n/zh_TW.po +145 -822
  78. odoo/addons/contract/migrations/18.0.2.0.0/end-migrate.py +27 -0
  79. odoo/addons/contract/migrations/18.0.2.0.0/pre-migrate.py +94 -0
  80. odoo/addons/contract/models/__init__.py +2 -6
  81. odoo/addons/contract/models/account_move.py +0 -8
  82. odoo/addons/contract/models/account_move_line.py +14 -0
  83. odoo/addons/contract/models/contract.py +272 -308
  84. odoo/addons/contract/models/contract_line.py +37 -859
  85. odoo/addons/contract/models/{contract_recurrency_mixin.py → contract_recurring_mixin.py} +101 -82
  86. odoo/addons/contract/models/contract_tag.py +1 -3
  87. odoo/addons/contract/models/contract_template.py +81 -2
  88. odoo/addons/contract/models/contract_template_line.py +250 -3
  89. odoo/addons/contract/report/contract_views.xml +0 -2
  90. odoo/addons/contract/report/report_contract.xml +13 -13
  91. odoo/addons/contract/security/contract_security.xml +6 -15
  92. odoo/addons/contract/security/contract_tag.xml +1 -3
  93. odoo/addons/contract/security/ir.model.access.csv +0 -2
  94. odoo/addons/contract/static/description/index.html +24 -18
  95. odoo/addons/contract/static/src/js/contract_portal_tour.esm.js +6 -4
  96. odoo/addons/contract/tests/test_contract.py +82 -928
  97. odoo/addons/contract/tests/test_multicompany.py +5 -4
  98. odoo/addons/contract/tests/test_portal.py +6 -3
  99. odoo/addons/contract/views/contract.xml +92 -235
  100. odoo/addons/contract/views/contract_line.xml +48 -117
  101. odoo/addons/contract/views/contract_portal_templates.xml +181 -222
  102. odoo/addons/contract/views/contract_tag.xml +3 -3
  103. odoo/addons/contract/views/contract_template.xml +100 -72
  104. odoo/addons/contract/views/contract_template_line.xml +76 -5
  105. odoo/addons/contract/views/res_config_settings.xml +5 -6
  106. odoo/addons/contract/views/res_partner_view.xml +0 -5
  107. odoo/addons/contract/wizards/__init__.py +0 -2
  108. odoo/addons/contract/wizards/contract_manually_create_invoice.py +6 -6
  109. odoo/addons/contract/wizards/contract_manually_create_invoice.xml +2 -3
  110. {odoo_addon_contract-17.0.1.4.4.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/METADATA +18 -13
  111. odoo_addon_contract-18.0.2.0.8.dist-info/RECORD +132 -0
  112. {odoo_addon_contract-17.0.1.4.4.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/WHEEL +1 -1
  113. odoo/addons/contract/data/contract_renew_cron.xml +0 -14
  114. odoo/addons/contract/models/abstract_contract.py +0 -82
  115. odoo/addons/contract/models/abstract_contract_line.py +0 -271
  116. odoo/addons/contract/models/contract_line_constraints.py +0 -429
  117. odoo/addons/contract/models/contract_terminate_reason.py +0 -14
  118. odoo/addons/contract/models/res_company.py +0 -15
  119. odoo/addons/contract/models/res_config_settings.py +0 -18
  120. odoo/addons/contract/security/contract_terminate_reason.xml +0 -23
  121. odoo/addons/contract/security/groups.xml +0 -9
  122. odoo/addons/contract/views/abstract_contract_line.xml +0 -117
  123. odoo/addons/contract/views/contract_terminate_reason.xml +0 -38
  124. odoo/addons/contract/wizards/contract_contract_terminate.py +0 -42
  125. odoo/addons/contract/wizards/contract_contract_terminate.xml +0 -33
  126. odoo/addons/contract/wizards/contract_line_wizard.py +0 -53
  127. odoo/addons/contract/wizards/contract_line_wizard.xml +0 -111
  128. odoo_addon_contract-17.0.1.4.4.dist-info/RECORD +0 -144
  129. {odoo_addon_contract-17.0.1.4.4.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,27 @@
1
+ # Copyright 2025 ForgeFlow S.L. (https://www.forgeflow.com)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+ from openupgradelib import openupgrade
4
+
5
+
6
+ @openupgrade.migrate()
7
+ def migrate(env, version):
8
+ env.cr.execute(
9
+ """
10
+ SELECT name
11
+ FROM ir_module_module
12
+ WHERE state='uninstalled' AND name IN (
13
+ 'contract_line_successor', 'contract_termination');"""
14
+ )
15
+ uninstalled_modules = [x[0] for x in env.cr.fetchall()]
16
+ no_update_xml_ids = {
17
+ "contract_line_successor": [
18
+ "contract_line_cron_for_renew",
19
+ ],
20
+ "contract_termination": [],
21
+ }
22
+ xmlids_spec = []
23
+ for new_module, moved_xml_ids in no_update_xml_ids.items():
24
+ if new_module in uninstalled_modules:
25
+ xmlids_spec.extend([f"{new_module}.{xml_id}" for xml_id in moved_xml_ids])
26
+ if xmlids_spec:
27
+ openupgrade.delete_records_safely_by_xml_id(env, xmlids_spec)
@@ -0,0 +1,94 @@
1
+ # Copyright 2025 ACSONE SA/NV
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+ from openupgradelib import openupgrade
4
+
5
+
6
+ @openupgrade.migrate()
7
+ def migrate(env, version):
8
+ env.cr.execute(
9
+ """
10
+ DELETE FROM ir_model
11
+ WHERE model IN
12
+ ('contract.abstract.contract',
13
+ 'contract.abstract.contract.line',
14
+ 'contract.recurrency.mixin',
15
+ 'contract.recurrency.basic.mixin'
16
+ );
17
+ """
18
+ )
19
+ views_to_delete = ["contract.contract_template_line_form_view"]
20
+ openupgrade.delete_records_safely_by_xml_id(env, views_to_delete, True)
21
+ all_moved_fields = {
22
+ "contract_line_successor": {
23
+ "contract.line": [
24
+ "termination_notice_date",
25
+ "successor_contract_line_id",
26
+ "predecessor_contract_line_id",
27
+ "manual_renew_needed",
28
+ "is_plan_successor_allowed",
29
+ "is_stop_plan_successor_allowed",
30
+ "is_stop_allowed",
31
+ "is_cancel_allowed",
32
+ "is_un_cancel_allowed",
33
+ "state",
34
+ "is_auto_renew",
35
+ "auto_renew_interval",
36
+ "auto_renew_rule_type",
37
+ "termination_notice_interval",
38
+ "termination_notice_rule_type",
39
+ ],
40
+ "contract.template.line": [
41
+ "is_auto_renew",
42
+ "auto_renew_interval",
43
+ "auto_renew_rule_type",
44
+ "termination_notice_interval",
45
+ "termination_notice_rule_type",
46
+ ],
47
+ },
48
+ "contract_termination": {
49
+ "contract.contract": [
50
+ "is_terminated",
51
+ "terminate_reason_id",
52
+ "terminate_comment",
53
+ "terminate_date",
54
+ ]
55
+ },
56
+ }
57
+ for module_name, moved_fields_by_model in all_moved_fields.items():
58
+ for model_name, moved_fields in moved_fields_by_model.items():
59
+ openupgrade.update_module_moved_fields(
60
+ env.cr, model_name, moved_fields, "contract", module_name
61
+ )
62
+ all_moved_models = {
63
+ "contract_line_successor": ["contract.line.wizard"],
64
+ "contract_termination": [
65
+ "contract.terminate.reason",
66
+ "contract.contract.terminate",
67
+ ],
68
+ }
69
+ for new_module, moved_models in all_moved_models.items():
70
+ for moved_model in moved_models:
71
+ openupgrade.update_module_moved_models(
72
+ env.cr, moved_model, "contract", new_module
73
+ )
74
+ all_moved_xml_ids = {
75
+ "contract_line_successor": [
76
+ "contract_line_wizard",
77
+ "contract_line_cron_for_renew",
78
+ ],
79
+ "contract_termination": [
80
+ "contract_terminate_reason_access_manager",
81
+ "contract_terminate_reason_access_user",
82
+ "can_terminate_contract",
83
+ "contract_contract_terminate_wizard",
84
+ ],
85
+ }
86
+ xmlids_spec = []
87
+ for new_module, moved_xml_ids in all_moved_xml_ids.items():
88
+ xmlids_spec.extend(
89
+ [
90
+ (f"contract.{xml_id}", f"{new_module}.{xml_id}")
91
+ for xml_id in moved_xml_ids
92
+ ]
93
+ )
94
+ openupgrade.rename_xmlids(env.cr, xmlids_spec=xmlids_spec)
@@ -1,16 +1,12 @@
1
1
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2
2
 
3
- from . import contract_recurrency_mixin # should be first
4
- from . import abstract_contract
5
- from . import abstract_contract_line
3
+ from . import contract_recurring_mixin
6
4
  from . import contract_template
7
5
  from . import contract
8
6
  from . import contract_template_line
9
7
  from . import contract_line
10
8
  from . import contract_modification
11
9
  from . import account_move
10
+ from . import account_move_line
12
11
  from . import res_partner
13
12
  from . import contract_tag
14
- from . import res_company
15
- from . import res_config_settings
16
- from . import contract_terminate_reason
@@ -11,11 +11,3 @@ class AccountMove(models.Model):
11
11
 
12
12
  # We keep this field for migration purpose
13
13
  old_contract_id = fields.Many2one("contract.contract")
14
-
15
-
16
- class AccountMoveLine(models.Model):
17
- _inherit = "account.move.line"
18
-
19
- contract_line_id = fields.Many2one(
20
- "contract.line", string="Contract Line", index=True
21
- )
@@ -0,0 +1,14 @@
1
+ # Copyright 2016 Tecnativa - Carlos Dauden
2
+ # Copyright 2018 ACSONE SA/NV.
3
+ # Copyright 2020 Tecnativa - Pedro M. Baeza
4
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
5
+
6
+ from odoo import fields, models
7
+
8
+
9
+ class AccountMoveLine(models.Model):
10
+ _inherit = "account.move.line"
11
+
12
+ contract_line_id = fields.Many2one(
13
+ "contract.line", string="Contract Line", index=True
14
+ )