Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
OHR Support
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
97
Issues
97
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
OHR Support
Commits
498d3909
Commit
498d3909
authored
Jun 17, 2011
by
Eric Davis
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ticket/release-v2.0.0/467-journal-migration-sti-callback-bug' into release-v2.0.0
parents
0c031428
47c7e077
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
3 deletions
+13
-3
20100714111651_generalize_journals.rb
db/migrate/20100714111651_generalize_journals.rb
+13
-3
No files found.
db/migrate/20100714111651_generalize_journals.rb
View file @
498d3909
...
...
@@ -35,10 +35,14 @@ class GeneralizeJournals < ActiveRecord::Migration
Journal
.
all
.
group_by
(
&
:journaled_id
).
each_pair
do
|
id
,
journals
|
journals
.
sort_by
(
&
:created_at
).
each_with_index
do
|
j
,
idx
|
j
.
update_attribute
(
:type
,
"
#{
j
.
journalized_type
}
Journal"
)
j
.
update_attribute
(
:version
,
idx
+
1
)
# Recast the basic Journal into it's STI journalized class so callbacks work (#467)
klass_name
=
"
#{
j
.
journalized_type
}
Journal"
j
=
j
.
becomes
(
klass_name
.
constantize
)
j
.
type
=
klass_name
j
.
version
=
idx
+
1
# FIXME: Find some way to choose the right activity here
j
.
update_attribute
(
:activity_type
,
j
.
journalized_type
.
constantize
.
activity_provider_options
.
keys
.
first
)
j
.
activity_type
=
j
.
journalized_type
.
constantize
.
activity_provider_options
.
keys
.
first
j
.
save
(
false
)
end
end
...
...
@@ -46,6 +50,12 @@ class GeneralizeJournals < ActiveRecord::Migration
t
.
remove
:journalized_type
end
# Reset class and subclasses, otherwise they will try to save using older attributes
Journal
.
reset_column_information
Journal
.
send
(
:subclasses
).
each
do
|
klass
|
klass
.
reset_column_information
if
klass
.
respond_to?
(
:reset_column_information
)
end
# Build initial journals for all activity providers
providers
=
Redmine
::
Activity
.
providers
.
collect
{
|
k
,
v
|
v
.
collect
(
&
:constantize
)
}.
flatten
.
compact
.
uniq
providers
.
each
do
|
p
|
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment