Diff
Modified: branches/events/app/controllers/comments_controller.rb (3107 => 3108)
--- branches/events/app/controllers/comments_controller.rb 2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/app/controllers/comments_controller.rb 2012-08-24 14:52:14 UTC (rev 3108)
@@ -33,9 +33,14 @@
end
if text and text.length > 0
- comment = Comment.create(:user => current_user, :comment => text)
- @context.comments << comment
- @context.solr_save if @context.respond_to?(:solr_save)
+ comment = Comment.new(:user => current_user, :comment => text, :commentable => @context)
+
+ success = comment.save
+
+ if success
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => comment)
+ @context.solr_save if @context.respond_to?(:solr_save)
+ end
end
respond_to do |format|
Modified: branches/events/app/helpers/application_helper.rb (3107 => 3108)
--- branches/events/app/helpers/application_helper.rb 2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/app/helpers/application_helper.rb 2012-08-24 14:52:14 UTC (rev 3108)
@@ -547,6 +547,30 @@
def activity_feed(opts = {})
+ def link_aux(thing, label)
+
+ case thing.class.name
+ when "Bookmark"
+ thing = thing.bookmarkable
+ when "Comment"
+ thing = thing.commentable
+ end
+
+ if thing
+ link_to(thing.label, polymorphic_path(thing))
+ else
+ h(label)
+ end
+ end
+
+ def subject_link(event)
+ link_aux(event.subject, event.subject_label)
+ end
+
+ def objekt_link(event)
+ link_aux(event.objekt, event.objekt_label)
+ end
+
conditions_expr = []
conditions_operands = []
@@ -574,24 +598,26 @@
markup << events.map do |event|
action = "" event.objekt
- "#{event.action} #{event.objekt_type}"
+ "#{event.objekt_type} #{event.action}"
else
"#{event.action}"
end
sentence = case action
- when "register": "#{event.subject.label} joined #{Conf.sitename}"
- when "create Workflow": "#{event.subject.label} uploaded #{event.objekt.label}"
- when "create version Workflow": "#{event.subject.label} uploaded a new version of #{event.objekt.label}"
- when "edit Workflow": "#{event.subject.label} edited #{event.objekt.label}"
- when "edit version Workflow": "#{event.subject.label} edited version #{event.extra} of #{event.objekt.label}"
- when "create Blob": "#{event.subject.label} uploaded #{event.objekt.label}"
- when "create version Blob": "#{event.subject.label} uploaded a new version of #{event.objekt.label}"
- when "edit Blob": "#{event.subject.label} edited #{event.objekt.label}"
- when "edit version Blob": "#{event.subject.label} edited version #{event.extra} of #{event.objekt.label}"
- when "create Bookmark": "#{event.subject.label} favourited #{event.objekt.bookmarkable.label}"
- when "create Pack": "#{event.subject.label} created #{event.objekt.label}"
- when "create Blog": "#{event.subject.label} created #{event.objekt.label}"
+ when "Blob create version": "#{subject_link(event)} uploaded a new version of #{objekt_link(event)}"
+ when "Blob create": "#{subject_link(event)} uploaded #{objekt_link(event)}"
+ when "Blob edit version": "#{subject_link(event)} edited version #{event.extra} of #{objekt_link(event)}"
+ when "Blob edit": "#{subject_link(event)} edited #{objekt_link(event)}"
+ when "Blog create": "#{subject_link(event)} created #{objekt_link(event)}"
+ when "Bookmark create": "#{subject_link(event)} favourited #{objekt_link(event)}"
+ when "Comment create": "#{subject_link(event)} commented on #{objekt_link(event)}"
+ when "Pack create": "#{subject_link(event)} created #{objekt_link(event)}"
+ when "Workflow create version": "#{subject_link(event)} uploaded a new version of #{objekt_link(event)}"
+ when "Workflow create": "#{subject_link(event)} uploaded #{objekt_link(event)}"
+ when "Workflow edit version": "#{subject_link(event)} edited version #{event.extra} of #{objekt_link(event)}"
+ when "Workflow edit": "#{subject_link(event)} edited #{objekt_link(event)}"
+ when "register": "#{subject_link(event)} joined #{Conf.sitename}"
+ else "Unknown event"
end
"<li>#{sentence}.</li>"
Modified: branches/events/lib/rest.rb (3107 => 3108)
--- branches/events/lib/rest.rb 2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/lib/rest.rb 2012-08-24 14:52:14 UTC (rev 3108)
@@ -1930,7 +1930,16 @@
# End of curation hack
- return rest_response(400, :object => ob) unless ob.save
+ success = ob.save
+
+ if success
+ case action
+ when "create": Event.create(:subject => opts[:user], :action ="" 'create', :objekt => ob)
+ when "edit": Event.create(:subject => opts[:user], :action ="" 'edit', :objekt => ob)
+ end
+ end
+
+ return rest_response(400, :object => ob) unless success
end
rest_get_request(ob, opts[:user], { "id" => ob.id.to_s })
Modified: branches/events/test/functional/api_controller_test.rb (3107 => 3108)
--- branches/events/test/functional/api_controller_test.rb 2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/test/functional/api_controller_test.rb 2012-08-24 14:52:14 UTC (rev 3108)
@@ -645,6 +645,8 @@
existing_comments = Comment.find(:all)
+ existing_events = Event.all
+
rest_request(:post, 'comment', "<?xml version='1.0'?>
<comment>
<comment>#{comment_text}</comment>
@@ -653,6 +655,13 @@
assert_response(:success)
+ new_events = Event.all - existing_events
+
+ assert_equal(1, new_events.length)
+ assert_equal("John Smith", new_events.first.subject.name)
+ assert_equal("create", new_events.first.action)
+ assert_equal("Unique tags", new_events.first.objekt.commentable.title)
+
extra_comments = Comment.find(:all) - existing_comments
assert_equal(extra_comments.length, 1)