Feature #3050 » fix-journal-details-on-attachments.patch
| app/models/attachment.rb | ||
|---|---|---|
| 145 | 145 |
attachments.each_value do |attachment| |
| 146 | 146 |
file = attachment['file'] |
| 147 | 147 |
next unless file && file.size > 0 |
| 148 |
a = Attachment.create(:container => obj, |
|
| 149 |
:file => file, |
|
| 150 |
:description => attachment['description'].to_s.strip, |
|
| 151 |
:author => User.current) |
|
| 148 |
a = obj.attachments.create(:file => file, |
|
| 149 |
:description => attachment['description'].to_s.strip, |
|
| 150 |
:author => User.current) |
|
| 152 | 151 | |
| 153 | 152 |
if a.new_record? |
| 154 | 153 |
obj.unsaved_attachments ||= [] |
| app/models/issue.rb | ||
|---|---|---|
| 35 | 35 |
has_many :relations_to, :class_name => 'IssueRelation', :foreign_key => 'issue_to_id', :dependent => :delete_all |
| 36 | 36 | |
| 37 | 37 |
acts_as_nested_set :scope => 'root_id', :dependent => :destroy |
| 38 |
acts_as_attachable :after_remove => :attachment_removed |
|
| 38 |
acts_as_attachable :after_add => :attachment_added, :after_remove => :attachment_removed
|
|
| 39 | 39 |
acts_as_customizable |
| 40 | 40 |
acts_as_watchable |
| 41 | 41 |
acts_as_searchable :columns => ['subject', "#{table_name}.description", "#{Journal.table_name}.notes"],
|
| ... | ... | |
| 603 | 603 | |
| 604 | 604 |
if valid? |
| 605 | 605 |
attachments = Attachment.attach_files(self, params[:attachments]) |
| 606 | ||
| 607 |
attachments[:files].each {|a| @current_journal.details << JournalDetail.new(:property => 'attachment', :prop_key => a.id, :value => a.filename)}
|
|
| 608 | 606 |
# TODO: Rename hook |
| 609 | 607 |
Redmine::Hook.call_hook(:controller_issues_edit_before_save, { :params => params, :issue => self, :time_entry => @time_entry, :journal => @current_journal})
|
| 610 | 608 |
begin |
| ... | ... | |
| 834 | 832 |
end |
| 835 | 833 |
end |
| 836 | 834 | |
| 837 |
# Callback on attachment deletion |
|
| 835 |
def attachment_added(obj) |
|
| 836 |
@current_journal.details << JournalDetail.new(:property => 'attachment', |
|
| 837 |
:prop_key => obj.id, |
|
| 838 |
:value => obj.filename) |
|
| 839 |
end |
|
| 840 | ||
| 838 | 841 |
def attachment_removed(obj) |
| 839 | 842 |
journal = init_journal(User.current) |
| 840 | 843 |
journal.details << JournalDetail.new(:property => 'attachment', |
| app/models/mail_handler.rb | ||
|---|---|---|
| 200 | 200 |
def add_attachments(obj) |
| 201 | 201 |
if email.has_attachments? || email.multipart? |
| 202 | 202 |
email.attachments.each do |attachment| |
| 203 |
Attachment.create(:container => obj, |
|
| 204 |
:file => attachment, |
|
| 205 |
:author => user, |
|
| 206 |
:content_type => attachment.content_type) |
|
| 203 |
obj.attachments.create(:file => attachment, |
|
| 204 |
:author => user, |
|
| 205 |
:content_type => attachment.content_type) |
|
| 207 | 206 |
end |
| 208 | 207 |
end |
| 209 | 208 |
end |