summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-08-01 16:16:24 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-08-01 16:16:24 +0700
commitf371d548f434fac43595dffd9125f1d63f978157 (patch)
tree66f276000d8f8e7d51799e6721788eb579dc5ef2
parenta58a6148cb903cab6f34a4b5084df98436819c85 (diff)
Add sequence and for_week on banner
-rw-r--r--indoteknik_api/controllers/api_v1/banner.py17
-rwxr-xr-xindoteknik_custom/models/x_banner_banner.py9
-rwxr-xr-xindoteknik_custom/views/x_banner_banner.xml29
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 @@
<field name="model">x_banner.banner</field>
<field name="arch" type="xml">
<tree>
- <field name="id"/>
- <field name="x_name"/>
- <field name="x_banner_category"/>
- <field name="x_relasi_manufacture"/>
- <field name="x_url_banner"/>
- <field name="x_status_banner"/>
+ <field name="sequence" string="Seq" />
+ <field name="x_name" />
+ <field name="for_week" />
+ <field name="x_banner_category" />
+ <field name="x_relasi_manufacture" />
+ <field name="x_url_banner" />
+ <field name="x_status_banner" />
</tree>
</field>
</record>
@@ -23,15 +24,17 @@
<sheet>
<group>
<group>
- <field name="x_name"/>
- <field name="x_banner_category"/>
- <field name="x_relasi_manufacture"/>
- <field name="x_url_banner"/>
- <field name="x_status_banner"/>
+ <field name="x_name" />
+ <field name="x_banner_category" />
+ <field name="x_relasi_manufacture" />
+ <field name="x_url_banner" />
+ <field name="x_status_banner" />
+ <field name="sequence" />
+ <field name="for_week" />
</group>
<group>
- <field name="background_color"/>
- <field name="x_banner_image" widget="image"/>
+ <field name="background_color" />
+ <field name="x_banner_image" widget="image" />
</group>
</group>
</sheet>