From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- .../src/img/onboarding_quotation_order_tooltip.jpg | Bin 0 -> 12084 bytes .../src/img/sale_quotation_onboarding_bg.jpg | Bin 0 -> 35910 bytes .../static/src/js/product_configurator_widget.js | 276 +++++++++ .../sale/static/src/js/product_discount_widget.js | 37 ++ addons/sale/static/src/js/sale.js | 60 ++ addons/sale/static/src/js/sale_order_view.js | 56 ++ addons/sale/static/src/js/sale_portal_sidebar.js | 117 ++++ addons/sale/static/src/js/tours/sale.js | 126 ++++ addons/sale/static/src/js/variant_mixin.js | 637 +++++++++++++++++++++ .../sale/static/src/scss/product_configurator.scss | 227 ++++++++ addons/sale/static/src/scss/sale_onboarding.scss | 11 + addons/sale/static/src/scss/sale_portal.scss | 42 ++ addons/sale/static/src/scss/sale_report.scss | 3 + 13 files changed, 1592 insertions(+) create mode 100644 addons/sale/static/src/img/onboarding_quotation_order_tooltip.jpg create mode 100644 addons/sale/static/src/img/sale_quotation_onboarding_bg.jpg create mode 100644 addons/sale/static/src/js/product_configurator_widget.js create mode 100644 addons/sale/static/src/js/product_discount_widget.js create mode 100644 addons/sale/static/src/js/sale.js create mode 100644 addons/sale/static/src/js/sale_order_view.js create mode 100644 addons/sale/static/src/js/sale_portal_sidebar.js create mode 100644 addons/sale/static/src/js/tours/sale.js create mode 100644 addons/sale/static/src/js/variant_mixin.js create mode 100644 addons/sale/static/src/scss/product_configurator.scss create mode 100644 addons/sale/static/src/scss/sale_onboarding.scss create mode 100644 addons/sale/static/src/scss/sale_portal.scss create mode 100644 addons/sale/static/src/scss/sale_report.scss (limited to 'addons/sale/static/src') diff --git a/addons/sale/static/src/img/onboarding_quotation_order_tooltip.jpg b/addons/sale/static/src/img/onboarding_quotation_order_tooltip.jpg new file mode 100644 index 00000000..548a1d35 Binary files /dev/null and b/addons/sale/static/src/img/onboarding_quotation_order_tooltip.jpg differ diff --git a/addons/sale/static/src/img/sale_quotation_onboarding_bg.jpg b/addons/sale/static/src/img/sale_quotation_onboarding_bg.jpg new file mode 100644 index 00000000..3c0f7a34 Binary files /dev/null and b/addons/sale/static/src/img/sale_quotation_onboarding_bg.jpg differ diff --git a/addons/sale/static/src/js/product_configurator_widget.js b/addons/sale/static/src/js/product_configurator_widget.js new file mode 100644 index 00000000..54bca050 --- /dev/null +++ b/addons/sale/static/src/js/product_configurator_widget.js @@ -0,0 +1,276 @@ +odoo.define('sale.product_configurator', function (require) { +var relationalFields = require('web.relational_fields'); +var FieldsRegistry = require('web.field_registry'); +var core = require('web.core'); +var _t = core._t; + +/** + * The sale.product_configurator widget is a simple widget extending FieldMany2One + * It allows the development of configuration strategies in other modules through + * widget extensions. + * + * + * !!! WARNING !!! + * + * This widget is only designed for sale_order_line creation/updates. + * !!! It should only be used on a product_product or product_template field !!! + */ +var ProductConfiguratorWidget = relationalFields.FieldMany2One.extend({ + events: _.extend({}, relationalFields.FieldMany2One.prototype.events, { + 'click .o_edit_product_configuration': '_onEditConfiguration' + }), + + /** + * @override + */ + _render: function () { + this._super.apply(this, arguments); + if (this.mode === 'edit' && this.value && + (this._isConfigurableProduct() || this._isConfigurableLine())) { + this._addProductLinkButton(); + this._addConfigurationEditButton(); + } else if (this.mode === 'edit' && this.value) { + this._addProductLinkButton(); + this.$('.o_edit_product_configuration').hide(); + } else { + this.$('.o_external_button').hide(); + this.$('.o_edit_product_configuration').hide(); + } + }, + + /** + * Add button linking to product_id/product_template_id form. + */ + _addProductLinkButton: function () { + if (this.$('.o_external_button').length === 0) { + var $productLinkButton = $('