summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/category_management.py
blob: c0ecc6b9845b4811207dd86ab1602f9e568fee72 (plain)
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')])