From f371d548f434fac43595dffd9125f1d63f978157 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 1 Aug 2023 16:16:24 +0700 Subject: Add sequence and for_week on banner --- indoteknik_api/controllers/api_v1/banner.py | 17 +++++++++++++---- indoteknik_custom/models/x_banner_banner.py | 9 ++++++++- indoteknik_custom/views/x_banner_banner.xml | 29 ++++++++++++++++------------- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/banner.py b/indoteknik_api/controllers/api_v1/banner.py index 1bd0fea6..79aa5fa5 100644 --- a/indoteknik_api/controllers/api_v1/banner.py +++ b/indoteknik_api/controllers/api_v1/banner.py @@ -1,6 +1,7 @@ from .. import controller from odoo import http from odoo.http import request +from datetime import datetime class Banner(controller.Controller): @@ -13,14 +14,17 @@ class Banner(controller.Controller): type = kw.get('type') limit = int(kw.get('limit', 0)) offset = int(kw.get('offset', 0)) - order = kw.get('order') - if not order: - order = 'write_date DESC' + order = kw.get('order', 'write_date DESC') query = [('x_status_banner', '=', 'tayang')] if type: query += [('x_banner_category.x_studio_field_KKVl4', '=', type)] + week_number = self.get_week_number_of_current_month() + if type == 'index-a-1': + order = 'sequence ASC' + query += [('for_week', 'in', [week_number, False])] + if manufacture_id: query += [('x_relasi_manufacture', '=', int(manufacture_id))] @@ -35,4 +39,9 @@ class Banner(controller.Controller): 'image': request.env['ir.attachment'].api_image('x_banner.banner', 'x_banner_image', banner.id), }) - return self.response(data, headers=[('Cache-Control', 'max-age=3600, public')]) \ No newline at end of file + return self.response(data, headers=[('Cache-Control', 'max-age=3600, public')]) + + def get_week_number_of_current_month(self): + today = datetime.now().day + week_number = (today - 1) // 7 + 1 + return min(week_number, 4) \ No newline at end of file diff --git a/indoteknik_custom/models/x_banner_banner.py b/indoteknik_custom/models/x_banner_banner.py index c34b7634..a9de2067 100755 --- a/indoteknik_custom/models/x_banner_banner.py +++ b/indoteknik_custom/models/x_banner_banner.py @@ -16,4 +16,11 @@ class XBannerBanner(models.Model): x_status_banner = fields.Selection([ ('tayang', 'Tayang'), ('tidak_tayang', 'Tidak Tayang') - ], string="Status") \ No newline at end of file + ], string="Status") + sequence = fields.Integer(string='Sequence') + for_week = fields.Selection([ + ('1', 1), + ('2', 2), + ('3', 3), + ('4', 4) + ], string='For Week') \ No newline at end of file diff --git a/indoteknik_custom/views/x_banner_banner.xml b/indoteknik_custom/views/x_banner_banner.xml index 4f3f1911..10c762af 100755 --- a/indoteknik_custom/views/x_banner_banner.xml +++ b/indoteknik_custom/views/x_banner_banner.xml @@ -5,12 +5,13 @@ x_banner.banner - - - - - - + + + + + + + @@ -23,15 +24,17 @@ - - - - - + + + + + + + - - + + -- cgit v1.2.3