135 lines
5.4 KiB
Python
135 lines
5.4 KiB
Python
# -*- 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/<int: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/<model("tx.policy.xiaolingtong"):obj>', 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)
|
|
|
|
|