工单过滤字段支持反向查询

This commit is contained in:
caoqianming 2023-03-14 16:03:44 +08:00
parent 5a3c380dff
commit 215b18314c
1 changed files with 16 additions and 2 deletions

View File

@ -172,7 +172,14 @@ class WfService(object):
if state.filter_dept not in [0, '0', None]:
# if not new_ticket_data.get(state.filter_dept, None):
# raise ParseError('部门过滤字段错误')
dpts = Dept.objects.filter(id=new_ticket_data[state.filter_dept])
if '.' not in state.filter_dept:
dpts = Dept.objects.filter(id=new_ticket_data[state.filter_dept])
else:
dpt_attrs = state.filter_dept.split('.') # 通过反向查询得到可能有多层
expr = ticket
for i in dpt_attrs:
expr = getattr(expr, i)
dpts = Dept.objects.filter(id=expr.id)
user_queryset = user_queryset.filter(depts__in=dpts)
# if state.filter_policy == 1:
# depts = get_parent_queryset(ticket.belong_dept)
@ -190,7 +197,14 @@ class WfService(object):
if state.filter_dept not in [0, '0', None]:
# if not new_ticket_data.get(state.filter_dept, None):
# raise ParseError('部门过滤字段错误')
dpts = Dept.objects.filter(id=new_ticket_data[state.filter_dept])
if '.' not in state.filter_dept:
dpts = Dept.objects.filter(id=new_ticket_data[state.filter_dept])
else:
dpt_attrs = state.filter_dept.split('.')
expr = ticket
for i in dpt_attrs:
expr = getattr(expr, i)
dpts = Dept.objects.filter(id=expr.id)
user_queryset = user_queryset.filter(depts__in=dpts)
# if state.filter_policy == 1:
# depts = get_parent_queryset(ticket.belong_dept)