public
Description: OneBody is web-based software that connects community members, especially churches, on the web.
Homepage: http://beonebody.com
Clone URL: git://github.com/seven1m/onebody.git
Rename LogItem#changes attribute to remove conflict with Rails dirty tracking.
Tim Morgan (author)
Tue Aug 05 06:14:00 -0700 2008
commit  647c17b0444485e39045ee62e2ca5ea9ecfc9bea
tree    09017e9476fcedd0a7239a5f329909919a4d76bf
parent  c07a5659540caa54be9dd050b4836e498addc329
...
82
83
84
85
86
 
 
 
 
 
 
 
87
88
89
...
82
83
84
 
 
85
86
87
88
89
90
91
92
93
94
0
@@ -82,8 +82,13 @@ class PeopleController < ApplicationController
0
     @person = Person.find(params[:id])
0
     if @logged_in.can_edit?(@person)
0
       if updated = @person.update_from_params(params)
0
-        flash[:notice] = 'Changes saved.'
0
-        redirect_to edit_person_path(@person, :anchor => params[:anchor])
0
+        respond_to do |format|
0
+          format.html do
0
+            flash[:notice] = 'Changes saved.'
0
+            redirect_to edit_person_path(@person, :anchor => params[:anchor])
0
+          end
0
+          format.xml { render :xml => @person.to_xml }
0
+        end
0
       else
0
         edit; render :action => 'edit'
0
       end
...
42
43
44
45
 
46
47
48
...
42
43
44
 
45
46
47
48
0
@@ -42,7 +42,7 @@ class Family < ActiveRecord::Base
0
   
0
   alias_method 'photo_without_logging=', 'photo='
0
   def photo=(p)
0
-    LogItem.create :model_name => 'Family', :instance_id => id, :changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
+    LogItem.create :model_name => 'Family', :instance_id => id, :object_changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
     self.photo_without_logging = p
0
   end
0
   
...
67
68
69
70
 
71
72
73
...
67
68
69
 
70
71
72
73
0
@@ -67,7 +67,7 @@ class Group < ActiveRecord::Base
0
   
0
   alias_method 'photo_without_logging=', 'photo='
0
   def photo=(p)
0
-    LogItem.create :model_name => 'Group', :instance_id => id, :changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
+    LogItem.create :model_name => 'Group', :instance_id => id, :object_changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
     self.photo_without_logging = p
0
   end
0
   
...
25
26
27
28
 
29
30
31
...
95
96
97
98
99
100
101
 
 
 
 
 
 
 
 
102
103
104
...
25
26
27
 
28
29
30
31
...
95
96
97
 
 
 
 
98
99
100
101
102
103
104
105
106
107
108
0
@@ -25,7 +25,7 @@ class LogItem < ActiveRecord::Base
0
   belongs_to :reviewed_by, :class_name => 'Person', :foreign_key => 'reviewed_by'
0
   belongs_to :site
0
   
0
-  serialize :changes
0
+  serialize :object_changes
0
   
0
   acts_as_scoped_globally 'site_id', "(Site.current ? Site.current.id : 'site-not-set')"
0
   
0
@@ -95,10 +95,14 @@ class LogItem < ActiveRecord::Base
0
   
0
   def showable_change_keys
0
     return [] if deleted?
0
-    changes.keys.select do |key|
0
-      PEOPLE_ATTRIBUTES_SHOWABLE_ON_HOMEPAGE.include? key
0
-    end.map do |key|
0
-      key == 'tv_shows' ? 'TV Shows' : key.split('_').map { |w| w.capitalize }.join(' ')
0
+    begin
0
+      object_changes.keys.select do |key|
0
+        PEOPLE_ATTRIBUTES_SHOWABLE_ON_HOMEPAGE.include? key
0
+      end.map do |key|
0
+        key == 'tv_shows' ? 'TV Shows' : key.split('_').map { |w| w.capitalize }.join(' ')
0
+      end
0
+    rescue NoMethodError # sometimes object_changes doesn't un-serialize. Weird.
0
+      []
0
     end
0
   end
0
   
...
112
113
114
115
 
116
117
 
 
118
119
120
...
112
113
114
 
115
116
117
118
119
120
121
122
0
@@ -112,9 +112,11 @@ class Person < ActiveRecord::Base
0
 
0
   alias_method 'photo_without_logging=', 'photo='
0
   def photo=(p)
0
-    LogItem.create :model_name => 'Person', :instance_id => id, :changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
+    LogItem.create :model_name => 'Person', :instance_id => id, :object_changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
     self.photo_without_logging = p
0
   end
0
+  
0
+  attr_protected :api_key, :feed_code
0
 
0
   validates_length_of :password, :minimum => 5, :allow_nil => true, :if => Proc.new { Person.logged_in }
0
   validates_confirmation_of :password, :if => Proc.new { Person.logged_in }
...
37
38
39
40
 
41
42
43
...
37
38
39
 
40
41
42
43
0
@@ -37,7 +37,7 @@ class Recipe < ActiveRecord::Base
0
   
0
   alias_method 'photo_without_logging=', 'photo='
0
   def photo=(p)
0
-    LogItem.create :model_name => 'Recipe', :instance_id => id, :changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
+    LogItem.create :model_name => 'Recipe', :instance_id => id, :object_changes => {'photo' => (p ? 'changed' : 'removed')}, :person => Person.logged_in
0
     self.photo_without_logging = p
0
   end
0
   
...
89
90
91
92
 
93
94
95
...
89
90
91
 
92
93
94
95
0
@@ -89,7 +89,7 @@
0
         <tr id="changes<%= item.id %>" style="display:none;background-color:#eee;" class="changes">
0
           <td colspan="7">
0
             <table>
0
-              <% item.changes.to_a.each do |key, value| %>
0
+              <% item.object_changes.to_a.each do |key, value| %>
0
                 <% unless key =~ /_id$/ %>
0
                   <tr><td><%=h key %>:</td><td><%=h value %></td></tr>
0
                 <% end %>
...
26
27
28
29
 
30
31
32
...
26
27
28
 
29
30
31
32
0
@@ -26,7 +26,7 @@ module Foo
0
                   :name => self.respond_to?(:name) ? self.name : nil,
0
                   :model_name => self.class.name,
0
                   :instance_id => self.id,
0
-                  :changes => @logger_changes,
0
+                  :object_changes => @logger_changes,
0
                   :person => Person.logged_in,
0
                   :group_id => self.respond_to?(:group_id) ? self.group_id : nil
0
                 )

Comments