Parcourir la source

[ADD] Comprar por curva, teniendo varios attributos

Rodney Enciso Arias il y a 7 ans
Parent
commit
a8a9849438
2 fichiers modifiés avec 51 ajouts et 44 suppressions
  1. 11 16
      static/src/js/website_sale_multi_add.js
  2. 40 28
      templates.xml

+ 11 - 16
static/src/js/website_sale_multi_add.js

@@ -4,7 +4,6 @@ $('.js_variant_change').click(function(e) {
     var attribute_color = $('input:radio[id=product_color]:checked').val();
     var target = $(e.currentTarget).prop('id');
     var attribute_id = target.substring(target.indexOf('_') + 1);
-
     if(attribute_color === undefined){
         var indexOfValue = attributeList.indexOf('[' + attribute_id + ']');
         console.log('entro');
@@ -12,7 +11,6 @@ $('.js_variant_change').click(function(e) {
         var indexOfValue = attributeList.indexOf('[' + attribute_id + ', ' + attribute_color);
     }
     var buffer = '';
-
     for (i = indexOfValue - 2; i > 0; i--) {
         var charValue = attributeList.charAt(i);
         if (charValue == '[') {
@@ -23,12 +21,12 @@ $('.js_variant_change').click(function(e) {
         }
     }
     $('.product_id').val(buffer);
-
-    // submit del formulario
     $(this).closest('form').submit();
 });
+
 // comprar por curva
 $('#curva').off('click').click(function(e) {
+    var attribute_color = $('input:radio[id=product_color]:checked').val();
     var attributeList = $('#attribute_list').val();
     var variantList = $('#variant_list').val();
     var variant = variantList.substring(variantList.indexOf('('));
@@ -36,10 +34,7 @@ $('#curva').off('click').click(function(e) {
     var buffer;
     var valor;
     var array_ids = [];
-    // var productCurva = $('#product_curva').val();
     var productCurva = $('#product_curva_qty').val().split(",");
-    // console.log(productCurva);
-    // console.log(productCurva);
     for (i = 1; i < variant.length - 1; i++) {
         valor = variant[i];
         if (valor == ',') {
@@ -49,7 +44,11 @@ $('#curva').off('click').click(function(e) {
                 continue;
             }
         }
-        indexOfValue = attributeList.indexOf('[' + valor + ']');
+        if(attribute_color == undefined){
+            indexOfValue = attributeList.indexOf('[' + valor + ']');
+        }else{
+            indexOfValue = attributeList.indexOf('[' + valor + ', ' + attribute_color);
+        }
         buffer = '';
         for (j = indexOfValue - 2; j >= 0; j--) {
             var charValue = attributeList.charAt(j);
@@ -66,16 +65,12 @@ $('#curva').off('click').click(function(e) {
     array_ids.sort(function(a, b) {
         return a - b
     });
-    console.log(array_ids);
     for (var j = 0; j < array_ids.length; j++) {
         var add_qty = productCurva[j];
-        // if (productCurva == 'c1') {
-            if (j == 0 || j == array_ids.length - 1) {
-                add_qty = 1;
-            }
-            var data = '&product_id=' + array_ids[j] + '&add_qty=' + add_qty;
-        // }
-        console.log(data);
+        if (j == 0 || j == array_ids.length - 1) {
+            add_qty = 1;
+        }
+        var data = '&product_id=' + array_ids[j] + '&add_qty=' + add_qty;
         $.ajax({
             url: '/shop/cart/update',
             type: 'POST',

+ 40 - 28
templates.xml

@@ -28,32 +28,48 @@
                                 </t>
                             </select>
                         </t>
+
+                        <input id="attribute_list" type="hidden" t-att-value="attribute_value_ids"></input>
+                        <input id="variant_list" type="hidden" t-att-value="variant_id.value_ids"></input>
+                        <input id="product_curva" type="hidden" t-att-value="product.variant_item_ids"/>
+                        <input id="product_curva_qty" type="hidden" t-att-value="product.curva"/>
+
                         <!-- Caso el cliente compre solo por curva, se despliega esta opcion -->
                         <t t-if="user_id.partner_id.website_sale_type == True">
                             <div class="container">
                                 <div class="row">
                                     <div class="col-md-12">
-                                        <div class="panel panel-primary">
-                                            <div class="panel-heading">
-                                                <h3 class="panel-title" t-field="variant_id.attribute_id.name"></h3>
-                                            </div>
+                                        <!-- Variante tipo color -->
+                                        <t t-if="variant_id.attribute_id.type == 'color'">
+                                            <h2 class="panel-title" t-field="variant_id.attribute_id.name"></h2>
+                                            <input id="variant_list_color" type="hidden" t-att-value="variant_id.value_ids"></input>
+                                            <ul class="list-inline">
+                                                <t t-set="inc" t-value="0"/>
+                                                <li t-foreach="variant_id.value_ids" t-as="value_id">
+                                                    <label t-attf-style="background-color:#{value_id.color or value_id.name}" t-attf-class="css_attribute_color #{'active' if not inc else ''}">
+                                                        <input type="radio" t-att-checked="'checked' if not inc else ''" t-att-name="'attribute_%s_%s' % (product.id, variant_id.attribute_id.id)" t-att-value="value_id.id" t-att-title="value_id.name" id="product_color"/>
+                                                    </label>
+                                                    <t t-set="inc" t-value="inc+1"/>
+                                                </li>
+                                            </ul>
+                                        </t>
+                                        <t t-if="variant_id.attribute_id.type == 'radio'">
+                                            <h2 class="panel-title" t-field="variant_id.attribute_id.name"></h2>
                                             <table class="table table-condenced text-center">
-                                                <t t-if="variant_id.attribute_id.type == 'radio'">
-                                                    <ul class="list-unstyled">
-                                                        <t t-set="inc" t-value="0"/>
-                                                        <tr>
-                                                            <t t-foreach="variant_id.value_ids" t-as="value_id">
-                                                                <li class="form-group js_attribute_value">
-                                                                        <td>
-                                                                            <span t-field="value_id.name"/>
-                                                                        </td>
-                                                                </li>
-                                                            <t t-set="inc" t-value="inc+1"/></t>
-                                                        </tr>
-                                                    </ul>
-                                                </t>
+                                                <ul class="list-unstyled">
+                                                    <t t-set="inc" t-value="0"/>
+                                                    <tr>
+                                                        <t t-foreach="variant_id.value_ids" t-as="value_id">
+                                                            <li class="form-group js_attribute_value">
+                                                                <td>
+                                                                    <span t-field="value_id.name"/>
+                                                                </td>
+                                                            </li>
+                                                        <t t-set="inc" t-value="inc+1"/></t>
+                                                    </tr>
+                                                </ul>
                                             </table>
-                                        </div>
+                                        </t>
                                     </div>
                                 </div>
                             </div>
@@ -72,10 +88,6 @@
                                                     <table class="table table-condenced text-center">
                                                         <!-- Variante tipo radio -->
                                                         <t t-if="variant_id.attribute_id.type == 'radio'">
-                                                            <input id="attribute_list" type="hidden" t-att-value="attribute_value_ids"></input>
-                                                            <input id="variant_list" type="hidden" t-att-value="variant_id.value_ids"></input>
-                                                            <input id="product_curva" type="hidden" t-att-value="product.variant_item_ids"/>
-                                                            <input id="product_curva_qty" type="hidden" t-att-value="product.curva"/>
                                                             <ul class="list-unstyled">
                                                                 <t t-set="inc" t-value="0"/>
                                                                 <t t-foreach="variant_id.value_ids" t-as="value_id">
@@ -120,11 +132,11 @@
                             </div>
                         </t>
                     </li>
-                    <t t-if="user_id.partner_id.website_sale_type == True">
-                        <div class="container text-center">
-                            <button id="curva" class="btn btn-primary" href="">Comprar Curva</button>
-                        </div>
-                    </t>
+                </t>
+                <t t-if="user_id.partner_id.website_sale_type == True">
+                    <div class="container text-center">
+                        <button id="curva" class="btn" href="">Comprar Curva</button>
+                    </div>
                 </t>
             </xpath>
         </template>