odoo-addon-contract 17.0.1.4.5.3__py3-none-any.whl → 17.0.1.5.0__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 +6 -2
- odoo/addons/contract/__manifest__.py +1 -1
- odoo/addons/contract/i18n/contract.pot +15 -0
- odoo/addons/contract/models/contract.py +29 -0
- odoo/addons/contract/models/contract_line.py +2 -0
- odoo/addons/contract/static/description/index.html +19 -13
- odoo/addons/contract/tests/test_contract.py +36 -0
- odoo/addons/contract/views/contract_line.xml +57 -5
- {odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/METADATA +8 -3
- {odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/RECORD +12 -12
- {odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/WHEEL +1 -1
- {odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/top_level.txt +0 -0
odoo/addons/contract/README.rst
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
.. image:: https://odoo-community.org/readme-banner-image
|
|
2
|
+
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
3
|
+
:alt: Odoo Community Association
|
|
4
|
+
|
|
1
5
|
================================
|
|
2
6
|
Recurring - Contracts Management
|
|
3
7
|
================================
|
|
@@ -7,13 +11,13 @@ Recurring - Contracts Management
|
|
|
7
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
12
|
!! changes will be overwritten. !!
|
|
9
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:1ddb4048b2aca51e383f4bdea956cd9783b86b71936b8bbe7aeda0cf162d789c
|
|
11
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
16
|
|
|
13
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
|
14
18
|
:target: https://odoo-community.org/page/development-status
|
|
15
19
|
:alt: Production/Stable
|
|
16
|
-
.. |badge2| image:: https://img.shields.io/badge/
|
|
20
|
+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
|
17
21
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
18
22
|
:alt: License: AGPL-3
|
|
19
23
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github
|
|
@@ -380,6 +380,7 @@ msgstr ""
|
|
|
380
380
|
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__is_auto_renew
|
|
381
381
|
#: model:ir.model.fields,field_description:contract.field_contract_line__is_auto_renew
|
|
382
382
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__is_auto_renew
|
|
383
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
383
384
|
msgid "Auto Renew"
|
|
384
385
|
msgstr ""
|
|
385
386
|
|
|
@@ -429,6 +430,7 @@ msgstr ""
|
|
|
429
430
|
#: model:ir.model.fields,field_description:contract.field_contract_line__is_canceled
|
|
430
431
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__is_canceled
|
|
431
432
|
#: model:ir.model.fields.selection,name:contract.selection__contract_line__state__canceled
|
|
433
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
432
434
|
msgid "Canceled"
|
|
433
435
|
msgstr ""
|
|
434
436
|
|
|
@@ -931,6 +933,7 @@ msgid "Date Start"
|
|
|
931
933
|
msgstr ""
|
|
932
934
|
|
|
933
935
|
#. module: contract
|
|
936
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
934
937
|
#: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts
|
|
935
938
|
msgid "Date end"
|
|
936
939
|
msgstr ""
|
|
@@ -952,6 +955,11 @@ msgstr ""
|
|
|
952
955
|
msgid "Date of next invoice"
|
|
953
956
|
msgstr ""
|
|
954
957
|
|
|
958
|
+
#. module: contract
|
|
959
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
960
|
+
msgid "Date start"
|
|
961
|
+
msgstr ""
|
|
962
|
+
|
|
955
963
|
#. module: contract
|
|
956
964
|
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__daily
|
|
957
965
|
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__auto_renew_rule_type__daily
|
|
@@ -1530,6 +1538,11 @@ msgstr ""
|
|
|
1530
1538
|
msgid "Next Period Start"
|
|
1531
1539
|
msgstr ""
|
|
1532
1540
|
|
|
1541
|
+
#. module: contract
|
|
1542
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
1543
|
+
msgid "Next invoice date"
|
|
1544
|
+
msgstr ""
|
|
1545
|
+
|
|
1533
1546
|
#. module: contract
|
|
1534
1547
|
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__display_type__line_note
|
|
1535
1548
|
#: model:ir.model.fields.selection,name:contract.selection__contract_line__display_type__line_note
|
|
@@ -1617,6 +1630,7 @@ msgstr ""
|
|
|
1617
1630
|
#: model:ir.model.fields,field_description:contract.field_contract_line__partner_id
|
|
1618
1631
|
#: model:ir.model.fields,field_description:contract.field_contract_template__partner_id
|
|
1619
1632
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__partner_id
|
|
1633
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
1620
1634
|
msgid "Partner"
|
|
1621
1635
|
msgstr ""
|
|
1622
1636
|
|
|
@@ -1707,6 +1721,7 @@ msgstr ""
|
|
|
1707
1721
|
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__product_id
|
|
1708
1722
|
#: model:ir.model.fields,field_description:contract.field_contract_line__product_id
|
|
1709
1723
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__product_id
|
|
1724
|
+
#: model_terms:ir.ui.view,arch_db:contract.contract_line_search_view
|
|
1710
1725
|
msgid "Product"
|
|
1711
1726
|
msgstr ""
|
|
1712
1727
|
|
|
@@ -39,6 +39,9 @@ class ContractContract(models.Model):
|
|
|
39
39
|
group_id = fields.Many2one(
|
|
40
40
|
string="Group",
|
|
41
41
|
comodel_name="account.analytic.account",
|
|
42
|
+
compute="_compute_group_id",
|
|
43
|
+
store=True,
|
|
44
|
+
readonly=False,
|
|
42
45
|
ondelete="restrict",
|
|
43
46
|
)
|
|
44
47
|
currency_id = fields.Many2one(
|
|
@@ -139,6 +142,32 @@ class ContractContract(models.Model):
|
|
|
139
142
|
string="Modifications",
|
|
140
143
|
)
|
|
141
144
|
|
|
145
|
+
@api.depends(
|
|
146
|
+
"contract_line_ids",
|
|
147
|
+
"contract_line_ids.analytic_distribution",
|
|
148
|
+
"contract_line_fixed_ids",
|
|
149
|
+
"contract_line_fixed_ids.analytic_distribution",
|
|
150
|
+
)
|
|
151
|
+
def _compute_group_id(self):
|
|
152
|
+
"""Compute the group_id based on the analytic_distribution
|
|
153
|
+
in the contract lines.
|
|
154
|
+
If all contract lines have the same analytic account, set it as group_id.
|
|
155
|
+
Otherwise, set group_id to False.
|
|
156
|
+
"""
|
|
157
|
+
for record in self:
|
|
158
|
+
record.group_id = False
|
|
159
|
+
all_analytic_accounts = []
|
|
160
|
+
contract_lines = record.contract_line_ids | record.contract_line_fixed_ids
|
|
161
|
+
for line in contract_lines:
|
|
162
|
+
if line.analytic_distribution:
|
|
163
|
+
all_analytic_accounts.extend(
|
|
164
|
+
int(acc_id)
|
|
165
|
+
for account_ids in line.analytic_distribution.keys()
|
|
166
|
+
for acc_id in account_ids.split(",")
|
|
167
|
+
)
|
|
168
|
+
if len(set(all_analytic_accounts)) == 1:
|
|
169
|
+
record.group_id = all_analytic_accounts[0]
|
|
170
|
+
|
|
142
171
|
def get_formview_id(self, access_uid=None):
|
|
143
172
|
if self.contract_type == "sale":
|
|
144
173
|
return self.env.ref("contract.contract_contract_customer_form_view").id
|
|
@@ -32,6 +32,8 @@ class ContractLine(models.Model):
|
|
|
32
32
|
auto_join=True,
|
|
33
33
|
ondelete="cascade",
|
|
34
34
|
)
|
|
35
|
+
# replace from abstract to add the store=True
|
|
36
|
+
partner_id = fields.Many2one(store=True)
|
|
35
37
|
currency_id = fields.Many2one(related="contract_id.currency_id")
|
|
36
38
|
date_start = fields.Date(required=True)
|
|
37
39
|
date_end = fields.Date(compute="_compute_date_end", store=True, readonly=False)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
5
5
|
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
|
6
|
-
<title>
|
|
6
|
+
<title>README.rst</title>
|
|
7
7
|
<style type="text/css">
|
|
8
8
|
|
|
9
9
|
/*
|
|
@@ -360,16 +360,21 @@ ul.auto-toc {
|
|
|
360
360
|
</style>
|
|
361
361
|
</head>
|
|
362
362
|
<body>
|
|
363
|
-
<div class="document"
|
|
364
|
-
<h1 class="title">Recurring - Contracts Management</h1>
|
|
363
|
+
<div class="document">
|
|
365
364
|
|
|
365
|
+
|
|
366
|
+
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
|
|
367
|
+
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
|
|
368
|
+
</a>
|
|
369
|
+
<div class="section" id="recurring-contracts-management">
|
|
370
|
+
<h1>Recurring - Contracts Management</h1>
|
|
366
371
|
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
367
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
373
|
!! changes will be overwritten. !!
|
|
369
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:1ddb4048b2aca51e383f4bdea956cd9783b86b71936b8bbe7aeda0cf162d789c
|
|
371
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
|
-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/
|
|
377
|
+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/contract/tree/17.0/contract"><img alt="OCA/contract" src="https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/contract-17-0/contract-17-0-contract"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
378
|
<p>This module enables contracts management with recurring invoicing
|
|
374
379
|
functions. Also you can print and send by email contract report.</p>
|
|
375
380
|
<p>It works for customer contract and supplier contracts.</p>
|
|
@@ -390,14 +395,14 @@ functions. Also you can print and send by email contract report.</p>
|
|
|
390
395
|
</ul>
|
|
391
396
|
</div>
|
|
392
397
|
<div class="section" id="configuration">
|
|
393
|
-
<
|
|
398
|
+
<h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2>
|
|
394
399
|
<p>To view discount field in contract line, you need to set <em>Discount on
|
|
395
400
|
lines</em> in user access rights.</p>
|
|
396
401
|
<p>Contracts can be viewed on the portal (list and detail) if the user
|
|
397
402
|
logged into the portal is a follower of the contract.</p>
|
|
398
403
|
</div>
|
|
399
404
|
<div class="section" id="usage">
|
|
400
|
-
<
|
|
405
|
+
<h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2>
|
|
401
406
|
<ol class="arabic simple">
|
|
402
407
|
<li>Contracts are in Invoicing -> Customers -> Customer and Invoicing ->
|
|
403
408
|
Vendors -> Supplier Contracts</li>
|
|
@@ -441,14 +446,14 @@ the template on the contract and fields will be filled automatically.</li>
|
|
|
441
446
|
<p><img alt="image2" src="https://raw.githubusercontent.com/OCA/contract/17.0/contract/static/src/screenshots/portal-detail.png" /></p>
|
|
442
447
|
</div>
|
|
443
448
|
<div class="section" id="known-issues-roadmap">
|
|
444
|
-
<
|
|
449
|
+
<h2><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h2>
|
|
445
450
|
<ul class="simple">
|
|
446
451
|
<li>Recover states and others functional fields in Contracts.</li>
|
|
447
452
|
<li>Add recurrence flag at template level.</li>
|
|
448
453
|
</ul>
|
|
449
454
|
</div>
|
|
450
455
|
<div class="section" id="bug-tracker">
|
|
451
|
-
<
|
|
456
|
+
<h2><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h2>
|
|
452
457
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/contract/issues">GitHub Issues</a>.
|
|
453
458
|
In case of trouble, please check there if your issue has already been reported.
|
|
454
459
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
@@ -456,16 +461,16 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
456
461
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
|
457
462
|
</div>
|
|
458
463
|
<div class="section" id="credits">
|
|
459
|
-
<
|
|
464
|
+
<h2><a class="toc-backref" href="#toc-entry-5">Credits</a></h2>
|
|
460
465
|
<div class="section" id="authors">
|
|
461
|
-
<
|
|
466
|
+
<h3><a class="toc-backref" href="#toc-entry-6">Authors</a></h3>
|
|
462
467
|
<ul class="simple">
|
|
463
468
|
<li>Tecnativa</li>
|
|
464
469
|
<li>ACSONE SA/NV</li>
|
|
465
470
|
</ul>
|
|
466
471
|
</div>
|
|
467
472
|
<div class="section" id="contributors">
|
|
468
|
-
<
|
|
473
|
+
<h3><a class="toc-backref" href="#toc-entry-7">Contributors</a></h3>
|
|
469
474
|
<ul>
|
|
470
475
|
<li><p class="first">Angel Moya <<a class="reference external" href="mailto:angel.moya@domatix.com">angel.moya@domatix.com</a>></p>
|
|
471
476
|
</li>
|
|
@@ -504,7 +509,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
504
509
|
</ul>
|
|
505
510
|
</div>
|
|
506
511
|
<div class="section" id="maintainers">
|
|
507
|
-
<
|
|
512
|
+
<h3><a class="toc-backref" href="#toc-entry-8">Maintainers</a></h3>
|
|
508
513
|
<p>This module is maintained by the OCA.</p>
|
|
509
514
|
<a class="reference external image-reference" href="https://odoo-community.org">
|
|
510
515
|
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
|
@@ -517,5 +522,6 @@ promote its widespread use.</p>
|
|
|
517
522
|
</div>
|
|
518
523
|
</div>
|
|
519
524
|
</div>
|
|
525
|
+
</div>
|
|
520
526
|
</body>
|
|
521
527
|
</html>
|
|
@@ -2403,3 +2403,39 @@ class TestContract(TestContractBase):
|
|
|
2403
2403
|
self.contract3.contract_line_ids.recurring_next_date = fields.Date.today()
|
|
2404
2404
|
invoice_id = self.contract3.recurring_create_invoice()
|
|
2405
2405
|
self.assertEqual(invoice_id.invoice_line_ids[0].name, "Header for May Services")
|
|
2406
|
+
|
|
2407
|
+
def test_analytic_account(self):
|
|
2408
|
+
"""Tests the automatic setting of the analytic account on the contract
|
|
2409
|
+
depending on the analytic accounts set on the contract lines.
|
|
2410
|
+
# Case 1: only one contract line with one analytic account
|
|
2411
|
+
=> the analytic account is set on the contract
|
|
2412
|
+
# Case 2: only one contract line with two analytic accounts
|
|
2413
|
+
=> the analytic account is not set on the contract
|
|
2414
|
+
# Case 3: two contract lines, with the same analytic account
|
|
2415
|
+
=> the analytic account is set on the contract
|
|
2416
|
+
# Case 4: two contract lines, each one with one analytic account
|
|
2417
|
+
=> the analytic account is not set on the contract
|
|
2418
|
+
"""
|
|
2419
|
+
plan = self.env["account.analytic.plan"].create({"name": "Test plan contract"})
|
|
2420
|
+
self.analytic_account_1 = self.env["account.analytic.account"].create(
|
|
2421
|
+
{"name": "Test account contract 1", "plan_id": plan.id}
|
|
2422
|
+
)
|
|
2423
|
+
self.analytic_account_2 = self.env["account.analytic.account"].create(
|
|
2424
|
+
{"name": "Test account contract 2", "plan_id": plan.id}
|
|
2425
|
+
)
|
|
2426
|
+
# Case 1: only one contract line with one analytic account
|
|
2427
|
+
self.acct_line.analytic_distribution = {self.analytic_account_1.id: 100}
|
|
2428
|
+
self.assertEqual(self.contract.group_id, self.analytic_account_1)
|
|
2429
|
+
# Case 2: only one contract line with two analytic accounts
|
|
2430
|
+
self.acct_line.analytic_distribution = {
|
|
2431
|
+
self.analytic_account_1.id: 50,
|
|
2432
|
+
self.analytic_account_2.id: 50,
|
|
2433
|
+
}
|
|
2434
|
+
self.assertFalse(self.contract.group_id)
|
|
2435
|
+
# Case 3: two contract lines, with the same analytic account
|
|
2436
|
+
self.acct_line.analytic_distribution = {self.analytic_account_1.id: 100}
|
|
2437
|
+
new_contract_line = self.acct_line.copy()
|
|
2438
|
+
self.assertEqual(self.contract.group_id, self.analytic_account_1)
|
|
2439
|
+
# Case 4: two contract lines, each one with one analytic account
|
|
2440
|
+
new_contract_line.analytic_distribution = {self.analytic_account_2.id: 100}
|
|
2441
|
+
self.assertFalse(self.contract.group_id)
|
|
@@ -230,8 +230,16 @@
|
|
|
230
230
|
<field name="recurring_next_date" />
|
|
231
231
|
<field name="last_date_invoiced" />
|
|
232
232
|
<separator />
|
|
233
|
-
<filter
|
|
234
|
-
|
|
233
|
+
<filter
|
|
234
|
+
name="is_canceled"
|
|
235
|
+
string="Canceled"
|
|
236
|
+
domain="[('is_canceled', '=', True)]"
|
|
237
|
+
/>
|
|
238
|
+
<filter
|
|
239
|
+
name="is_auto_renew"
|
|
240
|
+
string="Auto Renew"
|
|
241
|
+
domain="[('is_auto_renew', '=', True)]"
|
|
242
|
+
/>
|
|
235
243
|
<group expand="0" string="Group By...">
|
|
236
244
|
<filter
|
|
237
245
|
string="Contract"
|
|
@@ -239,16 +247,60 @@
|
|
|
239
247
|
domain="[]"
|
|
240
248
|
context="{'group_by':'contract_id'}"
|
|
241
249
|
/>
|
|
242
|
-
|
|
250
|
+
<filter
|
|
251
|
+
string="Partner"
|
|
252
|
+
name="group_by_partner"
|
|
253
|
+
domain="[]"
|
|
254
|
+
context="{'group_by':'partner_id'}"
|
|
255
|
+
/>
|
|
256
|
+
<filter
|
|
257
|
+
string="Product"
|
|
258
|
+
name="group_by_product"
|
|
259
|
+
domain="[]"
|
|
260
|
+
context="{'group_by':'product_id'}"
|
|
261
|
+
/>
|
|
262
|
+
<separator />
|
|
263
|
+
<filter
|
|
264
|
+
string="Date start"
|
|
265
|
+
name="group_by_date_start"
|
|
266
|
+
domain="[]"
|
|
267
|
+
context="{'group_by':'date_start'}"
|
|
268
|
+
/>
|
|
269
|
+
<filter
|
|
270
|
+
string="Date end"
|
|
271
|
+
name="group_by_date_end"
|
|
272
|
+
domain="[]"
|
|
273
|
+
context="{'group_by':'date_end'}"
|
|
274
|
+
/>
|
|
275
|
+
<filter
|
|
276
|
+
string="Next invoice date"
|
|
277
|
+
name="group_by_recurring_next_date"
|
|
278
|
+
domain="[]"
|
|
279
|
+
context="{'group_by':'recurring_next_date'}"
|
|
280
|
+
/>
|
|
281
|
+
</group>
|
|
243
282
|
</search>
|
|
244
283
|
</field>
|
|
245
284
|
</record>
|
|
246
285
|
|
|
286
|
+
<record id="contract_line_view_pivot" model="ir.ui.view">
|
|
287
|
+
<field name="name">contract.line.view.pivot</field>
|
|
288
|
+
<field name="model">contract.line</field>
|
|
289
|
+
<field name="arch" type="xml">
|
|
290
|
+
<pivot>
|
|
291
|
+
<field name="contract_id" type="row" />
|
|
292
|
+
<field name="date_start" interval="month" type="col" />
|
|
293
|
+
<field name="quantity" type="measure" />
|
|
294
|
+
<field name="specific_price" type="measure" />
|
|
295
|
+
</pivot>
|
|
296
|
+
</field>
|
|
297
|
+
</record>
|
|
298
|
+
|
|
247
299
|
<!-- Add action for contract lines -->
|
|
248
300
|
<record id="action_supplier_contract_lines" model="ir.actions.act_window">
|
|
249
301
|
<field name="name">Supplier Contract Lines</field>
|
|
250
302
|
<field name="res_model">contract.line</field>
|
|
251
|
-
<field name="view_mode">tree,form</field>
|
|
303
|
+
<field name="view_mode">tree,pivot,form</field>
|
|
252
304
|
<field name="domain">[('contract_id.contract_type', '=', 'purchase')]</field>
|
|
253
305
|
<field name="context">
|
|
254
306
|
{'search_default_group_by_contract': 1}
|
|
@@ -260,7 +312,7 @@
|
|
|
260
312
|
<record id="action_customer_contract_lines" model="ir.actions.act_window">
|
|
261
313
|
<field name="name">Customer Contract Lines</field>
|
|
262
314
|
<field name="res_model">contract.line</field>
|
|
263
|
-
<field name="view_mode">tree,form</field>
|
|
315
|
+
<field name="view_mode">tree,pivot,form</field>
|
|
264
316
|
<field name="domain">[('contract_id.contract_type', '=', 'sale')]</field>
|
|
265
317
|
<field name="context">
|
|
266
318
|
{'search_default_group_by_contract': 1}
|
{odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-contract
|
|
3
|
-
Version: 17.0.1.
|
|
3
|
+
Version: 17.0.1.5.0
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
|
6
6
|
Summary: Recurring - Contracts Management
|
|
@@ -13,6 +13,11 @@ Classifier: Framework :: Odoo
|
|
|
13
13
|
Classifier: Framework :: Odoo :: 17.0
|
|
14
14
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
15
15
|
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Description-Content-Type: text/x-rst
|
|
17
|
+
|
|
18
|
+
.. image:: https://odoo-community.org/readme-banner-image
|
|
19
|
+
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
20
|
+
:alt: Odoo Community Association
|
|
16
21
|
|
|
17
22
|
================================
|
|
18
23
|
Recurring - Contracts Management
|
|
@@ -23,13 +28,13 @@ Recurring - Contracts Management
|
|
|
23
28
|
!! This file is generated by oca-gen-addon-readme !!
|
|
24
29
|
!! changes will be overwritten. !!
|
|
25
30
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
26
|
-
!! source digest: sha256:
|
|
31
|
+
!! source digest: sha256:1ddb4048b2aca51e383f4bdea956cd9783b86b71936b8bbe7aeda0cf162d789c
|
|
27
32
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
28
33
|
|
|
29
34
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
|
30
35
|
:target: https://odoo-community.org/page/development-status
|
|
31
36
|
:alt: Production/Stable
|
|
32
|
-
.. |badge2| image:: https://img.shields.io/badge/
|
|
37
|
+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
|
33
38
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
34
39
|
:alt: License: AGPL-3
|
|
35
40
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github
|
{odoo_addon_contract-17.0.1.4.5.3.dist-info → odoo_addon_contract-17.0.1.5.0.dist-info}/RECORD
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
odoo/addons/contract/README.rst,sha256=
|
|
1
|
+
odoo/addons/contract/README.rst,sha256=m91rPtrNDV_DqOqKKhomKEeVZnlWOQ87zKpg_4_3rqI,6176
|
|
2
2
|
odoo/addons/contract/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
|
|
3
|
-
odoo/addons/contract/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/contract/__manifest__.py,sha256=BIEYRgD3D3PRNec4KgwSH-6hDtP_bEhxpk5WUqgujo0,2084
|
|
4
4
|
odoo/addons/contract/controllers/__init__.py,sha256=ZAYSY9pxyJjumL2QVLuxqtBzjLwKPiQsVXMBAWvNGGY,85
|
|
5
5
|
odoo/addons/contract/controllers/main.py,sha256=bh4rySoMQWEzVWjez9Jn0cpl6edK3Frh63AROkiRfio,3995
|
|
6
6
|
odoo/addons/contract/data/contract_cron.xml,sha256=Sf-dhqWi0FqEIDGI0L4FJh5E--RonzhZepZwecY_KaI,637
|
|
@@ -15,7 +15,7 @@ odoo/addons/contract/i18n/bg.po,sha256=4YY4HIuqNe-y-c5ka6d1fIn3qYXsmqyBaljHsi6k1
|
|
|
15
15
|
odoo/addons/contract/i18n/bs.po,sha256=1GtsoEQRq-Jzo3ckWyHrUeenk0BSXXKmf3yiHWfccBA,97898
|
|
16
16
|
odoo/addons/contract/i18n/ca.po,sha256=9rjLx0QElpLgf5EVb-ka8Gfs7iM7lExfx7iVhx8CPgo,138914
|
|
17
17
|
odoo/addons/contract/i18n/ca_ES.po,sha256=JXpJmnrjBOvZT6fzU8HSyeQ-6KUXPebSZiFNdecv0ds,97553
|
|
18
|
-
odoo/addons/contract/i18n/contract.pot,sha256=
|
|
18
|
+
odoo/addons/contract/i18n/contract.pot,sha256=N7GuSdPciLsL0B4Dv6WCyDIfTum8pvwgYxnzVwA7lcU,97983
|
|
19
19
|
odoo/addons/contract/i18n/cs.po,sha256=zA0YCIB_ijtwsBLMdgXBlQSLRmishMY55evFRuBdMlI,97923
|
|
20
20
|
odoo/addons/contract/i18n/da.po,sha256=PH-o3bZSZRpR42lNkkjSRnDlsv3jR1LkiQpJAWrzmZk,97903
|
|
21
21
|
odoo/addons/contract/i18n/de.po,sha256=vfYE5m9Omq2xGRevski0JPYi4p9zAIpTY-vsPn_WlVA,126200
|
|
@@ -84,8 +84,8 @@ odoo/addons/contract/models/__init__.py,sha256=zuv-r67B013SUlCuzjrrupfEOTsgfAXyP
|
|
|
84
84
|
odoo/addons/contract/models/abstract_contract.py,sha256=oZBawlf0KQ1_iXNw7ns6M7x6mMBI2xvSR46ow2Flhrw,2907
|
|
85
85
|
odoo/addons/contract/models/abstract_contract_line.py,sha256=2Tcl1mH3uUSzYpaYXebbPeoRPGtPsgAn73cQOVS6-Vc,10252
|
|
86
86
|
odoo/addons/contract/models/account_move.py,sha256=5jbL9XA-pc6pWlUFAk8QEeiUPR1f6kiJN1x-mtthCx4,568
|
|
87
|
-
odoo/addons/contract/models/contract.py,sha256=
|
|
88
|
-
odoo/addons/contract/models/contract_line.py,sha256
|
|
87
|
+
odoo/addons/contract/models/contract.py,sha256=KPj_NyfhzcNYPXOGXIdln4WqMmGSvjVsQGu8nFcVtUo,28314
|
|
88
|
+
odoo/addons/contract/models/contract_line.py,sha256=-fDiB8RFsrUgcEMAXyUpsks8YxDx7Y-_qk6nfHH9ynI,41374
|
|
89
89
|
odoo/addons/contract/models/contract_line_constraints.py,sha256=b2ickNjNcRDsihwfjl0JxNk-_n9_2WEPHL_JdJPXwvM,11126
|
|
90
90
|
odoo/addons/contract/models/contract_modification.py,sha256=d0tv2Zn6_WrR633pmzwAavzC2I3sLYmGokOKtMn7AYY,1147
|
|
91
91
|
odoo/addons/contract/models/contract_recurrency_mixin.py,sha256=m2QN12YAent93Izt-wFHHggw-9kG3nQ2CvYKkSn7iAk,8865
|
|
@@ -109,7 +109,7 @@ odoo/addons/contract/security/contract_terminate_reason.xml,sha256=9FuazMNgwNWVE
|
|
|
109
109
|
odoo/addons/contract/security/groups.xml,sha256=kv3a7HwzgFu5bHzaLoPDOkCkFnlJblkfJBHlE4HWKdg,390
|
|
110
110
|
odoo/addons/contract/security/ir.model.access.csv,sha256=PCzdDvEoQpqozFHSk1uU_JyREUP2U2gVV1lWeQm17Z8,1836
|
|
111
111
|
odoo/addons/contract/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
112
|
-
odoo/addons/contract/static/description/index.html,sha256=
|
|
112
|
+
odoo/addons/contract/static/description/index.html,sha256=q2zUlsjnwjJ_3D3g5U_YcPzjsxm8TIDrLKzAAeSEyNc,17445
|
|
113
113
|
odoo/addons/contract/static/src/img/contract_icon.svg,sha256=2IFs70Oy9WtE9of2SO4Vj08mwzcw-I5s_LL3UvtKlus,9643
|
|
114
114
|
odoo/addons/contract/static/src/js/contract_portal_tour.esm.js,sha256=MfKevsZ3HOhegDM23KYNEylJgT71Z38y7ZlmfQq7hMM,424
|
|
115
115
|
odoo/addons/contract/static/src/screenshots/portal-detail.png,sha256=8pMCU4nqwnSM-rbWZd3iJxXdYLBiYzuWNvT_NKslcoo,113399
|
|
@@ -117,13 +117,13 @@ odoo/addons/contract/static/src/screenshots/portal-list.png,sha256=gWSW4rlncFZem
|
|
|
117
117
|
odoo/addons/contract/static/src/screenshots/portal-my.png,sha256=YrtvTDjoc839Eka5zSZ8FQhtzoMEeW4FrXGrYAwAkS4,22985
|
|
118
118
|
odoo/addons/contract/static/src/scss/frontend.scss,sha256=LilfXNOwW8D2eXOMY0ZgrEv8hU5Vn1u9inCEIJp8D0g,1863
|
|
119
119
|
odoo/addons/contract/tests/__init__.py,sha256=iive8lH1QtzKmbhBBzzU4AQgSAgWxdJF1mMLEFOiA4c,138
|
|
120
|
-
odoo/addons/contract/tests/test_contract.py,sha256=
|
|
120
|
+
odoo/addons/contract/tests/test_contract.py,sha256=a5PPx9h9obMCbVrh7zfXxTFOQ2j6D3I2AEl7N36jE7U,104164
|
|
121
121
|
odoo/addons/contract/tests/test_contract_manually_create_invoice.py,sha256=GfA-hDaI4mSztE-2zQgFE_bQM-nsKzFhQRybi8EGeLo,2541
|
|
122
122
|
odoo/addons/contract/tests/test_multicompany.py,sha256=tzoZO47kgNl05I4lbc-ynfmrJT9dhY6VINxxMdoj7Tk,4513
|
|
123
123
|
odoo/addons/contract/tests/test_portal.py,sha256=YRJkx2FcYz-oLhFlXQzFjtzqq3crJIgLTunWwiqua0E,1174
|
|
124
124
|
odoo/addons/contract/views/abstract_contract_line.xml,sha256=OqWhNhlSBo-D5A4pFNykQQTuyw5W7j-Q-p3HCdDMD_8,5308
|
|
125
125
|
odoo/addons/contract/views/contract.xml,sha256=Yu8w-UYRJSD-IxecTwN7CbGhZT0enMIG8w2N2EdTrD4,35382
|
|
126
|
-
odoo/addons/contract/views/contract_line.xml,sha256=
|
|
126
|
+
odoo/addons/contract/views/contract_line.xml,sha256=HrYBHSC6gZARJQoNmmdgK4zzoPbObEwywb1eoNOuEyA,14944
|
|
127
127
|
odoo/addons/contract/views/contract_portal_templates.xml,sha256=K5kLqPBxz0hfm7b4MQd49ZJVvPxABszMoIFJNxIWuqo,20403
|
|
128
128
|
odoo/addons/contract/views/contract_tag.xml,sha256=6Qsyd9CiC_owa6G5YbX-4XmtqRAUrUSIAGlriTkeMk0,1678
|
|
129
129
|
odoo/addons/contract/views/contract_template.xml,sha256=1jFbF-GeaEcuzR9U2tuSiVwvBiZX9flUgSaahNelags,6296
|
|
@@ -138,7 +138,7 @@ odoo/addons/contract/wizards/contract_line_wizard.py,sha256=ItgL8eYPTnP5JI3kPAZm
|
|
|
138
138
|
odoo/addons/contract/wizards/contract_line_wizard.xml,sha256=t_Abc2wd9a_8jS6Cjlo_1nNilqycD_XWdt3Joi2o2Zo,4400
|
|
139
139
|
odoo/addons/contract/wizards/contract_manually_create_invoice.py,sha256=Q1BwQ9Vh4YdEiPlm6DS7iRcWauyEn9eoEY5S3MtbpgA,2962
|
|
140
140
|
odoo/addons/contract/wizards/contract_manually_create_invoice.xml,sha256=EzgPmH5sJZcLjlUwB29tYw9EuyXaZC53xt9dDy9LopM,3791
|
|
141
|
-
odoo_addon_contract-17.0.1.
|
|
142
|
-
odoo_addon_contract-17.0.1.
|
|
143
|
-
odoo_addon_contract-17.0.1.
|
|
144
|
-
odoo_addon_contract-17.0.1.
|
|
141
|
+
odoo_addon_contract-17.0.1.5.0.dist-info/METADATA,sha256=uray0E6Zs5O1Bw0QDm2vPcQSKWuD5Dvh5GDyS2JznQQ,6793
|
|
142
|
+
odoo_addon_contract-17.0.1.5.0.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
143
|
+
odoo_addon_contract-17.0.1.5.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
144
|
+
odoo_addon_contract-17.0.1.5.0.dist-info/RECORD,,
|
|
File without changes
|