# -*- coding: utf-8 -*- import logging from odoo import http, tools from .tool import MakeResponse _logger = logging.getLogger(__name__) class activeManagement(http.Controller): @http.route(['/active_management'], type='http', auth="public", website=True) def list(self, **kw): return http.request.render('tx_cms.activeManagement', {}) @http.route(['/active_management_data', '/active_management_data/page/'], type='http', auth="public", website=True) def listData(self, good_id=0, page=1, **kw): active_obj = http.request.env["tx.active.management"].sudo() _post_per_page = 9 page = int(page) goodList = [] good_id = int(good_id) good_ids = active_obj.good_ids.sudo().search([("code", "=", "GF")])._get_dict_values() for index, item in enumerate(good_ids): item["active"] = True if item["id"] == good_id else False goodList.append(item) domain = [] if good_id: domain.append(("good_ids", "in", [good_id])) activeAll = active_obj.search(domain) pager = tools.lazy( lambda: http.request.website.pager(url='/active_management_data', total=activeAll.__len__(), page=page, step=_post_per_page, scope=_post_per_page, url_args=kw)) activeData = activeAll[(page - 1) * _post_per_page:page * _post_per_page] records = [] for active in activeData: records.append({ "id": active.id, "imgUrl": http.request.website.image_url(active, 'img'), "name": active.name, "chapters": active.chapters, "goodIds": [good_id.name for good_id in active.good_ids], }) return MakeResponse.success({ "goodList": goodList, "records": records, "good_id": good_id, "pager": pager._value, }) @http.route('/active_management_details/', type='http', auth="public", website=True) def object(self, obj, **kw): return http.request.render('tx_cms.activeManagementDetails', { 'object': obj }) @http.route('/active_management/details', methods=['get'], auth='public', website=True) def record_details(self, recordId, **kw): record_obj = http.request.env["tx.active.management"].sudo() obj = record_obj.sudo().browse([int(recordId)]) return MakeResponse.success({ "name": obj.name, "author": obj.author, "content": obj.content, })