odoo-addon-sale-blanket-order 16.0.1.0.0.5__py3-none-any.whl → 18.0.1.2.1__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 (41) hide show
  1. odoo/addons/sale_blanket_order/README.rst +116 -64
  2. odoo/addons/sale_blanket_order/__manifest__.py +8 -3
  3. odoo/addons/sale_blanket_order/data/ir_cron.xml +0 -2
  4. odoo/addons/sale_blanket_order/i18n/de.po +117 -109
  5. odoo/addons/sale_blanket_order/i18n/es.po +91 -91
  6. odoo/addons/sale_blanket_order/i18n/fr.po +99 -97
  7. odoo/addons/sale_blanket_order/i18n/fr_FR.po +91 -91
  8. odoo/addons/sale_blanket_order/i18n/it.po +69 -80
  9. odoo/addons/sale_blanket_order/i18n/pt.po +51 -88
  10. odoo/addons/sale_blanket_order/i18n/sale_blanket_order.pot +26 -67
  11. odoo/addons/sale_blanket_order/models/blanket_orders.py +84 -146
  12. odoo/addons/sale_blanket_order/models/sale_config_settings.py +0 -1
  13. odoo/addons/sale_blanket_order/models/sale_orders.py +20 -7
  14. odoo/addons/sale_blanket_order/readme/CONTEXT.md +5 -0
  15. odoo/addons/sale_blanket_order/readme/CONTRIBUTORS.md +17 -0
  16. odoo/addons/sale_blanket_order/readme/{CREDITS.rst → CREDITS.md} +2 -1
  17. odoo/addons/sale_blanket_order/readme/DESCRIPTION.md +5 -0
  18. odoo/addons/sale_blanket_order/readme/ROADMAP.md +3 -0
  19. odoo/addons/sale_blanket_order/readme/USAGE.md +58 -0
  20. odoo/addons/sale_blanket_order/report/report.xml +0 -2
  21. odoo/addons/sale_blanket_order/report/templates.xml +32 -35
  22. odoo/addons/sale_blanket_order/static/description/index.html +103 -69
  23. odoo/addons/sale_blanket_order/static/src/js/disable_add_order_line.esm.js +22 -0
  24. odoo/addons/sale_blanket_order/tests/test_blanket_orders.py +99 -50
  25. odoo/addons/sale_blanket_order/tests/test_sale_order.py +7 -21
  26. odoo/addons/sale_blanket_order/views/sale_blanket_order_line_views.xml +17 -28
  27. odoo/addons/sale_blanket_order/views/sale_blanket_order_views.xml +36 -58
  28. odoo/addons/sale_blanket_order/views/sale_config_settings.xml +11 -19
  29. odoo/addons/sale_blanket_order/views/sale_order_views.xml +7 -9
  30. odoo/addons/sale_blanket_order/wizard/create_sale_orders.py +58 -41
  31. odoo/addons/sale_blanket_order/wizard/create_sale_orders.xml +12 -2
  32. odoo_addon_sale_blanket_order-18.0.1.2.1.dist-info/METADATA +216 -0
  33. odoo_addon_sale_blanket_order-18.0.1.2.1.dist-info/RECORD +49 -0
  34. {odoo_addon_sale_blanket_order-16.0.1.0.0.5.dist-info → odoo_addon_sale_blanket_order-18.0.1.2.1.dist-info}/WHEEL +1 -1
  35. odoo_addon_sale_blanket_order-18.0.1.2.1.dist-info/top_level.txt +1 -0
  36. odoo/addons/sale_blanket_order/readme/CONTRIBUTORS.rst +0 -8
  37. odoo/addons/sale_blanket_order/readme/DESCRIPTION.rst +0 -4
  38. odoo/addons/sale_blanket_order/readme/USAGE.rst +0 -53
  39. odoo_addon_sale_blanket_order-16.0.1.0.0.5.dist-info/METADATA +0 -167
  40. odoo_addon_sale_blanket_order-16.0.1.0.0.5.dist-info/RECORD +0 -46
  41. odoo_addon_sale_blanket_order-16.0.1.0.0.5.dist-info/top_level.txt +0 -1
@@ -4,7 +4,7 @@
4
4
  <t t-call="web.external_layout">
5
5
  <t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" />
6
6
  <div class="page">
7
- <div class="oe_structure" />
7
+ <div id="oe_structure_div_01" class="oe_structure" />
8
8
  <div class="row">
9
9
  <div class="col-xs-6">
10
10
  <div
@@ -12,8 +12,8 @@
12
12
  t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}'
13
13
  />
14
14
  <p t-if="doc.partner_id.vat">VAT: <span
15
- t-field="doc.partner_id.vat"
16
- /></p>
15
+ t-field="doc.partner_id.vat"
16
+ /></p>
17
17
  </div>
18
18
  </div>
19
19
  <h2>
@@ -118,52 +118,49 @@
118
118
  </tbody>
119
119
  </table>
120
120
  <div class="clearfix">
121
- <div class="row">
122
- <div
121
+ <div class="row">
122
+ <div
123
123
  t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"
124
124
  >
125
-
126
-
127
- <table class="table table-sm">
128
- <tr class="border-black">
129
- <td>
130
- <strong>Subtotal</strong>
131
- </td>
132
- <td class="text-end">
133
- <span
125
+ <table class="table table-sm">
126
+ <tr class="border-black">
127
+ <td>
128
+ <strong>Subtotal</strong>
129
+ </td>
130
+ <td class="text-end">
131
+ <span
134
132
  t-field="doc.amount_untaxed"
135
133
  t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
136
134
  />
137
- </td>
138
- </tr>
139
- <tr>
140
- <td>Taxes</td>
141
- <td class="text-end">
142
- <span
135
+ </td>
136
+ </tr>
137
+ <tr>
138
+ <td>Taxes</td>
139
+ <td class="text-end">
140
+ <span
143
141
  t-field="doc.amount_tax"
144
142
  t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
145
143
  />
146
- </td>
147
- </tr>
148
- <tr class="border-black">
149
- <td>
150
- <strong>Total</strong>
151
- </td>
152
- <td class="text-end">
153
- <span
144
+ </td>
145
+ </tr>
146
+ <tr class="border-black">
147
+ <td>
148
+ <strong>Total</strong>
149
+ </td>
150
+ <td class="text-end">
151
+ <span
154
152
  t-field="doc.amount_total"
155
153
  t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
156
154
  />
157
- </td>
158
- </tr>
159
- </table>
160
-
161
- </div>
162
- </div>
155
+ </td>
156
+ </tr>
157
+ </table>
158
+ </div>
159
+ </div>
163
160
  </div>
164
161
 
165
162
  <p t-field="doc.note" />
166
- <div class="oe_structure" />
163
+ <div id="oe_structure_div_02" class="oe_structure" />
167
164
  </div>
168
165
  </t>
169
166
  </template>
@@ -3,15 +3,16 @@
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>Sale Blanket Orders</title>
6
+ <title>README.rst</title>
7
7
  <style type="text/css">
8
8
 
9
9
  /*
10
10
  :Author: David Goodger (goodger@python.org)
11
- :Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
11
+ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
12
12
  :Copyright: This stylesheet has been placed in the public domain.
13
13
 
14
14
  Default cascading style sheet for the HTML output of Docutils.
15
+ Despite the name, some widely supported CSS2 features are used.
15
16
 
16
17
  See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
17
18
  customize this style sheet.
@@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
274
275
  margin-left: 2em ;
275
276
  margin-right: 2em }
276
277
 
277
- pre.code .ln { color: grey; } /* line numbers */
278
+ pre.code .ln { color: gray; } /* line numbers */
278
279
  pre.code, code { background-color: #eeeeee }
279
280
  pre.code .comment, code .comment { color: #5C6576 }
280
281
  pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@ span.option {
300
301
  span.pre {
301
302
  white-space: pre }
302
303
 
303
- span.problematic {
304
+ span.problematic, pre.problematic {
304
305
  color: red }
305
306
 
306
307
  span.section-subtitle {
@@ -359,110 +360,133 @@ ul.auto-toc {
359
360
  </style>
360
361
  </head>
361
362
  <body>
362
- <div class="document" id="sale-blanket-orders">
363
- <h1 class="title">Sale Blanket Orders</h1>
363
+ <div class="document">
364
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="sale-blanket-orders">
370
+ <h1>Sale Blanket Orders</h1>
365
371
  <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
366
372
  !! This file is generated by oca-gen-addon-readme !!
367
373
  !! changes will be overwritten. !!
368
374
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:ccbeac2c26d7658d8283b70cce70cd45752f1c2207f3bf45370716a8072e14fd
375
+ !! source digest: sha256:00fac5d1161a77a5a6a5380509418cd7612e2ed365042549c170804219b62fd0
370
376
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
- <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/sale-workflow/tree/16.0/sale_blanket_order"><img alt="OCA/sale-workflow" src="https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-workflow-16-0/sale-workflow-16-0-sale_blanket_order"><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/sale-workflow&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
- <p>A blanket order is a pre-agreement to sell a certain number of quantities of
373
- products at a specific price. From a confirmed blanket order, the users can
374
- create new sale orders at such price, until the blanket order expires, either
375
- due to reaching the validity date or exhausting all the quantities of products.</p>
377
+ <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/sale-blanket/tree/18.0/sale_blanket_order"><img alt="OCA/sale-blanket" src="https://img.shields.io/badge/github-OCA%2Fsale--blanket-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-blanket-18-0/sale-blanket-18-0-sale_blanket_order"><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/sale-blanket&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378
+ <p>A blanket order is a pre-agreement to sell a certain number of
379
+ quantities of products at a specific price. From a confirmed blanket
380
+ order, the users can create new sale orders at such price, until the
381
+ blanket order expires, either due to reaching the validity date or
382
+ exhausting all the quantities of products.</p>
376
383
  <p><strong>Table of contents</strong></p>
377
384
  <div class="contents local topic" id="contents">
378
385
  <ul class="simple">
379
- <li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
380
- <li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
381
- <li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
382
- <li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
383
- <li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
384
- <li><a class="reference internal" href="#other-credits" id="toc-entry-6">Other credits</a></li>
385
- <li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
386
+ <li><a class="reference internal" href="#use-cases-context" id="toc-entry-1">Use Cases / Context</a></li>
387
+ <li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
388
+ <li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-3">Known issues / Roadmap</a></li>
389
+ <li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
390
+ <li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
391
+ <li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
392
+ <li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
393
+ <li><a class="reference internal" href="#other-credits" id="toc-entry-8">Other credits</a></li>
394
+ <li><a class="reference internal" href="#maintainers" id="toc-entry-9">Maintainers</a></li>
386
395
  </ul>
387
396
  </li>
388
397
  </ul>
389
398
  </div>
390
- <div class="section" id="usage">
391
- <h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
392
- <p>A new menu in the Sales area is created, allowing users to create new blanket orders.</p>
393
- <p>To create a new Sale Blanket Order go to the sale menu in the Sales section:</p>
394
- <div class="figure">
395
- <img alt="Blanket Orders menu" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/BO_menu.png" />
399
+ <div class="section" id="use-cases-context">
400
+ <h2><a class="toc-backref" href="#toc-entry-1">Use Cases / Context</a></h2>
401
+ <p>Others modules provide similar features. The module
402
+ (sale_order_blanket_order)[<a class="reference external" href="https://pypi.org/project/odoo-addon-sale-order-blanket-order">https://pypi.org/project/odoo-addon-sale-order-blanket-order</a>]
403
+ also defines the concept of sale blanket order. The main differences
404
+ are:</p>
405
+ <ul class="simple">
406
+ <li>This module integrates Blanket Orders and Call-Off Orders into the
407
+ sale.blanket.order object, whereas the other module extends the
408
+ sale.order object. This means that any extensions made to the sale
409
+ order model can also apply to blanket orders.</li>
410
+ <li>In the other module, you can deliver and invoice directly from the
411
+ blanket order. You can also create a separate call-off order to
412
+ partially deliver the blanket order.</li>
413
+ </ul>
396
414
  </div>
397
- <p>Hitting the button create will open the form view in which we can introduce the following
398
- information:</p>
415
+ <div class="section" id="usage">
416
+ <h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2>
417
+ <p>A new menu in the Sales area is created, allowing users to create new
418
+ blanket orders.</p>
419
+ <p>To create a new Sale Blanket Order go to the sale menu in the Sales
420
+ section:</p>
421
+ <p><img alt="image1" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/BO_menu.png" /></p>
422
+ <p>Hitting the button create will open the form view in which we can
423
+ introduce the following information:</p>
399
424
  <ul class="simple">
400
425
  <li>Vendor</li>
401
426
  <li>Salesperson</li>
402
427
  <li>Payment Terms</li>
403
428
  <li>Validity date</li>
404
- <li><dl class="first docutils">
405
- <dt>Order lines:</dt>
406
- <dd><ul class="first last">
429
+ <li>Order lines:<ul>
407
430
  <li>Product</li>
408
431
  <li>Accorded price</li>
409
432
  <li>Original, Ordered, Invoiced, Received and Remaining quantities</li>
410
433
  </ul>
411
- </dd>
412
- </dl>
413
434
  </li>
414
435
  <li>Terms and Conditions of the Blanket Order</li>
415
436
  </ul>
416
- <div class="figure">
417
- <img alt="Blanket Orders form" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/BO_form.png" />
418
- </div>
419
- <p>From the form, once the Blanket Order has been confirmed and its state is open, the user can
420
- create a Sale Order, check the Sale Orders associated to the Blanket Order and/or
421
- see the Blanket Order lines associated to the BO.</p>
422
- <div class="figure">
423
- <img alt="Actions that can be done from Blanket Order" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/BO_actions.png" />
424
- </div>
425
- <p>Hitting the button Create Sale Order will open a wizard that will ask for the amount of each
426
- product in the BO lines for which the Sale Order will be created.</p>
427
- <div class="figure">
428
- <img alt="Create Sale Order from Blanket Order" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/PO_from_BO.png" />
429
- </div>
430
- <p>Installing this module will add an additional menu which will show all the blanket order lines
431
- currently defined in the system. From this list the user can create customized Sale Orders
432
- selecting the lines for which the PO (or POs if the customers are different) is (are) created.</p>
433
- <div class="figure">
434
- <img alt="Blanket Order lines and actions" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/BO_lines.png" />
435
- </div>
436
- <p>In the Sale Order form one field is added in the PO lines, the Blanket Order line field. This
437
- field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product
438
- in a newly created Sale Order a blanket order line will be suggested depending on the following
437
+ <p><img alt="image2" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/BO_form.png" /></p>
438
+ <p>From the form, once the Blanket Order has been confirmed and its state
439
+ is open, the user can create a Sale Order, check the Sale Orders
440
+ associated to the Blanket Order and/or see the Blanket Order lines
441
+ associated to the BO.</p>
442
+ <p><img alt="image3" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/BO_actions.png" /></p>
443
+ <p>Hitting the button Create Sale Order will open a wizard that will ask
444
+ for the amount of each product in the BO lines for which the Sale Order
445
+ will be created.</p>
446
+ <p><img alt="image4" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/PO_from_BO.png" /></p>
447
+ <p>Installing this module will add an additional menu which will show all
448
+ the blanket order lines currently defined in the system. From this list
449
+ the user can create customized Sale Orders selecting the lines for which
450
+ the PO (or POs if the customers are different) is (are) created.</p>
451
+ <p><img alt="image5" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/BO_lines.png" /></p>
452
+ <p>In the Sale Order form one field is added in the PO lines, the Blanket
453
+ Order line field. This field keeps track to which Blanket Order line the
454
+ PO line is associated. Upon adding a new product in a newly created Sale
455
+ Order a blanket order line will be suggested depending on the following
439
456
  factors:</p>
440
457
  <ul class="simple">
441
458
  <li>Closer Validity date</li>
442
459
  <li>Remaining quantity &gt; Quantity introduced in the Sale Order line</li>
443
460
  </ul>
444
- <div class="figure">
445
- <img alt="New field added in Sale Order Line" src="https://raw.githubusercontent.com/OCA/sale-workflow/16.0/sale_blanket_order/static/description/PO_BOLine.png" />
461
+ <p><img alt="image6" src="https://raw.githubusercontent.com/OCA/sale-blanket/18.0/sale_blanket_order/static/description/PO_BOLine.png" /></p>
446
462
  </div>
463
+ <div class="section" id="known-issues-roadmap">
464
+ <h2><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h2>
465
+ <ul class="simple">
466
+ <li>Currently, combo products are not supported in blanket orders nor
467
+ blanket order lines, they are treated as regular products. Future
468
+ versions of the module should include support for these types of
469
+ products.</li>
470
+ </ul>
447
471
  </div>
448
472
  <div class="section" id="bug-tracker">
449
- <h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
450
- <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/sale-workflow/issues">GitHub Issues</a>.
473
+ <h2><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h2>
474
+ <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/sale-blanket/issues">GitHub Issues</a>.
451
475
  In case of trouble, please check there if your issue has already been reported.
452
476
  If you spotted it first, help us to smash it by providing a detailed and welcomed
453
- <a class="reference external" href="https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_blanket_order%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
477
+ <a class="reference external" href="https://github.com/OCA/sale-blanket/issues/new?body=module:%20sale_blanket_order%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
454
478
  <p>Do not contact contributors directly about support or help with technical issues.</p>
455
479
  </div>
456
480
  <div class="section" id="credits">
457
- <h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
481
+ <h2><a class="toc-backref" href="#toc-entry-5">Credits</a></h2>
458
482
  <div class="section" id="authors">
459
- <h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
483
+ <h3><a class="toc-backref" href="#toc-entry-6">Authors</a></h3>
460
484
  <ul class="simple">
461
485
  <li>Acsone SA/NV</li>
462
486
  </ul>
463
487
  </div>
464
488
  <div class="section" id="contributors">
465
- <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
489
+ <h3><a class="toc-backref" href="#toc-entry-7">Contributors</a></h3>
466
490
  <ul>
467
491
  <li><p class="first">André Pereira &lt;<a class="reference external" href="mailto:github&#64;andreparames.com">github&#64;andreparames.com</a>&gt; (<a class="reference external" href="https://www.acsone.eu/">https://www.acsone.eu/</a>)</p>
468
492
  </li>
@@ -472,7 +496,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
472
496
  </li>
473
497
  <li><p class="first">Alex Comba &lt;<a class="reference external" href="mailto:alex.comba&#64;agilebg.com">alex.comba&#64;agilebg.com</a>&gt; (<a class="reference external" href="https://www.agilebg.com/">https://www.agilebg.com/</a>)</p>
474
498
  </li>
475
- <li><p class="first">Jasper Jumelet &lt;<a class="reference external" href="mailto:jasper.jumelet&#64;codeforward.nl">jasper.jumelet&#64;codeforward.nl</a>&gt; (<a class="reference external" href="https://www.codeforward.nl/">https://www.codeforward.nl/</a>)</p>
499
+ <li><p class="first">Codeforward (<a class="reference external" href="https://www.codeforward.nl/">https://www.codeforward.nl/</a>):</p>
500
+ <blockquote>
501
+ <ul class="simple">
502
+ <li>Jasper Jumelet &lt;<a class="reference external" href="mailto:jasper.jumelet&#64;codeforward.nl">jasper.jumelet&#64;codeforward.nl</a>&gt;</li>
503
+ <li>Chris Bergman &lt;<a class="reference external" href="mailto:chris.bergman&#64;codeforward.nl">chris.bergman&#64;codeforward.nl</a>&gt;</li>
504
+ </ul>
505
+ </blockquote>
476
506
  </li>
477
507
  <li><p class="first"><a class="reference external" href="https://trobz.com">Trobz</a>:</p>
478
508
  <blockquote>
@@ -484,20 +514,24 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
484
514
  </ul>
485
515
  </div>
486
516
  <div class="section" id="other-credits">
487
- <h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
488
- <p>The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp</p>
517
+ <h3><a class="toc-backref" href="#toc-entry-8">Other credits</a></h3>
518
+ <p>The migration of this module from 15.0 to 16.0 was financially supported
519
+ by Camptocamp</p>
489
520
  </div>
490
521
  <div class="section" id="maintainers">
491
- <h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
522
+ <h3><a class="toc-backref" href="#toc-entry-9">Maintainers</a></h3>
492
523
  <p>This module is maintained by the OCA.</p>
493
- <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
524
+ <a class="reference external image-reference" href="https://odoo-community.org">
525
+ <img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
526
+ </a>
494
527
  <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
495
528
  mission is to support the collaborative development of Odoo features and
496
529
  promote its widespread use.</p>
497
- <p>This module is part of the <a class="reference external" href="https://github.com/OCA/sale-workflow/tree/16.0/sale_blanket_order">OCA/sale-workflow</a> project on GitHub.</p>
530
+ <p>This module is part of the <a class="reference external" href="https://github.com/OCA/sale-blanket/tree/18.0/sale_blanket_order">OCA/sale-blanket</a> project on GitHub.</p>
498
531
  <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
499
532
  </div>
500
533
  </div>
501
534
  </div>
535
+ </div>
502
536
  </body>
503
537
  </html>
@@ -0,0 +1,22 @@
1
+ import {ListRenderer} from "@web/views/list/list_renderer";
2
+ import {SaleOrderLineOne2Many} from "@sale/js/sale_order_line_field/sale_order_line_field";
3
+ import {patch} from "@web/core/utils/patch";
4
+
5
+ patch(ListRenderer.prototype, {
6
+ get canCreate() {
7
+ const parentRecord = this.props.list.model.root;
8
+ const disableAddingLines = parentRecord?.data?.disable_adding_lines;
9
+ return !disableAddingLines && super.canCreate;
10
+ },
11
+ });
12
+
13
+ patch(SaleOrderLineOne2Many.prototype, {
14
+ get displayControlPanelButtons() {
15
+ const fieldName = this.props.name;
16
+ if (this.props.viewMode === "kanban" && fieldName === "order_line") {
17
+ const disabled = this.props.record?.data?.disable_adding_lines;
18
+ return !disabled && super.displayControlPanelButtons;
19
+ }
20
+ return super.displayControlPanelButtons;
21
+ },
22
+ });