# -*- coding: utf-8 -*- import math import logging import datetime from odoo import http, tools from .tool import MakeResponse _logger = logging.getLogger(__name__) class policyXiaoLingTong(http.Controller): @http.route(['/policy_xiaolingtong'], type='http', auth="public",website=True) def list(self, **kw): return http.request.render('tx_cms_upgrade.policyXiaolingtong', {}) @http.route(['/policy_xiaolingtong_data', '/policy_xiaolingtong_data/page/'], type='http', auth="public", website=True) def listData(self, page=1, **kw): policy_obj = http.request.env["tx.policy.xiaolingtong"].sudo() _post_per_page = 10 page = int(page) policyDomain = [] policyData = policy_obj.sudo().search(policyDomain) pager = tools.lazy( lambda: http.request.website.pager(url='/policy_xiaolingtong_data', total=policyData.__len__(), page=page, step=_post_per_page, scope=_post_per_page, url_args=kw)) policyRecords = policyData[(page - 1) * _post_per_page:page * _post_per_page] records = [] for policy in policyRecords: records.append({ "id": policy.id, "imgUrl": http.request.website.image_url(policy, 'img'), "name": policy.name, "startDate": f"""{policy.start_date.year}年{policy.start_date.month}月{policy.start_date.day}日""", "endDate": f"""{policy.end_date.year}年{policy.end_date.month}月{policy.end_date.day}日""", }) return MakeResponse.success({ "records": records, "pager": pager._value, }) @http.route('/policy_xiaolingtong_details/', type='http', auth="public", website=True) def object(self, obj, **kw): return http.request.render('tx_cms_upgrade.policyXiaolingtongDetails', { 'object': obj }) @http.route('/policy_xiaolingtong/details', methods=['get'], auth='public', website=True) def record_details(self, recordId, **kw): record_obj = http.request.env["tx.policy.xiaolingtong"].sudo() obj = record_obj.sudo().browse([int(recordId)]) return MakeResponse.success({ "name": obj.name, "startDate": obj.start_date.__str__(), "endDate": obj.end_date.__str__(), "content": obj.content, }) # 有数了 -- 政策小灵通 列表 @http.route("/tx_api/getArticles", methods=['GET'], auth='public', csrf=False, website=True, cors="*") def scenes_list(self, **kw): column = kw.get("column", "new3") page_num = kw.get("pageNum", 1) page_size = kw.get("pageSize", 10) if column in ['new3']: model_obj = http.request.env["tx.policy.xiaolingtong"].sudo() elif column == 'new1': model_obj = http.request.env["tx.insight.direct.trains"].sudo() elif column == 'news1': model_obj = http.request.env["tx.number.enterprises"].sudo() elif column == 'news2': model_obj = http.request.env["tx.digital.contest"].sudo() elif column == "partner": model_obj = http.request.env["tx.home.partner"].sudo() dataAll = model_obj.search([], limit=100) records = [] for data in dataAll: records.append({ "titleImage": f"""{data.get_base_url()}{http.request.website.image_url(data, 'img')}""", }) return MakeResponse.success(records) records = [] domain = [] total = model_obj.search_count(domain) offset = (page_num - 1) * page_size if page_num > 1 else 0 dataAll = model_obj.search(domain, offset, page_size) for data in dataAll: records.append({ "id": data.id, "titleImage": f"""{data.get_base_url()}{http.request.website.image_url(data, 'img')}""", "title": f"{data.name}", "displayDate": data.start_date.strftime("%Y-%m-%d") if data.start_date else datetime.date.today().strftime("%Y-%m-%d"), "txt": data.content }) pages = math.ceil(total / page_size) return MakeResponse.opontekr_success(records, total, pages) # 有数了 -- 政策小灵通 详情 @http.route("/tx_api/getArticle", methods=['GET'], auth='public', csrf=False, website=True, cors="*") def record_info(self, **kw): id = kw.get("id", 0) column = kw.get("column", "new3") if column == 'new3': model_obj = http.request.env["tx.policy.xiaolingtong"].sudo() elif column == 'new1': model_obj = http.request.env["tx.insight.direct.trains"].sudo() elif column == 'news1': model_obj = http.request.env["tx.number.enterprises"].sudo() elif column == 'news2': model_obj = http.request.env["tx.digital.contest"].sudo() domain = [("id", "=", id)] record = model_obj.search(domain) data = { "title": record.name, "displayDate": record.start_date.strftime("%Y-%m-%d") if record.start_date else datetime.date.today().strftime("%Y-%m-%d"), "txt": record.content } return MakeResponse.success(data)