summaryrefslogtreecommitdiff
path: root/indoteknik_custom
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-06 09:31:28 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-06 09:31:28 +0700
commit94be2756aa2ab4c5a403877e9085eab344468f1a (patch)
tree5d68224e1a496c5020e1632ab2ca5794bd762c49 /indoteknik_custom
parent1b55d65464b9789164ba45bdef03c56428e026f2 (diff)
<iman> update category management
Diffstat (limited to 'indoteknik_custom')
-rw-r--r--indoteknik_custom/models/solr/website_categories_management.py44
-rw-r--r--indoteknik_custom/models/website_categories_management.py4
-rw-r--r--indoteknik_custom/views/website_categories_management.xml9
3 files changed, 37 insertions, 20 deletions
diff --git a/indoteknik_custom/models/solr/website_categories_management.py b/indoteknik_custom/models/solr/website_categories_management.py
index fe85f8e7..1f4caac3 100644
--- a/indoteknik_custom/models/solr/website_categories_management.py
+++ b/indoteknik_custom/models/solr/website_categories_management.py
@@ -65,41 +65,44 @@ class WebsiteCategoriesHomepage(models.Model):
continue
# Prepare Level 1 document
- document = solr_model.get_doc('category_management', category.id)
- document.update({
+ document = {
'id': category.id,
+ 'sequence': category.sequence or '',
'category_id_i': category.category_id.id,
- 'name_s': category.category_id.name,
- 'image_s': self.env['ir.attachment'].api_image('product.public.category', 'image_1920', category.category_id.id),
- 'sequence_i': category.sequence or '',
- 'numFound_i': len(category.category_id.product_tmpl_ids),
- })
+ 'name': category.category_id.name,
+ 'numFound': len(category.category_id.product_tmpl_ids),
+ 'image': self.env['ir.attachment'].api_image(
+ 'product.public.category', 'image_1920', category.category_id.id
+ ),
+ 'categories': []
+ }
# Prepare Level 2 documents
- level_2_docs = []
for category_level_2 in category.line_ids.mapped('category_id2'):
level_2_doc = {
'id_level_2': category_level_2.id,
- 'name_level_2': category_level_2.name,
- 'numFound_level_2': len(category_level_2.product_tmpl_ids),
- 'image_level_2': self.env['ir.attachment'].api_image('product.public.category', 'image_1920', category_level_2.id),
- 'categories_level_3': []
+ 'name': category_level_2.name,
+ 'numFound': len(category_level_2.product_tmpl_ids),
+ 'image': self.env['ir.attachment'].api_image(
+ 'product.public.category', 'image_1920', category_level_2.id
+ ),
+ 'child_frontend_id_i': []
}
# Prepare Level 3 documents
for category_level_3 in category_level_2.child_frontend_id2:
level_3_doc = {
'id_level_3': category_level_3.id,
- 'name_level_3': category_level_3.name,
- 'numFound_level_3': len(category_level_3.product_tmpl_ids),
- 'image_level_3': self.env['ir.attachment'].api_image('product.public.category', 'image_1920', category_level_3.id),
+ 'name': category_level_3.name,
+ 'numFound': len(category_level_3.product_tmpl_ids),
+ 'image': self.env['ir.attachment'].api_image(
+ 'product.public.category', 'image_1920', category_level_3.id
+ ),
}
- level_2_doc['categories_level_3'].append(level_3_doc)
-
- level_2_docs.append(level_2_doc)
+ level_2_doc['child_frontend_id_i'].append(level_3_doc)
- # Add Level 2 documents to Level 1 document
- document['categories_level_2'] = level_2_docs
+ # Add Level 2 document to Level 1
+ document['categories'].append(level_2_doc)
# Sync document with Solr
self.solr().add([document])
@@ -108,3 +111,4 @@ class WebsiteCategoriesHomepage(models.Model):
# Commit and optimize Solr changes
self.solr().commit()
self.solr().optimize()
+
diff --git a/indoteknik_custom/models/website_categories_management.py b/indoteknik_custom/models/website_categories_management.py
index e430ef5f..3b1db7dd 100644
--- a/indoteknik_custom/models/website_categories_management.py
+++ b/indoteknik_custom/models/website_categories_management.py
@@ -7,6 +7,10 @@ class WebsiteCategoriesManagement(models.Model):
category_id = fields.Many2one('product.public.category', string='Category Level 1', help='table ecommerce category', domain=lambda self: self._get_default_category_domain())
sequence = fields.Integer(string='Sequence')
+ category_id2 = fields.Many2many(comodel_name='product.public.category',
+ relation='website_categories_category_id2_rel',
+ column1='website_categories_homepage_id', column2='product_public_category_id',
+ string='Category Level 2', copy=False)
line_ids = fields.One2many('website.categories.management.line', 'management_id', string='Category Level 2 Lines', auto_join=True)
status = fields.Selection([
('tayang', 'Tayang'),
diff --git a/indoteknik_custom/views/website_categories_management.xml b/indoteknik_custom/views/website_categories_management.xml
index 6ad85944..6e01e923 100644
--- a/indoteknik_custom/views/website_categories_management.xml
+++ b/indoteknik_custom/views/website_categories_management.xml
@@ -29,6 +29,7 @@
<group>
<field name="sequence"/>
<field name="category_id"/>
+ <field name="category_id2" widget="many2many_tags"/>
<field name="status"/>
</group>
</group>
@@ -42,6 +43,14 @@
</tree>
</field>
</page>
+ <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>
</notebook>
</sheet>
</form>