summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2023-09-08 10:59:55 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2023-09-08 10:59:55 +0700
commit43f020d6f6ba271381e934c9e811f052de70a779 (patch)
treedefc0674d2c659ca4d5e24cbb22d103dcd130ec0
parentfa4f4e6f06ee77a2c448293c806d0f34e643f394 (diff)
fix flashsale product detail
-rw-r--r--indoteknik_api/controllers/__init__.py3
-rw-r--r--indoteknik_api/controllers/api_v3/__init__.py1
-rw-r--r--indoteknik_api/controllers/api_v3/product.py18
-rw-r--r--indoteknik_custom/models/solr/apache_solr.py4
-rw-r--r--indoteknik_custom/models/solr/product_product.py7
-rw-r--r--indoteknik_custom/models/solr/product_template.py2
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'),