# -*- coding: utf-8 -*- from odoo import models, fields, api class TxBenchmarkingScenarios(models.Model): _name = 'tx.benchmarking.scenarios' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '标杆场景' _order = "id desc" def _domain_technical_ids(self): return [("parent_id", "=", self.env['ir.model.data']._xmlid_to_res_id('tx_cms.data_dict_technical_field')), ("category", "=", "value")] def _domain_industry_ids(self): return [("parent_id", "=", self.env['ir.model.data']._xmlid_to_res_id('tx_cms.data_dict_industry_field')), ("category", "=", "value")] def _domain_tag_ids(self): return [("parent_id", "=", self.env['ir.model.data']._xmlid_to_res_id('tx_cms.data_dict_category_tag')), ("category", "=", "value")] name = fields.Char(string='场景名称', tracking=True) company_name = fields.Char(string="公司名称", tracking=True) brief_introduction = fields.Html(string="场景简介", tracking=True) content = fields.Html(string="详情", tracking=True) technical_ids = fields.Many2many("tx.data.dict", "tx_scenarios_technical_ref", "scenarios_id", "technical_id", tracking=True, string="技术领域", domain=lambda self: self._domain_technical_ids()) industry_ids = fields.Many2many("tx.data.dict", "tx_scenarios_industry_ref", "scenarios_id", "industry_id", tracking=True, string="行业领域", domain=lambda self: self._domain_industry_ids()) tag_ids = fields.Many2many("tx.data.dict", "tx_scenarios_tag_ref", "scenarios_id", "tag_id", tracking=True, string="标签类型", domain=lambda self: self._domain_tag_ids()) recommend = fields.Boolean(string="是否推荐", default=False) remarks = fields.Text(string="备注") class TxCapabilityDiagnosis(models.Model): _name = 'tx.capability.diagnosis' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '能力诊断' _order = "id desc" img = fields.Image(string="图片", tracking=True) name = fields.Char(string='诊断名称', tracking=True) diagnosis_range = fields.Char(string="评估范围", tracking=True) foundation = fields.Char(string="评估依据", tracking=True) brief_introduction = fields.Html(string="诊断简介", tracking=True) guide_company_name = fields.Char(string="指导单位", tracking=True) implement_company_name = fields.Char(string="实施单位", tracking=True) support_company_name = fields.Char(string="支撑单位", tracking=True) content = fields.Html(string="诊断内容", tracking=True) state = fields.Selection([ ("draft", "未开始"), ("to_done", "进行中"), ("done", "完成"), ("cancel", "取消")], string="状态", default="draft", tracking=True) diagnosis_type = fields.Char(string="类型", tracking=True) remarks = fields.Text(string="备注", tracking=True) def get_state_value(self, state): selection = self._fields["state"].selection for s in selection: if state == s[0]: return s[1] return state def action_draft(self): self.write({"state": "draft"}) def action_to_done(self): self.write({"state": "to_done"}) def action_done(self): self.write({"state": "done"}) def action_cancel(self): self.write({"state": "cancel"}) class TxActivityExploration(models.Model): _name = 'tx.activity.exploration' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '活动探索' _order = "is_top DESC, id DESC" name = fields.Char(string='名称', tracking=True) img = fields.Image(string="图片", tracking=True) brief_introduction = fields.Html(string="简介", tracking=True) content = fields.Html(string="内容", tracking=True) start_date = fields.Date(string="开始日期", tracking=True) end_date = fields.Date(string="结束日期", tracking=True) is_top = fields.Boolean(string="是否置顶", default=False, tracking=True) remarks = fields.Text(string="备注", tracking=True) state = fields.Selection([("draft", "未开始"), ("to_do", "进行中"), ("done", "已结束")], string="搜索状态", default="draft", compute="_compute_s_state") def _compute_s_state(self): for r in self: if fields.Date.today() < r.start_date: state = "draft" elif fields.Date.today() > r.end_date: state = "done" else: state = "to_do" r.state = state def get_state_value(self, state): selection = self._fields["state"].selection for s in selection: if state == s[0]: return s[1] return state class TxCollectionDemandScenarios(models.Model): _name = 'tx.collection.demand.scenarios' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '需求场景征集' company_name = fields.Char(string="企业名称", tracking=True) name = fields.Char(string='需求场景名称', tracking=True) scenarios_type = fields.Char(string="类型", tracking=True) sub_territory = fields.Char(string="细分领域", tracking=True) describe = fields.Html(string="需求描述", tracking=True) scenarios_date = fields.Date(string="提交时间", tracking=True) img = fields.Image(string="需求图片", tracking=True) demand_file = fields.Binary(string="需求文件", tracking=True) demand_file_name = fields.Char(string="需求文件", tracking=True) ask = fields.Text(string="考核要求", tracking=True) content = fields.Html(string="交付内容", tracking=True) done_date = fields.Date(string="完成时间", tracking=True) amount = fields.Float(string="合同金额", tracking=True) cooperation_intention = fields.Html(string="签约合作意向", tracking=True) provide_company_name = fields.Char(string="方案提供方", tracking=True) state = fields.Selection([ ("draft", "草稿"), ("approve", "待审核"), ("pass", "通过"), ("reject", "驳回")], string="状态", default="draft") def action_draft(self): self.write({"state": "draft"}) def action_approve(self): self.write({"scenarios_date": fields.Date.today()}) self.write({"state": "approve"}) def action_pass(self): self.write({"state": "pass"}) def action_reject(self): self.write({"state": "reject"}) class TxRequirementCollectionConfiguration(models.Model): _name = 'tx.requirement.collection.configuration' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '需求场景征集配置' name = fields.Char(string='名称', tracking=True)