summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-01-05 11:24:53 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-01-05 11:24:53 +0700
commit9a3a8c37b65d6017bae50d56b4c5bd1ea641a3b1 (patch)
treed46e635d9977350d7414248fc9b5a375fd00f3e0
parent329c743adc3bb0cf63b7586efd8adbde58a62c24 (diff)
parent32a38516894abbd7aa010f99a7fdbc18268b3bdc (diff)
Merge branch 'staging' of bitbucket.org:altafixco/indoteknik-addons into staging
-rw-r--r--indoteknik_api/controllers/api_v1/wishlist.py36
-rw-r--r--indoteknik_api/models/product_product.py15
-rw-r--r--indoteknik_custom/models/website_user_wishlist.py1
-rwxr-xr-xindoteknik_custom/views/website_user_wishlist.xml2
4 files changed, 45 insertions, 9 deletions
diff --git a/indoteknik_api/controllers/api_v1/wishlist.py b/indoteknik_api/controllers/api_v1/wishlist.py
index 61fa960f..9860f40b 100644
--- a/indoteknik_api/controllers/api_v1/wishlist.py
+++ b/indoteknik_api/controllers/api_v1/wishlist.py
@@ -13,15 +13,26 @@ class Wishlist(controller.Controller):
user_id = int(kw.get('user_id', 0))
product_id = kw.get('product_id', 0)
+ variant_id = kw.get('variant_id', 0)
limit = int(kw.get('limit', 0))
offset = int(kw.get('offset', 0))
query = [('user_id', '=', user_id)]
if product_id:
query += [('product_id', '=', int(product_id))]
+ elif variant_id :
+ query += [('variant_id', '=', int(variant_id))]
wishlists = request.env['website.user.wishlist'].search(query, limit=limit, offset=offset, order='create_date desc')
+
+ # product = [request.env['product.template'].api_single_response(wishlist.product_id) for wishlist in wishlists]
+ product = []
+ for wishlist in wishlists:
+ if wishlist.product_id:
+ product.append(request.env['product.template'].api_single_response(wishlist.product_id))
+ else:
+ product.append(request.env['product.product'].api_single_response(wishlist.variant_id))
data = {
'product_total': request.env['website.user.wishlist'].search_count(query),
- 'products': [request.env['product.template'].api_single_response(wishlist.product_id) for wishlist in wishlists]
+ 'products': product
}
return self.response(data)
@@ -32,22 +43,31 @@ class Wishlist(controller.Controller):
user_id = int(kw.get('user_id', 0))
product_id = kw.get('product_id', 0)
- if not product_id:
- return self.response(code=400, description='product_id is required')
+ variant_id = kw.get('variant_id', 0)
+ if product_id == 0 and variant_id == 0:
+ return self.response(code=400, description='product_id or variant_id is required')
query = [
('user_id', '=', user_id),
- ('product_id', '=', int(product_id))
]
+ if product_id :
+ query += [('product_id', '=', int(product_id))]
+ params = {
+ 'user_id': user_id,
+ 'product_id': product_id
+ }
+ else:
+ query += [('variant_id', '=', int(variant_id))]
+ params = {
+ 'user_id': user_id,
+ 'variant_id': variant_id
+ }
wishlist = request.env['website.user.wishlist'].search(query, limit=1)
result = {}
if wishlist:
wishlist.unlink()
result['id'] = wishlist.id
else:
- create = request.env['website.user.wishlist'].create({
- 'user_id': user_id,
- 'product_id': product_id
- })
+ create = request.env['website.user.wishlist'].create(params)
result['id'] = create.id
return self.response(result)
diff --git a/indoteknik_api/models/product_product.py b/indoteknik_api/models/product_product.py
index 92c738fd..6b02d91e 100644
--- a/indoteknik_api/models/product_product.py
+++ b/indoteknik_api/models/product_product.py
@@ -22,5 +22,18 @@ class ProductProduct(models.Model):
'stock': product_product.qty_stock_vendor,
'weight': product_product.weight,
'attributes': [x.name for x in product_product.product_template_attribute_value_ids],
+ 'manufacture' : self.api_manufacture(product_product)
}
- return data \ No newline at end of file
+ return data
+
+ def api_manufacture(self, product_template):
+ base_url = self.env['ir.config_parameter'].get_param('web.base.url')
+ if product_template.x_manufacture:
+ manufacture = product_template.x_manufacture
+ return {
+ 'id': manufacture.id,
+ 'name': manufacture.x_name,
+ 'image_promotion_1': base_url + 'api/image/x_manufactures/image_promotion_1/' + str(manufacture.id) if manufacture.image_promotion_1 else '',
+ 'image_promotion_2': base_url + 'api/image/x_manufactures/image_promotion_2/' + str(manufacture.id) if manufacture.image_promotion_2 else '',
+ }
+ return {} \ No newline at end of file
diff --git a/indoteknik_custom/models/website_user_wishlist.py b/indoteknik_custom/models/website_user_wishlist.py
index a6ee35d4..0a7bcf69 100644
--- a/indoteknik_custom/models/website_user_wishlist.py
+++ b/indoteknik_custom/models/website_user_wishlist.py
@@ -7,3 +7,4 @@ class WebsiteUserWishlist(models.Model):
user_id = fields.Many2one('res.users', string='User', help="User ID yang terdaftar di table res.users")
product_id = fields.Many2one('product.template', string='Product', help="Product yang terdaftar di table product.template")
+ variant_id = fields.Many2one('product.product', string='Variant', help="Product yang terdaftar di table product.product")
diff --git a/indoteknik_custom/views/website_user_wishlist.xml b/indoteknik_custom/views/website_user_wishlist.xml
index 998877b2..89cae263 100755
--- a/indoteknik_custom/views/website_user_wishlist.xml
+++ b/indoteknik_custom/views/website_user_wishlist.xml
@@ -13,6 +13,7 @@
<tree>
<field name="user_id"/>
<field name="product_id"/>
+ <field name="variant_id"/>
</tree>
</field>
</record>
@@ -27,6 +28,7 @@
<group>
<field name="user_id"/>
<field name="product_id"/>
+ <field name="variant_id"/>
</group>
<group></group>
</group>