1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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')])
|