-
+
+
+
+
+ This option or combination of options is not available
+
|
-
-
+
+
+
+
+
+
+ Remove product
+
|
-
-
-
+ |
+
+
+
+
-
-
- Option not available
-
-
|
diff --git a/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.js b/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.js
index 088ee25176f..2bd3b057778 100644
--- a/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.js
+++ b/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.js
@@ -36,7 +36,7 @@ export class ProductConfiguratorDialog extends Component {
}
setup() {
- this.title = _t("Configure");
+ this.title = _t("Configure your product");
this.rpc = useService("rpc");
this.state = useState({
products: [],
diff --git a/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.xml b/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.xml
index 0c1e26977b5..1da2d540075 100644
--- a/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.xml
+++ b/addons/sale_product_configurator/static/src/js/product_configurator_dialog/product_configurator_dialog.xml
@@ -1,7 +1,7 @@
-
diff --git a/addons/sale_product_configurator/static/src/js/product_list/product_list.xml b/addons/sale_product_configurator/static/src/js/product_list/product_list.xml
index 347b90a3218..ac7ac4876eb 100644
--- a/addons/sale_product_configurator/static/src/js/product_list/product_list.xml
+++ b/addons/sale_product_configurator/static/src/js/product_list/product_list.xml
@@ -1,31 +1,25 @@
-
-
-
- | Product |
- |
-
- Quantity
- |
-
- Price
- |
+ Add optional products
+
+
+
+ | Product |
+ Quantity |
+ Price |
- Available Options: |
-
+
- |
- Total:
-
+ |
+ Total:
|
-
+
diff --git a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.js b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.js
index ca2cff0a672..d3793b7a53c 100644
--- a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.js
+++ b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.js
@@ -133,4 +133,15 @@ export class ProductTemplateAttributeLine extends Component {
ptav => this.props.selected_attribute_value_ids.includes(ptav.id)
)?.is_custom;
}
+
+ /**
+ * Check if the line has a custom ptav or not.
+ *
+ * @return {Boolean} - Whether the line has a custom ptav or not.
+ */
+ hasPTAVCustom() {
+ return this.props.attribute_values.some(
+ ptav => ptav.is_custom
+ );
+ }
}
diff --git a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.scss b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.scss
index b17003cb654..8097ccc2e06 100644
--- a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.scss
+++ b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.scss
@@ -1,24 +1,5 @@
-.o_sale_product_configurator_ptal_name {
- display: flex;
- align-items: center;
- font-size: 0.9rem;
- text-transform: uppercase;
- padding-bottom: 0.5rem;
-
- &:after {
- content: '';
- margin-left: $spacer;
- flex-grow: 1;
- border-bottom: 1px solid map-get($grays, '400');
- }
-}
-
.o_sale_product_configurator_ptav_color {
- position: relative;
- display: inline-block;
- border: 5px solid $input-border-color;
- border-radius: 50%;
- text-align: center;
+ border: 5px solid $border-color;
transition: $input-transition;
@include o-field-pointer();
@@ -27,7 +8,7 @@
content: "";
display: block;
@include o-position-absolute(-3px, -3px, -3px, -3px);
- border: 4px solid white;
+ border: 4px solid $o-view-background-color;
border-radius: 50%;
box-shadow: inset 0 0 3px rgba(black, 0.3);
}
@@ -66,27 +47,12 @@
}
}
-.o_sale_product_configurator_ptav_pills {
- padding: $spacer/2 $spacer;
- margin-right: 0.2rem;
- border: none;
- cursor: default !important;
-
- &.btn.active {
- color: $white;
- background-color: map-get($theme-colors, 'primary');
- }
- &:not(.active) {
- color: map-get($grays, '600');
- background-color: map-get($grays, '200');
- }
-
- input {
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- opacity: 0;
- }
+.o_sale_product_configurator_ptav_pills.active label {
+ $-btn-secondary-design: map-get($o-btns-bs-override, "secondary");
+
+ background-color: map-get($-btn-secondary-design, active-background);
+ border-color: map-get($-btn-secondary-design, active-border);
+ color: map-get($-btn-secondary-design, active-color);
}
.css_not_available {
diff --git a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.xml b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.xml
index 93c83f84e11..f055af387d8 100644
--- a/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.xml
+++ b/addons/sale_product_configurator/static/src/js/product_template_attribute_line/product_template_attribute_line.xml
@@ -2,26 +2,31 @@
+
-
-
-
-
-
- | |