from odoo import http from odoo.http import request from .. import controller class CategoryManagement(controller.Controller): prefix = '/api/v1/' @http.route(prefix + 'categories_management', auth='public', methods=['GET', 'OPTIONS'], csrf=False) @controller.Controller.must_authorized() def get_categories_management(self, **kw): base_url = request.env['ir.config_parameter'].sudo().get_param('web.base.url') query = [('status', '=', 'tayang')] categories = request.env['website.categories.management'].search(query, order='sequence') data = [] for category in categories: category_id2_data = [] for x in category.category_id2: child_data = [ {'id_level_3': child.id, 'name': child.name, 'numFound': len(child.product_tmpl_ids.ids), 'image': request.env['ir.attachment'].api_image('product.public.category', 'image_1920', child.id)} for child in x.child_frontend_id2 ] category_id2_data.append({ 'id_level_2': x.id, 'name': x.name, 'numFound': len(x.product_tmpl_ids.ids), 'image': request.env['ir.attachment'].api_image('product.public.category', 'image_1920', x.id), 'child_frontend_id_i': child_data }) data.append({ 'id': category.id, 'sequence': category.sequence, 'category_id_i': category.category_id.id, 'name': category.category_id.name, 'numFound': len(category.category_id.product_tmpl_ids.ids) , 'image': request.env['ir.attachment'].api_image('product.public.category', 'image_1920', category.category_id.id), 'categories': category_id2_data, }) return self.response(data, headers=[('Cache-Control', 'max-age=3600, public')])