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.
@@ -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:94f5661d170fda1b1e3e527f86ac31ec808d3d86ac60d476f5856a7fdb1e69c7
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/licence-AGPL--3-blue.png
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
@@ -11,7 +11,7 @@
11
11
 
12
12
  {
13
13
  "name": "Recurring - Contracts Management",
14
- "version": "17.0.1.4.5",
14
+ "version": "17.0.1.5.0",
15
15
  "category": "Contract Management",
16
16
  "license": "AGPL-3",
17
17
  "author": "Tecnativa, ACSONE SA/NV, Odoo Community Association (OCA)",
@@ -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>Recurring - Contracts Management</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" id="recurring-contracts-management">
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:94f5661d170fda1b1e3e527f86ac31ec808d3d86ac60d476f5856a7fdb1e69c7
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/licence-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&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
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&amp;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
- <h1><a class="toc-backref" href="#toc-entry-1">Configuration</a></h1>
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
- <h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
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 -&gt; Customers -&gt; Customer and Invoicing -&gt;
403
408
  Vendors -&gt; 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
- <h1><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h1>
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
- <h1><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h1>
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
- <h1><a class="toc-backref" href="#toc-entry-5">Credits</a></h1>
464
+ <h2><a class="toc-backref" href="#toc-entry-5">Credits</a></h2>
460
465
  <div class="section" id="authors">
461
- <h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
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
- <h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
473
+ <h3><a class="toc-backref" href="#toc-entry-7">Contributors</a></h3>
469
474
  <ul>
470
475
  <li><p class="first">Angel Moya &lt;<a class="reference external" href="mailto:angel.moya&#64;domatix.com">angel.moya&#64;domatix.com</a>&gt;</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
- <h2><a class="toc-backref" href="#toc-entry-8">Maintainers</a></h2>
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 name="is_canceled" domain="[('is_canceled', '=', True)]" />
234
- <filter name="is_auto_renew" domain="[('is_auto_renew', '=', True)]" />
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
- </group>
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}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-contract
3
- Version: 17.0.1.4.5.3
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:94f5661d170fda1b1e3e527f86ac31ec808d3d86ac60d476f5856a7fdb1e69c7
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/licence-AGPL--3-blue.png
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
@@ -1,6 +1,6 @@
1
- odoo/addons/contract/README.rst,sha256=bOP_14UqQeLPp0Q4sus6LLAf_PrnGWdaSnwRjxWM_R4,6011
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=vOkvF1YjuSsse3cm2elCw-StCOp44aKXOQWLBHhKrfQ,2084
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=Dae7ZBkZ1IBbL-0i1p68tptNGT_chsHDmTm7OVKzj0g,97393
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=sMqnY3o_8Qkl6w9aYQi5oZxrOKrpfowD8Etq8uBRZ8Y,27134
88
- odoo/addons/contract/models/contract_line.py,sha256=NVPkSYQ-yMjtvgVWsxVyaEiRgeq56RypXWIvrTULuoM,41279
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=Kg6fvqqagDeRF9BMXlvHiFcBLUetRWq9tpg3QXolRbI,17240
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=01TuOwKCMCy0Ly4bYxnGRWfZ_NRgjmd-Thj7CSNenEM,102076
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=3Ur00N7SnmnqG4vVhQd1vYuuezZp27E-cwlj8EE2WC8,12963
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.4.5.3.dist-info/METADATA,sha256=nikHIBCfqSfGoQ1S0DE2pBAvgciOz1SmlKv0hIPGtmw,6593
142
- odoo_addon_contract-17.0.1.4.5.3.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
143
- odoo_addon_contract-17.0.1.4.5.3.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
144
- odoo_addon_contract-17.0.1.4.5.3.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: Whool 1.2
2
+ Generator: Whool 1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5