mirror of
https://github.com/bringout/oca-ocb-accounting.git
synced 2026-04-21 01:22:06 +02:00
67 lines
2.8 KiB
Python
67 lines
2.8 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.http import request, route
|
|
|
|
from odoo.addons.product.controllers.catalog import ProductCatalogController
|
|
|
|
|
|
class ProductCatalogAccountController(ProductCatalogController):
|
|
|
|
@route('/product/catalog/get_sections', auth='user', type='jsonrpc', readonly=True)
|
|
def product_catalog_get_sections(self, res_model, order_id, child_field, **kwargs):
|
|
"""Return the sections which are in given order to be shown in the product catalog.
|
|
|
|
:param string res_model: The order model.
|
|
:param int order_id: The order id.
|
|
:param string child_field: The field name of the lines in the order model.
|
|
:rtype: list
|
|
:return: A list of dictionaries containing section information with following structure:
|
|
[
|
|
{
|
|
'id': int,
|
|
'name': string,
|
|
'sequence': int,
|
|
'line_count': int,
|
|
},
|
|
]
|
|
"""
|
|
order = request.env[res_model].browse(order_id)
|
|
return order.with_company(order.company_id)._get_sections(child_field, **kwargs)
|
|
|
|
@route('/product/catalog/create_section', auth='user', type='jsonrpc')
|
|
def product_catalog_create_section(
|
|
self, res_model, order_id, child_field, name, position, **kwargs,
|
|
):
|
|
"""Create a new section on the given order.
|
|
|
|
:param string res_model: The order model.
|
|
:param int order_id: The order id.
|
|
:param string child_field: The field name of the lines in the order model.
|
|
:param string name: The name of the section to create.
|
|
:param str position: The position of the section where it should be created, either 'top'
|
|
or 'bottom'.
|
|
:return: A dictionary with newly created section's 'id' and 'sequence'.
|
|
:rtype: dict
|
|
"""
|
|
order = request.env[res_model].browse(order_id)
|
|
return order.with_company(order.company_id)._create_section(
|
|
child_field, name, position, **kwargs,
|
|
)
|
|
|
|
@route('/product/catalog/resequence_sections', auth='user', type='jsonrpc')
|
|
def product_catalog_resequence_sections(
|
|
self, res_model, order_id, sections, child_field, **kwargs,
|
|
):
|
|
"""Reorder the sections of a given order.
|
|
|
|
param string res_model: The order model.
|
|
:param int order_id: The order id.
|
|
:param list sections: A list of section dictionaries with their sequence.
|
|
:param string child_field: The field name of the lines in the order model.
|
|
:return: A dictionary with new sequences of the sections.
|
|
:rtype: dict
|
|
"""
|
|
order = request.env[res_model].browse(order_id)
|
|
return order.with_company(order.company_id)._resequence_sections(
|
|
sections, child_field, **kwargs,
|
|
)
|