# -*- 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/'], 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/', 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("参数错误")