Features:
- Custom workflow creation per project/tracker
- Step-by-step workflow definition
- Assignees per step (user, role group, department)
- Next/Previous step navigation
- Reject to first step
- Skip step (admin only)
- Step deadline settings
- Workflow dashboard
- Group member selection when proceeding
🤖 Generated with Claude Code
42 lines
999 B
Ruby
42 lines
999 B
Ruby
class WorkflowStepAssignee < ActiveRecord::Base
|
|
belongs_to :workflow_step
|
|
|
|
validates :workflow_step_id, presence: true
|
|
validates :assignee_type, presence: true, inclusion: { in: %w[user role_group department] }
|
|
validates :assignee_id, presence: true
|
|
validates :assignee_id, uniqueness: { scope: [:workflow_step_id, :assignee_type] }
|
|
|
|
def assignee
|
|
case assignee_type
|
|
when 'user'
|
|
User.find_by(id: assignee_id)
|
|
when 'role_group'
|
|
RoleGroup.find_by(id: assignee_id)
|
|
when 'department'
|
|
Department.find_by(id: assignee_id)
|
|
end
|
|
end
|
|
|
|
def assignee_name
|
|
obj = assignee
|
|
return '(삭제됨)' unless obj
|
|
|
|
case assignee_type
|
|
when 'user'
|
|
obj.name
|
|
when 'role_group'
|
|
"#{obj.name} (역할그룹)"
|
|
when 'department'
|
|
"#{obj.name} (부서)"
|
|
end
|
|
end
|
|
|
|
def type_label
|
|
case assignee_type
|
|
when 'user' then '사용자'
|
|
when 'role_group' then '역할 그룹'
|
|
when 'department' then '부서'
|
|
end
|
|
end
|
|
end
|