summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-07-16 17:16:26 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-07-16 17:16:26 +0700
commit8c4bf3e27b2491955a3f94fa3f3478da6d23fea2 (patch)
tree996f2353884e17ab9ea82d1873af910446f2ea55
parentbe39266e634e750c553fe004a067dd1b8024dfc4 (diff)
<iman> update tampilan untuk category management
-rwxr-xr-xindoteknik_custom/models/product_public_category.py7
-rw-r--r--indoteknik_custom/models/solr/website_categories_homepage.py22
-rw-r--r--indoteknik_custom/models/website_categories_homepage.py26
-rwxr-xr-xindoteknik_custom/views/product_public_category.xml1
-rw-r--r--indoteknik_custom/views/website_categories_homepage.xml26
5 files changed, 58 insertions, 24 deletions
diff --git a/indoteknik_custom/models/product_public_category.py b/indoteknik_custom/models/product_public_category.py
index 91028ae0..a6390f56 100755
--- a/indoteknik_custom/models/product_public_category.py
+++ b/indoteknik_custom/models/product_public_category.py
@@ -1,17 +1,18 @@
-from odoo import fields, models
+from odoo import fields, models, api
class ProductPublicCategory(models.Model):
_inherit = "product.public.category"
x_studio_field_4qhoN = fields.Boolean(string="Tampil di Index")
- # x_studio_field_5RdHI = fields.Many2many("product.template", string="Product Template")
x_studio_field_7bVEO = fields.Many2many("x_banner.banner", string="Banner Index")
x_studio_field_BfNp2 = fields.Char(string="Nama Alias")
x_studio_field_d1HS4 = fields.Char(string="Name 2")
x_studio_field_f54P2 = fields.Char(string="Name 3")
english_name = fields.Char(string="English Name")
+ image = fields.Binary(string='Image')
parent_frontend_id = fields.Many2one('product.public.category', string='Parent Frontend Category', index=True)
child_frontend_id = fields.One2many('product.public.category', 'parent_frontend_id', string='Children Frontend Categories')
+ child_frontend_id2 = fields.Many2many('product.public.category', relation='website_categories_child_frontend_rel', string='Category Level 3', help="Cari manual Category level 3")
sequence_frontend = fields.Integer(help="Gives the sequence order when displaying a list of product categories.", index=True)
-# check
+
diff --git a/indoteknik_custom/models/solr/website_categories_homepage.py b/indoteknik_custom/models/solr/website_categories_homepage.py
index 75d84e73..70c7860d 100644
--- a/indoteknik_custom/models/solr/website_categories_homepage.py
+++ b/indoteknik_custom/models/solr/website_categories_homepage.py
@@ -2,6 +2,10 @@ from odoo import models, fields, api
from datetime import datetime
import json
+import logging
+
+_logger = logging.getLogger(__name__)
+
class WebsiteCategoriesHomepage(models.Model):
_inherit = 'website.categories.homepage'
@@ -56,6 +60,15 @@ class WebsiteCategoriesHomepage(models.Model):
for category in self:
if category.status == 'tidak_tayang':
continue
+
+ category_id2_data = [
+ {
+ x.id: {
+ 'child_frontend_id_i': [child.id for child in x.child_frontend_id]
+ }
+ }
+ for x in category.category_id2
+ ]
document = solr_model.get_doc('product_category_homepage', category.id)
document.update({
@@ -65,12 +78,13 @@ class WebsiteCategoriesHomepage(models.Model):
'image_s': self.env['ir.attachment'].api_image('website.categories.homepage', 'image', category.id),
'sequence_i': category.sequence or '',
'url_s': category.url or '',
- 'product_ids': [x.id for x in category.product_ids]
+ 'category_id2': category_id2_data,
})
- self.solr().add([document])
- category.update_last_update_solr()
+ _logger.info('Category %s synchronized to Solr with document: %s', category.id, json.dumps(document))
+ # self.solr().add([document])
+ # category.update_last_update_solr()
- self.solr().commit()
+ # self.solr().commit()
# def _sync_delete_solr(self):
# for rec in self:
diff --git a/indoteknik_custom/models/website_categories_homepage.py b/indoteknik_custom/models/website_categories_homepage.py
index a0fc1011..b7e18694 100644
--- a/indoteknik_custom/models/website_categories_homepage.py
+++ b/indoteknik_custom/models/website_categories_homepage.py
@@ -1,11 +1,11 @@
-from odoo import fields, models
-
+from odoo import fields, models, api
class WebsiteCategoriesHomepage(models.Model):
_name = 'website.categories.homepage'
_rec_name = 'category_id'
- category_id = fields.Many2one('product.public.category', string='Category', help='table ecommerce category')
+ category_id = fields.Many2one('product.public.category', string='Category Level 1', help='table ecommerce category',domain=lambda self: self._get_default_category_domain())
+ category_id2 = fields.Many2many(comodel_name='product.public.category', relation='website_categories_category_id2_rel', string='Category Level 2', copy=False)
image = fields.Binary(string='Image')
url = fields.Char(string='URL')
sequence = fields.Integer(string='Sequence')
@@ -13,4 +13,22 @@ class WebsiteCategoriesHomepage(models.Model):
('tayang', 'Tayang'),
('tidak_tayang', 'Tidak Tayang')
], string='Status')
- product_ids = fields.Many2many('product.template', string='Product Template')
+
+ @api.onchange('category_id')
+ def _onchange_category_id(self):
+ domain = {}
+ self.category_id2 = [(5, 0, 0)]
+ if self.category_id:
+ domain['category_id2'] = [('parent_frontend_id', '=', self.category_id.id)]
+ else:
+ domain['category_id2'] = []
+
+ return {'domain': domain}
+
+
+ @api.model
+ def _get_default_category_domain(self):
+ return [('parent_id', '=', False)]
+
+
+
diff --git a/indoteknik_custom/views/product_public_category.xml b/indoteknik_custom/views/product_public_category.xml
index e0161acf..a45e0a2e 100755
--- a/indoteknik_custom/views/product_public_category.xml
+++ b/indoteknik_custom/views/product_public_category.xml
@@ -19,6 +19,7 @@
<field name="website_meta_description"/>
<!-- <field name="image_1024" string="Image Small" widget="image"/>-->
<field name="x_studio_field_4qhoN"/>
+ <field name="image" widget="image"/>
<field name="sequence_frontend"/>
<field name="parent_frontend_id"/>
</xpath>
diff --git a/indoteknik_custom/views/website_categories_homepage.xml b/indoteknik_custom/views/website_categories_homepage.xml
index aa54ca7a..f9c896bf 100644
--- a/indoteknik_custom/views/website_categories_homepage.xml
+++ b/indoteknik_custom/views/website_categories_homepage.xml
@@ -16,7 +16,6 @@
<field name="category_id"/>
<field name="url"/>
<field name="status"/>
- <field name="last_update_solr"/>
</tree>
</field>
</record>
@@ -31,17 +30,18 @@
<group>
<field name="sequence"/>
<field name="category_id"/>
- <field name="image" widget="image"/>
+ <field name="category_id2" widget="many2many_tags"/>
+ <field name="image" widget="image" />
<field name="url"/>
<field name="status"/>
- <field name="last_update_solr" readonly="1" />
</group>
</group>
<notebook>
- <page string="Products" name="product_ids">
- <field name="product_ids" domain="[('sale_ok', '=', True)]">
- <tree>
- <field name="display_name" />
+ <page string="Detail category">
+ <field name="category_id2">
+ <tree editable="bottom">
+ <field name="name"/>
+ <field name="child_frontend_id2" widget="many2many_tags"/>
</tree>
</field>
</page>
@@ -60,11 +60,11 @@
</record>
<menuitem
- id="website_categories_homepage"
- name="Website Categories Homepage"
- parent="website_sale.menu_orders"
- sequence="1"
- action="website_categories_homepage_action"
+ id="website_categories_homepage"
+ name="Website Categories Homepage"
+ parent="website_sale.menu_orders"
+ sequence="1"
+ action="website_categories_homepage_action"
/>
</data>
-</odoo> \ No newline at end of file
+</odoo>