checklist_template.rb 809 B

12345678910111213141516171819202122232425262728
  1. # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
  2. class ChecklistTemplate < ApplicationModel
  3. include HasDefaultModelUserRelations
  4. include ChecksClientNotification
  5. include ChecklistTemplate::TriggersSubscriptions
  6. include ChecklistTemplate::Assets
  7. include CanChecklistSortedItems
  8. has_many :items, inverse_of: :checklist_template, dependent: :destroy
  9. validates :name, presence: { allow_blank: true }
  10. def create_from_template!(ticket_id:)
  11. raise ActiveRecord::RecordInvalid if !active
  12. new_checklist = Checklist.new(name:, ticket_id:)
  13. # Inherit only the text property from related checklist items.
  14. items.each do |item|
  15. new_checklist.items.build(text: item.text, initial_clone: true)
  16. end
  17. new_checklist.save!
  18. new_checklist
  19. end
  20. end