164 lines
6.8 KiB
Python
164 lines
6.8 KiB
Python
# -*- 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)
|