diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2023-09-08 10:59:55 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2023-09-08 10:59:55 +0700 |
| commit | 43f020d6f6ba271381e934c9e811f052de70a779 (patch) | |
| tree | defc0674d2c659ca4d5e24cbb22d103dcd130ec0 | |
| parent | fa4f4e6f06ee77a2c448293c806d0f34e643f394 (diff) | |
fix flashsale product detail
| -rw-r--r-- | indoteknik_api/controllers/__init__.py | 3 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v3/__init__.py | 1 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v3/product.py | 18 | ||||
| -rw-r--r-- | indoteknik_custom/models/solr/apache_solr.py | 4 | ||||
| -rw-r--r-- | indoteknik_custom/models/solr/product_product.py | 7 | ||||
| -rw-r--r-- | indoteknik_custom/models/solr/product_template.py | 2 |
6 files changed, 28 insertions, 7 deletions
diff --git a/indoteknik_api/controllers/__init__.py b/indoteknik_api/controllers/__init__.py index 01dde20f..237f4135 100644 --- a/indoteknik_api/controllers/__init__.py +++ b/indoteknik_api/controllers/__init__.py @@ -1,3 +1,4 @@ from . import controller from . import api_v1 -from . import api_v2
\ No newline at end of file +from . import api_v2 +from . import api_v3
\ No newline at end of file diff --git a/indoteknik_api/controllers/api_v3/__init__.py b/indoteknik_api/controllers/api_v3/__init__.py new file mode 100644 index 00000000..23275437 --- /dev/null +++ b/indoteknik_api/controllers/api_v3/__init__.py @@ -0,0 +1 @@ +from . import product
\ No newline at end of file diff --git a/indoteknik_api/controllers/api_v3/product.py b/indoteknik_api/controllers/api_v3/product.py new file mode 100644 index 00000000..3df34dc6 --- /dev/null +++ b/indoteknik_api/controllers/api_v3/product.py @@ -0,0 +1,18 @@ +from .. import controller +from odoo import http +from odoo.http import request + +class V3Product(controller.Controller): + prefix = '/api/v3/' + + @http.route(prefix + 'product/<id>', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized() + def get_product_solr_flag(self, **kw): + solr_model = request.env['apache.solr'] + + id = kw.get('id') + + products = request.env['product.template'].browse(int(id)) + result = products.solr_results(detail=True) + + return self.response(result, headers=[('Cache-Control', 'max-age=3600, public')])
\ No newline at end of file diff --git a/indoteknik_custom/models/solr/apache_solr.py b/indoteknik_custom/models/solr/apache_solr.py index 518280ac..fd4928e7 100644 --- a/indoteknik_custom/models/solr/apache_solr.py +++ b/indoteknik_custom/models/solr/apache_solr.py @@ -17,13 +17,13 @@ class ApacheSolr(models.Model): _order = 'id desc' def connect(self, schema): - env = config.get('solr_env', 'development') + env = config.get('solr_env', 'production') url = '' if env == 'development': url = 'http://192.168.23.5:8983/solr/' elif env == 'production': - url = 'http://10.148.0.5:8983/solr/' + url = 'http://34.101.189.218:8983/solr/' return pysolr.Solr(url + schema, always_commit=True, timeout=30) diff --git a/indoteknik_custom/models/solr/product_product.py b/indoteknik_custom/models/solr/product_product.py index 48ee9daa..88ab8dd5 100644 --- a/indoteknik_custom/models/solr/product_product.py +++ b/indoteknik_custom/models/solr/product_product.py @@ -142,7 +142,7 @@ class ProductProduct(models.Model): 'name': doc.get('name_s'), 'image': doc.get('image_s'), }, - 'code': doc.get('default_code_s'), + 'code': doc.get('default_code_s', ''), 'name': doc.get('display_name_s'), 'price': { 'price': doc.get('price_f'), @@ -151,9 +151,10 @@ class ProductProduct(models.Model): }, 'stock': doc.get('stock_total_f'), 'weight': doc.get('weight_f'), - 'manufacture': None + 'manufacture': None, + 'is_flashsale': True if flashsale else False } - + manufacture_id = doc.get('manufacture_id_i') if manufacture_id: result['manufacture'] = { diff --git a/indoteknik_custom/models/solr/product_template.py b/indoteknik_custom/models/solr/product_template.py index 9950c93a..e212c709 100644 --- a/indoteknik_custom/models/solr/product_template.py +++ b/indoteknik_custom/models/solr/product_template.py @@ -193,7 +193,7 @@ class ProductTemplate(models.Model): 'categories': [], 'flash_sale': { 'remaining_time': flashsale._remaining_time_in_second() or 0, - 'tag': flashsale.flashsale_tag or None + 'tag': doc.get('flashsale_tag_s') }, 'lowest_price': { 'price': doc.get('price_f'), |
