def show(user, preset_id):
"""
Get given preset
"""
try:
preset = TicketWorkflowPreset.objects.get(id=preset_id, roles=user.operator.role)
except (IndexError, ObjectDoesNotExist, ValueError, TypeError):
raise NotFound('Preset not found')
action = params = None
if preset.config:
action = model_to_dict(preset.config.action)
if preset.config.params:
params = {param.codename: param.value for param in preset.config.params.all()}
preset = model_to_dict(preset)
preset['templates'] = MailTemplate.objects.filter(ticketworkflowpreset=preset['id'])
preset['templates'] = [model_to_dict(m) for m in preset['templates']]
preset['action'] = action
if action and params:
preset['action']['params'] = params
preset['roles'] = list(TicketWorkflowPreset.objects.get(
id=preset['id']
).roles.all().values_list(
'codename',
flat=True
).distinct())
return preset
评论列表
文章目录