Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
beeba436
提交
beeba436
authored
3月 26, 2026
作者:
伍姿英
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release/3.10.0'
上级
a9d205ab
a25cb2c5
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
127 行增加
和
5 行删除
+127
-5
__manifest__.py
ccs_connect_tiktok/__manifest__.py
+1
-0
timer.xml
ccs_connect_tiktok/data/timer.xml
+15
-0
__init__.py
ccs_connect_tiktok/models/__init__.py
+1
-1
cc_node.py
ccs_connect_tiktok/models/cc_node.py
+14
-0
warn_config.py
ccs_connect_tiktok/models/warn_config.py
+0
-0
ir.model.access.csv
ccs_connect_tiktok/security/ir.model.access.csv
+4
-2
menu_view.xml
ccs_connect_tiktok/views/menu_view.xml
+2
-2
warn_config_views.xml
ccs_connect_tiktok/views/warn_config_views.xml
+90
-0
没有找到文件。
ccs_connect_tiktok/__manifest__.py
浏览文件 @
beeba436
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
'wizard/batch_input_ship_package_statu_wizard.xml'
,
'wizard/batch_input_ship_package_statu_wizard.xml'
,
'wizard/update_bl_status_wizard.xml'
,
'wizard/update_bl_status_wizard.xml'
,
'wizard/excel_wizard.xml'
,
'wizard/excel_wizard.xml'
,
'views/warn_config_views.xml'
,
# 'wizard/again_push_wizard.xml',
# 'wizard/again_push_wizard.xml',
# 'wizard/batch_push_tiktok.xml',
# 'wizard/batch_push_tiktok.xml',
# view
# view
...
...
ccs_connect_tiktok/data/timer.xml
浏览文件 @
beeba436
...
@@ -25,5 +25,19 @@
...
@@ -25,5 +25,19 @@
<field
name=
"doall"
eval=
"False"
/>
<field
name=
"doall"
eval=
"False"
/>
</record>
</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>
</data>
</odoo>
</odoo>
\ No newline at end of file
ccs_connect_tiktok/models/__init__.py
浏览文件 @
beeba436
...
@@ -12,5 +12,5 @@ from . import pda_scan_record
...
@@ -12,5 +12,5 @@ from . import pda_scan_record
from
.
import
bl_patrol
from
.
import
bl_patrol
from
.
import
cc_pallet
from
.
import
cc_pallet
from
.
import
warn_config
ccs_connect_tiktok/models/cc_node.py
浏览文件 @
beeba436
...
@@ -8,6 +8,20 @@ class CCNode(models.Model):
...
@@ -8,6 +8,20 @@ class CCNode(models.Model):
_name
=
'cc.node'
_name
=
'cc.node'
_inherit
=
'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'
)
tk_code
=
fields
.
Char
(
'TK Code'
,
help
=
'TK Code'
)
interval_minutes
=
fields
.
Integer
(
'Predecessor Node Interval (Minutes)'
,
default
=
20
,
interval_minutes
=
fields
.
Integer
(
'Predecessor Node Interval (Minutes)'
,
default
=
20
,
help
=
'Default interval time between predecessor nodes in minutes.'
)
# 前序节点间隔时间,默认20分钟
help
=
'Default interval time between predecessor nodes in minutes.'
)
# 前序节点间隔时间,默认20分钟
...
...
ccs_connect_tiktok/models/warn_config.py
0 → 100644
浏览文件 @
beeba436
差异被折叠。
点击展开。
ccs_connect_tiktok/security/ir.model.access.csv
浏览文件 @
beeba436
...
@@ -22,4 +22,7 @@ access_pda_scan_record_manager,pda.scan.record.manager,model_pda_scan_record,bas
...
@@ -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_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_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
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_warning_config_user,warning.config.user,model_warning_config,base.group_user,1,1,1,1
ccs_connect_tiktok/views/menu_view.xml
浏览文件 @
beeba436
...
@@ -6,14 +6,14 @@
...
@@ -6,14 +6,14 @@
id=
"menu_tt_api_log"
id=
"menu_tt_api_log"
name=
"TIKTOK推送日志"
parent=
""
name=
"TIKTOK推送日志"
parent=
""
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
sequence=
"2
1
"
action=
"action_ao_tt_api_log"
/>
sequence=
"2
2
"
action=
"action_ao_tt_api_log"
/>
<!-- 菜单项 -->
<!-- 菜单项 -->
<menuitem
id=
"menu_bl_patrol"
<menuitem
id=
"menu_bl_patrol"
name=
"提单巡查"
name=
"提单巡查"
action=
"action_bl_patrol"
action=
"action_bl_patrol"
sequence=
"2
2
"
sequence=
"2
3
"
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
/>
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
/>
...
...
ccs_connect_tiktok/views/warn_config_views.xml
0 → 100644
浏览文件 @
beeba436
<?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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论