# -*- 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): parent_id = self.env["tx.data.dict"].search([("code", "=", "ys_technical_type")], limit=1) return [("parent_id", "=", parent_id.id), ("category", "=", "value")] def _domain_industry_ids(self): parent_id = self.env["tx.data.dict"].search([("code", "=", "ys_industry_type")], limit=1) return [("parent_id", "=", parent_id.id), ("category", "=", "value")] def _domain_tag_ids(self): parent_id = self.env["tx.data.dict"].search([("code", "=", "pub_tags")], limit=1) return [("parent_id", "=", parent_id.id), ("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) contact_person = fields.Char(string="联系人") contact_email = fields.Char(string="联系人邮箱") state = fields.Selection([ ("draft", "草稿"), ("approve", "待审核"), ("done", "通过"), ("reject", "驳回")], string="状态", default="approve") 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": "done"}) def action_reject(self): self.write({"state": "reject"}) class TXDemandScanned(models.Model): _name = "tx.demand.scanned" _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '盖章扫描件' _order = "id desc" company_name = fields.Char(string="企业名称") contact_name = fields.Char(string="联系人姓名") contact_position = fields.Char(string="联系人职务") contact_phone = fields.Char(string="联系人电话") scanned_file = fields.Binary(string="扫描文件") scanned_file_name = fields.Char(string="扫描文件名称") state = fields.Selection([("1", "待审核"), ("2", "通过"), ("2", "不通过")], string="状态", default="1") class TxRequirementCollectionConfiguration(models.Model): _name = 'tx.requirement.collection.configuration' _inherit = ['mail.thread', 'mail.activity.mixin'] _description = '需求场景征集配置' _order = "id desc" name = fields.Char(string='名称', tracking=True) state = fields.Selection([("1", "开启"), ("2", "关闭")], string="状态", default="1")