summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2025-12-02 10:41:46 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2025-12-02 10:41:46 +0700
commit9a16b32bb2fdd58739c410e7c4ea376ead340a32 (patch)
treed42e08614b47e605332936a7e033c4a7ec23052a
parentf21999829173fe8d2ef935f0564014fc04b8214e (diff)
<Miqdad> fix generate url
-rw-r--r--indoteknik_custom/models/find_page.py34
1 files changed, 26 insertions, 8 deletions
diff --git a/indoteknik_custom/models/find_page.py b/indoteknik_custom/models/find_page.py
index 561b15ee..46b69ff2 100644
--- a/indoteknik_custom/models/find_page.py
+++ b/indoteknik_custom/models/find_page.py
@@ -70,23 +70,41 @@ class FindPage(models.Model):
return categories
def _generate_url(self):
- categories = self.env['v.brand.product.category'].search([])
+ keyword = self.keywords
list_url = []
- for category in categories:
- category_hierarchy = self._get_category_hierarchy(category.category_id)
+ if not keyword:
+ categories = self.env['v.brand.product.category'].search([])
- 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 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 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['keywords'])
+ self._create_find_page(
+ item['url'],
+ item['category_id'],
+ item['brand_id'],
+ item.get('keywords')
+ )
count += 1
print(f"Total categories processed: {count}")
@@ -122,7 +140,7 @@ class FindPage(models.Model):
'brand_id': brand.id
}
if keywords:
- result['keywords_s'] = keywords
+ result['keywords'] = keywords
# print(url)
# param = {
# 'brand_id': brand.id,