trabajo-afectivo/app/models/application_model/has_attachments.rb

75 lines
1.4 KiB
Ruby
Raw Normal View History

# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
module ApplicationModel::HasAttachments
extend ActiveSupport::Concern
included do
after_create :attachments_buffer_check
after_update :attachments_buffer_check
end
=begin
get list of attachments of this object
item = Model.find(123)
list = item.attachments
returns
# array with Store model objects
=end
def attachments
Store.list(object: self.class.to_s, o_id: id)
end
=begin
store attachments for this object
item = Model.find(123)
item.attachments = [ Store-Object1, Store-Object2 ]
=end
def attachments=(attachments)
self.attachments_buffer = attachments
# update if object already exists
return if !(id && id.nonzero?)
attachments_buffer_check
end
private
def attachments_buffer
@attachments_buffer_data
end
def attachments_buffer=(attachments)
@attachments_buffer_data = attachments
end
def attachments_buffer_check
# do nothing if no attachment exists
return 1 if attachments_buffer.nil?
# store attachments
article_store = []
attachments_buffer.each do |attachment|
article_store.push Store.add(
object: self.class.to_s,
o_id: id,
data: attachment.content,
filename: attachment.filename,
preferences: attachment.preferences,
created_by_id: created_by_id,
)
end
attachments_buffer = nil
end
end