summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/find_page.py62
1 files changed, 13 insertions, 49 deletions
diff --git a/indoteknik_custom/models/find_page.py b/indoteknik_custom/models/find_page.py
index c31b8334..467e30d1 100644
--- a/indoteknik_custom/models/find_page.py
+++ b/indoteknik_custom/models/find_page.py
@@ -2,15 +2,10 @@ from odoo import fields, models, api, tools, _
import logging
import re
import pysolr
-from odoo.exceptions import UserError
-import base64
-import xlrd, xlwt
-import io
-
_logger = logging.getLogger(__name__)
-# _cat_brand_solr = pysolr.Solr('http://10.148.0.5:8983/solr/url_category_brand/', always_commit=True, timeout=30)
-_cat_brand_solr_dev = pysolr.Solr('http://127.0.0.1:8983/solr/url_category_brand/', always_commit=True, timeout=30)
+_cat_brand_solr = pysolr.Solr('http://10.148.0.5:8983/solr/url_category_brand/', always_commit=True, timeout=30)
+# _cat_brand_solr_dev = pysolr.Solr('http://127.0.0.1:8983/solr/url_category_brand/', always_commit=True, timeout=30)
class BrandProductCategory(models.Model):
@@ -39,7 +34,6 @@ class FindPage(models.Model):
_inherit = ['mail.thread']
_rec_name = 'url'
- keywords = fields.Char('Keywords')
brand_id = fields.Many2one('x_manufactures', string='Brand')
category_id = fields.Many2one('product.public.category', string='Category', help='Bisa semua level Category')
url = fields.Char(string='Url')
@@ -56,14 +50,12 @@ class FindPage(models.Model):
'brand_id_i': url.brand_id.id,
'url_s': url.url
}
- if url.keywords:
- document['keywords_s']= url.keywords
documents.append(document)
catch = document
except Exception as e:
_logger.error('Failed to add document to Solr URL Category Brand: %s', e)
_logger.error('Document Data: %s', catch)
- _cat_brand_solr_dev.add(documents)
+ _cat_brand_solr.add(documents)
return True
def _get_category_hierarchy(self, category):
@@ -75,77 +67,49 @@ class FindPage(models.Model):
return categories
def _generate_url(self):
- keyword = self.keywords
+ categories = self.env['v.brand.product.category'].search([])
list_url = []
- if not keyword:
- categories = self.env['v.brand.product.category'].search([])
-
- for category in categories:
- category_hierarchy = self._get_category_hierarchy(category.category_id)
+ for category in categories:
+ category_hierarchy = self._get_category_hierarchy(category.category_id)
- for level, cat in enumerate(reversed(category_hierarchy), start=1):
- list_url.append(
- self._generate_mod_url(cat, category.brand_id) # keywords=None otomatis
- )
- else:
- brands = self.env['x_manufactures'].search([('x_name', 'ilike', keyword)])
- categories = self.env['product.public.category'].search([('name', 'ilike', keyword)])
+ for level, cat in enumerate(reversed(category_hierarchy), start=1):
+ list_url.append(self._generate_mod_url(cat, category.brand_id))
+ # print(f"Level {level}: {cat.name} {category.brand_id.x_name}")
- for brand in brands:
- for category in categories:
- list_url.append(
- self._generate_mod_url(category, brand, keywords=keyword)
- )
unique_list = []
for item in list_url:
if item not in unique_list:
unique_list.append(item)
-
count = 0
for item in unique_list:
- self._create_find_page(
- item['url'],
- item['category_id'],
- item['brand_id'],
- item.get('keywords')
- )
+ self._create_find_page(item['url'], item['category_id'], item['brand_id'])
count += 1
print(f"Total categories processed: {count}")
- def _create_find_page(self, url, category_id, brand_id, keywords=None):
+ def _create_find_page(self, url, category_id, brand_id):
param = {
'url': url,
'category_id': category_id,
'brand_id': brand_id,
}
- if keywords:
- param['keywords'] = keywords
find_page = self.env['web.find.page'].create(param)
_logger.info('Created Web Find Page %s' % find_page.id)
- def _generate_mod_url(self, category, brand, keywords=None):
+ def _generate_mod_url(self, category, brand):
# generate_url = 'https://indoteknik.com/shop/find/category-brand' example
cleaned_category = re.sub(r'[^\w\s]', '', category.name)
cleaned_brand = re.sub(r'[^\w\s]', '', brand.x_name)
cleaned_combined = cleaned_category+' '+cleaned_brand
cleaned_combined = cleaned_combined.replace(' ', '-')
cleaned_combined = cleaned_combined.replace('--', '-')
- if keywords:
- clean_keyword = re.sub(r'\s+', '-', keywords.strip().lower())
- # url = f"https://indoteknik.com/shop/find/key={clean_keyword}"
- url = f"http://localhost:2100/shop/find/key={clean_keyword}"
- else:
- url = 'http://localhost:2100/shop/find/'+cleaned_combined
- # url = 'https://indoteknik.com/shop/find/'+cleaned_combined
+ url = 'https://indoteknik.com/shop/find/'+cleaned_combined
url = url.lower()
result = {
'url': url,
'category_id': category.id,
'brand_id': brand.id
}
- if keywords:
- result['keywords'] = keywords
# print(url)
# param = {
# 'brand_id': brand.id,