odoo-addon-contract 17.0.1.4.3.2__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.
- odoo/addons/contract/README.rst +14 -10
- odoo/addons/contract/__manifest__.py +3 -10
- odoo/addons/contract/controllers/main.py +1 -8
- odoo/addons/contract/data/contract_cron.xml +0 -2
- odoo/addons/contract/data/mail_template.xml +18 -17
- odoo/addons/contract/data/template_mail_notification.xml +1 -1
- odoo/addons/contract/i18n/am.po +146 -821
- odoo/addons/contract/i18n/ar.po +146 -821
- odoo/addons/contract/i18n/bg.po +146 -821
- odoo/addons/contract/i18n/bs.po +146 -821
- odoo/addons/contract/i18n/ca.po +835 -900
- odoo/addons/contract/i18n/ca_ES.po +146 -821
- odoo/addons/contract/i18n/contract.pot +145 -818
- odoo/addons/contract/i18n/cs.po +146 -821
- odoo/addons/contract/i18n/da.po +146 -821
- odoo/addons/contract/i18n/de.po +712 -953
- odoo/addons/contract/i18n/el_GR.po +146 -821
- odoo/addons/contract/i18n/en_GB.po +146 -821
- odoo/addons/contract/i18n/es.po +714 -947
- odoo/addons/contract/i18n/es_AR.po +550 -877
- odoo/addons/contract/i18n/es_CL.po +146 -821
- odoo/addons/contract/i18n/es_CO.po +146 -821
- odoo/addons/contract/i18n/es_CR.po +146 -821
- odoo/addons/contract/i18n/es_DO.po +146 -821
- odoo/addons/contract/i18n/es_EC.po +146 -821
- odoo/addons/contract/i18n/es_MX.po +146 -821
- odoo/addons/contract/i18n/es_PY.po +146 -821
- odoo/addons/contract/i18n/es_VE.po +146 -821
- odoo/addons/contract/i18n/et.po +146 -821
- odoo/addons/contract/i18n/eu.po +146 -821
- odoo/addons/contract/i18n/fa.po +146 -821
- odoo/addons/contract/i18n/fi.po +422 -848
- odoo/addons/contract/i18n/fr.po +713 -953
- odoo/addons/contract/i18n/fr_CA.po +146 -821
- odoo/addons/contract/i18n/fr_CH.po +146 -821
- odoo/addons/contract/i18n/fr_FR.po +454 -850
- odoo/addons/contract/i18n/gl.po +257 -846
- odoo/addons/contract/i18n/gl_ES.po +146 -821
- odoo/addons/contract/i18n/he.po +146 -821
- odoo/addons/contract/i18n/hi_IN.po +191 -831
- odoo/addons/contract/i18n/hr.po +211 -837
- odoo/addons/contract/i18n/hr_HR.po +223 -839
- odoo/addons/contract/i18n/hu.po +146 -821
- odoo/addons/contract/i18n/id.po +146 -821
- odoo/addons/contract/i18n/it.po +753 -902
- odoo/addons/contract/i18n/ja.po +146 -821
- odoo/addons/contract/i18n/ko.po +146 -821
- odoo/addons/contract/i18n/lt.po +146 -821
- odoo/addons/contract/i18n/lt_LT.po +146 -821
- odoo/addons/contract/i18n/lv.po +146 -821
- odoo/addons/contract/i18n/mk.po +146 -821
- odoo/addons/contract/i18n/mn.po +146 -821
- odoo/addons/contract/i18n/nb.po +146 -821
- odoo/addons/contract/i18n/nb_NO.po +146 -821
- odoo/addons/contract/i18n/nl.po +699 -953
- odoo/addons/contract/i18n/nl_BE.po +146 -821
- odoo/addons/contract/i18n/nl_NL.po +191 -831
- odoo/addons/contract/i18n/pl.po +146 -821
- odoo/addons/contract/i18n/pt.po +415 -839
- odoo/addons/contract/i18n/pt_BR.po +704 -947
- odoo/addons/contract/i18n/pt_PT.po +146 -821
- odoo/addons/contract/i18n/ro.po +146 -821
- odoo/addons/contract/i18n/ru.po +191 -831
- odoo/addons/contract/i18n/sk.po +146 -821
- odoo/addons/contract/i18n/sk_SK.po +146 -821
- odoo/addons/contract/i18n/sl.po +146 -821
- odoo/addons/contract/i18n/sr.po +146 -821
- odoo/addons/contract/i18n/sr@latin.po +146 -821
- odoo/addons/contract/i18n/sv.po +784 -933
- odoo/addons/contract/i18n/th.po +146 -821
- odoo/addons/contract/i18n/tr.po +611 -879
- odoo/addons/contract/i18n/tr_TR.po +221 -838
- odoo/addons/contract/i18n/uk.po +146 -821
- odoo/addons/contract/i18n/vi.po +146 -821
- odoo/addons/contract/i18n/vi_VN.po +146 -821
- odoo/addons/contract/i18n/zh_CN.po +407 -840
- odoo/addons/contract/i18n/zh_TW.po +150 -822
- odoo/addons/contract/migrations/18.0.2.0.0/end-migrate.py +27 -0
- odoo/addons/contract/migrations/18.0.2.0.0/pre-migrate.py +94 -0
- odoo/addons/contract/models/__init__.py +2 -6
- odoo/addons/contract/models/account_move.py +0 -8
- odoo/addons/contract/models/account_move_line.py +14 -0
- odoo/addons/contract/models/contract.py +272 -308
- odoo/addons/contract/models/contract_line.py +37 -859
- odoo/addons/contract/models/{contract_recurrency_mixin.py → contract_recurring_mixin.py} +101 -82
- odoo/addons/contract/models/contract_tag.py +1 -3
- odoo/addons/contract/models/contract_template.py +81 -2
- odoo/addons/contract/models/contract_template_line.py +250 -3
- odoo/addons/contract/report/contract_views.xml +0 -2
- odoo/addons/contract/report/report_contract.xml +13 -13
- odoo/addons/contract/security/contract_security.xml +6 -15
- odoo/addons/contract/security/contract_tag.xml +1 -3
- odoo/addons/contract/security/ir.model.access.csv +0 -2
- odoo/addons/contract/static/description/index.html +24 -18
- odoo/addons/contract/static/src/img/contract_icon.svg +4 -0
- odoo/addons/contract/static/src/js/contract_portal_tour.esm.js +6 -4
- odoo/addons/contract/tests/test_contract.py +82 -928
- odoo/addons/contract/tests/test_multicompany.py +5 -4
- odoo/addons/contract/tests/test_portal.py +6 -3
- odoo/addons/contract/views/contract.xml +92 -235
- odoo/addons/contract/views/contract_line.xml +48 -117
- odoo/addons/contract/views/contract_portal_templates.xml +187 -224
- odoo/addons/contract/views/contract_tag.xml +3 -3
- odoo/addons/contract/views/contract_template.xml +100 -72
- odoo/addons/contract/views/contract_template_line.xml +76 -5
- odoo/addons/contract/views/res_config_settings.xml +5 -6
- odoo/addons/contract/views/res_partner_view.xml +0 -5
- odoo/addons/contract/wizards/__init__.py +0 -2
- odoo/addons/contract/wizards/contract_manually_create_invoice.py +6 -6
- odoo/addons/contract/wizards/contract_manually_create_invoice.xml +2 -3
- {odoo_addon_contract-17.0.1.4.3.2.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/METADATA +18 -13
- odoo_addon_contract-18.0.2.0.8.dist-info/RECORD +132 -0
- {odoo_addon_contract-17.0.1.4.3.2.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/WHEEL +1 -1
- odoo/addons/contract/data/contract_renew_cron.xml +0 -14
- odoo/addons/contract/models/abstract_contract.py +0 -82
- odoo/addons/contract/models/abstract_contract_line.py +0 -271
- odoo/addons/contract/models/contract_line_constraints.py +0 -429
- odoo/addons/contract/models/contract_terminate_reason.py +0 -14
- odoo/addons/contract/models/res_company.py +0 -15
- odoo/addons/contract/models/res_config_settings.py +0 -18
- odoo/addons/contract/security/contract_terminate_reason.xml +0 -23
- odoo/addons/contract/security/groups.xml +0 -9
- odoo/addons/contract/views/abstract_contract_line.xml +0 -117
- odoo/addons/contract/views/contract_terminate_reason.xml +0 -38
- odoo/addons/contract/wizards/contract_contract_terminate.py +0 -42
- odoo/addons/contract/wizards/contract_contract_terminate.xml +0 -33
- odoo/addons/contract/wizards/contract_line_wizard.py +0 -53
- odoo/addons/contract/wizards/contract_line_wizard.xml +0 -111
- odoo_addon_contract-17.0.1.4.3.2.dist-info/RECORD +0 -143
- {odoo_addon_contract-17.0.1.4.3.2.dist-info → odoo_addon_contract-18.0.2.0.8.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
# Copyright 2021 ACSONE SA/NV (<http://acsone.eu>)
|
|
2
2
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
3
3
|
|
|
4
|
+
from odoo import Command
|
|
5
|
+
from odoo.tools import mute_logger
|
|
6
|
+
|
|
4
7
|
from .test_contract import TestContractBase
|
|
5
8
|
|
|
6
9
|
|
|
7
10
|
class ContractMulticompanyCase(TestContractBase):
|
|
8
11
|
@classmethod
|
|
12
|
+
@mute_logger("odoo.addons.account.models.chart_template")
|
|
9
13
|
def setUpClass(cls):
|
|
10
14
|
super().setUpClass()
|
|
11
15
|
cls.company_obj = cls.env["res.company"]
|
|
@@ -31,9 +35,7 @@ class ContractMulticompanyCase(TestContractBase):
|
|
|
31
35
|
"line_recurrence": True,
|
|
32
36
|
"contract_type": "purchase",
|
|
33
37
|
"contract_line_ids": [
|
|
34
|
-
(
|
|
35
|
-
0,
|
|
36
|
-
0,
|
|
38
|
+
Command.create(
|
|
37
39
|
{
|
|
38
40
|
"product_id": cls.product_1.id,
|
|
39
41
|
"name": "Services from #START# to #END#",
|
|
@@ -63,7 +65,6 @@ class ContractMulticompanyCase(TestContractBase):
|
|
|
63
65
|
"recurring_interval": 1,
|
|
64
66
|
"date_start": "2018-01-01",
|
|
65
67
|
"recurring_next_date": "2018-01-15",
|
|
66
|
-
"is_auto_renew": False,
|
|
67
68
|
}
|
|
68
69
|
cls.acct_line_mc = (
|
|
69
70
|
cls.env["contract.line"].with_company(cls.company_2).create(cls.line_vals)
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
from odoo import http
|
|
5
5
|
from odoo.tests import HttpCase, tagged
|
|
6
|
+
from odoo.tools import mute_logger
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
@tagged("post_install", "-at_install")
|
|
9
10
|
class TestContractPortal(HttpCase):
|
|
11
|
+
@mute_logger(
|
|
12
|
+
"odoo.addons.contract.tests.test_portal.TestContractPortal.test_tour.browser"
|
|
13
|
+
)
|
|
10
14
|
def test_tour(self):
|
|
11
15
|
partner = self.env["res.partner"].create({"name": "partner test contract"})
|
|
12
16
|
contract = self.env["contract.contract"].create(
|
|
@@ -18,9 +22,8 @@ class TestContractPortal(HttpCase):
|
|
|
18
22
|
# Contract access
|
|
19
23
|
self.authenticate("portal", "portal")
|
|
20
24
|
http.root.session_store.save(self.session)
|
|
21
|
-
url_contract =
|
|
22
|
-
contract.id
|
|
23
|
-
contract.access_token,
|
|
25
|
+
url_contract = (
|
|
26
|
+
f"/my/contracts/{contract.id}?access_token={contract.access_token}"
|
|
24
27
|
)
|
|
25
28
|
self.assertEqual(self.url_open(url=url_contract).status_code, 200)
|
|
26
29
|
contract.message_unsubscribe(partner_ids=user_portal.partner_id.ids)
|
|
@@ -6,36 +6,11 @@
|
|
|
6
6
|
<field name="model">contract.contract</field>
|
|
7
7
|
<field name="arch" type="xml">
|
|
8
8
|
<form>
|
|
9
|
-
<field name="is_terminated" invisible="1" />
|
|
10
|
-
<field name="company_id" invisible="1" />
|
|
11
|
-
<div
|
|
12
|
-
class="alert alert-danger"
|
|
13
|
-
role="alert"
|
|
14
|
-
style="margin-bottom:0px;"
|
|
15
|
-
invisible="not is_terminated"
|
|
16
|
-
>
|
|
17
|
-
<p>
|
|
18
|
-
This contract was terminated for the reason
|
|
19
|
-
<strong>
|
|
20
|
-
<field
|
|
21
|
-
name="terminate_reason_id"
|
|
22
|
-
options="{'no_open':True}"
|
|
23
|
-
/>
|
|
24
|
-
</strong>
|
|
25
|
-
on
|
|
26
|
-
<field name="terminate_date" />
|
|
27
|
-
.
|
|
28
|
-
</p>
|
|
29
|
-
<p>
|
|
30
|
-
<field name="terminate_comment" />
|
|
31
|
-
</p>
|
|
32
|
-
</div>
|
|
33
9
|
<header>
|
|
34
10
|
<button
|
|
35
11
|
name="action_contract_send"
|
|
36
12
|
type="object"
|
|
37
13
|
string="Send by Email"
|
|
38
|
-
invisible="is_terminated"
|
|
39
14
|
groups="base.group_user"
|
|
40
15
|
/>
|
|
41
16
|
<button
|
|
@@ -45,32 +20,10 @@
|
|
|
45
20
|
string="Create invoices"
|
|
46
21
|
groups="base.group_no_one"
|
|
47
22
|
/>
|
|
48
|
-
|
|
49
|
-
name="action_terminate_contract"
|
|
50
|
-
type="object"
|
|
51
|
-
string="Terminate Contract"
|
|
52
|
-
invisible="is_terminated"
|
|
53
|
-
groups="contract.can_terminate_contract"
|
|
54
|
-
/>
|
|
55
|
-
<button
|
|
56
|
-
name="action_terminate_contract"
|
|
57
|
-
type="object"
|
|
58
|
-
string="Update Termination Details"
|
|
59
|
-
invisible="not is_terminated"
|
|
60
|
-
groups="contract.can_terminate_contract"
|
|
61
|
-
/>
|
|
62
|
-
<button
|
|
63
|
-
name="action_cancel_contract_termination"
|
|
64
|
-
type="object"
|
|
65
|
-
confirm="Are you sure you want to re-activate this contract?"
|
|
66
|
-
string="Cancel Contract Termination"
|
|
67
|
-
invisible="not is_terminated"
|
|
68
|
-
groups="contract.can_terminate_contract"
|
|
69
|
-
/>
|
|
23
|
+
|
|
70
24
|
<button type="object" string="Preview" name="action_preview" />
|
|
71
25
|
</header>
|
|
72
26
|
<sheet string="Contract">
|
|
73
|
-
<field name="active" invisible="1" />
|
|
74
27
|
<div class="oe_button_box" name="button_box">
|
|
75
28
|
<button
|
|
76
29
|
name="action_show_invoices"
|
|
@@ -98,37 +51,29 @@
|
|
|
98
51
|
<field
|
|
99
52
|
name="name"
|
|
100
53
|
class="oe_inline"
|
|
101
|
-
readonly="is_terminated"
|
|
102
54
|
placeholder="e.g. Contract XYZ"
|
|
103
55
|
/>
|
|
104
56
|
</h3>
|
|
105
57
|
</div>
|
|
106
58
|
<group name="main">
|
|
107
59
|
<group>
|
|
108
|
-
<field name="
|
|
109
|
-
<field
|
|
110
|
-
name="partner_id"
|
|
111
|
-
required="1"
|
|
112
|
-
readonly="is_terminated"
|
|
113
|
-
/>
|
|
114
|
-
<field name="pricelist_id" readonly="is_terminated" />
|
|
115
|
-
<field name="payment_term_id" readonly="is_terminated" />
|
|
116
|
-
<field name="user_id" readonly="is_terminated" />
|
|
60
|
+
<field name="partner_id" required="1" />
|
|
61
|
+
<field name="user_id" />
|
|
117
62
|
</group>
|
|
118
63
|
<group>
|
|
119
64
|
<field
|
|
120
65
|
name="contract_template_id"
|
|
121
|
-
readonly="is_terminated"
|
|
122
66
|
domain="['|', ('contract_type', '=', contract_type), ('contract_type', '=', False)]"
|
|
123
67
|
context="{'default_contract_type': contract_type}"
|
|
124
68
|
/>
|
|
125
|
-
<field name="
|
|
126
|
-
|
|
69
|
+
<field name="pricelist_id" />
|
|
70
|
+
|
|
127
71
|
<field
|
|
128
|
-
name="
|
|
129
|
-
|
|
130
|
-
|
|
72
|
+
name="company_id"
|
|
73
|
+
options="{'no_create': True}"
|
|
74
|
+
groups="base.group_multi_company"
|
|
131
75
|
/>
|
|
76
|
+
<field name="contract_type" invisible="1" required="1" />
|
|
132
77
|
<field
|
|
133
78
|
name="tag_ids"
|
|
134
79
|
widget="many2many_tags"
|
|
@@ -144,48 +89,27 @@
|
|
|
144
89
|
readonly="line_recurrence and invoice_count != 0"
|
|
145
90
|
/>
|
|
146
91
|
</group>
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
<field
|
|
151
|
-
name="recurring_interval"
|
|
152
|
-
required="not line_recurrence"
|
|
153
|
-
class="oe_inline"
|
|
154
|
-
nolabel="1"
|
|
155
|
-
/>
|
|
156
|
-
<field
|
|
157
|
-
name="recurring_rule_type"
|
|
158
|
-
required="not line_recurrence"
|
|
159
|
-
class="oe_inline"
|
|
160
|
-
nolabel="1"
|
|
161
|
-
/>
|
|
162
|
-
</div>
|
|
163
|
-
<field
|
|
164
|
-
name="recurring_invoicing_type"
|
|
165
|
-
required="not line_recurrence"
|
|
166
|
-
/>
|
|
167
|
-
</group>
|
|
168
|
-
<group invisible="line_recurrence">
|
|
92
|
+
</group>
|
|
93
|
+
<group invisible="line_recurrence">
|
|
94
|
+
<group>
|
|
169
95
|
<field name="date_start" required="not line_recurrence" />
|
|
96
|
+
</group>
|
|
97
|
+
<group>
|
|
170
98
|
<field name="date_end" />
|
|
171
99
|
<field name="recurring_next_date" />
|
|
172
100
|
</group>
|
|
173
101
|
</group>
|
|
174
|
-
|
|
175
|
-
<field name="generation_type" />
|
|
176
|
-
</group>
|
|
102
|
+
|
|
177
103
|
<notebook>
|
|
178
104
|
<page name="recurring_invoice_line" string="Recurring Invoices">
|
|
179
105
|
<field
|
|
180
106
|
name="contract_line_fixed_ids"
|
|
181
|
-
readonly="is_terminated"
|
|
182
107
|
invisible="line_recurrence"
|
|
183
108
|
widget="section_and_note_one2many"
|
|
184
109
|
context="{'default_contract_type': contract_type, 'default_recurring_rule_type': recurring_rule_type, 'default_recurring_invoicing_type': recurring_invoicing_type, 'default_recurring_interval': recurring_interval, 'default_date_start': date_start, 'default_recurring_next_date': recurring_next_date}"
|
|
185
110
|
>
|
|
186
|
-
<
|
|
187
|
-
decoration-
|
|
188
|
-
decoration-info="create_invoice_visibility and not is_canceled"
|
|
111
|
+
<list
|
|
112
|
+
decoration-info="create_invoice_visibility"
|
|
189
113
|
editable="bottom"
|
|
190
114
|
>
|
|
191
115
|
<control>
|
|
@@ -230,10 +154,7 @@
|
|
|
230
154
|
name="specific_price"
|
|
231
155
|
column_invisible="True"
|
|
232
156
|
/>
|
|
233
|
-
<field
|
|
234
|
-
name="discount"
|
|
235
|
-
groups="product.group_discount_per_so_line"
|
|
236
|
-
/>
|
|
157
|
+
<field name="discount" />
|
|
237
158
|
<field name="price_subtotal" />
|
|
238
159
|
<field
|
|
239
160
|
name="recurring_interval"
|
|
@@ -261,36 +182,15 @@
|
|
|
261
182
|
name="create_invoice_visibility"
|
|
262
183
|
column_invisible="True"
|
|
263
184
|
/>
|
|
264
|
-
|
|
265
|
-
name="is_plan_successor_allowed"
|
|
266
|
-
column_invisible="True"
|
|
267
|
-
/>
|
|
268
|
-
<field
|
|
269
|
-
name="is_stop_allowed"
|
|
270
|
-
column_invisible="True"
|
|
271
|
-
/>
|
|
272
|
-
<field
|
|
273
|
-
name="is_cancel_allowed"
|
|
274
|
-
column_invisible="True"
|
|
275
|
-
/>
|
|
276
|
-
<field
|
|
277
|
-
name="is_un_cancel_allowed"
|
|
278
|
-
column_invisible="True"
|
|
279
|
-
/>
|
|
280
|
-
<field name="is_canceled" column_invisible="True" />
|
|
281
|
-
</tree>
|
|
185
|
+
</list>
|
|
282
186
|
</field>
|
|
283
187
|
<field
|
|
284
188
|
name="contract_line_ids"
|
|
285
|
-
readonly="is_terminated"
|
|
286
189
|
invisible="not line_recurrence"
|
|
287
190
|
widget="section_and_note_one2many"
|
|
288
191
|
context="{'default_contract_type': contract_type}"
|
|
289
192
|
>
|
|
290
|
-
<
|
|
291
|
-
decoration-muted="is_canceled"
|
|
292
|
-
decoration-info="create_invoice_visibility and not is_canceled"
|
|
293
|
-
>
|
|
193
|
+
<list decoration-info="create_invoice_visibility">
|
|
294
194
|
<control>
|
|
295
195
|
<create string="Add a line" />
|
|
296
196
|
<create
|
|
@@ -329,11 +229,8 @@
|
|
|
329
229
|
name="specific_price"
|
|
330
230
|
column_invisible="True"
|
|
331
231
|
/>
|
|
332
|
-
<field
|
|
333
|
-
|
|
334
|
-
groups="product.group_discount_per_so_line"
|
|
335
|
-
/>
|
|
336
|
-
<field name="price_subtotal" />
|
|
232
|
+
<field name="discount" />
|
|
233
|
+
<field name="price_subtotal" optional="hide" />
|
|
337
234
|
<field
|
|
338
235
|
name="recurring_interval"
|
|
339
236
|
column_invisible="True"
|
|
@@ -348,118 +245,76 @@
|
|
|
348
245
|
/>
|
|
349
246
|
<field name="date_start" required="1" />
|
|
350
247
|
<field name="date_end" />
|
|
351
|
-
<field name="recurring_next_date" required="1" />
|
|
352
|
-
<field
|
|
353
|
-
name="last_date_invoiced"
|
|
354
|
-
groups="base.group_no_one"
|
|
355
|
-
/>
|
|
356
|
-
<field
|
|
357
|
-
name="create_invoice_visibility"
|
|
358
|
-
column_invisible="True"
|
|
359
|
-
/>
|
|
360
|
-
<field
|
|
361
|
-
name="is_plan_successor_allowed"
|
|
362
|
-
column_invisible="True"
|
|
363
|
-
/>
|
|
364
248
|
<field
|
|
365
|
-
name="
|
|
366
|
-
|
|
367
|
-
/>
|
|
368
|
-
<field
|
|
369
|
-
name="is_stop_allowed"
|
|
370
|
-
column_invisible="True"
|
|
371
|
-
/>
|
|
372
|
-
<field
|
|
373
|
-
name="is_cancel_allowed"
|
|
374
|
-
column_invisible="True"
|
|
375
|
-
/>
|
|
376
|
-
<field
|
|
377
|
-
name="is_un_cancel_allowed"
|
|
378
|
-
column_invisible="True"
|
|
249
|
+
name="recurring_next_date"
|
|
250
|
+
required="next_period_date_end"
|
|
379
251
|
/>
|
|
380
252
|
<field
|
|
381
|
-
name="
|
|
382
|
-
column_invisible="True"
|
|
383
|
-
/>
|
|
384
|
-
<field name="is_canceled" column_invisible="True" />
|
|
385
|
-
<button
|
|
386
|
-
name="action_plan_successor"
|
|
387
|
-
string="Plan Start"
|
|
388
|
-
type="object"
|
|
389
|
-
icon="fa-calendar text-success"
|
|
390
|
-
invisible="not is_plan_successor_allowed"
|
|
391
|
-
/>
|
|
392
|
-
<button
|
|
393
|
-
name="action_stop_plan_successor"
|
|
394
|
-
string="Stop Plan Successor"
|
|
395
|
-
type="object"
|
|
396
|
-
icon="fa-pause text-muted"
|
|
397
|
-
invisible="not is_stop_plan_successor_allowed"
|
|
398
|
-
/>
|
|
399
|
-
<button
|
|
400
|
-
name="action_stop"
|
|
401
|
-
string="Stop"
|
|
402
|
-
type="object"
|
|
403
|
-
icon="fa-stop text-danger"
|
|
404
|
-
invisible="not is_stop_allowed"
|
|
405
|
-
/>
|
|
406
|
-
<button
|
|
407
|
-
name="cancel"
|
|
408
|
-
string="Cancel"
|
|
409
|
-
type="object"
|
|
410
|
-
icon="fa-ban text-danger"
|
|
411
|
-
confirm="Are you sure you want to cancel this line"
|
|
412
|
-
invisible="not is_cancel_allowed"
|
|
413
|
-
/>
|
|
414
|
-
<button
|
|
415
|
-
name="action_uncancel"
|
|
416
|
-
string="Un-cancel"
|
|
417
|
-
type="object"
|
|
418
|
-
icon="fa-ban text-success"
|
|
419
|
-
invisible="not is_un_cancel_allowed"
|
|
420
|
-
/>
|
|
421
|
-
<button
|
|
422
|
-
name="renew"
|
|
423
|
-
string="Renew"
|
|
424
|
-
type="object"
|
|
425
|
-
icon="fa-fast-forward text-success"
|
|
253
|
+
name="last_date_invoiced"
|
|
426
254
|
groups="base.group_no_one"
|
|
427
|
-
|
|
255
|
+
optional="hide"
|
|
428
256
|
/>
|
|
429
|
-
</
|
|
257
|
+
</list>
|
|
430
258
|
</field>
|
|
431
|
-
<field name="note" />
|
|
259
|
+
<field name="note" placeholder="Put some note here..." />
|
|
260
|
+
</page>
|
|
261
|
+
<page name="invoicing" string="Invoicing">
|
|
262
|
+
<group name="invoicing">
|
|
263
|
+
<group invisible="line_recurrence">
|
|
264
|
+
<field
|
|
265
|
+
name="recurring_invoicing_type"
|
|
266
|
+
required="not line_recurrence"
|
|
267
|
+
/>
|
|
268
|
+
<label for="recurring_interval" />
|
|
269
|
+
<div class="o_row">
|
|
270
|
+
<field
|
|
271
|
+
name="recurring_interval"
|
|
272
|
+
required="not line_recurrence"
|
|
273
|
+
class="oe_inline"
|
|
274
|
+
nolabel="1"
|
|
275
|
+
/>
|
|
276
|
+
<field
|
|
277
|
+
name="recurring_rule_type"
|
|
278
|
+
required="not line_recurrence"
|
|
279
|
+
class="oe_inline"
|
|
280
|
+
nolabel="1"
|
|
281
|
+
/>
|
|
282
|
+
</div>
|
|
283
|
+
</group>
|
|
284
|
+
<group>
|
|
285
|
+
<field name="invoice_partner_id" required="1" />
|
|
286
|
+
<field name="fiscal_position_id" />
|
|
287
|
+
<field name="journal_id" required="1" />
|
|
288
|
+
<field name="payment_term_id" />
|
|
289
|
+
</group>
|
|
290
|
+
</group>
|
|
291
|
+
<group
|
|
292
|
+
col="4"
|
|
293
|
+
name="recurring_type"
|
|
294
|
+
string="Recurring Type"
|
|
295
|
+
>
|
|
296
|
+
<field name="generation_type" />
|
|
297
|
+
</group>
|
|
432
298
|
</page>
|
|
433
299
|
<page name="modications" string="Modifications">
|
|
434
|
-
<field name="modification_ids"
|
|
435
|
-
<
|
|
300
|
+
<field name="modification_ids">
|
|
301
|
+
<list editable="bottom">
|
|
436
302
|
<field name="date" />
|
|
437
303
|
<field name="description" />
|
|
438
304
|
<field name="sent" />
|
|
439
|
-
</
|
|
305
|
+
</list>
|
|
440
306
|
</field>
|
|
441
307
|
</page>
|
|
442
308
|
<page name="info" string="Other Information">
|
|
443
|
-
<field name="create_invoice_visibility" invisible="1" />
|
|
444
309
|
<group>
|
|
445
|
-
<field name="code"
|
|
446
|
-
<field name="group_id"
|
|
447
|
-
<field
|
|
448
|
-
name="company_id"
|
|
449
|
-
readonly="is_terminated"
|
|
450
|
-
options="{'no_create': True}"
|
|
451
|
-
groups="base.group_multi_company"
|
|
452
|
-
/>
|
|
310
|
+
<field name="code" />
|
|
311
|
+
<field name="group_id" />
|
|
453
312
|
<field
|
|
454
313
|
name="currency_id"
|
|
455
314
|
groups="base.group_multi_currency"
|
|
456
315
|
/>
|
|
457
|
-
<field
|
|
458
|
-
name="invoice_partner_id"
|
|
459
|
-
readonly="is_terminated"
|
|
460
|
-
required="1"
|
|
461
|
-
/>
|
|
462
316
|
</group>
|
|
317
|
+
|
|
463
318
|
<group
|
|
464
319
|
string="Legend (for the markers inside invoice lines description)"
|
|
465
320
|
name="group_legend"
|
|
@@ -489,17 +344,14 @@
|
|
|
489
344
|
</page>
|
|
490
345
|
</notebook>
|
|
491
346
|
</sheet>
|
|
492
|
-
<
|
|
493
|
-
<field name="message_follower_ids" widget="mail_followers" />
|
|
494
|
-
<field name="activity_ids" widget="mail_activity" />
|
|
495
|
-
<field name="message_ids" widget="mail_thread" />
|
|
496
|
-
</div>
|
|
347
|
+
<chatter />
|
|
497
348
|
</form>
|
|
498
349
|
</field>
|
|
499
350
|
</record>
|
|
500
351
|
<!--Customer FORM view-->
|
|
501
352
|
<record id="contract_contract_customer_form_view" model="ir.ui.view">
|
|
502
|
-
<field name="name">contract.contract customer form view (in contract)
|
|
353
|
+
<field name="name">contract.contract customer form view (in contract)
|
|
354
|
+
</field>
|
|
503
355
|
<field name="model">contract.contract</field>
|
|
504
356
|
<field name="inherit_id" ref="contract_contract_form_view" />
|
|
505
357
|
<field name="mode">primary</field>
|
|
@@ -509,7 +361,9 @@
|
|
|
509
361
|
<attribute name="string">Customer</attribute>
|
|
510
362
|
<attribute
|
|
511
363
|
name="context"
|
|
512
|
-
>{'default_customer_rank': 1, 'default_supplier_rank': 0,
|
|
364
|
+
>{'default_customer_rank': 1, 'default_supplier_rank': 0,
|
|
365
|
+
'res_partner_search_mode': 'customer', 'show_vat': True}
|
|
366
|
+
</attribute>
|
|
513
367
|
</field>
|
|
514
368
|
<field name="journal_id" position="attributes">
|
|
515
369
|
<attribute name="domain">[('type', '=', 'sale')]</attribute>
|
|
@@ -518,7 +372,8 @@
|
|
|
518
372
|
</record>
|
|
519
373
|
<!--Supplier FORM view-->
|
|
520
374
|
<record id="contract_contract_supplier_form_view" model="ir.ui.view">
|
|
521
|
-
<field name="name">contract.contract supplier form view (in contract)
|
|
375
|
+
<field name="name">contract.contract supplier form view (in contract)
|
|
376
|
+
</field>
|
|
522
377
|
<field name="model">contract.contract</field>
|
|
523
378
|
<field name="inherit_id" ref="contract_contract_form_view" />
|
|
524
379
|
<field name="mode">primary</field>
|
|
@@ -528,19 +383,22 @@
|
|
|
528
383
|
<attribute name="string">Supplier</attribute>
|
|
529
384
|
<attribute
|
|
530
385
|
name="context"
|
|
531
|
-
>{'default_customer_rank': False, 'default_supplier_rank': 1,
|
|
386
|
+
>{'default_customer_rank': False, 'default_supplier_rank': 1,
|
|
387
|
+
'res_partner_search_mode': 'supplier', 'show_vat': True}
|
|
388
|
+
</attribute>
|
|
532
389
|
</field>
|
|
533
390
|
<field name="journal_id" position="attributes">
|
|
534
|
-
<attribute name="domain">[('type', '=', 'purchase')]
|
|
391
|
+
<attribute name="domain">[('type', '=', 'purchase')]
|
|
392
|
+
</attribute>
|
|
535
393
|
</field>
|
|
536
394
|
</field>
|
|
537
395
|
</record>
|
|
538
396
|
<!--TREE view-->
|
|
539
397
|
<record id="contract_contract_tree_view" model="ir.ui.view">
|
|
540
|
-
<field name="name">contract.contract
|
|
398
|
+
<field name="name">contract.contract list view (in contract)</field>
|
|
541
399
|
<field name="model">contract.contract</field>
|
|
542
400
|
<field name="arch" type="xml">
|
|
543
|
-
<
|
|
401
|
+
<list>
|
|
544
402
|
<field name="name" string="Name" />
|
|
545
403
|
<field name="code" />
|
|
546
404
|
<field name="journal_id" groups="account.group_account_user" />
|
|
@@ -550,9 +408,8 @@
|
|
|
550
408
|
widget="many2many_tags"
|
|
551
409
|
options="{'color_field': 'color'}"
|
|
552
410
|
/>
|
|
553
|
-
<field name="active" column_invisible="True" />
|
|
554
411
|
<field name="company_id" groups="base.group_multi_company" />
|
|
555
|
-
</
|
|
412
|
+
</list>
|
|
556
413
|
</field>
|
|
557
414
|
</record>
|
|
558
415
|
<!--SEARCH view-->
|
|
@@ -618,7 +475,7 @@
|
|
|
618
475
|
<record id="action_customer_contract" model="ir.actions.act_window">
|
|
619
476
|
<field name="name">Customer Contracts</field>
|
|
620
477
|
<field name="res_model">contract.contract</field>
|
|
621
|
-
<field name="view_mode">
|
|
478
|
+
<field name="view_mode">list,form</field>
|
|
622
479
|
<field name="domain">[('contract_type', '=', 'sale')]</field>
|
|
623
480
|
<field name="context">
|
|
624
481
|
{'is_contract':1,
|
|
@@ -634,7 +491,7 @@
|
|
|
634
491
|
</record>
|
|
635
492
|
<record id="action_customer_contract_view_tree" model="ir.actions.act_window.view">
|
|
636
493
|
<field name="sequence" eval="1" />
|
|
637
|
-
<field name="view_mode">
|
|
494
|
+
<field name="view_mode">list</field>
|
|
638
495
|
<field name="view_id" ref="contract_contract_tree_view" />
|
|
639
496
|
<field name="act_window_id" ref="action_customer_contract" />
|
|
640
497
|
</record>
|
|
@@ -654,7 +511,7 @@
|
|
|
654
511
|
<record id="action_supplier_contract" model="ir.actions.act_window">
|
|
655
512
|
<field name="name">Supplier Contracts</field>
|
|
656
513
|
<field name="res_model">contract.contract</field>
|
|
657
|
-
<field name="view_mode">
|
|
514
|
+
<field name="view_mode">list,form</field>
|
|
658
515
|
<field name="domain">[('contract_type', '=', 'purchase')]</field>
|
|
659
516
|
<field name="context">
|
|
660
517
|
{'is_contract':1,
|
|
@@ -670,7 +527,7 @@
|
|
|
670
527
|
</record>
|
|
671
528
|
<record id="action_supplier_contract_view_tree" model="ir.actions.act_window.view">
|
|
672
529
|
<field name="sequence" eval="1" />
|
|
673
|
-
<field name="view_mode">
|
|
530
|
+
<field name="view_mode">list</field>
|
|
674
531
|
<field name="view_id" ref="contract_contract_tree_view" />
|
|
675
532
|
<field name="act_window_id" ref="action_supplier_contract" />
|
|
676
533
|
</record>
|