summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-03-13 13:29:42 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-03-13 13:29:42 +0700
commitc351c87e00120508b49a47178f7c27cdad187eaa (patch)
treeca1ac2f4678420789b62e2be880a1d2a114c246f /indoteknik_api/controllers/api_v1
parented9a8ebd0e3a16ac501da848fd4dbc5ae0ce6ff5 (diff)
<iman> cr get banner side by keyword
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/banner.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/banner.py b/indoteknik_api/controllers/api_v1/banner.py
index 83d0dc14..aea8f0d9 100644
--- a/indoteknik_api/controllers/api_v1/banner.py
+++ b/indoteknik_api/controllers/api_v1/banner.py
@@ -15,7 +15,8 @@ class Banner(controller.Controller):
limit = int(kw.get('limit', 0))
offset = int(kw.get('offset', 0))
order = kw.get('order', 'write_date DESC')
-
+ keyword = kw.get('keyword')
+
query = [('x_status_banner', '=', 'tayang')]
if type:
query += [('x_banner_category.x_studio_field_KKVl4', '=', type)]
@@ -25,9 +26,27 @@ class Banner(controller.Controller):
if manufacture_id:
query += [('x_relasi_manufacture', '=', int(manufacture_id))]
-
- banners = request.env['x_banner.banner'].search(query, limit=limit, offset=offset, order=order)
-
+
+ banner_kumpulan = []
+ banner_ids = set() # Set untuk menyimpan ID banner agar tidak duplikat
+
+ if keyword:
+ keyword_list = [word.strip() for word in keyword.split() if word.strip()] # Pisahkan berdasarkan spasi
+
+ for word in keyword_list:
+ keyword_query = query + [('x_keyword_banner', 'ilike', word)] # Buat query baru dengan keyword
+ banners = request.env['x_banner.banner'].search(keyword_query, limit=limit, offset=offset, order=order)
+
+ for banner in banners:
+ if banner.id not in banner_ids: # Pastikan tidak ada duplikasi
+ banner_kumpulan.append(banner)
+ banner_ids.add(banner.id)
+
+ if not keyword:
+ banners = request.env['x_banner.banner'].search(query, limit=limit, offset=offset, order=order)
+ else:
+ banners = banner_kumpulan if banner_kumpulan else request.env['x_banner.banner'].search(query, limit=limit, offset=offset, order=order)
+
week_number = self.get_week_number_of_current_month()
end_datas = []