1
0
forked from erp-dev/erp

fix: current_state has been changed to a computed property

This commit is contained in:
2025-11-19 10:23:17 +08:00
parent 7f822b0064
commit 400c0db6db
14 changed files with 964 additions and 87 deletions

View File

@@ -186,26 +186,32 @@ class BusinessObjectAdmin(admin.ModelAdmin):
@admin.display(description='当前状态', ordering='process')
def current_state_display(self, obj: models.BusinessObject):
from django.conf import settings
from . import services
current_state = obj.get_current_state()
overall_status = services.get_overall_status(obj)
if overall_status == 'not_started':
return '未开始'
elif overall_status == 'completed':
return f'已完成 ({current_state.name if current_state else "-"})'
elif current_state:
# 显示最后完成的状态
return f'进行中 (下一步: {current_state.name})'
overall_status = services.get_overall_status(obj)
mode = getattr(settings, 'STATEFLOW_CURRENT_STATE_MODE', 'NEXT')
if overall_status == 'completed':
return '已完成'
# 进行中状态
current_state = obj.get_current_state()
if current_state:
if mode == 'NEXT':
return f'进行中 (下一步: {current_state.name})'
else: # LAST
return f'进行中 (已完成: {current_state.name})'
return '-'
@admin.display(description='进度')
def progress(self, obj: models.BusinessObject):
return f"{obj.get_progress_percentage():.1f}%"
@admin.display(description='最后完成状态参数')
@admin.display(description='当前状态参数')
def params(self, obj: models.BusinessObject):
"""显示最后完成状态的参数"""
"""显示当前状态的参数(根据配置模式决定是最后完成的还是下一个待执行的)"""
current_state = obj.get_current_state()
if current_state:
params = current_state.parameters.all()