diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-05 11:24:53 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-05 11:24:53 +0700 |
| commit | 9a3a8c37b65d6017bae50d56b4c5bd1ea641a3b1 (patch) | |
| tree | d46e635d9977350d7414248fc9b5a375fd00f3e0 | |
| parent | 329c743adc3bb0cf63b7586efd8adbde58a62c24 (diff) | |
| parent | 32a38516894abbd7aa010f99a7fdbc18268b3bdc (diff) | |
Merge branch 'staging' of bitbucket.org:altafixco/indoteknik-addons into staging
| -rw-r--r-- | indoteknik_api/controllers/api_v1/wishlist.py | 36 | ||||
| -rw-r--r-- | indoteknik_api/models/product_product.py | 15 | ||||
| -rw-r--r-- | indoteknik_custom/models/website_user_wishlist.py | 1 | ||||
| -rwxr-xr-x | indoteknik_custom/views/website_user_wishlist.xml | 2 |
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> |
