提交 beeba436 authored 作者: 伍姿英's avatar 伍姿英

Merge branch 'release/3.10.0'

......@@ -21,6 +21,7 @@
'wizard/batch_input_ship_package_statu_wizard.xml',
'wizard/update_bl_status_wizard.xml',
'wizard/excel_wizard.xml',
'views/warn_config_views.xml',
# 'wizard/again_push_wizard.xml',
# 'wizard/batch_push_tiktok.xml',
# view
......
......@@ -25,5 +25,19 @@
<field name="doall" eval="False"/>
</record>
<record id="cron_cron_warn_cc_order" model="ir.cron">
<field name="name">节点进度预警</field>
<field name="model_id" ref="ccs_connect_tiktok.model_warning_config"/>
<field name="state">code</field>
<field name="code">model.cron_warn_cc_order()</field>
<field name='interval_number'>30</field>
<field name='interval_type'>minutes</field>
<field name="numbercall">-1</field>
<field name="active" eval="True"/>
<field name="nextcall"
eval="(datetime.now() + timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
<field name="doall" eval="False"/>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -12,5 +12,5 @@ from . import pda_scan_record
from . import bl_patrol
from . import cc_pallet
from . import warn_config
......@@ -8,6 +8,20 @@ class CCNode(models.Model):
_name = 'cc.node'
_inherit = 'cc.node'
def name_get(self):
# 1. 如果 XML 视图里没有传这个 context,就走系统默认逻辑(只显示名字)
if not self.env.context.get('show_code_in_name'):
return super(CCNode, self).name_get()
# 2. 如果传了 context,说明是在预警配置页面,执行拼接逻辑
result = []
for record in self:
if record.tk_code:
name = f"{record.name}-{record.tk_code}"
else:
name = record.name
result.append((record.id, name))
return result
tk_code = fields.Char('TK Code', help='TK Code')
interval_minutes = fields.Integer('Predecessor Node Interval (Minutes)', default=20,
help='Default interval time between predecessor nodes in minutes.') # 前序节点间隔时间,默认20分钟
......
差异被折叠。
......@@ -22,4 +22,7 @@ access_pda_scan_record_manager,pda.scan.record.manager,model_pda_scan_record,bas
access_bl_patrol_user,bl.patrol.user,model_bl_patrol,base.group_user,1,0,0,0
access_bl_patrol_manager,bl.patrol.manager,model_bl_patrol,base.group_system,1,1,1,1
access_package_data_wizard_base.group_user,package_data_wizard base.group_user,ccs_connect_tiktok.model_package_data_wizard,base.group_user,1,1,1,1
\ No newline at end of file
access_package_data_wizard_base.group_user,package_data_wizard base.group_user,ccs_connect_tiktok.model_package_data_wizard,base.group_user,1,1,1,1
access_warning_config_user,warning.config.user,model_warning_config,base.group_user,1,1,1,1
......@@ -6,14 +6,14 @@
id="menu_tt_api_log"
name="TIKTOK推送日志" parent=""
groups="ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
sequence="21" action="action_ao_tt_api_log"/>
sequence="22" action="action_ao_tt_api_log"/>
<!-- 菜单项 -->
<menuitem id="menu_bl_patrol"
name="提单巡查"
action="action_bl_patrol"
sequence="22"
sequence="23"
groups="ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"/>
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_warning_config_form" model="ir.ui.view">
<field name="name">warning.config.form</field>
<field name="model">warning.config</field>
<field name="arch" type="xml">
<form string="预警配置">
<sheet>
<widget name="web_ribbon" title="归档" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<div class="oe_title">
<h1>
<field name="name" placeholder="请输入预警名称..."/>
</h1>
</div>
<group>
<group>
<field name="time_type" widget="radio"/>
<field name="time_point_id"
attrs="{
'invisible': [('time_type', '=', 'flight_landing')],
'required': [('time_type', '=', 'clearance_node')]
}" context="{'show_code_in_name': True}" options='{"always_reload": True}'/>
<field name="flight_landing_time"
attrs="{'invisible': [('time_type', '=', 'clearance_node')]}"/>
<field name="remaining_time"/>
</group>
<group>
<field name="unsynced_node_id" context="{'show_code_in_name': True}" options='{"always_reload": True}'/>
<field name="active" invisible="1"/>
</group>
</group>
<notebook>
<page string="预警原因" name="reason">
<field name="warning_reason" placeholder="请详细描述预警原因..."/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_warning_config_tree" model="ir.ui.view">
<field name="name">warning.config.tree</field>
<field name="model">warning.config</field>
<field name="arch" type="xml">
<tree string="预警配置">
<field name="name"/>
<field name="time_type"/>
<field name="time_point_id" attrs="{'invisible': [('time_type', '=', 'flight_landing')]}"/>
<field name="flight_landing_time" attrs="{'invisible': [('time_type', '=', 'clearance_node')]}"/>
<field name="remaining_time"/>
<field name="unsynced_node_id"/>
<field name="active" widget="boolean_toggle"/>
</tree>
</field>
</record>
<record id="view_warning_config_search" model="ir.ui.view">
<field name="name">warning.config.search</field>
<field name="model">warning.config</field>
<field name="arch" type="xml">
<search string="搜索预警配置">
<field name="name"/>
<field name="time_point_id"/>
<filter string="航班落地" name="type_flight" domain="[('time_type', '=', 'flight_landing')]"/>
<filter string="清关进度节点" name="type_clearance" domain="[('time_type', '=', 'clearance_node')]"/>
<separator/>
<filter string="归档" name="inactive" domain="[('active', '=', False)]"/>
</search>
</field>
</record>
<record id="action_warning_config" model="ir.actions.act_window">
<field name="name">预警配置</field>
<field name="res_model">warning.config</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
创建第一条预警配置
</p>
</field>
</record>
<menuitem id="menu_warning_config"
name="预警配置"
action="action_warning_config"
sequence="21" groups="base.group_system"/>
</odoo>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论