OdooDigitizationService/addons/tx_cms_upgrade/controllers/capability_diagnosis.py

107 lines
4.2 KiB
Python

# -*- coding: utf-8 -*-
import json
import math
import logging
import datetime
from odoo import http, tools
from .tool import MakeResponse
_logger = logging.getLogger(__name__)
class capabilityDiagnosis(http.Controller):
@http.route(['/capability_diagnosis'], type='http', auth="public", website=True)
def list(self, **kw):
return http.request.render('tx_cms_upgrade.capabilityDiagnosis', {})
@http.route(['/capability_diagnosis_data', '/capability_diagnosis_data/page/<int:page>'], type='http', auth="public",
website=True)
def listData(self, page=1, **kw):
diagnosis_obj = http.request.env["tx.capability.diagnosis"].sudo()
_post_per_page = 10
page = int(page)
diagnosisAll = diagnosis_obj.search([])
pager = tools.lazy(
lambda: http.request.website.pager(url='/capability_diagnosis_data', total=diagnosisAll.__len__(),
page=page, step=_post_per_page, scope=_post_per_page,
url_args=kw))
diagnosisData = diagnosisAll[
(page - 1) * _post_per_page:page * _post_per_page]
records = []
for diagnosis in diagnosisData:
records.append({
"imgUrl": http.request.website.image_url(diagnosis, 'img'),
"id": diagnosis.id,
"name": diagnosis.name,
"state": diagnosis.get_state_value(diagnosis.state),
"diagnosisRange": diagnosis.diagnosis_range,
"briefIntroduction": diagnosis.brief_introduction
})
return MakeResponse.success({
"records": records,
"pager": pager._value,
})
@http.route('/capability_diagnosis_details/<model("tx.capability.diagnosis"):obj>', type='http', auth="public",
website=True)
def object(self, obj, **kw):
return http.request.render('tx_cms_upgrade.capabilityDiagnosisDetails', {
'object': obj
})
# 有数了 -- 能力诊断 列表
@http.route("/tx_base/api/diagnosis/list", methods=['POST'], auth='public', csrf=False, website=True, cors="*")
def scenes_list(self, **kw):
params = json.loads(http.request.httprequest.data.decode("utf-8"))
page_num = params.get("pageNum", 1)
page_size = params.get("pageSize", 10)
model_obj = http.request.env["tx.capability.diagnosis"].sudo()
records = []
domain = []
offset = (page_num - 1) * page_size if page_num > 1 else 0
total = model_obj.search_count(domain)
dataAll = model_obj.search(domain, offset, page_size)
for data in dataAll:
records.append({
"id": data.id,
"diagnosisAvatar": f"""{data.get_base_url()}{http.request.website.image_url(data, 'img')}""",
"diagnosisName": data.name,
"status": data.get_state_value(data.state),
"company": data.diagnosis_range,
"diagnosisDescription": data.brief_introduction
})
pages = math.ceil(total / page_size)
return MakeResponse.opontekr_success(records, total, pages)
# 有数了 -- 能力诊断 详情
@http.route("/tx_base/api/diagnosis/info", methods=['GET'], auth='public', csrf=False, website=True, cors="*")
def record_info(self, **kwargs):
try:
diagnosisId = kwargs.get("diagnosisId", False)
model_obj = http.request.env["tx.capability.diagnosis"].sudo()
record = model_obj.search([("id", "=", diagnosisId)])
data = {
"diagnosisId": record.id,
"diagnosisName": record.name,
"company": record.guide_company_name,
"guideUnit": record.guide_company_name,
"implementUnit": record.implement_company_name,
"supportUnit": record.support_company_name,
"diagnosisAccordance": record.foundation,
"diagnosisContent": record.content,
}
return MakeResponse.success(data)
except Exception as e:
_logger.error(e)
return MakeResponse.error("参数错误")