diff options
| author | Mqdd <ahmadmiqdad27@gmail.com> | 2025-12-16 09:39:32 +0700 |
|---|---|---|
| committer | Mqdd <ahmadmiqdad27@gmail.com> | 2025-12-16 09:39:32 +0700 |
| commit | dcfbed94e24f7bf6fd06bd0404c1424af2a840be (patch) | |
| tree | b5aaca02fdb57d962a24f009194f7904a8c39e5e | |
| parent | 274a067754ae67bc0f7f77c4c079aa2634b8000c (diff) | |
<Miqdad> fix quey
| -rw-r--r-- | indoteknik_custom/models/keywords.py | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/indoteknik_custom/models/keywords.py b/indoteknik_custom/models/keywords.py index 3602be15..e0c7705c 100644 --- a/indoteknik_custom/models/keywords.py +++ b/indoteknik_custom/models/keywords.py @@ -71,31 +71,31 @@ class Keywords(models.Model): def generate_products(self): for record in self: - if not record.keywords: - continue - if record.skip: + if not record.keywords or record.skip: continue - keyword = "%" + record.keywords.strip() + "%" + keyword = f"%{record.keywords.strip()}%" - # Query dasar sql = """ - SELECT pp.id + SELECT DISTINCT pp.id FROM product_product pp JOIN product_template pt ON pt.id = pp.product_tmpl_id - LEFT JOIN product_public_category_product_template_rel rel + JOIN product_public_category_product_template_rel rel ON rel.product_template_id = pt.id - WHERE ( - pt.name ILIKE %s - OR pt.website_description ILIKE %s - AND pt.unpublished = False - AND pt.product_rating >= 8 - ) + WHERE + pp.active = true + AND COALESCE(pt.product_rating, 0) >= 8 + AND ( + pt.name ILIKE %s + OR COALESCE(pt.website_description, '') ILIKE %s + ) """ - params = [keyword, keyword] + params = [ + keyword, + keyword, + ] - # Filter kategori ke child if record.category_id: child_categs = self.env['product.public.category'].search([ ('id', 'child_of', record.category_id.id) @@ -103,14 +103,15 @@ class Keywords(models.Model): sql += " AND rel.product_public_category_id = ANY(%s)" params.append(child_categs.ids) - # Exec SQL self.env.cr.execute(sql, params) - rows = self.env.cr.fetchall() + rows = self.env.cr.fetchall() product_ids = [r[0] for r in rows] if not product_ids: - raise UserError("Tidak berhasil menemukan barang") + raise UserError( + f"Tidak berhasil menemukan barang untuk keyword '{record.keywords}'" + ) record.with_context(skip_generate=True).write({ 'product_ids': [(6, 0, product_ids)] @@ -121,7 +122,6 @@ class Keywords(models.Model): len(product_ids), record.keywords ) - def sync_solr(self): # solr_model = self.env['apache.solr'] documents = [] |
